在AWS DynamoDB上更新相同数据时访问数据

时间:2017-04-19 03:26:42

标签: amazon-web-services amazon-dynamodb

我打算建立一个迷你内容管理系统。检查在DynamoDB上存储内容的可能性,服务是否能够在更新相同内容时访问内容? (更新CMS和发布内容的场景) 或者在这种用例中,CloudSearch将是更好的解决方案,而不是DynamoDB?

提前致谢!

1 个答案:

答案 0 :(得分:2)

请考虑您的使用案例,并决定是否需要最终一致阅读或强烈一致的阅读

Read Consistency

最终一致阅读

从DynamoDB表读取数据时,响应可能不会反映最近完成的写入操作的结果。响应可能包括一些陈旧的数据。如果您在短时间后重复读取请求,则响应应返回最新数据。

非常一致的阅读

当您请求强一致性读取时,DynamoDB会返回包含最新数据的响应,反映所有先前写入操作成功的更新。在网络延迟或中断的情况下,可能无法使用强一致性读取。

注意: -

除非另行指定,否则DynamoDB最终会使用一致的读取。读取操作(如GetItem,Query和Scan)提供ConsistentRead参数:如果将此参数设置为true,则DynamoDB将在操作期间使用强一致性读取。

用于事务管理的AWS DynamoDB工具(Java): -

  

开箱即用,DynamoDB提供了四种ACID属性中的两种:   一致性和耐用性。在单个项目中,您也可以获得   原子性和隔离性,但是当您的应用程序需要涉及时   您失去这些属性的多个项目。有时这很好   足够,但许多应用程序,尤其是分布式应用程   我也会欣赏其中一些原子性和隔离性。   幸运的是,DynamoDB提供了工具(特别乐观   并发控制)使应用程序可以实现这些   属性和完整的ACID交易。

如果您使用Java或AWS SDK Java for DynamoDB,则可以使用此工具。我不确定类似工具是否适用于其他语言。

此库提供的其中一项功能是Isolated Reads

隔离读取:对多个项目的读取操作不会受到其他事务的干扰。

Dynamodb transaction library for Java

Transaction design