ACM Transactions on Database Systems (TODS)
ARIES/IM: an efficient and high concurrency index management method using write-ahead logging
SIGMOD '92 Proceedings of the 1992 ACM SIGMOD international conference on Management of data
The design and implementation of a log-structured file system
ACM Transactions on Computer Systems (TOCS)
Efficient locking for concurrent operations on B-trees
ACM Transactions on Database Systems (TODS)
VLDB '90 Proceedings of the 16th International Conference on Very Large Data Bases
Simple, Robust and Highly Concurrent B-trees with Node Deletion
ICDE '04 Proceedings of the 20th International Conference on Data Engineering
VLDB '04 Proceedings of the Thirtieth international conference on Very large data bases - Volume 30
A survey of B-tree locking techniques
ACM Transactions on Database Systems (TODS)
Warding off the dangers of data corruption with amulet
Proceedings of the 2011 ACM SIGMOD International Conference on Management of data
A survey of B-tree logging and recovery techniques
ACM Transactions on Database Systems (TODS)
Definition, detection, and recovery of single-page failures, a fourth class of database failures
Proceedings of the VLDB Endowment
ACM Transactions on Database Systems (TODS)
Hi-index | 0.00 |
Transactional storage and indexing is the heart of every database, not only for performance and functionality but also for reliability and availability. For high concurrency, these components must be programmed carefully with short critical sections, a variety of consistent states with short transitions, etc. Many-core CPUs exacerbate these requirements. Testing software with 100s or 1, 000s of threads is very difficult. In order to test such code, we suggest verifying the B-tree structure in each traversal. With carefully designed tree structure and node contents, a root-to-leaf pass can verify all nodes along its path comprehensively, i. e., it can verify all B-tree invariants including its consistency constraints with respect to its siblings and cousins (defined below). Thus, instead of testing the index implementation by running a stress-test and verifying the B-tree structure and contents afterwards, i. e., instead of the traditional approach, the test execution itself verifies the structure frequently and efficiently. During testing prior to a software release, frequent comprehensive verification combined with fast access to all relevant log records permits efficient root cause analysis of test failures. In deployments after software release, frequent verification and fast access to log records permits automatic, reliable, and efficient recovery of the correct, up-to-date page contents. Our contribution is an index structure that gives reliable and efficient access to all relevant log records and thus enables root cause analysis during testing and automatic recovery after deployment.