分布式事务型关系数据库-AntDB
2018-01-31 13:11:23 阿炯

AntDB 是一款源自于 PostgreSQL 内核的通用分布式事务性关系数据库,是一款面向金融、电信、政务、安全、能源等行业的国产、自主、安全可靠、高性能的企业级分布式事务型关系数据库产品。具备持续的集群自动高可用,秒级在线扩缩容,强大的 Oracle 兼容,异地容灾,SQL 语句级自定义分片,分布式事务和 MVCC,可提供最大保护、最大性能和最大可用的自适应切换,全局一致性位点恢复等企业级应用的核心能力。对应用完全透明,可实现从 Oracle 的平滑迁移。采用C/C++开发并在Apache协议下授权。


AntDB is a distributed database with share nothing architecture. The goal of AntDB is to provide both write-scalability and massively parallel processing. AntDB is released under the Apache 2.0 license and we greatly welcome all new contributions.

特性
    与 Oracle 数据库高度兼容(支持大约 80% 的 oracle语 法和 oci7 )
    分布式事务(2PC)和全局 MVCC
    大规模并行查询处理
    动态扩展数据库集群容量
    高度自动化的操作和维护

AntDB诞生于2014年的春天,从开源的PGXC技术开始进行深入研究,经过半年大量的测试和内核研究,到了8月份修复了一系列重大bug,解决了诸如分布式场景下数据一致性问题,死锁,缓冲区失效等很多非常难以排查的宕机问题。

熟悉PGXC的架构和内核之后,从2014年10月份到2015年10月份,对PGXC的部分核心模块,比如内部通讯模块进行重构,使其更加的稳定和精简,便于维护。并新增了高达80%的Oracle兼容度,使得AntDB和Oracle可以进行异构容灾。引入了很多创新专利技术,使得客户使用起来更加的方便。

由于PGXC架构的先天性缺陷,全局事务管理器制约了集群的可扩展性加上代码的不严谨使其非常的难以维护。2015年10月份-2016年10月份,采用全新的技术思路开始重构了全局事务管理器,内部通讯交互次数降低了70%,性能提升了60%。从跟随和学习PGXC的技术步入引领的阶段。

PGXC和AntDB的全局事务管理器特性对比

PGXCAntDB
GTM使用单进程多线程模型多进程多listen模型,充分利用资源,一个进程挂了,不会影响其他用户访问
GTM只支持一主一从两副本模式使用PG流复制来实现HA,并能获得更好的灵活性和集群的稳定性,支持一主多从,同步+异步的混合模式
读写都需要分配GXID读操作不需要消耗全局GXID资源
事务提交分本地提交和全局提交不需要使用本地+全局两次提交,大大减少了事务的冲突率
GTM不参与全局2PC,会出现数据写不一致。Snapshot不完整,会出现数据读不一致AGTM也会记录全局事务日志(WAL)参与2pc,保证全局事务状态的一致性
DataNode节点出现2PC事务状态不一致,需要再使用pgxc_clean进行手工清除遗留的两阶段事务ADB新增remote xact manager进程,用于自动解决分布式事务部分成功问题


AntDB 架构演进


TPC-H 对比测试(单位秒)




快速安装 AntDB

xcxl-vs-adb2.2功能对比

ADB集群管理工具(ADB manager)使用手册

最新版本:3.1
最新的AntDB-V3.1版本会再次出现质的飞跃,内核的持续重构和升级,使其更加的精简和高效。

项目主页:https://github.com/ADBSQL/AntDB