From e904571a25e4c215fe0928ca8b61eb1a817410bd Mon Sep 17 00:00:00 2001 From: "isaacklugman@gmail.com" <ik1g19@soton.ac.uk> Date: Thu, 13 May 2021 14:04:10 +0100 Subject: [PATCH] rebalance only occurs when at least one file is stored --- src/Controller.java | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/Controller.java b/src/Controller.java index d169178..87085e8 100644 --- a/src/Controller.java +++ b/src/Controller.java @@ -496,25 +496,29 @@ public class Controller extends Server { private void rebalanceOperation() { - if (rebalanceInProgess) rebalanceCounter++; - else { - threadIDOutput("Started Rebalance Operation"); + threadIDOutput("Started Rebalance Operation"); - State currentSate = currentState(); + if (rebalanceInProgess) { + rebalanceCounter++; + threadIDOutput("Rebalance already in progress, queued for later"); + } + else if (fileIndex.size() == 0) { + threadIDOutput("Rebalance cancelled, no files currently stored"); + } + else { + State currentSate = currentState(); - List<Change> changes = rebalance(currentSate); + List<Change> changes = rebalance(currentSate); - if (!changes.isEmpty()) rebalanceChanges(changes); - else rebalanceInProgess = false; - } + if (!changes.isEmpty()) rebalanceChanges(changes); + else rebalanceInProgess = false; + } } public DStoreConnection registerDStore(Socket requestingSocket, String joinRequest) { - if (fileIndex.size() > 0) { - rebalanceOperation(); - } + rebalanceOperation(); Socket dSock = requestingSocket; -- GitLab