[发明专利]同时适应磁盘与固态硬盘读写特性的海量数据存储方法有效
申请号: | 201611255923.7 | 申请日: | 2016-12-30 |
公开(公告)号: | CN106708442B | 公开(公告)日: | 2020-02-14 |
发明(设计)人: | 龚才鑫;龚奕利 | 申请(专利权)人: | 硬石科技(武汉)有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 42222 武汉科皓知识产权代理事务所(特殊普通合伙) | 代理人: | 严彦 |
地址: | 430075 湖北省武汉市东湖新技术开发区武大园路*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 排序 布隆过滤器 固态硬盘 海量数据存储 读写特性 排序序列 读性能 块存储 数据量 阈值时 磁盘 归并 放大 追加 场景 保存 记录 | ||
一种同时适应磁盘与固态硬盘读写特性的海量数据存储方法,将一个块中的记录的完全排序改为部分部序,在每个块的尾部加上布隆过滤器,包括建立称为Log‑Structured Append‑Tree树,树中每个块存储的数据量达到阈值时,将块内的数据直接追加到相应孩子块内时,孩子块的数据由若干个排序序列组成,而不是通过归并排序的方式实现块内完全排序;树中每一个块保存着布隆过滤器。依照本发明,在不牺牲任何其他性能的情况下,使得写放大大大降低,大大增加了随机写效率,而且,对固态硬盘寿命起到了更好的保护和延长。在读写混合的场景中,随机读性能也有所增强,具有重要的市场价值。
技术领域
本发明属于海量数据存储领域,特别涉及存储树,该方法可同时适应磁盘与固态硬盘读写特性。
背景技术
现有的硬盘上常用的索引树有B-tree、LSM-tree、buffer-tree等。其中B-tree是传统的经典树,但因为其在随机写的场景中不可避免的随机写磁盘,当存储海量数据时性能较低,所以存储海量数据时常常使用其变体,如BigTable中对B-tree的变体和LSM-tree的结合使用。对于海量数据的存储,常使用LSM-tree或buffer-tree(又称为fractal-tree)作为索引树,这两者的共同特点是将待写入的记录推迟写,待积累到一定量时再批量处理。这样可以较好的解决B-tree的随机写场景中引起的随机写磁盘的问题,使得写吞吐量得到了较大的提升。
在随机读的场景中,因为LSM-tree和buffer-tree的层数较多且树中的块大小比B-tree的中的块大小大很多,所以读放大较大使得随机读性能有明显降低。为了解决这个问题,bigtable/leveldb等项目在实现LSM-tree时,在每个节点保存了布隆过滤器信息,这样可以很好的降低LSM-tree的读放大,较好的解决随机读性能低的问题。
但不管是B-tree还是LSM-tree/buffer-tree,这些树的写放大都较大。由于磁盘吞吐量的限制,较大的写放大限制了这些索引树随机写性能的进一步实质性的提升,而且严重损害固态硬盘的寿命。较大的写放大侵占了大部分的磁盘的吞吐量进而使得在读写混合的场景中,随机写影响随机读对磁盘性能的利用而使得随机读性能也会有一定程度的下降。
发明内容
本发明所要解决的问题是:传统树的较大的写放大使得随机写效率低下的问题,在固态硬盘盘中较大的写放大也严重的影响着固态硬盘的寿命。较大的写放大侵占了大部分的机械磁盘或固态硬盘的吞吐量进而使得在读写混合的场景中,随机写影响随机读对机械磁盘或固态硬盘性能的利用而使得随机读性能也会有一定程度的下降。由此设计了称为Log-Structured Append-Tree(日志结构的追加树,简称LSA-tree)的树。
本发明提供一种同时适应磁盘与固态硬盘读写特性的海量数据存储方法,将一个块中的记录的完全排序改为部分部序,再在每个块的尾部加上布隆过滤器,实现方式如下,内存中包括可变内存缓存、不可变内存缓存和树的元数据信息,磁盘中的数据采用LSA-tree结构组织,设该树分为n层,第i层中至少ti个块最多ti+1个块,1≤i≤n-1,参数t为相邻两层块数阈值的倍数,最后一层小于等于tn个块;每个块有一个键的范围,当每个块存储的数据量达到相应阈值时,将块内的数据刷入下一层中在范围上有覆盖重叠关系的块中,将要刷的数据直接追加到相应的块内时,某一块的数据由若干个排序序列组成,而不是通过归并排序的方式实现块内完全排序;树中每一个块保存着布隆过滤器;
而且,后台线程对LSA-tree树中的块的操作分为三类,包括下刷、分裂和合并;所有操作都只对非最后一层的块发起处理;将当前层的某一块与下层的一个或多个块在键上的覆盖重叠关系称为父子关系,当前层的该块称为父亲块,下一层的一个或多个块称为孩子块;
下刷操作是将块内的数据下移至下一层中,但该块的范围仍保留,该块所在层的块的数目不发生变化;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于硬石科技(武汉)有限公司,未经硬石科技(武汉)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611255923.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种存储数据的方法、装置、主机设备和存储设备
- 下一篇:一种除法运算装置