第三点Scalability is about concurrency, 伸缩性是有关并发的,如果你需要一个锁或事务(e.g. local objects, database objects, etc), 请尽可能以更少时间处理,If you do need to hold locks (e.g. local objects, database objects, etc), try to hold them for as little time as possible.
分离数据库是一个坏主意,分离数据比分离应用更加复杂,Splitting data is more complex than splitting applications. 但是分离应用必须在系统开始就设计好,比如引入RESTful(banQ私语)。
切分数据Partitioning data带来的是事务机制,这就需要分布式两段事务2PC,分布式事务的问题是他们创造了在多个数据库之间的同步耦合,同步耦合是延迟容忍设计的敌人。The problem with distributed transactions is they create synchronous couplings across the databases. Synchronous couplings are the antithesis of latency tolerant designs.
替代ACID事务机制,有几个办法BASE: Basically Available(基本可用) Soft state Eventually consistent 取每个名词第一个大写字母就是BASE架构。 CAP 原理可以决定哪些数据需要ACID事务,哪些可以划分,