This article is from the Object-Oriented Technology FAQ, by Bob Hathaway email@example.com with numerous contributions by others.
The Texas Persistent Store, version 0.1
Texas is a simple, portable, high-performance and (best of all) FREE
persistent store for C++ using "pointer swizzling at page fault time"
to translate persistent addresses to hardware-supported virtual addresses.
Texas is built on top of a normal virtual memory, and relies on the
underlying virtual memory system for caching. It uses user-level virtual
memory protections to control the faulting of data from a persistent storage
file into virtual memory.
All addresses in a page are translated from a persistent format to
actual virtual addresses when the page is brought into virtual memory,
and subsequent memory references (including pointer traversals) are
just as fast as for non-persistent data.
Texas is easy to use, and is implemented as a UNIX library. It is small
and can be linked into applications. It requires no special operating
system privileges, and persistence is orthogonal to type---objects may be
allocated on either a conventional transient heap, or on the persistent
heap, as desired.
Texas supports simple checkpointing of heap data. A log-structured storage
module is under development, and will provide fast checkpointing of small
Texas is beta software, and the current prerelease version supports only
simple single-machine operation. Future releases will support client-server
operation, a flexible access control scheme, and transaction support.
Texas currently runs under SunOS and ULTRIX, using Sun CC or GNU C++.
Porting to other modern systems (e.g., OS/2, WNT, Mach) should be easy---it
requires only mprotect(), signal(), and sbrk() calls (or their equivalent)
to control virtual memory protection setting and trap handling.
Papers about the pointer swizzling scheme and Texas itself (referenced
below) are available via anonymous ftp from cs.utexas.edu (IP address
22.214.171.124), as postscript files swizz.ps and texaspstore.ps in the
The source code for Texas is also available, in the directory
Paul R. Wilson and Sheetal V. Kakkad, "Pointer Swizzling at Page Fault
Time: Efficiently and Compatibly Supporting Huge Address Spaces on Standard
Hardware," Proc. Second Int'l. Workshop on Object Orientation in Operating
Systems, Sept. 1992, Dourdan, France, pp. 364--377.
Vivek Singhal, Sheetal V. Kakkad, and Paul R. Wilson, "Texas: an Efficient,
Portable Persistent Store", Proc. Fifth Int'l. Workshop on Persistent Object
Systems, Sept. 1992, San Miniato, Italy, pp. 11-33.