Re: Deleting older versions in unique indexes to avoid page splits

From: Victor Yegorov <vyegorov(at)gmail(dot)com>
To: Peter Geoghegan <pg(at)bowt(dot)ie>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Deleting older versions in unique indexes to avoid page splits
Date: 2020-11-17 15:24:43
Message-ID: CAGnEboi3hUF04DNHBTyjdNypeiSHTY4zkUJHyWkZEWY+henu2Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

пт, 13 нояб. 2020 г. в 00:01, Peter Geoghegan <pg(at)bowt(dot)ie>:

> Attached is v8, which has the enhancements for low cardinality data
> that I mentioned earlier today. It also simplifies the logic for
> dealing with posting lists that we need to delete some TIDs from.
> These posting list simplifications also make the code a bit more
> efficient, which might be noticeable during benchmarking.
>

I've looked through the code and it looks very good from my end:
- plenty comments, good description of what's going on
- I found no loose ends in terms of AM integration
- magic constants replaced with defines
Code looks good. Still, it'd be good if somebody with more experience could
look into this patch.

Question: why in the comments you're using double spaces after dots?
Is this a convention of the project?

I am thinking of two more scenarios that require testing:
- queue in the table, with a high rate of INSERTs+DELETEs and a long
transaction.
Currently I've seen such conditions yield indexes of several GB in size
wil holding less
than a thousand of live records.
- upgraded cluster with !heapkeyspace indexes.

--
Victor Yegorov

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2020-11-17 15:31:53 Re: pg_proc.dat "proargmodes is not a 1-D char array"
Previous Message Laurenz Albe 2020-11-17 15:22:33 Re: Add session statistics to pg_stat_database