Alan Runyan wrote at 2008-2-26 13:07 -0600: > ... >Most people come at ZODB with previous experience in RDBMS. > >How do they map SQL INSERT/UPDATE activities to ZODB data structures? >In a way that does not create hotspot.
I tend to views the objects in an application as belonging to three types: * primary content objects (documents, files, images, ...) * containers (folders for organisation) * global auxiliary objects (internal objects used for global tasks, such as cataloguing) For the primary content objects, workflow is usually appropriate to prevent concurrent modifying access. (Large) containers should be based on a scalable data structure with conflict resolution (such as "OOBTree"). Moreover, the ids should be chosen randomly (to ensure that concurrent insertions are likely to be widely spread over the complete structure). The most difficulties can come from the global auxiliary objects -- as there a in some way internal, not under direct control of the application. We are using a variant of "QueueCatalog" to tackle hotspots caused by cataloging. -- Dieter _______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev