Re: [PROPOSAL] Doublewrite Buffer as an alternative torn page protection to Full Page Write

From: Tony ZHU <devops(at)ww-it(dot)cn>
To: 陈宗志 <baotiao(at)gmail(dot)com>
Cc: Robert Treat <rob(at)xzilla(dot)net>, Jakub Wartak <jakub(dot)wartak(at)enterprisedb(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: [PROPOSAL] Doublewrite Buffer as an alternative torn page protection to Full Page Write
Date: 2026-02-28 00:44:52
Message-ID: 99e3e7e0-b2b7-4f4e-bb65-94213c2a9826@ww-it.cn
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi

ZongZhi, Thanks for feedback.

I have read prior thread on this email, and know your settings, when did
the testing, checkpoint_timeout set to 30s is too small, it's not a
reasonable setting ,

the value of checkpoint_timeout is determined by shared_buffers and the
workload, in real product environment, we usually set it to 30min or
longer, even 1 hours, when the setting is correct, FPW will not be a
problem or issue.

other issue is introduced by double write that is the recovery procedure
and replications, it is not a small project.

if you really focus on the write or read latency, I would like to advice
you to take a look for OrioleDB storage engine, I believe that's the
correct direction. it is more efficient reads and writes, resolving many
known overheads and issues in PostgreSQL

Regards

Tony

On 2026/2/28 03:11, 陈宗志 wrote:
> Hi Tony,
>
>> Personally believe that the Double Write is very smart for MySQL InnoDB,
>> but not a good ideal for Postgres, currently, WAL is the best solution
>> for Postgres,
>> maybe the next generation log system for Postgres could use OrioleDB's
>> storage engine.
> Just to clarify from a technical perspective, both MySQL and PostgreSQL
> use Write-Ahead Logging (WAL) as their fundamental transaction logging
> mechanism, so there is no difference in that regard.
>
> The comparison here is specifically between Full-Page Writes (FPW) and
> the Double Write Buffer (DWB). Neither of these concepts conflicts with
> or replaces the core WAL design. Instead, both are simply different
> techniques implemented to solve the exact same issue: preventing torn
> pages during a crash.
>
> My proposal is aimed at discussing the performance tradeoffs and
> implementation details between these two specific torn-page protection
> mechanisms, rather than replacing WAL itself.
>
> Regards,
> Baotiao

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Jacob Champion 2026-02-28 00:51:40 Re: Add ssl_(supported|shared)_groups to sslinfo
Previous Message Andres Freund 2026-02-28 00:37:53 Re: index prefetching