|
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.
|