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 1pPKrR-0003QY-O7 for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Feb 2023 10:06:01 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pPKrQ-0006jK-MD for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Feb 2023 10:06:00 +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 1pPKrQ-0006jB-B7 for pgsql-hackers@lists.postgresql.org; Tue, 07 Feb 2023 10:06:00 +0000 Received: from mail-yw1-x112a.google.com ([2607:f8b0:4864:20::112a]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1pPKrN-0000fG-OA for pgsql-hackers@postgresql.org; Tue, 07 Feb 2023 10:05:59 +0000 Received: by mail-yw1-x112a.google.com with SMTP id 00721157ae682-526f0b3d8d9so123457037b3.3 for ; Tue, 07 Feb 2023 02:05:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=timescale.com; s=google; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=u+IOrbtLC+IzI1SCDwq1s7Z7FtiWpRXIKla9JkW1FsE=; b=PfA/Dyk+QAZ51YJTkcAtqzCjIkS44LlNDSwqsOxHibYAGm6IN1spw/LYL8gklGl+oQ esp0HTWmFr5kZOEjZK3/GyBR0C+cBh6M0e+sbzvWu/hS0P4T8PKd/DWTyE8DXQteWLMD AxkhCbWEnB0YBK2RNl1iF85DakPSBnKsBspnKkbkwz7L/7bOmKhC3y5EGentSNw66odQ bRQxmCfR+DDJSfXUnQGclTUHY0omwfc7PANeu4zvbK4pCWD5Z/rZklzzp3CbQd2biV7Y g3VlnraMqLAsEKS569vBKnw41iNUG83Kge7AbIGlIbAVR9+s2jySY6y5VuSgfCD+OFXf eYiQ== 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=u+IOrbtLC+IzI1SCDwq1s7Z7FtiWpRXIKla9JkW1FsE=; b=o5b3CDHiUObZgXasV8ya9erDNH2+jTw2yd0MqOWkYJECpAtMvPgYCoZXKqTp6NPnVr wwiFPqzSVFQarxZm4ict8tQr0veww3HrKLDDcclV/kiOkYjpVjJplKmJdkmuOZIXWeg0 8QLy2ENl28fsJOyuAK7upTMRgZYRAfRDzGu9jvzXQ0QnnH9yb1T3LbSB5vGy8EVK84ay 5/NHweXONRH//BRyEZbP7aNUfDm1P1TDTAqAU1xHcUAeQdA9MlkcDDRq6pqGsMJSSH2j PSWB39G2udBucbNv0mk1OEn4Zy7OxQ/ElyOD2XaUAeFqdeByAWC6LswJ/k8PW2kvF4V2 tTAg== X-Gm-Message-State: AO0yUKWg1Tt4yKbSMPxp8CwKtdneZz+KKLF9UP0RUc73Iucfn1UU73HX 8MjUHGQm2sP5NlSe7ryecWnywJOrax5rLA4q+bv+olHb1qZ6hSay X-Google-Smtp-Source: AK7set9hC4GgAUtX5LwupRDniFxZ1ANexzysIE4mMmd//WStFygodmaAT0nxyRaQGUyZ4rqi04S+Qw5CwsmG6x15vfw= X-Received: by 2002:a81:8383:0:b0:462:e278:1a08 with SMTP id t125-20020a818383000000b00462e2781a08mr243820ywf.243.1675764356616; Tue, 07 Feb 2023 02:05:56 -0800 (PST) MIME-Version: 1.0 References: <20230206104917.sipa7nzue5lw2e6z@alvherre.pgsql> In-Reply-To: From: Aleksander Alekseev Date: Tue, 7 Feb 2023 13:05:45 +0300 Message-ID: Subject: Re: Pluggable toaster To: pgsql-hackers Cc: Alvaro Herrera , Matthias van de Meent , Nikita Malakhov , vignesh C , Jacob Champion , Andres Freund , Robert Haas , Greg Stark , Teodor Sigaev Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, > I believe that is a misrepresentation of the situation. ZSON had > (has?) several systemic issues and could not be accepted to /contrib/ > in the way it was implemented, and it was commented that it would make > sense that the feature of compression assisted by dictionaries would > be implemented in core. Yet still, that feature is only closely > related to pluggable TOAST, but it is not the same as making TOAST > pluggable. > > > * The community wants the feature to have a simple implementation. You > > said yourself that the idea of type-aware TOASTers is very invasive, > > and I completely agree. > > I'm not sure that this is correct either. Compression (and TOAST) is > inherently complex, and I don't think we should reject improvements > because they are complex. > The problem that I see being raised here, is that there was little > discussion and no observed community consensus about the design of > this complex feature *before* this patch with high complexity was > provided. Strictly speaking there is no such thing as "community opinion". There are different people, everyone has their own opinion. To make things more interesting the opinions change with time. I did my best to make a brief summary of 100+ messages from different people in something like 4 threads. These are things that were requested and/or no one disagrees with (at least no one said "no, put all this out of the core! and make it complicated too!"). Focusing on something (almost) no one disagrees with seems to be more productive than arguing about something everyone disagrees with. As I see it, the goal is not to be right, but rather to find a consensus most of us will be not unhappy with. > The next action that was requested is to take a step back and decide > how we would want to implement type-aware TOASTing (and the associated > patch compression dictionaries) *before* we look into the type-aware > toasting. Yes, I thought we already agreed to forget about type-aware TOASTing and compression dictionaries, and are looking for a consensus now. To clarify, I don't think that pluggable TOASTing is an absolutely bad idea. We are just not discussing this particular idea anymore, at least for now. > > * People also want this to be simple from the user perspective, as > > simple as just CREATE COMPRESSED TABLE ... [USING lz4|zstd]; > > Could you provide a reference to this? I have yet to see a COMPRESSED > TABLE feature or syntax, let alone users asking for TOAST to be as > easily usable as that feature or syntax. I was referring to the recent discussion of the new RFC. Please see [1] and below. [1]: https://www.postgresql.org/message-id/flat/20230203095540.zutul5vmsbmantbm%40alvherre.pgsql#7cce6acef0cb7eb2490715ec9d835e74 -- Best regards, Aleksander Alekseev