随着业务压力不断增大,分布式已经成为企业数据架构转型的确定方向。对于数据库,虽然分布式数据库已经出现多年,也在许多场景得到了广泛的应用。但是根据 Gartner 的数据库报告显示,未来,70% 以上的数据库需求仍然会集中在关系型数据模型上,其中最主要的应用就是核心在线交易系统。
此前,能够真正进入企业核心在线交易业务的分布式数据库屈指可数,特别是在银行这样严苛的核心交易系统,分布式架构改造一直十分谨慎。
针对这一需求,在数据库的演进上,此前的做法是从传统关系型数据库进行分布式改造,如 MySQL 的“分库分表”方案。但是实践证明这一路线仍不能很好满足需求。
如今,一种新的路线正逐渐占据主流,那就是在原生分布式数据库上,进行分布式 OLTP 功能的增强和 SQL 的强兼容,采用这一路线突破核心交易业务的代表之一,就是 SequoiaDB 巨杉数据库。
作为首批上榜 Gartner 数据库推荐报告的中国数据库产品,SequoiaDB 巨杉数据库 3.0,在产品 GA 发布后,经过近半年在金融级场景的测试、上线和稳定运行之后,于近期正式发布。
▌SequoiaDB 3.0 产品定位
SequoiaDB 巨杉数据库是一款金融级分布式数据库,包括了分布式 NewSQL、分布式文件系统与对象存储、与高性能 NoSQL 三种存储模式,分别对应分布式在线交易、非结构化数据和内容管理以及海量数据管理和高性能访问场景。
根据 Gartner 的数据库报告,Multi-model 多模是未来 10 年,下一代分布式数据库发展的最主要方向。从 1.0 的高性能分布式 NoSQL 数据库,到 2.0 加入的分布式对象存储,再到 3.0 完整协议级兼容 MySQL,SequoiaDB 经过 6 年的不断迭代创新,全面支持企业级结构化、半结构化以及非结构化数据存储。
SequoiaDB 3.0 产品维度
▌MySQL 完整协议级兼容
SequoiaDB 3.0 实现了 100% 的 MySQL 协议级兼容:
全面兼容:全面支持 MySQL 协议与语法,用户可以直接使用 MySQL 客户端或任何管理、开发与监控工具对数据库进行操作;
MySQL 语法:由于使用了 MySQL 原生的解析器,SequoiaDB 3.0 能够实现 100% 的 MySQL 语法兼容,支持语法包括基础 CRUD 操作、多表关联、跨节点事务操作、创建视图、存储过程、索引和访问计划等。
无缝切换:对于任何已有应用程序,SequoiaDB 3.0 提供全面的 MySQL 兼容,几乎无需应用程序代码调整,即可无缝切换;
分布式弹性扩展:通过 SequoiaDB 存储引擎原生分布式架构,数据库在兼容 MySQL 同时,无需“分库分表”,分布式存储引擎直接提供弹性容量扩展能力,可以上百倍提升应用程序的存储空间与访问性能;
表多维分区:通过存储-SQL 分离架构,用户访问 MySQL 也可以实现表的多维分区,提升应用的灵活性。
SequoiaDB 3.0 MySQL 兼容架构
SequoiaDB 3.0 采用了“存储-SQL 分离”的架构,类似架构也出现在 AWS 的 Aurora 数据库等众多新一代分布式数据库上。
SequoiaDB 3.0 使用了 MySQL 数据库原生的 SQL 解析器,天然支持 MySQL 协议并可以做到 100% 语法兼容。在该架构中,MySQL 协议解析层作为 SQL 解析和分发的角色,直接面对应用程序,每一个 MySQL 服务的接入节点都是一个独立支持读写操作的 MySQL 进程。而数据存储和管理层,则完全由巨杉数据库的分布式数据库引擎实现。简单来说,SequoiaDB 3.0 作为 MySQL 的 InnoDB 替换引擎,在天然支持 MySQL 的全部语法和功能的同时,提供了数据库存储层弹性扩张的能力。
▌金融级分布式 OLTP
SequoiaDB 3.0 的 MySQL 兼容主要体现在 SQL 语法层面,而针对分布式 OLTP 业务的其他众多数据管理机制,均在 SequoiaDB 的分布式数据库引擎实现。
SequoiaDB 3.0 针对分布式 OLTP 业务,在分布式存储引擎方面带来了一些重要的提升:
ACID:
ACID 是交易型数据库的基础,SequoiaDB 3.0 已经全面支持 ACID,100%支持原子性、一致性、隔离性与持久性;
跨表跨节点事务:
在分布式数据库中,多节点间的原子性操作需要特殊的方式实现,SequoiaDB 3.0 使用二段提交的方式支持跨表跨节点事务能力;
隔离性:
支持 read-committed 隔离级别;
锁机制:
SequoiaDB 内核对记录锁的管理进行了优化,完全避免了在大量并发交易时的锁拥堵问题;
CBO(Cost-Based Optimization)基于开销的优化:
实现对集合内的数据以及索引进行统计抽样,建立多维度、多层级的数据模型;并对外部查询语句进行“重写”、“规则优化”、“参数化”以及“谓词降解”优化,提升访问性能,这也是目前企业级数据库主流的优化器优化方式;
表压缩:
针对表级别的数据压缩,提供两种压缩方式,压缩比例最高超过 60%,极大提升性能和吞吐量;
安全性:
分布式架构支持高可用与异地灾备机制,在提供一主多备存放的同时还支持读写分离模式。SequoiaDB 3.0 原生支持两地三中心等异地容灾策略,保证交易数据安全可靠。
▌对象存储与文件系统
SequoiaDB 3.0 在对象存储 API 的基础之上提供了标准 Posix 文件系统接口,能够原生接入任何支持 Posix 协议标准的操作系统,用户对应用程序无需任何改造即可从 NAS 迁移至 SequoiaDB。
在使用 Posix 文件系统的基础上,SequoiaDB 3.0 完全避免了传统文件系统在存储大量文件时所产生的性能瓶颈。同时,得益于 SequoiaDB 的分布式架构,其对象存储与文件系统特性在对应用程序零改造的前提下,成百上千倍地提供了存储的扩展性以及并发吞吐能力。
在该版本中,还引入了“偏移锁”机制,当并发操作同一个文件时,每一个并发只锁定其偏移内的内容,这样即可以保证并发情况下文件内容的正确性,极大地提升了外部访问的并发度。
▌全文检索
SequoiaDB 3.0 支持全文检索能力。用户可以通过创建针对指定字段的全文检索索引,对字符串中的内容进行实时模糊匹配,达到像使用普通查询一样方面地使用全文检索功能。
在索引类型中,增加了新的“全文索引”类型,用户只需要在对集合创建索引时指定为“全文索引”类型即可以轻松地创建。在全文索引创建后,索引定义的内容会自动同步至全文索引引擎,之后新的数据变化也会快速同步至全文索引引擎中。
SequoiaDB 3.0 支持异步全文索引,在高吞吐量的数据导入时不会对导入性能造成任何影响。
▌容灾与安全
SequoiaDB 原生支持数据库内核级别的高可用以及跨数据中心灾备能力,不需要使用第三方工具即可使用多副本对数据进行保护,完全满足金融级要求:
数据中心内高可用安全:RPO、RTO 为 0,迅速响应无缝切换;
异地容灾:异地容灾和备份,保证数据安全,中心间距离超过 1000km 以上。满足“两地三中心”的监管需求;
同城双活:同城双中心的数据实时同步,保证数据一致;双中心数据可以实现同时读写,大大提升读写效率;中心切换 RPO 为 0 ,RTO 小于 1 分钟;
更便捷的灾备管理:系统集群中统一管理灾备中心,简化了维护成本,也帮助使用者更快上手。
▌性能
SequoiaDB 3.0 在性能方面也有持续提升。通过 Sysbench 标准测试,SequoiaDB 3.0 性能表现优秀。测试主要考察三种场景,插入、查询以及交易事务几项基础数据库操作指标,以下为相关的测试方法以及结果:
Insert:单条数据插入
启动 3 个 96 并发运行 Insert 的 Sysbench 进程 30 分钟,SequoiaDB 测试结果:平均响应时间为 5.28ms, TPS 为 54,513.58 笔/s,成功率为 100%。
Select:索引查询,精确匹配中一条记录
启动 3 个 96 并发运行 Select 的 Sysbench 进程 30 分钟,SequoiaDB 测试结果:平均响应时间为 1.42ms, TPS 为 202,886 笔/s,成功率为 100%。
OLTP 事务操作:
一个 OLTP 事务包括 10 个精确索引匹配查询,1 个索引范围查询,1 个索引范围查询汇总,一个索引范围查询排序,一个索引范围查询去重,一个精确匹配更新索引字段,一个精确匹配更新非索引字段,一个精确匹配删除,一个单条记录插入(主键为删除记录字段的值)。
启动 3 个 96 并发运行 OLTP 的 Sysbench 进程 30 分钟。
SequoiaDB 测试结果:平均响应时间为 68.74ms,TPS 为 4,198.29 笔/s,成功率为 100%。
金堤古方国医堂公司运用的传统数据库,暂时还能达到数据的存储,当客户数量越来越大,也需要做到升级。
http://www.jdgfgyt.com/