[improvement](compaction) compaction policy and options in the properties of a table (#22461)
This commit is contained in:
@ -433,6 +433,47 @@ void TaskWorkerPool::_update_tablet_meta_worker_thread_callback() {
|
||||
tablet->tablet_schema_unlocked()->set_is_in_memory(tablet_meta_info.is_in_memory);
|
||||
need_to_save = true;
|
||||
}
|
||||
if (tablet_meta_info.__isset.compaction_policy) {
|
||||
if (tablet_meta_info.compaction_policy != "size_based" &&
|
||||
tablet_meta_info.compaction_policy != "time_series") {
|
||||
status = Status::InvalidArgument(
|
||||
"invalid compaction policy, only support for size_based or "
|
||||
"time_series");
|
||||
continue;
|
||||
}
|
||||
tablet->tablet_meta()->set_compaction_policy(tablet_meta_info.compaction_policy);
|
||||
need_to_save = true;
|
||||
}
|
||||
if (tablet_meta_info.__isset.time_series_compaction_goal_size_mbytes) {
|
||||
if (tablet->tablet_meta()->compaction_policy() != "time_series") {
|
||||
status = Status::InvalidArgument(
|
||||
"only time series compaction policy support time series config");
|
||||
continue;
|
||||
}
|
||||
tablet->tablet_meta()->set_time_series_compaction_goal_size_mbytes(
|
||||
tablet_meta_info.time_series_compaction_goal_size_mbytes);
|
||||
need_to_save = true;
|
||||
}
|
||||
if (tablet_meta_info.__isset.time_series_compaction_file_count_threshold) {
|
||||
if (tablet->tablet_meta()->compaction_policy() != "time_series") {
|
||||
status = Status::InvalidArgument(
|
||||
"only time series compaction policy support time series config");
|
||||
continue;
|
||||
}
|
||||
tablet->tablet_meta()->set_time_series_compaction_file_count_threshold(
|
||||
tablet_meta_info.time_series_compaction_file_count_threshold);
|
||||
need_to_save = true;
|
||||
}
|
||||
if (tablet_meta_info.__isset.time_series_compaction_time_threshold_seconds) {
|
||||
if (tablet->tablet_meta()->compaction_policy() != "time_series") {
|
||||
status = Status::InvalidArgument(
|
||||
"only time series compaction policy support time series config");
|
||||
continue;
|
||||
}
|
||||
tablet->tablet_meta()->set_time_series_compaction_time_threshold_seconds(
|
||||
tablet_meta_info.time_series_compaction_time_threshold_seconds);
|
||||
need_to_save = true;
|
||||
}
|
||||
if (tablet_meta_info.__isset.replica_id) {
|
||||
tablet->tablet_meta()->set_replica_id(tablet_meta_info.replica_id);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user