自研一体化分布式架构数据库-OceanBase
摘要:本文整理自OceanBase社区布道师周跃跃,在如何构建简单高效的现代化数据栈的分享。
本篇内容主要分为三个部分:
1.发展历史
2.核心特性助力企业系统选型
3.用户眼中的OceanBase
一、发展历史
从2010年至今,OceanBase经历了22年的技术发展。在这个过程中,其发展可以分成三个阶段。第一代的分布式存储系统;第二代的分布式数据库;第三代的分布式HTAP 数据库。
2021年6月1日,OceanBase进行开源,服务了更多的用户。OceanBases由业务需求立项,到承担核心业务的全部流量,产品发展与业务高度契合。
其次,业务驱动了产品的迭代和发展。从内部到外部的场景和企业,OceanBases经过12年的产品打磨和验证。产品的稳定性和性能,不但满足了核心企业的场景需求,还完善了周边的工具生态。
二、核心特性助力企业系统选型
右图是OceanBase一体化架构。OceanBase的每个节点均有自己的SQL引擎和存储引擎,自主管理各自承载的数据分区,TCP/IP互通,协同服务。
多副本和Paxos分布式协议的高效高可靠工程实现,确保数据(日志)持久化在多数派节点成功。
接下来,介绍下OceanBase的产品特性,这也是企业用户在选型时特别关注的。OceanBase的核心特性主要有六点,即高可用、低成本、高兼容、高扩展、混合负载、多租户。
OceanBase的高可用性,是基于Paxos协议的典型三副本部署方案,通过Paxos协议保证数据的强一致性。当出现单机、机房或城市级故障,整个服务可以自动切换,持续可用。
所以基于OceanBase的高可用性,用户可以做到两地三中心、三地五中心以及单元化的部署方案,实现整个业务数据集群的高可用。
在低成本方面,OceanBase基于LSM Tree进行存储管理。主要包括基线数据和增量数据。
其次,OceanBase的存储成本大概是MySQL的三分之一到四分之一。 MySQL的一主两从,对应OB三节点时的三副本,在默认参数下存储成本低,在历史归档业务方面,也有很好的表现。
目前,OceanBase兼容MySQL 5.6的绝大部分语法以及部分8.0的新特性。在生态方面,可以使用MySQL周边生态工具操作OceanBase,比如Navicat、dbeaver、datax、canal等。
在高扩展性方面,OceanBase的集群节点全对等,每个节点都具备计算和存储能力,无单点瓶颈,可线性、在线扩展和收缩。在节省成本的同时,兼具分布式系统的扩展性和关系数据库的易用性和灵活性。
OceanBase的SQL引擎,满足OLTP和OLAP;OceanBase数据库,支持读写分离,满足ETL取数,BI查询和MySQL已有的读写分离环境。
左图是OceanBase集群的原生多租户架构图,资源隔离不但可以让一套集群运行的多个业务,互相之间资源不会出现争抢,还可以灵活弹性的控制单个租户的资源使用情况,减少运维压力,合理使用资源。
三、用户眼中的OceanBase
从用户的角度来看,OceanBase使用稳定,运营轻松。其次,OceanBase降本增效的效果非常明显。第三,OceanBase的周边工具、周边生态非常完善。
在同等条件下,OceanBase通过行列混合存储,全功能型副本,日志型副本和只读型副本,其存储成本只有MySQL的三分之一到四分之一。
OceanBase通过高度兼容、分布式扩展、资源隔离的多租户的一套集群,替代多套MySQL环境,同时用户在使用习惯上与MySQL差异很小。
OceanBase基于Paxos的一体化架构设计,减少不必要的rpc交互,尽可能的实现本地读写,同时可以进行更为灵活的性能调优,有效降低rpc消耗。
在生态工具方面,用户可以自建一套部署环境,用OCP管理平台白屏操作或者通过api调用实现集群管理,租户管理和备份与恢复。
环境部署之后,用户需要进行迁移数据。通过OMS的白屏化操作,实现数据迁移与校验。目前,OceanBase支持MySQL和OB的双向迁移,以及OB间的数据迁移。
数据作为企业最核心的资产,通过数据库进行管理。作为一款基础软件,数据库对使用者来说,产品验证和替换周期较长。目前OceanBase 社区版已经运行在超过 50家企业生产环境,包括:京东,银联,携程,58同城,360,红象云腾,六棱镜,Gitee中国,CSDN等企业。