面向非易失性内存的持久化Key-value内存数据库设计与实现

来源 :重庆大学 | 被引量 : 0次 | 上传用户:rommer006
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
目前的内存数据库为了保证数据不会丢失,会把内存中的数据备份到磁盘中。因为备份操作以及I/O操作的引入会极大降低内存数据库的效率。近年出现的非易失性内存(NVM)具有掉电不丢失数据、字节可寻址以及读写速度快等特点,如果把内存数据库部署在NVM上,可以极大地提升数据库的效率。然而,现有的内存数据库不能很好地利用NVM的优势,主要存在以下三个问题:1)现有内存数据库使用操作系统管理的临时内存和数据结构,可能被系统回收或置换到外存,不能持久化保存在内存里;2)现有内存数据库的一致性机制依赖于块设备文件系统,不能利用NVM按字节寻址等特性提高性能;3)数据库的操作数据量较小,需要细粒度的内存空间管理。为此,本次研究的目的是设计一个新的基于非易失性内存的key-value内存数据库。和传统的内存数据库相比,基于非易失性内存的数据库在保证访问效率的同时,又可以避免数据丢失,避免数据库备份以及I/O操作。本文的主要研究内容如下:(1)非易失性内存物理空间管理。对非易失性内存的操作都是通过映射到用户空间的地址,在非易失性内存上直接操作。通过空闲链表和位图共同管理空闲空间。大空间分配采用直接在空闲链表上分配的方式,小空间分配采用提前预分配的方式,减少对空闲链表的操作。这种分配分配方式减少了内部碎片,提高对小空间的分配效率。(2)利用非易失性内存的非易失性持久化数据库,需要设计数据库的元数据信息。当数据库存储于非易失性内存上时,虽然它具有非易失性,但是存储数据的具体位置和索引等信息已经不在,不能恢复数据库。为此我们根据需求,设计数据库的元数据,在设备固定位置保存数据库的索引和组织结构信息。在重新启动或者系统掉电后依然可以快速恢复数据库。(3)由于非易失性内存的引入,重新设计并实现保证一致性的方案。普通的磁盘数据库是依靠文件系统的一致性机制来保证一致性,在非易失性内存中已经不适用。本文通过日志与写入时复制(COW)相结合的方式来保证数据库的一致性。这种方式可以在保证一致性的同时保证高并发能力。本文使用提出的技术,基于开源的key-value内存数据库Redis实现了一个面向非易失性内存的持久化内存数据库,Persistent Redis(PRedis)。在Redis基础上,PRedis新增加非易失性内存管理单元,数据库元数据和一致性性算法。本文用标准工具验证PRedis的性能。在数据量是1000万条的情况下,数据库的启动和关闭效率有1000倍的提升。相比基于磁盘做备份的Redis,本文提出的PRedis可取得1000多倍的性能提升;相比基于内存文件系统EXT4-DAX做备份的Redis,本文PRedis有84.5%的性能提升。
其他文献
<正>电视节目的制作是一个系统工程,它包括策划、构思、采访、拍摄、剪辑、特技合成、解说配音、字幕等多道工序,而其中剪辑是必不可少的一个环节。剪辑俗称"剪接"。影片制作
分析20年来台湾海峡两岸的经贸关系和航运关系,能及两岸通航模式演变,并推测两岸海上直航以后的两岸通航模式。
应用HACCP体系的基本原则,为牛蛙加工过程设计了一套适用的HACCP计划.确立了冰冻牛蛙加工工艺流程,通过对牛蛙加工过程的潜在危害分析,找出牛蛙加工过程的控制点;确立了接收
介绍一种新的建筑电气CAD软件的开发过程、主要功能、特点以及其批处理功能的实现方法.其主要的特点是采用AutoLISP的全局或局部过滤器技术和优秀的图库管理技术,使本软件具有自动连线、自动打断交线、连线自动标注、根据文本文件生成二次接线图、批处理等功能.可应用于建筑电气的平面图设计、系统图设计、二次接线图设计、标注、设备统计、线型设置、负荷表计算等方面.