This is an automated email from the ASF dual-hosted git repository.
liaoxin01 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 77cdd9cc9d5 [fix](cloud) Set file cache TTL on cloud schema change
output (#67454)
77cdd9cc9d5 is described below
commit 77cdd9cc9d5abcaa89dcddc0b3eba6a37b385637
Author: Xin Liao <[email protected]>
AuthorDate: Wed Sep 9 09:57:15 2026 +0800
[fix](cloud) Set file cache TTL on cloud schema change output (#67454)
Problem Summary:
`CloudSchemaChangeJob::_convert_historical_rowsets()` builds its
`RowsetWriterContext` with `write_file_cache` but never sets
`file_cache_ttl_sec`. For a table with `file_cache_ttl_seconds`, the
schema change output is therefore written into the NORMAL/INDEX file
cache queues instead of the TTL queue. The other two cloud write paths
both set it:
- load: `CloudRowsetBuilder::init()` — `context.file_cache_ttl_sec =
_tablet->ttl_seconds();`
- compaction: `CloudCompactionMixin::construct_output_rowset_writer()` —
`ctx.file_cache_ttl_sec = _tablet->ttl_seconds();`
---
be/src/cloud/cloud_schema_change_job.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/be/src/cloud/cloud_schema_change_job.cpp
b/be/src/cloud/cloud_schema_change_job.cpp
index 427da01054d..c53a619d0d6 100644
--- a/be/src/cloud/cloud_schema_change_job.cpp
+++ b/be/src/cloud/cloud_schema_change_job.cpp
@@ -401,6 +401,11 @@ Status
CloudSchemaChangeJob::_convert_historical_rowsets(const SchemaChangeParam
context.storage_resource =
_cloud_storage_engine.get_storage_resource(sc_params.vault_id);
context.job_id = _job_id;
context.write_file_cache = sc_params.output_to_file_cache;
+ // Schema change output belongs to the new tablet, so it must carry
the tablet TTL
+ // like the load and compaction output does. Otherwise it is cached in
the
+ // NORMAL/INDEX queues here, while every warm-up path downloads it
into the TTL
+ // queue on the destination cluster.
+ context.file_cache_ttl_sec = _new_tablet->ttl_seconds();
context.tablet = _new_tablet;
if (!context.storage_resource) {
return Status::InternalError("vault id not found, maybe not sync,
vault id {}",
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]