欢迎大家在此论坛对V3.2版本进行提问互动,也可以给我们提出建议。
OceanBase 数据库作为一款企业级原生分布式关系型数据库,自创立以来一直坚持原生分布式的发展路线,其高兼容、金融级容灾和高可用、透明灵活扩展、超强稳定性等能力已经在金融、政府、运营商等各个行业得到了充分验证以及认可。今年 6 月 1 日,OceanBase 3.0 产品发布会宣布 OceanBase 数据库进入 3.0 时代,全力打造硬核的原生分布式 HTAP 数据库,打破边界,同时支持 OLTP 和 OLAP 负载。
OceanBase 3.2是今年6月1日产品发布会宣布进入3.0时代后的首个重大版本,持续在企业级能力构建上发力,围绕兼容性、HTAP混合负载、小规格性价比等几大核心能力,在Oracle/MySQL兼容、易用性、稳定性、性能和功能等诸多方面持续迭代增强与优化升级,在提升用户体验的同时,帮助用户更轻松地完成应用迁移、TP和AP统一部署、降低应用开发部署和运维成本。OceanBase 3.2版本在同等环境及任务的前提下,相比于3.1版本,Sysbench OLTP性能提升24%,BMSQL tpmC性能提升30%以上,TPC-H性能提升655%,极大的提升了OLAP能力。
核心特性如下:
一、更高的性能,TPC-H 6倍高性能提升
1、OLTP和OLAP性能大幅提升,更硬核的HTAP能力
在3.2版本,OceanBase数据库通过执行计划索引剪枝、缓冲区刷新算法、去除重复表达式、Table scan算子,多种算子的执行效率与内存消耗优化,极大提升了HTAP负载能力。相较于V3.1版本,V3.2版本在TPC-H性能测试上提升655%,极大的提升了OLAP能力。
2、支持小规格部署,性能提升30%
持续优化系统内部模块级内存使用限制,突破小规格限制,并支持在8C64GB小规格机器部署并稳定运行。性能层面,相比3.1版本整体提升30%。
3、突破分布式数据库事务限制,支持超大事务
分布式数据库系统内存memstore中写入的数据量超过一定限制时将memstore“冻结”并将数据dump到磁盘上,但冻结和转储过程memstore中要求没有未提交的事务,因此会导致活跃事务频繁搬迁以及租户内存爆的风险。OceanBase通过转储未提交事务技术(租户级别的调度与冻结超出内存限制的活跃未提交事务)以及PAXOS即时写日志技术(对冻结事务生成clog进行paxos同步),实现了分布式数据库对超大事务支持能力,更好地有效解决转储对事务状态的依赖。
4、内核能力优化提升性能
强化内核能力,通过marker去除重复的表达式,替代原有的hashset以获得更好的性能;新增支持手工收集优化器统计信息,提升手工调优能力;新增索引自动加密,提升数据存储的安全性。
二、更高的兼容性,降低业务迁移改造成本
在 V3.2 版本,OceanBase 数据库针对 Oracle 和 MySQL 模式在功能、语法、函数、过程语言、系统包等方面均进行了兼容性增强,进一步降低业务迁移到 OceanBase 数据库的改造成本,以及用户使用 OceanBase 数据库的学习成本。
1、Oracle兼容性,支持存储过程读写及定时器任务管理调度能力
新增支持系统包UTL_FILE,实现多系统间的数据交换、同步和整合,用户可以将数据库内的数据写成文件同步至下游系统使用,也可将其他系统生成的数据文件读入数据库做进行进一步处理,避免系统重构成本。新增支持定时器任务DBMS_JOB,可以轻松进行任务的管理和调度,实现定时任务、循环任务及异步任务等复杂业务场景下的自定义任务管理和调度,降低人力维护成本。
2、MySQL适配5.7协议,在MySQL模式下支持自增列和DML触发器
适配支持 MySQL 5.7 驱动协议,支持 5.7 新增的会话变量,可以推高 OceanBase 的 MySQL 兼容版本,避免企业内部安全审计问题。新增支持自增列做为分区键,为数据的逻辑分离提供更好的灵活性。OceanBase的MySQL模式并不支持DML触发器,导致需要触发器行为的场景下,客户需要自己写代码来实现数据和记录的约束,OceanBase 数据库在V3.2版本在MySQL模式下支持DML触发器,用户可以在表上创建触发器,当在该表上的DML操作满足条件时,即可触发用户自定义行为。
三、更优异的产品易用性,降低运维成本提升管理效率
在V3.2版本,OceanBase数据库对数据库的易管理和易运维进行了针对性的提升,针对很多常用用户操作进行了简化,降低用户使用数据库的复杂度,提升使用效率。
提升自动化能力简化运维成本
支持Schema History回收功能和自动清空回收站功能,OceanBase 数据库回收站提供以租户为单位,当磁盘空闲空间不足时,按照 FIFO 的策略,自动清理回收站空间的功能。支持用户通过配置项_schema_history_recycle_interval控制Schema History回收周期,通过配置项recyclebin_object_expire_time 指定回收站中对象的过期时间。提供自动健康巡检能力,可以根据内置巡检规则及系统脚本对关心的资源设定时间进行检查并生成巡检报告。支持租户级别的最新状态物理恢复,恢复命令在缺省条件下恢复到CLOG中记录的目标租户的最新状态简化用户操作。
2、极大提升性能及问题诊断监控能力
提供内部状态可视化能力,通过虚拟表读取任务队列及内存任务情况;加强性能诊断报告能力,对集群的性能指标、参数和资源配置、负载进行分析并生成诊断报告帮助DBA进行性能诊断;提供SQL诊断调优特性,针对SQL进行健康情况诊断及性能问题排查,识别可能会影响系统稳定性的慢SQL及可疑SQL,帮忙用户提早排查问题规避风险。
四、更强的核心场景稳定性,为客户业务保驾护航
在V3.2版本,OceanBase 数据库在访问连续性、数据一致性和事务执行等方面针对性提升系统的稳定性,为客户业务的连续性和正确性提供更有效的保障。新增全局死锁检测、本地路由表自动刷新、备机强一致性读、系统异常状态侦测强化、集群网络流控优化能力。
1、新增全局死锁检测功能,及时识别处理死锁问题,保障事务执行的稳定性
死锁是数据库非常常见的问题。出现死锁时,需要DBA来监控或巡检发现,并人工进行处理;定位时间和周期都比较长。针对这一场景,OceanBase数据库在V3.2版本支持全局死锁检测功能。实现分布式死锁检测的关键在于, 如何汇总每个节点上的局部锁等待关系, 并基于汇总出来的全局锁等待关系产生全局的锁等待图(wait-for graph), 找出图中成环(deadlock cycle)的事务, 最后挑选出最优的事务作为牺牲者(victim)去解开死锁。OceanBase数据库采用基于Mitchell-Merritt算法,使得分布式死锁检测在分布式数据库系统中的得以实现。目前死锁检测范围已包含嵌套执行、存储过程、触发器、外键等,后续版本也会持续增强和完善全局死锁检测能力。
2、支持超多分区,突破传统分区个数规格限制,确保业务高速增长场景的系统稳定性
OceanBase3.2版本就分区级联方案、分区状态算法、心跳及日志传输等多个重要模块组件进行增强优化,实现数据库集群支持规模达到50万级别分区数量,帮助用户在业务高速增长下保证系统稳定性。
3、优化了集群网络流控,避免网络带宽耗尽带来的访问故障
在数据库实际的业务场景中,当出现大规模数据同步复制(比如故障数据迁移、备份恢复)时,很容易把网络带宽耗尽,从而影响正常业务访问。OceanBase数据库优化了集群网络流控,优化事务日志同步、迁移、补副本、rebuild操作拷贝静态数据等场景下所需要的网络带宽资源使用,对网络流量进行更好的控制,通过规则和保底方案形式避免访问故障的出现。
五、强化公共云及多租户管控能力,满足复杂业务场景下资源隔离及安全诉求
1、支持公共云海外部署形态,助力客户全球业务拓展
OceanBase公有云在海外发布,在安全特性(SSL加密、TDE数据透明加密、VPC隔离)满足海外安全合规需求的同时,通过数据存储压缩技术优势,实现成本下降30% 存储空间下降90%。
2、支持多租户资源隔离,满足跨业务跨部门的复杂业务场景
大型复杂的业务场景下,不同业务以及部门之间需实现权限及资源隔离,以避免因资源争抢等造成业务间互相影响。针对多租户场景,提供租户级的磁盘空间限制管理能力,通过自动化任务定期主动探测空间使用情况,超出时触发空间限额管理策略。支持租户级的快照备份恢复,可以根据业务种类及重要程度指定备份策略,并支持自定义备份目的地。
OceanBase 数据库将持续围绕打造硬核原生分布式HTAP数据库,在兼容性、稳定性、混合负载HTAP、透明扩展等方面进行持续提升,把复杂留给自己把简单留给用户,打造满足客户真实业务诉求和场景的硬核数据库。