[发明专利]大容量缓存实现方法及存储系统有效
| 申请号: | 200710187584.8 | 申请日: | 2007-12-03 |
| 公开(公告)号: | CN101169761A | 公开(公告)日: | 2008-04-30 |
| 发明(设计)人: | 谢明;姚星;肖志立;吴悦 | 申请(专利权)人: | 腾讯数码(天津)有限公司 |
| 主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F12/06;G06F17/30 |
| 代理公司: | 北京集佳知识产权代理有限公司 | 代理人: | 逯长明 |
| 地址: | 300052天津市经济技术开发区第*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 容量 缓存 实现 方法 存储系统 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及大容量缓存实现方法及存储系统。
背景技术
在计算机与互联网应用中,为提高数据的访问效率,改善系统性能,通常采用缓存的方式对需要经常访问的数据进行存储。而由于对内存的访问速度远远快于对外部存储器的访问速度,现有技术中通常选择内存作为缓存数据的存储介质。
现有技术中提供一种内存缓存方案,该方案以记录为数据存取单位,每条记录具有唯一的索引信息,各条记录之间通过不同索引信息加以区分。在方案中,内存分为节点区和数据块区,节点区中包括多个节点,每个节点与一条记录相对应,节点中存储有记录的索引信息。数据块区中存储实际数据,一条记录的数据可以分割存放在数据块区的多个数据块中。节点中还存储有存放记录的数据的数据块的寻址信息,通过该寻址信息,可以寻址到存放相应数据的数据块。以下对各部分进行更详细的介绍:
1.1)节点区;设置在内存单元中,包括节点区头部结构、散列桶和多个节点。
散列实质上是一种压缩变换,即通过特定的散列算法或散列函数,把任意长度的输入变换为固定长度的输出(该输出被称为散列值);散列变换一个很重要的特点是,不同的输入经过特定散列变换后,可能得到相同的输出。例如,可以通过对100取模的运算对任一数字进行散列变换,这样可以将任意数字映射到0~99其中一个数字。
对记录的索引信息进行散列变换可以得到记录的散列值,对不同记录的索引信息进行散列变换可能得到相同的散列值;据此,相对于系统所使用的散列变换,可使每个可能的散列值与一条节点链相对应,每条节点链上可以包括一个或多个节点,每个节点与一条记录相对应,该记录的散列值与所在节点链的散列值相同。
节点区的节点中存放的信息包括:本条记录的索引信息、本条记录所对应的数据块(或数据块链)的头指针、指向所在散列链上后一个节点的指针;还可以包括本条记录的数据长度、指向所在散列链上前一个节点的指针、指向附加链上前一个节点的指针、指向附加链上后一个节点的指针、本条记录的最后被访问时间、本条记录在缓存中被访问的次数等。
散列桶中主要存放各散列值所对应的散列链的头指针。
节点区头部结构主要存放节点区的宏观信息,包括散列桶的起始位置信息、散列桶内散列值的数量信息、本区中的节点数、已利用的节点数、已利用的节点链的个数、空闲节点链的头指针、附加链表的头部位置信息以及尾部位置信息等。
1.2)数据块区;设置在内存单元中,包括多个数据块,用于存放缓存记录的数据。当一条记录的数据不超过一个数据块的容量大小时,可以将记录的数据存储在一个数据块中;当一条记录的数据超过一个数据块的容量大小时,可以按照数据块的容量大小对数据进行分片,再将进行分片所得到的各分片数据分别存储到不同的数据块中,各数据块可以形成一条数据块链。
为便于理解,图1给出上述内存缓存方案的实现结构示例图。在图1的节点区中,节点11--节点12--节点22,以及节点21是两条散列链,散列桶中存放散列链的头指针,可以根据头指针寻址到相应的散列链;节点11--节点21--节点22--节点12是附加链,节点区的头部结构中存放附加链的头部位置信息,可以根据该头部信息寻址到附加链;节点23--节点13是空闲节点链,节点区的头部结构中存放空闲节点链的头部位置信息,可以根据该头部信息寻址到空闲节点链。在数据块区中,数据块11--数据块12--数据块22是一条数据块链,该数据块链与节点区中的节点21对应,节点21中存放有该数据块链的头指针(数据块11的地址信息),可以根据该头指针寻址到该数据块链;数据块21--数据块23--数据块13是空闲数据块链,数据块区的头部结构中存放空闲数据块链的头部位置信息,可以根据该头部信息寻址到空闲数据块链。
在上述内存缓存方案中,每条记录的数据都存储在内存中,然而,由于内存的硬件成本相对较高,使得内存的容量通常较为有限,因此,能够缓存的记录也较有限。
发明内容
本发明实施例要解决的技术问题是提供大容量缓存实现方法及存储系统。
为解决上述技术问题,本发明的实施例提供以下技术方案:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯数码(天津)有限公司,未经腾讯数码(天津)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710187584.8/2.html,转载请声明来源钻瓜专利网。





