【问题标题】:Simultaneous retrieving and updating of data同时检索和更新数据
【发布时间】:2018-08-07 20:37:23
【问题描述】:

比如说,有一个文档集合,每 12 小时更新一次。更新过程需要30m-1h。如果我想在更新期间从这个集合中获取一些信息,这将需要很长时间,因为更新查询正在执行。

有什么方法可以处理吗? 到目前为止,我唯一的想法是维护两个集合,更新它们并从另一个集合中获取数据,但这听起来不是一个好主意。

【问题讨论】:

  • 你运行什么样的查询会持续一个小时?可以分割成更小的部分吗?另外,您是否尝试在此更新查询期间使用 RocksDB 引擎读取数据?它支持文档级锁,因此读取不应被写入阻塞,除非它们触及相同的文档。

标签: database arangodb


【解决方案1】:

AQL 命令每次调用只能执行一个UPDATE 命令。

如果您有数千个 AQL 命令发出数千个 UPDATE 命令,您将能够在这些更新之间读取数据,但您的数据可能会发生变化。

如果您使用 Foxx 应用程序执行更新,请确保您在 arangod.conf 中设置了 v8-contexts = 0 选项,以便在 Foxx 忙于更新数据。

如果您的用例存在其他不适用此解决方案的复杂问题,请随时更新您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-23
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    相关资源
    最近更新 更多