我们的anrango安装遇到了新问题。如果我们发送复杂的AQL查询,例如迭代多个集合以查找特定信息,然后跟踪边缘等,则整个数据库都会阻塞。我们看到三个CPU内核中的一个是100%,其他两个是0%-1%左右。运行AQL查询时,数据库不会响应任何其他请求,并且Web界面也无法访问。这意味着整个处理将暂停,直到一个查询完成。
这有两个问题: 第一:查询需要很长时间(图形查询) 第二:当一个查询处于工作状态时,数据库不会做出反应。
针对此问题的任何想法/解决方案?您成功合作的最大数据库/图表是什么?
Thx,secana
答案 0 :(得分:1)
ArangoDB 2.8包含死锁检测。因此,如果您的查询阻止锁定,ArangoDB现在将引发异常。
ArangoDB 2.8还提供fast graph traversals,可以大大提高图表性能。
另一个好的解决方案是使用replication slave将读取分离到第二个实例。
使用RocksDB作为存储引擎(从3.2开始提供),不再有集合级锁,这意味着大多数查询可以并行执行而不会阻塞:https://docs.arangodb.com/3.4/Manual/Architecture/StorageEngines.html