BRAVO – Biased Locking for Reader-Writer Locks

10/03/2018
by   David Dice, et al.
0

Designers of modern reader-writer locks confront a difficult trade-off related to reader scalability. Locks that have a compact memory representation for active readers will typically suffer under high intensity read-dominated workloads when the "reader indicator"' state is updated frequently by a diverse set of threads, causing cache invalidation and coherence traffic. Other designs, such as cohort reader-writer locks, use distributed reader indicators, one per NUMA node. This improves reader-reader scalability, but also increases the size of each lock instance. We propose a simple transformation BRAVO, that augments any existing reader-writer lock, adding just two integer fields to the lock instance. Readers make their presence known to writers by hashing their thread's identity with the lock address, forming an index into a visible readers table. Readers attempt to install the lock address into that element in the table, making their existence known to potential writers. All locks and threads in an address space can share the visible readers table. Updates by readers tend to be diffused over the table, resulting in a NUMA-friendly design. Crucially, readers of the same lock tend to write to different locations in the array, reducing coherence traffic. Specifically, BRAVO allows a simple compact lock to be augmented so as to provide scalable concurrent reading but with only a modest increase in footprint.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/08/2022

IcebergHT: High Performance PMEM Hash Tables Through Stability and Low Associativity

Modern hash table designs strive to minimize space while maximizing spee...
research
05/01/2019

Separate Chaining Meets Compact Hashing

While separate chaining is a common strategy for resolving collisions in...
research
12/30/2020

When Load Rebalancing Does Not Work for Distributed Hash Table

Distributed hash table (DHT) is the foundation of many widely used stora...
research
01/06/2023

GCS: Generalized Cache Coherence For Efficient Synchronization

We explore the design of scalable synchronization primitives for disaggr...
research
09/22/2020

Tabling Optimization for Contextual Abduction

Tabling for contextual abduction in logic programming has been introduce...
research
10/03/2018

TWA – Ticket Locks Augmented with a Waiting Array

The classic ticket lock consists of ticket and grant fields. Arriving th...

Please sign up or login with your details

Forgot password? Click here to reset