首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArangoDB性能

ArangoDB性能
EN

Stack Overflow用户
提问于 2020-07-30 23:53:59
回答 1查看 240关注 0票数 0

我正在探索使用Arangodb作为一个需要最短路径分析的项目的图形引擎。

我的收藏品是这样的:

  • 边缘集合(_ to /_from)
  • 中约3.5m条边的路由网络,顶点收集~2.7M个顶点( lat,lng上的地理索引)。
  • 有起始/结束位置的trips集合(未映射到节点)。

第一项任务是抓取网络上到达顶点的旅行的原点和目的地坐标。我使用以下查询来执行此操作:

代码语言:javascript
复制
FOR t IN trips
    let snappedFrom = (
        FOR x IN nodes
          SORT GEO_DISTANCE([t.Orig_Long, t.Orig_Lat], [x.lng, x.lat]) ASC
          LIMIT 1
          RETURN x._id
        )[0]
    let snappedTo = (
        FOR x IN nodes
          SORT GEO_DISTANCE([t.Dest_Long, t.Dest_Lat], [x.lng, x.lat]) ASC
          LIMIT 1
          RETURN x._id
        )[0]
    UPDATE t._key WITH {snappedFrom,snappedTo} IN trips

这大约需要3.5小时,如果可能的话,我想大大减少。

我正在运行一个具有32 on和8核的AWS实例。我注意到,在运行此查询时,它只使用了一个核心,这会使我丧命。

我很好奇,为了纯粹的表演,我要建立一个“无神论者”。我的用例实际上是使用DB作为计算器。事实上,这很可能是CI/CD工作流程的一部分。我不需要任何安全保护,不会有任何并行用户请求,如果数据是坏的,我只是吹掉它,然后重新开始。

我使用的是一个标准安装的码头。

代码语言:javascript
复制
docker run -it --name=adb --rm -p 8528:8528 -v arangodb:/data -d -v /var/run/docker.sock:/var/run/docker.sock arangodb/arangodb-starter --starter.address=<$IP> --starter.mode=single

当我在所有的旅行中运行shortest_path时,我也会遇到同样的问题,如果是单个核心的话,这将花费永远的时间。

任何帮助配置,更好的查询,甚至更好的AWS设置将是真正的感谢。

EN

回答 1

Stack Overflow用户

发布于 2020-07-31 05:28:49

Geo-Spatial Indexes 添加到OrigDest字段中,这将使服务器能够优化/加速子查询。

为了进一步加快批处理运行主查询的速度,处理更小的批处理比一次运行所有文档更快。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63183014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档