ArangoDb集群查询性能问题

时间:2015-12-15 11:07:24

标签: arangodb nosql

我使用2个Db服务器和2个协调器设置简单群集。 当我执行简单的选择查询时,即使使用最少的数据与单机设置相比,我也会发现性能显着下降。

FOR key IN @keys 
FOR user IN User FILTER user.UserId == key 
RETURN user

我有UserId的哈希索引设置。即使集合中有100个用户,而@keys包含2个密钥,这个查询在单机配置上需要大约300毫秒到大约4毫秒。

Users集合有_key设置的4个分片。

1 个答案:

答案 0 :(得分:2)

群集涉及更多网络连接,因此网络延迟更多。必须对数据进行解序/序列化(包括解析等)。必须以集中的方式管理碎片等。

根据您的查询(即,依赖于其承载的排序结果的子查询),查询的部分必须在整个群集中分布,其中包括涉及甚至更多通信的多次往返。

群集旨在为您提供更高的吞吐量和更多计算资源的访问权限,而不是单个服务器环境可以提供的低延迟。

只要一台机器可以扩展到您的工作负载,集群就不是正确的解决方案。这将随着我们即将推出的3.0版本而改变,其中新的同步复制除了可扩展性之外还为您提供容错和高可用性。目前,您可以将查询加载分发到多台计算机using replication

Read more about ArangoDB Cluster performance in Max Blog article扩展到一个大环境,同时保持合理的低延迟。