B-tree concurrency control and recovery in page-server database systems

  • Authors:
  • Ibrahim Jaluta;Seppo Sippu;Eljas Soisalon-Soininen

  • Affiliations:
  • Helsinki University of Technology, HUT, Finland;University of Helsinki, Finland;Helsinki University of Technology, HUT, Finland

  • Venue:
  • ACM Transactions on Database Systems (TODS)
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

We develop new algorithms for the management of transactions in a page-shipping client-server database system in which the physical database is organized as a sparse B-tree index. Our starvation-free fine-grained locking protocol combines adaptive callbacks with key-range locking and guarantees repeatable-read-level isolation (i.e., serializability) for transactions containing any number of record insertions, record deletions, and key-range scans. Partial and total rollbacks of client transactions are performed by the client. Each structure modification such as a page split or merge is defined as an atomic action that affects only two levels of the B-tree and is logged using a single redo-only log record, so that the modification never needs to be undone during transaction rollback or restart recovery. The steal-and-no-force buffering policy is applied by the server when flushing updated pages onto disk and by the clients when shipping updated data pages to the server, while pages involved in a structure modification are forced to the server when the modification is finished. The server performs the restart recovery from client and system failures using an ARIES/CSA-based recovery protocol. Our algorithms avoid accessing stale data but allow a data page to be updated by one client transaction and read by many other client transactions simultaneously, and updates may migrate from a data page to another in structure modifications caused by other transactions while the updating transaction is still active.