价值优势
技术优势
存算分离
AntDB 数据库采用无共享(Share-Nothing)架构,数据分布在网络上多个互联的节点上,这样做有多种好处:
- 数据量、读取负载、写入负载超过单台机器的处理能力。
- 满足容错和高可用需求,单台机器(或多台机器、网络或整个数据中心)出现故障的情况下,仍然能继续工作。多台机器可以提供冗余,一台出现故障,另一台可以接管。
- 降低延迟,每个用户可以从地理上最近的数据中心获取服务,避免等待数据包远距离传输。
存储节点 DN 是 AntDB 集群用来真正存储业务数据的组件。通过分库分表实现数据库能力的水平扩展,提供多种分片函数,支持定制开发,支持数据节点的分组管理等能力。
Oracle 语法兼容
AntDB 与 Oracle 数据库高度兼容,使得企业现有的基于 Oracle 数据库开发的应用程序无需做任何修改或只做少量的修改便可以运行在AntDB 平台之上,由此降低了程序迁移的风险,减少了重写应用的成本,从而实现高效快捷的应用迁移。AntDB 与 Oracle 数据库的兼容性包括两个大的方面:多模态 SQL 解析引擎和语法的兼容性。 业界独创的多模态 SQL 解析引擎:
-
客户可定制扩展的多语法 SQL 解析引擎设计,兼容生态,一套数据库可以满足含 Oracle 在内的多种数据库的国产化替换要求,降低客户的学习成本。
-
SQL 解析引擎的切换动态生效,无需重启数据库。
-
支持会话模式、服务模式、语句模式三种访问模式,灵活性和易用性的极致体验。
-
高度 Oracle 语法兼容的能力:
(1)Oracle 语法兼容
(2)函数兼容
(3)系统表/视图兼容
(4)存储过程和触发器兼容
(5)数据类型兼容
(6)JDBC/ODBC 接口兼容
(7)管理包兼容
(8)rowid / rownum
(9)dual 虚表
基于高度的兼容特性,可以实现 AntDB 和 Oracle 的异构数据库容灾,以达到异构数据库并行的目的。
集群自愈
任何一个系统都存在发生各种意外故障的可能性,AntDB 提供了完整的集群自愈方案来保证秒级自动故障切换实现业务的连续性,并且确保数据的完整性和强一致性。实现真正意义上的 Auto-Failover。自愈能力已经过客户现场持续的高并发压力下进行来回切换场景的业务连续性保障验收,做到从 IOE 架构向分布式架构演进后,数据库系统依然可以获得 99.999% 的 SLA 服务保障。
异构数据库互联
AntDB 可与异构数据库进行互联,基于外部数据源封装(FDW)和数据库链接(dblink)特性,支持与 Oracle、PostgreSQL、DB2、SQL Server、MySQL、Sybase 等数据源的互联和链接查询,以及系统文件的直接访问。
一键化数据自动迁移
AntDB 提供了一键化数据迁移工具,可以自动将 Oracle/MySQL 中的对象、数据等迁移到 AntDB 中。支持在线和离线两种模式,在线迁移过程中数据自动分片。支持过程跟踪、断点续抽、数据迁移完整性 MD5 稽核等能力。
异构索引支持
对于分布式数据库的大表查询场景,查询 SQL 中的 where 条件若有分片键,这个查询会精确路由到具体的节点中,以提高查询效率。如果 SQL 的 where 条件中没有分片键,就会进行一次全节点扫描可能会造成资源的浪费,增加锁冲突的概率,并且拖慢性能等。针对这种场景,AntDB 提供了异构索引采用空间换时间的方式来解决这个问题,内核自动维护分片键和索引键之间的映射关系建立异构索引。使用异构索引将避免全节点扫描,可以解决业务使用中存在多个查询维度时不带分片键造成的查询性能下降的问题。
内核级读写分离
AntDB 从内核层面实现将读流量路由到从节点,写流量路由到主节点,对应用层完全透明,有效提升主从机器资源的使用率,增加数据库的吞吐量。相比于通过中间件实现读写分离,AntDB 在内核层通过参数配置开关读写分离功能,维护成本更低,使用更方便。
自适应流复制
AntDB 提供了 hot-standby 的能力,并且通过流复制的方式,大大的缩短了备份库与主库的事务间隔。
传统流复制分为同步和异步两种模式。同步复制是主机的事务要等到备机提交成功后才会提交并结束事务,缺点是备机故障时,主机会一直 hang 住;异步复制是指主机的事务完全不受备机的影响,缺点是主备机之间在高并发场景下数据会存在时延,无法做到实时强一致性。很多时候,数据安全、持续高可用和处理性能之间需要取的平衡。AntDB 参考 Oracle 最大保护,最大性能,最大可用之间的自适应切换设计原则,也提供了自适应流复制的内核实现,实现了同步备节点异常后业务依然可持续。
水平扩展
传统的分布式集群存储扩容方案中,需要进行数据迁移,而数据迁移时是禁止对数据进行操作。数据量大的时候,迁移时间就会比较长,这样就影响了数据库的可用性。AntDB 提供了 hot expansion 扩容方案,将数据原有的数据迁移分成数据同步和路由切换两个阶段,从而解决了这个问题。
在数据同步阶段,通过热备和流复制技术,保证新增节点增量追加源节点数据,不对表加锁,不影响数据库集群对外提供服务。
AntDB 在进行扩容时对集群可用性的影响时间,从整个数据迁移阶段缩小到路由切换阶段,由于路由切换正常在 10 秒内可以完成,从而极大的减少扩容对集群可用性的影响。
支持冷热分离
AntDB 分布式内存数据库可以通过建表语句指定表单数据的存储介质,目前支持的枚举包括“ HOT ”和“ COLD ”两种,从业务视角区分数据的冷、热程度以及存储方式。以交易类系统为例,在实际使用过程中,可以将与实时交易过程紧密相关的资料数据、资产数据相关表设定为“ HOT ”,这部分数据常驻内存,提供极高的访问速率与极低的延时,而针对庞大的运行日志数据则设定为“ COLD ”,这部分数据存储到廉价的磁盘整列,即不影响数据的访问,又可以提供整体数据库建设方案的性价比。
切换策略的设定。AntDB 分布式内存数据库在支持多种存储引擎的同时,可以支持表单级的跨存储切换。交易类流水数据在业务上有一个渐冷的过程,例如近期的交易流水查询率较高,不能直接归入冷数据,但超过一定时间(例如,3 个月)的交易流水几乎只有审查的作用,对实时交易过程并没有太多作用。针对这一类场景AntDB分布式内存数据库可以指定表单加条件的切换策略,如 trans_yyyymmdd 类的交易流水表,以时间轴为条件,定期进行存储的切换。这个过程是自动化的,过程无需人工干预。
迁移评估
AntDB 提供的迁移评估工具,通过对源端 Oracle/MySQL 等数据库无侵入的信息采集,在服务端分析后,形成从 Oracle/MySQL 等到 AntDB 的迁移评估报告,通过报告可以很直观的看到迁移过程中需要进行哪方面的修改以及修改工作量的估算,并能根据源端 Oracle/MySQL 等的负载推荐 AntDB 集群配置。