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.94.2) (envelope-from ) id 1u0bZ0-004DJy-GH for pgsql-hackers@arkaria.postgresql.org; Fri, 04 Apr 2025 07:34:06 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1u0bYy-00Em5d-AD for pgsql-hackers@arkaria.postgresql.org; Fri, 04 Apr 2025 07:34:04 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1u0bYx-00Em5V-TV for pgsql-hackers@lists.postgresql.org; Fri, 04 Apr 2025 07:34:04 +0000 Received: from fhigh-a4-smtp.messagingengine.com ([103.168.172.155]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1u0bYu-003JLU-2f for pgsql-hackers@postgresql.org; Fri, 04 Apr 2025 07:34:03 +0000 Received: from phl-compute-05.internal (phl-compute-05.phl.internal [10.202.2.45]) by mailfhigh.phl.internal (Postfix) with ESMTP id B160B11400D2; Fri, 4 Apr 2025 03:33:58 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-05.internal (MEProxy); Fri, 04 Apr 2025 03:33:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :reply-to:subject:subject:to:to:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; t=1743752038; x=1743838438; bh=N 8UDAHpHfFfYK7k31GgMvzIjYo/1AqVjfgKfLcH8IDk=; b=Byi2TGCFK6W/fdv0w vNPB62PnX4r2mE5dvCE9gRhP5chkf+KWGhqPYaHHW5PDnLdml3JFEeAmEjUYIn74 /uLL9wM+mtyjqnOifoxe/NgZILJk+mWJoddeNaqMy6jCU7LXiPToqjELU5MySDEd ZhX36mqnOrQBzPQzOCpdlOJC5c/6SFKVzQIH3RCaIxqxnNTCq9F/sbQuewzUmrRu Yc3g8A8/qy19W4DId8HgcZ5FgBKGkxcJbd1LJV6kzAeqpMNDvunIHjEF9QoRiGcp Vg3kEA3/tLd4nPecb9QsO+Aqkmbo34DR0ftbBwcctYZnfr/97pVejUdf4XRxJ6/j bQ1VA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdduledtkeeiucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih gvnhhtshculddquddttddmnecujfgurhepfffhvfevuffkgggtugfgjgesthekredttddt jeenucfhrhhomheptehlvhgrrhhoucfjvghrrhgvrhgruceorghlvhhhvghrrhgvsegrlh hvhhdrnhhoqdhiphdrohhrgheqnecuggftrfgrthhtvghrnhepvdektdffudfftdffffeh fffhjeejhffgieeuueekjeekfffgudffhfduffffueevnecuffhomhgrihhnpegvnhhtvg hrphhrihhsvggusgdrtghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhep mhgrihhlfhhrohhmpegrlhhvhhgvrhhrvgesrghlvhhhrdhnohdqihhprdhorhhgpdhnsg gprhgtphhtthhopeekpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopegrhhestgih sggvrhhtvggtrdgrthdprhgtphhtthhopehmrghrtghoshesfhdutddrtghomhdrsghrpd hrtghpthhtohepphgrvhgvlhdrshhtvghhuhhlvgesghhmrghilhdrtghomhdprhgtphht thhopehrvghshhhkvghkihhrihhllhesghhmrghilhdrtghomhdprhgtphhtthhopeiihh hjfihpkhhusehgmhgrihhlrdgtohhmpdhrtghpthhtohepmhgsrghntghksehgmhigrdhn vghtpdhrtghpthhtohepmhhitghhrggvlhesphgrqhhuihgvrhdrgiihiidprhgtphhtth hopehpghhsqhhlqdhhrggtkhgvrhhssehpohhsthhgrhgvshhqlhdrohhrgh X-ME-Proxy: Feedback-ID: ia2694551:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 4 Apr 2025 03:33:57 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alvh.no-ip.org; s=schmee; t=1743752034; bh=k3GBJmQV9RfJzRw1MvUOyZNg1VZaE/76jrkOT6XOUiY=; h=Date:From:To:Cc:Subject:In-Reply-To:From; b=Jnju+x8ENdrKFmqmiYY7BdPjCDMI/CtqnWlK08x/y/TCS39QM4yhXKJeF0RbaQdLb Tx3KWiVjtSledxrJasrsZsab2qQU9iycGQrw+eoP2N3ue8CFMjSPj6SAIfWGJxdeIB gsm/MKFPOzbp6xnSzjh0Eat1xMmAf5XH0RlyMVNz9L175ShvRcFA/Ge2RQW/E2ydVI HCOH7CA3pBr4ufhGm2a99aDC/jUdaqjBWRJb8RiDmec4bu3YQx//TLRNmm30wo0RKZ LXb8/dopP6D2qrz32e+FUshwVO53Y/RqmjFUXkibEgvC/mjp+3TR01n1oE8dAq52fA rhc6OozHIogyA== Received: by schmee.alvh.no-ip.org (Postfix, from userid 1000) id B0B028F; Fri, 4 Apr 2025 09:33:54 +0200 (CEST) Date: Fri, 4 Apr 2025 09:33:54 +0200 From: Alvaro Herrera To: Antonin Houska Cc: Marcos Pegoraro , Michael Banck , Junwang Zhao , Kirill Reshke , Pavel Stehule , Michael Paquier , PostgreSQL Hackers Subject: Re: why there is not VACUUM FULL CONCURRENTLY? Message-ID: <202504040733.ysuy5gad55md@alvherre.pgsql> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <178741.1743514291@localhost> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 2025-Apr-01, Antonin Houska wrote: > Besides that, it occurred to me that 0005 ("Preserve visibility > information of the concurrent data changes.") will probably introduce > significant overhead. The problem is that the table we're repacking is > treated like a catalog, for reorderbuffer.c to generate snapshots that > we need to replay UPDATE / DELETE commands on the new table. > > contrib/test_decoding can be used to demonstrate the difference > between ordinary and catalog tables: > > [.. ordinary ..] > Execution Time: 3521.190 ms > [.. catalog ..] > Execution Time: 6561.634 ms Significant indeed. Thinking about the scenarios in which I envision people using REPACK CONCURRENTLY (mostly, cases where very large tables have accumulated considerable amounts of bloat) and considering the size of the patch, I think the case for treating it as concurrent-safe is not credible, at least not at this stage -- not only because of this performance impact, but also because of the additional code complexity, which I'm really doubtful we can address at this stage. I would suggest to put that patch aside for now, maybe with a doc warning that "repacking a table would cause visibility information to be lost"; and then address that aspect later on, after this feature has gone through some battle-hardening. -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/ "Las navajas y los monos deben estar siempre distantes" (Germán Poo)