Klustron 技术优势
Klustron 技术优势
Klustron 用于各行业存储、管理和利用海量关系型数据,支撑高并发高负载的事务处理和数据读写需求,能够自动不停服完成水平弹性伸缩,并且确保节点和网络故障情况下持续保持数据读写服务的持续性以及数据持久性和一致性,同时保持稳定的高吞吐率和低延时。 Klustron 兼容 MySQL 和 PostgreSQL 连接协议和 DML SQL 语法,所有常用编程语言开发的应用均可无缝接入。
01 Klustron 具备以下一系列非常独特和鲜明的技术优势。
1.1 坚不可摧
Klustron 可以自动应对集群环境故障 --- 一个 Klustron 集群的任何节点发生故障或者网络故障,都不会丢失或者损坏用户数据,也不会影响业务系统正常运行。 Klustron 的存储集群基于自研的 fullsync 技术提供金融级数据一致性和高可用性。在 Klustron-storage 存储集群的主节点故障后,Klustron集群可以快速发现故障,然后自动选择新的主节点并完成主备切换,以便持续提供数据库服务。Klustron 能够确保在任何时刻集群的任何节点发生故障都不会导致用户数据丢失或者错乱、损坏,并持续提供数据管理服务。
1.2 弹性伸缩
Klustron 支持不停服的水平弹性伸缩,让用户可以灵活地根据动态变化的业务负载规划、分配和使用计算和存储资源。弹性伸缩不会对业务系统和逻辑以及终端用户体验使用造成任何影响。Klustron 集群自动完成水平弹性扩缩容,均衡地利用所有服务器来存储和管理用户数据并且提供持续稳定的高性能低延时 OLTP 数据访问能力。
1.3 海纳百川
Klustron 可以同时支持 MySQL 和 PostgreSQL 两种数据库的连接协议和 SQL 语法,可以无缝对接 MySQL 和 PostgreSQL 这两大世界顶级开源数据库生态。所有常见编程语言的客户端连接库,确保所有这些语言编写的软件都可以连接到 Klustron 并正确执行所有符合标准的 SQL 语句,以及 MySQL 和 PostgreSQL 私有的 DML SQL 语句。相应的数据迁移工作也可以借助 Klustron 和第三方的数据导入工具一键完成。
1.4 极致性能
Klustron 的 OLTP 性能大幅领先于竞品,确保在 PB 级别数据,数千连接,数十万 QPS 仍然可以提供高吞吐率低延时的事务处理性能。详见性能对比和测试报告。
1.5 极致安全
Klustron 支持全量数据加密存储,日志加密存储,全链路加密传输;同时 Klustron 支持多层级细粒度的访问控制,以便 DBA 可以在数据库系统内定义访问控制规则,这样才能确保用户数据不会被任何应用软件越权访问。
1.6 用户友好
Klustron 提供一系列 DBA 常用工具集(GUI 和 API 调用接口),方便 DBA 一键完成或者编程完成 集群管理(集群创建、节点启停、增删计算/存储节点、增删存储集群)、重做备机、主备切换、物理/逻辑备份恢复、online DDL、弹性扩缩容、repartition、集群节点日志文件统一检索和运行状态监控 等所有 DBA 需要处理的复杂工作,大大提升了 DBA 的工作效率,避免 DBA 手工操作导致意外失误影响业务系统运行。
02 产品优势详解
下面是对上述 Klustron 优势的详细解读。
2.1 扬长避短,1+1>>2
Klustron 发挥了 MySQL 和 PostgreSQL 两个单机数据库各自的长项并且避开他们各自的弱项,实现了 1+1 >> 2 的效果。具体来说, PostgreSQL 数据库应对高并发 OLTP 负载时因其存储引擎固有的缺陷,无法实现持续平稳的高性能数据更新,而这点正是 MySQL 的强项 --- MySQL innodb 完全遵从 Oracle 的存储引擎的设计,具备优秀的 OLTP 事务处理性能,特别是在大并发重负载下其性能优势更加明显;同时 MySQL 在表连接、OLAP 分析查询方面性能较差并且功能有限,而 PostgreSQL 在只读查询方面性能优秀并且功能完全覆盖 OLAP 所有功能。
Klustron 团队基于 PostgreSQL 内核深度研发形成 Klustron 的计算节点 Klustron-server,通过深度研发 MySQL 形成 Klustron 的存储节点 Klustron-storage,若干个计算节点和存储节点组成 Klustron 集群,从而实现了远超 PostgreSQL 的 OLTP 事务性能和远超 MySQL 的查询处理和 OLAP 分析能力。
MySQL 和 PostgreSQL 都是单机数据库,它们能够有效管理的数据量受限于单台服务器的计算和存储资源,实践中超过 1TB 就很难提供业务可以接受的持续稳定的高性能低延时数据管理能力。
可见,Klustron 在可扩展性和性能方面都比 PostgreSQL 有质的飞跃 --- 从实测的性能数据看也支持这样的结论 --- 是使用 PostgreSQL 的应用软件和信息系统的 OLTP 数据库的优质选择。
同时,用户使用 Klustron 和使用单机的 MySQL 或者 PostgreSQL 的用法完全相同,无需任何特殊的应用侧开发工作,因此应用程序员和 MySQL DBA 现有的技能可以平移到 Klustron,学习曲线非常平缓。 总的来说 Klustron 根植于 PostgreSQL 和 MySQL 两大世界级开源社区,可用的人才资源和技术资源非常庞大。
Klustron 已经接入阿里云,AWS,很快还将接入其他公有云平台,为用户提供分布式关系数据库服务(DRDS)和按量付费的 DBaaS服务。
2.2 查询处理能力
2.2.1 计算节点支持 PostgreSQL 的所有主要查询处理功能
关于 Klustron 对 PostgreSQL 的兼容性, 详见本文 。
支持绝大多数 DDL 和所有 DML 语法和功能
- 例外:外键,tablespace 和存储相关功能,WAL replication
支持所有基本数据类型
- 数值,字符串,text/blob,时间、日期/时间戳 /money/enum ,序列等等
支持高级查询处理功能
任意跨 shard 的多表连接,子查询,存储过程
OLAP 分析能力:聚集函数,window 函数,grouping sets, cube, rollup
CTE ,视图,物化视图,真 prepared stmt,jit.
受益于 PostgreSQL对 Oracle 的良好兼容性,从 Oracle 数据库迁移数据和应用系统到 Klustron 的工作量较小
- PostgreSQL 支持Oracle 绝大多数 SQL 语法和 PL/SQL语法
- 支持第三方数据迁移工具(ogg等)
- 技术人员技能可平移,学习曲线平缓
2.2.2 计算节点兼容 MySQL DML 功能
关于Klustron 对 MySQL 私有 DML 语法 支持的细节,详见 Klustron 对 MySQL 私有 DML 语法的支持
关于Klustron 的 MySQL 连接协议 的细节,详见Klustron 的 MySQL 连接协议简介
关于Klustron 与 MySQL 语法的细微差异,详见 Klustron 不支持的 MySQL 语法和功能汇总
2.3 全方位数据安全保障
2.3.1 在数据源头控制数据访问更加安全可靠
统一/多层级/灵活动态配置访问控制规则
- Klustron 让用户可以在 database, schema, table, column, view, 乃至行级别控制数据访问权限
- 访问控制规则应该在数据库系统中配置而不是依靠应用程序约束自身
应用层面访问控制的多种缺陷
- 不统一:多种应用访问同一个数据库,每个应用都需要规则配置甚至编码实现
- 不灵活动态:硬编码的访问控制规则,不容易修改
- 不安全:控制策略和规则本身会泄露信息
2.3.2 多层级细粒度的访问控制
- 多层级的用户/角色
- 多层级的数据库对象:数据库 /schema/ 表/视图/列
- 多层级管理各种数据库对象的访问控制规则
2.3.3 数据加密
- 用户数据全系统加密,数据文件和 binlog 文件以及日志文件均可加密
- SSL 全链路加密,安全传输数据
- 多级( database,schema,table,view,column )细粒度访问控制
2.4 开放兼容
2.4.1 计算节点开放架构
FDW ( foreign data wrapper ) : 可以实现接口来读取所有主流数据源
- hadoop 生态 : hbase ,hive等
- 主流数据库 : Oracle , MSSQL Server , DB2 , MySQL ,PostgreSQL 等等
完善的 i18n/globalization/localization 支持
- 时区,字符集和 collation
- 多语言能力
2.4.2 兼容 MySQL binlog 生态
存储集群输出的 binlog 事件可供第三方工具流式消费。
2.5 多层级多方面的扩展能力
2.5.1 按需弹性水平扩展能力
- 多个读写节点,处理读写负载都可以按需扩展处理能力
- 无共享( share nothing ),无单点依赖
- 按需增减计算节点和存储集群/节点
- 无性能瓶颈,无计算/存储能力瓶颈
- 透明的按需扩展,业务系统和最终用户无感知
- 存储集群扩容速度可调,对数据源节点的计算/存储/网络资源消耗可控
2.5.2 全系统并行计算能力,充分利用大量服务器并行工作
- 计算节点内部多线程并行执行同一个查询
- 存储节点内多线程并行执行计算节点为同一个查询而派发的多个查询子任务
- 计算节点异步发送请求到存储节点,让多个存储节点可以并行执行同一个查询的多个子任务
2.6 其它优势
2.6.1 存储集群
- 性能领先:分布式事务处理性能大大高于社区版本
- FullSync 金融级高可用和强一致性,节点和网络故障不会丢失、损坏数据
- 完备的容灾能力:填补社区版 MySQL8.0 的分布式事务处理的容灾能力空白
使用Klustron管理小规模数据的优势
2.6.2 Klustron VS MySQL:- 放大了单 MySQL 集群的能力,按需水平扩展能力和更强大的数据分析能力
- 更简单方便地使用 MySQL 集群:自动切主并维护 MySQL 集群状态
- 并行查询处理,读写分离(备机读)
2.6.3 集群结构简单,不依赖第三方模块和软件( etcd/zookeeper 等)
- 产品质量可控
- 避免额外的硬件开销
- 运维负担小