[ZODB-Dev] The database root: It's a trap!
Jim Fulton
jim at zope.com
Wed May 12 07:07:29 EDT 2010
A common mistake for new users is to treat the database root
object as a big collection. There are 2 problems with this:
1. The current root object implementation isn't scalable.
2. Making the root object an application collection reduces flexibility
because the database can effectively only have a single collection.
I think this is a problem that needs to be solved. Some possible
solutions:
A. Change ZODB so that new databases have BTrees as root objects.
This has the advantage that BTrees are scalable. It has a number
of down sides:
- BTrees should only be used when keys are known to have a stable
ordering. If we had a scalable hash data structure, that would
be better.
- This encourages mistake 2 above.
B. Change ZODB so that the root object is a variant of persistent
mapping that either refuses to store more than a small number of
objects, or at least issues a warning when more than a small
number of objects is stored.
I think I prefer B. What do other folks think? Any other ideas?
Jim
--
Jim Fulton
More information about the ZODB-Dev
mailing list