Amazon非关系型数据库DynamoDB提供ACID交易功能

Amazon的DynamoDB现在原生支持交易处理,推出Amazon DynamoDB Transactions功能。由于开发人员时常需要跨一个或是多个数据库表格,执行多重或是全有全无(All-or-Nothing)商业逻辑,而这可能增加实例上的复杂性,Amazon DynamoDB Transactions原生支持交易特性,让这些使用案例更容易构建在DynamoDB之上。

Amazon DynamoDB Transactions可以为开发人员在个别帐户或是区域,对单一或是多个数据库表格提供原子性、一致性、隔离性和持久性(ACID)交易。开发者可以在构建协调插入、删除或是更新到多个项目的应用程序时,使用交易特性作为单一业务逻辑操作的一部分。AWS提到,DynamoDB是目前唯一支持多分区和数据库交易的非关系型数据库。

交易功能将让DynamoDB有能力应对要求更高的工作负载,包括金融交易、管理订单、构建多人游戏引擎或是协调分布式组件和服务。DynamoDB加入了两个新操作以处理交易,分别为TransactWriteItems和TransactGetItems。TransactWriteItems为包含写入集(Write Set)的批次处理操作,具有一个或是多个PutItem、UpdateItem,和DeleteItem操作,TransactWriteItems可以选择在进行更新之前,必须要满足的先决条件,这些条件可能涉及写入集中相同或不同的项目,不符合条件则拒绝交易。

第二个新操作则是TransactGetItems,包含读取集(Read Set)的批处理操作,具有一个或多个GetItem操作。当TransactGetItems对已经起动写入交易的项目发出读取请求,则读取交易取消,要获取之前提交的值,则可以使用标准读取。

每一笔交易最多可以包含10个唯一项目或是至多4MB的数据。交易功能提供了DynamoDB多种读写选项,能满足各种不同的应用程序需求。