算法
近似判断值是否存在
布隆过滤器
是用bitMap来存储值得hash,可以利用多个hash函数来增加精确度。 bitMap有则可能存在,没有则一定不存在。 (guava BloomFilterStrategies)
缺点: 不支持删除元素,误算率随着数据量增加而增加
布谷鸟过滤器
在布隆过滤器的基础上增加了删除功能,原理为布谷鸟鸠占鹊巢,新的值会占用旧的值的地方,旧的值也去占用别的值位置。每个值至少可以存在两个位置
缺点: 数组必须是2的次幂,不能连续插入相同的值,可能导致循环占位,而后扩容占空间大
共识算法
Paxos
由 提案节点,决策节点,记录节点三种角色组成。 每个节点可以担任多个职位,并且遵守两个承诺一个应答原则。
Multi-Paxos
对Paxos存在的问题提出的一种优化算法,增加了选主来处理存在的活锁问题。
Gossip
流言算法、瘟疫算法, 每个节点将信息传播给与自己相连的节点,保证最终一致性
Last updated