+ All Categories
Home > Technology > Quasi-Linearizability: relaxed consistency for improved concurrency.

Quasi-Linearizability: relaxed consistency for improved concurrency.

Date post: 23-Jan-2015
Category:
Upload: guy-korland
View: 1,364 times
Download: 1 times
Share this document with a friend
Description:
 
32
Quasi-Linearizability: relaxed consistency for improved concurrency Y. Afek, G. Korland, E. Yanovsky Tel-Aviv University
Transcript
Page 1: Quasi-Linearizability: relaxed consistency for improved concurrency.

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.

Motivation

• Linearizability Intuitive & clear

• BUT, requires strong synchronization

limited scalability

Page 3: Quasi-Linearizability: relaxed consistency for improved concurrency.

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.

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.

Motivation Shared Counter

• Statistical Counter

• ID generator

Page 6: Quasi-Linearizability: relaxed consistency for improved concurrency.

Motivation HashTable

• Web Cache

Page 7: Quasi-Linearizability: relaxed consistency for improved concurrency.

Motivation Cont.

• What about Stack?• What about Tree?• What about Priority Queue?

Page 8: Quasi-Linearizability: relaxed consistency for improved concurrency.

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.

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.

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.

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.

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.

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.

Quasi Linearizable Definition

Parallel Histories

LegalSequentialHistories

Page 15: Quasi-Linearizability: relaxed consistency for improved concurrency.

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.

Q-Quasi-Sequential

Quasi Linearizable Definition

Parallel Histories

LegalSequentialHistories

Page 17: Quasi-Linearizability: relaxed consistency for improved concurrency.

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.
Page 19: Quasi-Linearizability: relaxed consistency for improved concurrency.
Page 20: Quasi-Linearizability: relaxed consistency for improved concurrency.

Appendix

Page 21: Quasi-Linearizability: relaxed consistency for improved concurrency.

Counting Network (Thanks to “Art of Multiprocessor Programming, Herlihy & Shavit”)

1

Page 22: Quasi-Linearizability: relaxed consistency for improved concurrency.

Counting Network

2

1

Page 23: Quasi-Linearizability: relaxed consistency for improved concurrency.

Counting Network

3

2

1

Page 24: Quasi-Linearizability: relaxed consistency for improved concurrency.

Counting Network

3

2

1

4

Page 25: Quasi-Linearizability: relaxed consistency for improved concurrency.

Counting Network

3

2

1

4

5

Page 26: Quasi-Linearizability: relaxed consistency for improved concurrency.

Counting Network

Page 27: Quasi-Linearizability: relaxed consistency for improved concurrency.

Bitonic[k] not Linearizable

Page 28: Quasi-Linearizability: relaxed consistency for improved concurrency.

Bitonic[W] is not Linearizable

Page 29: Quasi-Linearizability: relaxed consistency for improved concurrency.

Bitonic[W] is not Linearizable

2

Page 30: Quasi-Linearizability: relaxed consistency for improved concurrency.

Bitonic[W] is not Linearizable

2

0

Page 31: Quasi-Linearizability: relaxed consistency for improved concurrency.

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.

Bitonic[W] Counting Network

Is it K-Quasi Linearizable Counter?

Yes, for K≥N*W (N-Num of threads)


Recommended