Locking Made Easy
Jelena Antić, Georgios Chatzopoulos, Rachid Guerraoui, Vasileios Trigonakis · 2016
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 fine-tuning (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.