Distributed Settings

For a distributed setting, the following parameters should be paied attention to.

Configuration Settings

To configurate a distributed setting, following parameters need to be modified in the default Configuration file ‘system_vars_config.toml’.

  • nodeID

nodeID is the Node ID of the cube. In a cluster, each node should have a different nodeID. - addr-raft and addr-advertise-raft

addr-raft is the address for raft-group rpc communication.

It is the 10000 port of the node.

1. addr-raft = "localhost:10000"

Only docker deployment need adjust addr-advertise-raft

For docker deployment, the ip is 0.0.0.0

1. addr-raft = "0.0.0.0:10000"

In the case that some clients cannot access the raft-group, addr-advertise-raft must be manually set.

1. addr-advertise-raft = "${HOST}:10000" - addr-client and addr-advertise-client

addr-client is the address for cube service. It is the 20000 port of the node.

1. addr-client = "localhost:20000"

Only docker deployment need adjust addr-advertise-client

For docker deployment, the ip is 0.0.0.0

1. addr-client = "0.0.0.0:20000"

In the case that a client cannot access Cube through the default client URLs listened to by Cube, addr-advertise-client must be manually set.

1. addr-advertise-client = "${HOST}:20000" - dir-data

dir-data is the directory for cube data. In a cluster, each node should have a different dir-data. - store-heartbeat-duration

store-heartbeat-duration is the period for this node to report information to scheduler. It should be less than 10s. - prophet name

name in Prophet Configs is the name of the node. In a cluster, each node should have a different prophet name.

1. name = "node0" - rpc-addr and rpc-advertise-addr

rpc-addr is the address for other clients to access prophet. It is the 30000 port of the node.

1. rpc-addr = "localhost:30000"

Only docker deployment need adjust rpc-advertise-addr

For docker deployment, the ip is 0.0.0.0

1. rpc-addr = "0.0.0.0:30000"

In the case that a client cannot access prophet, rpc-advertise-addr must be manually set.

1. rpc-advertise-addr = "${HOST}:30000" - prophet-node

prophet-node is whether the node is a pure prophet node. For the three prophet nodes, prophet-node is true.

1. prophet-node = true

For pure prophet nodes, prophet-node is false

1. prophet-node = false - external-etcd

For the three prophet nodes, external-etcd is empty.

1. external-etcd = ["", "", ""]

For pure storage nodes, external-etcd is the list of the client-urls of the three prophet nodes, i.e. the 40000 port of the prophet nodes.

1. external-etcd = ["http://ip_of_prophet_node1:40000", "http://ip_of_prophet_node2:40000", "http://ip_of_prophet_node3:40000"] - join

join is for the second and third prophet nodes to join the raft group. For the first prophet node, join is a empty string.

1. join = ""

For the second and third prophet node, join is the peer-urls of the first prophet node.

1. join = "http://ip_of_the_first_prophet_node:40000"

For pure storage nodes, there’s no need to adjust join. - client-urls and advertise-client-urls

client-urls is exposed to other nodes in the cluster. It is 40000 port of the node

1. client-urls = "http://localhost:40000"

Only docker deployment need adjust advertise-client-urls

For docker deployment, the ip is 0.0.0.0

1. client-urls = "http://0.0.0.0:40000"

In the case that some clients ccannot access prophet through the default client URLs listened to by prophet, advertise-client-urls must be manually set.

1. advertise-client-urls = "http://${HOST}:40000 - peer-urls and advertise-peer-urls

peer-urls is the list of peer URLs to be listened to by a prophet node. It is the 40000 port of the node.

1. peer-urls = "http://localhost:50000"

Only docker deployment need adjust advertise-peer-urls

For docker deployment, the ip is 0.0.0.0

1. peer-urls = "http://0.0.0.0:50000"

In the case that a node cannot be listened to by a prophet node, advertise-peer-urls should be manually set.

1. advertise-peer-urls = "http://${HOST}:50000" - max-replicas

max-replicas is the max number of replica in a prophet group. It should be 3.

1. max-replicas = 3