You are not logged in Log in Join
You are here: Home » Download Zope Products » OracleStorage » OracleStorage FAQ » View Document

Log in
Name

Password

 

OracleStorage FAQ

OracleStorage FAQ

What is the OracleStorage?

OracleStorage is a storage manager for the Zope object database (ZODB). By default, Zope ships with FileStorage, in which Zope's object data are stored on the file system. OracleStorage behaves the same, except object data are stored in an Oracle table.

What problem does this solve?

The hierarchical, transactional, undo-able object database is one of Zope's most electrifying features. When combined with ZEO for clustering, really new models can emerge.

However, enterprise customers want to trust the storage and retrieval of large volumes of content. Many have made large investments in relational databases for data storage, particularly Oracle. Zope's default storage, which uses a single file on disk for data storage, is not where some enterprise customers want to store their data.

The OracleStorage replaces the file system as the storage and retrieval facility for Zope object data. The entire Zope application has no realization that the data are being stored in something different. However, a battle-hardened database server is responsible for managing row boundaries, scaling to terabytes, and following established failover and backup routines.

Can this data be used outside Zope?

In a limited sense, yes. Any Oracle client can perform basic row operations on the data. However, except for Zope housekeeping data, the data for each object is stored in a "pickle", which is Python-specific format for high performance persistence.

It is straightforward to write Python applications that get at this data. It is also possible to parse the binary format from non-Python applications, and it is certainly possible to go through a Zope application using integration tools like XML-RPC and soon SOAP.

Finally, it is feasible to write custom OracleStorages that expand some of the object data into extra columns that are specific to a site's problem domain.

How is performance?

Not as fast as FileStorage, but faster than regular SQL-oriented applications. Since Zope has a tunable object cache, many requests never go to the storage and are serviced in memory. Also, since there isn't an impedance mismatch in which the object model is "flattened" into square relational data, the chances are higher that data related to a task will be in memory.

Can this replace ZEO?

Not really. In theory, ten Zopes could be backended with Oracle, which was the server managing the object data. However, Oracle does not provide clean facilities for signalling the other processes that data have changed. Thus the caching strategy in Zope would fail.

However, this could be an area of interesting research.

Can this be used with ZEO?

Certainly, and in fact, a ZEO storage server using an OracleStorage is likely to become a dominant theme for Digital Creations' consulting. None of the 4/10/48 Zope processes would have Oracle installed or use Oracle, but the storing and retrieving of object data would use an Oracle database server.

Comment

Discussion icon OracleStorage use in Zope.conf

Posted by: Patty at 2008-01-15

Hi, We are migrating from fileStorage to RDBMS(Oracle)to get ride of replication and Databackup. I have installed DCOracle2 properly and was able to migrate data.fs to _Zodb data tables in Oracle. But now after doing that when I delete the Data.fs file,restart zope instance and try to start zope again I am not able to do that. Error says no User present. When I added a emergency user site Details are lost. While Exploring I came across a note saying "use oracleStorage instead of filestorage in zope.conf". Has anybody come across or know how to configure oracleStorage in zope.conf. Any comments from anybody who already done with shifting from filestorage to Oracle database is really appreciated. Thanking you in anticipation.