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 1wAZrv-0006XH-1W for pgsql-general@arkaria.postgresql.org; Wed, 08 Apr 2026 20:51:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wAZrt-0021eN-2Y for pgsql-general@arkaria.postgresql.org; Wed, 08 Apr 2026 20:51:22 +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.96) (envelope-from ) id 1wAZrt-0021eF-0I for pgsql-general@lists.postgresql.org; Wed, 08 Apr 2026 20:51:22 +0000 Received: from fout-a1-smtp.messagingengine.com ([103.168.172.144]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wAZrq-0000000044U-3m0z for pgsql-general@lists.postgresql.org; Wed, 08 Apr 2026 20:51:21 +0000 Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46]) by mailfout.phl.internal (Postfix) with ESMTP id D8BECEC018C for ; Wed, 8 Apr 2026 16:51:15 -0400 (EDT) Received: from phl-imap-04 ([10.202.2.82]) by phl-compute-06.internal (MEProxy); Wed, 08 Apr 2026 16:51:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=barre.sh; h=cc :content-transfer-encoding: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=1775681475; x=1775767875; bh=iedZhRvQHZs1aGPJ58nfnoNyzIYfVM4jOkUKR8q21Ww=; b= FvYqHXyEkOUTqMWgysGw43OVmUhoTOwIoavFCml/i/feTcpU7qMVYw72ouhZ44Wg 3n2XHZZN0rM24WD41AHNfBClQdrRw4q88Hvo+1e9Tr6Fz4DRejEf9jm5vR0v6MI0 9KAxUne8Fl7cMGnWYJnaf2vdysicxk0rkxOV3FE9QZqdjEoFAexFQ6xE7QUcdTak DV2t9IwkMLfK84Zl/jFnZXHOz4jGkr53tIMLk7J06e16MSs3bN1h9/lSqFsnFIL4 aPcRb1wikBSUOtoh6QSAsImBqXDipzEKU4Dah1X5gKI2bY1hic5K2/cx47Di6hJE X81fHJwQbLYqnWs1/xYIXw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=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:references :reply-to:subject:subject:to:to:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; t=1775681475; x=1775767875; bh=i edZhRvQHZs1aGPJ58nfnoNyzIYfVM4jOkUKR8q21Ww=; b=IASpMrgd1hZUA9PwJ 9X/8lKQF5spZUqyzlv0+3NufEXgFXdjj52EzX0hFQwFyy8RS6p/jitQ6SNAi+Gl6 Qc/+uqWO/0QnLTtuoaQnKh60cLiVb4HoYgL+hnNG+1kCRjeLnUkg358W5AUdN7Fb c5sMWNwCdIJyUgHWoLv3J31WONk8xV5hGAA7TEur+/Y/bALlltT7QIp66QFyg/wr 0Cr5cf8tuifTPNbZQmIqyMAA0Xyk3sBI/6sIa+qGQpo3L2kbVI7uqJ3uba7bjE2G 1SZcZ2BZ2PWroaRB4CYDPHXQT3n0yVsq2fWE7QIWgiJBfN6mJEZYUgOHLGn00AMj MYGvg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefhedrtddtgddvgeehkecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecunecujfgurhepofggfffhvffkjghfufgtgfesthhqredtre dtjeenucfhrhhomhepfdfrihgvrhhrvgcuuegrrhhrvgdfuceophhivghrrhgvsegsrghr rhgvrdhshheqnecuggftrfgrthhtvghrnhepudehhfdugfeffeejhfehtddvgfeuuedvvd eulefgudeigefgfedtfeeigeejtdelnecuffhomhgrihhnpeiivghrohhfshdrnhgvthen ucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpihgvrh hrvgessggrrhhrvgdrshhhpdhnsggprhgtphhtthhopedupdhmohguvgepshhmthhpohhu thdprhgtphhtthhopehpghhsqhhlqdhgvghnvghrrghlsehlihhsthhsrdhpohhsthhgrh gvshhqlhdrohhrgh X-ME-Proxy: Feedback-ID: i97614980:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 9C24DB6006F; Wed, 8 Apr 2026 16:51:15 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface MIME-Version: 1.0 X-ThreadId: AXRWieDhBCgs Date: Wed, 08 Apr 2026 22:50:54 +0200 From: "Pierre Barre" To: pgsql-general@lists.postgresql.org Message-Id: In-Reply-To: References: <8188513c-e089-4273-b2be-16dd0a5a0a80@app.fastmail.com> <5c512367-0f67-4bcc-9897-1acf9c0f8bd3@app.fastmail.com> <60027457-1b85-4a69-a67e-ee87f7cabd61@openvistas.net> Subject: Re: PostgreSQL on S3-backed Block Storage with Near-Local Performance 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 Hi all, Building on that, I made Postgres run in the browser using a x86 JavaScr= ipt emulator, with ZeroFS mounted in that vm through vsock-virtio that c= hannels back to a 9P websocket wrapper: https://www.zerofs.net/postgresq= l-in-the-browser Best, Pierre On Mon, Feb 16, 2026, at 12:06, Pierre Barre wrote: > Hi all, > > Circling back on this thread, ZeroFS now supports placing its WAL on=20 > local storage (or something like S3 Express One Zone). ZeroFS wal is=20 > sub-gigabyte and just there to handle frequent syncs, it doesn't act a= s=20 > writeback caching. > > Here are pgbench results with synchronous_commit =3D on, WAL on local=20 > NVMe, on a 6-core / 32GB RAM machine with a 4 Gb/s pipe: > > $ pgbench -c 100 -T 100 --protocol=3Dprepared > > transaction type: > scaling factor: 100 > query mode: prepared > number of clients: 100 > number of threads: 1 > duration: 100 s > number of transactions actually processed: 1,578,675 > number of failed transactions: 0 (0.000%) > latency average =3D 6.312 ms > tps =3D 15,843 (without initial connection time) > > Best, > Pierre > > On Fri, Jul 25, 2025, at 00:03, Jeff Ross wrote: >> On 7/24/25 13:50, Pierre Barre wrote: >> >>> It=E2=80=99s not =E2=80=9Csafe=E2=80=9D or =E2=80=9Cunsafe=E2=80=9D,= there=E2=80=99s mountains of valid workloads which don=E2=80=99t requir= e synchronous_commit. Synchronous_commit don=E2=80=99t make your system = automatically safe either, and if that=E2=80=99s a requirement, there=E2= =80=99s many workarounds, as you suggested, it certainly doesn=E2=80=99t= make the setup useless. >>> >>> Best, >>> Pierre >>> >>> On Thu, Jul 24, 2025, at 21:44, Nico Williams wrote: >>>> On Fri, Jul 18, 2025 at 12:57:39PM +0200, Pierre Barre wrote: >>>>> - Postgres configured accordingly memory-wise as well as with >>>>> synchronous_commit =3D off, wal_init_zero =3D off and wal_recyc= le =3D off. >>>> Bingo. That's why it's fast (synchronous_commit =3D off). It's al= so why >>>> it's not safe _unless_ you have a local, fast, persistent ZIL device >>>> (which I assume you don't). >>>> >>>> Nico >>>> -- >> This then begs the obvious question of how fast is this with=20 >> synchronous_commit =3D on?