[Zope] ZODB performance: reads to writes

Jim Fulton jim@digicool.com
Wed, 28 Jun 2000 10:41:11 -0400


Toby Dickenson wrote:
> 
> On Sat, 24 Jun 2000 12:43:05 -0400, "Evan Simpson" <evan@digicool.com>
> wrote:
> 
> >> Will an app as described above still suffer from problems with high
> >writes?
> 
> >There are two independent attacks on this problem underway:
> 
> >2. Implement the application-level conflict handling you read about, so that
> >Folders and Catalogs can decide that two writes don't conflict after all,
> >and merge them into a single update.
> 
> Yes, that will help
> 
> >1. Make Folders and Catalogs store meta-data about their contents in a data
> >structure consisting of small persistent objects, like B-Tree nodes.  This
> >reduces the scope of potential conflict (and the size of the update required
> >by a write) to the size of one of these nodes.
> 
> As I understand it, a BTreeFolder alone (ie without application-level
> conflict handling) will not help here.

Sure they will, because a BTree is the moral equivalent of
multiple subfolders. (This assumes that a problem in the current
BTree design is fixed, which it will be. ;)

> Folders have to ensure that all their contained elements have a
> different id. The hot-spot is the only way a Folder can achieve this.

But there is only a conflict if two transactions want to pick the 
same id.  Going to (fixed) BTrees doesn't prevent *all* conflicts, 
but it does prevent most conflicts, which will be good enough for many
applications.
 
Jim

--
Jim Fulton           mailto:jim@digicool.com   Python Powered!        
Technical Director   (888) 344-4332            http://www.python.org  
Digital Creations    http://www.digicool.com   http://www.zope.org    

Under US Code Title 47, Sec.227(b)(1)(C), Sec.227(a)(2)(B) This email
address may not be added to any commercial mail list with out my
permission.  Violation of my privacy with advertising or SPAM will
result in a suit for a MINIMUM of $500 damages/incident, $1500 for
repeats.