Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: postgresql-cfbot/postgresql
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: cf/5919~1
Choose a base ref
...
head repository: postgresql-cfbot/postgresql
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: cf/5919
Choose a head ref
  • 4 commits
  • 3 files changed
  • 2 contributors

Commits on Oct 30, 2025

  1. Refactor goto into for loop in GetVictimBuffer()

    GetVictimBuffer() implemented a loop to optimistically lock a clean
    victim buffer using a goto. Future commits will add batch flushing
    functionality to GetVictimBuffer. The new logic works better with
    standard for loop flow control.
    
    This commit is only a refactor and does not introduce any new
    functionality.
    
    Author: Melanie Plageman <[email protected]>
    Reviewed-by: Nazir Bilal Yavuz <[email protected]>
    Reviewed-by: Chao Li <[email protected]>
    Discussion: https://postgr.es/m/2FA0BAC7-5413-4ABD-94CA-4398FE77750D%40gmail.com
    Discussion: https://postgr.es/m/flat/CAAKRu_Yjn4mvN9NBxtmsCQSGwup45CoA4e05nhR7ADP-v0WCig%40mail.gmail.com
    melanieplageman authored and Commitfest Bot committed Oct 30, 2025
    Configuration menu
    Copy the full SHA
    22058ae View commit details
    Browse the repository at this point in the history
  2. Split FlushBuffer() into two parts

    Before adding write combining to write a batch of blocks when flushing
    dirty buffers, refactor FlushBuffer() into the preparatory step and
    actual buffer flushing step. This separation procides symmetry with
    future code for batch flushing which necessarily separates these steps,
    as it must prepare multiple buffers before flushing them together.
    
    These steps are moved into a new FlushBuffer() helper function,
    CleanVictimBuffer() which will contain both the batch flushing and
    single flush code in future commits.
    
    Author: Melanie Plageman <[email protected]>
    Reviewed-by: Chao Li <[email protected]>
    Reviewed-by: Nazir Bilal Yavuz <[email protected]>
    Discussion: https://postgr.es/m/2FA0BAC7-5413-4ABD-94CA-4398FE77750D%40gmail.com
    Discussion: https://postgr.es/m/flat/CAAKRu_Yjn4mvN9NBxtmsCQSGwup45CoA4e05nhR7ADP-v0WCig%40mail.gmail.com
    melanieplageman authored and Commitfest Bot committed Oct 30, 2025
    Configuration menu
    Copy the full SHA
    06660d1 View commit details
    Browse the repository at this point in the history
  3. Eagerly flush bulkwrite strategy ring

    Operations using BAS_BULKWRITE (COPY FROM and createdb) will inevitably
    need to flush buffers in the strategy ring in order to reuse them. By
    eagerly flushing the buffers in a larger run, we encourage larger writes
    at the kernel level and less interleaving of WAL flushes and data file
    writes. The effect is mainly noticeable with multiple parallel COPY
    FROMs. In this case, client backends achieve higher write throughput and
    end up spending less time waiting on acquiring the lock to flush WAL.
    Larger flush operations also mean less time waiting for flush operations
    at the kernel level.
    
    The heuristic for eager eviction is to only flush buffers in the
    strategy ring which do not require a WAL flush.
    
    This patch also is a step toward AIO writes.
    
    Reviewed-by: Chao Li <[email protected]>
    Reviewed-by: Nazir Bilal Yavuz <[email protected]>
    Earlier version Reviewed-by: Kirill Reshke <[email protected]>
    Discussion: https://postgr.es/m/2FA0BAC7-5413-4ABD-94CA-4398FE77750D%40gmail.com
    Discussion: https://postgr.es/m/flat/CAAKRu_Yjn4mvN9NBxtmsCQSGwup45CoA4e05nhR7ADP-v0WCig%40mail.gmail.com
    melanieplageman authored and Commitfest Bot committed Oct 30, 2025
    Configuration menu
    Copy the full SHA
    14c2379 View commit details
    Browse the repository at this point in the history
  4. [CF 5919] v5 - Eagerly evict bulkwrite strategy ring

    This branch was automatically generated by a robot using patches from an
    email thread registered at:
    
    https://commitfest.postgresql.org/patch/5919
    
    The branch will be overwritten each time a new patch version is posted to
    the thread, and also periodically to check for bitrot caused by changes
    on the master branch.
    
    Patch(es): https://www.postgresql.org/message-id/CAAKRu_Y9WeWb5fu7Aibh-qGZuFYq3=57Y4ptSrzLYCnRWDHCow@mail.gmail.com
    Author(s): Melanie Plageman
    Commitfest Bot committed Oct 30, 2025
    Configuration menu
    Copy the full SHA
    a3d509c View commit details
    Browse the repository at this point in the history
Loading