We present Reciprocating Locks, a novel mutual exclusion locking algorithm, targeting cache-coherent shared memory, that enjoys a number of desirable properties. The doorway arrival phase and the Release operation both run in constant-time. Waiting threads use local spinning and only a single waiting element is required per thread, regardless of the number of locks a thread might hold at a given time. While our lock does not provide strict FIFO admission, it still bounds bypass and has strong anti-starvation properties. The lock is compact, space efficient, and has been intentionally designed to be readily usable in real-world general purpose computing environments such as the linux kernel, pthreads, or C++. We show the lock exhibits high throughput under contention and low latency in the uncontended case. The performance of Reciprocating Locks is competitive with and often better than the best state-of-the-art scalable spin locks.

Mon 3 Mar

Displayed time zone: Pacific Time (US & Canada) change

14:00 - 15:20
Session 3: Concurrent Data Structures and Synchronization I (Session Chair: Yuanhao Wei)Main Conference at Acacia D
14:00
20m
Talk
Reciprocating Locks
Main Conference
Dave Dice Oracle Labs, Alex Kogan Oracle Labs, USA
14:20
20m
Talk
Aggregating Funnels for Faster Fetch&Add and Queues
Main Conference
Younghun Roh MIT, Yuanhao Wei University of British Columbia, Eric Ruppert York University, Panagiota Fatourou FORTH ICS and University of Crete, Greece, Siddhartha Jayanti Google Research, Julian Shun MIT
14:40
20m
Talk
Fairer and More Scalable Reader-Writer Locks by Optimizing Queue Management
Main Conference
Takashi Hoshino Cybozu Labs, Inc., Kenjiro Taura The University of Tokyo
15:00
20m
Talk
Publish on Ping: A Better Way to Publish Reservations in Memory Reclamation for Concurrent Data StructuresDistinguished Paper Award
Main Conference
Ajay Singh FORTH ICS and University of Waterloo, Trevor Brown University of Toronto