内存数据库系统,NVDIMM和数据持久性
RAM盘--可以消除因存储器件的物理操作引起的开销,从而突出内存数据库系统的流线型设计的延时效应,它比磁盘上的数据库管理系统更为复杂的处理强得多。
测试表明,对于插入、更新和删除操作来说,采用事务日志的内存数据库系统性能明显超过传统磁盘上的数据库管理系统(同样,两者都使用RAM作为它们的“永久”存储)。图3显示了每种配置条件下单位为循环/毫秒的结果,以及通过IMDS+TL所表现出来的性能翻倍。举例来说,在数据库删除测试中,IMDS+TL要比磁盘上的数据库管理系统快12.77倍。图3还显示了关闭事务日志、让eXtremeDB作为将NVDIMM用作主存的“pure”IMDS进行操作的性能影响。
图3:结果。
数据库索引搜索和表格遍历表明,在从磁盘上的数据库管理系统转移到IMDS+TL时,几乎没有性能上的变化。这种结果是在预料之中的,因为与插入、更新和删除操作相比,这种数据库“读取”操作不会改变数据库内容,在性能方面的成本通常低得多。
讨论
NVDIMM在用作内存数据库系统存储器时可以匹配传统DRAM的速度,同时提供完整的内存数据库持久性。那么为什么还有人要用带延时诱导事务日志的内存数据库系统呢?这里有多种理由,包括成本,因为GB规模的NVDIMM成本要大于DRAM;想要使用非Intel Romley和Grantley的平台;要求的数据库大小(AgigA Tech公司的NVDIMM支持高达128GB的总内存容量)。如上述数字所示,增加事务日志实现数据持久性将降低内存数据库系统的性能,但IMDS+TL组合在插入、更新和删除操作时仍能超越传统磁盘型数据库管理系统的性能。
今后用户会遇到的另外一个问题是他们所选的内存数据库系统是否支持将NVDIMM用作主要内存。如前所述,McObject的eXtremeDB内存数据库系统包括许多功能--在产品开发早期就加入的,用于支持与电池供电型RAM的交互--这些功能可以用NVDIMM平顺地恢复数据库。使用没有这些功能的内存数据库系统可能导致更高的复杂性,并且在实现可工作的解决方案之前需要很大的开发和测试工作量。
另外值得注意的是,本文讨论的数据库持久性--也就是确保数据库和所有提交的事务能在发生系统故障事件时得到恢复--有别于高可用性,或不停工操作的能力。虽然两种技术都是想帮助数据库经受住故障,但如前所述,高可用性通常是通过复制实现的,故障转移时间单位是毫秒。相反,持久性--带事务日志的内存数据库系统或将NVDIMM用作主存所能达到的--不保证消除停工时间。使用NVDIMM或事务日志进行数据库恢复通常是自动的,但两者最有可能的使用场景是在意外的系统宕机之后,这意味着冷重启(如重新启动)这样的时长为分钟级的过程。开发人员在考虑用这些技术克服易失性问题时应该理解数据库高可用性和持久性之间的区别。
- 基于虚拟仪器的特性测试参数数据库的设计(06-24)
- 嵌入式数据库在Java中的应用(03-03)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 嵌入式移动数据库系统中的数据查询(02-21)
- Linux EXT3下删除MySQL数据库的数据恢复(05-26)
- 嵌入式移动数据库与Agent技术(03-01)