Thread

  1. Re: Checkpointer write combining

    Soumya S Murali <soumyamurali.work@gmail.com> — 2025-12-15T09:37:00Z

    Hi all,
    
    With reference to the last patches (v11) I received [1] and while reviewing
    Melanie’s latest feedback, I understood that PageSetBatchChecksumInplace()
    is currently WIP and depends on upcoming changes to hint-bit locking. It
    will be contrary to the flow if I propose new functional changes to
    checksum batching at this time. So for now I will focus on preparatory or
    documentation improvements until I get the updates on dependencies.
    Regarding my patch attached, the patch introduces write-combining during
    checkpoints by batching contiguous buffers and allowing them to be written
    using vectorized I/O. My patch includes write-combining for checkpoint
    buffer flushes, contiguous buffer batching, Preserved WAL ordering,
    locking, and buffer state invariants. The change is currently limited to
    the checkpointer path (BufferSync()). So far I tested my implementation and
    found that all the regression (233 tests) and isolation tests (121 tests)
    got passed, the manual pgbench validation completed successfully and also
    verified pg_stat_bgwriter counters before and after checkpoints. So far the
    implementation is stable in my system. And currently, I am focussing on the
    implementation of check pointer write combining for bgwriter behavior and
    will update it soon after validating my implementation.
    I hope my findings and approach will be helpful in further implementations
    and I would appreciate feedback on my approach.
    
    Regards,
    Soumya
    
    Reference:
    [1]
    https://www.postgresql.org/message-id/flat/CAAKRu_ZiEpE_EHww3S3-E3iznybdnX8mXSO7Wsuru7%3DP9Y%3DczQ%40mail.gmail.com#52e4f67645f26609427d5b1fc31fdf08