Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS Dynamo DB写入一致性是什么?_Amazon Web Services_Amazon Dynamodb - Fatal编程技术网

Amazon web services AWS Dynamo DB写入一致性是什么?

Amazon web services AWS Dynamo DB写入一致性是什么?,amazon-web-services,amazon-dynamodb,Amazon Web Services,Amazon Dynamodb,我知道AWS Dynamo DB read最终具有很强的一致性。我读了一篇文档,它说在BatchWriteItem中指定的单个PutItem和DeleteItem操作是原子的;但是,BatchWriteItem作为一个整体并非如此。 但是我仍然不明白写方法行为是如何同步的 如果这是一个棘手的问题,请告诉我。BatchWriteItem是一个批处理API,这意味着它允许您指定要提交给Dynamo的许多不同操作,以便在同一请求中执行。因此,当您提交BatchItemRequest时,您要求Dynam

我知道AWS Dynamo DB read最终具有很强的一致性。我读了一篇文档,它说在BatchWriteItem中指定的单个PutItem和DeleteItem操作是原子的;但是,BatchWriteItem作为一个整体并非如此。 但是我仍然不明白写方法行为是如何同步的


如果这是一个棘手的问题,请告诉我。

BatchWriteItem是一个批处理API,这意味着它允许您指定要提交给Dynamo的许多不同操作,以便在同一请求中执行。因此,当您提交BatchItemRequest时,您要求DynamoDB为您执行许多PutItem或DeleteItem请求

声称单个
PutItem
DeleteItem
请求是原子的,这意味着这些请求中的每一个相对于可能要修改相同项的其他请求都是原子的(由其分区/排序键标识)-意味着项目内不可能发生数据损坏,因为两个PutItem请求同时执行,每个请求都修改了项目的某些部分,从而使其处于不一致的状态

但是,声明是整个BatchWriteItem请求不是原子的。这仅仅意味着PutItem和/或DeleteItem请求的序列不能保证被隔离,因此您可以有其他PutItem或DeleteItem请求,无论是单个请求还是批处理请求,都可以与BatchWriteItem请求同时执行,这可能会影响表的状态在组成批次的各个PutItem/DeleteItem请求之间

为了说明这一点,假设您有一个BatchItemRequest,它由以下两个调用组成:

  • PutItem(partitionKey=1000;name='Alpha';value=100)
  • DeleteItem(partitionKey=1000)
在您提交此请求的同时,还有一个请求包含以下操作:

  • DeleteItem(partitionKey=1000)

第二个删除项请求可能会在第一个请求执行之前删除该项,因此,当PutItem成功执行时,第一个请求中的DeleteItem将失败,因为该项已被另一个删除请求删除。这是整个批处理操作不是原子操作的一个示例

谢谢,但这意味着原子等同于同步?@Cenxui
atomic
通常指的是不能细分为更小部分的东西。在计算机科学的背景下,如果一个操作(至少在操作外部)不能被分解成更小的部分,并且没有可观察到的中间状态,那么它就被称为原子操作。同步是另一回事,它可以用来使操作原子化,但
原子化
同步
不同。