Wormhole Filters: Caching Your Hash on Persistent Memory——泛读笔记

EuroSys 2024 Paper 论文阅读笔记整理

问题

近似成员关系查询(AMQ)数据结构可以高效地近似确定元素是否在集合中,例如Bloom滤波器[10]、cuckoo滤波器[23]、quotient滤波器[8]及其变体。但AMQ数据结构的内存消耗随着数据规模的增长而快速增长,这限制了其处理大量数据的能力。原因在于:单个AMQ数据结构的内存消耗增加;多个AMQ数据结构同时运行。

AMQ数据结构的优化目标包括空间占用、吞吐量和重建开销。新兴的持久存储器提供了接近DRAM的访问速度和TB级的容量,有助于AMQ数据结构处理海量数据。然而,由于密集的随机访问和/或顺序写入,现有的AMQ数据结构在持久性存储器上表现不佳。

挑战

根据解决哈希冲突的方式,用于不同存储介质的现有AMQ数据结构通常可以分为两类,但都不适合移植到持久内存:

  • 使用全局技术来解决哈希冲突(如Bloom过滤器[10]和cuckoo过滤器[23])。在整个数据结构中分布元素来解决哈希冲突。但不可避免地导致对存储介质的大量随机访问,降低了持久存储器上数据结构的性能。一些工作试图缓解这个问题,如阻塞Bloom过滤器[55]和单个哈希阻塞Bloom滤波器[54],但会导致更高的误报率和更高的内存消耗[23,64]。

  • 使用局部技术来解决哈希冲突(如quotient滤波器[8]和计数quotient滤波器[51])移动冲突的位置的所有后续元素来解决哈希冲突。尽管只需要对存储介质进行顺序访问,但每次插入操作都会产生大量额外的写入请求,从而降低性能。

其他技术挑战:

  • 同时降低随机访问和顺序写入的次数,以便在持久内存上获得更高的性能。因为持久内存的顺序读取、随机读取、顺序写入和随机写入带宽分别比DRAM[31]慢3倍、8倍、11倍和14倍。

  • 有效地支持并发。如何设计正确高效的并发算法,利用多个核心的性能。

  • 减少支持恢复的开销。但程序异常结束且插入操作意外中断,部分更新的数据将持久存在AMQ数据结构中,当程序重新启动时,需要回滚部分更新的数据。以前的工作,如持久内存上的树和哈希表[31,42,44],使用日志记录技术从故障中恢复。然而,对于轻量级AMQ数据结构,日志记录的开销很高,大大降低了AMQ数据架构的性能。

本文方法

本文提出了一种新的AMQ数据结构,称为Wormhole Filters,通过减少随机访问和顺序写入,减少了日志记录的数量,以适用于持久内存。

  • 数据结构。提出了两种创新技术:距离指纹对和基于桶的虫洞哈希表。距离指纹对可以同时减少随机访问和顺序写入,还可以减少支持恢复的开销。基于桶的虫洞哈希表可以增强操作的缓存局部性。

  • 插入算法。提出了基于距离指纹对的持久内存插入算法。对于插入操作,虫洞过滤器通过移动少量相邻元素来解决哈希冲突,减少了插入期间对持久内存的随机访问和顺序写入的次数。此外,这种设计只需要顺序获取少量锁,从而实现对并发的支持。

  • 查找/删除算法。提出了基于桶的虫洞哈希表的持久内存查找/删除算法。虫洞过滤器可以以恒定的时间复杂度执行查找和删除操作,查找和删除操作只需要顺序访问少量的存储桶,这些存储桶可以被持久存储器的访问粒度所覆盖,从而实现高吞吐量。

  • 恢复算法。提出了轻量级的持久内存恢复算法。通过精心设计的桶结构和插入机制,减少了插入所需的日志记录数量,从而减少了支持恢复的开销。

理论分析和实验结果表明,Wormhole Filters的性能优于最先进AMQ数据结构。实现了最佳基线的23.26倍插入吞吐量、1.98倍正向查找吞吐量和8.82倍删除吞吐量。

总结

针对利用持久内存的近似成员关系查询(AMQ)数据结构(如Bloom过滤器),现有方法随机访问和顺序写入次数多,为了支持恢复开销高,不适用于持久内存。本文提出Wormhole Filters,设计了新数据结构距离指纹对和基于桶的虫洞哈希表,通过减少随机访问和顺序写入,减少了日志记录的数量,以适用于持久内存。

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
大数据技术体系图谱 演讲人 2021-08-08 大数据技术体系图谱全文共96页,当前为第1页。 目录 01. 数据采集 07. 数据应用 03. 数据存储 05. 基础技术 02. 数据传输 04. 数据处理 06. 数据治理 大数据技术体系图谱全文共96页,当前为第2页。 01 数据采集 大数据技术体系图谱全文共96页,当前为第3页。 日志采集 埋点 PC 打点 移动端打点 服务端打点 采集框架 Logstash Flume Fluentd Chukwa 大数据技 体系图谱全文共96页,当前为第4页。 外部数据 网络数据采集 文本 图片 视频 爬虫技术 Nutch Heritrix Scrapy WebCollector 大数据技术体系图谱全文共96页,当前为第5页。 数据采集 IoT设备 传感器 探针 大数据技术体系图谱全文共96页,当前为第6页。 02 数据传输 大数据技术体系图谱全文共96页,当前为第7页。 数据传输 消息队列 数据同步 数据订阅 序列化 大数据技术体系图谱全文共96页,当前为第8页。 数据传输 消息队列 Kafka ActiveMQ RabbitMQ RocketMQ ZeroMQ 5. 4. 3. 2. 1. 大数据技术体系图谱全文共96页,当前为第9页。 数据传输 数据同步 DataX Kettle Cannal Sqoop SymmetricDS OGG(Oracle Golden Gate) 大数据技术体系图谱全文共96页,当前为第10页。 数据传输 数据订阅 Databus 01 Wormhole 03 Otter 02 阿里云 DTS 04 大数据技术体系图谱全文共96页,当前为第11页。 数据传输 序列化 JSON 01 Protobuf 02 Hessian 03 FST 04 MessagePack 05 Avro 06 大数据技术体系图谱全文共96页,当前为第12页。 序列化 数据传输 Kryo 大数据技术体系图谱全文共96页,当前为第13页。 03 数据存储 大数据技术体系图谱全文共96页,当前为第14页。 数据存储 分布式文件/对象存储 02 物理存储 01 分布式关系型数据库 03 分析型数据库 04 搜索引擎 05 K-V存储 06 大数据技术体系图谱全文共96页,当前为第15页。 数据存储 图数据库 列存储数据库 文档数据库 时序数据库 大数据技术体系图谱全文共96页,当前为第16页。 数据存储 物理存储 主流框架 01 存储类型 02 大数据技术体系图谱全文共96页,当前为第17页。 直连式存储(DAS:Direct-Attached Storage) 网络化存储(FAS:Fabric-Attached Storage) 网络接入存储(NAS:Network-Attached Storage) 存储区域网络(SAN:Storage Area Network) 主流框架 大数据技术体系图谱全文共96页,当前为第18页。 块存储 磁盘阵列 DAS SAN 文件存储 FTP NFS NAS 对象存储 存储类型 大数据技术体系图谱全文共96页,当前为第19页。 数据存储 分布式文件/对象存储 COS(腾讯云) 02 OSS(阿里云) 01 OBS(华为云) 03 KODO(七牛云) 04 UFile(UCloud) 05 HDFS 06 大数据技术体系图谱全文共96页,当前为第20页。 数据存储 分布式文件/对象存储 Ceph 02 Open Stack Swift 01 GlasterFS 03 Facebook Hasystack 04 Lustre 05 AFS 06 大数据技术体系图谱全文共96页,当前为第21页。 OSS(阿里云) 01 06 UFile(UCloud) 03 KODO(七牛云) OBS(华为云) HDFS 02 COS(腾讯云) 04 05 分布式文件/对象存储 单击此处添加文本具体内容,简明扼要的阐述您的观点。根据需要可酌情增减文字,以便观者准确的理解您传达的思想。 单击此处添加标题 大数据技术体系图谱全文共96页,当前为第22页。 分布式文件/对象存储 Ceph 02 Open Stack Swift 01 GlasterFS 03 Facebook Hasystack 04 Lustre 05 AFS 06 大数据技术体系图谱全文共96页,当前为第23页。 数据存储 分布式关系型数据库 DRDS TiDB Cobar Mycat Aurora 5. 4. 3. 2. 1. 大数据技术体系图谱全文共96页,当前为第24页。 分布式关系型数据库 DRDS TiDB Cobar Mycat Aurora 大数据技术体系图谱全文共96页,当前为第25

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙BOOK言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值