timestamps for serializabilityibl/450/pdf/view-on-line... · t1(10) read a read b write a t2(20)...

52
Timestamps for Serializability Alternative to Locks for Concurrency Control

Upload: others

Post on 19-Aug-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Timestamps for SerializabilityAlternative to Locks for Concurrency Control

Page 2: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Timestamp Serializability Requirement• Lock Version: Schedule is equivalent to some serial Schedule

• Timestamp Version: Schedule is equivalent to exactly one serial Schedule

• That schedule: TIMESTAMP ORDERED

Page 3: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TIMESTAMP ORDER• Timestamp ordered Serial Schedule:transactions execute in the same order as they began in the database.

• Goal: Schedule that is serializable to Timestamp Ordered Serial Schedule.

Page 4: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Punish Out of Order Transactions• Proper order for conflicting pairs: 

Older gets to data item firstYounger gets to it next

• Out of order discovered when older turns up late.• Older punished with death.

Page 5: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Example TO Schedules

Page 6: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Example TO SchedulesT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parentheses

Page 7: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Example TO SchedulesT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parentheses

Serial in the Timestamp Order

Page 8: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Example TO SchedulesT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parentheses

Serial in the Timestamp Order

Page 9: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Example TO SchedulesT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parentheses

Serial in the Timestamp Order

Page 10: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Example TO SchedulesT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parenthesesT1(10)

Read A Read B

Write A

T2(20)

Read C Read B

Write B

Read D

T3(30)

Read C

Write C

Write ESerial in the Timestamp Order

Page 11: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Example TO SchedulesT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parenthesesT1(10)

Read A Read B

Write A

T2(20)

Read C Read B

Write B

Read D

T3(30)

Read C

Write C

Write ESerial in the Timestamp Order

Page 12: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Example TO SchedulesT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parenthesesT1(10)

Read A Read B

Write A

T2(20)

Read C Read B

Write B

Read D

T3(30)

Read C

Write C

Write ESerial in the Timestamp Order

Page 13: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Example TO SchedulesT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parenthesesT1(10)

Read A Read B

Write A

T2(20)

Read C Read B

Write B

Read D

T3(30)

Read C

Write C

Write E

Equivalent: each pair in the same order

Serial in the Timestamp Order

Page 14: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Another ExampleT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parentheses

Serial in the Timestamp Order

Page 15: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Another ExampleT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parenthesesT1(10)

Read A Read B Write ASerial in the

Timestamp Order

Page 16: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Another ExampleT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parenthesesT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

Serial in the Timestamp Order

Page 17: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Another ExampleT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parenthesesT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Serial in the Timestamp Order

Page 18: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Another ExampleT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parenthesesT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Obviously Serializable ...

Serial in the Timestamp Order

Page 19: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Another ExampleT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parenthesesT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Obviously Serializable ...

Serial in the Timestamp Order

Page 20: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Another ExampleT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parenthesesT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Obviously Serializable ...

Serial in the Timestamp Order

Page 21: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Another ExampleT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Timestamps in parenthesesT1(10)

Read A Read B Write A

T2(20)

Read C Read B Write B Read D

T3(30)

Read C Write C Write E

Obviously Serializable ...

Serial in the Timestamp Order

But NOT equivalent -- so invalid under this protocol

Page 22: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Protocol Method• Identify Violations of TS order• Kill Violator• Restart Violator with new TS• Mechanism: Each Data Item is Timestamped

– INHERITED from TS of youngest transaction to access item

– NOT FROM TIME OF ACCESS– item gets Read TS and Write TS

Page 23: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Proper Order: Write‐Read• Only concerned with conflicting Operations• Proper: Older Writes value then Younger Reads it• Violation: Younger Reads value, then Older Writes it

• Older should have written first• Older dies when it tries to write

Page 24: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TS Order: Older Writes, Younger Reads

A

ReadTS

WriteTS

A

ReadTS

WriteTS

Page 25: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TS Order: Older Writes, Younger Reads

A

ReadTS

WriteTS

A

ReadTS

WriteTS

T4(40)

Write A

T5(50)

Read A

Page 26: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TS Order: Older Writes, Younger Reads

40

A

ReadTS

WriteTS

A

ReadTS

WriteTS

T4(40)

Write A

T5(50)

Read A

Page 27: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TS Order: Older Writes, Younger ReadsT4(40)

Write A

T5(50)

Read A

40

A

ReadTS

WriteTS

OK to Read: T5’s Timestamp

is > A’s WriteTS

A

ReadTS

WriteTS

Page 28: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TS Order: Older Writes, Younger Reads

40

A

ReadTS

WriteTS

OK to Read: T5’s Timestamp

is > A’s WriteTS

A

ReadTS

WriteTS

50

T4(40)

Write A

T5(50)

Read A

Page 29: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TS Order: Older Writes, Younger Reads

40

A

ReadTS

WriteTS

OK to Read: T5’s Timestamp

is > A’s WriteTS

T4(40)

Write A

T5(50)

Read A

A

ReadTS

WriteTS

50

T4(40)

Write A

T5(50)

Read A

Page 30: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TS Order: Older Writes, Younger Reads

40

A

ReadTS

WriteTS

OK to Read: T5’s Timestamp

is > A’s WriteTS

T4(40)

Write A

T5(50)

Read A

50A

ReadTS

WriteTS

50

T4(40)

Write A

T5(50)

Read A

Page 31: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TS Order: Older Writes, Younger Reads

40

A

ReadTS

WriteTS

OK to Read: T5’s Timestamp

is > A’s WriteTS

T4(40)

Write A

T5(50)

Read A

50A

ReadTS

WriteTS

Violation: T4’s Timestamp is < A’s ReadTS.

50

T4(40)

Write A

T5(50)

Read A

Page 32: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TS Order: Older Writes, Younger Reads

40

A

ReadTS

WriteTS

OK to Read: T5’s Timestamp

is > A’s WriteTS

T4(40)

Write A

T5(50)

Read A

50A

ReadTS

WriteTS

Violation: T4’s Timestamp is < A’s ReadTS.T4 should have been there already. T4 dies.

50

T4(40)

Write A

T5(50)

Read A

Page 33: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Reads before Younger Writes

A

ReadTS

WriteTS

A

ReadTS

WriteTS

Page 34: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Reads before Younger WritesT4(40)

Read A

T5(50)

Write AA

ReadTS

WriteTS

A

ReadTS

WriteTS

Page 35: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Reads before Younger WritesT4(40)

Read A

T5(50)

Write A

40A

ReadTS

WriteTS

A

ReadTS

WriteTS

Page 36: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Reads before Younger WritesT4(40)

Read A

T5(50)

Write A

40A

ReadTS

WriteTS

OK to Write: T5’s Timestampis > A’s ReadTS

A

ReadTS

WriteTS

Page 37: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Reads before Younger WritesT4(40)

Read A

T5(50)

Write A

40A

ReadTS

WriteTS

OK to Write: T5’s Timestampis > A’s ReadTS

A

ReadTS

WriteTS50

Page 38: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Reads before Younger WritesT4(40)

Read A

T5(50)

Write A

40A

ReadTS

WriteTS

OK to Write: T5’s Timestampis > A’s ReadTS

T4(40)

Read A

T5(50)

Write A

A

ReadTS

WriteTS50

Page 39: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Reads before Younger WritesT4(40)

Read A

T5(50)

Write A

40A

ReadTS

WriteTS

OK to Write: T5’s Timestampis > A’s ReadTS

T4(40)

Read A

T5(50)

Write A

50

A

ReadTS

WriteTS50

Page 40: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Reads before Younger WritesT4(40)

Read A

T5(50)

Write A

40A

ReadTS

WriteTS

OK to Write: T5’s Timestampis > A’s ReadTS

T4(40)

Read A

T5(50)

Write A

50

A

ReadTS

WriteTS

Violation: T4’s Timestamp is < A’s WriteTS.

50

Page 41: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Reads before Younger WritesT4(40)

Read A

T5(50)

Write A

40A

ReadTS

WriteTS

OK to Write: T5’s Timestampis > A’s ReadTS

T4(40)

Read A

T5(50)

Write A

50

A

ReadTS

WriteTS

Violation: T4’s Timestamp is < A’s WriteTS.T4 should have been there already. T4 dies.

50

Page 42: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Writes before Younger Writes

A

ReadTS

WriteTS

A

ReadTS

WriteTS

Page 43: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Writes before Younger WritesT4(40)

Write A

T5(50)

Write AA

ReadTS

WriteTS

A

ReadTS

WriteTS

Page 44: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Writes before Younger WritesT4(40)

Write A

T5(50)

Write A

40

A

ReadTS

WriteTS

A

ReadTS

WriteTS

Page 45: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Writes before Younger WritesT4(40)

Write A

T5(50)

Write A

40

A

ReadTS

WriteTS

OK to Write: T5’s Timestamp is > A’s WriteTS

A

ReadTS

WriteTS

Page 46: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Writes before Younger WritesT4(40)

Write A

T5(50)

Write A

40

A

ReadTS

WriteTS

OK to Write: T5’s Timestamp is > A’s WriteTS

A

ReadTS

WriteTS50

Page 47: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Writes before Younger WritesT4(40)

Write A

T5(50)

Write A

40

A

ReadTS

WriteTS

OK to Write: T5’s Timestamp is > A’s WriteTS

T4(40)

Write A

T5(50)

Write A

A

ReadTS

WriteTS50

Page 48: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Writes before Younger WritesT4(40)

Write A

T5(50)

Write A

40

A

ReadTS

WriteTS

OK to Write: T5’s Timestamp is > A’s WriteTS

T4(40)

Write A

T5(50)

Write A

50

A

ReadTS

WriteTS50

Page 49: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Writes before Younger WritesT4(40)

Write A

T5(50)

Write A

40

A

ReadTS

WriteTS

OK to Write: T5’s Timestamp is > A’s WriteTS

T4(40)

Write A

T5(50)

Write A

50

A

ReadTS

WriteTS

Violation: T4’s Timestamp is < A’s WriteTS.

50

Page 50: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

TSO: Older Writes before Younger WritesT4(40)

Write A

T5(50)

Write A

40

A

ReadTS

WriteTS

OK to Write: T5’s Timestamp is > A’s WriteTS

T4(40)

Write A

T5(50)

Write A

50

A

ReadTS

WriteTS

Violation: T4’s Timestamp is < A’s WriteTS.T4 should have been there already. T4 dies.

50

Page 51: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Summary• Reading: you cannot read a younger transaction’s value

– Transaction’s TS must be >= data item’s write TS• Writing: you cannot write what a younger transaction 

has read– Transaction’s TS must be >= data item’s read TS

• Writing: you cannot overwrite a younger transaction’s value– Transaction’s TS must be >= data item’s write TS

Page 52: Timestamps for Serializabilityibl/450/pdf/view-on-line... · T1(10) Read A Read B Write A T2(20) Read C Read B Write B Read D T3(30) Read C Write C Write E Timestamps in parentheses

Notes• TSO: killed transaction restarted with new Timestamp– younger transactions favored by rules

• TSO protocol does not use locks so NO Deadlock• TSO protocol guarantees serializable schedules• TSO drawback: transactions killed unnecessarily