Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
JDChain
Bftsmart
提交
d23d461c
B
Bftsmart
项目概览
JDChain
/
Bftsmart
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
Bftsmart
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
d23d461c
编写于
1月 22, 2019
作者:
J
João Sousa
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Put back overseeing of pending replies by the control flow mechanism
上级
92eff4e0
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
41 addition
and
4 deletion
+41
-4
bin/BFT-SMaRt.jar
bin/BFT-SMaRt.jar
+0
-0
src/bftsmart/clientsmanagement/ClientsManager.java
src/bftsmart/clientsmanagement/ClientsManager.java
+7
-2
src/bftsmart/reconfiguration/util/TOMConfiguration.java
src/bftsmart/reconfiguration/util/TOMConfiguration.java
+29
-0
src/bftsmart/tom/ServiceReplica.java
src/bftsmart/tom/ServiceReplica.java
+2
-2
src/bftsmart/tom/core/DeliveryThread.java
src/bftsmart/tom/core/DeliveryThread.java
+3
-0
未找到文件。
bin/BFT-SMaRt.jar
浏览文件 @
d23d461c
无法预览此类型文件
src/bftsmart/clientsmanagement/ClientsManager.java
浏览文件 @
d23d461c
...
...
@@ -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
));
...
...
src/bftsmart/reconfiguration/util/TOMConfiguration.java
浏览文件 @
d23d461c
...
...
@@ -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
;
}
...
...
src/bftsmart/tom/ServiceReplica.java
浏览文件 @
d23d461c
...
...
@@ -514,8 +514,8 @@ public class ServiceReplica {
return
id
;
}
public
int
getPendingReplies
()
{
public
ReplyManager
getReplyManager
()
{
return
repMan
.
getPendingReplies
()
;
return
repMan
;
}
}
src/bftsmart/tom/core/DeliveryThread.java
浏览文件 @
d23d461c
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录