随着数字化发展,高并发、低时延的应用需求日益增强,客户对信息系统的计算能力要求越来越高。由于摩尔定律减缓及存储能力得到极大提升,传统信息系统的计算力将面临新的挑战。数据库与CPU、操作系统一直被认为是IT领域的三个核心,数据库是关键信息基础设施重要组成部分,是承载与加工数据的关键,如何提升数据库算力以满足数字化时代对应用快速响应的需求也将成为数据库发展的重点。
我们知道,在计算机硬件系统中,CPU最快,一个时钟周期不到0.5纳秒,访问内存速度在100纳秒级别、访问固态硬盘约50-150微秒、访问硬盘约1-10毫秒。显然,内存访问速度依然快于固态盘、硬盘千倍、十万倍。所以,CPU直接访问内存是减少CPU对硬盘访问、实现数据库应用低时延的有效办法。
据统计(https://jcmit.net/memoryprice.htm),内存器件的单位价格在逐年快速下降。从 1970 年代至今,内存每兆字节的价格已经下降了 9 个数量级,DRAM内存芯片价格在2022年上半年同比就跌了30%,目前比较便宜的16GB DDR4内存仅需69元,而这种内存在几年前还是3、4百元。由此可见,在数字化应用发展需要更高的算力的同时确保算力提升的重要组成部分的内存,其价格已经在惊人的下降。这两种趋势的并存,不得不让我们相信,充分利用内存技术是提升数字化应用算力的有效途径。
内存数据库是一种主要依靠内存来存储数据的数据库管理系统,内存数据库把整个数据库放进了内存中。 而传统数据库是使用磁盘读写机制,通过增加内存缓冲池,或者共享内存技术,达到最小化磁盘访问。 相较于传统数据库,内存具备更极致的读写速度,性能比传统的磁盘数据库有数量级的提升。
从下图可以看出,内存数据库与传统数据库对数据访问是有显著区别的,基于内存数据库的查询,无需判断数据是否已经在内存中,无需在内存和磁盘之间换入换出数据。传统磁盘数据库系统的数据组织、访问方法、查询处理算法的设计都针对减少磁盘访问次数与有效利用盘存储空间,甚至牺牲CPU时间来减少I/O次数(如查询处理有大量中间数据),而内存数据库的设计则主要考虑如何有效地利用CPU的时间和内存空间。
图1:内存数据库工作原理
内存数据库充分利用内存技术,极大降低CPU访问存储的时延,内存数据库和传统数据库一样,在异常掉电时可以保证数据得持久化。因为,内存数据库仍使用持久性存储在发生故障时提供回退。日志按数据库事务捕获所有更改,数据和撤消日志信息在常规保存点-Save Point自动保存到磁盘,在数据库事务的每个 COMMIT(等待磁盘写入操作结束)之后,日志也会连续同步保存到磁盘,发生电源故障后,可以像基于磁盘的数据库一样,通过重播自上次保存点-Save Point以来的重做日志,重新启动数据库,正常返回到其上一个一致状态。
最近几年,内存数据库技术发展很快,内存数据库技术也趋向成熟。目前比较常见的内存数据库有美国Oracle公司的Timesten、德国SAP公司的SAP HANA,以及国内科蓝软件的SUNDB数据库等。事实上,SAP HANA与科蓝软件的SUNDB数据库技术上是同源的,但各自都在新的技术路线上进行发展递进。科蓝内存数据库经过多年的技术积累,并会同国内顶尖研究机构进行升级,已经完全融入了国产化信创生态系统。
内存数据库特有的内存计算机制可以确保数据库核心事务处理的延时短、交易稳定,从而更加适应交易型数据库需要具备的特性,而这也是国产化数据库的核心难点所在。相对于目前市场常见的分析型数据库,交易型关系数据库技术门槛更高,金融、电信、能源交通等行业的关键领域离不开交易型数据库,这些领域直接关系到我们国家的信息安全。科蓝软件SUNDB数据库是100%拥有知识产权国产化数据库,是我国目前为数不多的高性能、高稳定、高可靠的交易型关系数据库。
综上所述,一方面,随着移动互联网飞速发展,高并发、低时延的应用需求强劲,另一方面,内存硬件价格多年来在不断下降,内存变得更加“平民化”,已经不再是“奢侈品”。内存数据库由于省去了磁盘读写的开销,在性能上比基于磁盘存储的传统的数据库有数量级的提升,今后革命性创新的CXL协议将使内存数据库的发展优势更加凸显。故此,我们坚信,内存数据库发展是数据库技术发展的趋势,是突破企业关键基础设施算力瓶颈的重要途径。




