Alfred Perlstein <bright@wintelcom.net> writes:
> I'm unsure if it's possible, but somehow storing the last place one
> 'gave up' and decided to split the page could offer a useful next-start
> for the next insert.
I think that that would create problems with concurrency --- the
Lehman-Yao btree algorithm is designed around the assumption that
writers only move right and never want to go back left to change
a prior page. So once we've moved right we don't get to go back to
the start of the chain of duplicates.
> For some reason it looks like your algorithm might cause
> problems because it plain gives up after 10 pages?
"Give up" just means "stop looking for already-existing free space,
and make some the hard way". The steady-state average space utilization
of this way would be somewhat worse than the existing code, probably,
but I don't see that as a big problem.
regards, tom lane