4. What is the ZODB?
• Object oriented database
• Used by Zope to hold everything from content
to scripts, to service configurations
sixfeetup.com/deploy2010
5. What is Filestorage?
• The default backend for Zope/ZEO
• var/filestorage/Data.fs
• Does an in-memory index at startup
• Data appends to the end
• Back-up utility is Repozo
sixfeetup.com/deploy2010
6. What is RelStorage?
• Drop in replacement
• Replaces ZEO
• Eliminates Data.fs
• Stores pickles
• Is still ZODB
• Uses relational databases
sixfeetup.com/deploy2010
8. Advantages of RelStorage
• Existing infrastructure
• Existing expertise
• Wide range of management tools
• High availability, high performance clusters
• No in-memory index at startup
• Scales well as your database grows
sixfeetup.com/deploy2010
9. Databases Supported
• MySQL 5.0.32 or better
• MySQLdb >= 1.2.2
• PostgreSQL 8.1 or better
• psycopg2
• Oracle 10g
• cx_Oracle
sixfeetup.com/deploy2010
10. How Do I Install It?
• For MySQL add the following to buildout.cfg:
eggs =
RelStorage
MySQL-Python
fake-eggs =
ZODB3 = 3.7.1
[instance]
type mysql
db plone
user plone
host localhost
password terriblepassword
sixfeetup.com/deploy2010
11. How Do I Install It? Cont.
• For PostgreSQL add the following to buildout.cfg:
eggs =
RelStorage
fake-eggs =
ZODB3 = 3.7.1
psycopg2
[instance]
type postgresql
dbname plone
user plone
host localhost
password terriblepassword
sixfeetup.com/deploy2010
12. Available Tools
• zodbconvert
• Converts from filestorage to {mysql/pgsql/oracle}
• Convert from {mysql/pgsql/oracle} to filestorage
• Convert from one Database to another
(ie: mysql to oracle)
sixfeetup.com/deploy2010
13. zodbconvert.conf
Converting from filestorage to MySQL
<filestorage source>
path /opt/default/zinstance/var/
filestorage/Data.fs
</filestorage>
<relstorage destination>
<mysql>
db plone
user plone
passwd terriblepassword
</mysql>
</relstorage>
sixfeetup.com/deploy2010
14. Running zodbconvert
lnoldan$ sudo /opt/mysql/zinstance/bin/zodbconvert --clear
zodbconvert.conf
Storages opened successfully.
All transactions copied successfully.
sixfeetup.com/deploy2010
16. There Are Pitfalls
• Added complexity
• Additional server load
• Additional memory utilization
• The database is full of pickles, not plain text
• Your database still needs to be packed
sixfeetup.com/deploy2010
17. What We Talked About
• Zope storage engines: ZEO and RelStorage
• Why you might choose RelStorage
• How to install RelStorage
• Tools for RelStorage
• Why you might not use RelStorage
sixfeetup.com/deploy2010