| From: | Andrey Borodin <x4mmm(at)yandex-team(dot)ru> |
|---|---|
| To: | Evgeny Voropaev <evgeny(dot)voropaev(at)tantorlabs(dot)com> |
| Cc: | PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: Compress prune/freeze records with Delta Frame of Reference algorithm |
| Date: | 2026-03-15 17:53:14 |
| Message-ID: | 2D414DAA-99D6-4566-86EE-E5FC8C21F4EA@yandex-team.ru |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
> On 7 Mar 2026, at 18:56, Evgeny Voropaev <evgeny(dot)voropaev(at)tantorlabs(dot)com> wrote:
>
> Looking forward to discussion!
Great idea and nice library for DFoR!
Prune/freeze records can be large, and reducing their size would help streaming
replication a lot. The algorithm itself (Delta Frame of Reference bit-packing) is
sound for sorted integer sequences.
Eventually we will have wholesale WAL compression, but proposed here type of
compression is more perspective for particular case, because it exploits knowledge
about nature of compressed data.
The patchset is, obviously, a prototype that worth working on further.
Perhaps, first thing to start is to fix CI failures [0].
I do not know if we can budle LGPL lib. Luckily it's only for tests, when all
design questions are resolved we can just re-implement tests with something else.
As a minor nit: do not use stdlib assert(), use capital Assert() :)
Are we 100% sure qsort() won't allocate something anywhere? sort_template.h seems
to be allocation-free, but just in case...
Best regards, Andrey Borodin.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Lakshmi N | 2026-03-15 18:22:16 | Re: Add missing CHECK_FOR_INTERRUPTS calls in dblink module |
| Previous Message | Mahendra Singh Thalor | 2026-03-15 17:33:34 | Re: pg_restore: remove unnecessary code from restore_all_databases function |