Proceedings of the 17th International Middleware Conference 2016
DOI: 10.1145/2988336.2988357
|View full text |Cite
|
Sign up to set email alerts
|

Locking Made Easy

Abstract: A priori, locking seems easy: To protect shared data from concurrent accesses, it is sufficient to lock before accessing the data and unlock after. Nevertheless, making locking efficient requires finetuning (a) the granularity of locks and (b) the locking strategy for each lock and possibly each workload. As a result, locking can become very complicated to design and debug.We present GLS, a middleware that makes lock-based programming simple and effective. GLS offers the classic lock-unlock interface of locks.… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
12
0

Year Published

2018
2018
2021
2021

Publication Types

Select...
3
2

Relationship

1
4

Authors

Journals

citations
Cited by 7 publications
(12 citation statements)
references
References 42 publications
0
12
0
Order By: Relevance
“…The authors designed a synchronization framework that dynamically switches between five different spin‐lock implementations with the objective of maximizing an application performance metric. GLS (Generic Locking Service) 18 is an adaptive scheme that automatically selects the lock algorithm depending on the workload features. With low contention, GLS uses a simple spin‐lock scheme, while with high contention it switches to queue‐based locks or, under high system load, to sleeping locks.…”
Section: Related Workmentioning
confidence: 99%
“…The authors designed a synchronization framework that dynamically switches between five different spin‐lock implementations with the objective of maximizing an application performance metric. GLS (Generic Locking Service) 18 is an adaptive scheme that automatically selects the lock algorithm depending on the workload features. With low contention, GLS uses a simple spin‐lock scheme, while with high contention it switches to queue‐based locks or, under high system load, to sleeping locks.…”
Section: Related Workmentioning
confidence: 99%
“…This category includes lock algorithms implementing mechanisms that detect situations in which a lock needs to adapt itself, for example to cope with changing levels of contention (i.e., how many threads concurrently attempt to acquire a lock), or to avoid lock-related pathological behaviors (e.g., preemption of the lock holder to execute a thread waiting for the lock). This category includes MCS-TimePub 4 [46], GLS [9], SANL [98], LC [52], AHMCS 5 [21] and so-called Malthusian algorithms like Malth_Spin and Malth_STP 6 [30].…”
Section: Categorizing Lock Algorithmsmentioning
confidence: 99%
“…Immediate parking. With immediate parking 8 , a thread waiting for an already held lock immediately blocks until the thread gets a chance to obtain the lock 9 . This waiting policy requires kernel support (via the futex syscall on Linux) to inform the scheduler that the thread is waiting for a lock, so that it does not try to schedule the thread until the lock is made available.…”
Section: Categorizing Lock Algorithmsmentioning
confidence: 99%
See 2 more Smart Citations