Software

Shore-MT storage manager

Shore-MT is an experiment test-bed library for use by researchers who wish to write multi-threaded software that manages persistent data. Shore-MT as a storage engine provides the following capabilities:

  • transactions with 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, 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.