Extracting ¡More ¡ Concurrency ¡from ¡ Distributed ¡Transactions ¡ Shuai ¡Mu ¡and ¡Yang ¡Cui ¡and ¡Yang ¡Zhang ¡and ¡Wya0 ¡Lloyd ¡ and ¡Jinyang ¡Li ¡ ¡ (OSDI ¡2014) ¡ Presented ¡by: ¡Haonan ¡Lu ¡ 0 ¡
Problem ¡ • Tradi@onal ¡concurrency ¡control ¡techniques ¡like ¡2PL ¡and ¡OCC ¡ have ¡bad ¡performance ¡when ¡conten@on ¡is ¡high ¡ • Why? ¡ • 2PL ¡– ¡lock ¡queue ¡& ¡deadlocks ¡(abort) ¡ • OCC ¡– ¡abort ¡ ¡ • Too ¡many ¡abort ¡and ¡retries ¡lead ¡to ¡ • Low ¡throughput ¡ • High ¡latency ¡ • Not-‑scalable ¡for ¡distributed ¡transac@ons. ¡ ¡ ¡ 1 ¡
Problem ¡ -‑-‑ ¡compare ¡with ¡primary ¡paper ¡ • Spanner ¡ • How ¡to ¡design ¡a ¡strictly ¡serializable ¡database ¡system ¡that ¡is ¡at ¡ global ¡scale ¡and ¡accommodates ¡produc@on ¡workloads ¡ • Rococo ¡ • How ¡to ¡make ¡distributed ¡concurrency ¡control ¡more ¡performant ¡ while ¡ensuring ¡strict ¡serializability. ¡ ¡ ¡ 2 ¡
Key ¡Techniques ¡ • Reorder ¡instead ¡of ¡abort ¡ • Pieces ¡ • Immediate ¡(key/value ¡dependence) ¡ • Deferrable ¡ ¡ • Two ¡components ¡ • Offline ¡checker ¡ • Iden@fy ¡non-‑reorderable ¡pieces, ¡and ¡treat ¡them ¡specially ¡ ¡ • Run-‑@me ¡protocol ¡ • Start ¡phase ¡ • Each ¡server ¡computes ¡dependency ¡graph ¡ • Commit ¡phase ¡ • Coordinator ¡aggregates ¡dep ¡graphs ¡and ¡servers ¡re-‑order ¡pieces ¡if ¡ 3 ¡ necessary ¡for ¡strict ¡serializability ¡ ¡
4 ¡
Key ¡Technique ¡ -‑-‑ ¡how ¡related ¡to ¡primary ¡ • Spanner: ¡ • TrueTime ¡API ¡– ¡physical ¡clocks ¡with ¡bounded ¡uncertainty. ¡ ¡ • Paxos ¡+ ¡2PL/2PC ¡ ¡ ¡ • Rococo: ¡ • Insuring ¡real-‑@me ¡order ¡by ¡checking ¡dependencies ¡ • Re-‑order ¡conflic@ng ¡pieces ¡if ¡possible ¡instead ¡of ¡simply ¡abor@ng ¡ and ¡retrying. ¡ 5 ¡
Key ¡Findings ¡ 6 ¡
Key ¡Findings ¡ 7 ¡
Findings ¡ -‑-‑ ¡compare ¡to ¡primary ¡ ¡ • Spanner ¡ • Transac@on’s ¡commit ¡latency ¡is ¡determined ¡by ¡TrueTime’s ¡ uncertain ¡@me ¡and ¡Paxos ¡latency. ¡ ¡ • Base ¡value ¡of ¡uncertainty ¡@me ¡is ¡sensi@ve ¡to ¡many ¡factors ¡and ¡ could ¡be ¡big ¡in ¡some ¡cases ¡ • Rococo ¡ • Using ¡dependency ¡to ¡track ¡and ¡maintain ¡real-‑@me ¡order ¡among ¡ transac@ons ¡can ¡greatly ¡reduce ¡the ¡need ¡of ¡abor@ng ¡and ¡hence ¡ improve ¡performance ¡ ¡ ¡ 8 ¡ ¡ ¡
Take-‑away ¡ • Dependency ¡can ¡be ¡used ¡to ¡track ¡real-‑@me ¡order ¡among ¡ transac@ons. ¡ • Tradi@onal ¡concurrency ¡control ¡protocols ¡(2PL, ¡OCC) ¡are ¡not ¡ performant ¡with ¡conten@on ¡workloads. ¡ • Be0er ¡performance ¡can ¡be ¡achieved ¡by ¡deferring ¡and ¡re-‑ ordering ¡conflic@ng ¡pieces ¡instead ¡of ¡abor@ng ¡them ¡(Rococo) ¡ ¡ 9 ¡
Recommend
More recommend