From 7c1f1243fc2e97248628d974efc161cfb5883c25 Mon Sep 17 00:00:00 2001 From: Li Minghao Date: Sun, 24 Apr 2022 19:37:01 -0700 Subject: [PATCH 1/2] add UT test.sh --- source/libs/sync/test/test.sh | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 source/libs/sync/test/test.sh diff --git a/source/libs/sync/test/test.sh b/source/libs/sync/test/test.sh new file mode 100644 index 0000000000..7a693aac0b --- /dev/null +++ b/source/libs/sync/test/test.sh @@ -0,0 +1,3 @@ +#!/bin/bash + + From 2fa176a49d92bf8ad1e98a472b241b245a44f45e Mon Sep 17 00:00:00 2001 From: Li Minghao Date: Mon, 25 Apr 2022 07:49:40 -0700 Subject: [PATCH 2/2] when 1 replica, become leader immediately --- source/libs/sync/src/syncMain.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/libs/sync/src/syncMain.c b/source/libs/sync/src/syncMain.c index a3068d69a9..262c9d5530 100644 --- a/source/libs/sync/src/syncMain.c +++ b/source/libs/sync/src/syncMain.c @@ -457,6 +457,20 @@ SSyncNode* syncNodeOpen(const SSyncInfo* pSyncInfo) { void syncNodeStart(SSyncNode* pSyncNode) { // start raft + if (pSyncNode->replicaNum == 1) { + syncNodeBecomeLeader(pSyncNode); + + syncNodeLog2("==state change become leader immediately==", pSyncNode); + + // Raft 3.6.2 Committing entries from previous terms + + // use this now + syncNodeAppendNoop(pSyncNode); + syncMaybeAdvanceCommitIndex(pSyncNode); // maybe only one replica + return; + } + + syncNodeBecomeFollower(pSyncNode); // for test