LIBTP: Portable, Modular Transactions for UNIX

Transactions provide a useful programming paradigm for maintaining logical consistency, arbitrating concurrent access, and managing recovery. In traditional UNIX systems, the only easy way of using transactions is to purchase a database system. Such systems are often slow, costly, and may not provide the exact functionality desired. This paper presents the design, implementation, and performance of LlBTP, a simple, non-proprietary transaction library using the 4.4BSD database access routines (db(3)). On a conventional transaction processing style benchmark, its performance is approximately 85% that of the database access routines without transaction protection, 200% that of using fsyuc(2) to commit modifications to disk, and 125% that of a commercial relational database system.

[1]  J. T. Robinson,et al.  On optimistic methods for concurrency control , 1979, TODS.

[2]  Philip A. Bernstein,et al.  Timestamp-Based Algorithms for Concurrency Control in Distributed Database Systems , 1980, VLDB.

[3]  S. B. Yao,et al.  Efficient locking for concurrent operations on B-trees , 1981, TODS.

[4]  Michael Stonebraker,et al.  Operating system support for database management , 1981, CACM.

[5]  Andreas Reuter,et al.  Principles of transaction-oriented database recovery , 1983, CSUR.

[6]  Michael Stonebraker,et al.  Implementation techniques for main memory database systems , 1984, SIGMOD '84.

[7]  Alfred Z. Spector,et al.  Camelot: a flexible, distributed transaction processing system , 1988, Digest of Papers. COMPCON Spring 88 Thirty-Third IEEE Computer Society International Conference.

[8]  John K. Ousterhout,et al.  Tcl: An Embeddable Command Language , 1989, USENIX Winter.

[9]  Stanley B. Zdonik,et al.  Cooperative Transaction Hierarchies: A Transaction Model to Support Design Applications , 1990, VLDB.

[10]  R. G. G. Cattell,et al.  The Engineering Database Benchmark , 1994, The Benchmark Handbook.

[11]  Michael Stonebraker,et al.  Read optimized file system designs: a performance evaluation , 1991, [1991] Proceedings. Seventh International Conference on Data Engineering.

[12]  M. W. Young,et al.  A Modular Architecture for Distributed Transaction processing , 1991, USENIX Winter.

[13]  Edward Y. Chang,et al.  An Open and Extensible Event-Based Transaction Manager , 1991, USENIX Summer.

[14]  Hamid Pirahesh,et al.  ARIES-RRH: restricted repeating of history in the ARIES transaction recovery method , 1991, [1991] Proceedings. Seventh International Conference on Data Engineering.

[15]  Mark Sullivan,et al.  An index implementation supporting fast recovery for the POSTGRES storage system , 1992, [1992] Eighth International Conference on Data Engineering.

[16]  Mendel Rosenblum,et al.  The design and implementation of a log-structured file system , 1991, SOSP '91.