【问题标题】:How to manage concurrent LMDB writes in Python?如何在 Python 中管理并发 LMDB 写入?
【发布时间】:2016-06-29 07:45:16
【问题描述】:

我知道 LMDB 不支持并发写入。

我有一个应用程序,其中并发写入尝试非常罕见,但它们可能偶尔会发生。这应该如何在 Python 应用程序中进行管理?

具体来说:

  • 并发写入尝试是否会在 Python LMDB 绑定中引发异常,以便可以在异常处理程序中安排重试?尝试并发写入是否安全?

  • 或者,是否有任何其他或更好的方法来处理并发写入尝试?

【问题讨论】:

    标签: python python-2.7 concurrency lmdb


    【解决方案1】:

    根据 lmdb 文档,lmdb 自行处理并发写入。当一次打开多个 read_write 事务时。除了活动的写事务 Lmdb 使所有其他写事务等待,直到当前活动的写事务提交。因此它处理并发写入。

    【讨论】:

    • 所以本质上,即使我们的应用程序可以通过多个并发写入调用访问 lmdb 环境,lmdb 内部也会处理它。这种处理只会抓取所有这些并发请求,并将它们按顺序排列。所以我们正在浪费计算并发一些甚至不会同时运行的东西。以及在它上面完成的所有工作,撤消。是吗??
    猜你喜欢
    • 1970-01-01
    • 2020-11-22
    • 2016-11-21
    • 1970-01-01
    • 2015-10-17
    • 2021-10-17
    • 1970-01-01
    • 2017-06-17
    • 2019-05-28
    相关资源
    最近更新 更多