Skip to content

Phase16#5

Draft
samwillis wants to merge 155 commits into
multithreadedfrom
phase16-plan
Draft

Phase16#5
samwillis wants to merge 155 commits into
multithreadedfrom
phase16-plan

Conversation

@samwillis

Copy link
Copy Markdown
Owner

No description provided.

samwillis added 30 commits June 23, 2026 06:33
Run intagg, intarray, ltree, tsm_system_rows, and tsm_system_time from check-threaded-contrib and check-world-threaded.

Make focused contrib threaded targets run component checkprep explicitly so multi-target invocations install every requested extension into the temp tree.
Run pg_buffercache, pg_freespacemap, pg_surgery, pg_walinspect, pgrowlocks, and pgstattuple from check-threaded-contrib and check-world-threaded.

Add thread-per-session module metadata for their extension libraries and move the leaves from the Phase 16 exclusion manifest to covered components.
Wire client/offline src/bin TAP leaves and pg_bsd_indent into check-world-threaded via explicit check-threaded-bin and check-threaded-tools targets.

Move those check-world leaves from the Phase 16 exclusion manifest to covered components; in this configure their TAP tests remain disabled, matching ordinary check-world behavior.
Run bloom, file_fdw, lo, pg_visibility, tablefunc, and tcn from check-threaded-contrib and check-world-threaded.

Add thread-per-session module metadata and move the leaves from Phase 16 exclusions to covered components.
Run contrib/spi under threaded_workers.conf from check-threaded-contrib and check-world-threaded.

Cover oid2name and vacuumlo client utility TAP leaves through the threaded contrib aggregate and move all three leaves out of Phase 16 exclusions.
Run test_cloexec, test_int128, and test_json_parser from check-threaded-test-modules and check-world-threaded.

Move the standalone program TAP leaves out of Phase 16 exclusions.
Run PL/Sample, SP-GiST name opclass, COPY callback, custom type, and text parser test modules from check-threaded-test-modules.

Declare thread-per-session metadata for the newly admitted regression modules and move their leaves out of Phase 16 exclusions.
Run binaryheap, bitmapset, bloomfilter, GIN posting-list, integerset, lfind, radixtree, rbtree, and regex regression modules from check-threaded-test-modules.

Declare thread-per-session metadata for those modules, move their leaves out of Phase 16 exclusions, and harden the pooled postmaster-death TAP assertion against transient polling queue depth.
Admit dummy_index_am, test_cplusplusext, test_predtest, test_resowner, and test_saslprep to check-threaded-test-modules.

Declare thread-per-session metadata for the modules, make test_resowner's release-order assertion state per-call, and move the leaves from Phase 16 exclusions to covered components.
Run brin, commit_ts, and index test-module leaves from check-threaded-test-modules under threaded_workers.conf.

Move the leaves from Phase 16 exclusions to covered components while keeping unsafe_tests excluded after its threaded GUC privilege regression failure.
Run src/test/modules/test_shm_mq from check-threaded-test-modules under threaded_workers.conf and move it from the Phase 16 exclusion manifest to covered components.

Accept polling as an idle no-carrier pooled protocol state in the Phase 15 postmaster-death TAP, matching the existing pooled protocol mode predicate and removing a timing-sensitive failure before module coverage runs.
samwillis added 30 commits June 24, 2026 14:28
Add Phase 16B shell/reusable-session lifecycle support, fail-closed validation, lifecycle timing instrumentation, and benchmark documentation.

Improve pooled protocol parked-session wakeups by starting carriers for ready parked bursts instead of only for new connection queue work.

Benchmark evidence: pool_128 on select1_sleep_wake_10ms_prepared reached 0.956x pinned at 136 threads vs 208; pool_128 on select1_sleep_wake_1000ms_prepared reached 0.992x pinned at 108 threads vs 208.

Verified with gmake -j18, gmake install prefix=/home/sam/codex-work/mtpg-current/tmp_install, perl -c src/tools/benchmark/mtpg_pgbench_matrix.pl, benchmark runs under /home/sam/codex-work/mtpg-bench-results, and git diff --check.
Optimize pooled protocol receive probing and hot read wake handling, add pressure-aware sticky idle behavior, and keep one ready backend local to the polling carrier. Add same-carrier attach without session GUC rebinding, cheap scheduler counters, and pooled glibc allocator tuning. Extend the pgbench matrix harness with env, cpuset, socket-root, and interleaved lane controls for targeted Phase 16B evidence.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant