Summary: A simple ActiveRecord style object database intended for use with Seaside.
Author: Ramon Leon
Owner: Ramon Leon (rjl)
Co-maintainers: <None>
PackageInfo name: SandstoneDb
RSS feed:


SandstoneDb is a lightweight Prevayler style embedded object database with an ActiveRecord API that doesn't require a command pattern and works for small apps that a single Squeak image can handle. The idea is to make a Squeak image durable and crash proof and suitable for use in small office applications.

Data is kept in ram for speed and on disk for safety. All data is reloaded from disk on image startup.

Since we're dealing with live objects in memory, concurrency is handled via optional record level critical sections rather than optimistic locking and commit failures. It's up to the developer to use critical sections at the appropriate points by using the critical method on the record.

Saves are atomic for an ActiveRecord and all its non ActiveRecord children, for example, an order and its items. There is no atomic save across multiple ActiveRecords. A record is a cluster of objects that are stored in a single file together.

Assuming you have the latest SUnit (SUnitGUI-improved from Universe), all tests should pass.

For more information and API see