The invention discloses a request processing method of mixed memory key value pair storage system, which includes: if a point query request is made, the hash table is found and the query result is returned; if a range query request is made, the corresponding jump table command is constructed and added to the command caching queue of each jump table, waiting until the return result of all jump tables is obtained, and the query result is merged in dictionary order to obtain the return result of all jump tables. The result of the return is returned; if the request is written, the memory is allocated and the value is written in NVM; if the request is updated, the hash table is updated and the corresponding jump table command is constructed; if the request is inserted, the new jump table node is created and the corresponding jump table command is constructed; and the target jump table is determined according to the length of the key in the write request, and the jump table will be constructed. Table commands are added to the command cache queue of the target jump table. The invention fully considers the reading and writing delay of the medium, and optimizes the processing performance of the reading operation with a higher proportion, thereby effectively improving the overall performance of the system.
【技术实现步骤摘要】
一种混合内存键值对存储系统的请求处理方法
本专利技术属于信息存储
,更具体地,涉及一种混合内存键值对存储系统的请求处理方法。
技术介绍
互联网大数据应用和云计算应用要求对大规模数据的快速访问,键值对存储(KVS,KeyValueStore)作为非关系型数据存储的典型代表,采用非结构化的数据组织形式,提供高效的数据插入、点查询(pointquery)、范围查询(scan)支持,凭借其高访问性能、高可用性和高扩展性得以迅速发展,广泛应用在数据密集型应用中,如网络索引引擎、社交网络等。内存键值对存储以动态随机访问存储器(DRAM,DynamicRandomAccessMemory)作为存储介质,但是DRAM受可扩展性、能耗、成本等因素的影响越来越无法满足大数据应用的容量需求。非易失存储器(NVM,Non-VolatileMemory)具有高存储密度、字节可寻址、低能耗、近DRAM访问延迟、掉电后数据不丢失等特点,为内存键值对存储提供了一种可行的解决方案。以NVM和DRAM作为混合内存的架构得到了广泛的关注和研究,如何结合NVM和DRAM介质的特点,设计高性能的混合内存键值对存储系统具有十分重要的意义。索引设计是实现高性能内存键值对存储系统的关键部分。现有内存键值对存储系统采用哈希表、B+树、跳表等数据结构作为索引,哈希表的点插入和查询的速度最快,时间复杂度为O(1),但是无法支持范围查询,B+树和跳表的点查询和点插入的时间复杂度为O(nlogn),支持范围查询。目前,NVM介质的读、写延迟分别约为DRAM读、写延迟的3~4倍和10~12倍,基于介质的读写延 ...
【技术保护点】
1.一种混合内存键值对存储系统的请求处理方法,所述混合内存键值对存储系统包括DRAM和NVM,其特征在于,包括如下步骤:(1)判断请求类型,若为读请求,则转入步骤(2);若为写请求,则转入步骤(4);(2)判断所述读请求的类型,若为点查询请求,则根据所述点查询请求的键查找哈希表,返回查询结果,并转入步骤(7);若为范围查询请求,则转入步骤(3);(3)根据所述范围查询请求构建对应的跳表命令,将所述跳表命令添加至每一个跳表的命令缓存队列,并等待直至获取到所有跳表的返回结果;按照字典序合并获取到的返回结果,从而得到所述范围查询请求的查询结果并返回;转入步骤(7);(4)为所述写请求在所述NVM中分配内存并写入值,从而得到所述写请求的值地址;(5)判断所述写请求的类型,若为更新请求,则根据所述更新请求更新所述哈希表,并构建对应的跳表命令;若为插入请求,则根据所述插入请求新建跳表节点并更新所述哈希表,并构建对应的跳表命令;(6)根据所述写请求中键的长度确定目标跳表,并将所述跳表命令添加至所述目标跳表的命令缓存队列;转入步骤(7);(7)请求处理结束;其中,所述哈希表建立于所述DRAM中,所述哈 ...
【技术特征摘要】
1.一种混合内存键值对存储系统的请求处理方法,所述混合内存键值对存储系统包括DRAM和NVM,其特征在于,包括如下步骤:(1)判断请求类型,若为读请求,则转入步骤(2);若为写请求,则转入步骤(4);(2)判断所述读请求的类型,若为点查询请求,则根据所述点查询请求的键查找哈希表,返回查询结果,并转入步骤(7);若为范围查询请求,则转入步骤(3);(3)根据所述范围查询请求构建对应的跳表命令,将所述跳表命令添加至每一个跳表的命令缓存队列,并等待直至获取到所有跳表的返回结果;按照字典序合并获取到的返回结果,从而得到所述范围查询请求的查询结果并返回;转入步骤(7);(4)为所述写请求在所述NVM中分配内存并写入值,从而得到所述写请求的值地址;(5)判断所述写请求的类型,若为更新请求,则根据所述更新请求更新所述哈希表,并构建对应的跳表命令;若为插入请求,则根据所述插入请求新建跳表节点并更新所述哈希表,并构建对应的跳表命令;(6)根据所述写请求中键的长度确定目标跳表,并将所述跳表命令添加至所述目标跳表的命令缓存队列;转入步骤(7);(7)请求处理结束;其中,所述哈希表建立于所述DRAM中,所述哈希表中的索引项存储有键、值地址以及对应的跳表节点地址;所述跳表建立于所述NVM中,所述跳表有多个,每一个跳表分别与一个键的长度范围相对应,并且每一个跳表分别设置有一个命令缓存队列,所述跳表中的跳表节点存储有键和值地址;所述跳表命令封装有请求类型。2.如权利要求1所述的混合内存键值对存储系统的请求处理方法,其特征在于,还包括:(S1)对于任意一个跳表S,若其命令缓存队列Q为空,则等待直至所述命令缓存队列Q不为空,并转入(S2);否则,转入(S2);(S2)从所述命令缓存队列Q中取跳表命令C并判断请求类型,若为更新请求,则转入(S3);若为插入请求,则转入(S4);若为范围查询请求,则转入(S5);(S3)根据所述跳表命令C中的跳表节点地址和值地址更新对应的跳表节点;转入步骤(S1);(S4)根据所述跳表命令C中的跳表节点地址将新建的跳表节点插入所述跳表S;转入步骤(S1);(S5)根据所述跳表命令C中的查询范围获得所述跳表S中键的字典序位于所述查询范围内的所有跳表节点并返回值地址;转入步骤(S1);其中,所述查询范围为键的字典序范围。3.如权利要求2所述的混合内存键值对存储系统的请求处理方法,其特征在于,还包括,若同一范围查询请求所对应的跳表命令均执行完成,则按照字典序...
【专利技术属性】
技术研发人员:童薇,冯丹,刘景宁,吴海源,秦俊青,
申请(专利权)人:华中科技大学,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。