[Zope-dev] BTree folders: opinions?

Shane Hathaway shane@digicool.com
Tue, 05 Sep 2000 11:01:41 -0400


Steve Alexander wrote:
> 
> I've been reading the discussions on benchmarks of BTreeFolder verus
> standard ObjectManager dict based folders.
> 
> I have a BTreeFolder w/ Customizer support that I'd like to include in
> the DataSkinAddons package for its next release. I'll probably release a
> LargeUI Folder w/ Customizer Support, that has the BTreeFolder UI
> anyway.
> 
> However, I'm not sure whether to store the folder contents in a dict or
> a BTree.
> 
> Are dictionaries or BTrees the way to go for folders with lots of
> sub-objects?
> Anyone tried any other benchmarks?
> 
> I *suppose* it could even be configurable:
> 
> How about this for an idea:
> 
> * Management interface uses the standard Folder interface when the
>   number of objects in the contents are less than a certain amount.
>   With more objects, it switches to the BTree Folder UI.
>   This number can be reconfigured as an attribute of the folder.

Have you considered a batching UI?  The consensus here at DC when we
had the meeting about big folders was that folders with lots of objects
ought to batch.  However, once I saw how fast a simple list is, I lost
interest in batching.

> * You can switch between using a dict and a BTree to store the
>   sub-objects, on an instance-by-instance basis. The switch-over
>   will be slow, but it will be easier than changing the base-class
>   of existing instances.

You'll probably get the biggest win just by replacing the custom
__getattr__ method with a C version.  I understand that switching from
C to Python and back to C again is expensive, but a C version would
turn the path into C->C->C.  It might level the benchmarks.

Shane