写点什么

传承 or 创新 ?解密分布式数据库自研修炼之路

  • 2019-04-02
  • 本文字数:2529 字

    阅读完需:约 8 分钟

传承or创新 ?解密分布式数据库自研修炼之路

一直以来,数据库的核心研发团队都十分神秘,作为隐藏在幕后的隐士高人,他们对数据库研发的心得是什么?他们又对数据库的未来发展有什么看法呢?本文就由巨杉数据库核心技术研发团队的“老司机”,分享分布式数据库的自研修炼之路。

数据库研发的最难点——技术基因与创新

数据库软件,特别是一款真正企业级的产品,并不是大家想象中仅开发一款软件那样简单。


追溯数据库技术的发展历程,数据库(database)一词最早流行于系统研发公司的技术备忘录中,到目前已有 40 多年的历史。在这期间,数据库软件/平台逐渐成为一个功能复杂、架构庞大、安全要求很高的庞大软件产品体系。因此,在此发展基础之上,技术基因传承技术创新成为数据库技术的最关键两个点,但这两项关键点恰恰是数据库研发的最难点,为什么这么说呢?


从应用层面上讲,大部分用户是从 30 年前就开始使用数据库的老客户,例如银行、政府等。他们通常无法承担全盘迁移的风险,因此在业务技术架构上,难免保留了各个时代的历史遗留。比如,北美一些银行的核心 IT 系统,直到目前仍然运行在 40 年前的技术平台之上。所以,这也要求企业级的数据库需要具备很强的兼容能力,不但可以保证旧业务的运行,还可以持续进行技术创新。


同时,基础软件特别是数据库的研发,和其他应用软件有很大的不同。其中最大的一个不同点就是开发语言开发模式


从计算机的发展来看,C 语言是最面向机器语言(汇编代码)的,原则上每一行 C 代码都可以很精准地映射到一些汇编指令上。因此,C 语言对操作系统底层的操控最为精准。而 C++则是在 C 语言之上发展起来的面向对象语言,虽然在底层编程中 C++的高级特性被使用得非常少,但是其设计模式对于模块化开发很有帮助。因此,使用 C++既可以兼顾对操作系统底层最精准的把控,也可以将一些面向对象的理念融入代码中,在复杂系统构建时起到重要作用。


而如今,一些新型开发语言则不是面向对象的,所以在设计模式上不适合大型复杂系统的开发。同时,这些语言简化了很多 C/C++里最为重要的指针概念。而对于大部分能力不高的程序员或者没有非常完善测试框架的项目,不能完美把握指针这类高级特性,则会在大型项目开发中经常造成内存泄露和崩溃漏洞等问题。


但是,对于有着 DB2 数据库内核研发经验的巨杉数据库而言,从人员能力,到代码质量管理,到测试框架的完善都能够完美驾驭这类高级特性,能够最大程度挖掘出操作系统和数据库底层的性能与处理能力。

数据库研发团队—技术基因与积累

IBM 是最早提出“关系型数据库”这一概念和理论体系的公司。从技术上看,传统三大关系型数据库已经具有很深远的技术储备,而 DB2 是三大传统关系型数据库中唯一的分布式产品。


在 DB2 工作的十几年里,给我感受最深的就是其技术底蕴和沉淀。比如,在 Unix 真正支持线程机制之前,针对多线程模型,甚至是针对不同的硬件设备,DB2 早已使用汇编语言实现了逻辑线程的切换和调用,这些机制在当时其实是相当领先的。另外在研发团队上,IBM 的实验室也是卧虎藏龙。那些最初使用汇编语言开始的技术专家们,也一直参与数据库、操作系统和编译器底层的研发工作,可以说正是他们创造了最早的关系型数据库的概念,也是他们真正把数据库打造成为一个通用的软件平台。


因此,数据库核心研发团队的基因很重要。就像上面提到的技术复杂度和产品历史跨度问题,新一代基础软件产品团队要围绕老一辈的“老司机”构建。而 DB2 团队就是依靠多位具有传统数据库开发经验的“老炮儿”,实现了 IBM 数据库产品技术经验和基因的沿袭。


然而,国内基础软件的人才积累还不够,目前还没有完全形成基础软件领域的武林门派,这也是近年来基础软件和 AI 领域国内企业疯狂往外招人的原因。


而巨杉数据库团队拥有以王涛为代表的很多 DB2 团队的核心技术专家,以及来自华为的技术核心团队成员,是技术基因和技术创新很好的结合。

数据库发展方向

对于大部分应用程序来说,账户信息、配置信息、维度表这类数据量相对比较可控,真正爆炸性增长的是流水类数据。一个应用程序里面绝大部分表不会太大,真正特别大使得传统关系型数据库存不下的表相对来讲数量都是可控的,因此有很多 workaround 都可以搞定这个问题,这也是为什么传统以来大家用分库分表虽然麻烦,但也不是解决不了应用问题。


所以,数据库真正面临的痛点是“微服务”下,数据服务的资源池化。


应用程序在从传统烟囱式构建,向微服务转型的过程中,在每一个微服务都放上一个独立的数据库已经是不可能的事情了。这种情况下,数据服务资源池需要直接面向上层成百上千个,来自不同开发商、不同团队的开发能力不一、应用类型不同、SLA 安全级别不同等等的各类需求。


因此,资源池必须拥有弹性扩张、资源隔离、多租户、可配置一致性、多模式(支持各类 SQL 协议)、集群内可配置容灾策略等一系列功能,同时每个数据库实例的计算和存储能力需要满足能够无限扩张的条件,毕竟有些微服务可能会涉及到极多的流水数据,不能限定每个数据库实例使用的资源仅局限于一台物理设备。


所以说,单纯为了分布式的 OLTP 只是解决了不构成刚需的问题(分库分表早可以解决),但是在微服务应用开发的环境下,数据库更是要从资源池化的角度对上层提供服务,同时资源池中的每个数据库实例内部也要支持分布式交易等一系列特性,做到与传统数据库的全兼容。

巨杉数据库新发版本:性能提升 2-3 倍

近期,巨杉数据库会发布一个新的版本,不仅在 OLTP 场景下性能会有大的提升,同时也对于 SQL 处理能力上有很大提升。


另外在分布式的交易型业务下,整体性能提升将比现在版本有 2~3 倍的提升,对比同类产品性能将高出 5~6 倍,也请期待巨杉数据库接下来的系列技术专题和技术活动。


虽然巨杉数据库团队很多都是来自 IBM、华为的“传统企业级 IT 人”,大家都习惯低调地隐藏在幕后,但是现在是技术圈一个变革的新时代,SequoiaDB 巨杉数据库已经开源了,所以今后也会让巨杉数据库团队的技术大牛们多多参与社区活动,分享我们做数据库核心研发的心得,也和大家一起进步。


作者介绍:


Danny Chen,巨杉数据库核心研发成员,资深数据库架构师。超过 20 年的数据库核心研发经验,是一名数据库资深工程师和架构师,曾经作为 IBM DB2 内核研发团队成员参与了 DB2 ,DPF 等产品的架构设计和研发工作。


2019-04-02 10:062356

评论

发布
暂无评论
发现更多内容

京东图片搜索商品拍立淘接口(JD.item_search_img)

tbapi

京东API接口 京东图片搜索接口 京东拍立淘接口

有了 BI 为什么还需要指标平台

Aloudata

数据分析 BI 指标管理 指标平台 指标开发

低代码有多好操作?大概有手就行

秃头小帅oi

这个冬天,我们一起升级吧

最新动态

不懂代码的人也可以5分钟完成一个简单的支付页面(含使用教程)

腾讯云 AI 代码助手

百度联合研究会打造“文心快码”无障碍版本,助力视障开发者就业无“碍”

信息无障碍研究会

产品 程序员、 开发. AI编程 无障碍适配

营销场景中,如何让你的短信不被识别为垃圾短信

京东科技开发者

DAPP项目的外包开发流程

北京木奇移动技术有限公司

区块链技术 dapp开发 软件外包公司

web3项目外包的上线部署

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

你不知道的 7 项 CSS 新功能

伤感汤姆布利柏

Cellebrite Inseyets PA 10.4 - 取证数据分析软件

sysin

Inseyets PA

网页多模态建模思考

百度Geek说

人工智能与区块链的碰撞:双剑合璧的创新前景

天津汇柏科技有限公司

区块链 AI 人工智能

RAG+Prompt,AI编程从需求到代码

腾讯云 AI 代码助手

揭秘2024年B站最火RAG视频是怎样炼成的

Zilliz

向量数据库 rag 鲁迅 文本分块

在线文档云平台(源码+文档+部署+讲解)

深圳亥时科技

华为天气年度榜单出炉,带你了解2024中国城市天气情况

最新动态

数据科学家成长路线图

俞凡

人工智能 算法

C5GAME 游戏饰品交易平台借助 RocketMQ Serverless 保障千万级玩家流畅体验

阿里巴巴云原生

阿里云 RocketMQ 云原生

DAPP外包开发的安全性

北京木奇移动技术有限公司

dapp开发 软件外包公司 web3开发

2025年用上低代码 难以想象会有多“香”

高端章鱼哥

AI算力要变天了?一文搞懂ASIC和GPU

Finovy Cloud

gpu 算力 AI算力 ASIC

当下热门火爆婚恋交友系统app软件源码,陌生人社交交友系统

DUOKE七七

php uniapp 婚恋交友相亲APP小程序

「数据密集型应用系统设计」读后感与团队高并发高性能实践案例

京东科技开发者

云智慧ITSM:以技术创新引领行业智能化应用

云智慧AIOps社区

ITSM ITSM软件 IT服务管理 IT服务台

商品管理:服装品牌的利润引擎与智能化升级

第七在线

QCN9024 WiFi 6E Card with ath11k Support Exploring the Versatility

wifi6-yiyi

ath11k

SQL大宝剑-已燃尽所有SQL的理解

京东科技开发者

DApp外包开发的框架

北京木奇移动技术有限公司

区块链技术 dapp开发 软件外包公司

主打一个“小巧灵动”:Vite + Svelte

vivo互联网技术

性能 vite Svelte 研发效率 轻量

平凯星辰亮相开放原子开发者大会,TiDB 荣获年度活跃开源项目奖项

PingCAP

开源 分布式 TiDB 数据库、

传承or创新 ?解密分布式数据库自研修炼之路_数据库_Danny Chen_InfoQ精选文章