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

two phase commit
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Two-phase commit

Doug Woos

slide-2
SLIDE 2

Logistics notes

Problem Set 2 out

  • Due next Friday

Next week: Paxos

  • Notoriously difficult topic
  • Please do the reading!
slide-3
SLIDE 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?

slide-4
SLIDE 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
slide-5
SLIDE 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.
slide-6
SLIDE 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)

slide-7
SLIDE 7

Calendar event creation (wrong)

Tom Mike Zach Doug

slide-8
SLIDE 8

Calendar event creation (wrong)

Tom Mike Zach Doug Meet at 11 on Tues

slide-9
SLIDE 9

Calendar event creation (wrong)

Tom Mike Zach Doug OK

slide-10
SLIDE 10

Calendar event creation (wrong)

Tom Mike Zach Doug Meeting Doug @ 11 on Tues

slide-11
SLIDE 11

Calendar event creation (wrong)

Tom Mike Zach Doug Meet at 11 on Tues Meeting Doug @ 11 on Tues

slide-12
SLIDE 12

Calendar event creation (wrong)

Tom Mike Zach Doug OK Meeting Doug @ 11 on Tues

slide-13
SLIDE 13

Calendar event creation (wrong)

Tom Mike Zach Doug Meeting Doug @ 11 on Tues Meeting Doug @ 11 on Tues

slide-14
SLIDE 14

Calendar event creation (wrong)

Tom Mike Zach Doug Meet at 11 on Tues Meeting Doug @ 11 on Tues Meeting Doug @ 11 on Tues

slide-15
SLIDE 15

Calendar event creation (wrong)

Tom Mike Zach Doug Busy! Meeting Doug @ 11 on Tues Meeting Doug @ 11 on Tues

slide-16
SLIDE 16

Calendar event creation (wrong)

Tom Mike Zach Doug Meeting Doug @ 11 on Tues Meeting Doug @ 11 on Tues

slide-17
SLIDE 17

Calendar event creation (wrong)

Tom Mike Zach Doug Meeting Doug @ 11 on Tues Meeting Doug @ 11 on Tues

slide-18
SLIDE 18

Calendar event creation (better)

Tom Mike Zach Doug

slide-19
SLIDE 19

Calendar event creation (better)

Tom Mike Zach Doug Meet at 11 on Tues

slide-20
SLIDE 20

Calendar event creation (better)

Tom Mike Zach Doug OK

slide-21
SLIDE 21

Calendar event creation (better)

Tom Mike Zach Doug Maybe Meeting Doug @ 11 on Tues

slide-22
SLIDE 22

Calendar event creation (better)

Tom Mike Zach Doug Maybe Meeting Doug @ 11 on Tues Meet at 11 on Tues

slide-23
SLIDE 23

Calendar event creation (better)

Tom Mike Zach Doug Maybe Meeting Doug @ 11 on Tues OK

slide-24
SLIDE 24

Calendar event creation (better)

Tom Mike Zach Doug Maybe Meeting Doug @ 11 on Tues Maybe Meeting Doug @ 11 on Tues

slide-25
SLIDE 25

Calendar event creation (better)

Tom Mike Zach Doug Maybe Meeting Doug @ 11 on Tues Maybe Meeting Doug @ 11 on Tues Meet at 11 on Tues

slide-26
SLIDE 26

Calendar event creation (better)

Tom Mike Zach Doug Maybe Meeting Doug @ 11 on Tues Maybe Meeting Doug @ 11 on Tues Busy!

slide-27
SLIDE 27

Calendar event creation (better)

Tom Mike Zach Doug Maybe Meeting Doug @ 11 on Tues Maybe Meeting Doug @ 11 on Tues

slide-28
SLIDE 28

Calendar event creation (better)

Tom Mike Zach Doug Maybe Meeting Doug @ 11 on Tues Maybe Meeting Doug @ 11 on Tues Never mind!

slide-29
SLIDE 29

Calendar event creation (better)

Tom Mike Zach Doug Maybe Meeting Doug @ 11 on Tues

slide-30
SLIDE 30

Calendar event creation (better)

Tom Mike Zach Doug Maybe Meeting Doug @ 11 on Tues Never mind!

slide-31
SLIDE 31

Calendar event creation (better)

Tom Mike Zach Doug

slide-32
SLIDE 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

slide-33
SLIDE 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:

  • VOTE-REQ: Can you commit this transaction?
  • COMMIT: Commit this transaction
  • ABORT: Abort this transaction
slide-34
SLIDE 34

Failures

In the absence of failures, 2PC is pretty simple! When can interesting failures happen?

  • Participant failures?
  • Coordinator failures?
  • Message drops?
slide-35
SLIDE 35

Participant failures

slide-36
SLIDE 36

Participant failures: Before sending response?

Coordinator Participant Participant Prepare Prepare Yes No Abort Abort Decision?

slide-37
SLIDE 37

Participant failures: After sending vote?

Coordinator Participant Participant Prepare Prepare Yes Yes Commit Commit Yes

slide-38
SLIDE 38

Participant failures: Lost vote?

Coordinator Participant Participant Prepare Prepare Yes Yes No Abort Abort Decision?

slide-39
SLIDE 39

Coordinator failures

slide-40
SLIDE 40

Coodinator failures: Before sending prepare

Coordinator Participant Participant Prepare Prepare Yes Yes Yes Commit Commit

slide-41
SLIDE 41

Coordinator failures: After sending prepare

Coordinator Participant Participant Prepare Prepare Yes Yes Yes Commit Commit Prepare Prepare

slide-42
SLIDE 42

Coordinator failures: After receiving votes

Coordinator Participant Participant Prepare Prepare Yes Yes Yes Commit Commit Prepare Prepare Yes Yes

slide-43
SLIDE 43

Coordinator failures: After sending decision

Coordinator Participant Participant Prepare Prepare Yes Commit Yes Yes Commit Decision?

slide-44
SLIDE 44

Do we need the coordinator?

Coordinator Participant Participant Prepare Prepare Yes Commit Commit Yes Yes Decision?

slide-45
SLIDE 45

What if we do not have the coordinator’s decision?

Coordinator Participant Participant Prepare Prepare Yes

  • r

No? Commit? Decision? Yes Yes

slide-46
SLIDE 46

2PC vs. SMR

Is 2PC a state machine replication protocol?

slide-47
SLIDE 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!

slide-48
SLIDE 48

Typical architecture

State machine State machine State machine 2PC 2PC 2PC

slide-49
SLIDE 49

Typical architecture

State machine State machine State machine 2PC 2PC 2PC

slide-50
SLIDE 50

Two generals

Does 2PC solve Two Generals? Why not?

slide-51
SLIDE 51