关系数据库的缺陷
从上世纪70年代开始发展的技术,一直因为其高度一致性而发展强劲。而后也在如下更多方面取得长足进展:
- BLOB存储
- XML/文档存储
- 全文检索
- 数据库中执行代码
但是互联网的发展,需要存储不只是一致性,在性能,扩展性,可用性方面有时有更高的要求。关系型及时雨ACID建立。因此要规模化就只能垂直发展,即用更大的机器,而不是更多的机器。但是,单机模式总有不够用的时候,于是便有了主副、集群等各种模式。互联网使得数据的影响无论在事件还是在空间上都有极大扩展,用户不只是组织内部的人,任何能联网的都是用户。再也没有工作和非工作时段的区别。
横向的发展,有了最终一致性,而不是严格一致性。于是从ACID过度到CAP,其实最终一致性几乎已经不算是一致性。CAP这个2000年提出的概念,比ACID要延后30年。
现代数据存储的常见模式
- 数据多节点
- 单个分区可能成为瓶颈
- 为各个分区建立索引
- 数据同样需要在一个分区内的多台主机上复制
- 复制系数一定程度上保证高可用性