RE: Parallel Apply

From: "Zhijie Hou (Fujitsu)" <houzj(dot)fnst(at)fujitsu(dot)com>
To: "Zhijie Hou (Fujitsu)" <houzj(dot)fnst(at)fujitsu(dot)com>
Cc: shveta malik <shveta(dot)malik(at)gmail(dot)com>, "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Tomas Vondra <tomas(at)vondra(dot)me>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Andrei Lepikhov <lepihov(at)gmail(dot)com>, wenhui qiu <qiuwenhuifx(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Peter Smith <smithpb2250(at)gmail(dot)com>
Subject: RE: Parallel Apply
Date: 2026-07-09 08:08:31
Message-ID: TY4PR01MB177180394D8E9C6D263E117E494FE2@TY4PR01MB17718.jpnprd01.prod.outlook.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Monday, June 15, 2026 7:20 PM Zhijie Hou (Fujitsu) <houzj(dot)fnst(at)fujitsu(dot)com> wrote:
>
> Attaching the new version patch set.
>
> Apart from addressing above comments, I also did the following changes:
>
> 0003:
>
> - Fix detection of dependencies on toasted columns by properly copying
> column
> status.
> - Ensure leader correctly handles table-wide dependencies when applying a
> transaction directly.
> - Prevent infinite loop by skipping self-dependencies when building the
> dependency list.
> - Expand test coverage for dependency tracking.
> - Improve code readability through refactoring.
> - Enhance comments for better documentation.
>
> 0008:
> 0009:
>
> - Complete most TODOs and finalize the design to cover more cases. Add
> extensive
> comments to explain the design.
>
> - Add more tests to cover the new code paths.

I've further reviewed and improved the patch recently; here is the updated V21 patch
set with the following changes:

0003: Fix missing dependency check for replica identity FULL.
0004: Add more test coverage for replica identity FULL.
0007: Improve parallel apply safety check to handle concurrent table schema
changes.
0009: Fix missing dependency check when both sides of a foreign key are
partitioned tables, and add more test coverage for partitioned tables.

Best Regards,
Hou zj

Attachment Content-Type Size
v21-0001-Introduce-a-shared-hash-table-to-store-paralleli.patch application/octet-stream 9.1 KB
v21-0009-Support-dependency-tracking-via-local-foreign-ke.patch application/octet-stream 49.7 KB
v21-0007-Handle-unsafe-parallel-apply-cases-due-to-non-im.patch application/octet-stream 20.1 KB
v21-0008-Support-dependency-tracking-via-local-unique-ind.patch application/octet-stream 39.8 KB
v21-0006-Track-dependencies-for-streamed-transactions.patch application/octet-stream 10.4 KB
v21-0005-support-2PC.patch application/octet-stream 13.8 KB
v21-0003-Introduce-a-local-hash-table-to-store-replica-id.patch application/octet-stream 35.9 KB
v21-0004-Parallel-apply-non-streaming-transactions.patch application/octet-stream 67.9 KB
v21-0002-Introduce-internal-messages-to-track-dependencie.patch application/octet-stream 12.7 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2026-07-09 08:18:53 Re: [Bug] Add the missing RTE_GRAPH_TABLE case to transformLockingClause()
Previous Message Siddharth Kothari 2026-07-09 08:07:03 Re: [PATCH] Add RetrieveInstrumentation hook for CustomScan providers