Wednesday, September 17, 2008

Stasis: Flexible Transactional Storage, Sears & Brewer

Stasis is a transactional storage library that bases a number of its policies on ARIES. It uses write-ahead logging techniques to support redoing and undoing transactions in the event of recovery, both of which are necessary to support no-force and steal. Stasis also uses ARIES' notions of LSNs, CLRs, and nested top actions. The authors compared Stasis and a similar system, Berkeley DB, with respect to their hash table implementations, handling of concurrent requests, and object-persistence optimizing; Stasis seemed to do as well as or better than Berkeley DB in each of these aspects.

Consistent with the "Systems View," Stasis is noteworthy in that it is extensible, allowing for the addition of user operations, a LSN-free version of recovery, different data layouts, and any other number of specializations. The authors make a number of assertions about these different features Stasis "probably" could handle, but unfortunately few of these had actually been implemented at the time of the writing. As a measure of how simple/complex Stasis is, the authors included a count of its lines of code, which was an interesting metric to see.

No comments: