Repository navigation
[feature](storage) Support row-level TTL - #65858
Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
1 similar comment
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
TPC-DS: Total hot run time: 1150 ms |
|
run buildall |
FE UT Coverage ReportIncrement line coverage |
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
TPC-DS: Total hot run time: 1146 ms |
ClickBench: Total hot run time: 25.68 s |
|
run buildall |
TPC-H: Total hot run time: 29699 ms |
TPC-DS: Total hot run time: 177843 ms |
ClickBench: Total hot run time: 25.3 s |
FE UT Coverage ReportIncrement line coverage |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
TPC-H: Total hot run time: 28801 ms |
TPC-DS: Total hot run time: 151501 ms |
ClickBench: Total hot run time: 25.01 s |
FE Regression Coverage ReportIncrement line coverage |
1 similar comment
FE Regression Coverage ReportIncrement line coverage |
FE Regression Coverage ReportIncrement line coverage |
1 similar comment
FE Regression Coverage ReportIncrement line coverage |
…anch ### What problem does this PR solve? Issue Number: N/A Related PR: N/A Problem Summary: The horizontal index-compaction BE test still calls the old three-argument IndexColumnWriter::add_values API after the upstream interface refactor, preventing BE UT compilation. Pass the aligned Slice descriptor through the current two-argument API. The shared regression helper also treats the normal full compaction E-2008 no-op as a failure after asynchronous failure checking was introduced for Row TTL coverage. Restore the helper's original completion handling and remove the framework assertions added for the changed contract. Existing gram, statistics, and Row TTL regression suites remain unchanged. The change is limited to test infrastructure and the BE test's API adaptation. No production locking, lifetime, configuration, protocol, storage format, or persistence behavior changes. ### Release note None ### Check List (For Author) - Test: clang-format v16, check-format, build hygiene, git diff --check, historical-content comparison, and independent static review passed during the original changes. The regression-framework build was blocked by an unwritable Maven cache. The targeted BE UT attempt was stopped during setup because installed third-party dependencies were absent; clang-tidy also lacked compile_commands.json. No runtime tests completed. Squashing only changes commit history; the resulting tree is verified unchanged. - Behavior changed: Yes. Restore the regression helper's original completion handling for full compaction. - Does this need documentation: No
|
run buildall |
FE UT Coverage ReportIncrement line coverage |
FE Regression Coverage ReportIncrement line coverage |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
|
@morningman @luwei16 @morrySnow Hi, Please review this PR, thank u very much |
|
run performance |
|
Hi @924060929 @CalvinKirs Please review this PR, thank u very much |
924060929
left a comment
There was a problem hiding this comment.
This PR adds create-time row TTL through a hidden column, write-time value binding, query-time visibility filtering, and versioned tablet GC policy updates. Source-column TTL retains the source timestamp; direct TTL stores an absolute expiration.
No actionable P0/P1/P2 issue was confirmed in the FE changes and necessary FE/BE boundaries. APPROVE within that scope. Reviewed DDL validation, writes and deletes, visibility planning, cache and optimization guards, metadata persistence, policy-update concurrency, protocol fields, and relevant test coverage. No builds or tests were run.
Three existing human approvals reference this exact head, so there is no subsequent delta. The supplied context reports successful P0 regression, but required-check rules are unknown and AI review remains pending. This is not a full BE review or an assertion that the entire PR is ready to merge.
Automated FE-focused static review (GPT-6.1 Sol, medium). No build or tests were run.
What problem does this PR solve?
Issue Number: close #61056 #66084
Related PR: #None
Problem Summary:
Add create-time Row TTL support with a hidden TTL column for both source-time and direct-expiration tables. The implementation removes dynamic ALTER enablement and dedicated full schema-change/backfill paths, keeps TTL configured only at CREATE TABLE time, and treats TTL as a post-merge row visibility rule composed with delete sign. Storage keeps ordinary compaction policy while filtering expired rows during reads and natural rewrite paths. FE/BE tests and regression cases cover property validation, hidden column construction, tablet schema propagation, visibility filtering, partial updates, planning behavior, and ALTER rejection.
Release note
Support Row TTL configured at CREATE TABLE time; ALTER dynamic Row TTL enablement is not supported.
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)