Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:
> If multiple inserters failed to split, the index might still be overfull,
> but eventually, the index will not be overfull and split attempts will stop.
> (We could make a successful splitter loop to see if the index is still
> overfull, but I think I prefer distributing the split overhead across
> successive insertions.)
If one backend is executing a query but the client has paused reading records,
is it possible the shared lock on the index bucket would be held for a long
time?
If so wouldn't it be possible for an arbitrarily large number of records to be
inserted while the lock is held, eventually causing the bucket to become
extremely large? Is there a maximum size at which the bucket split MUST
succeed or is it purely a performance issue that the buckets be reasonably
balanced?
--
greg