布隆过滤器、一致性哈希算法总结

来源:互联网 发布:互网络出版许可证 编辑:程序博客网 时间:2024/06/03 19:36
认识布隆过滤器
不安全网页的黑名单包含 100 亿个黑名单网页,每个网页的 URL 最多占用 64B。 现在想要实现一种网页过滤系统,可以根据网页的 URL 判断该网页是否在黑名单上,请设计该系统。
1.该系统允许有万分之一以下的判断失误率。
2.使用的额外空间不要超过 30GB。


哈希离散函数性质:
①输入域无穷大
②输出域有限
③当输入同样的参数,一定有相同的输出值
④在不同输入值的情况下,对于结果域中的不同输出值出现概率相等
结果结果分布越离散,该函数性能越好


一般这种题,应该问是否可以有失误的情况


预期样本量,预期失误率,选择多少个哈希函数,输入域无限制,十分省空间








一致性哈希算法的基本原理
工程师常使用服务器集群来设计和实现数据缓存,以下是常见的策略:
1.无论是添加、查询还是删除数据,都先将数据的 id 通过哈希函数转换成一个 哈希值,记为 key。
2.如果目前机器有N台,则计算key%N的值,这个值就是该数据所属的机器编号,无论是添加、删除还是查询操作,都只在这台机器上进行。
请分析这种缓存策略可能带来的问题,并提出改进的方案。


解决数据迁移的压力,便于扩容
若真实机器数量不足以体现离散的优势,则主要思路是添加很大数量的虚拟机,并维持一个路由表,以实现一致性哈希算法的优势