我正在考虑模拟一个银行帐户,比如dynamodb中的事务,它是一个noSQL类型的数据库,这个用例是否适合于dynamodb?还是应该坚持使用基于SQL的数据库?
有谁知道银行通常是如何处理这个问题的吗?他们是使用类似于DynamoDB的东西,还是将我们的事务保存在一个单独的表中?
发布于 2015-08-05 20:41:03
基于SQL的系统允许跨多个表的事务,而DynamoDB只允许单个项上的事务。但是,有一个DynamoDB事务库 for Java,它允许跨多个项目的原子事务,而牺牲了速度,并且大大增加了每个请求的写入量。
DynamoDB确实支持类似于银行账户的原子计数器 (文档页面上的示例就是这样的)。
DynamoDB还提供了条件写入,它可以帮助避免在尝试并发更新项时出现某些类型的争用条件。
你能在DynamoDB上建立一个合适的系统吗?也许,但这一切都取决于您的具体需求以及您如何实现这样的系统。尽管如此,DynamoDB确实提供了我前面概述的一些功能,以解决在构建这样一个系统时出现的问题类型。
发布于 2018-11-28 14:24:29
2018年,DynamoDB现在支持在单个区域内读取和写入多个表中的项。它与SQL事务不完全相同,因为如果数据被另一个并行操作修改,事务可能会失败并返回错误,但它是ACID。
https://aws.amazon.com/blogs/aws/new-amazon-dynamodb-transactions/
https://stackoverflow.com/questions/31832594
复制相似问题