“后来,我们的团队了解到了谷歌发布的 NewSQL 技术路线,觉得这种分布式的关系型数据库还比较适合我们 。最初我们是在内部引入 CockroachDB,这是谷歌 NewSQL 产品 Spanner 的开源版本 。当时 CockroachDB 刚刚发布不久,我们就一直在关注这个项目,也开始给浪潮内部的一些业务应用推荐这个项目 。但刚开始用的时候这些业务部门多多少少会遇到一些问题,于是我们大数据团队就开始给他们做一些技术支持的工作,在这个过程中我们的团队也深入到 CockroachDB 社区参与贡献,并为社区提交代码 。”陈磊介绍 。
而到了 2019 年初,浪潮大数据团队部分已经加入云服务集团团队,面临各项业务上云的工作 。这时云服务团队就希望他们把基于 CockroachDB 的分布式数据库也上云 。而此时正好赶上了 CockroachDB 官方为了限制 AWS 等云厂商修改了项目的 License,不能把 CockroachDB 当做云服务提供 。
“虽然我们能够理解 CockroachDB Labs 的这种做法,但我们也需要维持自己的业务 。”于是团队只能基于 CockroachDB 的非商业限制版本重新分支立项,并投入大量人力来维护和开发,也就成了现在的 ZNBase 。“当然,我们在这个过程中也收到了很多用户的反馈,也根据这些反馈做了一些工作,包括 SQL 的分析性能增强和各种语法特性优化等 。”
因为 ZNBase 整个分布式数据库系统最初都是基于开源项目研发,所以在开发过程中,浪潮也积极地回馈上游的开源社区 。据统计,浪潮的技术团队为 Cockroach DB、RocksDB、kubernetes 等项目社区提交了 commit 80 多个,issue 50 多个,参与代码贡献的开发者有 30 余人 。
看好 Rust,考虑替换 Go由于 ZNBase 是基于 CockroachDB 而来,所以使用的开发语言也是该项目原本的 Go 语言;存储层则是基于 RocksDB 开发,因此使用的也是该项目原本的 C++ 。
Rust 语言近年来在社区中的声量很高,不少大厂也开始在内部大规模启用 Rust 来替换 C++ 。被问到 ZNBase 是否考虑过在未来将 C++ 替换为 Rust 时,陈磊表示:“Rust 最近确实很火 。我个人其实早在 2016 年,也就是 Rust 的 1.0 版本还没有正式发布的时候就开始关注了,它确实是一门非常有潜力的编程语言,不过我们的工作内容更多的是解决客户的实际问题 。但目前也仍然保持对 Rust 的关注 。”
陈磊认为,Rust 近年来的火爆,更多的是一些大公司在用这门语言,比如国外的亚马逊、微软、谷歌,国内的阿里、华为等,首先这些大公司自身的软件规模足够庞大,C/C++语言在内存管理方面的问题难以解决,他们就可以引入 Rust 来解决这些内存安全的坑 。
事实上,ZNBase 作为一款新的产品,在选择技术路线的时候也确实会需要考虑这种未来的趋势,但目前 ZNBase 团队还没有考虑到用 Rust 完全去重写原本用 C++ 开发的 RocksDB 。“RocksDB 本身就是一个 C++ 写的东西,除非我们发现 RocksDB 的哪些特性,或者哪些问题无法满足我们的产品需求时,我们才会去尝试改造它 。”
值得一提的是,虽然 ZNBase 团队暂时不会考虑用 Rust 去替换掉 C++,但出于对性能的考虑,他们可能会用 Rust 将 SQL 层的 Go 语言替换掉 。“Rust 确实是一门性能很高的语言,从技术规划的角度来说,后边我们是有计划把 Go 语言替换成 Rust 的,因为 Go 的性能确实没有 C/C++ 和 Rust 高,我们可能会用 Rust 替换掉 SQL 层和副本层的 GO 语言 。”陈磊说 。
浪潮的硬件优势浪潮在国内市场以服务器硬件方面的技术闻名,那么 ZNBase 团队是否在硬件方面做了特别的工作?
陈磊透露,在硬件这一块他们确实做了一些工作,比如在硬件存储方面,浪潮开发了一种新型 ZNSSD 存储设备,团队也是第一时间拿到这款设备进行了软硬件结合的适配,包括硬件底层与 ZNBase 的交互优化,RDMA 的软硬件融合等一些开发 。另外浪潮本身还有 K1 的主机服务器,这部分目前也在与 ZNBase 进行底层的适配,从而提高产品的性能和可用性等 。
推荐阅读
- 万能数据恢复大师 360数据恢复大师免费版
- 免费正规大数据查询平台 免费大数据查询平台
- 大数据查询中心 大数据查询
- 真正免费的数据恢复app 最好的数据恢复软件排名
- 免费大数据查询平台 中国国家数据中心官网
- 为什么会长黑头
- 鱼胶应该怎么泡发
- 做试管大约多少钱一次 做试管哪个医院好
- 十大高端打蛋器品牌排行榜 打蛋器哪个好
- 智能马桶盖十大名牌 马桶盖哪个牌子好
