Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pP1hQ-0002mU-CT for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Feb 2023 13:38:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pP1hO-0002NV-8i for pgsql-hackers@arkaria.postgresql.org; Mon, 06 Feb 2023 13:38:22 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pP1hN-0002ND-OX for pgsql-hackers@lists.postgresql.org; Mon, 06 Feb 2023 13:38:21 +0000 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pP1hL-00069w-8b for pgsql-hackers@postgresql.org; Mon, 06 Feb 2023 13:38:20 +0000 Received: by mail-ej1-x62c.google.com with SMTP id qw12so34293265ejc.2 for ; Mon, 06 Feb 2023 05:38:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=kd7WBCSmJyOTkrHQ+xCOEEsKPYfiRTxsIwL56uawBF0=; b=oUEyONjxbQezXkn0nZRvnpHAFO1KbWODykNj7eVooN+v9Zu382+1hxWuHyMXBdhW22 4ByZN/sVmJpsAVO87E80CjsegHnxrdRKjbhP06N5AOaGMtYjGNSdBZ2h3EcTnHZ00XEq dbURBkMSoj4xkUsM6y//ejMJS5oubB6TOx2jTEyP7fUTUvGGQzi2+oTQsSLYbiSjtN4D XEsoxEvkMo5xucxSKx4X78hfVHxOF5HDkNhAM/lYOwI8b57YdGVFwrQZq9w4tMJKd4pU 13i1iq0hn43HvUtFWEAkF6St22YybbtI7+7NA03CftOUwUQvfg2MHvnMhQ9rC/dhT14s l/zQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=kd7WBCSmJyOTkrHQ+xCOEEsKPYfiRTxsIwL56uawBF0=; b=a8xGcFxAjjtoEqXumMNIYm/iiBgGcEg/mDN1889HbO23319JJ4aKcLBA6H66ZwYUjE SEYLG9gfY7Zxbc0GFUsZjAXG5EwaG04rMzX5dX0GyBDFueR9egmOPeEcD0CqycBmp1H1 pUN3qR8LBvqZ9j7CkAs9qkuu+2Kex7dFJSpgCXU09nvbN6BIE5NElrr2OX7CAIVKO33y N8KiWJvSubMG1wxq7jY4a4fz/F1Mpu3Ler7IvjRD8HU9VDwCbCDcBFMmhFe1zvWOiySl UUIo41cngFcltr7H4edgp8+FmVFdrGPNzcJgSJK+02tx+Ad//nWONDLUpiL8gS7LZ8XL Rq6A== X-Gm-Message-State: AO0yUKWJ3o6CuW3p4Bron910IiaQM8QTYgXQRc1QDaf9uEREyxhuFB4/ BOOmTGJSbsI43tHuu/V80Uuwr8KdgWSCVmvFs40= X-Google-Smtp-Source: AK7set/qcOJDQSkpunwn09BD2v4DIC6oG18t8jZcDyb+pL1Gzn+gdoNNWVVE4kgKObcGf734Ksh55bklb629pPD5jeE= X-Received: by 2002:a17:906:1858:b0:87b:dbb8:7918 with SMTP id w24-20020a170906185800b0087bdbb87918mr5691188eje.186.1675690695975; Mon, 06 Feb 2023 05:38:15 -0800 (PST) MIME-Version: 1.0 References: <20230206104917.sipa7nzue5lw2e6z@alvherre.pgsql> In-Reply-To: <20230206104917.sipa7nzue5lw2e6z@alvherre.pgsql> From: Nikita Malakhov Date: Mon, 6 Feb 2023 16:38:01 +0300 Message-ID: Subject: Re: Pluggable toaster To: Alvaro Herrera Cc: vignesh C , Aleksander Alekseev , pgsql-hackers , Jacob Champion , Andres Freund , Matthias van de Meent , Robert Haas , Greg Stark , Teodor Sigaev Content-Type: multipart/alternative; boundary="000000000000afe5b305f4082407" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000afe5b305f4082407 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi! Existing TOAST has several very painful drawbacks - lack of UPDATE operation, bloating of TOAST tables, and limits that are implicitly implied on base tables by their TOAST tables, so it is seems not fair to say that Pluggable TOAST does not solve any problems but just introduces new ones. The main reason behind this decision is that keeping the first implementation on the side of the vanilla (I mean rebasing it) over time is very difficult due to the very invasive nature of this solution. So we decided to reduce changes in the core to the minimum necessary to make it available through the hooks, because the hooks part is very lightweight and simple to keep rebasing onto the vanilla core. We plan to keep this extension free with the PostgreSQL license, so any PostgreSQL user could benefit from the TOAST on steroids, and sometimes in the future it will be a much simpler task to integrate the Pluggable TOAST into the vanilla, along with our advanced TOAST implementations which we plan to keep under Open Source licenses too. On Mon, Feb 6, 2023 at 1:49 PM Alvaro Herrera wrote: > On 2023-Feb-06, Nikita Malakhov wrote: > > > Currently we're busy revising the whole Pluggable TOAST API to make it > > available as an extension and based on hooks to minimize changes in > > the core. It will be available soon. > > Hmm, I'm not sure why would PGDG want to accept such a thing. I read > "minimize changes" as "open source Postgres can keep their crap > implementation and companies will offer good ones for a fee". I'd > rather have something that can give users direct benefit -- not hide it > behind proprietary licenses forcing each company to implement their own > performant toaster. > > -- > =C3=81lvaro Herrera 48=C2=B001'N 7=C2=B057'E =E2=80=94 > https://www.EnterpriseDB.com/ > --=20 Regards, Nikita Malakhov Postgres Professional https://postgrespro.ru/ --000000000000afe5b305f4082407 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi!

Existing TOAST has= several very painful drawbacks - lack of UPDATE
operation, bloat= ing of TOAST tables, and limits that are implicitly implied
on ba= se tables by their TOAST tables, so it is seems not fair to say that
<= div>Pluggable TOAST does=C2=A0not solve any problems but just introduces ne= w
ones.

The main reason behind this deci= sion is that keeping the first implementation
on the side of the = vanilla (I mean rebasing it) over=C2=A0time is very difficult due
to the very invasive nature of this solution.

So = we decided to reduce changes in the core to the minimum necessary
to make it available through the hooks, because the hooks part is very
lightweight and simple to keep rebasing onto the vanilla core. We pl= an
to keep this extension free with the PostgreSQL license, so an= y PostgreSQL
user could=C2=A0benefit from the=C2=A0TOAST on stero= ids, and sometimes in the
future it will be a much simpler task t= o integrate=C2=A0the Pluggable TOAST into
the vanilla,=C2=A0along= with our advanced TOAST implementations which
we plan to keep un= der Open Source licenses too.


On Mon, Feb 6, 2023 at 1:= 49 PM Alvaro Herrera <alvherr= e@alvh.no-ip.org> wrote:
On 2023-Feb-06, Nikita Malakhov wrote:

> Currently we're busy revising the whole Pluggable TOAST API to mak= e it
> available as an extension and based on hooks to minimize changes in > the core. It will be available soon.

Hmm, I'm not sure why would PGDG want to accept such a thing.=C2=A0 I r= ead
"minimize changes" as "open source Postgres can keep their c= rap
implementation and companies will offer good ones for a fee".=C2=A0 I&= #39;d
rather have something that can give users direct benefit -- not hide it
behind proprietary licenses forcing each company to implement their own
performant toaster.

--
=C3=81lvaro Herrera=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A04= 8=C2=B001'N 7=C2=B057'E=C2=A0 =E2=80=94=C2=A0 https://www.Enter= priseDB.com/


--
Regards,
Nikita Malakhov
Postgres Professional=C2=A0
https://postgrespro.ru/
--000000000000afe5b305f4082407--