We have found some extremely undesirable behaviour when using RelStorage
with Oracle RAC in the interaction of ZOID_SEQ with various Oracle tuning
parameters such as the CACHE value and ORDER/NOORDER. What we are
considering is dropping use of ZOID_SEQ entirely and simply reverting to
"SELECT MAX(zoid) FROM object_state". Because the existing code
optimistically pre-allocates OIDs anyway based on the last value of
ZOID_SEQ, we see this as being a huge win in eliminating calls to the
database. Because Oracle automatically generates an index when PRIMARY KEY
is set, the calls to MAX(zoid) are very fast when we have tested them.
* What downsides can the audience here anticipate?
* What are the chances that a change like this could make it in to the
core RelStorage distribution?
* Any other considerations that anyone can comment on?
Winterhouse Consulting Ltd
For more information about ZODB, see http://zodb.org/
ZODB-Dev mailing list - ZODB-Dev@zope.org