common_wal/config/kafka/
metasrv.rs1use std::time::Duration;
16
17use common_base::readable_size::ReadableSize;
18use serde::{Deserialize, Serialize};
19
20use crate::config::kafka::common::{
21 DEFAULT_AUTO_PRUNE_INTERVAL, DEFAULT_AUTO_PRUNE_LOGICAL_DELETE, DEFAULT_AUTO_PRUNE_PARALLELISM,
22 DEFAULT_CHECKPOINT_TRIGGER_SIZE, DEFAULT_FLUSH_TRIGGER_SIZE,
23 DEFAULT_PERIODIC_CHECKPOINT_PERSIST_INTERVAL, DEFAULT_REGION_FLUSH_TRIGGER_INTERVAL,
24 KafkaConnectionConfig, KafkaTopicConfig,
25};
26
27#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
29#[serde(default)]
30pub struct MetasrvKafkaConfig {
31 #[serde(flatten)]
33 pub connection: KafkaConnectionConfig,
34 #[serde(flatten)]
36 pub kafka_topic: KafkaTopicConfig,
37 pub auto_create_topics: bool,
39 #[serde(with = "humantime_serde")]
41 pub auto_prune_interval: Duration,
42 pub auto_prune_logical_delete: bool,
44 pub auto_prune_parallelism: usize,
46 pub flush_trigger_size: ReadableSize,
48 pub checkpoint_trigger_size: ReadableSize,
50 #[serde(with = "humantime_serde")]
52 pub region_flush_trigger_interval: Duration,
53 #[serde(with = "humantime_serde")]
55 pub periodic_checkpoint_persist_interval: Duration,
56}
57
58impl Default for MetasrvKafkaConfig {
59 fn default() -> Self {
60 Self {
61 connection: Default::default(),
62 kafka_topic: Default::default(),
63 auto_create_topics: true,
64 auto_prune_interval: DEFAULT_AUTO_PRUNE_INTERVAL,
65 auto_prune_logical_delete: DEFAULT_AUTO_PRUNE_LOGICAL_DELETE,
66 auto_prune_parallelism: DEFAULT_AUTO_PRUNE_PARALLELISM,
67 flush_trigger_size: DEFAULT_FLUSH_TRIGGER_SIZE,
68 checkpoint_trigger_size: DEFAULT_CHECKPOINT_TRIGGER_SIZE,
69 region_flush_trigger_interval: DEFAULT_REGION_FLUSH_TRIGGER_INTERVAL,
70 periodic_checkpoint_persist_interval: DEFAULT_PERIODIC_CHECKPOINT_PERSIST_INTERVAL,
71 }
72 }
73}