[发明专利]一种基于键排序的数据存储方法和装置有效
申请号: | 201210541207.0 | 申请日: | 2012-12-14 |
公开(公告)号: | CN103870492B | 公开(公告)日: | 2017-08-04 |
发明(设计)人: | 陈峥;邓大付 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京德琦知识产权代理有限公司11018 | 代理人: | 张驰,宋志强 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 排序 数据 存储 方法 装置 | ||
1.一种基于键排序的数据存储方法,其特征在于,该方法包括:
在第一数据块中存储定长键及其值,其中所述存储定长键包括:统一存储各个定长键的公共前缀,并分别存储各个定长键去除公共前缀后的剩余部分;
在第二数据块存储变长键及其值,其中所述存储变长键包括:全量存储基准键类型的变长键,而对前缀压缩键类型的变长键执行前缀压缩;该方法进一步包括:
将当前变长键与上一个基准键进行前缀比较,如果相同前缀串小于预先设置的阈值长度,则判定该当前变长键为基准键类型;如果相同前缀串大于所述阈值长度与预先设置的阈值差分的和,则判定该当前变长键为基准键类型;如果相同前缀串大于所述阈值长度而小于所述阈值长度与所述阈值差分的和,则判定该当前变长键为前缀压缩键类型。
2.根据权利要求1所述的基于键排序的数据存储方法,其特征在于,所述对前缀压缩键类型的变长键执行前缀压缩包括:
针对前缀压缩键类型的变长键,存储该前缀压缩键类型的变长键与上一个基准键的公共前缀的长度,以及存储该前缀压缩键类型的变长键去除该公共前缀后的剩余部分。
3.根据权利要求1所述的基于键排序的数据存储方法,其特征在于,该方法进一步包括:
当判定将定长键及其值存储到第一数据块失败时,压缩所述第一数据块,并分配存储缓冲区;当压缩后第一数据块的大小小于所述存储缓冲区时,将所述压缩后第一数据块写入所述存储缓冲区;
当判定将变长键及其值存储到第二数据块失败时,压缩所述第二数据块,并分配存储缓冲区;当压缩后第二数据块的大小小于所述存储缓冲区时,将所述压缩后第二数据块写入所述存储缓冲区。
4.根据权利要求1所述的基于键排序的数据存储方法,其特征在于,该方法进一步包括:
当判定将定长键及其值存储到第一数据块成功时,将所述定长键及其值的布隆过滤器信息写入到布隆过滤器中;
当判定将变长键及其值存储到第二数据块成功时,将所述定长键及其值的布隆过滤器信息写入到布隆过滤器中。
5.根据权利要求1所述的基于键排序的数据存储方法,其特征在于,该方法进一步包括:
设置读取缓冲区,并当判定该读取操作的读取长度小于所述缓冲区且该当前数据块不是最后数据块时,取出下一数据块的起始地址并记录下一数据块的长度并继续读取,直到读取长度大于所述缓冲区的长度为止。
6.一种基于键排序的数据存储装置,其特征在于,该装置包括定长键存储单元和变长键存储单元,其中:
定长键存储单元,用于在在第一数据块中存储定长键及其值,其中所述存储定长键包括:统一存储各个定长键的公共前缀,并分别存储各个定长键去除公共前缀后的剩余部分;
变长键存储单元,用于在第二数据块存储变长键及其值,其中所述存储变长键包括:全量存储基准键类型的变长键,而对前缀压缩键类型的变长键执行前缀压缩;
该装置进一步包括键类型区分单元;
键类型区分单元,用于将当前变长键与上一个基准键进行前缀比较,如果相同前缀串小于预先设置的阈值长度,则判定该当前变长键为基准键类型;如果相同前缀串大于所述阈值长度与预先设置的阈值差分的和,则判定该当前变长键为基准键类型;如果相同前缀串大于所述阈值长度而小于所述阈值长度与所述阈值差分的和,则判定该当前变长键为前缀压缩键类型。
7.根据权利要求6所述的基于键排序的数据存储装置,其特征在于,
定长键存储单元,用于针对前缀压缩键类型的变长键,存储该前缀压缩键类型的变长键与上一个基准键的公共前缀的长度,以及存储该前缀压缩键类型 的变长键去除该公共前缀后的剩余部分。
8.根据权利要求6所述的基于键排序的数据存储装置,其特征在于,进一步包括数据块间压缩单元,其中:
数据块间压缩单元,用于当判定将定长键及其值存储到第一数据块失败时,压缩所述第一数据块;当判定将变长键及其值存储到第二数据块失败时,压缩所述第二数据块。
9.根据权利要求8所述的基于键排序的数据存储装置,其特征在于,进一步包括存储缓冲单元;
存储缓冲单元,用于分配存储缓冲区,并当压缩后第一数据块的大小小于所述存储缓冲区时,将所述压缩后第一数据块写入所述存储缓冲区;当压缩后第二数据块的大小小于所述存储缓冲区时,将所述压缩后第二数据块写入所述存储缓冲区。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210541207.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种二维码图片的优化处理方法及移动终端
- 下一篇:熔盐组合物
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置