What’s the Difference? Efficient Set Reconciliation without Prior Context研读笔记

文章信息

D. Eppstein, M. T. Goodrich, F. Uyeda, and G. Varghese, “What’s the Difference? Efficient Set Reconciliation without Prior Context,” in Proceedings of the ACM SIGCOMM 2011 conference, Toronto, Ontario, Canada, Aug. 2011, pp. 218–229, doi: 10.1145/2018436.2018462.

文章内容

概述

假设集合 S = { 0 , 1 , ⋯   , u − 1 } S=\{0, 1, \cdots, u-1\} S={ 0,1,,u1}. 有两个网络节点A和B分别收到了一个数据集 A = { a 1 , ⋯   , a s } A = \{a_1, \cdots, a_s\} A={ a1,,as} B = { b 1 , ⋯   , b t } B = \{b_1, \cdots, b_t\} B={ b1,,bt}, a i ∈ S , b j ∈ S , 1 ≤ i ≤ s , 1 ≤ j ≤ t a_i\in S, b_j \in S, 1\le i\le s, 1\le j \le t aiS,bjS,1is,1jt. S A S_A SA S B S_B SB可能有部分重合的元素, 但是也可能有部分不重合的元素. 我们现在需要使用较小的带宽, 较小的时间和空间复杂度来计算 A ∩ B ˉ A\cap\bar{B} ABˉ A ˉ ∩ B \bar{A}\cap B AˉB. 为解决这一问题, 本文提出了一个方案, 成为差异摘要 (Difference Digest). 差异摘要包含两个部分, 即可逆布隆过滤器 (Invertible Bloom Filter) 和 分层估计器 (Strata Estimator). '分层估计器’可以对 A A A B B B中不重合的元素的个数进行估计, 且’分层估计器’所需的内存空间仅为 O ( log ⁡ u ) O(\log u) O(logu). 注意, 尽管’分层估计器’可以对 A A A B B B中不重合的元素个数进行估计, 但是它却不能将它们准确地恢复出来. 假设 A A A B B B中不重合的元素的个数为 d d d, 若我们把’可逆布隆过滤器’的容量设为 1.5 α 1.5\alpha 1.5α, 则可以比较准确地恢复出所有 A A A B B B中不重合的元素. 注意, '可逆布隆过滤器’不保证将所有的不重合的元素都恢复出来, 但是能够以极大概率恢复绝大部分的元素. 接下来, 我们将对’可逆布隆过滤器’和’分层估计器’进行简要的介绍.

可逆布隆过滤器 (可布器)

网络节点A和B都分别维护了一个’可逆布隆过滤器’. ‘可逆布隆过滤器’实际上是一个哈希表. 其中每个哈希桶包含三个域, 即’标识符和’, ‘哈希和’和’计数值’. A和B的’可逆布隆过滤器’都具有相同的哈希桶数目 n n n, 且他们都采用相同的方法来更新’可逆布隆过滤器’. 假设我们有 k k k个哈希函数 h 1 , ⋯   , h k h_1, \cdots, h_k h1,,hk, 这些哈希函数可以将一个元素随机映射到’可布器’的一个哈希桶. 此外我们还有一个哈希函数 H H H可将一个元素映射到一个固定长度的哈希值. 将一个元素插入’可布器’的方法如下:

  1. 依次使用 h 1 , ⋯   , h k h_1, \cdots, h_k h1,,hk将这个元素映射到’可布器’的 k k k个不同的哈希桶;
  2. 对每个哈希桶更新如下: 标 识 符 和 ← 标 识 符 和 ⊕ 元 素 . 标 识 符 哈 希 和 ← 哈 希 和 ⊕ H ( 元 素 . 标 识 符 ) 计 数 值 ← 计 数 值 + 1 标识符和\gets 标识符和\oplus 元素.标识符\\ 哈希和\gets 哈希和\oplus H(元素.标识符)\\ 计数值 \gets 计数值+1 .H(.)+1

当我们将集合 A A A和集合 B B B分别插入A和B的’可布器’以后, 我们就可以令A将它的’可布器’传送给B, 再由B结合它自己的可布器来计算 A ∩ B ˉ A\cap\bar{B} ABˉ A ˉ ∩ B \bar{A}\cap B AˉB. 当B收到A的’可布器’以后, 它会根据A的可布器 T A T_A

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值