Rick Hillegas wrote:
On 9/20/11 11:45 AM, Kathey Marsden wrote:
On 9/20/2011 11:26 AM, Rick Hillegas wrote:
I have linked DERBY-5423 to DERBY-4437. This error can now appear as a result of the work done on DERBY-4437. It is possible that the error will go away if the default preallocation range for sequences/identities is boosted from 20 values to something bigger like 200. You might try re-running the test with this property setting:

   derby.language.sequence.preallocator=200

If that does fix the problem, then we may want to consider whether 20 is too low a default for this setting.

Thank you Rick. Once an appropriate default is determined, I think it would be good to update the release note to include a specific reference to this error and actions to avoid it if it occurs on upgrade.
That sounds like a good idea.
Sadly, I think it is something that users are not likely to hit until they are in a heavily loaded production environment. Is there a way to acheive the prior behavior where there is not a risk of the error occurring?
Here are some options:

1) It's easy to achieve the prior behavior by backing out the fix for DERBY-4437. That would give up the concurrency boost provided by that work. I believe the user experience of the prior behavior is that access to the identity column goes down to single-threaded usage even at low contention levels. This could be done for 10.8.2.

2) We could tackle the follow-on issue, DERBY-5295. That's a proposal to make Derby tune the preallocation cache size in a smarter way. That chunk of work is a mini-project and not a quick fix for 10.8.2.

Thanks,
-Rick
Rick can you explain why we get the error rather than some sort of wait
or retry.

Can this error occur with the other things in the system that use preallocated chunks, or is the specific to sequences.

It seems like a bug to get an error in this case, and it even if we
auto-tune better or set higher defaults it still seems like one could
get an unexpected error.








Reply via email to