【问题标题】:Insert/Update operation locks the read operation in arangodb插入/更新操作锁定 arangodb 中的读取操作
【发布时间】:2016-07-29 22:10:00
【问题描述】:

我们正在使用 arangodb 2.6.2。

假设有 2 个集合 A 和 B。

FOR a in A INSERT {'x':1} in B

上面的aql运行时,我下面的查询块:

FOR b in B return b

在单独的线程中修改时如何避免读取锁定。

【问题讨论】:

    标签: arangodb


    【解决方案1】:

    不幸的是,目前无法在没有锁定的情况下进行编写。

    当我们 3 年前开始构建 Arango 时,我们在设计之初就做出了使用收藏锁的决定。

    这个决定让一些事情变得更容易了——但它尤其对你的例子中长时间运行的查询造成了伤害。

    但计划在我们达到一些里程碑时改变这一点。 3.0 是其中最重要的版本,我们现在将针对锁定内容。

    我们有望在今年晚些时候完成这个开发。

    【讨论】:

    • 从概念上讲,锁有两种类型:读锁和写锁。如果一个集合被锁定写,它不能被另一个查询锁定读。内部有一个计数器,每读一次就加1,读完减1。只有当这个计数器为 0 时才能获得写锁,所以没有人再读了。尽管如此,并发阅读是可能的。
    猜你喜欢
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多