[Zope-dev] OracleStorage Used in a Production Environment

Matthew T. Kromer matt@zope.com
Wed, 30 Jan 2002 13:11:45 -0500


Eric Roby wrote:

>Mathew
>
>Thanks for the quick response.  My previous Zope project worked out great.
>I feel very comfortable with the speed and stability of ZODB.  However, I
>was only managing 40,000+ objects.  My new project has the potential of
>exceeding a million objects.  That plus the fact that they (the customer)
>have already invested in 9i and an Oracle DB administrator.  So I am
>compelled to explore this as an alternative to ZODB.
>
>Are there any implications to using OracleStorage with regard to ZCatalog
>and acessing other Oracle tables via Z SQL Methods ?
>
>Again ... Thanks
>
>Eric
>


Well, OracleStorage works just like a FileStorage, except that it saves 
pickled objects in Oracle rather than in a big disk file.  So, ZCatalog 
doesn't have any bearing on it -- most ZCatalog objects are actually 
quite small -- about 500 or so bytes.  You also can still continue to 
have Zope clients access Oracle directly, even though the same oracle 
instance is serving them via ZEO and OracleStorage.

Generally, the only advantage to OracleStorage is psychological; some 
people get a better feeling if their data is stored "in Oracle".  Is it 
better?  That's a judgement call.  Oracle can do certain things for you 
that FileStorage can't (remote replication etc) but in practice people 
are looking for the answer to "what's the best bucket for me to carry 
around data in?"  Certainly you can make the case that FileStorage is 
simpler, and arguably easier to back up.  I would only advocate 
OracleStorage if FileStorage is inadequate.   40,000 objects is not a 
lot of objects for FileStorage.  A million objects?  Well, the risk 
factor is making sure your large file support works :)  A good backup 
utility for Oracle may be able to back up data incrementally -- most 
filesystem backup utilites back up whole files on update, rather than 
backing up just the changed portions of a file -- so a huge database 
might be easier to back up to tape with Oracle than with FileStorage.

The inappropriate thing to do is allow a system with 1,000,000 objects 
to touch  all of the objects in a single operation (like "Find" from the 
ZMI tab).

Also, keep in mind that this is still ZODB -- just a different storage. 
 Most of the time, ZODB and FileStorage are used interchangably, but 
they aren't identical.  ZODB is more of an API specification that a 
storage must meet, so FileStorage is a specific implementation (as is 
OracleStorage.)