Mostly-Optimistic Concurrency Control
for Highly Contended Dynamic Workloads on 1000 cores Tianzheng Wang, University of Toronto Hideaki Kimura*, Hewlett Packard Labs
* Currently with Oracle
Mostly-Optimistic Concurrency Control for Highly Contended Dynamic - - PowerPoint PPT Presentation
Mostly-Optimistic Concurrency Control for Highly Contended Dynamic Workloads on 1000 cores Tianzheng Wang , University of Toronto Hideaki Kimura*, Hewlett Packard Labs * Currently with Oracle OLTP on modern & future hardware Multi-socket
* Currently with Oracle
2
Transaction 1
Read A Read B Write A’ Commit? Read set: {A, B} Write set: {A’} Transaction 2 Read set: {A, B} Write set: {B’} Read A Read B Write B’ Commit
Lock(B) A, B changed? B = B’ Unlock(B) Lock(A) A, B changed? Unlock(A) Abort
3
4
5
6
7
* R. Morris. Counting large numbers of events in small registers. CACM 1978
8
Transaction 1 Read set: {B} Write set: {A’} Transaction 2 Read set: {A} Write set: {B’}
Write A Read B Write B Read A X-Lock(A) X-Lock(B) S-Lock(A)
S-Lock(B)
9
Write B Read A X-Lock(B) S-Lock(A)
10
11
Read A Read C Read B … Commit Transaction 1 Read set: {A, C} Write set: {} Locks held: {A, C}
Unlock C Lock(B)
12
Verify A, B, C
Read A Read C Read B Abort 1st run Read set: {A, C} Write set: {} Locks held: {A, C} Retry Read set: {} Write set: {} Locks held: {}
13
Read A Read C Read B Abort Read(A) – Check RLL, Lock A Lock(C)? …
Retry Read set: {A, B, C} Write set: {} Locks held: {}
1st run Read set: {A, C} Write set: {} Locks held: {A, C}
14
Check RLL Lock B Lock C
15
16
17
18
19
20