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 1w4LXV-0026mo-1B for pgsql-hackers@arkaria.postgresql.org; Sun, 22 Mar 2026 16:20:33 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w4LXS-00Dd6P-1o for pgsql-hackers@arkaria.postgresql.org; Sun, 22 Mar 2026 16:20:30 +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 1w4LXR-00Dd6G-1u for pgsql-hackers@lists.postgresql.org; Sun, 22 Mar 2026 16:20:30 +0000 Received: from fhigh-a1-smtp.messagingengine.com ([103.168.172.152]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w4LXP-00000000USU-3rsx for pgsql-hackers@postgresql.org; Sun, 22 Mar 2026 16:20:29 +0000 Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44]) by mailfhigh.phl.internal (Postfix) with ESMTP id 9D43614001F2; Sun, 22 Mar 2026 12:20:26 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-04.internal (MEProxy); Sun, 22 Mar 2026 12:20:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=anarazel.de; h= cc:cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1774196426; x=1774282826; bh=pPP83eh43O /xwahhNfnnOWdIrvRbhVIGi5sBRCDw0rI=; b=cyHZNikgq0T/z5nwSnw3FAEbCC 93PSJZvugGboTPujqdYJWjZ98xRlwIafHcyR8hDDGou2nT5FXEkm/bGqD1OQaG3I VVzFppURnUFz2X3TyzSHO8xS0Qpk/7LRYaumNg7sjcjWWq1cx01QIrmKs5PxpzXN PoplVGHHgxNsDruyP/4RmDouA1ncZ8MaukGyShCQHPdm1fqwheFsDXJQk1wo3FvU sBV1vmoTxO6USaxoW6ZPDCHwlUEutryNm+RxbiSAzaq/xAgF9KekhJ9KzUIztHa5 6NszfYi9hmSHjddkMgyNgCeoogHahx5GUJoQ4K/JxYGf1d20EwYDXv1DlAfw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1774196426; x=1774282826; bh=pPP83eh43O/xwahhNfnnOWdIrvRbhVIGi5s BRCDw0rI=; b=igSMCWXlC0BBhRwBWAO5S3drJPnSDllogQxAU2jSWoeU9241CkQ 2/Jw+NTfaanQUfiVNlsILSDGrHsvzrDq23b+BP5pEgJTzCTQhKrM2jJDUOzdJjhv 08xFFIopqxhwsE1ZSfLIMcEUSzVppomJgwsfvKvc/HKe/x3T9g94iDgi+t1wV6lv U2WirKrOEjkkLXY31WoGPAi16JOaPDQ2dwjX9iXPLFGluIyLy+sDtJkzTENgLTN+ XWG+MeMYtrjc/oClsnr9FEqUvaFketgnAJXE3xQ7Oe5BOUw5g6D0dsRYl4ARZiW6 uY611KvIDkDY9ShrwpeFNOeHn+Fc8kOj08Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdefudeivdehucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepfffhvfevuffkfhggtggujgesthdtsfdttddtvdenucfhrhhomheptehnughrvghs ucfhrhgvuhhnugcuoegrnhgurhgvshesrghnrghrrgiivghlrdguvgeqnecuggftrfgrth htvghrnhepfeffgfelvdffgedtveelgfdtgefghfdvkefggeetieevjeekteduleevjefh ueegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheprg hnughrvghssegrnhgrrhgriigvlhdruggvpdhnsggprhgtphhtthhopedvpdhmohguvgep shhmthhpohhuthdprhgtphhtthhopehpghhsqhhlqdhhrggtkhgvrhhssehpohhsthhgrh gvshhqlhdrohhrghdprhgtphhtthhopegvvhhgvghnhidrvhhorhhophgrvghvsehtrghn thhorhhlrggsshdrtghomh X-ME-Proxy: Feedback-ID: id4a34324:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 22 Mar 2026 12:20:26 -0400 (EDT) Date: Sun, 22 Mar 2026 12:20:25 -0400 From: Andres Freund To: Evgeny Voropaev Cc: PostgreSQL Hackers Subject: Re: Compress prune/freeze records with Delta Frame of Reference algorithm Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, On 2026-03-07 21:56:18 +0800, Evgeny Voropaev wrote: > A prune/freeze record contains four sequences of integers representing > frozen, redirected, unused, and dead tuples. Currently, these > sequences are uncompressed, which adds overhead. Eliminating empty > leading bits in these offsets can reduce the size of the record, and > applying bit-packing algorithms can reduce it even further. Reducing > WAL record size also lessens the load on disk and network, which are > heavily used for storing WAL and transmitting it to replicas. For > example, with BLCKSZ equal to 8192, the maximum tuple offset is around > 580. Despite this, all offsets are stored as 16-bit integers with no > compression applied. I'm unconvinced that this is a serious problem - typically the overhead of WAL volume due to pruning / freezing is due to the full page images emitted, not the raw size of the records. Once an FPI is emitted, this doesn't matter. What gains have you measured in somewhat realistic workloads? Greetings, Andres Freund