| Date | : | Monday, September 19, 2005 |
| Speaker | : | Russell Sears |
| Affiliation | : | UC Berkeley |
| Talk Title | : | A Flexible, Extensible Transaction Framework |
| Slides | : |
Existing transactional systems are designed to handle specific workloads. Unfortunately, the implementations of these systems are monolithic and hide their transactional infrastructures underneath a SQL interface. Lower-level implementations such as Berkeley DB efficiently serve a wider variety of workloads and are built in a more modular fashion. However, they do not provide APIs to allow applications to build upon and modify low-level policies such as allocation strategies, page layout or details of recovery semantics. Furthermore, data structure implementations are typically not broken into separable, public APIs, which discourages the implementation of new transactional data structures.
Modern object-oriented programming languages such as C++ or Java handle the problem differently. Such languages typically provide a large number of data storage algorithm implementations. These structures may be used interchangeably with application-specific data collections, and collection implementations may be composed into more sophisticated data structures. We have implemented LLADD (/yad/), an extensible transactional storage library that takes a composable, layered approach to transactional storage. We present some of its high level features and performance characteristics and discuss our plans to extend the system into distributed domains. Finally we introduce our current research focus, the application of automated program verification and optimization techniques to application specific extensions. Such techniques should significantly enhance the usability and performance of our system, allowing application developers to implement sophisticated cross-layer optimizations easily.