Compressed Bloom Filters论文总结

news2024/11/15 11:10:08

Compressed Bloom Filters论文总结

  • Abstract
  • I. INTRODUCTION
  • II. COMPRESSED BLOOM FILTERS:THEORY
    • A. Bloom Filters
    • B. Compressed Bloom Filters
  • III. COMPRESSED BLOOM FILTERS:PRACTICE
  • A. Examples
  • IV. DELTA COMPRESSION
  • V. COUNTING BLOOM FILTERS
  • VI. CONCLUSION


Abstract

我们引入了压缩Bloom Filters,当Bloom Filter作为消息传递时,它提高了性能,而它的传输大小是一个限制因素。

通过使用压缩Bloom过滤器,代理可以减少广播的比特数、假阳性概率和/或每次查找的计算量。 代价是压缩和解压缩的处理时间,可以使用简单的算术编码,以及在代理处使用更多的内存,使用更大的未压缩形式的Bloom Filter。


I. INTRODUCTION

传输大小是正在发送的数据的大小; 如果不使用压缩,它只是位数组的大小,但一旦引入压缩,它可能会更小。

通过使用压缩Bloom过滤器,协议减少了广播的比特数、假阳性概率和/或每次查找的计算量

我们推荐算术编码,这是一种简单的压缩方案,非常适合这种情况,实现速度很快

可以通过在Bloom Filter中发送更改或增量)而不是新的Bloom Filters来更新的情况。


II. COMPRESSED BLOOM FILTERS:THEORY

A. Bloom Filters

特定位仍然为0的概率为
在这里插入图片描述

假阳性的概率是在这里插入图片描述

B. Compressed Bloom Filters

我们可能不想为m和n优化哈希函数的数量,而是为需要发送的数据大小或传输大小优化哈希函数的数量。
然而,传输尺寸不必是m; 我们也许可以压缩位数组。 因此,我们选择我们的参数,使使用压缩后的失效概率最小。

假设Bloom Filter上的所有查找计算都是在代理处解压缩后完成的
一个也提供随机访问的压缩方案可能允许我们在压缩的Bloom Filter上进行计算; 然而,同时实现随机访问、效率和良好压缩通常是困难的。
一种可能是将Bloom Filter拆分为几个部分,并对每个部分进行压缩。 查找一个位只需要解压缩筛选器的某一部分而不是整个筛选器,从而减少了所需的内存[11]。
如果在更新之间发生许多查找,这种方法将略微减少压缩,但会大大增加计算量。

在没有压缩的情况下使假阳性概率最小的哈希函数的数量,实际上是在压缩的情况下使假阳性概率最大的哈希函数。

压缩的Bloom Filter使用更少的哈希函数,因此每次查找需要更少的计算量。

最好的压缩布卢姆过滤器实现了与标准布卢姆过滤器相同的假阳性概率,节省了大约30%的大小

压缩后的Bloom过滤器使用了更少数量的哈希函数,因此查找更有效。


III. COMPRESSED BLOOM FILTERS:PRACTICE

  • Restrictions on m:
    压缩Bloom过滤器的大小z可能是首要的,但是对未压缩Bloom过滤器的大小的限制也限制了这种可能性
    虽然理论上我们可以很好地使用一个哈希函数和压缩,但实现一个哈希函数的假阳性概率需要m≈n/ε,这对于实际应用来说可能太大了
  • Compression overhead:
    压缩方案都有一些相关的开销,因此它们并不完全匹配熵公式所给出的空间
  • Compression variability:
    压缩性能因输入而异。 我们希望使我们的Bloom Filter内存大小尽可能大,同时保持压缩大小不超过给定阈值的高概率,这样我们就不会在几乎没有信息的情况下发送超过阈值的额外数据包。
    如果不能预先确定集合中的元素数量,则错误的预测可能会产生不充分的压缩。
  • Hashing performance:
    根据所选择的数据和哈希函数,实际哈希函数的行为可能与上面的分析不同。

选择所需的最大未压缩大小。 然后利用上述理论设计了一个压缩bloom filter,其压缩尺寸比期望的要小一些
例如,如果目标是压缩大小为z,则设计结构以使压缩大小为0.99z。 这为压缩中的一些可变性提供了空间。

每种过滤器类型都与大小数组、一组散列函数和一个解压缩方案相关联。

A. Examples

一旦我们引入压缩,优化的未压缩滤波器实际上产生了最大的假阳性概率
在这里插入图片描述


IV. DELTA COMPRESSION

在Web缓存共享设置中,代理定期广播对其缓存内容的更新。这些更新可以是新的Bloom过滤器,也可以是更新后的过滤器和旧过滤器之间变化的表示。
更新的和旧的过滤器之间的差异或增量可以用相应大小的位数组的异或表示,然后可以使用上面的算术编码对其进行压缩。

将压缩Bloom过滤器与增量压缩结合使用可以获得更大的性能增益。

发送增量可能不适用于可靠性较差的系统; 错过的增量可能意味着代理筛选器在很长一段时间内保持不正确的同步(假设偶尔发送完整的筛选器来重新同步)


V. COUNTING BLOOM FILTERS

其中Bloom Filter数组不使用位数组,而是使用每个条目的少量位来保持计数

如果一个人想把计数Bloom过滤器作为信息传递,压缩将产生巨大的收益。 每个数组条目的熵将比每个条目使用的比特数小得多,因为很大的计数是极不可能的。


VI. CONCLUSION

我们已经证明,使用压缩可以提高Bloom Filter的性能,在这个意义上,我们可以获得比不使用压缩的Bloom Filter更小的假阳性概率作为压缩大小的函数。

我们的分析高度依赖于这样一个假设,即用于Bloom Filter的散列函数的行为类似于完全随机的函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/59707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Elasticsearch面试题

Elasticsearch面试题 1 为什么要使用Elasticsearch? 系统中的数据,随着业务的发展,时间的推移,将会非常多,而业务中往往采用模糊查询进行数据的搜索,而模糊查询会导致查询引擎放弃索引,导致系统查询数据…

C#/WPF/.NET 找到的程序集清单定义与程序集引用不匹配

vs 窗口报错 引发的异常:“System.Windows.Markup.XamlParseException”(位于 PresentationFramework.dll 中) “初始化“CircularGauge.CircularGaugeControl”时引发了异常。”,行号为“288”,行位置为“23”。代码位置报错 FileLoadException: 未能…

【Qt记录】属性 Q_PROPERTY

使用: Qt 拥有一个属性系统。我经常在QSS中使用 QWidget#SWNotifyMsgDialog QLabel#label_sure[status"normal"]配合在代码中使用 ui.label_sure->setProperty("status","warning"); 函数原型:bool QObject:setProp…

物联网开发笔记(56)- 使用Micropython开发ESP32开发板之手机蓝牙控制舵机

一、目的 这一节我们学习如何使用我们的ESP32开发板来实现通过蓝牙控制接在ESP32开发板上的舵机。 二、环境 ESP32 MG90S舵机 Thonny IDE 几根杜邦线 手机 舵机的链接方法见第54节:物联网开发笔记(54)- 使用Micropython开发ESP32开发板之…

Win11的两个实用技巧系列之电脑死机解决办法

目录 Win11电脑突然死机卡住不动?Win11电脑死机屏幕静止 方法一: 方法二: sfc包括有以下命令: 方法三: 点击拿去 Win11电脑突然死机卡住不动?Win11电脑死机屏幕静止 在使用Win11系统时,很多用户经常会遇到自己…

12月3日下午:thinkphp框架中的视图以及模型剩余部分

回忆知识: dump()与halt()方法 dump():输出内容后不会终止脚本,会继续向下执行 halt():输出内容后会终止脚本,结束程序 //dump()和halt()public function haltTest(){$result \db(demo)->where(id,,1)->select…

【Qt记录】Windows 窗口层级(Z-order)

功能:软件有一个提示弹窗,希望让他永远在最上面,保证该窗口在任何情况下不会被遮挡。 由上面的问题就查找对应的api找到了SetWindowPos()。 在说这个函数之前,先了解以下概念: Z-order(Z顺序&#xff09…

6. SpringBoot 整合 RabbitMQ

二八佳人体似酥&#xff0c;腰间仗剑斩愚夫。虽然不见人头落&#xff0c;暗里教君骨髓枯。 创建一个 普通的 Spring Boot Web 项目 整合 RabbitMQ pom.xml 添加依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-st…

【云原生】一文带你吃透FlexManager数据传入华为云IOT

文章目录一、华为云设备接入服务1、创建设备接入基础版2、创建产品实例3、在产品下创建设备实例二、FlexManager部署一、华为云设备接入服务 设备接入服务&#xff08;IoTDA&#xff09;是华为云的物联网平台&#xff0c;提供海量设备连接上云、设备和云端双向消息通信、批量设…

【Linux】守护进程

文章目录任务管理进程组作业会话任务管理操作相关操作守护进程创建守护进程daemon函数创建守护进程所谓的项目部署任务管理 进程组 进程组是一个或多个进程的集合。每个进程除了有一个进程ID之外&#xff0c;还属于一个进程组。 每个进程组有一个唯一的进程组ID。每个进程组都…

CTFShow re2 (RC4

参考&#xff1a;CTFSHOW re2 本文&#xff1a;跟着大佬的博客一步一步做CTFShow re2的记录 IDA分析 有个比较函数 re一下 s "DH~mqqvqxB^||zllJq~jkwpmvez{" s1 for i in s:s1 chr(ord(i) ^ 0x1f) print(s1)得到 再四处看看 跟进sub_401028 四个sub点进去看看…

禅道登录-调用API方式

禅道提供了API机制方便于大家和其他的系统进行集成&#xff0c;API机制也都是基于http协议的&#xff0c;返回的数据以json格式存储。禅道的API都是需要先登录后才能进行接口调用&#xff08;登录返回的cookie需要在之后的每次请求中携带用于验证身份信息&#xff09;。网上关于…

DNS中有哪些值得学习的优秀设计

为什么要有DNS 如果我们想要访问某度&#xff0c;你可以在浏览器上的搜索栏里输入112.80.248.76这个IP地址&#xff0c;直达页面。 通过IP访问网页 这样的行为&#xff0c;合法&#xff0c;但有病。 大部分人&#xff0c;连自己对象的电话号码都记不住&#xff0c;又怎么可能…

shell脚本受限执行

shell 中运行的脚本或脚本的个代码断会禁用一些正常 shell 中可以执行的命令.这是限制脚本用户的权限和最小化运行脚本导致的破坏的安全措施.受限的内容包括&#xff1a;使用 cd 命令更改工作目录. 更改环境变量$PATH, $SHELL, $BASH_ENV,或$ENV 的值. 读或更改 shell 环境选项…

ARM 反汇编工具objdump的使用简介

一、反汇编的原理 & 为什么要反汇编 arm-linux-objdump -D led.elf > led_elf.dis-D, --disassemble-all Display assembler contents of all sectionsobjdump 是 gcc 工具链中的反汇编工具&#xff0c;作用是由编译链接好的 elf 格式的可执行程序反过来得到汇编源代…

【期末大作业】基于HTML+CSS+JavaScript网上订餐系统(23个页面)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

26-38-javajvm-类加载器子系统

26-javajvm-类加载器子系统&#xff1a; 1.内存结构概述 2.类加载子系统 2.1 类加载器子系统的作用 1&#xff09;、类加载器子系统负责从文件系统或者网络中加载Class文件&#xff0c;class文件在文件开头有特定的文件标识。 2&#xff09;、ClassLoader只负责class文件的加…

常用的shell命令

常用的shell命令 1、ls命令 功能&#xff1a;显示文件和目录的信息 ls 以默认方式显示当前目录文件列表 ls -a 显示所有文件包括隐藏文件 ls -l 显示文件属性&#xff0c;包括大小&#xff0c;日期&#xff0c;符号连接&#xff0c;是否可读写及是否可执行 ls -lh 显示文件的…

1547_AURIX_TC275_CPU子系统_数据存储接口

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 这个可以对比PMI来看一下&#xff0c;相比于PMI&#xff0c;DMI的结构简单很多。 1. 之前在看cache以及其对指令读取速度影响的时候&#xff0c;可能弄错了一个概念。如果cache不命中&…

【JavaEE】认识多线程(一)

✨哈喽&#xff0c;进来的小伙伴们&#xff0c;你们好耶&#xff01;✨ &#x1f6f0;️&#x1f6f0;️系列专栏:【JavaEE】 ✈️✈️本篇内容:了解多线程(初阶) &#x1f680;&#x1f680;代码存放仓库gitee&#xff1a;JavaEE初阶代码存放&#xff01; ⛵⛵作者简介&#x…