分布式数据库复制技术深度解析
1. 分布式数据库基础
单数据库实例借助共享内存、线程和进程间同步以及共享一致的文件系统缓冲区缓存等特定设施,来提升速度并降低复杂度。这些设施在单主机上快速可靠,但在联网集群尤其是广域网环境下,难以进行通用化和抽象化处理。
分布式数据库并不尝试构建分布式的上述设施(如单系统映像集群解决方案那样),而是采用特定协议来确保多个实例间的 ACID(原子性、一致性、隔离性和持久性)特性。这些协议本身并不复杂,但由于通过网络通信,会面临性能和可用性的波动,这在单主机环境中是不常见的。人们习惯并依赖传统关系型数据库管理系统(RDBMS)的性能,因此很难接受在性能或功能方面做出妥协。
2. 多主复制(Multimaster Replication)
多主复制被视为分布式数据库的“圣杯”。在这种模式下,所有数据存储在多个节点上,且所有节点都能完全处理事务。然而,大多数系统并不需要多主复制所提供的功能。但传统上,非技术人员甚至很多技术人员在提及数据库复制时,都会默认这种模式。随着复制数据库在大小架构中变得普遍,这种认知会发生改变。目前,提到复制,通常指的就是多主复制。
要理解多主复制为何困难,需回顾 ACID 的要求:
- 原子性(Atomicity) :看似简单,即要么全部执行,要么全部不执行。但在分布式系统中,事务结束时的提交操作变得复杂。单实例中,提交失败可返回错误;而在分布式系统中,必须在多个节点上同时成功提交或全部失败,否则会引入不一致性。
- 一致性(Consistency) :要求事务完成时,所有数据实例的视图都得到
超级会员免费看
订阅专栏 解锁全文
966

被折叠的 条评论
为什么被折叠?



