跳转到主要内容

高性能持久Bloom过滤器

项目描述

[![构建状态](https://travis-ci.org/crankycoder/hydra.svg?branch=master)](https://travis-ci.org/crankycoder/hydra)

Hydra:Python Bloom过滤器。

使用Cython 0.24或更高版本编译。

Hydra是一个高性能的Bloom过滤器。它基本上是将Cassandra的Bloom过滤器移植过来,并加入了一些有趣的Cython技巧。

1) 它使用内存映射I/O进行持久化。在Linux上,mmap使用MAP_POPULATE标志,所以整个文件都加载到内核空间虚拟内存中。换句话说 - 快速。

2) 哈希函数使用MurmurHash3算法,因此它应该很快,并且具有优秀的键分布和雪崩特性。

3) 过滤器导出类似于集合的接口。使用 .add(..)、.contains() 或使用 “in” 操作符。

  1. 测试。OMG没有测试的人有什么问题?

过滤器支持使用fdatasync()定期强制同步到磁盘,或者您也可以在过滤器超出作用域或进程终止时让资源释放器将所有内容刷新到磁盘。

水蛇是多头的蛇。它们也是胸前带有蛇形标志的坏小子,经常试图殴打尼克·弗瑞。现在它是一个布隆过滤器。

大多数时候,我不愿意再创建另一个名为PySomeLibraryName的库。

构建、安装开发版本并测试

$ pip install -r requirements.txt $ cythonize src/_hydra.pyx $ python setup.py develop $ python setup.py test

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

Hydra-2.5.tar.gz (82.4 kB 查看散列)

上传时间 源代码

支持