common_wal/config/kafka/
datanode.rs1use std::time::Duration;
16
17use common_base::readable_size::ReadableSize;
18use serde::{Deserialize, Serialize};
19
20use crate::config::kafka::common::{
21 KafkaConnectionConfig, KafkaTopicConfig, DEFAULT_AUTO_PRUNE_INTERVAL,
22 DEFAULT_AUTO_PRUNE_PARALLELISM, DEFAULT_TRIGGER_FLUSH_THRESHOLD,
23};
24
25#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
27#[serde(default)]
28pub struct DatanodeKafkaConfig {
29 #[serde(flatten)]
31 pub connection: KafkaConnectionConfig,
32 #[serde(alias = "max_batch_size")]
35 pub max_batch_bytes: ReadableSize,
36 #[serde(with = "humantime_serde")]
38 pub consumer_wait_timeout: Duration,
39 #[serde(flatten)]
41 pub kafka_topic: KafkaTopicConfig,
42 pub auto_create_topics: bool,
44 pub create_index: bool,
46 #[serde(with = "humantime_serde")]
47 pub dump_index_interval: Duration,
48 pub overwrite_entry_start_id: bool,
50 #[serde(with = "humantime_serde")]
52 pub auto_prune_interval: Duration,
53 pub trigger_flush_threshold: u64,
56 pub auto_prune_parallelism: usize,
58}
59
60impl Default for DatanodeKafkaConfig {
61 fn default() -> Self {
62 Self {
63 connection: KafkaConnectionConfig::default(),
64 max_batch_bytes: ReadableSize::mb(1),
66 consumer_wait_timeout: Duration::from_millis(100),
67 kafka_topic: KafkaTopicConfig::default(),
68 auto_create_topics: true,
69 create_index: true,
70 dump_index_interval: Duration::from_secs(60),
71 overwrite_entry_start_id: false,
72 auto_prune_interval: DEFAULT_AUTO_PRUNE_INTERVAL,
73 trigger_flush_threshold: DEFAULT_TRIGGER_FLUSH_THRESHOLD,
74 auto_prune_parallelism: DEFAULT_AUTO_PRUNE_PARALLELISM,
75 }
76 }
77}