【问题标题】:Is there an open source implementation of the quotient filter?是否有商过滤器的开源实现?
【发布时间】:2012-08-31 09:51:29
【问题描述】:

http://en.wikipedia.org/wiki/Quotient_filter。我还没有找到一个实现,我想要一些东西来玩,维基百科的解释对我来说有点枯燥。

【问题讨论】:

  • 我认为你应该阅读 Bender 的论文。仅从维基百科上 AMQ 的定义来看,布隆过滤器已经是 AMQ 了,所以选择任何布隆过滤器实现
  • 布隆过滤器和商过滤器都是 AMQ(近似成员查询)的示例,但它们使用不同的数据结构来实现。根据论文,两者都适用于主存,但商过滤器更适合闪存 SSD。

标签: data-structures bloom-filter


【解决方案1】:

我在 C (link) 中实现了一个商过滤器。它支持以下操作;

  • 插入(qf,键)
  • May-Contain(qf, key)
  • Remove(qf, key)(需要注意的是,请参阅 qf.h 中的文档)
  • 合并(qf1, qf2) -> qfout
  • 迭代(qf)

存储库包含一些文档和相当严格的测试套件。

【讨论】:

    【解决方案2】:

    为了玩转它,我在 PHP 中实现了一个。它不完整,但添加/包含已实现。这不是万无一失的,甚至不是错误证明。

    https://github.com/dsx724/php-quotient-filter

    希望这会有所帮助。

    【讨论】:

    • 你在这个实现中使用了哪个参考(论文?)?
    • 这是带有 3 位指纹的 Bender 纸。为简单起见,我将指纹和其余部分拆分为两个不同的数据结构,但本质上是相同的。我没有按照论文中的说明对剩余部分进行排序。
    猜你喜欢
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多