【数据库架构】NewSQL和PGXC


数据库的两种架构风格:NewSQL(代表Google Spanner)、Prxoy(PostgreSQL-XC)

数据库的基本架构

数据库基本架构图

  1. 客户端通讯管理器。JDBC或ODBC协议访问数据时的部分。
  2. 进程管理器。数据库为客户端分配的进程,客户端后续的所有操作通过对应的进程执行(Oracle和PostgreSQL使用进程方式,MySQL使用线程)。
  3. 查询处理器。包括四个部分,功能上顺序执行:
    (1)解析器:将接收到的SQL解析为内部的语法树;
    (2)查询重写:逻辑优化,依据关系代数的等价变换进行简化和标准化;
    (3)查询算法优化:物理优化,根据表的连接方式、连接顺序和排序等技术,即基于规则优化(RBO)和基于代价优化(CBO);
    (4)计划执行器:最终执行查询计划,访问存储系统。
  4. 事务存储管理器。
    (1)访问方式:数据在磁盘的具体存储形式;
    (2)锁管理:并发控制;
    (3)日志管理:确保数据的持久性;
    (4)缓存管理:I/O操作相关的缓存控制。
  5. 共享组件和工具。辅助操作(例如编目数据管理器、复制机制)。

分库分表方案

分库分表方案

分布式事务和跨节点查询

分布式事务和跨节点查询

PGXC

PGXC

NewSQL:原生分布式数据库

NewSQL 的基础是NoSQL,更具体的说,是类似BigTable的分布式键值(K/V)系统。分布式键值系统选择做了一个减法,完全放弃了数据库事务处理能力,然后将重点放在对存储和写入能力的扩展上,这个能力扩展的基础就是分片。引入分片的另一个好处是,系统能够以更小的粒度调度数据,实现各节点上的存储平衡和访问负载平衡。
高可靠机制的变化在于,放弃了粒度更大的主从复制,转而以分片为单位采用Paxos或Raft等共识算法,这样,NewSQL就实现了更小粒度的高可靠单元,获得了更高的系统整体可靠性。存储引擎层面,则是使用LSM-Tree模型替换B+ Tree模型,大幅提升了写入性能。
NewSQL
缺陷:NewSQL的计算节点需要借助网络才能与存储节点通讯。

总结

  1. 架构上,数据库分为:客户端通讯管理器、进程管理器、查询处理器、事务存储管理器和共享组件与工具。分布式数据库在此基础上增加四个主要功能:分片信息管理、分布式事务管理、跨节点查询和全局时钟。
  2. PGXC架构是从分库分表方案演进而来。设置了协调节点,在代理功能的基础上增加了分布式事务管理、跨节点查询功能;原有的单体数据继续作为数据节点;新增全局时钟和分片信息管理两个功能,这两个功能又有两种实现情况,一是拆分为两个独立角色节点,二十合并为一个角色节点。
  3. NewSQL架构是原生分布式数据库。从分布式键值系统演进而来,主要的工作负载由计算节点和存储节点承担,另外由管理节点承担全局时钟和分片信息管理功能。不过,这三类节点是逻辑功能划分,在设计实现层面是可分可合的。比如,TiDB是分为独立节点,CockroachDB是对等的P2P架构。
  4. NewSQL在架构上更加领先,而PGXC最大程度复用了单体数据库的工程实现,更加稳健。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随处可见的打字员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值