[Dev] ZODB is not a Storage Technology (Re: other formats )Chris McDonough 03 Nov 2002 19:15:36 -0500
On Sun, 2002-11-03 at 18:37, Kevin Altis wrote: > 7.12 bsddb -- Interface to Berkeley DB library > http://www.python.org/doc/lib/module-bsddb.html > > Based on what it says about the Berkeley DB library... > > "There are two incompatible versions of the underlying library. Version 1.85 > is widely available, but has some known bugs. Version 2 is not quite as > widely used, but does offer some improvements. The bsddb module uses the > 1.85 interface." > > Using Berkley DB has some issues, assuming that ZODB is in fact using > bsddb?! ZODB can use bsddb, but doesn't need to. ZODB has the concept of "storages", "databases" and "connections". When an application thread wants to get access to persistent data, a connection is made to a database. The database is backed by a storage. There are very few database types and connection types. Maybe one or two of each. But there are many storage types, including a single file (FileStorage), an Oracle database (OracleStorage), a set of BerkeleyDB databases (bsddb3Storage), memory (TemporaryStorage), many disk files (DirectoryStorage), and so on. If ZODB is to be used, it'd probably be a good idea for Chandler developers to start out using FileStorage. It keeps all data in one single file. It's the most widely used and most well-tested out of all the available storages. When it comes time for stress-testing developed software or scaling beyond the limits of a single file, switch to bsddbStorage or one of the other storages. Then again, bsddbStorage has historically had some of the same limitations of FileStorage (one huge "pickle" file, high memory utilization), so it might not even be worth it to use it in favor of FileStorage. Maybe experiment with DirectoryStorage instead. Also, FWIW, there is also an updated bsddb library for Python at http://pybsddb.sourceforge.net/. It supports the latest bsddb versions. I'm not certain why it's not shipping with Python itself yet, although I think I've seen some rumblings on the Python-dev list which make me think it will be included with the next major Python version. HTH, - C
|