Re: Initdb-time block size specification

From: David Christensen <david(dot)christensen(at)crunchydata(dot)com>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>, Andres Freund <andres(at)anarazel(dot)de>, Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, John Naylor <john(dot)naylor(at)enterprisedb(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Hannu Krosing <hannuk(at)google(dot)com>
Cc: Stephen Frost <sfrost(at)snowman(dot)net>
Subject: Re: Initdb-time block size specification
Date: 2023-10-02 15:39:28
Message-ID: CAOxo6X+ePG2gW4U=SxLU-Jvf_mScDXni9X_+ZpYzmP7yedntCQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

Here is version 3 of the patch series, rebased on 6d0c39a293. The main
tweak was to tweak per John N's suggestion and utilize only the 16-bit
unsigned mod/div for the utility routines. The breakdown of the patch
series is the same as the last one, but re-including the descriptions here:

Preparation phase:

0001 - add utility script for retokenizing all necessary scripts.
This is mainly for my own use in generating 0003, which is a simple
rename/preparation patch to change all symbols from their UPPER_CASE
to lower_case form, with several exceptions in renames.
0002 - add script to harness 0001 and apply to the relevant files in the
repo
0003 - capture the effects of 0002 on the repo

The other patches in this series are as follows:

0004 - the "main" variable blocksize patch where the bulk of the code
changes take place - see comments here
0005 - utility functions for fast div/mod operations; basically
montgomery multiplication
0006 - use fastdiv code in the visiblity map, the main place where
this change is required
0007 - (optional) add/use libdivide for division which is license
compatible with other headers we bundle
0008 - (optional) tweaks to libdivide to make compiler/CI happy

Best,

David

Attachment Content-Type Size
v3-0002-Add-wrapper-for-tokenizing-the-whole-repo.patch application/octet-stream 1.2 KB
v3-0005-Add-support-for-fast-non-division-based-div-mod-a.patch application/octet-stream 1.7 KB
v3-0001-Add-tool-to-retokenize-for-variable-blocksize.patch application/octet-stream 1.8 KB
v3-0004-Introduce-initdb-selectable-block-sizes.patch application/octet-stream 171.5 KB
v3-0003-Capture-rename-of-symbols.patch application/octet-stream 264.1 KB
v3-0006-Use-fastdiv-code-in-visibility-map.patch application/octet-stream 7.1 KB
v3-0007-Use-libdivide-for-fast-division.patch application/octet-stream 130.8 KB
v3-0008-Add-pragmas-to-libdivide-to-make-header-check-hap.patch application/octet-stream 730 bytes

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2023-10-02 16:04:31 Re: Eliminate redundant tuple visibility check in vacuum
Previous Message Peter Geoghegan 2023-10-02 15:36:54 Re: Eager page freeze criteria clarification