提交 d23d461c 编写于 作者: J João Sousa

Put back overseeing of pending replies by the control flow mechanism

上级 92eff4e0
无法预览此类型文件
......@@ -272,6 +272,7 @@ public class ClientsManager {
int pendingReqs = countPendingRequests();
int pendingDecs = dt.getPendingDecisions();
int pendingReps = dt.getReplyManager().getPendingReplies();
long usedMemory = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
//control flow mechanism
......@@ -279,6 +280,7 @@ public class ClientsManager {
if ((this.controller.getStaticConf().getMaxPendigReqs() > 0 && pendingReqs >= this.controller.getStaticConf().getMaxPendigReqs()) ||
(this.controller.getStaticConf().getMaxPendigDecs() > 0 && pendingDecs >= this.controller.getStaticConf().getMaxPendigDecs()) ||
(this.controller.getStaticConf().getMaxPendigReps() > 0 && pendingDecs >= this.controller.getStaticConf().getMaxPendigReps()) ||
(this.controller.getStaticConf().getMaxUsedMemory() > 0 && usedMemory >= this.controller.getStaticConf().getMaxUsedMemory()))
{
......@@ -286,6 +288,7 @@ public class ClientsManager {
} else if (pendingReqs <= this.controller.getStaticConf().getPreferredPendigReqs() &&
pendingDecs <= this.controller.getStaticConf().getPreferredPendigDecs() &&
pendingReps <= this.controller.getStaticConf().getPreferredPendigReps() &&
usedMemory <= this.controller.getStaticConf().getPreferredUsedMemory())
{
......@@ -298,11 +301,13 @@ public class ClientsManager {
usedMemory > this.controller.getStaticConf().getPreferredUsedMemory()) Runtime.getRuntime().gc(); // force garbage collection
logger.warn("Discarding message due to control flow mechanism\n" +
"\tMaximum requests are {}, current requests at {}\n" +
"\tMaximum decisions are {}, current decisions at {}\n" +
"\tMaximum requests are {}, pending requests at {}\n" +
"\tMaximum decisions are {}, pending decisions at {}\n" +
"\tMaximum replies are {}, pending replies at {}\n" +
"\tMaximum memory is {} current memory at {}\n",
this.controller.getStaticConf().getMaxPendigReqs(), pendingReqs,
this.controller.getStaticConf().getMaxPendigDecs(), pendingDecs,
this.controller.getStaticConf().getMaxPendigReqs(), pendingReps,
TOMUtil.humanReadableByteCount(this.controller.getStaticConf().getMaxUsedMemory(), false),
TOMUtil.humanReadableByteCount(usedMemory, false));
......
......@@ -43,6 +43,8 @@ public class TOMConfiguration extends Configuration {
protected int preferredPendingReqs;
protected int maxPendingDecs;
protected int preferredPendingDecs;
protected int maxPendingReps;
protected int preferredPendingReps;
protected int maxUsedMemory;
protected int preferredUsedMemory;
protected int numberOfNonces;
......@@ -213,6 +215,24 @@ public class TOMConfiguration extends Configuration {
}
s = (String) configs.remove("system.controlflow.maxpendingreps");
if (s == null) {
maxPendingReps = 10000;
} else {
maxPendingReps = Integer.parseInt(s);
if (maxPendingReps <= 0) {
maxPendingReps = -1;
}
}
s = (String) configs.remove("system.controlflow.preferredpendingreps");
if (s == null) {
preferredPendingReps = 1000;
} else {
preferredPendingReps = Integer.parseInt(s);
}
s = (String) configs.remove("system.controlflow.maxusedmemory");
if (s == null) {
maxUsedMemory = 100000;
......@@ -505,6 +525,15 @@ public class TOMConfiguration extends Configuration {
return preferredPendingDecs;
}
public int getMaxPendigReps() {
return maxPendingReps;
}
public int getPreferredPendigReps() {
return preferredPendingReps;
}
public int getMaxUsedMemory() {
return maxUsedMemory;
}
......
......@@ -514,8 +514,8 @@ public class ServiceReplica {
return id;
}
public int getPendingReplies() {
public ReplyManager getReplyManager() {
return repMan.getPendingReplies();
return repMan;
}
}
......@@ -81,6 +81,9 @@ public final class DeliveryThread extends Thread {
return decided.size() + currentDecisions;
}
public ReplyManager getReplyManager() {
return receiver.getReplyManager();
}
/**
* Invoked by the TOM layer, to deliver a decision
* @param dec Decision established from the consensus
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册