c-Lock: Dynamic Lock-Coalescing for Latency-Sensitive Distributed Locking
Transactional updates to groups of keys are common to a wide class of distributed systems, spanning MapReduce-basedworkloads, distributed key-value stores and conventional distributed object databases. Such updates are typically implemented using nested transactions/ locks. The cost of such updates is critically dependent on the nesting depth, the contention on any one lock, and the coherence of keygroups. In this paper, the authors analyze techniques for coalescing key updates and associated locks to reduce nesting depth. Specifically, they demonstrate that in real workloads, the coherence of keygroup updates enables them to effectively coalesce locks to gain significant performance improvements.