dynamoDB的项目可以立即查询吗?

msP*_*ram 1 amazon-web-services amazon-dynamodb

我使用 DynamoDBMapper.save 向 dynamoDB 表添加了一些项目。然后我立即查询该项目。我一定会得到保存的物品吗?或者我应该在查询项目之前放置 thread.sleep() ?在SQL数据库中,我们使用事务,我们可以保证一旦记录插入到sql表中我们就能得到该项目。但对于 dynamoDB,我不确定。检查了AWS dynamodb文档但没有找到相关信息。

Blo*_*je5 6

默认情况下,DynamoDB 读取最终是一致的。ConsistentRead但是,DynamoDB 确实允许您使用读取操作的参数指定强一致性读取。然而,它确实是有代价的,强一致性读取占用两倍的读取容量单位。

请参阅:DynamoDB 中的读取一致性

  • DynamoDB 不是最终一致的数据库。这只是阅读时的默认设置。您所说的关于副本的内容也不完全正确。DynamoDB 仅在持久写入至少两个可用区时才会发出确认。几毫秒之内,它将到达第三个可用区。对于只有两个公共可用区的区域,实际上还有第三个非公共可用区。因此,如果您没有指定强一致性读取并且您读取的项目少于复制,那么您可能会得到脏读。 (2认同)