APP下载

内存数据库关键技术研究

2013-09-30冯文堂王纪梅

中国信息化·学术版 2013年6期

冯文堂 王纪梅

[摘要]随着计算机信息技术的飞速发展,数据存储及控制的效率得到了全面的提升,,在此背景下,内存数据库技术逐渐成为了现阶段数据库研究的热点课题之一。与传统的磁盘数据库相比,内存数据库的读写速度实现的大大的提升,同时极大地提高了数据应用的性能,因此内存数据库的数据处理速度比传统数据库的处理速度快十倍以上。基于上述原因,本文对内存数据库的基本概念进行了阐述,并对其中的关键技术进行了深入浅出的研究和总结。

[关键词]内存数据库;并发控制;恢复技术

[中图分类号]G250.74 [文献标识码]A [文章编号]1672-5158(2013)06-0050-01

1 内存数据库概论

1.1 内存数据库的概念

内存数据库指的是:一种将数据存储在内存中,并可以实现直接操作的数据库。内存数据库在计算机信息系统中有着严谨的定义:设定DBS为一个数据库系统,DB为该数据库系统中的数据库,DBM(t)代表t时刻中出现在DB中的数据集合,AT(t)代表t时期时处于活动状态的事物集合,Dt(T)则是事物集在t时刻进行操作的数据集。在上述条件满足的情况下,如任意t时刻时,满足T隶属于AT(t)且Dt(T)隶属于DBM(t),则将DBS成为一个内存数据库系统,一般用MMDBS简称;同时称DB为一个内存数据库,并简称为MMDB。

1.2 内存数据库的特点

内存数据库技术具有以下几方面特性:

第一,以较为复杂的模型代表数据框架,具有良好的数据扩展性,能够使数据得到充分利用。

第二,具有方便的用户接口,数据和程序的独立性也十分高。

第三,具有并发控制、故障恢复、完整性及安全性四个方面的数据控制性能。在数据库的支配管理下,各个程序中的数据由系统进行统一管理和集中控制。

第四,大大提升了系统的灵活性和数据的读写速率。

2 内存数据库中的关键技术

2.1 并发控制技术

并发控制是内存数据库中较为典型的关键技术之一。由于内存数据库存在于系统内存中,因此在并发控制上有着其独特的设计思路,具体体现在以下几方面:

第一,基于并发控制技术的背景下,事务锁的时间通常较短,因此由于锁造成的竞争也较短。这主要是因为内存数据库的数据访问速度通常较快,数据与数据之间的交换衔接时间也较短。

第二,很多内存数据库系统都需要采用事务并发执行的方式完成数据采集和交换,为了保证这一过程实施的安全性和可靠性,通常采用粗粒度锁作为辅助,以此降低锁的开销。对于一些较为复杂的内存数据库系统,采用传统、单一的加锁方式很难满足实际需求,则在进行内存数据设计的时候通常考虑应用多粒度锁体系,例如表锁、数据库锁或记录锁。

此外,由于内存数据库技术对系统系能的要求较高,在实际设计过程中需要充分借用内存的优势并结合内存数据库的特性,尽量减少并发控制对性能的不良影响。当然,上述设计需要建立在保证事物ACID的基础上。

2.2 故障恢复技术

由于内存数据库中,内存是数据存储的主要单元,而内存本身的不稳定性较高,导致内存数据库发生系统故障的频率也比较高。因此,构建有效的故障恢复机制对于内存数据库就显得意义非凡。目前,应用于内存数据库的主流故障恢复技术包含日志、检验点和内存数据库重装三类。

第一,日志。日志中的系统运行记录将内存数据库系统运行时的信息详尽地保存了下来,在事务恢复执行之前,由日志记录下的数据镜像便被很好地装入内存之中。换句话说,日志为内存数据库的故障恢复提供了相应的技术依据。

第二,检验点。检验点操作时,内存数据库一般能够处于静止状态,此时能够对系统数据的整体或部分进行有效记录,并以此作为故障发生后的恢复数据镜像。目前,Fuzzy checkpoint是应用于内存数据库系统中最为广泛的检验点技术,该技术能够实现任意时间点的数据检验,且不受事物或动作状态的限制,具有很好的应用效应。

第三,内存数据库重装。重装技术是一种将数据库外存版SDB恢复到内存版MDB的技术过程,主要分为完整重装和部分重装两部分。当系统出现掉电故障或初装状态时,一般应用完整重装对内存数据库系统进行故障恢复;而当内存介质发生故障或内存不能存储于数据库整体时,则应用部分重装操作实现对内存数据库系统的故障恢复,换人数据的选取是应用部分重装操作的关键环节。

2.3 索引技术

传统的磁盘数据库采用B/B+树的索引技术,此技术能够有效减少方位磁盘数据的I/O次数,然而,该项技术并适合内存数据库系统。目前,主流的内存数据库一般选用T树索引技术,这是一项根据AVL树和B树发展而来的技术。

喇索引技术融合了AVL树技术和B树技术的优点,既具有AVL树的二分查找性能,又具备B树良好的更新及数据存储性能。在进行并发控制时,由于T树比B树高,因此需要更多的锁才能完成并发控制流程,所以应用喇进行索引时,加锁和解锁的代价比应用B树时要高很多。以下为喇的节点结构示意图:

由于采用了喇结构,内存数据库中只需存放指向相应记录对应字段的指针,因此使索引中变长字段的存储问题得到了很好地解决。此外,在T树索引技术背景下,指针的长度一般也比其指向字段的长度小,因此节省了大量的内存空间,使系统的运行也变得更为流畅。

结论

本文对内存数据库中的几个重要关键技术进行了简要介绍和分析,通过对比发现,内存数据库技术相比于传统的磁盘数据库技术有着其明显的优势之处。随着计算机数据库技术应用的领域逐渐深入,有关内存数据库技术新的研究成果也将不断涌现,例如在电信、军事、工业控制等领域,内存数据库技术的引入和应用已成为大势所趋。因此,我们有理由相信未来对内存数据库技术的研究也将得到进一步拓展。

参考文献

[1]曹猗宣,王晶,内存数据库在彩铃业务中的应用[J]计算机系统应用,2011,20(5)

[2]杨武军,张继荣,屈军锁,内存数据库技术综述l JIl西安邮电学院学报,2005,10(3)

[5l袁培森,皮德常,用于内存数据库的Hash索引的设计与实现[J],计算机工程,2007,33(18)