[发明专利]一种基于哈希表组织虚拟内存与存储的映射方法及装置有效
申请号: | 201310024960.7 | 申请日: | 2013-01-23 |
公开(公告)号: | CN103106255A | 公开(公告)日: | 2013-05-15 |
发明(设计)人: | 张在理;王倩 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F12/02 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 栗若木;曲鹏 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 哈希表 组织 虚拟内存 存储 映射 方法 装置 | ||
技术领域
本发明涉及计算机内存组织及内存与存储的映射关系,特别涉及一种基于哈希表组织虚拟内存与存储的映射方法及装置。
背景技术
随着存储的广泛应用,用户对数据在传输和存储时的安全性要求越来越高,推动了存储的各个层次高可用性的发展。如集群高可用,集群高可以保证一个节点宕机时,另外的节点接管宕机节点的工作。但多个节点同时提供服务时要保证对磁盘数据访问的一致性,目前的实现方法是只能有一个控制节点访问磁盘数据,对其余节点的磁盘读写请求全部转发给控制节点来处理。
但是读节点的读写请求发送到远端节点处理会降低数据读写的速率。为了提高数据读写速率,在节点中使用内存作为缓存来缓存数据。写数据时,写请求在将数据写入缓存后立即返回,不需要等待数据写入磁盘。读数据时,读请求会寻找缓存中是否有有效的数据,如果缓存有有效数据则直接从缓存读取数据,不需要从磁盘读取。缓存模块的应用可以有效提高数据的读写速率。
使用缓存暂存数据时,如果其中一个节点宕机,数据没有能及时完整的写入磁盘,这样会造成数据的丢失。所以需要在节点间备份数据,当一个节点宕机,其余节点备份的数据可以保证正确的写入磁盘,保证写入磁盘数据的完整性。
缓存模块重要的工作是不管LUN(Logical Unit Number,逻辑单元号)的大小,保证所有LUN的所有位置都可以映射到缓存模块中的页中。其中一种方式是根据哈希算法将所有LUN的数据都映射到一个哈希表中,由页结构体中对应的LUN域来区分不同LUN。对哈希表中页的访问需要先获取互斥锁。当对多个LUN进行读写时,并发冲突就会增大,影响效率。另一种方式是将每个LUN映射到一个哈希表,这样并发访问冲突会减小,但hash表的内存占用会急剧增加。
发明内容
本发明所要解决的技术问题是,提供一种基于哈希表组织虚拟内存与存储的映射方法及装置,以在查找效率和内存占用之间提供一种优化方案。
为了解决上述技术问题,本发明公开了一种基于哈希表组织虚拟内存与存储的映射方法,包括:
初始化哈希表的个数阈值;
当添加逻辑单元号(LUN)时,若判断系统当前所创建的哈希表的个数小于所述个数阈值,则创建新的哈希表,并将添加的LUN的数据映射到新的哈希表中,若判断系统当前所创建的哈希表的个数等于所述个数阈值,则将添加的LUN的数据映射到已创建的哈希表中映射LUN数目最少的哈希表中。
较佳地,上述方法还包括:
在删除LUN过程中,判断与所要删除的LUN的数据映射的哈希表是否与其他LUN的数据映射,若否,则将与所要删除的LUN的数据映射的哈希表删除。
较佳地,上述方法还包括:初始化哈希表长。
较佳地,上述方法中,初始化哈希表长度的过程如下:
计算系统可用内存页,根据所计算的可用内存页总数和哈希表项单链表的平均长度计算哈希表长。
本发明还公开了一种基于哈希表组织虚拟内存与存储的映射装置,包括:
第一模块,初始化哈希表的个数阈值;
第二模块,在添加逻辑单元号(LUN)时,判断系统当前所创建的哈希表的个数是否小于所述个数阈值;
第三模块,当系统当前所创建的哈希表的个数小于所述个数阈值时,创建新的哈希表,并将添加的LUN的数据映射到新的哈希表中,当系统当前所创建的哈希表的个数等于所述个数阈值,则将添加的LUN的数据映射到已创建的哈希表中映射LUN数目最少的哈希表中。
较佳地,上述装置还包括:
第四模块,在删除LUN过程中,判断与所要删除的LUN的数据映射的哈希表是否与其他LUN的数据映射,若否,则将与所要删除的LUN的数据映射的哈希表删除。
较佳地,上述装置还包括:
第五模块,初始化哈希表长。
较佳地,上述装置中,所述第五模块,计算系统可用内存页,根据所计算的可用内存页总数和哈希表项单链表的平均长度计算哈希表长。
本申请技术方案在查找效率和内存占用之间提供了一种优化方案,在现实测试中利于性能调优,且提高了系统资源利用率。
附图说明
图1是本实施例提供的虚拟内存与存储的映射方法流程图;
图2(a)是LUN个数为2,哈希表的个数阈值为4时的映射关系示意图;
图2(b)是LUN个数为6,哈希表的个数阈值为4时的映射关系示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310024960.7/2.html,转载请声明来源钻瓜专利网。