gpt4 book ai didi

amazon-web-services - DynamoDB 是否有锁定一行以供读取的机制?

转载 作者:行者123 更新时间:2023-12-02 19:31:51 25 4
gpt4 key购买 nike

Amazon DynamoDB 是否有锁定行以供读取的机制?类似于 https://www.2ndquadrant.com/en/blog/what-is-select-skip-locked-for-in-postgresql-9-5/ 中针对 PostgresQL 所描述的内容

我找不到任何文档,因此想确认。

编辑:我想锁定一行,以便“读取”在锁定时不会获取该行。释放锁后可以再次读取。

EDIT2:目的是为分布式处理模拟一个队列。不同的客户端需要从表中拉取一个项目进行处理。请参阅上面的链接以了解如何在 PostgresQL 中实现这一点。

最佳答案

DynamoDB 不支持这个。

RDMBS 将行锁与事务相关联,并将事务与到数据库的单个客户端连接相关联(并在保持它们的连接消失时自动释放这些锁)但是 DynamoDB 是无连接的——您的代码和数据库之间的一切都发生了一系列不相关的 HTTPS 请求。 (当然,DynamoDB 也不是 RDBMS)。

DynamoDB 因此没有像 SELECT ... FOR UPDATE 这样的概念(通过隐式读取阻塞或显式行跳过锁定找到的行并防止其他事务看到它们)并且没有随之而来的能力。

最接近的东西——诚然不是特别接近——是使用一致的读取和条件写入(这允许仅当属性已经匹配预期状态时才更新属性)来检查、设置和清除用户定义的标记每条记录状态的锁定属性,并可能留下记录如何进入该状态的痕迹(填充,例如,用类似“记录在时间戳w被主机z上的pid y的线程x锁定,”有助于弄清楚记录卡在锁定状态时会发生什么。

关于amazon-web-services - DynamoDB 是否有锁定一行以供读取的机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61669474/

25 4 0
文章推荐: swift - 初始化核心数据 SwiftUI
文章推荐: css - Element UI - VueJS - 在 IOS 上选择输入双击错误
文章推荐: reactjs - 如何在React中正确更新