Concurrency control performance modeling: alternatives and implications
ACM Transactions on Database Systems (TODS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Algorithms for scalable synchronization on shared-memory multiprocessors
ACM Transactions on Computer Systems (TOCS)
Scalable reader-writer synchronization for shared-memory multiprocessors
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Shoring up persistent applications
SIGMOD '94 Proceedings of the 1994 ACM SIGMOD international conference on Management of data
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
A fast general-purpose hardware synchronization mechanism
SIGMOD '85 Proceedings of the 1985 ACM SIGMOD international conference on Management of data
Synchronization with eventcounts and sequencers
Communications of the ACM
Speculative lock elision: enabling highly concurrent multithreaded execution
Proceedings of the 34th annual ACM/IEEE international symposium on Microarchitecture
High performance dynamic lock-free hash tables and list-based sets
Proceedings of the fourteenth annual ACM symposium on Parallel algorithms and architectures
Transactional lock-free execution of lock-based programs
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors
IEEE Transactions on Parallel and Distributed Systems
Queue Locks on Cache Coherent Multiprocessors
Proceedings of the 8th International Symposium on Parallel Processing
Locking and Latching in a Memory-Resident Database System
VLDB '92 Proceedings of the 18th International Conference on Very Large Data Bases
Dynamic decentralized cache schemes for mimd parallel processors
ISCA '84 Proceedings of the 11th annual international symposium on Computer architecture
ACM SIGOPS Operating Systems Review
Lock-free linked lists and skip lists
Proceedings of the twenty-third annual ACM symposium on Principles of distributed computing
A Fair Fast Scalable Rea,der-Writer Lock
ICPP '93 Proceedings of the 1993 International Conference on Parallel Processing - Volume 02
Preemption adaptivity in time-published queue-based spin locks
HiPC'05 Proceedings of the 12th international conference on High Performance Computing
Shore-MT: a scalable storage manager for the multicore era
Proceedings of the 12th International Conference on Extending Database Technology: Advances in Database Technology
A new look at the roles of spinning and blocking
Proceedings of the Fifth International Workshop on Data Management on New Hardware
Improving OLTP scalability using speculative lock inheritance
Proceedings of the VLDB Endowment
A method for analysis and solution of scalability bottleneck in DBMS
Proceedings of the 2010 Symposium on Information and Communication Technology
Proceedings of the 2nd ACM/SPEC International Conference on Performance engineering
Latch-free data structures for DBMS: design, implementation, and evaluation
Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data
Hi-index | 0.00 |
Critical sections in database storage engines impact performance and scalability more as the number of hardware contexts per chip continues to grow exponentially. With enough threads in the system, some critical section will eventually become a bottleneck. While algorithmic changes are the only long-term solution, they tend to be complex and costly to develop. Meanwhile, changes in enforcement of critical sections require much less effort. We observe that, in practice, many critical sections are so short that enforcing them contributes a significant or even dominating fraction of their total cost and tuning them directly improves database system performance. The contribution of this paper is two-fold: we (a) make a thorough performance comparison of the various synchronization primitives in the database system developer's toolbox and highlight the best ones for practical use, and (b) show that properly enforcing critical sections can delay the need to make algorithmic changes for a target number of processors.