Quasi-Linearizability: relaxed consistency for improved concurrency.
-
Upload
guy-korland -
Category
Technology
-
view
1.365 -
download
1
description
Transcript of Quasi-Linearizability: relaxed consistency for improved concurrency.
![Page 1: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/1.jpg)
Quasi-Linearizability: relaxed consistency for improved
concurrency
Y. Afek, G. Korland, E. Yanovsky Tel-Aviv University
![Page 2: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/2.jpg)
Motivation
• Linearizability Intuitive & clear
• BUT, requires strong synchronization
limited scalability
![Page 3: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/3.jpg)
Motivation SEDA
• Highly concurrent server application
• Thread poolso A task queue and a set of consumer threads
![Page 4: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/4.jpg)
Motivation SEDA cont.
• Typically, task queue is a linearizable queue
May become a contention point
Head Tail
Task TaskTask TaskTask
Task ProducersTask Consumers
![Page 5: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/5.jpg)
Motivation Shared Counter
• Statistical Counter
• ID generator
![Page 6: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/6.jpg)
Motivation HashTable
• Web Cache
![Page 7: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/7.jpg)
Motivation Cont.
• What about Stack?• What about Tree?• What about Priority Queue?
![Page 8: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/8.jpg)
The Solution
• Relax the linearizability requirement
• Back to the SEDA example…• Strict FIFO order is not a must
Replace FIFO with Loose-FIFO.
![Page 9: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/9.jpg)
Example I
Eventual consistency
• Given a sufficiently long period of time over which no updates
are sent, we can expect
that during this period,
all updates will,
eventually, propagate
through the system and
all the replicas will be consistent.
![Page 10: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/10.jpg)
Example II
Quiescent consistency
• Operations whose occurrence is
separated by a quiescent state
should appear in the order of their occurrence.
• An object is in a quiescent state if currently there is no pending or executing operation on that object.
![Page 11: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/11.jpg)
The Solution cont.
• Relax the linearizability requirement
• Back to the SEAD example…• Strict FIFO order is not a musto Replace FIFO with Loose-FIFO.
• “Quasi-FIFO”o When a task is executed, no more than K tasks
that were inserted prior to it, are pending execution.
![Page 12: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/12.jpg)
Quasi FIFO Queue
– Random Dequeue
HeadTail
Task TaskTask Task Task
Algorithm idea:• do
• Pick a node at random from the first K nodes • dequeue its element if possible.
• If already dequeued, and the queue is not empty, repeat.
Task Task
kTask
![Page 13: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/13.jpg)
Quasi FIFO Example
T1:
T2:
T3:
enq(x) enq(z)
enq(y)
deq(z) deq(y) deq(x)NOT LIN
EARIZABLE
enq(y)enq(x) enq(z) deq(z) deq(y) deq(x)
Not Legal Sequential history
enq(y)enq(x) enq(z) deq(z) deq(y) deq(x)
Legal Sequential history
QUASI LIN
EARIZABLE
Distance 2
![Page 14: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/14.jpg)
Quasi Linearizable Definition
Parallel Histories
LegalSequentialHistories
![Page 15: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/15.jpg)
Quasi Linearizable Definition
1 2 3 4 5 6
4 1 2 3 5 6
H’
H
Distance 3
![Page 16: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/16.jpg)
Q-Quasi-Sequential
Quasi Linearizable Definition
Parallel Histories
LegalSequentialHistories
![Page 17: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/17.jpg)
Segmented Queue– Segmented Quasi-Linearizable queue
• do• Pick a random element from corresponding segment • If empty-segment (Full-segment) remove it (Add new)
• repeat
Each segment size == K.
![Page 18: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/18.jpg)
![Page 19: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/19.jpg)
![Page 20: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/20.jpg)
Appendix
![Page 21: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/21.jpg)
Counting Network (Thanks to “Art of Multiprocessor Programming, Herlihy & Shavit”)
1
![Page 22: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/22.jpg)
Counting Network
2
1
![Page 23: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/23.jpg)
Counting Network
3
2
1
![Page 24: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/24.jpg)
Counting Network
3
2
1
4
![Page 25: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/25.jpg)
Counting Network
3
2
1
4
5
![Page 26: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/26.jpg)
Counting Network
![Page 27: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/27.jpg)
Bitonic[k] not Linearizable
![Page 28: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/28.jpg)
Bitonic[W] is not Linearizable
![Page 29: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/29.jpg)
Bitonic[W] is not Linearizable
2
![Page 30: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/30.jpg)
Bitonic[W] is not Linearizable
2
0
![Page 31: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/31.jpg)
Bitonic[W] is not Linearizable
2
0
Problem is:• Red finished before Yellow started• Red took 2• Yellow took 0
But it is “Quiescently Consistent”
![Page 32: Quasi-Linearizability: relaxed consistency for improved concurrency.](https://reader034.fdocuments.net/reader034/viewer/2022051400/54c17a514a79596d308b45e7/html5/thumbnails/32.jpg)
Bitonic[W] Counting Network
Is it K-Quasi Linearizable Counter?
Yes, for K≥N*W (N-Num of threads)