小编Wir*_*tsi的帖子

大量插入杀死 arangod(好吧,几乎)

我想知道有人遇到过这个:

通过 AQL 插入文档时,我可以轻松杀死我的 arango 服务器。例如

FOR i IN 1 .. 10
  FOR u IN users
    INSERT {
        _from: u._id,
        _to: CONCAT("posts/",CEIL(RAND()*2000)),
        displayDate: CEIL(RAND()*100000000)
    } INTO canSee
Run Code Online (Sandbox Code Playgroud)

(其中用户包含 500000 个条目),会发生以下情况

  • canSee 变得完全锁定(也不再读取)
  • 内存消耗上升
  • arangosh 或 Web 控制台变得无响应
  • 失败 [ArangoError 2001: 无法连接]
  • 服务器仍在运行,访问集合会超时
  • 大约需要 5-10 分钟,直到服务器恢复,我才能再次访问该集合
  • 访问任何其他集合工作正常

好吧,我正在创建很多条目,并且 AQL 可能会以批量执行的方式实现。通过 db.save 方法进行写入时,它可以工作,但速度要慢得多。

另外我怀疑这可能与预写缓存填满有关。

但是,有什么办法可以解决这个问题吗?将大量条目写入数据库不一定会杀死它。

日志说

DEBUG [./lib/GeneralServer/GeneralServerDispatcher.h:411] shutdownHandler called, but no handler is known for task

DEBUG [arangod/VocBase/datafile.cpp:949] created datafile '/usr/local/var/lib/arangodb/journals/logfile-6623368699310.db' of size 33554432 and page-size 4096

DEBUG [arangod/Wal/CollectorThread.cpp:1305] closing full …
Run Code Online (Sandbox Code Playgroud)

arangodb

2
推荐指数
1
解决办法
420
查看次数

标签 统计

arangodb ×1