LIBTP: Portable, Modular Transactions for UNIX

Margo Seltzer, Michael Olson

Abstract

Transactions provide a useful programming paradigm for maintaining logical consistency, arbitrating concurrent access, and managing recovery. In traditional UNIX systems, the only easy way o fusing 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 LIBTP, 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% of that using fsync(2) to commit modifications to disk, and 125% that of a commercial relational database system.
Postscript Postscript