OceanBase 4.2.1 LTS版本在北京隆重发布, 行业内不少朋友参加,在各大DBA圈子的微信群也讨论热烈。我也在线上看了直播,真是一个盛会。希望下一次发布会有机会能在上海举行。
本次发布的是4.2.1 LTS版本,LTS意味着这是一个长期支持版本,这个版本的新特性值得大家关注。根据我的理解,简单总结一下:
混合负载--一体化SQL引擎
混合负载主要是针对OLTP OLAP的场景,即HATP场景。OceanBase 4.2.1 的一体化SQL引擎实现了推拉结合的模式,对简单查询拉数据,复杂查询推执行计划,通过这样的方式实现了很好的把简单查询和复杂查询融入到一套系统里,同时也支持了一个非常有用的功能叫Auto DOP,自动设置并行度。 优化器可以根据统计信息自动地判断到底应该采用串行执行还是并行执行以及并行执行具体的并发度。另外,OceanBase已经支持了在数据库内部的CPU和内存的资源隔离,该版本进一步增强了IO资源的隔离能力。
底层存储引擎也做到做到Shared Nothing和Shared Storage架构完美地融合。这部分内容大家感兴趣可以看详细的官方说明。
一体化功能
一体化的设计理念有一个核心的目标,就是希望能够做到在分布式架构实现与集中式数据库与单机数据库完全对标的SQL功能,但是某一些SQL功能在分布式架构下是非常难以实现。举两个例子,第一个例子是大事务,如果一个大事务涉及的参与者、分区数特别多,比如几万个甚至几十万个参与者,分布式事务基本上不可能完成。另外一个例子是表锁,比如我们要在分布式系统里面锁住一张表格,这张表格涉及的分区数特别多,因为我们要锁每个分区,所以这也基本上不可能实现。这个问题的本质在于,原有的原生分布式数据库一般来讲每个分区有一个独立的日志流,使得大事务表锁这样的操作,它的复杂度会与分区的个数成正比。
OceanBase通过单机分布式一体化架构,通过其中的动态日志流的技术,把一台机器上所有的分区动态地融入到一个日志流里面,使得大事务、表锁这样的复杂度只与机器数成正比,不与分区数成正比,OceanBase在4.2版本里面实现了任意大事务没有限制,以及全功能的DDL,包括表锁在内。
这个功能对DBA来说也是一个福利,可以随意扩缩数据库的DB节点,提供了无限的扩展的能力,这对分布式数据库来说确实是一个亮点。更契合实际的业务需求,我们大多数的业务规模也是随着时间推移慢慢规模变大。一体化功能可以让我们轻松实现单DB节点扩展为多DB节点,承载更多的业务需求。
多模融合
多模型不仅仅在一个产品里面支持多个不同的模型,还包括如何实现多个模型之间的互相操作。这也是最近几年数据库发展的一个趋势,这样可以减少业务依赖多种数据库类型,减轻运维压力与企业成本,降低业务复杂度。
生态工具支持
OceanBase 现在基本具备了完整的数据工具生态链。个人觉得完整的工具链是一款数据库产品成熟度的体现。希望OceanBase在生态工具这块做得越来越好,造福广大DBA朋友。
实验特性 ---列存
OcenaBase 本次发布会也公布了列存功能的实验版本,并与著名的列存产品ClickHouse 进行了现场的压测对比。这是一个让人眼前一亮的实验特性。希望早日加入LTS版本。
个人感悟
除了这些新特性之外,原来版本已经实现的分布式数据库的扩展性、高可用能力、mysql与oracle不同租户的语法兼容等特性,已经让OceanBase成为一款越来越强大的数据库产品。从发布也了解到OceanBase的也获得了广大客户的认可,包括电信运营商、金融、互联网等跨行业、业务类型与规模完全不同的客户的认可。