数据库作为基础软件中的重要一环有着很深的技术含量,在这样的大背景下国产数据库厂商开始发力,这其中分布式数据库如雨后春笋般出现,良性的竞争环境使它们都得到了长足的发展,其中不乏优秀的产品,本文主要挑选目前几个相对成熟数据库进行架构特点介绍 。
作者:张小海来源:51CTO
【51CTO.com原创稿件】行业背景
随着全球经济下行压力增大,中美贸易摩擦愈演愈烈,美国一系列的经济制裁和技术封锁使得我们有种被扼住咽喉的感觉,数据库作为基础软件中的重要一环有着很深的技术含量,在这样的大背景下国产数据库厂商开始发力,这其中分布式数据库如雨后春笋般出现,良性的竞争环境使它们都得到了长足的发展,其中不乏优秀的产品,本文主要挑选目前几个相对成熟数据库进行架构特点介绍 。
分布式数据库总体架构
分布式数据库总体设计有两个思路和方向,一个是基于共享存储的架构(share everything),另一个是基于数据分片的架构(share nothing) 。
共享存储的架构特点是底层存储共用一份数据池子,上层数据库server层可以弹性扩展,典型的案例像DB2 pureScale,Oracle RAC,阿里云PolarDB等,这种架构的好处是天然适合做云数据库,比如阿里云,上层的SQL引擎可以是MySQL也可以是PG,而且可以无限扩展,底层的存储其实是一起的,用户申请只是申请几个上层的MySQL或者PG server同时在底层存储开辟一块空间给用户,这样的话可以做到资源的弹性伸缩 。这种架构的数据库严格意义上不能称之为分布式数据库 。
数据分片架构的特点是底层数据通过一定的规则比如hash或者range让数据打散分别分布到不同的数据节点上,计算时底层多个节点共同参与计算,可以算是一种mpp并行计算的架构,同时数据节点可以扩展,上层由协调节点进行SQL解析和转发,这是目前典型的分布式数据库架构,也是本文讨论的重点 。
目前分布式数据库的总体架构设计基本都和下图相差不大,每种产品在不同组件的实现上存在差异,但大体架构上类似 。
文章插图
从图中可以看到分布式数据库三大组件:协调节点、数据节点、全局事务管理器 。协调节点负责SQL解析转发,充当的是类似proxy的角色,数据节点负责计算和数据存储,全局事务管理器负责全局事务读一致性的保证 。
下面分别介绍一下目前主流的分布式数据库的架构以及设计差异 。
1.TiDB
TiDB是目前在互联网界风靡的一款分布式数据库,由PingCAP公司研发,由三大组件构成,底层TiKV Server是Github开源组件,是一个分布式的kv存储引擎,做数据存储,对应数据节点;上层TiDB Server由PingCAP公司研发,用作SQL解析和转发,对应协调节点;PD Server复制全局时间戳分配,对应全局事务管理器 。下面列举了它的架构特点:
①轻量化,深受互联网公司喜爱,适合与容器进行集成,当前PingCAP公司也在做TiDB operator,将TiDB容器化 。
②部署简便,基于Ansible Playbook实现自动化部署 。
③实现了基于Region级别的raft复制,将数据表拆分成一个个的Region,Region一主两备基于raft协议做复制,同时Region还会根据负载情况进行合并和分裂,由PD Server进行负载均衡调度 。
④使用隐藏列作为分布列,分布列不占用真实列,这样在进行数据修改时数据不需要进行重分布,大致原理是使用表名和主键前面加上前缀信息作为隐藏列,再使用该列进行hash分布 。
⑤TiDB Server总体兼容MySQL语法,这个兼容并不是将MySQL Server直接拿过来使用,因为TiKV底层是kv的存储模型,所以TiDB在执行sql的时候需要做sql到kv的映射 。
⑥TiKV可以看成一个大的数据池子,在物理机层面不存在哪个机器是主,哪个是备,所有机器都是主节点,热点数据会自动进行动态负载均衡,数据是动态移动的 。
⑦总体借鉴了google spanner f1和bigtable的论文,PD Server实现了逻辑上的时间戳,谷歌论文也提出了原子钟的概念,从物理上保证事务号全局有序 。
2.OceanBase
OceanBase是蚂蚁金服自研的分布式数据库,号称代码从第一行完全自研 。最近ob也屡屡刷新新闻头条,刷榜TPCC官网测试结果,刷新天猫交易额和tps记录,不过金融行业比如银行的应用案例并不多,也许是银行和支付宝可能天然有鸿沟吧 。ob架构比较特殊,下面介绍一下它的架构特点:
①最底层是ob server,每个ob server集成了总控服务、sql引擎、存储引擎和数据分区 。
推荐阅读
- AMD|央视:显卡价格全面暴跌、华强北商家卖一张显卡亏3000多元
- 分布式存储与集中式存储比较
- 三江,茶园良种化助推茶叶产业全面升级
- 分布式系统架构落地与瓶颈突破,你值得拥有
- 百度搜索新匹配模式“新”在哪里?本篇带你全面解读
- 超全面的Linux应急响应技巧
- 一文全面了解IPv6
- 分布式数据层 解决问题 分库分表 读写分离
- 马连道,未来五年全面升级 打造多功能特色商业区
- 东港区多项举措全面推进茶叶精品园建设