# HStreamDB Configuration

HStreamDB configuration file is located at path /etc/hstream/config.yaml in the docker image from v0.6.3. or you can download (opens new window) the config file

# Configuration Table

# hserver

NameDefault ValueDescription
idThe identifier of a single HServer node, the value must be given and can be overwritten by cli option --server-id
bind-address"0.0.0.0"The IP address or name of the host to which the HServer protocol handler is bound. The value can be overwritten by cli option --bind-address
advertised-address"127.0.0.1"Server listener address value, the value must be given and shouldn't be "0.0.0.0", if you intend to start a cluster or trying to connect to the server from a different network. This value can be overwritten by cli option --address
gossip-addressThe address used for server internal communication, if not specified, it uses the value of advertised-address. The value can be overwritten by cli option "--gossip-address"
port6570Server port value, the value must be given and can be overwritten by cli option --port
internal-port6571Server port value for internal communications between server nodes, the value must be given and can be overwritten by cli option --internal-port
metastore-uriThe server nodes in the same cluster shares an HMeta uniy, this is used for metadata storage and is essential for a server to start. Specify the HMeta protocal such as zk:// or rq://, following with Comma separated host:port pairs, each corresponding to a hmeta server. e.g. zk://127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183. The value must be given and can be overwritten by cli option --metastore-uri
log-with-colortrueoptional, The options used to control whether print logs with color by the server node, can be overwritten by cli option --log-with-color
log-levelinfooptional, the setting control lof print level by the server node the default value can be overwritten by cli option --log-level
max-record-size1024*1024 (1MB)The largest size of a record batch allowed by HStreamDB
enable-tlsfalseTLS options: Enable tls, which requires tls-key-path and tls-cert-path options
tls-key-pathTLS options: Key file path for tls, can be generated by openssl
tls-cert-pathThe signed certificate by CA for the key(tls-key-path)

# hstore

The configuration for hstore is optional. When the values are not provided, hstreamdb will use the the default values.

NameDefault ValueDescription
log-levelinfooptional

Store admin section specifies the client config when connecting to the storage admin server

NameDefault ValueDescription
host"127.0.0.1"optional
port6440optional
protocol-idbinaryProtocolIdoptional
conn-timeout5000optional
send-timeout5000optional
recv-timeout5000optional

# stream

NameDefault ValueDescription
replication-factor1optional
backlog-retention7*24*3600the retention time in seconds

# subscription

NameDefault ValueDescription
ackTimeoutSeconds600Maximum time in the server will wait for an acknowledgement
maxUnackedRecords10000The maximum amount of unacknowledged records allowed

# Command-Line Options

For ease of use, we allow users to pass some options to override the configuration in the configuration file when starting the server with hstream-server :

OptionMeta varDescription
config-pathPATHhstream config path
bind-addressHOSTserver host value
advertised-addressHOSTserver listener address value
gossip-addressHOSTserver gossip address value
portINTserver port value
internal-portINTserver channel port value for internal communication
server-idUINT32ID of the hstream server node
store-admin-portINTstore admin port value
metastore-uriSTRSpecify the HMeta protocal such as zk:// or rq://, following with Comma separated host:port pairs, each corresponding to a hmeta server. e.g. zk://127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183.
log-level<critical | fatal | warning | info | debug>Server log level
log-with-colorFLAGServer log with color