[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.)