On 03/07/2014 03:48 PM, Robert Haas wrote:
>So, there seems to be a few fairly simple and independent improvements to be
>made:
>
>1. Replace the heavy-weight lock with pin & vacuum-lock.
>2. Make it crash-safe, by adding WAL-logging
>3. Only acquire the exclusive-lock (vacuum-lock after step 1) in VACUUM for
>the squeeze phase.
>4. Cache the metapage.
>
>We still don't know if it's going to be any better than B-tree after all
>that's done, but the only way to find out is to go ahead and implement it.
I'm of the opinion that we ought to start by making splits and
vacuuming more concurrent, and then do that stuff.
Priorities are a matter of opinion, but note that for many applications
the concurrency of splits and vacuuming is pretty much irrelevant (at
least after we do bullet point 3 above). Like, if the index is mostly
read-only, or at least doesn't grow much. You'd still want it to be
crash-safe (2), and you might care a lot about the performance of scans
(1 and 4), but if splits and vacuum hold an exclusive lock for a few
seconds, that's OK if you only need to do it once in a blue moon.
- Heikki
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers