Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w2ACX-0002tE-1h for pgsql-hackers@arkaria.postgresql.org; Mon, 16 Mar 2026 15:49:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2ACV-00Avj2-2M for pgsql-hackers@arkaria.postgresql.org; Mon, 16 Mar 2026 15:49:52 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w2ACV-00Avit-0z for pgsql-hackers@lists.postgresql.org; Mon, 16 Mar 2026 15:49:52 +0000 Received: from mail-ua1-x930.google.com ([2607:f8b0:4864:20::930]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w2ACR-0000000029e-3rEr for pgsql-hackers@lists.postgresql.org; Mon, 16 Mar 2026 15:49:50 +0000 Received: by mail-ua1-x930.google.com with SMTP id a1e0cc1a2514c-94ac5cb71feso1221077241.2 for ; Mon, 16 Mar 2026 08:49:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773676189; cv=none; d=google.com; s=arc-20240605; b=DPkxTHIOt3wCYNol8In2IxqPXXo+NdiBkcbXyT5Z/yx0Up43n0Hleug/xDxQzKT8yn /2qlxgiyzMNMADMO5Y1+56NIukNGOwVjGd6E6xWjhF5fnKtjocuPCQBiL6YemFHKPOdk zT47kTMMrp3Gih7l35rvR1TYlCviZgV7Zk1x4fKrRJVFsGmH4jzg/ndYodn1tLz0U/lu YXH0/5NqVNm9fgmmz93F6mcPtAjT8w0aDP8MoRD9IahIha5NRrngJYPdBR/J4+K32njW DsUlfKkTfBgtFA6dv3yRtKyr06uYiaXnzEUeHcHbw4o8o/uQ1LB1A5BE0DnBHihNWL9f vpVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=/QDpmGwR6eL+Nub+wMAmBD7bN12pn03iuDybnznWnzU=; fh=tvYVfKY/PkNy05TI1w14bxEqoH9beRwWwlSf4O+tqKU=; b=YefFhueuBqhnZlg9Bj0fVwu3kr2Cf2qLh107DChKIM09RMY0Iza2+5xL5QiWeKTLuU kQiFctxk7oBBMcbP6K0VZe/yTlUy1elLd/sINWjJLgQNAICodDR3QCSjpdXbtkGooxJy xvnMOG16Snro1HosqYuPMdQD89+njevgEUIH80zXy44QdM6BGJWidzl782OefPRowP39 SNntONFjnGqEYHxE21PR+VSwUmqxLr9Dd3VK5IoVaLjlAkSGUkuctHd/l653cFtBN6Kw qtCxw6+F39KvK3oVcZRckFHzjavAIijzPiAB/B1CgdtoF87eFQx0kpb+GebSTEIMUY+2 wucA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xzilla-net.20230601.gappssmtp.com; s=20230601; t=1773676189; x=1774280989; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=/QDpmGwR6eL+Nub+wMAmBD7bN12pn03iuDybnznWnzU=; b=yQg7sOKb11xFACXgXmK/pq4Lhr2rZ7NQ5EUDbKfmFnJl9k1tGfm78v8DsAy9Gz9y7X DlmeR/0Kwy2Ra1wjck4HNooRboEUXyxe/gVxIT9txvGcGlNo8gNZVW5/92fTycryui4g jlsUuBpZlVg9o3pTm9jlSyt4D18ILGTleSvKgf3v+W6T+tavcpq9aOuRe7w2cZiHUsjN GJm1pElXbbY0cF1pQd8SGeBveho8OF9Rflk9nio7Vpm7me9V8X5ugkqffmJ6OvzfDxHn /xvt5LpM24NPjo6ZLZl0gZJcSs756MnmVx66IbebY9hyPJw0tyXXw7mvHpcrR+ihO91h sivQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773676189; x=1774280989; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=/QDpmGwR6eL+Nub+wMAmBD7bN12pn03iuDybnznWnzU=; b=c5hKOT9eAm6xGREZ5KZgQQ7COnrvKhuWjj5J5JAwquALE08784LgcHj1EfCb0AayLc eofC41iDTcL5hwlr34mhPQc5auk1vSbHCTKDche+3wIKgVgY3sVZjH0RM43JFEwZuELO 55zyPe5J/n42bSFq6aSvqD0vYXsWbLogQwkMbGLe/PvawiNRvf2bxplvBuKg6wg937U7 0xTjJ1QCFVo0YcrDKh9/yzuSL5KGbGNyME1zXctXmKT4Q/Gbds8gbFRAp/j/N3U1RAWp tr/w+TB++pcYVuHc/c1qKsM/juD6CEMtcNfYjg+zWvAu3WgeATCP0bCyhp2wKPbzUvWf +ejg== X-Forwarded-Encrypted: i=1; AJvYcCUmybYRuGOcXsCX8qQgyZnhPn7dLgOd4N5k4T30V9ydvARpjDpn9hvYW6kv6LMHZ7LR13qQAs7eZN7pw0wk@lists.postgresql.org X-Gm-Message-State: AOJu0YwCSAtuUaq0jGQnZEXyKlHy1q94o8o+UqMDJrxATpNbMYVtsYEF OaClGlfQ+8f6//l4HE4CnUYLD7xEGtavtxxNtKBzpHNBBAlgQMsuL4PR7dEtkcKgozhA5KWO6o3 d+d0oLZTDSrlAGei9u4cnbIdNBZ6+2YOiLXkaKJ1BPA== X-Gm-Gg: ATEYQzxRKfjLNkpS+YmzSU0GHKTA1Bq+VM9Cp2t20uPOG187qs+Msh3QFYxBmigkt9O SEMv27+wLApoHshQa8vxcCtnp0xrxKzEKDCz6Dcl6xXKkMTuyYasKYV0Vhz2L21XqLmkWze6G0l ocKRE0q+UAumap4UvPZy32VoNLlx8Q9eXtWqek1HcG1nHuOW8Ck6SMbQZRSP6QquRwK6wNe/+Pt p6/5k3oEoWEyfU2iaSX9IoF75a6stPx5cHou3NVzvh9SmwsVvSAXOKcinvi41NARo9gCkXHb180 0WN7x1k= X-Received: by 2002:a05:6102:38c6:b0:5fd:efb0:8563 with SMTP id ada2fe7eead31-6020e585d4dmr4703155137.26.1773676188649; Mon, 16 Mar 2026 08:49:48 -0700 (PDT) MIME-Version: 1.0 References: <202603161503.oft3hnonplyi@alvherre.pgsql> In-Reply-To: <202603161503.oft3hnonplyi@alvherre.pgsql> From: Robert Treat Date: Mon, 16 Mar 2026 11:49:36 -0400 X-Gm-Features: AaiRm51c5gR9WOCkTw1qaaRJvhs92p9EnFjCkcEqqGUvWnrfM4qyVJZptIS_f8A Message-ID: Subject: Re: Adding REPACK [concurrently] To: Alvaro Herrera Cc: Matthias van de Meent , Antonin Houska , Mihail Nikalayeu , Pg Hackers Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Mon, Mar 16, 2026 at 11:11=E2=80=AFAM Alvaro Herrera wrote: > On 2026-Mar-16, Matthias van de Meent wrote: > > > However, we don't live in that world, so I am opposed to allowing > > table owners without REPLICATION to take any/all replication slots. > > I think requiring REPACK users to have the REPLICATION priv is rather > user unfriendly. Some potential REPACK users might not have any other > use for replication at all. > For many users, I feel like repack concurrently making use of replication machinery is an implementation detail that some will find quite surprising (pg_repack doesn't use it), so I'd agree requiring REPLICATION priv is both unfriendly and a bit counter intuitive, especially if you need to run repack concurrently on a stand alone server. That said, I think Matthias is right that we can't allow "repackers" to block "replicators"... > > Note that most of my argument hinges on the impact on other, unrelated > > databases/tables/sessions. Replication slots have a hard cap defined > > at startup, and effective_wal_level increases the WAL generated by > > practically all backends. > > I'd rather have a new GUC to declare a bunch of additional slots that > are reserved exclusively for repack, set its default to something like > 3, and call it a day. If all repack slots are in use, you don't get to > run repack, period. > > A slot costs nothing if unused, and we really don't want to make the > interaction with regular replication more complicated than it is today. > I'm never excited about adding GUCs, but at first thought this seems like a decent work-around; most people are unlikely to run multiple repack concurrently's, but they can if needed. (I think the most likely use case is on clusters using the "database per customer" pattern, but if we have the guc, people will have a means to deal with it). Robert Treat https://xzilla.net