[fix](cloud) Fix warm up cache not supporting packed file (#60375)#61886
Conversation
When enable_packed_file is enabled, the warm up functions fail to download cache data because they use storage_resource->fs (the raw FileSystem) instead of RowsetMeta::fs() which wraps the FileSystem with PackedFileSystem. The PackedFileSystem correctly maps segment file paths to their actual locations within packed files. Without this mapping, the download fails because the segment files don't exist on S3 - they are packed into larger packed files. This fix changes the file_system used in: 1. download_file_cache_block (block_file_cache_downloader.cpp) 2. _submit_segment_download_task (cloud_tablet.cpp) 3. _submit_inverted_index_download_task (cloud_tablet.cpp) All now use RowsetMeta::fs() instead of storage_resource->fs to properly handle packed files.
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
There was a problem hiding this comment.
Pull request overview
This PR fixes cloud warm-up/file-cache downloads to correctly support packed files by switching download I/O to use the RowsetMeta-provided filesystem wrapper, and updates cloud regression suites to exercise packed-file mode.
Changes:
- Use
RowsetMeta::fs()/rowset_meta->fs()for warm-up and file-cache downloads so segment/index paths resolve correctly when packed files are used. - Update multiple cloud regression suites to toggle
enable_packed_fileat runtime to cover both packed/non-packed scenarios.
Reviewed changes
Copilot reviewed 19 out of 19 changed files in this pull request and generated 20 comments.
Show a summary per file
| File | Description |
|---|---|
be/src/io/cache/block_file_cache_downloader.cpp |
Use RowsetMeta::fs() for file-cache block downloads to support packed-file path mapping. |
be/src/cloud/cloud_tablet.cpp |
Use rowset_meta->fs() for warm-up download tasks (segment + inverted index) to support packed files. |
regression-test/suites/cloud_p0/tablets/test_clean_tablet_when_rebalance.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/tablets/test_clean_tablet_when_drop_force_table.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/tablets/test_clean_stale_rs_index_file_cache.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/tablets/test_clean_stale_rs_file_cache.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/cache/test_topn_broadcast.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/cache/test_load_cache.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/balance/test_warmup_rebalance.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/balance/test_peer_read_async_warmup.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/balance/test_expanding_node_balance.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/balance/test_balance_warm_up_with_compaction_use_peer_cache.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/balance/test_balance_warm_up_use_peer_cache.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/balance/test_balance_warm_up_task_abnormal.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/balance/test_balance_warm_up_sync_global_config.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/balance/test_balance_warm_up.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/balance/test_balance_use_compute_group_properties.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/balance/test_balance_metrics.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
regression-test/suites/cloud_p0/balance/test_alter_compute_group_properties.groovy |
Randomize enable_packed_file during test to cover packed/non-packed. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
regression-test/suites/cloud_p0/tablets/test_clean_stale_rs_file_cache.groovy
Show resolved
Hide resolved
regression-test/suites/cloud_p0/balance/test_balance_warm_up_use_peer_cache.groovy
Show resolved
Hide resolved
regression-test/suites/cloud_p0/balance/test_balance_use_compute_group_properties.groovy
Show resolved
Hide resolved
regression-test/suites/cloud_p0/tablets/test_clean_stale_rs_index_file_cache.groovy
Show resolved
Hide resolved
regression-test/suites/cloud_p0/balance/test_expanding_node_balance.groovy
Show resolved
Hide resolved
regression-test/suites/cloud_p0/balance/test_balance_warm_up_task_abnormal.groovy
Show resolved
Hide resolved
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
Pick #60375