我有一个dynamodb表名为events
表模式
partition_key : <user_id>
sort_key : <month>
attributes: [<list of user events>]
我打开了3个终端,同时对同一个partition_key
和sort_key
运行update_item
命令
问题:
DynamoDb在这种情况下是如何工作的?
Dynamodb会遵循FIFO
这样的方法吗?
或
Dynamodb是否会对同一个partition key
和sort key
执行update_item
操作parlalley
?
有人能告诉我Dyanmodb是如何工作的吗?
DynamoDb的工作原理在优秀的AWS演示文稿中有解释:
- AWS re:Invent 2018: Amazon DynamoDB Under the Hood:我们如何构建超大规模数据库
与你的问题相关的部分是在6.46分钟,他们谈论存储领导节点. 因此,当您放置或更新相同的项时,您的请求将转到一个特定的存储领导节点,该节点负责该项所在的分区。这意味着,所有并发更新都将在单个节点中结束。节点可能(未显式声明)将能够以类似于第51.58节讨论的全局表的方式对请求进行排队,即"最后一个写入者";基于时间戳。
还有其他讨论类似主题的问题,例如: