Arangodb 重命名集合名称后插入异常

Arangodb 重命名集合名称后插入异常,arangodb,Arangodb,我的行动如下: 使用插入脚本在“节点”集合中插入100万个文档。ArangoDB消耗了30MB内存 将“节点”集合重命名为“节点临时” 使用插入脚本在“节点”集合中插入100个文档。这是成功的 在这些操作之后,我发现了一个问题。在AdminWebUI(ArangoDB)中,当我在“集合”页面中单击“节点”查找文档时,很长一段时间都没有响应。ArangoDB消耗了900MB内存。经过很长一段时间(超过5分钟),网页被打开,显示“节点”集合中有100万个文档。我认为重命名操作可能有问题。这在版本2.

我的行动如下:

  • 使用插入脚本在“节点”集合中插入100万个文档。ArangoDB消耗了30MB内存

  • 将“节点”集合重命名为“节点临时”

  • 使用插入脚本在“节点”集合中插入100个文档。这是成功的


  • 在这些操作之后,我发现了一个问题。在AdminWebUI(ArangoDB)中,当我在“集合”页面中单击“节点”查找文档时,很长一段时间都没有响应。ArangoDB消耗了900MB内存。经过很长一段时间(超过5分钟),网页被打开,显示“节点”集合中有100万个文档。我认为重命名操作可能有问题。

    这在版本2.2.5中已经修复。谢谢你指出这一点

    我只是试图复制这个,没有遇到任何问题。重命名工作正常,插入集合“Node”按预期失败,并且在打开集合“Node_temp”(“Node”因重命名而已消失)时,我没有遇到长时间的加载。我使用Arangodb2.2.4和ArangoShell作为客户端。我的测试脚本是:
    db.\u drop(“Node\u temp”);db._下降(“节点”);db._创建(“节点”);对于(i=0;i<1000000;++i)db.Node.save({value:i});c、 重命名(“节点温度”);对于(i=0;i<100;++i)db.Node.save({value:i})我认为您的操作不同。我使用perl和Arangodb2.2.4,但我认为结果应该是一样的。在“c.rename(“Node_temp”);之后,执行db.\u create(“Node”);然后是“for(i=0;i<100;++i)db.Node.save({value:i});”。最后,打开集合“节点”。你会发现问题的。我想我明白了,尽管这真的很难弄清楚,因为这个问题不是完全可以重现的。似乎发生的情况是,集合名称的服务器端缓存并不总是对所有线程无效。这可能导致某些操作指向“旧”集合“Node_temp”(最初命名为“Node”)但仅在某些情况下。这也混淆了web界面,它对“Node_temp”集合发出了一个非常昂贵的select查询,该集合打算在更小的“Node”集合上运行。2.2和devel中已经提交了对此的修复,并将包含在2.2.5版中。非常感谢!这不是什么大问题。在生产中,很少有这样的操作。