Kubernetes Arangodb在一段时间后停止异步复制
我在Kubernetes上使用Arangodb3.2.2。我有一个主数据库和一个从数据库。在arangosh内的从属数据库上,输入以下命令:Kubernetes Arangodb在一段时间后停止异步复制,kubernetes,replication,arangodb,Kubernetes,Replication,Arangodb,我在Kubernetes上使用Arangodb3.2.2。我有一个主数据库和一个从数据库。在arangosh内的从属数据库上,输入以下命令: db.\u使用数据库(“mydb”); equire(“@arangodb/replication”)。设置复制({ 端点:“tcp://master:8529", 用户名:“root”, 密码:“123456”, 数据库:“mydb”, 没错, includeSystem:false, 是的, 自动同步:对, maxConnectRetries:20,
db.\u使用数据库(“mydb”);
equire(“@arangodb/replication”)。设置复制({
端点:“tcp://master:8529",
用户名:“root”,
密码:“123456”,
数据库:“mydb”,
没错,
includeSystem:false,
是的,
自动同步:对,
maxConnectRetries:20,
自适应轮询:false,
空闲时间:0.001,
idleMaxWaitTime:1.5,
大小:5000
});
命令阻塞几秒钟,然后开始复制,我可以看到来自主数据库的集合被复制到从数据库。但是,一段时间后,复制停止
当我跑步时:
需要(“@arangodb/replication”).applier.state
这就是我所看到的:
当我再次运行复制命令时,我看到集合再次被复制
如何初始化稳定的复制过程?
我知道这是一个异步复制,但在我的用例中,我需要尽快更新从机。。。我的复制配置适合我的需要吗?这似乎是ArangoDB 3.2.2中的一个bug
在ArangoDB 3.2.8中,复制似乎可以工作(即使使用rocksdb)。如果我理解正确,复制应用程序会将其状态报告为“正在运行”,而其他分析表明,它实际上没有应用来自主应用程序的任何更改?我想了解你是如何得出申请者不工作的结论的。您正在查看集合中的文档计数吗?或者您正在查看应用程序的
state()
命令的多个进度结果?至少在这里,刻度值和totalRequests
值应该随时间增加。如果没有,那么应用程序似乎确实挂起了。顺便说一下,配置的chunkSize
值似乎很低。它只有5KB,这可能意味着船长返回的批次最多也会有这么大。如果插入/修改/删除了许多文档,或者文档大小通常大于100字节左右,则5KB不会太大。我建议将chunkSize
值增加到1MB左右,看看是否有帮助,甚至使用默认值。我还建议打开adaptivePolling
,因为这意味着在没有太多事情可做的情况下,从机到主机的HTTP请求会减少。是否有其他进程(除了arangod本身)试图在从机上写入数据,特别是在收藏my_col
?两种存储引擎(RocksDB和MMFile)中存在明显差异。但是,复制应该同时使用两个存储引擎,而不仅仅是一个。那么在从机上,您只读取数据,而RocksDB会卡住吗?那听起来像只虫子!这可能是3.2.8版中修复的bug的副作用,但这纯粹是猜测,因为我还没有重现这个问题。
{
"state" : {
"running" : true,
"lastAppliedContinuousTick" : "6384020",
"lastProcessedContinuousTick" : "6384026",
"lastAvailableContinuousTick" : "6389353",
"safeResumeTick" : "6382367",
"progress" : {
"time" : "2017-11-15T12:14:09Z",
"message" : "fetching master log from tick 6382367, first regular tick 6367894, barrier: 0, open transactions: 0",
"failedConnects" : 0
},
"totalRequests" : 1155,
"totalFailedConnects" : 0,
"totalEvents" : 83,
"totalOperationsExcluded" : 0,
"lastError" : {
"errorNum" : 0
},
"time" : "2017-11-15T12:15:47Z"
},
"server" : {
"version" : "3.2.2",
"serverId" : "77969163868004"
},
"endpoint" : "tcp://master:8529",
"database" : "mydb"
}