From 3f02c9fa62c9b77e704b9b4837854d6355d18869 Mon Sep 17 00:00:00 2001 From: aminst Date: Thu, 22 Feb 2024 12:08:42 -0500 Subject: [PATCH] Fix wrong replication in the sharded setting --- ansible/templates/oblishard-oramnode.service.j2 | 3 ++- ansible/templates/oblishard-shardnode.service.j2 | 3 ++- pkg/shardnode/raft.go | 7 ++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ansible/templates/oblishard-oramnode.service.j2 b/ansible/templates/oblishard-oramnode.service.j2 index 1362a30..49c0e97 100644 --- a/ansible/templates/oblishard-oramnode.service.j2 +++ b/ansible/templates/oblishard-oramnode.service.j2 @@ -13,7 +13,8 @@ ExecStart=/root/oblishard/oramnode/oramnode \ -replicaid {{ item.replicaid }} \ -raftport {{ item.raftport }} \ {% if item.replicaid!=0 %} - {{'-joinaddr=' + oramnode_endpoints.endpoints[item.id].exposed_ip + ':' + oramnode_endpoints.endpoints[item.id].port | string }} \ + # this assumes there are 3 replicas (Dangerous assmumption) + {{'-joinaddr=' + oramnode_endpoints.endpoints[item.id * 3].exposed_ip + ':' + oramnode_endpoints.endpoints[item.id].port | string }} \ {% endif %} -conf /root/oblishard/ \ -logpath {{ '/root/oblishard/oramnode/' + item.id | string + '/' + item.replicaid | string + '/all.log' }} diff --git a/ansible/templates/oblishard-shardnode.service.j2 b/ansible/templates/oblishard-shardnode.service.j2 index f654634..976cd6e 100644 --- a/ansible/templates/oblishard-shardnode.service.j2 +++ b/ansible/templates/oblishard-shardnode.service.j2 @@ -13,7 +13,8 @@ ExecStart=/root/oblishard/shardnode/shardnode \ -replicaid {{ item.replicaid }} \ -raftport {{ item.raftport }} \ {% if item.replicaid!=0 %} - {{'-joinaddr=' + shardnode_endpoints.endpoints[item.id].exposed_ip + ':' + shardnode_endpoints.endpoints[item.id].port | string }} \ + # this assumes there are 3 replicas (Dangerous assmumption) + {{'-joinaddr=' + shardnode_endpoints.endpoints[item.id * 3].exposed_ip + ':' + shardnode_endpoints.endpoints[item.id].port | string }} \ {% endif %} -conf /root/oblishard/ \ -logpath {{ '/root/oblishard/shardnode/' + item.id | string + '/' + item.replicaid | string + '/all.log' }} diff --git a/pkg/shardnode/raft.go b/pkg/shardnode/raft.go index 3546b19..4799f3d 100644 --- a/pkg/shardnode/raft.go +++ b/pkg/shardnode/raft.go @@ -276,9 +276,10 @@ func (fsm *shardNodeFSM) Restore(rc io.ReadCloser) error { func startRaftServer(isFirst bool, bindIP string, advertiseIP string, replicaID int, raftPort int, shardshardNodeFSM *shardNodeFSM) (*raft.Raft, error) { raftConfig := raft.DefaultConfig() - raftConfig.ElectionTimeout = 150 * time.Millisecond - raftConfig.HeartbeatTimeout = 150 * time.Millisecond - raftConfig.LeaderLeaseTimeout = 150 * time.Millisecond + // TODO: set these carefuly for the crash experiments + // raftConfig.ElectionTimeout = 150 * time.Millisecond + // raftConfig.HeartbeatTimeout = 150 * time.Millisecond + // raftConfig.LeaderLeaseTimeout = 150 * time.Millisecond raftConfig.Logger = hclog.New(&hclog.LoggerOptions{Output: log.Logger}) raftConfig.LocalID = raft.ServerID(strconv.Itoa(replicaID))