Benjamin Smith <lists(at)benjamindsmith(dot)com> writes:
> On Thursday 25 January 2007 09:53, Douglas McNaught wrote:
>> Nature of the beast. Sequence increments aren't rolled back on
>> transaction abort (for performance and concurrency reasons), so you
>> should expect gaps.
>
> Behavior long ago noted and accounted for. But I've always wondered why this
> was so? Is there a specific reason for this behavior?
Being able to roll back a sequence increment would require locking the
sequence for the duration of the transaction, which would kill
concurrency.
-Doug