我们可以看到,PolarDB 产品是一个分布式集群架构的设计,计算节点和存储节点之间采用高速网络互联,并通过 RDMA 协议进行数据传输,使得I/O 性能不再成为瓶颈。DB 的数据文件、redolog等通过 User-Space 用户态文件系统,经过块设备数据管理路由,依靠高速网络和RDMA 协议传输到远端的 Chunk Server,同时 DB Server 之间仅需同步 Redo log 相关的元数据信息。Chunk Server的数据采用多副本确保数据的可靠性,并通过 Parallel-Raft 协议保证数据的一致性。
Shared Disk架构
分布式系统的精髓就在于分分合合,有时候为了并发性能进行数据切分,而有时候为了数据状态的一致性而不得不合,或者由于分布式锁而不得不同步等待。
PolarDB 采用 Shared Disk 架构,逻辑上 DB 数据都放在所有 DB server 都能够共享访问的数据 chunk 存储服务器上。而在存储服务内部,实际上数据被切块成 chunk 来达到通过多个服务器并发访问 I/O 的目的。
有时候转换一种思维,就有可能引发一场革命。就像PolarDB 采用的 Shared Disk 架构,将逻辑上 DB 数据都放在所有 DB server 都能够共享访问的数据 chunk 存储服务器上,这是一种尝试,但也是另一种思维。
越是底层的规律,越需要耐心去钻研。事务必须服从的四个原则:A(原子性)C(一致性)I(隔离性)D(持久性)。在《数据库系统原理》中就接触过,在对PolarDB研究查找资料的过程中,这四个原则会出现出现再出现。大道至简大概就是这样。
所处位置不同,导致需要思考的内容也会不同。所以,如果可能,要尽量把自己的思维放在一个较高的位置上。
感谢您的阅读~