[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#177767: RFP: zope-btreefolder2 -- BTreeFolder2, an enhanced BTree folder for Zope



Package: wnpp
Version: unavailable; reported 2003-01-21
Severity: wishlist


* Package name    : zope-btreefolder2
  Version         : 0.5.0
  Upstream Author : Shane Hathaway <shane{at}zope{dot}com>
* URL             : http://hathaway.freezope.org/Software/BTreeFolder2
* License         : ZPL 2.0
  Description     : BTreeFolder2, an enhanced BTree folder for Zope

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

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

Zope Corporation once had an extensive discussion 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, you would still be
loading and storing a multi-megabyte folder object.  Zope can do this,
but not quickly, and not without bloating the database.

BTreeFolder2 solves this 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.  So 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 internal structure of 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.  If you're developing new applications,
you should use BTreeFolder2.

-- System Information:
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux hq 2.4.18 #6 Sun Oct 27 11:09:10 CET 2002 i686
Locale: LANG=POSIX, LC_CTYPE=da_DK




Reply to: