two phase commit
play

Two-phase commit Doug Woos Logistics notes Problem Set 2 out - - PowerPoint PPT Presentation

Two-phase commit Doug Woos Logistics notes Problem Set 2 out - Due next Friday Next week: Paxos - Notoriously difficult topic - Please do the reading! Caching Discussion Complexity as a downside Do the scalability/performance issues


  1. Two-phase commit Doug Woos

  2. Logistics notes Problem Set 2 out - Due next Friday Next week: Paxos - Notoriously difficult topic - Please do the reading!

  3. Caching Discussion “Complexity” as a downside Do the scalability/performance issues mentioned in the paper exist today? Why do we use NFS? When is the recovery protocol executed?

  4. Review: Sharding Sharding - Different data on different servers - Partitioned via some function on keys - Implement in Lab 4! Another axis of scaling, cf. replication - Usually, shard then replicate - Each piece of data lives on one replicated shard

  5. Sharding and Transactions Adve rule we discussed lets us avoid synchronizing between shards for simple reads and writes But what if we do need to synchronize across shards? Transactions: atomic updates to multiple items - Bank account transfer - Calendar event - Unix user creation - etc.

  6. Calendar event creation I have three advisors (Tom, Zach, Mike) Want to schedule a meeting with all of them - Let’s try Tues at 11, people are usually free then Calendars all live on different nodes! Other students also trying to schedule meetings Nodes can fail, messages can be dropped (of course)

  7. Calendar event creation (wrong) Tom Mike Zach Doug

  8. Calendar event creation (wrong) Tom Mike Zach Meet at 11 on Tues Doug

  9. Calendar event creation (wrong) Tom Mike Zach OK Doug

  10. Calendar event creation (wrong) Tom Mike Zach Meeting Doug @ 11 on Tues Doug

  11. Calendar event creation (wrong) Tom Mike Zach Meeting Doug @ 11 on Tues Meet at 11 on Tues Doug

  12. Calendar event creation (wrong) Tom Mike Zach Meeting Doug @ 11 on Tues OK Doug

  13. Calendar event creation (wrong) Tom Mike Zach Meeting Doug Meeting Doug @ 11 on Tues @ 11 on Tues Doug

  14. Calendar event creation (wrong) Tom Mike Zach Meeting Doug Meeting Doug @ 11 on Tues @ 11 on Tues Meet at 11 on Tues Doug

  15. Calendar event creation (wrong) Tom Mike Zach Meeting Doug Meeting Doug @ 11 on Tues @ 11 on Tues Busy! Doug

  16. Calendar event creation (wrong) Tom Mike Zach Meeting Doug Meeting Doug @ 11 on Tues @ 11 on Tues Doug

  17. Calendar event creation (wrong) Tom Mike Zach Meeting Doug Meeting Doug @ 11 on Tues @ 11 on Tues Doug

  18. Calendar event creation (better) Tom Mike Zach Doug

  19. Calendar event creation (better) Tom Mike Zach Meet at 11 on Tues Doug

  20. Calendar event creation (better) Tom Mike Zach OK Doug

  21. Calendar event creation (better) Tom Mike Zach Maybe Meeting Doug @ 11 on Tues Doug

  22. Calendar event creation (better) Tom Mike Zach Maybe Meeting Doug @ 11 on Tues Meet at 11 on Tues Doug

  23. Calendar event creation (better) Tom Mike Zach Maybe Meeting Doug @ 11 on Tues OK Doug

  24. Calendar event creation (better) Tom Mike Zach Maybe Meeting Maybe Meeting Doug @ 11 on Tues Doug @ 11 on Tues Doug

  25. Calendar event creation (better) Tom Mike Zach Maybe Meeting Maybe Meeting Doug @ 11 on Tues Doug @ 11 on Tues Meet at 11 on Tues Doug

  26. Calendar event creation (better) Tom Mike Zach Maybe Meeting Maybe Meeting Doug @ 11 on Tues Doug @ 11 on Tues Busy! Doug

  27. Calendar event creation (better) Tom Mike Zach Maybe Meeting Maybe Meeting Doug @ 11 on Tues Doug @ 11 on Tues Doug

  28. Calendar event creation (better) Tom Mike Zach Maybe Meeting Maybe Meeting Doug @ 11 on Tues Doug @ 11 on Tues Never mind! Doug

  29. Calendar event creation (better) Tom Mike Zach Maybe Meeting Doug @ 11 on Tues Doug

  30. Calendar event creation (better) Tom Mike Zach Maybe Meeting Doug @ 11 on Tues Never mind! Doug

  31. Calendar event creation (better) Tom Mike Zach Doug

  32. Two-phase commit Atomic commit protocol (ACP) - Every node arrives at the same decision - Once a node decides, it never changes - Transaction committed only if all nodes vote Yes - In normal operation, if all processes vote Yes the transaction is committed - If all failures are eventually repaired, the transaction is eventually either committed or aborted

  33. Two-phase commit Roles: - Participants (Mike, Tom, Zach): nodes that must update data relevant to the transaction - Coordinator (Doug): node responsible for executing the protocol (might also be a participant) RPCs: - V OTE - REQ : Can you commit this transaction? - C OMMIT : Commit this transaction - A BORT : Abort this transaction

  34. Failures In the absence of failures, 2PC is pretty simple! When can interesting failures happen? - Participant failures? - Coordinator failures? - Message drops?

  35. Participant failures

  36. Participant failures: Before sending response? Coordinator Participant Participant Prepare Prepare Yes No Abort Decision? Abort

  37. Participant failures: After sending vote? Coordinator Participant Participant Prepare Prepare Yes Yes Yes Commit Commit

  38. Participant failures: Lost vote? Coordinator Participant Participant Prepare Prepare Yes Yes No Abort Decision? Abort

  39. Coordinator failures

  40. Coodinator failures: Before sending prepare Coordinator Participant Participant Prepare Prepare Yes Yes Yes Commit Commit

  41. Coordinator failures: After sending prepare Coordinator Participant Participant Prepare Prepare Prepare Prepare Yes Yes Yes Commit Commit

  42. Coordinator failures: After receiving votes Coordinator Participant Participant Prepare Prepare Yes Yes Prepare Prepare Yes Yes Yes Commit Commit

  43. Coordinator failures: After sending decision Coordinator Participant Participant Prepare Prepare Yes Yes Yes Commit Decision? Commit

  44. Do we need the coordinator? Coordinator Participant Participant Prepare Prepare Yes Yes Yes Commit Decision? Commit

  45. What if we do not have the coordinator’s decision? Coordinator Participant Participant Prepare Prepare Yes Yes or Decision? No? Yes Commit?

  46. 2PC vs. SMR Is 2PC a state machine replication protocol?

  47. 2PC vs. SMR Is 2PC a state machine replication protocol? - Could be—but isn’t a very good one! 2PC is for coordinating an operation between multiple nodes, where every node has to agree in order for the system to make progress!

  48. Typical architecture State State 2PC machine machine 2PC 2PC State machine

  49. Typical architecture State State 2PC machine machine 2PC 2PC State machine

  50. Two generals Does 2PC solve Two Generals? Why not?

Recommend


More recommend