2016
DOI: 10.1145/3016078.2851146
|View full text |Cite
|
Sign up to set email alerts
|

Optimistic concurrency with OPTIK

Abstract: We introduce OPTIK, a new practical design pattern for designing and implementing fast and scalable concurrent data structures. OPTIK relies on the commonly-used technique of version numbers for detecting conflicting concurrent operations. We show how to implement the OPTIK pattern using the novel concept of OPTIK locks. These locks enable the use of version numbers for implementing very efficient optimistic concurrent data structures. Existing state-of-the-art lock-based data structures acquire the lock and t… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
7
0

Year Published

2016
2016
2021
2021

Publication Types

Select...
3
1
1

Relationship

2
3

Authors

Journals

citations
Cited by 7 publications
(7 citation statements)
references
References 42 publications
(54 reference statements)
0
7
0
Order By: Relevance
“…In Figure 9, we provide results for the time spent waiting for locks and the number of restarted requests. Given that BST-TK uses trylocks [22], the waiting time for locks is normally 0. However, to better capture the effects of a slow thread on this algorithm, we depict the average time spent by threads on retries due to trylock failures.…”
Section: Unresponsive Threadsmentioning
confidence: 99%
“…In Figure 9, we provide results for the time spent waiting for locks and the number of restarted requests. Given that BST-TK uses trylocks [22], the waiting time for locks is normally 0. However, to better capture the effects of a slow thread on this algorithm, we depict the average time spent by threads on retries due to trylock failures.…”
Section: Unresponsive Threadsmentioning
confidence: 99%
“…First, a thread trying to become a combiner has to contend for an additional global lock. Second, inserting a node into the list head has to make a version check, 40,41 which can incur significant cache coherence traffic. Finally, it spends extra cost on traversing better than nondelegation locks, in particular those that omit NUMA feature such as the MCS and POSIX locks.…”
Section: High Contentionmentioning
confidence: 99%
“…Therefore, we only need to add one Byte to the header to implement the spinlock. Our seqlock implementation is inspired by the OPTIK design pattern [18].…”
Section: Cache and Kvs Implementation Detailsmentioning
confidence: 99%