[Zodb-checkins] CVS: StandaloneZODB/bsddb3Storage - README:1.3
Barry Warsaw
barry@wooz.org
Fri, 5 Oct 2001 16:09:17 -0400
Update of /cvs-repository/StandaloneZODB/bsddb3Storage
In directory cvs.zope.org:/tmp/cvs-serv21626
Modified Files:
README
Log Message:
Updated a bunch of information, including some notes on tuning, the
need to use BerkeleyDB 3.3.11, etc.
=== StandaloneZODB/bsddb3Storage/README 1.2 => 1.3 ===
This package contains implementations for Zope/ZODB storages based
- on Sleepycat Software's BerkeleyDB 3.x and the PyBSDDB3 extension.
- These storages save ZODB data to some number of BerkeleyDB tables,
- relying on Berkeley's transaction machinery to provide reliability
- and recoverability.
+ on Sleepycat Software's BerkeleyDB and the PyBSDDB3 extension
+ module. These storages save ZODB data to some number of
+ BerkeleyDB tables, relying on Berkeley's transaction machinery to
+ provide reliability and recoverability.
Contents
@@ -57,41 +57,54 @@
Compatibility
- The Full and Minimal storages have been tested with Python 2.0 and
- 2.1, but not with Python 1.5.2. It's possible they work with
- Python 1.5.2, but it's also not likely that Python 1.5.2 will be
- explicitly supported. Full storage has been tested with Zope
- 2.3.1 (running Python 2.1) and should work, except for undo as
- described above. Transactional undo support will work with Zope
- 2.4. These storages have only been tested on Linux, and should
- work for on Unix-like operating system. Windows has been
- partially tested, so it should work, but we're not making
- promises.
+ The Full and Minimal storages have been tested with Python 2.1.1
+ but should work for any Python 2.x version. It may or may not
+ work with Python 1.5.2. It may or may not work with Python 2.2
+ alpha (as of this writing 05-Oct-2001), but it will be tested
+ against Python 2.2 when that is in beta release.
+
+ It's possible they work with Python 1.5.2, but it's also not
+ likely that Python 1.5.2 will be explicitly supported. Full
+ storage has been tested with Zope 2.3.1 (running Python 2.1) and
+ should work, except for undo as described above. Transactional
+ undo support will work with Zope 2.4. These storages have only
+ been tested on Linux, and should work for on Unix-like operating
+ system. Windows has been partially tested, so it should work, but
+ we're not making promises.
Requirements
- You must install Sleepcat BerkeleyDB 3.x and Robin Dunn's PyBSDDB
- package separately.
+ You must install Sleepcat BerkeleyDB and Robin Dunn's PyBSDDB
+ package separately. As of this writing, BerkeleyDB is at version
+ 3.3.11 and PyBSDDB is at 3.3.1. It is highly recommended that you
+ use at least these versions of the package, as we've seen locking
+ (and other) problems with earlier releases.
- To obtain the latest source release of BerkeleyDB 3.x, see
- http://www.sleepycat.com. As of this writing the latest
- BerkeleyDB release is 3.2.9, and this is the version these
- storages have been tested with. Before using BerkeleyDB, be sure
- that you comply with its licensing requirements:
+ To obtain the latest source release of BerkeleyDB, see the
+ SleepyCat site:
- http://www.sleepycat.com/licensing.html
+ http://www.sleepycat.com
To obtain the latest source release of Robin Dunn's PyBSDDB
- package, see http://pybsddb.sourceforge.net
+ package, see:
- Install both BerkeleyDB and PyBSDDB as per the instructions which
+ http://pybsddb.sourceforge.net
+
+ Install both BerkeleyDB and PyBSDDB as per the instructions that
they come with. For BerkeleyDB, it's generally wise to accept the
default "configure" options and do a "make install" as root.
PyBSDDB comes with a distutils-based setup script which should
allow you to place the package in a globally accessible directory
which is in your PYTHONPATH (e.g. "site-packages/bsddb3").
+ Be sure to apply the BerkeleyDB patch that comes with PyBSDDB, and
+ do this /before/ you run the PyBSDDB test suite, otherwise your
+ tests will core dump and leave bogus artifacts behind which will
+ hang further tests. If this happens, remove tests/db_home, apply
+ the BerkeleyDB patch and reinstall BerkeleyDB, and then re-run the
+ PyBSDDB tests.
+
When you can run the tests which ship with PyBSDDB, you'll know
you've been successful at both BerkeleyDB and PyBSDDB
installation.
@@ -261,6 +274,21 @@
set_lk_max_locks, set_lk_max_objects, and set_lk_max_lockers
respectively in DB_CONFIG. For detailed BerkeleyDB locking sizing
strategy, see http://www.sleepycat.com/docs/ref/lock/max.html.
+
+
+Tuning BerkeleyDB
+
+ BerkeleyDB has lots of knobs you can twist to tune it for your
+ application. Getting most of these knobs at the right setting is
+ an art, and will be different from system to system. We're still
+ working on recommendations with respect to the Full storage, but
+ for the time being, you should at least read the following
+ Sleepycat pages:
+
+ http://www.sleepycat.com/docs/ref/am_conf/cachesize.html
+ http://www.sleepycat.com/docs/ref/am_misc/tune.html
+ http://www.sleepycat.com/docs/ref/transapp/tune.html
+ http://www.sleepycat.com/docs/ref/transapp/throughput.html
Archival and Maintenance