gpt4 book ai didi

sql - 将事务存储到 NoSQL 数据库中

转载 作者:搜寻专家 更新时间:2023-10-30 23:43:02 25 4
gpt4 key购买 nike

我们正在计划下一个项目并考虑将事务存储到 NoSQL 数据库中。它基本上是一个应用程序,用户可以在其中收集一些积分(如返回),然后用积分支付。

主要思想是将交易本身存储到 noSQL 数据库中,而 mysql 服务器仅存储当前余额。

所以我的问题是这是处理该问题的好方法还是我应该只使用 mysql 数据库?

我考虑使用 noSQL 的问题是,我们假设在短时间内有很多查询。

最佳答案

使用多语言持久性会增加操作负载,因此如果可以使用一个数据存储来解决任务,那么最好不要引入额外的实体。

在您的情况下,您似乎希望拥有可审计的交易历史记录、一致的当前余额并且您不想放弃交易保证。的确,几乎所有现代 NoSQL 解决方案都不支持开箱即用的 ACID 事务,但它们中的大多数都支持允许您在应用程序级别实现事务的原语。

如果数据存储支持每个键的线性化和比较并设置(文档级原子性),那么它就足以实现客户端事务,而且您还有几个选项可供选择:

  1. 如果您需要 Serializable 隔离级别,那么您可以遵循 Google 用于 Percolator 的相同算法。系统或蟑螂实验室 CockroachDB .我已经写了关于它的博客并创建了一个 step-by-step visualization ,我希望它能帮助你理解算法背后的主要思想。

  2. 如果您预计会有高争用,但您可以使用 Read Committed 隔离级别,那么请查看 RAMP transactions作者:Peter Bailis。

  3. 第三种方法是使用补偿事务,也称为 saga 模式。 80 年代后期在 Sagas 中对其进行了描述纸上谈兵,但随着分布式系统的兴起变得更加实际。请参阅Applying the Saga Pattern谈论灵感。

关于sql - 将事务存储到 NoSQL 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32739520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com