Commit 127d370
committed
feat(client): enrich write commit callback message and fire it for table-service commits
Two backward-compatible improvements to the post-commit write callback mechanism:
1. Enrich HoodieWriteCommitCallbackMessage with two optional fields so callback
implementations no longer have to rebuild a FileSystemView or reach into engine
config:
- prevFilePaths: Map<fileId, PrevFilePaths> -- the previous base file (and
bootstrap source, if any) each updated file group replaces, pre-resolved by the
write client from its cached file-system view.
- extraContext: Map<String,String> -- free-form context producers can attach.
Both default to empty maps; the existing 4-arg and 6-arg constructors are preserved.
2. Fire the callback for table-service commits too (compaction and clustering
completion), not just data commits. The shared firing logic (fireCommitCallback)
and prev-file resolution (resolvePrevFilePaths) are lifted into BaseHoodieClient so
both BaseHoodieWriteClient (data commits, via postCommit) and
BaseHoodieTableServiceClient (compaction/clustering completion) reuse them. The
commitCallback field is lifted up from BaseHoodieWriteClient.
postCommit now receives the resolved commit action type so the callback reports the
actual action (e.g. replacecommit for insert_overwrite) rather than the table's base
action type.
Best-effort by design: callback and prev-file resolution failures are logged and never
fail the write.
Adds TestBaseHoodieClient covering resolvePrevFilePaths (inserts, updates, bootstrap
capture, missing-file skip, best-effort on view failure, null inputs) and the message
default/retention contract.1 parent 97c03f7 commit 127d370
5 files changed
Lines changed: 321 additions & 17 deletions
File tree
- hudi-client/hudi-client-common/src
- main/java/org/apache/hudi
- callback/common
- client
- test/java/org/apache/hudi/client
Lines changed: 46 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
29 | 30 | | |
30 | 31 | | |
31 | 32 | | |
| |||
69 | 70 | | |
70 | 71 | | |
71 | 72 | | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
72 | 89 | | |
73 | 90 | | |
74 | 91 | | |
75 | 92 | | |
76 | | - | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
77 | 122 | | |
78 | 123 | | |
Lines changed: 88 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
23 | 27 | | |
24 | 28 | | |
25 | 29 | | |
26 | 30 | | |
27 | 31 | | |
28 | 32 | | |
| 33 | + | |
29 | 34 | | |
30 | 35 | | |
31 | 36 | | |
| |||
34 | 39 | | |
35 | 40 | | |
36 | 41 | | |
| 42 | + | |
37 | 43 | | |
38 | 44 | | |
39 | 45 | | |
| |||
87 | 93 | | |
88 | 94 | | |
89 | 95 | | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
90 | 104 | | |
91 | 105 | | |
92 | 106 | | |
| |||
462 | 476 | | |
463 | 477 | | |
464 | 478 | | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
465 | 553 | | |
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
424 | 424 | | |
425 | 425 | | |
426 | 426 | | |
| 427 | + | |
| 428 | + | |
427 | 429 | | |
428 | 430 | | |
429 | 431 | | |
| |||
640 | 642 | | |
641 | 643 | | |
642 | 644 | | |
| 645 | + | |
| 646 | + | |
643 | 647 | | |
644 | 648 | | |
645 | 649 | | |
| |||
Lines changed: 10 additions & 16 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
28 | | - | |
29 | 27 | | |
30 | | - | |
31 | 28 | | |
32 | 29 | | |
33 | 30 | | |
| |||
146 | 143 | | |
147 | 144 | | |
148 | 145 | | |
149 | | - | |
150 | 146 | | |
151 | 147 | | |
152 | 148 | | |
| |||
287 | 283 | | |
288 | 284 | | |
289 | 285 | | |
290 | | - | |
| 286 | + | |
291 | 287 | | |
292 | 288 | | |
293 | 289 | | |
| |||
303 | 299 | | |
304 | 300 | | |
305 | 301 | | |
306 | | - | |
307 | | - | |
308 | | - | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | 302 | | |
316 | 303 | | |
317 | 304 | | |
| |||
639 | 626 | | |
640 | 627 | | |
641 | 628 | | |
642 | | - | |
| 629 | + | |
| 630 | + | |
643 | 631 | | |
644 | 632 | | |
645 | 633 | | |
| |||
666 | 654 | | |
667 | 655 | | |
668 | 656 | | |
669 | | - | |
| 657 | + | |
670 | 658 | | |
671 | 659 | | |
672 | 660 | | |
673 | 661 | | |
674 | 662 | | |
675 | 663 | | |
676 | 664 | | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
677 | 671 | | |
678 | 672 | | |
679 | 673 | | |
| |||
0 commit comments