This is an automated email from the ASF dual-hosted git repository.
baojinri pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/horaedb.git
The following commit(s) were added to refs/heads/main by this push:
new 4d3bb1c0 refactor: add more `macro` in config (#1619)
4d3bb1c0 is described below
commit 4d3bb1c00ac3ca8eb4900f4767f78e12c566986f
Author: 鲍金日 <[email protected]>
AuthorDate: Wed Dec 25 16:15:26 2024 +0800
refactor: add more `macro` in config (#1619)
## Rationale
## Detailed Changes
- add Clone & PartialEq in config
- use ReadableDuration & ReadableSize
## Test Plan
CI
---------
Co-authored-by: Jiacai Liu <[email protected]>
---
src/metric_engine/src/compaction/scheduler.rs | 8 +++----
src/metric_engine/src/config.rs | 33 ++++++++++++++-------------
2 files changed, 21 insertions(+), 20 deletions(-)
diff --git a/src/metric_engine/src/compaction/scheduler.rs
b/src/metric_engine/src/compaction/scheduler.rs
index 581d397b..72527de9 100644
--- a/src/metric_engine/src/compaction/scheduler.rs
+++ b/src/metric_engine/src/compaction/scheduler.rs
@@ -72,7 +72,7 @@ impl Scheduler {
sst_path_gen,
parquet_reader,
write_props,
- config.memory_limit,
+ config.memory_limit.0,
trigger_tx.clone(),
);
@@ -84,13 +84,13 @@ impl Scheduler {
runtime.spawn(async move {
let picker = Picker::new(
manifest,
- config.ttl,
+ config.ttl.map(|v| v.0),
segment_duration,
- config.new_sst_max_size,
+ config.new_sst_max_size.0,
config.input_sst_max_num,
config.input_sst_min_num,
);
- Self::generate_task_loop(task_tx, trigger_rx, picker,
config.schedule_interval)
+ Self::generate_task_loop(task_tx, trigger_rx, picker,
config.schedule_interval.0)
.await;
})
};
diff --git a/src/metric_engine/src/config.rs b/src/metric_engine/src/config.rs
index 819e45e6..50615aca 100644
--- a/src/metric_engine/src/config.rs
+++ b/src/metric_engine/src/config.rs
@@ -15,21 +15,22 @@
// specific language governing permissions and limitations
// under the License.
-use std::{collections::HashMap, time::Duration};
+use std::collections::HashMap;
+use common::{ReadableDuration, ReadableSize};
use parquet::basic::{Compression, Encoding, ZstdLevel};
use serde::{Deserialize, Serialize};
-#[derive(Debug, Deserialize, Serialize)]
+#[derive(Debug, Deserialize, Serialize, Clone, PartialEq)]
#[serde(default, deny_unknown_fields)]
pub struct SchedulerConfig {
- pub schedule_interval: Duration,
+ pub schedule_interval: ReadableDuration,
pub max_pending_compaction_tasks: usize,
// Runner config
- pub memory_limit: u64,
+ pub memory_limit: ReadableSize,
// Picker config
- pub ttl: Option<Duration>,
- pub new_sst_max_size: u64,
+ pub ttl: Option<ReadableDuration>,
+ pub new_sst_max_size: ReadableSize,
pub input_sst_max_num: usize,
pub input_sst_min_num: usize,
}
@@ -37,18 +38,18 @@ pub struct SchedulerConfig {
impl Default for SchedulerConfig {
fn default() -> Self {
Self {
- schedule_interval: Duration::from_secs(10),
+ schedule_interval: ReadableDuration::secs(10),
max_pending_compaction_tasks: 10,
- memory_limit: bytesize::gb(20_u64),
+ memory_limit: ReadableSize::gb(2_u64),
ttl: None,
- new_sst_max_size: bytesize::gb(1_u64),
+ new_sst_max_size: ReadableSize::gb(1_u64),
input_sst_max_num: 30,
input_sst_min_num: 5,
}
}
}
-#[derive(Debug, Default, Deserialize, Serialize)]
+#[derive(Debug, Default, Deserialize, Serialize, Clone, PartialEq)]
#[serde(deny_unknown_fields)]
pub enum ParquetEncoding {
#[default]
@@ -73,7 +74,7 @@ impl From<ParquetEncoding> for Encoding {
}
}
-#[derive(Debug, Default, Deserialize, Serialize)]
+#[derive(Debug, Default, Deserialize, Serialize, Clone, PartialEq)]
#[serde(deny_unknown_fields)]
pub enum ParquetCompression {
#[default]
@@ -92,7 +93,7 @@ impl From<ParquetCompression> for Compression {
}
}
-#[derive(Debug, Default, Deserialize, Serialize)]
+#[derive(Debug, Default, Deserialize, Serialize, Clone, PartialEq)]
#[serde(default, deny_unknown_fields)]
pub struct ColumnOptions {
pub enable_dict: Option<bool>,
@@ -101,7 +102,7 @@ pub struct ColumnOptions {
pub compression: Option<ParquetCompression>,
}
-#[derive(Debug, Deserialize, Serialize)]
+#[derive(Debug, Deserialize, Serialize, Clone, PartialEq)]
#[serde(default, deny_unknown_fields)]
pub struct WriteConfig {
pub max_row_group_size: usize,
@@ -131,7 +132,7 @@ impl Default for WriteConfig {
}
}
-#[derive(Debug, Deserialize, Serialize)]
+#[derive(Debug, Deserialize, Serialize, Clone, PartialEq)]
#[serde(default, deny_unknown_fields)]
pub struct ManifestConfig {
pub channel_size: usize,
@@ -153,7 +154,7 @@ impl Default for ManifestConfig {
}
}
-#[derive(Debug, Default, Deserialize, Serialize)]
+#[derive(Debug, Default, Deserialize, Serialize, Clone, PartialEq)]
#[serde(default, deny_unknown_fields)]
pub struct StorageConfig {
pub write: WriteConfig,
@@ -162,7 +163,7 @@ pub struct StorageConfig {
pub update_mode: UpdateMode,
}
-#[derive(Debug, Default, Clone, Deserialize, Serialize)]
+#[derive(Debug, Default, Clone, Deserialize, Serialize, PartialEq)]
#[serde(deny_unknown_fields)]
pub enum UpdateMode {
#[default]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]