forked from eloqdata/eloqkv
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patheloqkv.ini
More file actions
195 lines (144 loc) · 7.68 KB
/
eloqkv.ini
File metadata and controls
195 lines (144 loc) · 7.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
# EloqKV Configuration File
# For more information, visit: https://www.eloqdata.com/eloqkv/configuration
[local]
# Whether to listen on all interfaces. If bind_all is enabled, EloqKV will listen on 0.0.0.0,
# otherwise it will listen on the address specified by ip.
bind_all=true
# Local IP address of the EloqKV node. This value is recorded in the EloqKV catalog and
# cannot be changed once the server has been launched. It is strongly recommended to set
# this to the actual IP address of the node.
ip = 127.0.0.1
# Listening port for the EloqKV node. Similar to the ip parameter, the port cannot be
# changed once the server has been launched.
port = 6379
# EloqKV data directory. By default, the transaction service data, log service data, and local key-value storage data
# are all stored in the eloq_data_path directory.
eloq_data_path = eloq_data
# Enable io uring for network.
enable_io_uring=on
# If you don't set core_number/event_dispatcher_num/node_memory_limit_mb, EloqKV will try to determine a reasonable value.
# It is recommended to set core_number to approximately 70% of the total available cores for optimal performance.
# core_number=1
# It is recommended to set event_dispatcher_num to one-seventh of core_number for balanced performance.
# event_dispatcher_num=1
# Set node_memory_limit_mb to 60% of the total system memory to optimize resource allocation.
# Sets the memory upper limit for an EloqKV node, measured in megabytes (MB).
# Recommended: 60% of the total system memory
# node_memory_limit_mb=8192
# Checkpoint interval in seconds. The tx_service periodically flushes modified data
# from memory to persistent storage.
# Shorter interval: more frequent flushing, reducing recovery time
# Longer interval: decreases data written to storage during heavy updates
# checkpointer_interval = 10
# Set it to false/off to turn off persistent storage. Set it to true/on to turn on
# persistent storage. When enabled, data in memory will be periodically flushed to
# persistent storage by checkpointer.
enable_data_store = true
# Set it to false/off to turn off WAL. Set it to true/on to turn on WAL. When enabled,
# new data is first written to the log server before updating memory, ensuring durability.
enable_wal = off
# The requirepass setting is used to enforce authentication. When enabled, EloqKV will
# not process any commands from clients that are not authenticated.
# requirepass=
# Redo Log group servers configuration when deploying log servers separately.
# The txlog_service_list should include all the redo log groups, with each entry
# formatted as ip:port and separated by commas.
# txlog_service_list=
# Number of replicas for a redo log group. The default value is 1, indicating no
# high availability (HA) support. To enable HA, set this value to 3 or higher.
txlog_group_replica_num = 1
# Controls replica count for each node group. Using 1 disables high availability,
# while 3 or more allows automatic failover when a node fails at the cost of resources.
# Changing this value requires redeploying the corresponding node groups, and currently
# the only supported value is 1.
node_group_replica_num = 1
# Option to enable heap defragmentation when using the mimalloc allocator.
# Enabling this feature helps optimize memory usage by reducing fragmentation.
# enable_heap_defragment = false
# Option to allow evicting persisted data when memory is full. Enabling this feature
# allows EloqKV to store more data, but will lead to performance degradation when
# a cache miss happens.
# enable_cache_replacement = true
# Isolation level of MULTI/EXEC transactions. You can set it to RepeatableRead or ReadCommitted.
# txn_isolation_level = RepeatableRead
[cluster]
# Describe the EloqKV tx_service cluster topology. The ip_port_list should include all
# EloqKV nodes, with each entry formatted as ip:port and separated by commas.
# For a single-node deployment, set this to match the ip:port specified in the [local] section.
# ip_port_list = 127.0.0.1:6379
# Indicator to automatically redirect requests to a remote node if the key is not found locally.
# auto_redirect = false
[store]
# Shard data directories.
# Format: path1,path2,...[,pathN][:weight1,weight2,...,weightN]
# Weights are optional. When omitted, disk-capacity-based weighting is used.
# eloq_store_data_path_list=
# Maximum number of open files allowed.
# eloq_store_open_files_limit=1024
# Maximum size of cached index pages (supports units like 128MB).
# eloq_store_buffer_pool_size=128MB
# Restart interval for data block prefix compression.
# eloq_store_data_page_restart_interval=16
# Restart interval for index block prefix compression.
# eloq_store_index_page_restart_interval=16
# Initial logical page count for a new store.
# eloq_store_init_page_count=32768
# Skip checksum verification on read paths when true.
# eloq_store_skip_verify_checksum=false
# eloq_store_manifest_limit: Maximum manifest size in bytes.
# eloq_store_manifest_limit=8388608
# eloq_store_io_queue_size: IO submission queue depth per shard.
# eloq_store_io_queue_size=4096
# eloq_store_max_inflight_write: Maximum number of in-flight write operations.
# eloq_store_max_inflight_write=65536
# eloq_store_max_write_batch_pages: Maximum pages covered by a single write batch.
# eloq_store_max_write_batch_pages=256
# eloq_store_coroutine_stack_size: Coroutine stack size in bytes for storage workers.
# eloq_store_coroutine_stack_size=32768
# File amplification factor allowed during compaction. Only take effect in append mode.
# eloq_store_file_amplify_factor=2
###############################################################
# >>>>>>>>>>>>>>>>> CLOUD MODE CONFIGURATION <<<<<<<<<<<<<<<< #
# Set the following parameters when using remote object #
# storage. Leave them commented for local-only deployments. #
###############################################################
# [CLOUD REQUIRED] Cloud storage URI used for remote persistence.
# Can be bucket_name or bucket_name/path; if empty, EloqKV stays in local mode.
# eloq_store_cloud_store_path=
# [CLOUD REQUIRED] Object storage service name: aws or gcs.
# eloq_store_cloud_provider=aws
# [CLOUD REQUIRED] Endpoint of the object storage service
# (e.g. http://127.0.0.1:9000 for MinIO, https://s3.<region>.amazonaws.com for S3,
# https://storage.googleapis.com for GCS).
# eloq_store_cloud_endpoint=
# [CLOUD REQUIRED] Region used when signing cloud requests.
# eloq_store_cloud_region=us-east-1
# [CLOUD REQUIRED] Cloud access key id.
# eloq_store_cloud_access_key=
# [CLOUD REQUIRED] Cloud secret key paired with the access key.
# eloq_store_cloud_secret_key=
# [CLOUD OPTIONAL] Local disk usage ceiling (accepts units like 1TB).
# eloq_store_local_space_limit=1TB
# [CLOUD OPTIONAL] Reserved space ratio for newly created/downloaded files.
# At most (local_space_limit / reserve_space_ratio) bytes is reserved.
# eloq_store_reserve_space_ratio=100
# [CLOUD OPTIONAL] Warm the cloud cache on startup for hot data.
# eloq_store_prewarm_cloud_cache=false
# [CLOUD OPTIONAL] Concurrent prewarm tasks per shard.
# eloq_store_prewarm_task_count=3
# [CLOUD OPTIONAL] Reuse existing local files when restoring from cloud.
# eloq_store_reuse_local_files=false
# Maximum number of requests EloqStore processes in one global batch.
# eloq_store_max_global_request_batch=1000
# Maximum number of concurrent standby rsync/ssh jobs managed by EloqStore.
# eloq_store_standby_max_concurrency=100
# size of each data page.
# eloq_store_data_page_size=4096
# Log2 pages contained in each data file.
# eloq_store_pages_per_file_shift=11
# Overflow pointer slots available per record.
# eloq_store_overflow_pointers=16
# Enable append-only writes to data files.
# eloq_store_data_append_mode=true
# Compression toggle of eloqstore.
# eloq_store_enable_compression=false