Wait for a raft quorum + logging a message to inform about the wait
Change-Id: I6b1e5a6f2a0ca57e0a435877068ba83bc9311953
Showing
1 changed file
with
8 additions
and
4 deletions
| ... | @@ -224,16 +224,20 @@ public class DatabaseManager implements DatabaseService, DatabaseAdminService { | ... | @@ -224,16 +224,20 @@ public class DatabaseManager implements DatabaseService, DatabaseAdminService { |
| 224 | clusterEventListener = new InternalClusterEventListener(); | 224 | clusterEventListener = new InternalClusterEventListener(); |
| 225 | clusterService.addListener(clusterEventListener); | 225 | clusterService.addListener(clusterEventListener); |
| 226 | 226 | ||
| 227 | - if (clusterService.getNodes().size() < clusterConfig.getMembers().size()) { | 227 | + final int raftClusterSize = clusterConfig.getMembers().size(); |
| 228 | + final int raftClusterQuorumSize = (int) (Math.floor(raftClusterSize / 2)) + 1; | ||
| 229 | + if (clusterService.getNodes().size() < raftClusterQuorumSize) { | ||
| 228 | // current cluster size smaller then expected | 230 | // current cluster size smaller then expected |
| 229 | try { | 231 | try { |
| 230 | - if (!clusterEventLatch.await(120, TimeUnit.SECONDS)) { | 232 | + final int waitTimeSec = 120; |
| 233 | + log.info("Waiting for a maximum of {}s for raft cluster quorum to boot up...", waitTimeSec); | ||
| 234 | + if (!clusterEventLatch.await(waitTimeSec, TimeUnit.SECONDS)) { | ||
| 231 | log.info("Starting with {}/{} nodes cluster", | 235 | log.info("Starting with {}/{} nodes cluster", |
| 232 | clusterService.getNodes().size(), | 236 | clusterService.getNodes().size(), |
| 233 | - clusterConfig.getMembers().size()); | 237 | + raftClusterSize); |
| 234 | } | 238 | } |
| 235 | } catch (InterruptedException e) { | 239 | } catch (InterruptedException e) { |
| 236 | - log.info("Interrupted waiting for others", e); | 240 | + log.info("Interrupted waiting for raft quorum.", e); |
| 237 | } | 241 | } |
| 238 | } | 242 | } |
| 239 | } | 243 | } | ... | ... |
-
Please register or login to post a comment