Skip to content

Commit 50f45ac

Browse files
committed
update the config file
1 parent f81c19c commit 50f45ac

1 file changed

Lines changed: 11 additions & 74 deletions

File tree

docker/danube_broker.yml

Lines changed: 11 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -101,82 +101,19 @@ load_manager:
101101
# Examples: ["/system/*", "/admin/critical-topic", "/production/*"]
102102
blacklist_topics: []
103103

104-
# WAL and Cloud Storage Configuration
105-
# Cloud-native persistence: local WAL (hot path) + background cloud uploads (durability)
106-
wal_cloud:
107-
# Local Write-Ahead Log: Fast append-only log with in-memory cache
104+
# Storage Configuration
105+
# Modes: local | shared_fs | object_store
106+
storage:
107+
mode: local
108+
local_wal_root: "./danube-data/wal"
109+
metadata_prefix: "/danube"
110+
local_retention:
111+
time_minutes: 2880
112+
size_mb: 20480
113+
check_interval_minutes: 5
108114
wal:
109-
# WAL root directory (per-topic subdirectories created automatically)
110-
# Use fast local SSD for best performance. Set to null for in-memory mode (testing only)
111-
dir: "./danube-data/wal"
112-
113-
# Base filename for WAL (with rotation: wal.<seq>.log)
114-
file_name: "wal.log"
115-
116-
# In-memory cache capacity (number of recent messages)
117-
# Higher = better consumer hit rates, more memory. Lower = less memory, more disk reads
118-
cache_capacity: 1024
119-
120-
# File sync configuration: fsync cadence and write batching
121-
file_sync:
122-
# Flush interval (milliseconds): how often to fsync buffered writes
123-
# Production: 5000 (5s). High-throughput: 10000 (10s). Low-latency: 1000 (1s)
124-
interval_ms: 5000
125-
126-
# Max buffered bytes before forcing a flush (write batch size)
127-
# Larger = better throughput. Smaller = lower latency, more frequent fsyncs
128-
max_batch_bytes: 10485760 # 10 MiB
129-
130-
# File rotation: prevents unbounded file growth, creates wal.0.log, wal.1.log, etc.
131115
rotation:
132-
# Size-based rotation threshold (bytes)
133-
max_bytes: 536870912 # 512 MiB
134-
135-
# Time-based rotation threshold (hours) - optional
136-
# Ensures no infinitely old files (good for low-traffic topics)
137-
# max_hours: 24
138-
139-
# Local WAL retention: prunes old files after cloud upload
140-
# Both time and size limits applied; whichever triggers first
141-
retention:
142-
# Time-based: delete files older than this (minutes)
143-
# Must be larger than uploader interval. Production: 48h. Min: 24h
144-
time_minutes: 2880 # 48 hours
145-
146-
# Size-based: delete oldest files when total exceeds this (MB per topic)
147-
# Production: 20 GiB. Space-constrained: 10 GiB minimum
148-
size_mb: 20480 # 20 GiB
149-
150-
# How often to check retention policy (minutes)
151-
check_interval_minutes: 5
152-
153-
# Cloud Uploader: background task that persists WAL to cloud storage
154-
uploader:
155-
# Enable cloud uploads (disable for local-only dev/testing)
156-
enabled: false
157-
158-
# Upload cycle interval (seconds)
159-
# Testing: 30s. Production: 300s (5 min). High-durability: 60s (1 min)
160-
interval_seconds: 30
161-
162-
# Metadata root prefix (change only for multiple independent clusters)
163-
root_prefix: "/danube-data"
164-
165-
# Max cloud object size (MB) - optimal for S3/GCS multipart uploads
166-
max_object_mb: 256
167-
168-
# Cloud Storage Backend (powered by OpenDAL)
169-
cloud:
170-
# Backend options: fs | s3 | gcs | azblob | memory
171-
# Production: Use s3/gcs/azblob for cloud-native. Multi-broker: shared fs or cloud
172-
backend: "fs"
173-
174-
# Storage root (backend-specific format)
175-
# fs: "./path", s3: "s3://bucket/prefix", gcs: "gcs://bucket/prefix"
176-
# Multi-broker: must be shared/accessible across all brokers
177-
root: "./danube-data/cloud-storage"
178-
179-
# Backend-specific options - see commented examples below
116+
max_bytes: 536870912
180117

181118
# Broker policies, that can be overwritten by namespace / topic policies
182119
policies:

0 commit comments

Comments
 (0)