Shore-MT (download) is the multi-threaded version of the SHORE (Scalable Heterogeneous Object REpository) storage manager, specifically designed for scalability in the age of multi-core architectures.
Shore-MT is an experimental test-bed library to be used by researchers who are interested in pursuing research on multi-threaded software that manages persistent data. Shore-MT as a storage engine provides the following capabilities:
- Provides ACID properties, with ARIES-based logging and recovery, primitives for partial rollback, transaction chaining, and early lock release
- Prepared-transaction support for two-phased commit
- Persistent storage structures : B+ tree indexes, R* trees (spatial indexes), and files of untyped records
- Fine-grained locking for records and B+ tree indexes with deadlock detection using dreadlocks algorithm, optional lock escalation and optional coarse-grained locking
- In-memory buffer management with optional prefetching
- Extensible statistics-gathering, option-processing, and error-handling facilities
This software runs on Pthreads, thereby providing its client software (e.g., a database server) multi-threading capabilities and resulting scalability from modern SMP and NUMA architectures, and has been used on Linux/x86-64 and Solaris/Niagara architectures.