background image
排除的第一种形式是你不需要 ACID 事务。这在应用的早期阶段常见,但是
随着用户规模增长,事务处理的逻辑能力将会使你的程序更易于运作。所以完全
放弃事务是不可取的。
排除的第二种形式是不需要架构。这意味着程序可以有效处理数据间的逻
辑,而无需借助传统关系型数据库的关系处理能力。
阶段二:愤怒
NoSQL 数据库的设计目的是在分布式机器集群中取得连续性和可用性的平
衡。因此,你不得不使用复杂的分布式算法来进行协调,同步和错误处理。
某天当你发现数据丢失而愤怒不已时,将发现事务和架构是多么重要。
阶段三:商讨
当愤怒消退后,或许你会尝试把事务和架构补充回 NoSQL 中。首先是为应
用程序编写事务管理器。但是交易系统通常很庞杂,模块之间相互依赖,涉及到
并发控制,错误恢复和权限访问。你可能会成功,但最终的结果将很难进行扩展
或维护。