ArangoDB集合锁

ArangoDB集合锁,arangodb,Arangodb,我正在考虑使用arangoDB进行图形搜索 我有两个收藏,一个是人物,另一个是电影,我在人物和电影之间画了一个图表 当我像下面这样插入查询时 FOR p IN people FOR m In movie FILTER p.movieName == m.title INSERT {_from:p._id, _to:m._id} IN peopleAndMovieRelation 当我查询上述查询时,我无法访问PeopleAndMovierRelation边缘集合。查询完成后,

我正在考虑使用arangoDB进行图形搜索

我有两个收藏,一个是人物,另一个是电影,我在人物和电影之间画了一个图表

当我像下面这样插入查询时

FOR p IN people
  FOR m In movie
    FILTER p.movieName == m.title
    INSERT {_from:p._id, _to:m._id} IN peopleAndMovieRelation
当我查询上述查询时,我无法访问PeopleAndMovierRelation边缘集合。查询完成后,我可以访问它


ArangoDB在插入数据时是否使用收集锁

如果将ArangoDB与MMFiles存储引擎一起使用,则写入块读取和锁定在收集级别。因此,在执行查询并将边缘写入
peopleAndMovieRelation
时,无法访问边缘集合

然而,在RocksDB存储引擎中,文档级锁允许并发写入。写入不会阻止读取。读取不会阻止写入


以下是存储引擎的附加说明

(缩短)

MMFiles存储引擎
-基于最新版本(3.2)的ArangoDB默认存储引擎
-收集级别锁定
-所有索引在启动时加载主内存(如果索引太多,则启动时间较长,但访问速度最快)

RocksDB存储引擎
-支持的3.2+
-在主存中缓存数据,但如果需要,则从磁盘加载
-所有索引都写入磁盘

-最快的启动(启动时无负载指数),逐渐提高性能