| From: | Madhav Madhusoodanan <madhavmadhusoodanan(at)gmail(dot)com> |
|---|---|
| To: | Kirk Wolak <wolakk(at)gmail(dot)com> |
| Cc: | Matthias van de Meent <boekewurm+postgres(at)gmail(dot)com>, Andrey Borodin <x4mmm(at)yandex-team(dot)ru>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Nikolay Samokhvalov <nik(at)postgres(dot)ai> |
| Subject: | Re: [WiP] B-tree page merge during vacuum to reduce index bloat |
| Date: | 2026-02-26 21:03:22 |
| Message-ID: | CAKw2Pb2wV=L4yeAqj27wJ1wptHt1mnBaQ5t4YuLLe+M5aU6ESg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Tue, Aug 26, 2025 at 2:11 PM Kirk Wolak <wolakk(at)gmail(dot)com> wrote:
> I do have a question, one of the IDEAS we discussed was to ADD a new page that combined the 2 pages.
Would the flow then be as follows? Please correct me if I'm wrong:
Start: Parent page P, with adjacent child pages A -> B -> C -> D.
Pages B and C are sparse enough and are about to be merged.
1: Acquire lock on pages B and C
2: Create a new page N, which copies the tuples in pages B and C
3: Acquire lock on parent page P, update the separator keys in P,
release lock on P
4: Update pointers such that pages link like so: A -> N -> D
5: Release lock on pages B and C
Regards,
Madhav
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2026-02-26 21:52:34 | Re: Non-text mode for pg_dumpall |
| Previous Message | Sami Imseih | 2026-02-26 20:44:32 | Re: Fix bug in multixact Oldest*MXactId initialization and access |