I came across this library and paper this evening. It looks like some
transactional primitives to build a database engine on top of.
From the website:
Stasis is a flexible transactional storage library that is geared toward
high-performance applications and system developers. It supports concurrent
transactional storage, and no-FORCE/STEAL buffer management.
Traditionally, write-ahead-logging schemes have been closely coupled to a
relational database or other high-level system, making it difficult to make full
use of their functionality without making significant changes to complex and
tightly coupled code. Libraries such as Berkeley DB also provide lower level
interfaces, but focus on providing a narrow set of highly configurable
transactional structures. Stasis focuses on providing applications an easy to
use toolkit for building their own transactional structures.
Stasis achieves this by providing clean interfaces between its subsystems.
We hope that this will allow for the implementation of self-tuning primitives,
reducing the amount of work required to build high-performance storage systems.
Although full redo/undo logging (with nested top actions) is the default, Stasis
provides a number of logging modes, including unlogged updates to newly
allocated storage. It is appropriate for both log-structured and update-in-place
storage structures.