>>返回主页
中国信息通信研究院王妙琼:内存数据库白皮书

2019-06-04 14:10

1559636167700.jpg

  各位尊敬的领导、嘉宾,大家下午好,我是中国信息通信研究院的工程师王妙琼,下面由我为大家介绍一下“内存数据库白皮书”编写情况。

  先讲一下我们为什么要做这个内存数据库白皮书,最近十年间,大家可能已经有切身的体会,随着移动互联网的飞速发展,催生了一大批新兴手机端的移动应用。可以看一下具体的例子,像在线直播,根据公开的数据,2017年中国在线直播用户规模达到3.98亿,预计2019年会达到5.01亿。天猫双十一去年又刷新了记录,交易峰值达到每秒23.5万笔,数据库是每秒4200万次,这对传统系统提出了很高的稳定性和性能的挑战,完全基于磁盘进行读写的数据库已经不再能满足新应用的扩展性和时延要求了,所以大家开始把解决方案转向了读写更快的内存数据库。

  内存数据库把整个数据库读写和存储都搬到了内存里,在几十年间,内存技术的发展情况可以看一下。内存技术从1970年开始诞生,当时单位内存是天价,发展到今天2019年,平均花费3—5美元就可以购买1GB的内存。开始以字节、千字节计算,现在发展到随处可见的16GB的内存条。内存容量的上升和单位价格的下降使得大量数据在内存数据库中的存储成为可能。

  业界应用需求的上涨以及内存技术的成熟,共同促成了内存数据库热度的持续上升,我们引用了DB Engines的排行榜,排名前三的数据库Redis、SQLite、SAP HANA,综合评分持续上涨。内存数据库这个词不是一个新鲜的名字,它伴随着内存技术的诞生和发展。1976年IBM公司就推出了第一款内存数据雏形Fast Path,1980年代各大高校开始涌现内存数据库的理论模型,1990年代进入了市场成熟期,产生许多商业化的产品,2010年之后随着移动互联网飞速发展,市场需求也在迅猛增长,这个时间段开源数据库成为了市场的主力军。

  在这里我们也列举了一些内存数据库产品的现状,排名前十的十款数据库我们也做了对比,开源产品中Redis和Memcached而是最受欢迎的两款键值对内存数据库,SQLite是最受欢迎的关系型内存数据库。2014年新发布的Apache Ignite兼容了两者,热度也在稳步攀升。大部分关系型内存数据库均可以支持ACID,但都会在性能上做出妥协。

  内存数据库最大的特性就是高性能,因为没有传统磁盘数据库IO开销和对磁盘寻道的时间,所以一般会高出2—3个数量级。但是现在内存数据库有一个很大的问题,制约着高性能的发展,现在主要的内存技术是用DRAM的存储,DRAM掉电的时候数据失,现在使用内存数据库就要做额外的持久化的方案。做数据持久化的话,就必然会对数据库性能造成一定损失,所以如何平衡这两者之间的关系,也是需要考虑的问题。

  针对DRAM掉电易失的特性,现在市场上已经出现了非易失性的存储器件,业界说的持久性内存或者存储级内存,其实讲的都是一种东西。这种持久性内存和传统内存拥有相同的槽接口,也可以通过load/store指令直接访问,性能和成本处于DRAM和SSD之间,可以解决数据易失的难题。规模化商用之后,可能会对现在的存储架构有一些颠覆性的影响,也会对内存数据库发展带来更大的提升。

  白皮书中我们会介绍内存数据库的三个典型场景:电商秒杀、视频直播、电信计费,来分析如何用内存数据库的特性来解决实际应用中的一些问题。

  我们也会帮大家分析一下内存数据库的选型方法,帮助读者梳理业务需求,并通过这些业务的需求去指导大家做一些数据库上的选型,因为内存数据库对于性能的要求极高,所以我们在白皮书里也会涉及到对硬件选型的建议。

  最后在白皮书里我们也提出了四个技术发展趋势:

  内存数据库和传统数据库混合使用将成为主要模式; 软硬件深度整合为内存数据库开辟新的技术路线 协议创新将进一步提升分布式内存数据库的一致性能力 与容器技术结合为内存数据库提供更强的弹性扩展能力。

  最后我们也要感谢《内存数据库白皮书》编写组做出的贡献,感谢他们给我们提供的素材和指导建议,这边就不一一介绍了。今年下半年我们内存数据库项目组也会继续编写内存数据库相关的测试标准,也邀请在座各位感兴趣的可以一起加入我们的工作,为新技术在产业的发展共同贡献出一份力量。这里是我们大数据技术标准推进委员会的公众号,大家想详细阅读一下我们白皮书的话,可以进行扫码下载。我的介绍就到这边,下面有请我们的同事马鹏玮介绍一下“关系型云数据库应用白皮书”的情况。

0