Re: Pluggable toaster

From: Nikita Malakhov <hukutoc(at)gmail(dot)com>
To: Jacob Champion <jchampion(at)timescale(dot)com>
Cc: Aleksander Alekseev <aleksander(at)timescale(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Andres Freund <andres(at)anarazel(dot)de>, Matthias van de Meent <boekewurm+postgres(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Greg Stark <stark(at)mit(dot)edu>, Teodor Sigaev <teodor(at)sigaev(dot)ru>
Subject: Re: Pluggable toaster
Date: 2022-09-23 19:54:54
Message-ID: CAN-LCVN+jjUN3WwY29xbgv3denB2pREYP-ibKY3+62KD0HPkzw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi hackers!

Cfbot is not happy with previous patchset, so I'm attaching new one,
rebased onto current master
(15b4). Also providing patch with documentation package, and the second one
contains large
README.toastapi file providing additional in-depth docs for developers.

Comments would be greatly appreciated.

Also, after checking patch sources I have a strong opinion that it needs
some refactoring -
move all files related to TOAST implementation into new folder
/backend/access/toast where
Generic (default) Toaster resides.

Patchset consists of:
v15-0001-toaster-interface.patch - Pluggable TOAST API interface along with
reference TOAST mechanics;
v15-0002-toaster-default.patch - Default TOAST re-implemented using Toaster
API;
v15-0003-toaster-docs.patch - Pluggable TOAST API documentation package

On Tue, Sep 13, 2022 at 7:50 PM Jacob Champion <jchampion(at)timescale(dot)com>
wrote:

> On Mon, Sep 12, 2022 at 11:45 PM Nikita Malakhov <hukutoc(at)gmail(dot)com>
> wrote:
> > It would be more clear for complex data types like JSONB, where
> developers could
> > need some additional functionality to work with internal representation
> of data type,
> > and its full potential is revealed in our JSONB toaster extension. The
> JSONB toaster
> > is still in development but we plan to make it available soon.
>
> Okay. It'll be good to have that, because as it is now it's hard to
> see the whole picture.
>
> > On installing dummy_toaster contrib: I've just checked it by making a
> patch from commit
> > and applying onto my clone of master and 2 patches provided in previous
> email without
> > any errors and sll checks passed - applying with git am, configure with
> debug, cassert,
> > depend and enable-tap-tests flags and run checks.
> > Please advice what would cause such a behavior?
>
> I don't think the default pg_upgrade tests will upgrade contrib
> objects (there are instructions in src/bin/pg_upgrade/TESTING that
> cover manual dumps, if you prefer that method). My manual steps were
> roughly
>
> =# CREATE EXTENSION dummy_toaster;
> =# CREATE TABLE test (t TEXT
> STORAGE external
> TOASTER dummy_toaster_handler);
> =# \q
> $ initdb -D newdb
> $ pg_ctl -D olddb stop
> $ pg_upgrade -b <install path>/bin -B <install path>/bin -d
> ./olddb -D ./newdb
>
> (where <install path>/bin is on the PATH, so we're using the right
> binaries).
>
> Thanks,
> --Jacob
>

--
Regards,
Nikita Malakhov
Postgres Professional
https://postgrespro.ru/

Attachment Content-Type Size
v15-0002-toaster-default.patch.gz application/x-gzip 28.9 KB
v15-0003-toaster-docs.patch.gz application/x-gzip 5.9 KB
v15-0001-toaster-interface.patch.gz application/x-gzip 48.8 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Melih Mutlu 2022-09-23 20:14:09 Re: Summary function for pg_buffercache
Previous Message Nathan Bossart 2022-09-23 17:41:54 Re: O(n) tasks cause lengthy startups and checkpoints