我们在安装anrango时遇到了一个新问题。如果我们发送一个复杂的AQL查询,比如迭代多个集合来找到特定的信息,然后沿着边等,整个数据库就会阻塞。我们看到我们的三个CPU核心中有一个是100%的,另外两个大约是0%-1%。当AQL查询运行时,数据库不会对任何其他请求做出反应,web界面也是不可访问的。这意味着整个处理都会暂停,直到一个查询完成。
这其中有两个问题:第一:查询耗时很长(图查询)第二:当一个查询正在工作时,数据库没有反应。
对这个问题有什么想法/解决方案吗?您成功使用过的最大的数据库/图形是什么?
Thx,secana
发布于 2016-01-28 03:23:13
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
https://stackoverflow.com/questions/30510142
复制相似问题