ArkDB – 企业级云原生数据库

ArkDB是极数云舟自主研发的一款企业级云原生数据库。其核心架构,如下图所示:

ArkDB - 企业级云原生数据库

ArkDB主要包括两大核心组件ArkDB Server和 ArkDB Engine。

 

     ArkDB Server

     ArkDB Server 为数据库接入层,负责响应客户端链接和权限验证,接收并处理SQL请求,包含有连接管理、权限验证、分析器、优化器和执行器等。ArkDB Server为无状态节点在,自身不存储数据,可以快速无限水平扩展,同时通过操作ArkDB Server节点,实现整个数据库机器的高可用切换。在ArkDB Server层处理SQL请求的时候,需要适当内存和CPU资源,对存储则无要求,可以做针对性的硬件优化。

     ArkDB Engine 

     ArkDB Engine负责数据存储和读取,底层采用分布式存储。每个数据存储单位默认存储3副本,副本间的数据保持强一致性和容灾。ArkDB Engine负责存储数据并实现数据共享。上层ArkDB Server节点访问ArkDB Engine同一份数据。ArkDB Engine支持根据业务访问策略对数据存储分级,用户可以根据预算、性能指标、容量请求、访问场景按需使用不同的存储硬件,同时针对闪存卡进行软硬件结合优化。


ArkDB核心特性

  • 简单易用

          MySQL是全球最流行的关系型开源数据库,实例安装部署和相关技术人员的数量都远远领先其他数据库。ArkDB兼容MySQL,并且在设计之处就确定基于MySQL 8 开发,配置、接口、SQL语法全面兼容MySQL 8.0。 MySQL户可以无缝迁移到ArkDB。ArkDB可以作为MySQL的分布式存储引擎存在,对于开发人员和DBA而言不需要学习新的知识和技术栈,可以快速运维ArkDB。

  • 透明读写分离

ArkDB采用一主多从架构,主节点负责处理读写请求,从节点负责处理只读请求,ArkDB接入层通过分布式中间件Arkproxy提供透明读写分离、高可用、自适应负载均衡的能力。业务通过访问接入层地址,SQL请求会被自动分发到ArkDB集群各个节点,最大化提升集群处理能力。

  • 计算存储分离

ArkDB将数据计算层和数据存储层完全分离, 可按不同业务场景进行定制化分层优化。 其中数据存储层是将数据通过Hash算法均匀分散在不同数据节点,集群存储数据量不受限制,可以弹性扩缩容。数据节点默认三副本,保证数据的高可用。同时 ArkDB将数据访问分散到不同的数据节点上实现数据库的并发读写,从传统数据库的磁盘IO压力转化为网络IO压力,按需配置万兆网卡可提升整体性能。

  • 分布式存储

ArkDB数据节点底层使用分布式存储系统,具有自动管理、自动修复、无单点故障等特性。 ArkDB数据节点支持的高可用有两种方式,一种是默认的数据多副本且数据副本能够跨机房存储、感知机架位,大大提高了容灾率。当主副本出现损坏时会选举从副本为新的副本继续提供服务;另一种是纠删码,该方式能够容忍一定数量的磁盘故障,如果某些数据块丢失可以通过剩余的可用数据进行恢复。相比数据多副本的方式来保证系统可用性,纠删码可以节省大量存储空间,从数据多副本到单副本即可保证相同可用性,企业的总体成本在海量数据规模下得到极大的降低。

  • 弹性伸缩

面对具有季节性(例如双11、双12促销)和突发性爆炸式增长的业务场景,系统的弹性伸缩能力往往成为决定系统可靠性的核心标准。ArkDB借助计算存储分离、秒级快照等优势,可以动态增删计算节点和存储节点以实现弹性扩缩容,ArkDB扩缩容内部自动完成,包括数据rebalance和热点削峰,彻底告别分库分表人工resharding的烦恼。当业务高峰旺季时可以快速扩容,当业务低峰淡季时可以按需缩容,ArkDB弹性伸缩是平台即服务的一个重要体现。

  • 物理复制  

         ArkDB主从实例直接读取物理Redo日志,将日志应用到数据页中。主实例获取各个从实例的应用LSN,以控制主库脏页的刷盘与检查点推进。从实例读取主实例最新的LSN,来决定是否需要应用新日志。相比传统基于逻辑日志的主从复制,ArkDB从节点没有SQL解析执行,极大减轻了从节点引擎的负担,也不存在主从之间的延迟。

同时ArkDB 作为MySQL一个引擎存在, Binlog方式仍然保留,可以完全兼容传统的复制方式,灵活组成MySQL高可用集群。例如线上已有MySQL为主库,ArkDB为从库。

  • 数据分层治理

对于不同业务需求场景的数据访问,ArkDB根据数据访问策略不同其数据存储策略也不同。ArkDB支持根据访问策略对数据存储分级,用户可以根据预算、性能指标、容量请求、访问场景按需使用不同的存储硬件,能够极大的降低企业成本(TCO)。

根据常见的数据访问策略,ArkDB将数据存储分为如下三类存储需求:

  1. 高性能,针对追求超高IOPS性能的业务场景,可以将 SATA SSD、PCIe SSD及NVMe等高性能闪存设备组建高性能池,物理对应的库表数据存储到高性能池。
  2. 高吞吐, 使用高性能SSD作为日志盘,同时配合高带宽的业务场景。
  3. 大容量, 针对温数据、冷数据甚至历史数据的业务场景,可以将大容量的机械盘构建成大容量池,通常历史统计分析库可以将数据存储到大容量池,同时使用纠删码来最大化存储容量和降低企业成本。

ArkDB支持不同存储需求间数据的在线变更,后台会自动rebalance。

  • 无锁备份和快速恢复

          ArkDB利用分布式存储的快照技术可以实现无锁备份,整个备份过程在分钟级别即可完成数据库的备份。通过快照可快速恢复到指定时间点的数据,同时ArkDB支持延迟删除。对于集群存储节点而言,ArkDB底层共享同一份数据文件,数据支持多副本和纠删码。当ArkDB Server计算节点出现问题,分布式监控套件Arksentinel会从集群计算节点中选举出最新节点为写节点,集群读写节点切换对业务几乎无感知。

  • 完整性事务支持

ArkDB  100%支持数据库事务ACID,同时支持MVCC多版本并发控制。

 


ArkDB技术生态体系

ArkDB有完善的技术生态体系,围绕着ArkDB生态的核心组件有数据库中间件Arkproxy、分布式监控哨兵Arksentinel、数据库实时同步系统Arkgate和数据库管理平台Arkcontrol,ArkDB生态架构图如下:

ArkDB - 企业级云原生数据库

010-62984800 发送短信