[发明专利]同时适应磁盘与固态硬盘读写特性的海量数据存储方法有效
申请号: | 201611255923.7 | 申请日: | 2016-12-30 |
公开(公告)号: | CN106708442B | 公开(公告)日: | 2020-02-14 |
发明(设计)人: | 龚才鑫;龚奕利 | 申请(专利权)人: | 硬石科技(武汉)有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 42222 武汉科皓知识产权代理事务所(特殊普通合伙) | 代理人: | 严彦 |
地址: | 430075 湖北省武汉市东湖新技术开发区武大园路*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 排序 布隆过滤器 固态硬盘 海量数据存储 读写特性 排序序列 读性能 块存储 数据量 阈值时 磁盘 归并 放大 追加 场景 保存 记录 | ||
1.一种同时适应磁盘与固态硬盘读写特性的海量数据存储方法,其特征在于:将一个块中的记录的完全排序改为部分排序,再在每个块的尾部加上布隆过滤器,实现方式如下,
内存中包括可变内存缓存和不可变内存缓存、树的元数据信息,内存中的块采用全排序结构,分为可变内存缓存和不可变内存缓存两种,前者是未达到块存储容量阈值的块,用户的记录能直接插入,后者大小达到阈值,只能被读取不能再被改变;树的元数据信息描述了树中每个块的元信息,块的元信息包括块的范围、所属的层、块中间的空闲空洞的大小,以及被追加的次数;
建立称为Log-Structured Append-Tree树的结构,磁盘中的数据采用Log-StructuredAppend-Tree结构组织,设该树分为n层,第i层中至少ti个块最多ti+1个块,1≤i≤n-1,参数t为相邻两层块数阈值的倍数,最后一层小于等于tn个块;每个块有一个键的范围,当每个块存储的数据量达到相应阈值时,将块内的数据刷入下一层中在范围上有覆盖重叠关系的块中,将要刷的数据直接追加到相应的块内时,某一块的数据由若干个排序序列组成,而不是通过归并排序的方式实现块内完全排序;树中每一个块保存着布隆过滤器;
后台线程对Log-Structured Append-Tree树中的块的操作分为三类,包括下刷、分裂和合并;所有操作都只对非最后一层的块发起;将当前层的某一块与下层的一个或多个块在键上的覆盖重叠关系称为父子关系,当前层的该块称为父亲块,下一层的一个或多个块称为孩子块;
下刷操作是将块内的数据下移至下一层中,但该块的范围仍保留,该块所在层的块的数目不发生变化;
下刷操作的触发条件为,该块存储的数据量达到存储阈值且该块的孩子块数目小于2t;
触发后,需要在下面两个执行条件均满足后进行下刷,
条件1,下层的块的数目小于ti+1+1且i+1<n,或者小于tn且i=n-1;
条件2,若下层为非最后一层,孩子块需都未达到存储阈值;
分裂操作是将块拆分成两个,以使新生成的两个块的孩子块数目相等;
分裂操作的触发条件为,该块存储的数据量达到存储阈值且该块的孩子块数目大于2t;
该操作需满足的执行条件为,该块所在层的块的数目小于ti+1;
合并操作是将块内的数据下移至下一层中,在下刷后该块的范围被删除,以使得该块所在层的块的数目减1;
合并操作的触发条件为,该块所在层的块数目等于ti+1;
该操作需要满足下面两个执行条件,
条件1,下层的块的数目小于ti+1+1且i+1<n,或者小于tn且i+1=n;
条件2,若下层为非最后一层,孩子块需都未达到存储阈值。
2.根据权利要求1所述同时适应磁盘与固态硬盘读写特性的海量数据存储方法,其特征在于:当用户线程插入记录时,有以下三种情况,
1)若可变内存缓存未达到容量阈值,将记录追加进用户日志,再将记录插入可变内存缓存;
2)若可变内存缓存达到容量阈值且不可变内存缓存不存在,先将其重命名为不可变内存缓存,再新建一个可变内存缓存插入记录;
3)若可变内存缓存达到容量阈值且不可变内存缓存存在,等待后台线程将不可变内存缓存写入磁盘后销毁,用户线程再按照2)进行处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于硬石科技(武汉)有限公司,未经硬石科技(武汉)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611255923.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种存储数据的方法、装置、主机设备和存储设备
- 下一篇:一种除法运算装置