数据库是IT技能栈中承上启下的关键一层,具有如下特性:
(1) 向上承托应用开发与运行,是应用生态关键组成之一。
(2) 向下对接硬件和OS,对数据处理应用屏蔽底层硬件复杂性和兼容性。
数据库系统是IT技能栈中的独立“小王国”,被誉为“软件行业皇冠上的明珠”。它内含了几乎全部的底子软件关键技能,是软件集大成者: OS(进线程调度和内存分配管理)、编程语言(SQL)、编译器(SQL编译和编译执行)、大规模并行计算(分布式SQL执行)、优化技能(优化器)等。数据库是数学理论和软件工程的结晶,此中蕴含了两个NP-Hard的天下级困难(优化理论和事务处理)。数据库领域也因此诞生了4个图灵奖得主。因此,数据库发展趋势与硬件演进精密相干,并受到应用的驱动。
新硬件驱动的数据库(鲲鹏+昇腾)
处理器架构的差异直接影响到数据库的工作服从。不断发展的处理器架构,驱动着数据库不断做出相应的优化。
一、处理器架构对数据库系统带来挑战与机遇
当前业界的计算机处理器分为两大系列: 通用处理器(CPU)和异构加快器。按照其用途又可分为面向数据中央服务器的处理器(如Intel Xeon至强系列CPU)、面向消费者装备的处理器(如Intel Core酷睿系列PC的CPU、高通的Snapdragon系列手机CPU 等)。数据库系统一般运行在数据中央服务器上,因此本文主要简述服务器处理器发展对数据库架构和技能发展方向带来的打击和影响。
通用处理器家属中有两个最为闻名的体系和指令集架构(Instruction Set Architecture,ISA)。
(1) 源自Intel 8086处理器的x86指令集,它是一种CISC(Complex Instruction Set Computer,复杂指令集计算机)体系布局指令集。
(2) 源自ARM (Advanced RISC Machine)公司的指令集,它是一种RISC (Reduced Instruction Set Computer,精简指令集计算机)体系布局指令集。
从历史上看,Intel的x86指令集随着Wintel(微软Windows+Intel芯片)联盟在20世纪80年代垄断PC市场而鼓起,由于Intel芯片发货量远远大于20世纪八九十年代面向小型计算机市场的RISC芯片,Intel借助市场垄断优势不断更新优化其制造工艺水平和芯片处理能力。20世纪90年代末Intel进入PC服务器市场,借助其规模优势不断侵蚀RISC小型计算机市场空间,到2010年Intel已经成为芯片霸主,垄断了90%以上天下服务器市场空间。
2010年起,ARM 公司通过只聚焦芯片指令集研发、不涉及芯片设计和制造的贸易策略,借助Android手机的鼓起,重演了Intel在20世纪80年代Wintel联盟垄断桌面机市场的故事。当前ARM 架构芯片每年发货量是Intel x86芯片发货的10倍以上,有丰富的软件和硬件生态。如何基于ARM 架构打造一款数据中央服务器芯片,成为众多芯片设计和制造企业的贸易计划。
以美国Calxeda和Applied Micro等为代表的创业公司,使用其贴近硅谷高科技源头优势,纷纷推出基于ARM 架构的服务器芯片,但由于缺乏客户和市场规模,败北收场。
美国芯片巨头高通公司,携Snapdragon手机芯片和技能优势,于2017年宣布进入ARM 服务器芯片市场,并发布了Centriq系列芯片,但同诸多创业公司一样,2018年宣布停止ARM 服务器芯片研发。
虽然在基于ARM 研发服务器芯片方面已有多家公司折戟,但Intel的成功历史仍然具有说服力,随着ARM 架构芯片生态的逐步成熟,其技能竞争力追赶Intel x86,研发投入也在不断积累和摊薄,必将成为可以替代Intel x86的新通用处理器芯片。
ARM 与x86对比如下图所示。
图: ARM与x86对比
华为借助其内部大量使用ARM 芯片积累的技能和产业化优势,于2019年正式对业界发布鲲鹏920系列服务器芯片,其关键指标如下图所示。
图: 鲲鹏920指标
华为鲲鹏芯片的发布路标如下图所示。
图: 鲲鹏芯片发布路标
ARM 处理器与传统x86处理器相比,最大特点是: 处理器核数更多。如鲲鹏920有64核,市场同样定价等级Intel 6148 Golden系列有20核40超线程,而一台服务器通常由2~4 个处理器组成。众多处理器核,对数据库系统带来巨大挑战。根据Stonebraker等人于2014 年在VLDB 发表的论文Staring into the abyss: anevaluation of concurrency control with one thousand cores,传统数据库的事务处理机制无法有效使用数十到上百个核处理能力。
2016年Anastasia Ailamaki等人在DaMon 研讨会上发表论文OLTP on a server-grade ARM : power,throughput and latency comparison,对ARM 服务器芯片上数据库运行举行详尽分析,认为ARM 处理器在功耗上具有优势,但在关键负载业务上,如何包管业务的SLA(Service Level Agreement),ARM 服务器仍有很多改进和优化空间,大概需要软硬件结合提升业务SLA。典型ARM 多核CPU 架构如下图所示。
图:典型ARM 多核CPU 架构
注: hydra是ARM 公司定义的CPU 处理器上总线名称。DIE是集成电路行业术语,是一个处理器封装中的硅芯片。DRAM 是动态随机存取存储器的英文缩写,行业术语。
信赖随着鲲鹏服务器在中国等一些国家的市场上逐步规模商用,会推动开源数据库、贸易数据库等产品面向鲲鹏芯片举行优化,甚至架构改进。如何有效办理下列问题将是推动数据库研究的关键方向:
(1) 如何有效地办理鲲鹏跨片内存访问时延对事务处理带来的影响?
(2) 如何构筑高效的并发控制原理及原子锁?
(3) 如何降低多核下的CPU缓存未命中(cache miss)率,以减少对整体性能的影响?
(4) 如何支持百核甚至千核CPU 架构?
(5) 如何高效使用鲲鹏服务器的特别硬件,例如POE(核间通信能力)队列?
二、异构处理器高速发展为数据库系统创新提出新方向
2010年起,随着大数据量和大计算量的遍及,AI(人工智能)迎来新一轮复兴。谷歌公司在这一轮AI浪潮中饰演了至关重要的脚色,谷歌公司收购的DeepMind公司于2014年发布AlphaGo,并在随后的人机竞赛中击败人类,是本轮AI浪潮的标志性事件。谷歌公司认为AI将成为未来的主导性技能,并努力投入相干技能研发,于2016年发布了面向AI的张量处理器(Tensor Processing Unit,TPU),极大地加快了以线性代数计算为中央的现代AI算法。
谷歌公司发布TPU 之后,众多芯片厂家也随之发布面向AI的加快芯片,华为于2019年发布了自研的达芬奇架构的神经网络处理器昇腾系列芯片,其架构如下图所示。
图:昇腾架构
注: BUS表示计算机系统中总线,用于互联芯片上多个子单位,是行业术语。Vector是矢量处理单位,用于将多个同一数据范例封装的数据包一次性处理,如(1,3,10,11)。Cube是矩阵处理单位,用于对矩阵数据布局举行线性代数操纵,如点积、加减等。Cache是处理器上的高速缓存。Scalar是标量处理单位,用于对简单数据布局举行计算,如Int 1,Float 0.35等。HBM 是高带宽内存,行业术语。Peripheral/IO 是周边装备总线,用于将处理器和外部存储器等器件互联。FHD Video是高清视频,Image Codec是图像编解码器。
昇腾芯片当前有两个系列,分别为面向推理计算场景的Ascend 310系列和面向练习场景的Ascend 910系列,其规格如下图所示。
图:Ascend 310、Ascend 910规格
注: DaVinci是华为昇腾处理器的芯片架构名称。FLOPS是指处理器每秒能处理的浮点数。EUV是芯片制造工艺,其接纳极紫外线光刻技能。
昇腾芯片与业界顶尖厂商的AI处理器性能对比如下图所示。
图:昇腾芯片与业界芯片对比
AI处理器芯片的遍及,使数据库研究社区和厂商都在思考一个问题: 如何使用AI处理器芯片巨大的算力优势,来资助数据库系统运行得更快、更强、更好? 如何使用AI芯片来提升数据库的智能性和高效性?
当前主要的研究方向有AI4DB和DB4AI两个。
1. AI4DB(AI for DB)
在传统数据库中,由于使用大量开导式算法,无法针对众多用户现实场景定制化开发,一般通过数据库系统预定义参数组合或可调治参数开关等方式,由DBA 根据经验举行调解。AI算法与传统开导式算法的最大差别在于其可以根据历史数据学习,并根据现状在运行时举行动态调解。因此如何使用AI算法替换开导式算法,办理传统数据库的痛点问题成为研究的热点话题。典型方向有:
(1) 优化器: 传统代价优化基于采样统计信息举行表连接规划,存在统计信息不准(基数估计问题)、开导式连接规划(连接顺序问题)等老大难问题。
(2) 参数调优: 数据库有数十甚至上百个可调治参数,此中很多参数是一连值调治空间,依靠人工经验无法找到最优参数组合。
(3) 主动化索引推荐和视图推荐: 数据库有很多张表,表中有很多列,如何主动构建索引和视图来提升数据库的性能是需要思量的问题。
(4) 事务智能调度: 事务的并发冲突是OLTP数据库的难点,可以通过AI技能举行智能调度从而提升数据库的并发性。
2. DB4AI(DB for AI)
AI数据处理流程一般可分别为四个阶段: 练习数据管理准备、模型练习、模型管理和推理应用,如下图所示。
图:AI数据处理流程
(1) 练习数据管理准备工作占据了AI全流程中80%以上时间,数据科学家和软件工程师花费大量精力与数据标注、数据精确性、数据一致性、数据完备性、练习结果可重复性等问题打交道。使用定制化、拼集型的数据存储办理方案,缺乏高效的AI练习数据管理系统是问题的根源。数据库系统半个世纪的研究成果能有效办理该领域的问题。当前已经有众多公司基于数据库系统启动相干系统的研发,如苹果公司的MLDP系统。
(2) 当前AI模型练习主要以AI计算框架为主,但其在迭代计算中产生大量相似、冗余的参数、模型等数据,缺乏有效的模型管理,导致模型练习中不断重复计算,模型练习服从大打折扣。如何使用数据管理的方法,如物化视图、多查询优化等技能,对练习中产生的模型数据有效管理、实现存储转换计算、加快AI练习计算成为研究的热点,如马里兰大学的ModelHub等项目。
(3) 模型推理计算是将练习好的模型摆设到应用环境中的过程,如何减少推理计算的开销、降低推理延迟、提升推理的吞吐量是系统开发者关注的重点。当前AI计算框架缺乏针对以上诉求的优化,使用传统数据库优化器的技能优化该过程是研究热点,如伯克利大学的Model-less Inference等。
因此使用数据管理技能对AI流程举行全栈优化是数据库研究者需要思量的问题。对于企业用户来说,仅仅优化AI流程的服从是远远不够的,因为:
(1) 当前AI应用仍处于早期阶段,搭建一套AI应用系统不光成本高昂,而且极为复杂,也难以在摆设后继续开发业务。如何构筑一套开箱即用、业务领域专家也能轻松使用的AI应用系统是当前企业对AI系统厂商提出的庞大挑战。
(2) 从历史上看,当前的AI应用与20世纪60年代数据库系统诞生之前的情况极为相似。在数据库系统内构筑一套端到端、全流程的AI处理系统,并提供类似SQL一样的声明式开发语言,将是办理企业用户应用AI门槛高困难的精确方向。
综上所述,DB4AI是用数据库技能打造一套端到端全流程AI系统的研究方向,是AI应用平民化的必经之路。
|内容来源:书籍《openGauss数据库核心技能》
获取更多数据库相干资讯,请搜索并关注微信公众号:Gauss松鼠会 |