Arangodb比较复制者和主人

时间:2016-07-20 18:17:58

标签: arangodb

我无法比较我的主数据和我的复制数据以进行程序化健全性检查。 我希望以下内容对我的主人和我的复制者都有同样的回应。对于某些集合,它没有。

curl -s -X POST --data-binary @- --dump - ${ARANGO_DB_ADDRESS}/_db/dbname/_api/export?collection=collection_name <<EOF
{"count":true}
EOF

我误解了这个API调用的作用吗?有更简单的方法吗?我尝试了两者的arangodump,但差异非常极端

1 个答案:

答案 0 :(得分:0)

检查复制状态的最佳方法是先发出db.collection.count()然后再发出更准确的db.collection.checksum()。这些也可以通过这些卷曲调用发出:

数:

curl http://127.0.0.1:8529/_db/_system/_api/collection/test/count   
{"id":"26724522","name":"test","isSystem":false,"doCompact":true,
 "isVolatile":false,"journalSize":33554432,
 "keyOptions":{
    "type":"traditional","allowUserKeys":true},
"waitForSync":false,"indexBuckets":8,"count":40000,"status":3,
"type":2,"error":false,"code":200}

校验:

curl http://127.0.0.1:8529/_db/_system/_api/collection/test/checksum
{"id":"26724522","name":"test","isSystem":false,
"status":3,"type":2,"checksum":1808041899,"revision":"7926623225",
"error":false,"code":200}

关于export - API,它们取决于服务器状态。在创建时将文档连续写入WAL文件.WAL文件被使用,因此您的磁盘上没有分布式写入,这会损害性能。稍后将文档移入其集合文件中。要确保导出不会损害服务器性能,只会导出集合文件中的文档。因此,根据收集设施的状态,文件的数量可能不同。

在异步状态下获取同步的最可靠方法是在从属设备上插入文档。如果发生这种情况,您可以通过发出以下命令回到理智的状态:

r.applier.stop()
r.syncCollection("myCollection", {endpoint: "tcp://127.0.0.1:8529"})
r.applier.start()

但是,对从站的更改将会丢失。