依靠内存来存储数据的数据库管理系统,也称为内存数据库,成为了解决高并发、低时延数据管理需求的技术路线 。近年来,随着动态随机存储器(DRAM)容量的上升和单位价格的下降,使大量数据在内存中的存储和处理成为可能,Redis、Memcached等内存数据库管理软件逐渐成熟,应用范围越来越广 。
未来几年,随着非易失性存储器件(NVM)逐步投入商用,新硬件将会给内存数据库带来更大的发展机遇 。
本白皮书阐述了内存数据库的概念,梳理了内存数据库的发展历史和核心属性,分析了在电商、直播和电信行业的典型应用场景,并对主流的内存数据库进行了介绍和对比,从技术和管理两个角度提出了产品选型和硬件选型建议,并总结了内存数据库的发展趋势:
内存数据库又称主存数据库(In-memory或main memory database),是一种主要依靠内存来存储数据的数据库管理系统 。
在数据库技术中,有一类内存优化技术,是在传统的磁盘数据库中,增加内存缓冲池,也就是常说的共享内存技术,其主要目的是最小化磁盘访问 。
而内存数据库技术,几乎把整个数据库放进了内存中,相较于传统数据库使用的磁盘读写机制,内存具备更极致的读写速度,性能会比传统的磁盘数据库有数量级的提升 。因此内存数据库通常被用于对性能要求较高的场景中 。
1.内存技术的成熟
内存器件的容量密度在快速上升 。最早期的内存和今天常见的内存条不同,是直接焊接在主板上的内存芯片,容量普遍在64KB以下 。
- 1982年之后,随着80286芯片的推出,开始出现30线(Pin)256KB的SIMM内存条,被认为是内存领域的开山鼻祖;
- 在80年代末,386和486时代的PC向16位发展,出现了72线的SIMM内存,单条容量可达512KB-2MB;90年代初,EDODRAM开始盛行,单条容量在4MB-16MB;
- 在1995年,计算机系统进入图形界面时代,内存技术也发生了重要变革,支持64位的SDRAM成为一代经典,在性能上有极大提升,容量也达到了64MB;
- 随后的十几年,内存容量开始稳定地遵循摩尔定律翻倍,持续到2019年,DDR3内存的容量已经可以达到16GB 。

2.内存技术的瓶颈与突破
过去几十年,计算机系统的存储体系结构被设计成如图2的金字塔形模型 。这样的存储结构利用局部性原理尽量将热数据存储在靠近CPU的地方 。在传统模式中,内存数据库的所有数据都保存在DRAM介质中 。
虽然DRAM的价格已经大幅下降,但在海量数据存储的需求下,内存的成本依然是很大的问题;另外由于DRAM属于易失性介质,掉电后所有数据都会丢失,需要额外考虑数据持久化的方案,会极大的限制内存数据库的性能和使用场景 。

针对DRAM现存的一些硬件瓶颈,业界已经研发出了持久型内存(PM,Persistent Memory),学术名为存储级内存(SCM,Storage ClassMemory),和DRAM一样,都是安装在机器主板的内存槽接口中 。
参考图2,DDRDRAM及以上的易失性存储CPU可以通过load/store指令直接访问,而NANDSSD及以下的非易失性存储CPU无法直接访问,需要先加载到易失性存储中,可以看出DRAM与SSD之间存在巨大的性能鸿沟,在访问时延上出现了跳变 。
推荐阅读
- 国内手机登录facebook技巧 微信如何登入facebook账号
- 手机变慢 手机特别的慢是什么原因?
- 手机投票制作软件 网上投票活动怎么做?
- 手机投票制作软件 投票怎么制作?
- 境外服务器代理平台推荐 国外代理服务器ip软件
- 恢复手机误删照片 照片删除并清空怎么恢复?
- 可以制作投票的软件 如何自己做投票软件?
- 360申诉手机号被标记 360申诉手持身份证
- 短信通知软件推荐 短信通知服务器
- 网络代理工具app推荐 代理服务软件是什么
