ArangoDB 3.8执行简单查询时崩溃问题求助
ArangoDB 3.8 RocksDB引擎频繁崩溃,BFS查询超出小范围LIMIT即触发崩溃(Windows平台)
我从2017年开始使用ArangoDB,开发了一个用于学生学习纵向分析的模型,一直运行得很稳定。但自从切换到RocksDB存储引擎并升级到3.8版本后,数据库频繁崩溃,我实在找不到问题根源,希望能得到大家的指引。
环境信息
我在两台Windows 10设备上使用Community版3.8.1,均出现相同问题,排除硬件因素:
- 16GB内存的笔记本电脑
- 32GB内存的台式机
数据库集合详情
我的数据库包含以下三个核心集合:
- 文档集合
Study:存储学生模块学习尝试的详细信息,共150万条文档 - 边集合
Path:存储学习尝试间的关联关系,共280万条边,平均每个学生的边数少于6条 - 文档集合
StartEnd:为每个学生存储一对虚拟起始和结束顶点,方便生成学习路径,共近100万条文档
问题复现场景
此前在MMfiles存储引擎的旧版本中,无限制的简单查询都能正常运行,但现在如果不将查询结果数量限制在10条左右,就会直接导致ArangoDB崩溃。
举个例子,下面的查询是从用户ID列表temp2中选取部分用户,通过BFS遍历获取他们的学习尝试顶点,仅保留必要字段返回。这个查询在旧版本MMfiles中完全正常,但现在只要LIMIT的范围稍大就会崩溃:
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
该查询触发崩溃的日志:
2021-11-07T21:43:44Z [18988] INFO [144fe] {general} using storage engine 'rocksdb' 2021-11-07T21:43:44Z [18988] INFO [3bb7d] {cluster} Starting up with role SINGLE 2021-11-07T21:43:44Z [18988] INFO [f6e0e] {aql} memory limit per AQL query automatically set to 10165316813 bytes. to modify this value, please adjust the startup option --query.memory-limit 2021-11-07T21:43:50Z [18988] INFO [c1b63] {arangosearch} ArangoSearch maintenance: [1..1] commit thread(s), [1..1] consolidation thread(s) 2021-11-07T21:43:50Z [18988] INFO [6ea38] {general} using endpoint 'http+tcp://127.0.0.1:8529' for non-encrypted requests 2021-11-07T21:43:51Z [18988] INFO [cf3f4] {general} ArangoDB (version 3.8.1 [win64]) is ready for business. Have fun! 2021-11-07T21:44:46Z [18988] INFO [87ff4] {crash} Unhandled exception: c0000005 at address 00007ff7f761e02e in thread 5ec 2021-11-07T21:44:47Z [18988] INFO [93315] {crash} Wrote minidump: 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] 64bit, using build tags/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 25 Mar 2021
我原本使用的更复杂的查询(包含COLLECT语句聚合pi和pres5相关的值,部分学生会在同一学期学习2-3个模块),在旧版本中运行正常,现在同样会导致数据库崩溃,对应的日志如下:
2021-11-06T20:11:29Z [66548] INFO [144fe] {general} using storage engine 'rocksdb' 2021-11-06T20:11:29Z [66548] INFO [3bb7d] {cluster} Starting up with role SINGLE 2021-11-06T20:11:29Z [66548] INFO [f6e0e] {aql} memory limit per AQL query automatically set to 10165316813 bytes. to modify this value, please adjust the startup option --query.memory-limit 2021-11-06T20:11:36Z [66548] INFO [c1b63] {arangosearch} ArangoSearch maintenance: [1..1] commit thread(s), [1..1] consolidation thread(s) 2021-11-06T20:11:36Z [66548] INFO [6ea38] {general} using endpoint 'http+tcp://127.0.0.1:8529' for non-encrypted requests 2021-11-06T20:11:38Z [66548] INFO [cf3f4] {general} ArangoDB (version 3.8.1 [win64]) is ready for business. Have fun! 2021-11-07T07:44:23Z [66548] INFO [3278a] {general} system-shutdown received, beginning shut down sequence 2021-11-07T07:44:23Z [66548] INFO [63d54] {queries} AQLFeature shutdown, waiting for 0 registered queries to terminate and for 1 feature leases to be released 2021-11-07T07:45:22Z [5968] INFO [e52b0] {general} ArangoDB 3.8.1 [win64] 64bit, using build tags/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 25 Mar 2021
非常感谢各位的帮助!
内容的提问来源于stack exchange,提问作者Chris Edwards
相关产品推荐
相关产品推荐

