GBase新闻
南大通用:元宇宙数据库技术展望
元宇宙数据库重要特色
无论是现实还是虚拟世界,数据库都是重要IT基础技术支撑,为了维系元宇宙的日常运作,数据库为数字孪生世界的镜像和混合现实世界中的虚拟扩展提供数据平台支撑。元宇宙中的一切虚拟概念,不论其描述的是具体对象,还是抽象对象,以及所有与元宇宙对象发生关联的现实对象,都可能在数据库中有所体现。元宇宙下的数据库将面临新的技术挑战。
在元宇宙虚拟世界,其数字化程度远高于现实世界,经由数字化技术勾勒出来的空间结构、场景、主体等,实质都是以数据方式存在的,需要实现主体数据化、场景数据化、行为及交互行为的数据化。因此,元宇宙的虚拟世界,需要比现实更多的数据支撑。虽然这些数据并不全存储在数据库中,其它系统也会承担元宇宙的数据存储,但元宇宙虚拟世界的空间结构、场景、主体等的基础数据、关联数据、活动及运行数据、发展变动数据需要存储在数据库中。所以,元宇宙下的数据库至少应该支持超大数据规模、数据多样化及多种数据处理模式的要求。
元宇宙虚拟世界中,数据类型各种各样。经济系统中需要记录各种交易信息,这种类型多为结构化数据,适合交易型关系数据库;各种实体及其经济活动存在各种直接和间接关系,这种关系错综复杂,适合图数据库;各种感知设备以及数字孪生产生的各种流数据,适合流数据或实时数据库;虚拟世界的实体对象的各种活动轨迹及位置需要适合GIS空间数据库;各种文档、图像、图像、声音、视频等还可能适合包括文档数据库等其它数据库。
元宇宙下,数据类型复杂、处理方式多样。由于各种类型数据库各有所长,分别可以高效应对不同的场景,很难只使用一种数据库完成应对各种应用场景。但使用一个统一的数据库语言,或者每种类型数据库一个统一数据库语言是可行的。统一语言可以建立在统一虚拟逻辑层上,由虚拟逻辑层下的具体数据库引擎执行操作。
元宇宙对数据库厂家来说不仅仅是新的挑战也是难得的机遇。为了更有力支持元宇宙,一方面,数据库产品技术需要进一步突破传统需求;另一方面,数据库产品需要有更强的生态融合能力。目前,我们还是看好国产数据库厂商在这些方面潜力。以南大通用公司为例,最近几年,南大通用在产品研发技术上不断完善并超越自己。其分布式数据库产品已通过中国信通院大数据产品大规模能力测试,集群规模达到4096节点并创国际记录。南大通用虚拟化数据技术,可以实现跨引擎异构数据库,包括与图数据库、流数据库及更广泛的其它数据库的融合;另一方面,南大通用也在生态融合上不断努力,目前已经完全融入国产化软硬件系统生态。
图1 国产化数据库系统生态示例
国产化数据库厂商的这些能力,说明了国产化数据库已经为元宇宙发展做好了积极的准备。
元宇宙数据库重要特色
(1)支撑区块链
为了构建经济系统,元宇宙需要依靠区块链技术。区块链本质上就是一个去中心化的账本数据库,其底层通常为Key-Value的NOSQL数据,区块链分布节点数据由共识算法来维持各个节点的账本数据的一致性,由密码算法实现各个区块之间的链接,实现数据的签名和确权,由账户模型来表达这个数据是由谁产生的,谁发起的,以及流转给谁的,由脚本系统来具体驱动这些脚本数据的验证,执行等操作。
区块链数据库能够保存现有相关的信息以及之前所有信息,生成历史数据库,它们像自己历史上不断扩展的档案一样成长。通常,随着元宇宙中依赖区块链的数字化交易增加及历史数据的累积,区块链账本之间的数据同步延时会逐步增加,系统整体性能逐步下降,因为区块链数据库与分布式数据库有所不同,分布式数据库每个节点只存储数据库的部分数据,而区块链每个节点存储完整数据库。所以元宇宙下,高频使用且不断扩展的区块链的数据库将面临性能考验。
以下是区块链账本数据库示例:
图2 区块链技术的数据库记录
(2)辅助数字孪生
元宇宙中包含了实体世界和的虚拟世界的映射和交互,这也是数字孪生,数字孪生首先面向物的。数字孪生需模拟完整、广泛的虚拟物件,数字孪生可以基于VR/AR设备、5G、6G、云端边缘、智能传感器、机器视觉等实现虚拟世界活动控制、设备运行维修等。数字孪生也可以很好提供设备开发仿真、能源监控及预测性维护,厂商或将能在工业元宇宙共通平台上建立虚拟工厂,串接各厂区与跨企业合作互通,拥有庞大数据的产业大厂。
由此可见,元宇宙下,有大量数据来自智能穿戴设备、五官感应设备、IOT系统,包含现实与虚拟设备运行及设备运行状态数据。这种数据处理实时性要求很高,所以,元宇宙下的数据库,将面对大量高频度实时数据,实时数据存的时间窗口大小直接影响需要为实时数据提供的存储空间大小。
实时数据库的一个重要特性就是实时性,包括数据实时性和事务实时性。数据实时性是现场IO数据的更新周期,作为实时数据库,不能不考虑数据实时性。事务实时性是指数据库对其事务处理的速度。它可以是事件触发方式或定时触发方式。事件触发是该事件一旦发生可以立刻获得调度,这类事件可以得到立即处理,但是比较消耗系统资源;而定时触发是在一定时间范围内获得调度权。作为一个完整的实时数据库,从系统的稳定性和实时性而言,必须同时提供两种调度方式。
图3 数字孪生实时数据库交互
(3)三维可视化
一图胜千言,传统数据库已经为可视化打下良好基础,尤其是BI(商业智能)可视化,已经为管理决策提供了非常直观的效果。由于元宇宙是与现实世界平行的虚拟世界,现实世界存在的人、物、山、川、河流,现实世界的各种实体都可能需要在虚拟空间出现。
虚拟空间需要展现大量三维动态实体,为了模拟真实世界,传统的与二维图形、图像并不能满足元宇宙的需求。而仿真成像的三维图像将会在元宇宙中大量使用。游戏中我们常见到的城市、沙漠、山地、丘陵、林地、海洋等都可以作为三维模型。通过模型库可以展示较强真实感的人物、建筑、树木、道路等。
图像一般分为两类——矢量图和位图。以照片或图片为例,图像由不同颜色的点阵组成。这叫位图,我们看到的基本都是它,我们常见的 *.bmp ; *.jpg 等等都是。另一类图形就像有些工程设备图和卡通漫画等,它们主要由线条和色块组成,用代数式来表达每个元素。然后把这些元素的代数式和它们的属性存储,这样生成的就叫矢量图。简单的一句话就是:这种图形效果是通过公式计算获得,并可无限放大不失真。目前已有技术可通过基本图像素材加机器学习或矢量计算辅助生成的三维动态图像。其中,用于深度学习算法训练的高逼真度仿真图像已经取得成效,但占用资源较多、影响IO,而基于矢量技术的三维图像比较成熟而且占用资源少。
矢量图是面向图像或绘图图像,矢量图可以根据几何特征绘制,并由算法计算生成。矢量图主要元素有点、线、矩形、多边形、圆和弧等,它们是通过数学公式计算出来的。矢量图可以做到无论放大还是缩小,颜色边缘都非常平滑,非常清楚。矢量图优点是占用存储空间小、可编辑对象的图像元素、放大或缩小的图像不影响图像的分辨率,图像的分辨率不依赖于输出设备。矢量图技术已经很成功应用在空间地理数据库,目前,三维模型数据库输出格式包括3D MAX、FLT、OSG等,并支持多种地形数据格式导入。模型数据库可以渲染出高仿真实体,对算力要求比较高。相信未来元宇宙也会大量使用基于矢量技术的三维图数据库。
图4 三维空间数据库结构示意图
元宇宙数据库关键技术
(1)分布式技术
元宇宙的概念从建立就决定着它一定是以去中心化的方式运行的,去中心化,这个虚拟空间不以某个服务主体的主观意志为转移,是一个由全体独立个体共同经营维护的空间,需要以去心中化的平权式的共享机制和共治机制为保障。
在去中心化的运行机制下,分布式数据库将是元宇宙的重要要求。分布式数据库的可扩展性可以满足存储不断增长的需求。但由于事务型业务有强一致性的要求,现实世界中分布式数据库各节点之间为了保证一致性,需要限制分布式写的节点,也就是并发写需要排队,从而带来了数据库扩展性和性能的局限。随着元宇宙全数字化环境的发展,通过对强一致性的灵活处理,分布式数据库的规模将能满足元宇宙的发展需求。
分布式事务型数据库在异常情况中保证事务ACID的特性的核心技术主要为二阶段/三阶段提交技术,又称为2PC/3PC(phase commit).
二阶段提交原则是在分布式系统中引入一个协调角色,区别于普通的事务参与者,他是直接响应用户的节点,将一个完整事务切分为分布式事务给与参与者。这样参与者在执行事务的过程中,将原来一次执行完成的提交操作做一次预执行或者执行准备,这样即使参与者在提交事务过程中如果出现异常,可以向协调者报告并让他告知其他参与者也对这笔操作进行失败处理。
三阶段提交在二阶段提交当中在第一阶段与第二阶段之间插入了一个准备阶段,使得原先在两阶段提交中,执行者在预执行过程中,由于协调者发生崩溃或错误,而导致参与者处于无法知晓是否提交或者中止的“不确定状态”所产生的可能相当长的延时的问题得以解决。
由于关系数据库对一致性要求 很高,所以分布式数据库是分布式数据库的发展重点和难点。为了实现分布,需要对数据库进行切分,通常由水平切分和垂直切分,数据按照业务逻辑水平切分,性能高低主要体现在数据存放方式和业务的贴合程度上,而按照数据容量切片存储,性能高低主要体现在对数据块(片)调度的高效性上。
图5 分布式数据库切分方式示意图
(2)云化技术
云计算其实就是一种通过虚拟化技术实现大规模计算的架构和方法。在云计算中,资源和功能都以服务的方式提供出来供用户使用。云计算将资源以抽象的方式或者逻辑的方式进行表示,通过虚拟化可以将不同服务器的资源以统一的整体的形式进行提供。
元宇宙是高度虚拟化世界,需要相适应的虚拟技术支撑。云数据库需要建立在云计算技术之上。云数据库可以随着云资源的扩充,其所属的计算和存储都随之扩展。为此,云数据库首先需要具备存储与计算分离架构,传统的存储计算一体化以及共享存储的数据库都无法满足云数据库的需要。
云数据库架构示意如下:
图6 云数据库架构示意图示意图
其中:
数据库接口代理:实现统一的数据访问接口代理,业务组件或模块通过接口代理来访问底层的数据库服务。在接口代理的实现过程中需要考虑数据库连接池的管理,数据库负载均衡等相关内容。
SQL解析:负责解析客户请求的SQL语法,需解析出语句的读、写特性,并根据语句特性进一步解析其中的schema、表、字段、条件等信息。如:新增语句需解析出所插入字段的字段名和值;查询、修改、删除语句需解析出Where条件中包含了哪些条件表达式。
数据路由:负责根据语法解析的结果,在规则池中查找与之相关的规则。找到后将解析结果代入规则中进行运算,得到语句需要转发的具体物理数据库节点。而对于规则池则主要包括语句的读写规则,水平拆分的分片规则,数据对象的访问规则等。
多租户管理:可以实现在数据库实例和数据库Schema两个级别的多租户共享和管理功能。数据库层共享以数据库为基本的划分单元,即为每一个租户创建/分配一个数据库实例,共享存储和服务器。Schema层共享以User/Schema为基本的划分单元,即数据库实例已经创建,在此基础上为每一个租户创建一个Schema,多租户之间共享存储、服务器、操作系统服务和数据库实例。
管控代理:为实现对整个数据库资源池的集中管控和性能监控,需要对每一个数据库物理节点放置数据库管控代理。管控代理一方面实现对物理数据库节点的统一操作入口,一方面实现对资源的实时监控和性能数据采集。
管控功能:提供对服务集群中的不同数据库服务节点进行节点的添加、删除、启动、停止等功能。完成服务集群的伸缩;完成节点信息的采集,以及针对节点进行的手动操作的日志记录;完成和节点代理服务进行交互的工作;完成和监控系统进行交互;共同完成服务的管理和监控功能。
(3)安全隐私
元宇宙中,每个组织和个人都会拥有自己数据,数据安全与隐私将是数据库必然考虑的重点。除了区块链外,数据库本身技术也要采取必要措施保证数据安全与隐私。
元宇宙数据库安全及隐私主要考虑技术有:
安全通信:使用安全套接层协议,通过使用加密算法保护的链路层,并对服务端和客户端进行双向验证,保证客户端和服务端之间通讯的保密性和完整性。同时,安全通讯也对高可用环境下的连接管理器和客户端、服务端间的通讯,服务端和服务端间的通讯进行了安全保护。
身份认证:支持常规数据库用户口令认证方式,同时支持插入式身份验证模块、轻量级目录访问协议、单点登录用户对数据库访问的验证集成。
角色管理:预定义了数据库安全管理员,数据库审计管理员,数据库管理员等默认角色,也可以由系统管理员根据实际业务需要创建角色和分配用户。
自主访问控制:自主访问控制粒度分为数据库级、表级、字段级。数据拥有者和其指定的用户可对不同粒度对象设置不同的权限管理。
强制访问控制:使用基于标签的访问控制系统以实现强制访问控制要求。安全标签由一个或多个带顺序的数列型构件、无需的集合型构件、表示层级关系的树型构件组成。强制访问控制力度达到行级。
安全存储:存储数据的保密性是安全数据库的最重要的功能之一。数据管理中的数据加密采用库内加密的方式,在数据库管理系统的内核存储引擎上进行数据加解密处理,即数据在进行物理I/O时完成加/解密工作。由于数据页只有在真正进行I/O时才进行加解密操作,从而对于合法用户来讲是完全透明的,因此也可以称为透明存储加密。加密算法及秘钥由符合国密标准的硬件加密卡提供。
安全审计:由安全操作员进行审计掩码的设置,可针对每个用户、全局分别进行审计掩码的设定,可设定要求、排除两种审计掩码的设定,审计掩码可对160种审计事件进行组合。由审计操作员执行审计的启停和配置管理,并对审计记录进行分析。
图7 数据库安全隐私技术示意图
(4)硬件计算加速
相对现实世界,元宇宙更需要计算能力的提升。比如,大量虚拟实体的动态生成、大量的AI分析,还有元宇宙的实时响应,都需要大量的算力。元宇宙的大数据存储可以采用分布式存储技术,通过增加存储节点解决。但计算能力仅通过增加节点并不够,比如数据库的分布并行处理,由于受到一致性的约束,有时候交易记录并不能都通过增加节点提高效率,还有一些无法切分的实时任务也不能依赖增加节点解决实时响应问题。所以,类似这些问题,还需要借助硬件技术共同解决。
解决数据库计算能力除了软件和算法优化外,对于密集型计算还可以通过硬件技术来提升算力。使用内存数据库是一种办法之一,但仅使用内存数据库还存在局限性,比如存储容量不足,而且算力增加很有限。采用并行异构计算技术提升计算能力是一种经过验证可行的办法。目前,一种比较有效的硬件加速办法方法是在CPU的基础上,增加GPU(图形处理器)和FPG(现场可编程逻辑门阵列)实现并行异构计算。
GPU主要擅长做类似图像处理的并行计算,图形处理计算的特征表现为高密度的计算而计算需要的数据之间较少存在相关性,GPU 提供大量的计算单元(多达几千个计算单元)和大量的高速内存,可以同时对很多像素进行并行处理。
GPU的设计出发点在于GPU更适用于计算强度高、多并行的计算。GPU的逻辑控制单元相比CPU简单,所以要想做到指令流水处理,提高指令执行效率,必然要求处理的算法本身复杂度低,处理的数据之间相互独立,所以算法本身的串行处理会导致GPU浮点计算能力的显著降低。
FPGA作为一种高性能、低功耗的可编程芯片,可以根据客户定制来做针对性的算法设计。FPGA由于算法是定制的,所以没有CPU和GPU的取指令和指令译码过程,数据流直接根据定制的算法进行固定操作,计算单元在每个时钟周期都可以执行,所以可以充分发挥浮点计算能力,计算效率高于CPU和GPU。
基于GPU和FPGA硬件加速技术架构示意如下:
图8 GPU/FPGA异构计算示意图