A scalable storage manager designed for the many-core era


  Ailamaki Anastasia

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.

Project Website

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.