RelStorage is a storage implementation for ZODB that stores pickles in a relational database. PostgreSQL 9.0 and above (performance is best with 9.5 and above), MySQL 5.0.32+ / 5.1.34+, and Oracle 10g and 11g are currently supported. RelStorage replaced the PGStorage project.
- It is a drop-in replacement for FileStorage and ZEO.
- There is a simple way to convert FileStorage to RelStorage and back again. You can also convert a RelStorage instance to a different relational database.
- Designed for high volume sites: multiple ZODB instances can share the same database. This is similar to ZEO, but RelStorage does not require ZEO.
- According to some tests, RelStorage handles high concurrency better than the standard combination of ZEO and FileStorage.
- Whereas FileStorage takes longer to start as the database grows due to an in-memory index of all objects, RelStorage starts quickly regardless of database size.
- Supports undo, packing, and filesystem-based ZODB blobs.
- Both history-preserving and history-free storage are available.
- Capable of failover to replicated SQL databases.
zodbconvertutility to copy databases.
- Free, open source (ZPL 2.1)
The complete changelog is also there.
RelStorage is hosted at GitHub:
A test suite is run for every push and pull request submitted. Travis CI is used to test on Linux, and AppVeyor runs the builds on Windows.
Builds on Travis CI automatically submit updates to coveralls.io to monitor test coverage.
Likewise, builds on Travis CI will automatically submit updates to landscape.io to monitor code health (adherence to PEP8, absence of common code smells, etc).