Introduction
LLADD is an extensible implementation of the ARIES algorithm, a write-ahead-logging system that provides reliable transactional storage.
Traditionally, write-ahead-logging schemes have been closely coupled to a relational database or other high-level system, making if difficult to make full use of their functionality without making significant changes to complex and tightly coupled code.
LLADD allows application developers to make such changes easily, by providing clean interfaces between its subsystems and by exporting enough of its functionality to application developers to allow custom, application-specific transactional storage mechanisms to be developed easily.
Features
LLADD is still under heavy development, and we anticipate changes to a number of the API's that it exports. Here is a list of some of the features that we would like to include in the future.
Implemented and in-progress features are marked with a "*":
- Extensibility
- Custom log entries*
- Buffer manager API*
- Page layout customization*
- Collections of records*
- Application specific locking policies
- Crash Recovery
- ARIES style Analysis/Full Redo/Partial Undo*
- Fuzzy Checkpointing (for online backups)
- Log Truncation
- Storage features
- Storage of variable length records*
- Expandable, on-disk arrays of records*
- Linear Hash Table *
- B-Tree indices
- Simple interface for definition of new storage mechanisms*
- Concurrency
- Multi-Threaded*
- Lock manager to allow transactions to run at varying degrees of consistency
- Networking support (for clusters of computers)
- Transactions
- Abort / Commit*
- Prepare (for two phase commit implementations)*
- Savepoints (To allow applications to partially rollback transactions)
A design goal of our library is to avoid imposing any unnecessary structure upon the applications that make use of it. Therefore, the storage structures listed above can be used as starting points for application specific storage mechanisms, although they are also designed to be useful "out of the box".