- 数据库云平台理论与实践
- 马献章
- 3226字
- 2021-03-19 15:47:27
4.4 国产自主可控数据库云平台产品介绍
在互联网和大数据应用的冲击下,世界数据库格局在发生革命性的变化,通用数据库(OldSQL)“一统天下”变成了OldSQL、NewSQL、NoSQL共同支撑多类应用的局面。国产数据库以研制承载大数据应用的数据库云平台为突破口,以数据价值密度高的行业大数据为重点,在政府的扶持下进行发力,虚谷、南大通用、金仓通用、达梦、神州通用、瀚高数据库产品都实现了新的突破,目前在技术水平、安全性能上与国际标准差异不大,可以满足绝大多数用户的需求。近几年来,中国联通、国家电网、阿里巴巴等企业纷纷放弃使用国外大型数据库产品,转而尝试国产数据库或者开源数据库,国家统计局、气象局、全国政协等国家机关纷纷从使用国外数据库转到使用国产虚谷云数据库上,足以说明这个问题。我国作为政治大国,为了信息安全,使用国产数据库无疑是一种正确选择。
4.4.1 虚谷云数据库
虚谷云数据库是成都欧冠信息技术有限责任公司推出的一款面向海量数据处理的分布式体系、全新架构的数据库管理系统。该产品既能支持单独的OLTP、OLAP应用,也能支持两者的复杂混合型应用。其设计基于标准关系型数据库理论,同时结合了当前主流云技术的特点,对外实现了标准SQL操作语言和标准的数据库访问接口(ODBC、OLEDB、JDBC、XGCI),同时具备云环境下的弹性伸缩、水平扩展、海量存储与处理、数据高安全、系统高稳定和高可用等特点。
1.总体框架
虚谷分布式数据库是一个中央集中型的分布式系统,整个系统通过内部千兆/万兆高速网络进行连接,工作原理如图4-1所示。
图4-1 虚谷分布式数据库工作原理示意图
在分布式数据库中,通常把一个数据库实例部署在一台物理计算机上,习惯上把该物理机称为一个结点。在虚谷分布式数据库中设计有3类角色,即主控角色、工作角色、存储角色,分别执行不同的功能。一个结点可以具备其中的一类或者多类角色。其中,主控角色(Master)提供结点管理、资源管理、全局锁管理、故障处理、存储管理等功能;工作角色(Worker)负责接受客户请求、规划任务、解析任务、执行任务、权限检测等功能;存储角色(Storage)负责存储片段的存储管理功能,响应工作结点发来的INSERT、DELETE、SELECT、UPDATE等底层数据操作,以及数据片迁移等功能。
在传统的中央集中型系统中,其主控中心极易成为整个系统的性能和稳定性瓶颈,造成整个集群系统难以达到预期目标的后果。与传统架构相区别,虚谷分布式数据库通过自主创新改进了模型,有效地解决了传统中央集中型数据库管理系统存在的问题。
2.存储管理体系
虚谷分布式数据库是一个关系型行存储数据库(如图4-2所示),采用的是以Tablet为基元的、具备多副本容错能力的Shared-nothing分布式存储模型。
图4-2 虚谷分布式数据库存储模型示意图
3.封锁机制
数据库系统是一个高并发服务系统,大量的事务并发执行造成了大量资源的访问冲突,为了保证各种操作的安全性和事务的可串行性,数据库系统都会采取一系列相应的封锁机制,保证对同一对象或数据项的访问是以互斥的方式进行的。
4.分布式事务模型
为满足现代大型应用的高并发事务型访问,虚谷分布式数据库设计了分布式事务漂移模型(如图4-3所示)。分布式事务模型的特点在于整个系统没有全局的统一事务发生器,事务由各结点自己管理和维护,当需要其他结点协作时,再向远程结点发起协作请求,远程结点在收到该协作请求后,即时在本地建立代理事务环境,而发起远程协作请求者则会建立远程事务存根,这样事务就在各个需要的结点间进行了漂移与传递。当整个事务处理完成,需要提交或者回滚时,根结点事务会通知各个代理事务一起提交或者回滚;当所有代理事务都完成操作后,整个事务才算完成。
图4-3 虚谷分布式数据库MVCC示意图
5.并行运算机制
在虚谷分布式数据库中同时兼容OLTP和OLAP两类操作,对于OLTP类操作,单条命令通常涉及的数据量较少,单个结点的计算能力就远远满足业务需要了;而对于OLAP类操作,SQL命令较为复杂,通常会有分组聚合和联表查询,单条命令涉及的数据量较大,需要耗费大量的计算资源,而单颗CPU的计算能力又是恒定的,如果不采取一定的并发技术,则单条命令的处理时间就会非常长,用户体验就不好,只有调动更多的计算资源同时参与运算才能大大提高这类请求的响应能力,满足用户需要。
在虚谷分布式数据库中实现了一种基于管线流式技术的并行数据处理模型(如图4-4所示),这种模型被称为弹射式数据泵处理模型。
图4-4 虚谷分布式数据库并行运算模型示意图
6.内存管理机制
在虚谷分布式数据库中实现了一种多级、多态内存分配管理机制,用于解决上面我们提到的各种内存问题。在整个系统中存在多个内存管理器,包括网络内存管理器、事务内存管理器、元信息内存管理器、线程工作内存管理器、存储过程内存管理器以及各种结构私有的内存管理器等。
此外,虚谷分布式数据库在扩展性上既支持传统的纵向升级方式,也支持新的水平扩展方式,整个系统服务无须停机,通过简单的操作,短时间内即可完成结点的扩展和收缩,这种技术被业界称为集群热插拔技术。
4.4.2 南大通用列存数据库
GBase 8a是南大通用公司面向海量数据分析型应用领域,以列存储、压缩和智能索引技术为基础自主研发的一款性能极高的数据库产品,具有满足各个数据密集型行业日益增大的数据分析、数据挖掘、数据备份和即时查询等需求的能力。GBase 8a符合SQL92标准,遵循ODBC、JDBC、ADO.NET等接口规范,提供了完备的数据存储和数据管理功能。
1.GBase 8a技术构架
GBase 8a技术构架如图4-5所示。
图4-5 GBase 8a技术架构示意图
2.GBase 8a核心功能
(1)列存储
面对海量数据分析的I/O瓶颈,GBase 8a把二维表中的数据按列的方式物理存储于磁盘,其优势体现在以下几个方面:仅读取查询列的数据,提高I/O的效率,提高了查询性能;高压缩比,采用多种压缩技术,减少存储数据所需的空间,可以将所用空间减少很多,节省了存储的开销;当数据库的数据大小与数据库服务器内存大小之比达到或超过2:1(典型的大型系统配置值)时,列存的I/O优势显得更加明显;GBase 8a分析型数据库的列存储格式将每列数据再细分为“数据包”,这样可以达到很高的可扩展性。
2)高效的透明压缩
在GBase 8a数据库中,由于每列数据按包存储(如图4-6所示),每个数据包内都是同构数据,内容相关性和数据相似性很高,这使得GBase 8a更易于实现压缩,压缩空间通常能节省很多,这能够在磁盘I/O和Cache I/O上同时提升数据库的性能,使GBase 8a在某些场景下的运算性能比传统数据库快100倍以上。
图4-1 GBase 8a列存储数据包结构示意图
3)索引技术
索引技术包括智能索引和哈希索引两种,其中智能索引突破了传统基于行存储的索引技术的局限性,具有极强的可扩展性,是支撑超大型数据库管理系统的关键技术之一;哈希索引是基于每一条记录建立的细粒度索引,在用户进行等值精确查询时可以有效提升性能。
4)并行技术
GBase 8a实现了自动高效的并行SQL执行计划,充分利用多核CPU资源并行处理海量数据。同时GBase 8a具有智能的算法适配功能,针对不同的数据分布及特征会智能地选择不同算法进行处理。GBase 8a支持双向并行查询(如图4-7所示),能够进一步提高查询性能。
图4-2 GBase 8a并行查询示意图
GBase 8a的纵向并行将同一任务拆分成若干个线程,交给不同的CPU核并行执行,充分发挥了多核的优势。对于横向并行,前一个任务组(“扫描”)将中间结果不断传送给后一个组(“关联”),后一个组在前一个组启动后很快就可以启动操作,前一个组和后一个组之间形成一个横向的“管道操作”。
GBase 8a已在很多数据库功能上实现了高效的并行,如INSERT、INSERT…SELECT、GROUP BY、JOIN、SORT、扫描数据、投影物化等。
5)高性能数据加载
GBase 8a的列存储、多线程的双向并行加载策略以及特有的数据分块装载算法为快速的批量加载提供了强大的技术保证,并且可以让用户在数据加载完成后马上开始使用数据,无须再消耗额外的手工创建索引的时间成本,大大缩短了数据准备的时间。高性能数据加载如图4-8所示。
图4-3 GBase 8a高性能数据加载示意图
6)内存管理
GBase 8a的内存模块将数据包、大块内存、临时内存、加载内存等进行分类管理,并控制锁分离,以获取良好的并发效率。内存模块提供内部查错机制进行缓冲区上、下限检查,避免GBase 8a因占用系统内存异常而被操作系统进程强制终止。