我正在考虑使用arangoDB进行图搜索 .
我有两个集合,一个是人,另一个是电影,我在人和电影之间制作了一个图表 .
当我插入如下的查询时
FOR p IN people
FOR m In movie
FILTER p.movieName == m.title
INSERT {_from:p._id, _to:m._id} IN peopleAndMovieRelation
当我查询上面的查询时,我无法访问peopleAndMovieRelation edge Collection . 查询完成后,我可以访问它 .
插入数据时ArangoDB是否使用集合锁?
2 回答
如果将ArangoDB与MMFiles存储引擎一起使用,则写入块读取和锁定将在集合级别上进行 . 因此,在执行查询并将边写入
peopleAndMovieRelation
时,无法访问边集合 .但是,使用RocksDB存储引擎,文档级锁定允许并发写入 . 写入不会阻止读取 . 读取不会阻止写入 .
https://docs.arangodb.com/3.2/Manual/Architecture/StorageEngines.html
这是存储引擎的附加说明 . Comparing RocksDB and MMFiles Storage Engine
简而言之)
MMFiles Storage Engine
RocksDB Storage Engine