ArangoDB 3.8 在简单查询上崩溃

Posted

技术标签:

【中文标题】ArangoDB 3.8 在简单查询上崩溃【英文标题】:ArangoDB 3.8 crashing on simple queries 【发布时间】:2021-12-22 03:26:00 【问题描述】:

我希望有人能指出我正确的方向。自 2017 年以来,我一直热衷于使用 ArangoDB,并开发了一个模型,该模型非常适合探索学生学习的纵向分析。但是,自从迁移到 RocksDB 和 3.8 后,我开始遇到崩溃并且无法弄清楚原因。我在配备 16GB RAM 的 Windows 10 笔记本电脑上使用社区版。我不认为计算机是问题,因为我在台式机上也遇到过。此外,具有 32GB RAM 的 Windows 10。我的数据库使用两个集合:一个文档集合“Study”,其中包含学生在一个包含 150 万个文档的模块中的学习尝试的详细信息;一个边缘集合,“路径”,包含研究尝试之间的链接,有 280 万条边缘;平均每个学生

FOR id in temp2  //list of user ids 
  LIMIT 5,10 //have tried various combinations of values within LIMIT 
  FOR v,e,p IN 1..10 OUTBOUND CONCAT("StartEnd/",id._key,"-start") Path  
    OPTIONS "bfs":true, uniqueVertices :"global", ignoreErrors:true    
    FILTER !IS_NULL(v.module) //removes the final vertex for each user, as always null    
    LET summary=KEEP(v,"pi","pres5", "module")   //retain 3 objects, id, presentation, module 
  RETURN summary

当我查看 AragnoDB 日志以查找此故障时。条目是这样的:

2021-11-07T21:43:44Z [18988] INFO [144fe] general 使用存储引擎“rocksdb” 2021-11-07T21:43:44Z [18988] INFO [3bb7d] cluster 以 SINGLE 角色启动 2021-11-07T21:43:44Z [18988] INFO [f6e0e] aql 每个 AQL 查询的内存限制自动设置为 10165316813 字节。要修改这个值,请调整启动选项--query.memory-limit 2021-11-07T21:43:50Z [18988] INFO [c1b63] arangosearch ArangoSearch 维护:[1..1] 提交线程,[1..1] 合并线程 2021-11-07T21:43:50Z [18988] INFO [6ea38] general 使用端点“http+tcp://127.0.0.1:8529”进行非加密请求 2021-11-07T21:43:51Z [18988] INFO [cf3f4] general ArangoDB(版本 3.8.1 [win64])已准备就绪。玩得开心! 2021-11-07T21:44:46Z [18988] INFO [87ff4] crash 未处理的异常:线程 5ec 中地址 00007ff7f761e02e 的 c0000005 2021-11-07T21:44:47Z [18988] INFO [93315] crash 写了小型转储:C:\WINDOWS\TEMP\arangod_a15316\2021-11-07T21-44-46_18988_1516.dmp 2021-11-08T15:35:58Z [9048] INFO [e52b0] general ArangoDB 3.8.1 [win64] 64 位,使用构建标签/v3.8.1-0-g20aa2c22713-dirty,VPack 0.1.35,RocksDB 6.8。 0、ICU 64.2、V8 7.9.317、OpenSSL 1.1.1k 2021 年 3 月 25 日

我正在处理的原始查询稍微复杂一点,使用 COLLECT 语句来收集 pi 和 pres5 周围的一些值(因为一些学生在同一个演示文稿中学习 2/3 模块。同样,这个查询在以前的 ArangoDB 安装,但现在导致 ArangoDB 像这样崩溃:

2021-11-06T20:11:29Z [66548] INFO [144fe] general 使用存储引擎“rocksdb” 2021-11-06T20:11:29Z [66548] INFO [3bb7d] cluster 以 SINGLE 角色启动 2021-11-06T20:11:29Z [66548] INFO [f6e0e] aql 每个 AQL 查询的内存限制自动设置为 10165316813 字节。要修改这个值,请调整启动选项--query.memory-limit 2021-11-06T20:11:36Z [66548] INFO [c1b63] arangosearch ArangoSearch 维护:[1..1] 提交线程,[1..1] 合并线程 2021-11-06T20:11:36Z [66548] INFO [6ea38] general 使用端点“http+tcp://127.0.0.1:8529”进行非加密请求 2021-11-06T20:11:38Z [66548] INFO [cf3f4] general ArangoDB(版本 3.8.1 [win64])已准备就绪。玩得开心! 2021-11-07T07:44:23Z [66548] INFO [3278a] general 收到系统关闭,开始关闭序列 2021-11-07T07:44:23Z [66548] INFO [63d54] queries AQLFeature 关闭,等待 0 个已注册查询终止和 1 个功能租约被释放 2021-11-07T07:45:22Z [5968] INFO [e52b0] general ArangoDB 3.8.1 [win64] 64 位,使用构建标签/v3.8.1-0-g20aa2c22713-dirty,VPack 0.1.35,RocksDB 6.8。 0、ICU 64.2、V8 7.9.317、OpenSSL 1.1.1k 2021 年 3 月 25 日

非常感谢。克里斯

【问题讨论】:

日志输出包含一行crash Wrote minidump: <path>。您能否在github.com/arangodb/arangodb/issues 创建一个 GitHub 问题并包含所有这些信息,包括来自指定路径的转储文件? 非常感谢您的建议。我刚刚完成了这项工作。 【参考方案1】:

如果您阅读 3.8 的发行说明,其中提到了新的内存限制选项,您可以覆盖这些选项。

【讨论】:

以上是关于ArangoDB 3.8 在简单查询上崩溃的主要内容,如果未能解决你的问题,请参考以下文章

ArangoDB介绍——未知架构和底层原理

Arangodb 是不是支持存储查询?

ArangoDB 3.0集群 - 读/写速度的改进是零?

最后使用 AQL 在 ArangoDB 中插入 _key?

arangoimport:边缘属性缺失或无效

开源NoSQL数据库:ArangoDB 入门指南