Skip to main content

Configuration Reference

This chapter provides detailed descriptions of Curvine configuration options.

Cluster Configuration​

Configuration ItemDefault ValueDescription
format_mastertrueControls whether to format Master metadata storage
format_workertrueControls whether to format Worker data storage
testingfalseMarks whether in testing mode, data flow is disabled in testing mode
cluster_idcurveUnique identifier for the cluster

Master Configuration​

Configuration ItemDefault ValueDescription
master.hostnamelocalhostMaster service hostname, can be overridden by environment variable CURVINE_MASTER_HOSTNAME
master.rpc_port8995Master service RPC port
master.web_port9000Master service Web port
master.io_threads32Number of Master service I/O threads
master.worker_threadsCPU cores * 2Number of Master service worker threads
master.io_timeout10mMaster network read/write data timeout
master.io_close_idletrueWhether to close idle connections
master.meta_dir./fs-metaMetadata storage directory
master.meta_disable_waltrueWhether to disable RocksDB's Write-Ahead Log (WAL)
master.meta_compression_typenoneCompression type for metadata storage
master.meta_db_write_buffer_size0Database write buffer size for metadata storage
master.meta_write_buffer_size64MBWrite buffer size for metadata storage
master.min_block_size1024 * 1024Minimum block_size
master.max_block_size100 * 1024 * 1024 * 1024Maximum block_size
master.min_replication1Minimum number of replicas
master.max_replication100Maximum number of replicas
master.max_path_len8000Maximum path length
master.max_path_depth1000Maximum path depth
master.retry_cache_enabletrueWhether to enable filesystem request retry cache
master.retry_cache_size100_000Size of retry cache
master.retry_cache_ttl10mExpiration time of retry cache
master.block_report_limit1000Block report limit, maximum number of blocks allowed per report
master.worker_policylocalWorker selection policy, default local, prioritizes workers on the same node as client
master.executor_threads10Number of master background task executor threads
master.executor_channel_size1000Master background task executor channel size
master.heartbeat_check_interval5mInterval for Master to check Worker heartbeats
master.heartbeat_interval3sInterval for Worker to send heartbeats
master.audit_logging_enabledtrueWhether to enable audit logging
master.log{level: "info", log_dir: "stdout"}Master log configuration, defaults to stdout output

Journal Configuration​

Configuration ItemDefault ValueDescription
enabletrueIf raft log sync is enabled, logs will be synchronized; if disabled, equivalent to single-node system
group_nameraft-groupRaft group name
rpc_port8996RPC port number
io_threads8Number of I/O threads
worker_threads8Number of worker threads
message_size200Message size
journal_addrs{id: 1, hostname: "localhost", port: 8996}List of Master candidate node addresses
journal_dir./journalRaft log storage directory
writer_debugfalseWhether to enable debug mode for write operations, prints each log entry when enabled
writer_channel_size0Buffer queue size for journal writing, defaults to unbounded queue
writer_flush_batch_size1000Number of entries for write operation batch flush
writer_flush_batch_ms100Time interval for write operation batch flush (milliseconds)
snapshot_interval6hSnapshot creation interval
snapshot_entries100_000Number of entries generated after creating snapshot
snapshot_read_chunk_size1024 * 1024Snapshot read chunk size
conn_retry_max_duration_ms0Maximum duration for connection retry (milliseconds)
conn_retry_min_sleep_ms10 * 1000Minimum sleep time for connection retry (milliseconds)
conn_retry_max_sleep_ms10 * 1000Maximum sleep time for connection retry (milliseconds)
rpc_close_idlefalseWhether to close idle RPC connections
rpc_retry_max_duration_ms60 * 1000Maximum duration for RPC request retry (milliseconds)
rpc_retry_min_sleep_ms20 * 1000Minimum sleep time for RPC request retry (milliseconds)
rpc_retry_max_sleep_ms20 * 1000Maximum sleep time for RPC request retry (milliseconds)
conn_timeout_ms30 * 1000Connection timeout (milliseconds), default 30 seconds
io_timeout_ms60 * 1000Socket data read/write timeout (milliseconds), default 60 seconds
conn_size1Number of available connections when sharing connections
raft_poll_interval_ms100Raft polling interval (milliseconds)
raft_tick_interval_ms1000Raft heartbeat interval (milliseconds)
raft_election_tick10Raft election timeout cycles
raft_heartbeat_tick3Raft heartbeat timeout cycles
raft_min_election_ticks10Raft minimum election timeout cycles
raft_max_election_ticks30Raft maximum election timeout cycles
raft_check_quorumtrueWhether to check quorum
raft_max_size_per_msg1024 * 1024Maximum size per message
raft_max_inflight_msgs256Maximum number of unacknowledged messages
raft_max_committed_size_per_ready16 * 1024 * 1024Maximum commit size per ready state
raft_retry_cache_size100_000Raft request retry cache size, prevents duplicate requests
raft_retry_cache_ttl10mExpiration time for raft request retry cache
retain_checkpoint_num3Number of checkpoints to retain
ignore_replay_errorfalseWhether to ignore errors during log replay

Worker Configuration​

Configuration ItemDefault ValueDescription
worker.dir_reserved0Directory reserved space configuration
worker.data_dirvec![]Worker data directory list
worker.io_slow_threshold300msWorker I/O operation slow threshold, operations exceeding this time are considered slow
worker.io_threads32Number of Worker network I/O threads
worker.worker_threadsCPU cores * 2Number of Worker worker threads
worker.io_timeout10mWorker network read/write data timeout
worker.io_close_idlefalseWhether to close idle connections, defaults to false since client doesn't implement heartbeat mechanism; uses keepalive to check connection validity
worker.scheduler_threads2Number of background scheduling task threads
worker.executor_threads10Number of background asynchronous task threads
worker.executor_channel_size1000Background asynchronous task queue size
worker.log{level: "info", log_dir: "stdout"}Worker log configuration, defaults to stdout output

Worker Data Loading Configuration​

Configuration ItemDefault ValueDescription
worker.load.task_status_report_interval_ms5000Progress report interval (milliseconds)
worker.load.task_read_chunk_size_bytes1024 * 1024Default chunk size (bytes)
worker.load.task_transfer_buffer_count16Default buffer cache count
worker.load.task_timeout_seconds3600Task timeout (seconds), -1 means no timeout
worker.load.task_transfer_max_concurrent_tasks5Maximum concurrent tasks

Client Configuration​

Configuration ItemDefault ValueDescription
client.master_addrslocalhost:8995Master node address list
client.hostnamelocalhostHostname of the machine where client is located, needs to be set in certain scenarios to identify if client and worker nodes are on the same machine
client.io_threads16Number of client I/O threads
client.worker_threadsCPU cores * 2Number of client worker threads
client.replicas1Default number of replicas
client.block_size128MBBlock size (bytes), actual value converted from block_size_str
client.write_chunk_size128KBWrite buffer size
client.write_chunk_num8Write buffer queue length
client.read_chunk_size128KBRead buffer size
client.read_chunk_num32Read buffer queue length
client.read_parallel1Parallelism for reading files
client.read_slice_size0Read slice size (bytes), default value is read_chunk_size * read_chunk_num
client.close_reader_limit20In random read scenarios, if block switching due to seek operations exceeds this value, all block readers will be cached
client.short_circuittrueWhether to enable short-circuit functionality
client.storage_typediskDefault storage type
client.ttl_ms0Default data cache time (milliseconds)
client.ttl_actionnoneAction after cache expiration
client.auto_cache_enabledfalseWhether to enable auto-cache functionality, when enabled, reading files from external filesystem will automatically submit load requests to master and cache files
client.auto_cache_ttl7dDefault TTL for auto-cache, format is number plus unit or pure number (seconds)
client.conn_retry_max_duration_ms2 * 60 * 1000Maximum duration for connection retry (milliseconds)
client.conn_retry_min_sleep_ms300Minimum sleep time for connection retry (milliseconds)
client.conn_retry_max_sleep_ms10 * 1000Maximum sleep time for connection retry (milliseconds)
client.rpc_retry_max_duration_ms5 * 60 * 1000Maximum duration for RPC request retry (milliseconds)
client.rpc_retry_min_sleep_ms300Minimum sleep time for RPC request retry (milliseconds)
client.rpc_retry_max_sleep_ms30 * 1000Maximum sleep time for RPC request retry (milliseconds)
client.rpc_close_idletrueWhether to close idle RPC connections
client.conn_timeout_ms30 * 1000Connection timeout (milliseconds)
client.rpc_timeout_ms120 * 1000RPC request timeout (milliseconds)
client.data_timeout_ms5 * 60 * 1000Data transfer timeout (milliseconds)
client.master_conn_pool_size1Master node connection pool size, testing shows 3 connections perform best, default is 1
client.enable_read_aheadtrueWhether to enable read-ahead functionality
client.read_ahead_len0Read-ahead length (bytes), default value is read_chunk_size * read_chunk_num
client.drop_cache_len0Drop cache length (bytes)
client.failed_worker_ttl_str10mWorker node blacklist expiration time

FUSE Configuration​

Configuration ItemDefault ValueDescription
fuse.debugfalseWhether to output request/response logs
fuse.io_threads32Number of I/O threads
fuse.worker_threadsCPU cores * 2Number of worker threads
fuse.mnt_path/curvine-fuseMount path
fuse.fs_path/Specifies the root path of filesystem accessed by mount point
fuse.mnt_number1Number of mount points
fuse.mnt_per_task0 (initialized to io_threads value if 0)Number of tasks that can read/write data per mount point
fuse.clone_fdtrueWhether to enable clone fd functionality
fuse.fuse_channel_size0Fuse request queue size, 0 uses unbounded queue
fuse.stream_channel_size0Read/write file request queue size, 0 uses unbounded queue
fuse.fuse_opts[]Mount configuration, needs to be passed to Linux kernel
fuse.umask022Overrides permission bits set by filesystem in st_mode, represented in octal
fuse.uidsys::get_uid()User ID
fuse.gidsys::get_gid()Group ID
fuse.auto_cachefalseWhether to enable auto-cache
fuse.read_dir_fill_inotrueWhether to fill fuse node ID when traversing directories
fuse.entry_timeout1.0Name lookup cache time (seconds)
fuse.negative_timeout0.0Timeout for caching negative lookups (seconds), 0 means disabled
fuse.attr_timeout1.0Cache time for file and directory attributes (seconds)
fuse.ac_attr_timeout1.0Timeout for file attribute cache during auto-cache refresh (seconds)
fuse.ac_attr_timeout_set1.0Timeout for file attribute cache during auto-cache refresh (seconds)
fuse.rememberfalseWhether filesystem remembers opened files and directories
fuse.max_background256Maximum concurrent execution of background tasks in filesystem
fuse.congestion_threshold192Congestion threshold
fuse.node_cache_size200000Inode cache capacity
fuse.node_cache_timeout1hInode cache lifetime
fuse.direct_iotrueFile and directory related options, whether to enable direct I/O
fuse.kernel_cachefalseFile and directory related options, whether to enable kernel cache
fuse.cache_readdirfalseFile and directory related options, whether to cache directory read results
fuse.non_seekablefalseFile and directory related options, whether in non-seekable mode
fuse.log{level: "info", log_dir: "stdout"}FUSE log configuration, defaults to stdout output