【问题标题】:ArangoDB collection lockArangoDB 集合锁
【发布时间】:2018-02-14 14:56:53
【问题描述】:

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

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

当我插入如下查询时

FOR p IN people
  FOR m In movie
    FILTER p.movieName == m.title
    INSERT {_from:p._id, _to:m._id} IN peopleAndMovieRelation

当我查询上述查询时,我无法访问 peopleAndMovieRelation 边缘集合。查询完成后,我可以访问它。

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

【问题讨论】:

    标签: arangodb


    【解决方案1】:

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

    但是,使用 RocksDB 存储引擎,文档级锁允许并发写入。写入不会阻塞读取。读取不会阻塞写入。

    https://docs.arangodb.com/3.2/Manual/Architecture/StorageEngines.html

    【讨论】:

    • 谢谢我理解
    【解决方案2】:

    这里是对存储引擎的补充说明。 Comparing RocksDB and MMFiles Storage Engine

    缩短)

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

    RocksDB 存储引擎
    - 支持 3.2+
    - 在主内存中缓存数据,但如果需要从磁盘加载
    - 所有索引都写入磁盘
    - 最快启动(启动时无负载索引),逐渐提高性能

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-01
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-23
      相关资源
      最近更新 更多