2014 · 33 citations · 17 references
ComputingComputer EngineeringComputer ScienceMessage PassingOperating SystemsParallel ComputingInterprocess CommunicationKernel DesignMemory ConsistencySynchronization PrimitivesVirtual MemoryAtomic InstructionsCritical SectionsMemory BarriersReader-writer SynchronizationScalable LocksScalable SynchronizationSynchronizationVirtual Memory Systems
Reader-writer locks (rwlocks) aim to maximize parallelism among readers, but many existing rwlocks either cause readers to contend, or significantly extend writer latency, or both. Further, some scalable rwlocks cannot cope with OS semantics like sleeping inside critical sections, preemption and conditional wait. Though truly scalable rwlocks exist, some of them cannot handle preemption, sleeping inside critical sections, or other important functions required inside OS kernels. This paper describes a new rwlock called the passive reader-writer lock (prwlock) that provides scalable read-side performance as well as small writer latency for TSO architectures. The key of prwlock is a version-based consensus protocol between multiple non-communicating readers and a pending writer. Prwlock leverages bounded staleness of memory consistency to avoid atomic instructions and memory barriers in readers' common paths, and uses message-passing (e.g., IPI) for straggling readers so that writer lock acquisition latency can be bounded. Evaluation on a 64-core machine shows that prwlock significantly boosts the performance of the Linux virtual memory subsystem, a concurrent hashtable and an in-memory database.
17
Evaluating MapReduce for Multi-core and Multiprocessor Systems
Colby Ranger, R. Raghuraman, Arun Penmetsa et al. · 2007 · 968 citations
Andrew Baumann, Paul Barham, Pierre-Évariste Dagand et al. · 2009 · 797 citations
Synchronization without contention
John Mellor‐Crummey, Michael L. Scott · 1991 · 142 citations