supporting lock-free composition of concurrent data objects
DESCRIPTION
Supporting Lock-Free Composition of Concurrent Data Objects. Daniel Cederman and Philippas Tsigas. Overview. Supporting of. LOCK-FREE. Composition. CONCURRENT DATA OBJECTS. Concurrent Data Objects. Hashtables. For example …. - PowerPoint PPT PresentationTRANSCRIPT
SUPPORTING LOCK-FREE COMPOSITION OF CONCURRENT DATA OBJECTS
Daniel Cederman and Philippas Tsigas
Overview
SUPPORTING OFCONCURRENT DATA
OBJECTS
COMPOSITION
LOCK-FREE
Concurrent Data Objects
Data structures shared between processes
and other …
Trees Skiplists
Queues
HashtablesFor example …
Synchronization Synchronization is required for
concurrency Mutual exclusion
Locks limits concurrency Busy waiting – repeated checks to see if
lock has been released or not Convoying – processes stack up before
locks A better approach is to use data
structuresthat are …
OverviewCONCURRENT DATA
OBJECTS
COMPOSITION
LOCK-FREE
Lock-free Lock-freedom is a progress guarantee
In practice it means that A fast process doesn’t
have to wait for a slowor dead process
Can’t be designed withblocking parts
No deadlocks
Shown to scale better than blocking approaches
DefinitionFor all possible
executions, at least one concurrent
operation will succeed in a finite number of its
own steps
Libraries using Lock-free Data Objects
Java Concurrency Package Threading Building Blocks by Intel .NET Parallel Extensions NOBLE Non-Blocking Library …
OverviewCONCURRENT DATA
OBJECTS
COMPOSITION
LOCK-FREE
Composition
FC
DC
A B C
FC
DA B C
Dequeue Insert
DequeueInsert
Queue Tree
Queue Tree?
Challenge Providing efficiency and correctness
while dealing with Specialized designs Few common algorithmic components Complex proofs of correctness
We target a large class of concurrent data objects
Concurrent Data Objects
Have operations for insertion and removal
of elements
Can be composed to form move operations
Trees Skiplists
Queues
Hashtables
and other …
Contributions We provide a framework that consists of
three parts Properties used to identify compatible
objects Steps needed to adapt object Algorithmic design of operation for
performinglock-free moves between adapted objects
Characterization1. Have operations equivalent to insert
and remove2. These operations are linearizable3. …4. …
Linearizability
Operation A Operation C
Operation B Operation D
Linearizable if for any concurrent history there exists a correct sequential history where …
A happens before B, if A finished before B
started
Either C happens before D
or D happens before C,if C and D are concurrent
Linearization Points
Operation A Operation C
Operation B Operation D
Linearization point
Linearization point
Linearization point
Linearization point
Linearization Points
Operation A Operation C
Operation B Operation D
Characterization1. Have operations equivalent to insert
and remove2. These operations are linearizable3. …4. …
Insert Element into BRemove Element from A
Composition
Composition
Remove - prolog
Insert - prolog
Remove - epilog
Insert - epilog
Composition
Remove - prolog
Insert - prolog
Remove - epilog
Insert - epilog
Element to remove must be accessible here!
Characterization1. Have operations equivalent to insert
and remove2. These operations are linearizable3. The element to remove is accessible
before the linearization point4. …
Composition
Remove - prolog
Insert - prolog
Remove - epilog
Insert - epilog
Linearization point is often a successful compare-and-swap
Composition
Remove - prolog
Insert - prolog
Remove - epilog
Insert - epilog
Prolog
Epilog
if(CAS(…))Only fails if
other process succeeds
Failed! Failed!Success! Failed!Failed! Success!
Success! Success!
RemoveInsert DCASFailed!Failed!Failed!
Success!
Composition
Remove - prolog
Insert - prolog
Remove - epilog
Insert - epilog
Combined using a double-word
compare-and-swap
Characterization1. Have operations equivalent to insert
and remove2. These operations are linearizable3. The element to remove is accessible
before the linearization point4. The linearization point for a successful
operation is a successful compare-and-swap
Can be composed to move operations
Compatible Concurrent Data Objects
There are a wide variety of commonly used lock-free data structures that supports these requirements Queues [PODC ‘96] Lists [PODC ‘04] Skip-Lists [IPDPS ‘03] Priority Queues [JPDC ‘05] Hash-tables [SPAA ‘02] Dictionaries [SAC ‘04] Stacks [Treiber ‘86] …
Reverts to normal compare-and-swap if used outside
move operation
Move Operation
PrologSCAS1
PrologSCAS2
EpilogEpilog
Remove operation Insert operationMove support
Performs double-word compare-and-swap
Can only fail if other process succeeds
Case Study - Stackbool pop(value)
while(true)ltop = top;if(ltop == 0) return false;value = ltop.value;if(cas(top, ltop, ltop.next))
return true;
Not a successful operation
Successful operation connected to a
successful CAS
Accessible before linearization point
Case Study - Stackbool pop(value)
while(true)ltop = top;if(ltop == 0) return false;value = ltop.value;if(scas(top, ltop, ltop.next, value))
return true;
The scas is called with the value to move
Generic Move Operation
Performance Evaluation The evaluation was performed on a
machine with an Intel Core i7 950 3GHz processor and 6GB DDR3-1333 memory
4 Cores with Hyper-ThreadingEnqueue Dequeue
Move
Enqueue Dequeue
Queue – Insert and Remove
1 2 4 6 8 10 12 14 160100200300400500600700
Blocking
Threads
Tim
e (m
s)
Queue – Move Operations
1 2 4 6 8 10 12 14 160
500
1000
1500
2000
2500Blocking
Threads
Tim
e (m
s)
Queue – Insert/Remove/Move
1 2 4 6 8 10 12 14 160200400600800
1000120014001600
Blocking
Threads
Tim
e (m
s)
1 2 4 6 8 10 12 14 160
50
100
150
200
250
Before After
Threads
Tim
e (m
s)Queue – Before/After Adaptation
Summary We provide a framework that consists of
three parts Properties used to identify compatible objects Steps needed to adapt object Algorithmic design of operation for performing
lock-free moves between adapted objects
Adaptation does not affect standard operations
For more information:www.cse.chalmers.se/research/group/dcs
Thank you!