Roché Compaan wrote: <snip />
I use QueueCatalog often and I know how it works. But if an application requires immediate indexing then QueueCatalog is not a solution.
Sorry if I was unclear but what I'm really asking is if it is possible to improve the conflict handling of the current indexes that we have in Zope. I am also asking if concurrent indexing in the ZODB is a realistic goal.
The reason I mentioned QueueCatalog is not because of its batch indexing in one thread, but because it has a lot of conflict handling on the queue itself. Sessions might be another good example of a product that tries hard to handle conflicts. Do these products have strategies that can be made to work for indexes?
By definition, if you're not using QueueCatalog then you don't have a queue to perform conflict resolution on. QueueCatalog does not perform conflict resolution as such, but optimises the number of cataloguing operations by applying rules to the queue to remove duplicate operations. Indexes are inherently difficult to perform conflict resolution on. As Dieter mentioned their implementation is designed for efficient reading, not efficient writing. Do you really need to have concurrent indexing? Would concurrently updating the metadata records (there is an option in QueueCatalog for this) be sufficient? Laurence