Tracking issue for a full triage of the open PR backlog. All 555 open PRs as of 2026-07-16, from #2607 (2021-02-26) to #19305 (2026-07-16), were reviewed against master at e098da7 (2026-07-15) to decide what can be closed, what should be converted into an issue, and what is still viable.
The full per-PR checklists, with a one-line reason for every verdict, are in the first three comments below. Each entry has a checkbox -- tick it as the PR gets addressed (GitHub shows an x-of-y task progress bar per comment):
Comment 1: CLOSE (166)
Comment 2: CONVERT to issue, then close (166)
Comment 3: KEEP (223)
These verdicts are recommendations, not decisions. If you are the author or a reviewer of a PR listed under CLOSE or CONVERT and believe it should stay open, please comment here or on the PR.
Scope and method
Covers every open apache/hudi PR as of 2026-07-16, from [HUDI-1643] Hudi observability - framework to report stats from execu… #2607 (2021-02-26) to
[HUDI-9666] Auto-deduce ComplexKeyGenerator single-field record-key encoding on branch-0.x #19305 (2026-07-16).
Every PR was assessed against master at e098da7 (2026-07-15): whether the
touched files still exist, whether an equivalent fix or feature already landed
(the landing PR/commit is named in the reason where found), and whether the
subsystem has since been rewritten (1.0 timeline/FileGroupReader rewrites,
hive-sync rewrite, removed engine version poms, etc.).
Branch policy used: release-0.x/1.0.x and branch-0.x are frozen -- if the fix
also applies to master the verdict is CONVERT, otherwise CLOSE (active
committer backports were kept case-by-case). release-1.2.0 is the active
upcoming release branch and was judged on activity. asf-site PRs were judged
on whether the docs change is still accurate for the current site.
feature-branch-rfc100-unstructured-data is treated as active.
Recent PRs (roughly May-Jul 2026) in normal review flow default to KEEP;
[DNM] tags were read in context (stacking/merge-gate markers vs abandoned
experiments).
Verdicts
CLOSE (166): obsolete -- already landed or superseded on master, code removed or rewritten, dead target branch, or abandoned after blocking review feedback.
CONVERT (166): the underlying bug/feature is still relevant on current master, but the PR is too stale to rescue. File a GitHub issue capturing the scope, then close the PR.
KEEP (223): still viable -- applies (or nearly applies) to master, or has active author/committer engagement; worth reviewing or rebasing as-is.
Summary by year created
Year
CLOSE
CONVERT
KEEP
Total
2021
4
1
0
5
2022
25
39
1
65
2023
22
42
6
70
2024
31
24
5
60
2025
54
46
31
131
2026
30
14
180
224
Total
166
166
223
555
Borderline calls flagged during triage
These verdicts were judgment calls; a maintainer close to the area should double-check
before acting.
From the oldest 400:
[HUDI-2281] Add metadata client APIs to fetch list of data files and … #3417 : the only 2021-vintage PR that still merges cleanly, but zero review traction since 2021 (bot bumps only); left as CONVERT rather than KEEP.
[HUDI-2733] Add support for Thrift sync #4665 (thrift-mode hive sync): CLOSE because HoodieHiveClient was removed in the hive-sync rewrite; arguable CONVERT if thrift mode is still wanted.
[HUDI-4194] upgrade confluent version to 7.1.1 #5758 vs fix: increase confluent version #18445 (confluent bump): master is still on confluent 5.5.0, so the upgrade is genuinely outstanding; the 2022 PR is CONVERT, the 2026 one (fix: increase confluent version #18445 ) is KEEP.
[HUDI-4578] Reduce the scope and duration of holding checkpoint lock … #6337 , [HUDI-4629] Create hive table from existing hoodie table failed when the table schema is not defined #6409 , [HUDI-4647] Keep the hive sync settings in spark sql consistent #6448 , [HUDI-4824]RANGE BUCKET index, base logic and test. #6858 : could not fully confirm landed-vs-still-broken; marked CONVERT so scope is not lost, verify before filing issues.
[HUDI-5548] spark sql show | update hudi's table properties #7680 (show/alter table properties): 3 approvals, but alter-props partially landed via AlterTableCommand; CONVERT covers only the remaining "show properties" scope.
[HUDI-5560][RFC-42] Make Consistent hash index Bucket Resizing more available… #7748 (RFC-42 bucket-resizing amendment): doc-only change on a merged RFC; CONVERT, but CLOSE is defensible.
[HUDI-6194] prevent flink writer getting the wrong instant to write #8673 (Flink wrong-instant race): the coordinator was reworked with pending-instant recommit logic, so the race may already be fixed; verify before converting.
[HUDI-6528] Fix premature RDD unpersist during index lookup #9188 (index perf fix): draft, but committer-updated 2025-12, hence KEEP.
[HUDI-6760] Add SelfDescribingInputFormatInterface for hive FileInput… #9554 : unclear whether the spark-schema-evolution-then-hive-read bug survives the refactored hadoop-mr path; CONVERT conservatively.
Incoming batch schema is not compatible with the table's one #9980 #10308 , [HUDI-7176] Add unit tests for log file only file slices #10396 , [HUDI-5026] Fix ORC bootstrap read support in Spark #10406 : niche / stacked-on-unmerged / semi-legacy-bootstrap; all CONVERT but each is a defensible CLOSE.
[HUDI-7634] Rename HoodieStorage APIs #11047 : approved cosmetic rename, 2 years stale; CLOSE, though a maintainer could rebase it.
[HUDI-6510] Support GHCI on Java 17 #11573 (Java 17 CI): CONVERT -- bot.yml is still JDK 11.
[HUDI-8024] Test secondary index updates and rollback #11706 (SI rollback/compaction test draft): CLOSE unless that coverage gap is confirmed still open.
[HUDI-8163] Refactor UnMergedLogHandler with iterators #12608 (UnMerged log refactor): CLOSE as an abandoned pure-refactor with 16 unaddressed review rounds; CONVERT if the refactor is still desired.
[HUDI-8553] Support writing record positions to log blocks from Spark SQL UPDATE and DELETE statements #12732 (record positions from Spark SQL): core position-write infra landed via [HUDI-6795] Implement writing record_positions to log blocks for updates and deletes #9581 ; the remaining SQL-DML gap may be partly covered already.
[HUDI-8945] Rename merger classes to be consistent with merge modes #12747 (merger rename): KEEP because yihua rebased it in 2026, but CI is failing and rename refactors rot fast.
[HUDI-9000] Adding timestamp ordering validation for flink 0.x branch #12824 (branch-0.x timestamp ordering): approved for 0.x; CLOSE assumes no further 0.x release is planned.
[HUDI-9187][HUDI-6249] Update usage of read/write in FileSystemView code paths #12982 : reached an approval before being abandoned on a since-refactored FSView subsystem; CLOSE.
[HUDI-9442] Improve key lookup in metadata table #13348 (MDT key-lookup perf): CLOSE as superseded-by-own-author rework, but the perf goal itself is arguably still open.
[HUDI-9560][RFC-97] Deprecate Hudi Payload Class Usage #13499 (RFC-97 payload deprecation doc): KEEP, though the deprecation work is landing on master without it.
[HUDI-9610] Support to get property from catalog for copy_to_temp_view call #13582 , [HUDI-9734] Improve Hudi tooling to support file groups and specific partitions procedures #13745 : small approved-or-applied changes stalled most of a year; KEEP vs CONVERT is a coin flip.
Add functional compat tests for Incremental Source #13954 , test: add functional payload test cases for v6 (OverwriteWithLatestAvroPayload, DefaultHoodieRecordPayload) #14041 , test: Add coverage for with OverwriteWithLatestAvroPayload with ordering fields set #14051 (test-coverage PRs): CONVERT to preserve coverage intent; given the project's test-bloat concerns, plain CLOSE is defensible.
Ensure MOR table works, with lance base files and avro logs file #14154 , Validate that basic compaction and clustering works with Lance #14156 , Add lance schema evolution support for add column #14160 , Validate vector and blob content support #14193 (Lance RFC-100 stack): all CONFLICTING and mostly idle since late 2025; kept because feature-branch-rfc100-unstructured-data is active and they depend on the unmerged reader PR Support COW bulk-insert, insert, upsert, delete works with spark datasource and lance #14137 .
feat: Support schema on write for flink #14248 (Flink schema-on-write): large and CONFLICTING, dormant since Dec 2025, but active committer author; KEEP.
chore(ci): Update Java 11 image for Azure CI #17692 : trivial CI image bump by a PMC member; called CLOSE as stale, could still be wanted.
MDT Test framework without writing data files #17796 (XL MDT test/benchmark framework): heavy review investment but stalled ~5 months; KEEP, could be CONVERT if dropped.
feat(blob): Blob cleaner updates #18159 (blob cleaner): KEEP, but the RFC-100 plan was restructured by merged feat(blob): update approach to remove reliance on column groups, break down plan #18013 and cleaner work continues on a feature branch, so it may effectively be superseded.
chore(deps): bump io.airlift:aircompressor from 0.27 to 2.0.3 #18247 (aircompressor 0.27 -> 2.0.3 CVE bump): KEEP since the CVE is unaddressed, but the major-version jump likely needs manual API migration.
(WIP) feat: Add Claude Code Skills for Hudi #18338 (in-repo Claude Code skills): mergeable and active; whether .claude/ belongs in-repo is a maintainer call.
[HUDI-7946][RFC-90] Add support for cancellable clustering table service plans #18346 (RFC-90 re-post): zero engagement; CONVERT borders on CLOSE.
feat: Provide new TransactionManager functionality and move instant time management to Transactionmanager #18350 , feat: Support selective meta field population #18384 : recent committer PRs buried under 90-100 file conflicts; KEEP, but CONVERT is reasonable.
From the newest 155:
feat(core): implement file-level sorting for upsert (#18357) #18504 (RFC-103 LSM phase 1): 3 months stale and conflicting, but blocked on a design question the author posed to the maintainers -- ball is in their court; KEEP.
Log structured schema-change diffs in DeltaStreamer #18655 (SchemaChangeLogger): closest CONVERT-vs-KEEP call in the tail; stale unreviewed draft, scope still relevant.
feat(rollback): add RollbackOrphanDetector utility for archive orphan guard (#18783) #18795 (RollbackOrphanDetector): KEEP, but maintainers could not reproduce the underlying issue, so it may end up rejected.
test(spark): repro for reconcile.schema=true blocking documented type promotion #18806 , test(spark): codify MDT col_stats behavior on ADD COLUMN schema evolution #18807 vs test(spark): repro for bytes→string promotion crashing data-skipping read #18810 (test-only repro PRs): split on engagement -- the first two have committer review (KEEP), test(spark): repro for bytes→string promotion crashing data-skipping read #18810 has none plus red CI (CONVERT).
chore(ci): modernize Codecov config for the coverage initiative #19138 , [DNM][1.2] Add versioned binary list state for flink writer #19228 , fix(DNM): adjust the native log format metadata as separate entries in footer #19247 , [DNM, stacked] fix(storage-format): fix multi-block previous-block offset and add byte-level HFile writer tests #19083 ([DNM]-tagged): DNM read as stacking/merge-gate markers on active work, not abandonment; all KEEP. [DNM][0.14] Add versioned binary list state for flink writer #19229 by contrast was DNM onto frozen release-0.14.1 with zero reviews (CLOSE).
fix(meta-sync): Normalize meta sync base path to avoid consecutive/trailing slashes in table LOCATION #19248 , [HUDI-9666] Auto-deduce ComplexKeyGenerator single-field record-key encoding on branch-0.x #19305 (branch-0.x): kept despite the freeze rule -- branch-0.x still merged fixes in Apr 2026 and both are active committer backports; a master port of fix(meta-sync): Normalize meta sync base path to avoid consecutive/trailing slashes in table LOCATION #19248 's fix may also be needed.
docs(blog): explainer wave 2: streaming data lake, CDC, lakehouse comparisons #19270 -docs(blog): streaming, write-heavy, read-heavy and benchmark comparisons #19273 : stacked asf-site blog series with identical create timestamps; all four kept as active drafts rather than treating later ones as superseding earlier.
Tracking issue for a full triage of the open PR backlog. All 555 open PRs as of 2026-07-16, from #2607 (2021-02-26) to #19305 (2026-07-16), were reviewed against master at e098da7 (2026-07-15) to decide what can be closed, what should be converted into an issue, and what is still viable.
The full per-PR checklists, with a one-line reason for every verdict, are in the first three comments below. Each entry has a checkbox -- tick it as the PR gets addressed (GitHub shows an x-of-y task progress bar per comment):
These verdicts are recommendations, not decisions. If you are the author or a reviewer of a PR listed under CLOSE or CONVERT and believe it should stay open, please comment here or on the PR.
Scope and method
[HUDI-9666] Auto-deduce ComplexKeyGenerator single-field record-key encoding on branch-0.x #19305 (2026-07-16).
touched files still exist, whether an equivalent fix or feature already landed
(the landing PR/commit is named in the reason where found), and whether the
subsystem has since been rewritten (1.0 timeline/FileGroupReader rewrites,
hive-sync rewrite, removed engine version poms, etc.).
also applies to master the verdict is CONVERT, otherwise CLOSE (active
committer backports were kept case-by-case). release-1.2.0 is the active
upcoming release branch and was judged on activity. asf-site PRs were judged
on whether the docs change is still accurate for the current site.
feature-branch-rfc100-unstructured-data is treated as active.
[DNM] tags were read in context (stacking/merge-gate markers vs abandoned
experiments).
Verdicts
Summary by year created
Borderline calls flagged during triage
These verdicts were judgment calls; a maintainer close to the area should double-check
before acting.
From the oldest 400:
From the newest 155: