[发明专利]管理存储在非易失性存储器中的键值对的LSM树在审
申请号: | 202111046077.9 | 申请日: | 2021-09-07 |
公开(公告)号: | CN114153377A | 公开(公告)日: | 2022-03-08 |
发明(设计)人: | 尼夫·达扬;M·特威托 | 申请(专利权)人: | 普利奥普斯有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 李琰;杨明钊 |
地址: | 以色列特*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 管理 存储 非易失性存储器 中的 键值 lsm | ||
本申请涉及管理存储在非易失性存储器中的键值对的LSM树。一种用于管理键值(KV)对的日志结构合并(LSM)树的方法,LSM树被存储在非易失性存储器中,该方法可以包括将当前run从缓冲器写入LSM树内的当前run位置,该当前run包括当前KV对;生成或接收指示当前KV对的当前指纹;通过向管理数据结构(MDS)添加当前KV对、当前指纹和当前run标识符之间的映射来执行该MDS的run写入更新;通过合并LSM树的至少一些run来更新LSM树;以及执行MDS的合并更新以表示合并。
背景
现代键值存储(KV-存储)依靠LSM树将数据保存在储存器(storage)中。LSM树通过在内存中缓冲应用写入(application write)来优化它们,当缓冲区填满时将缓冲区刷新到储存器中作为排序的run(run是一种数据单元/存储单元(run is a data unit/storageunit)),并且在对数数量级上对run进行排序合并。为了优化应用点读取,对于每个run都有一个内存中布隆过滤器(in-memory Bloom filter),从而允许排除不包含目标条目的run。这种设计用于OLTP、HTAP、社交图、区块链等。
LSM树最初被设计用于硬盘驱动器,该硬盘驱动器比DRAM存储器芯片慢5-6个数量级。然而,SSD的出现将储存器和内存访问之间的性能差异缩小到了2-3个数量级。如今,内存I/O需要100ns,而SSD读取I/O(例如,在英特尔Optane上)需要10微秒。
KV-SSD通过在SSD内嵌入KV存储逻辑并且从而消除来自储存器I/O的总线延迟(在SATA或PCE上),而加剧了这一趋势。
因此,相对于储存器访问,内存访问不再是可忽略的。这推动了修改数据结构体系结构的需求,以消除蔓延的内存带宽瓶颈。
KV-SSD通过称为布隆过滤器(BF)的多种数据结构来表示KV对。
已经发现,现代KV存储中的BF正成为内存I/O瓶颈。首先考虑LSM树设计,该设计通过惰性地合并且因此使系统中存在数十到数百个run来对写入进行优化。对于此类设计,以100ns的成本探测每个BF能够接近甚至超过SSD I/O的延迟,该SSD I/O从储存器中获取目标条目。
随着run数量并且因而系统中BF的数量的增加,这种开销会随着数据量的增加而增长。
随着数据的增长,这种开销会由于存在更多run且因此系统中有更多BF而增加。
此外,许多应用工作负载表现出偏斜(skew),使得最受欢迎的条目驻留在内存中的块缓存中。在这个缓存中定位一个条目可能仍然需要遍历所有的BF来首先识别包含目标条目的run(然后是其中的数据块)。由于在这种情况下没有储存器I/O,因此用于探测BF的内存I/O成为瓶颈。
一个天真的解决方案是调整LSM树,使其更贪婪地合并,使得存在更少run,从而有更少的BF要探测。但是,增加合并贪婪性(merge greediness)也会增加储存器写入I/O,这可能比节省BF探测的好处更重要。此外,调整合并贪婪性还会增加BF的构建成本,这可能占合并开销的70%以上。BF是不可变的,并且必须在每次合并操作期间从头开始重建。因此,更贪婪地合并run也必需更贪婪地重构BF。
BF不可能同时降低探测成本和构建成本。事实上,这两种成本都随着数据量的增加而增长,从而使应用面临越来越糟糕的折衷(trade-off)选择。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于普利奥普斯有限公司,未经普利奥普斯有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111046077.9/2.html,转载请声明来源钻瓜专利网。