Concurrency control and recovery in database systems
Concurrency control and recovery in database systems
Algorithms for scalable synchronization on shared-memory multiprocessors
ACM Transactions on Computer Systems (TOCS)
UNIX systems for modern architectures: symmetric multiprocessing and caching for kernel programmers
UNIX systems for modern architectures: symmetric multiprocessing and caching for kernel programmers
Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery
Transaction Processing: Concepts and Techniques
Transaction Processing: Concepts and Techniques
Shore-MT: a scalable storage manager for the multicore era
Proceedings of the 12th International Conference on Extending Database Technology: Advances in Database Technology
Architecture of a Database System
Architecture of a Database System
The Art of Multiprocessor Programming
The Art of Multiprocessor Programming
A survey of B-tree locking techniques
ACM Transactions on Database Systems (TODS)
Data-oriented transaction execution
Proceedings of the VLDB Endowment
An analysis of Linux scalability to many cores
OSDI'10 Proceedings of the 9th USENIX conference on Operating systems design and implementation
Laws of order: expensive synchronization in concurrent algorithms cannot be eliminated
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Database engines on multicores, why parallelize when you can distribute?
Proceedings of the sixth conference on Computer systems
PLP: page latch-free shared-everything OLTP
Proceedings of the VLDB Endowment
Scalable address spaces using RCU balanced trees
ASPLOS XVII Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
Improving network connection locality on multicore systems
Proceedings of the 7th ACM european conference on Computer Systems
Scalability of write-ahead logging on multicore and multisocket hardware
The VLDB Journal — The International Journal on Very Large Data Bases
ACM Transactions on Database Systems (TODS)
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
ACM SIGOPS 24th Symposium on Operating Systems Principles
Speedy transactions in multicore in-memory databases
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
Hi-index | 0.00 |
Modern implementations of DBMS software are intended to take advantage of high core counts that are becoming common in high-end servers. However, we have observed that several database platforms, including MySQL, Shore-MT, and a commercial system, exhibit throughput collapse as load increases, even for a workload with little or no logical contention for locks. Our analysis of MySQL identifies latch contention within the lock manager as the bottleneck responsible for this collapse. We design a lock manager with reduced latching, implement it in MySQL, and show that it avoids the collapse and generally improves performance. Our efficient implementation of a lock manager is enabled by a staged allocation and de-allocation of locks. Locks are pre-allocated in bulk, so that the lock manager only has to perform simple list-manipulation operations during the acquire and release phases of a transaction. De-allocation of the lock data-structures is also performed in bulk, which enables the use of fast implementations of lock acquisition and release, as well as concurrent deadlock checking.