解读内存数据库的存储需求

日期: 2014-05-29 作者:Chris Evans翻译:孙瑞 来源:TechTarget中国 英文

随着处理器运算能力的提升,降低CPU与数据之间的延迟变得更加迫切,这使得本地闪存以及PCIe解决方案变得越来越流行。

但是如果这种方式对性能的提升还不能满足企业的需求时,我们可以将数据直接存到系统内存当中。这就是内存数据库背后的理论,它们将数据放到内存你当中来实现性能提升的最大化。

什么是内存数据库?

内存数据库会将运转中的数据存放到系统内存当中,根据每张表的特定用例来判断其是否需要DRAM来加速。还有一些解决方案会将全部数据放到内存里,比如SAP HANA

即使在缓存利用率极高的系统当中,内存数据库解决方案也能够降低延迟,带来明显的性能提升。但内存数据库要更微妙一些,因为与基于硬盘的传统数据库相比,它们对数据管理的方式也进行了优化。

当全部数据都驻留在内从当中时,使用传统硬盘所遇到的一些问题就迎刃而解了。比如我们不再需要维护额外的数据缓存副本并管理其之间的同步操作了。另外,数据还可以在内存中快速地压缩、解压缩,也就是说它将占据更少的硬盘空间。

那么,在内存中创建一个RAM磁盘,然后将数据库迁移到这个虚拟卷当中来达到相同的效果不就行了嘛,干嘛还需要内存数据库呢?当然这是可以做到的,但问题是数据库内部的算法仍然会以传统的方式管理数据,仍然会做一些pre-fetching、缓存或惰性写这样的操作,而内存数据库会针对DRAM数据存储来进行优化调整。

但是,系统内存不是持久性存储,这意味着内存数据库只能满足ACID(原子性,一致性,隔离性,持久性)原则中的前三条。针对这种情况,内存数据库是无法直接满足持久性的,因为当系统突然断电的时候,内存中的数据就会丢失。

如何克服持久性存储问题

要解决持久性问题,内存数据库也有相应的解决方案。这其中包括在集群里保存额外的数据副本,然后对数据库进行横向扩展,让系统能够在运行中不断将更新数据复制到一个或多个备用系统当中。

一些数据库系统还会定期将数据复制到磁盘系统,就是为了应对上述突然断电或系统宕机的情况。当然这时候就要在额外的负载和数据可恢复性方面做出权衡。

由于内存数据库的风险比传统OLTP数据库要大,所以要对它所支撑的应用系统有一个更清楚的认识。目前从整体来看,传统的OLTP应用系统往往会避免使用内存数据库技术,它更多地应用在特定的数据类型或者分析应用(包括批处理报表系统)当中,这些系统的数据远没有OLTP系统重要。

另一方面也是出于成本预算的考虑,DRAM相比于传统磁盘甚至闪存来说都是更昂贵的。

综上所述,随着技术的不断普及,内存数据库迟早会打入企业OLTP应用,我们已经看到有一些企业将全部的应用放到SAP HANA平台上跑了。此外,微软刚刚发布的SQL Server 2014也将提供内存OLTP能力,它针对内存对数据库表进行优化,可以让数据库的一部分数据存放到系统内存当中。而数据库巨头Oracle也在去年发布了Oracle 12c内存数据库选件,能够在不更改应用代码的情况下将表切换为内存数据库模式。

内存数据库的存储选项

尽管内存数据库中的所有操作都是在系统内从中进行的,但它仍然需要一个持久性的存储介质。

内存数据库的存储需求主要体现在两个方面:其中持久性介质用来存储提交的交易,如果一个数据库需要重新加载到内存,那么它就是用来维护持久性并进行数据库恢复;持久性存储用来保存数据库完整的副本或备份。

当处理提交之后,磁盘I/O就将成为最大的性能瓶颈,而将I/O开销控制到最低是非常关键的。也就是说,最好的存储媒介是使用闪存。让闪存尽量靠近处理器以便降低延迟,而PCIe SDD或最新的NVDIMM内存通道存储设备也可以将延迟尽可能控制到最低。

内存通道存储将使用闪存这种持久性存储介质,采用双列直插式存储模块(DIMM),你可以直接将其查到服务器的主板上,在DRAM的总线上提供SSD。它可以提供极低的延迟I/O,而且并不需要更改Bios和操作系统的驱动程序,OS可以将内存视为非易失性存储。

IBM是首个发布NVDIMM技术的服务器厂商,在新的X6产品上它使用了eXflash这个名称。无论是X6服务器还是eXflash技术都与IBM的旗舰数据库DB2进行了整合,同时推出了所谓的BLU Acceleration内存技术。IBM称与此前的DB2数据库相比,BLU的性能将实现接近100倍的提升。

内存数据库性能可以通过一小部分的非易失性本地存储来提升,因此我们可以期待更多的厂商使用内存通道存储技术来改善他们的产品。

由于提升数据库reload速度的需求不断提升,闪存也将成为一个优势。在闪存上读取整个数据库肯定会比传统的磁盘速度更快。

当然,这里的问题之一就是成本,闪存的价格比传统磁盘要贵很多,而且在内存数据库中访问的频率是比较低的。因此,在集群环境中部署基于共享闪存的解决方案看来是大势所趋。总而言之,内存数据库能够为企业带来巨大的性能飞跃,但它仍然需要传统的存储来配合。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

Chris Evans
Chris Evans

Chris Evans已经在IT行业工作了25年以上。早期的职业生涯始于大型机领域,然后进入存储和系统编程领域,专注于开放系统存储和目前流行的虚拟化和云技术。

翻译

孙瑞
孙瑞

相关推荐