「4.0 体验站」第二篇由 OceanBase 社区版深度用户、社区文档贡献者夏克老师撰写,作者有多年从事金融行业外围零碎设计开发的工作教训,服务于某交易所子公司,现阶段负责国产数据库调研,近期陆续取得了 OBCA、PCTA、OGCA、DCA、GDCA 等认证,欢送大家评论区探讨交换!
在 2022 云栖大会上,OceanBase 社区版 4.0(代号:小鱼)正式亮相公布,其与企业版领有等同性能,更兼容、更易用,2 分钟内即可实现疾速部署,这也意味着,业内首个兼容 MySQL 的单机分布式一体化数据库正式上线。
这次公布的 4.0 版本于 OceanBase 和用户而言具备重大意义,在公布的当晚,咱们就在社区收到几位老朋友的测评分享,也在多个社群内看到大家踊跃征询,这让咱们倍感快慰。也正因而,经考量之后,决定在近期将选取局部新老用户敌人“4.0 测评体验”陆续公布在咱们的微信公众号,欢送大家参加到 OceanBase 的「4.0 体验站」栏目中来。
Ps:您的测评体验分享还能够同步参加咱们的有奖征文哦~ 详情戳《更易用的 OceanBase|生态工具征文大赛正式开启!》
以下为测评注释:
前两天看到 OceanBase 社区版 4.0 在 2022 云栖大会正式公布,不禁有些感叹:我关注并接触 OceanBase 已半年无余,第一次与 OceanBase 相识是通过 OceanBase 第二届技术征文大赛,过后投稿了一篇题为《Hello OceanBase!开启 OceanBase 二次开发》的文章,文章最初,我对 OceanBase 提了一些倡议,明天回头来看,真心想给 OceanBase 点一个大大的赞,赞 OceanBase 对用户体验的关注,赞国产数据库人砥砺前行、不负韶华的信念!
点赞 OceanBase,让反馈有回响
先回顾一下当初的倡议:
近 2~3 个月始终在钻研泛滥国产数据库,包含 OceanBase、TiDB、OpenGauss/MogDB、达梦等,OLTP、OLAP、HTAP 都有,从应用的角度还是想给 OceanBase 提几个小的倡议。
环境搭建绝对比较复杂。心愿有一个一键搭建 demo 集群的小性能,不便用户疾速上手;
倡议提供低配版配置。分布式数据库很吃资源,对于设备简陋的小伙伴想上手,门槛较高,常常遇到一些资源方面的问题导致部署失败;
OceanBase 如何提供用户扩大接口?尽管听起来有点鸡肋,然而往往能够解决一些企业级的利用的需要,在性能上也会加分;
在企业版中,Oracle 租户驱动接口能够再丰盛一些。
OceanBase 4.0,我发现的新变动
以下我将从部署、资源、扩展性、接口 / 驱动四个方面切入,分享我在体验 OceanBase 4.0 时看到的新变动以及倡议。
▋ 更快地部署
倡议 1:环境搭建绝对比较复杂。心愿有一个一键搭建 demo 集群的小性能,不便用户疾速上手。
国产分布式数据库广泛难部署,让初学者望而生畏,而 OceanBase 4.0 只需两步就能实现 demo 的装置部署。因为工作起因,我在这一年接触的国产数据库不下 10 种,能分分钟就部署好的数据库很少,尤其是分布式数据库的部署往往会破费较长时间,而且常常会遇到各种问题,一些小伙伴可能在这个阶段就会抉择放弃。我认为成熟的数据库产品不应该再有过来“酒香不怕巷子深”的想法,尤其是当初国产数据库“卷”的水平,曾经不能再让用户穿街过巷地去寻找了。
我是如何两分钟实现 OceanBase 4.0 部署的?
步骤 1: 下载并装置 all-in-one package,OceanBase 4.0 提供了对立的安装包,有在线和离线两种装置形式。这一点相比 3.x 版本带来了微小的变动,过来咱们要别离下载 obclient, obd, obproxy, observer 等等能力实现部署,4.0 版本能够间接用 all-in-one 安装包装置部署。
步骤 2: 应用 obd demo 疾速部署单机体验环境。相比过来的形式,4.0 变得更简略了,只有用一个命令,就能够拉起 OceanBase 社区版 4.0,更不便的是在这个 demo 环境中曾经集成了 prometheus、grafana 等作为 DBA 最罕用的监控工具。
评测 & 倡议
评测: OceanBase 的装置部署过程能够达到同类竞品的一流水准,分布式数据库畛域里,这简直是我见过最繁难的形式,得分:4.5 分。
倡议: 整体上应用 obd demo 曾经能够达到疾速上手的规范,但还能够做的更好,比方:
- 能够在单机上通过 obd 部署 3 节点的集群,每个 observer 应用不同的端口;
- 应用 Docker Compose 部署 3 节点的集群(这个性能我正在做)。
以上两点须要思考的还是资源问题。尽管 OceanBase 4.0 的一项重要变动就是小规格,然而毕竟 3 节点是 treble 了资源。
▋ 更小的规格
倡议 2:倡议提供低配版配置。分布式数据库很吃资源,对于设备简陋的小伙伴想上手,门槛较高,常常遇到一些资源方面的问题导致部署失败。
资源问题是 OceanBase 3.X 版本的突出痛点,而 OceanBase 4.0 带来的重要变动里,有一项就是小规格。我集体习惯是在 PC 上通过 docker 或者 WSL 去搞一套环境,顺手就能够玩一玩,但在 3.X 版本时显然会比拟麻烦,常常会遇到因为资源有余导致启动失败的状况。
而对于 OceanBase 4.0 版本,从我的理论运行体验看:在 4C8G 的规格下根本能够失常应用(目前支流的 PC 配置个别能够达到 8C16G)。这一新变动将在很大水平上帮忙更多喜爱 OceanBase 的用户随时随地搞起来,让分布式数据库的门槛变得更低。
下图是 OceanBase 官网文档中提供的部署环境倡议:
评测 & 倡议
评测: OceanBase 4.0 在规格上有了很大改良,这个毋庸置疑。但单机部署 4C16G 实际上还是有优化空间的,得分:4.0 分。
倡议: OceanBase 4.0 运行时资源应用的提高就不说了,这里提两个其余资源相干的倡议:
- 让源码编译,也能反对更小的规格: 作为一个开发人员,往往喜爱去撸撸源码,可能还会去提 issue 和 PR,所以常常会对源码进行编译。而编译就不是 4C8G 能够解决的了,OceanBase 编译脚本中应用了并行编译 make -j$CPU_CORES,每个 clang 编译过程最大应用内存约 2G,依照我 PC 的配置 12C16G 进行编译的话(12*2=24G),内存应用会超出理论物理内存大小,常常会产生 OOM,导致编译失败,不得不手动批改编译脚本,缩小并行编译的过程数量;
- 源码编译工夫能够再缩短: 置信咱们 OceanBase 外部开发的服务器配置肯定很好,或者大部分编译是通过继续集成来做的,可能不肯定会遇到编译工夫过长的问题,但作为一个开源的我的项目,肯定是要面向社区用户的,所以一次残缺编译破费 1~2 小时的工夫(和编译 boost 库或 linux 内核的工夫差不多)对用户而言是不太敌对的。我倡议优化编译工夫能够通过正当布局模块层级,防止反复援用头文件。此外,目前看 OceanBase 代码构造中头文件中援用了很多依赖头文件,是否能够通过“类前置申明”等伎俩,把依赖头文件尽量放在 .cpp 中。集体感觉编译工夫优化还是有很大的空间。
此外,OceanBase 4.0 在扩展性和接口 / 驱动方面仍有进一步优化改善的空间。
▋ 期待更好的扩展性
倡议 3:OceanBase 如何提供用户扩大接口?尽管听起来有点鸡肋,然而往往能够解决一些企业级的利用的需要,在性能上也会加分;
这个问题目前在我看来 OceanBase 4.0 的冲破并不显著,该性能实际上是源于企业的实在业务需要,在金融行业和电信行业我都理论开发过这类扩大数据库的代码。无论是 Oracle 数据库,还是当初很多国产数据库基本上都反对了这个性能。
以 PostgreSQL 系的国产数据库举例,基本上都继承了 PostgreSQL 高度扩大的个性,给用户提供了更多的可能性。PostgreSQL 的插件数以百计,是沉闷社区的次要力量之一,通过插件,用户能够间接实现一些对 Oracle 的兼容革新、能够实现数据库的监控工具、能够实现 CDC 工具、能够实现内部表的拜访——FDW 等等。
当然,对于开源数据库来说能够通过批改源码的形式减少用户定义的函数,就像《Hello OceanBase!开启 OceanBase 二次开发》这篇文章外面提到的办法,然而这种形式有三个比拟显著的弊病:
- 没有标准化的接口,须要批改多处代码,工作量大,实现绝对简单;
- 批改是浸入式的,如果版本更新,须要从新合并用户自行批改的代码,降级老本高;
- 往往这种需要源于企业级利用,大多状况是应用企业版的 OceanBase,企业版不开源,计划不可行。
▋ 期待更多的接口 / 驱动
倡议 4:企业版中 Oracle 租户驱动接口能够再丰盛一些。
在 OceanBase 社区版中,MySQL 租户的驱动还是很丰盛的,基本上兼容了 MySQL 协定的所有接口。我在这里次要想说说企业版的一些问题。
在企业级利用中,OceanBase 4.0 提供了目前最支流的三种驱动,即 Java、Python 和 C,其中 Python 是通过 JDBC 来实现的,并没有原生 Python 驱动。尽管,目前企业支流的开发语言还是 Java 和 C/C++,然而只有这两种语言是无奈满足企业需要的,像 Golang、Rust、JavaScript 等语言曾经成为古代企业信息化建设开发语言的重要组成部分,OceanBase 该当提供更丰盛的接口 / 驱动,不便用户应用。
OceanBase 4.0,值得期待和抉择
通过近一周的体验,我感知到的 OceanBase 社区版 4.0,是一个充沛聆听用户诉求的版本,能够说是利用社区和生态的胜利案例。 不过作为开源我的项目,OceanBase 仍有须要改良的中央,比方,开源社区自身是要吸引更多的开发者退出,宣传产品的同时要让更多的用户,尤其是开发者自发地向社区做出奉献;同时能够设立更多的 SIG 组和用户组(比方用户需要的 SIG 组、金融行业的用户组等等),用户能够有针对性地向社区提出需要,有能力的用户(或组织)甚至能够提交本人实现的性能代码(如果插件性能提供了,用户也能够实现本人的插件来丰盛 OceanBase 的生态)。可能是我要求有些刻薄了,不过坦白讲,OceanBase 4.0 的确给了我很多惊喜和对 OceanBase 将来版本演进的期待。
最初,向国内包含 OceanBase 在内的所有砥砺前行的数据库厂商致敬!也向包含我在内的所有对国产数据库要求刻薄的用户致敬!