[Zope-CVS] CVS: Products/BTreeFolder2 - README.txt:1.1

Shane Hathaway shane@cvs.zope.org
Wed, 21 Aug 2002 17:03:15 -0400


Update of /cvs-repository/Products/BTreeFolder2
In directory cvs.zope.org:/tmp/cvs-serv12068

Added Files:
	README.txt 
Log Message:
Added a README for BTreeFolder2.


=== Added File Products/BTreeFolder2/README.txt ===

Contact
=======

Shane Hathaway
Zope Corporation
shane at zope dot com


BTreeFolder2 Product
====================

BTreeFolder2 is a Zope product that acts like a Zope folder but can
store many more items.

When you start filling a Zope folder with too many items, both Zope
and your browser start to get overwhelmed.  Zope has to load and store
a large object representing the folder, and the browser has to render
large HTML tables repeatedly.  Zope can handle many, many objects, but
has trouble storing a lot of objects in a single standard folder.

Zope Corporation once had an extensive on the subject.  It was decided
that we would expand standard folders to handle large numbers of
objects gracefully.  Unfortunately, Zope folders are used and extended
in so many ways today that it would be difficult to modify standard
folders in a way that would be compatible with all Zope products.

So the BTreeFolder product was born.  It stored all subobjects in a
ZODB BTree, a structure designed to allow many items without loading
them all into memory.  It also rendered the contents of the folder as
a simple select list rather than a table.  Most browsers have no
trouble rendering large select lists.

But there was still one issue remaining.  BTreeFolders still stored
the ID of all subobjects in a single database record.  If you put tens
of thousands of items in a single BTreeFolder, this meant loading and
storing a multi-megabyte database record.  Zope can do this, but it
takes a few seconds and expands an undoable database quickly.

BTreeFolder2 solves the remaining issue.  It stores not only the
subobjects but also the IDs of the subobjects in a BTree.  It also
batches the list of items in the UI, showing only 1000 items at a
time.  If you write your application carefully, you can use a
BTreeFolder2 to store as many items as will fit in physical storage.

There are products that depend on the original BTreeFolder, however.
So rather than risk breaking those products, the product has been
renamed.  You can have both products installed at the same time.  New
applications should depend on BTreeFolder2, not BTreeFolder.


Installation
============

Untar BTreeFolder2 in your Products directory and restart Zope.
BTreeFolder2 will now be available in your "Add" drop-down.

Additionally, if you have CMF installed, the BTreeFolder2 product also
provides the "CMF BTree Folder" addable type.


Future
======

BTreeFolder2 will be maintained for Zope 2.  Zope 3, however, is not
likely to require BTreeFolder, since the intention is to make Zope 3
folders gracefully expand to support many items.