假设我们必须在一台具有32gbram和硬盘驱动器的机器上构建一个具有10^12个存储桶的bloom过滤器。假设密钥很小,并且已经在硬盘上了。我们怎样才能有效地构建它?我的猜测是将bloom过滤器分成4部分(125gb/4适合32gb)。然后每次传递4次数据,散列并更新内存中相应的片。连接4片回来得到完整的布鲁姆过滤器。是这样吗?
rseugnpd1#
你为什么需要这么大的过滤器?为了处理来自流媒体源的无限数据,您是否试图高估它?如果是,您可以阅读关于稳定的bloom过滤器和可伸缩的bloom过滤器。两者都比经典的bloom过滤器更适合这种类型的数据。为了回答你的问题,如果你分开你的过滤器,你告诉什么应该工作。但要确保正确处理索引。例如,如果4个元素的位向量在2个节点上被拆分,那么第一个节点负责索引(0,1),第二个节点负责索引(2,3)。您可能会使它复杂一点,并将什么范围的Map存储在什么节点中,并相应地修改读写部分。您还可以搜索so分布式bloomfilter的实现示例。也许它会给你另一个疑问点,或者,你不必从头开始开发你的解决方案,你可以快速测试它在你的数据管道中的行为。在任何情况下,如果你能在这里给出简短的反馈,说明你是如何处理这个问题的,如果你最终选择了另一个解决方案,那就太好了。
1条答案
按热度按时间rseugnpd1#
你为什么需要这么大的过滤器?为了处理来自流媒体源的无限数据,您是否试图高估它?如果是,您可以阅读关于稳定的bloom过滤器和可伸缩的bloom过滤器。两者都比经典的bloom过滤器更适合这种类型的数据。
为了回答你的问题,如果你分开你的过滤器,你告诉什么应该工作。但要确保正确处理索引。例如,如果4个元素的位向量在2个节点上被拆分,那么第一个节点负责索引(0,1),第二个节点负责索引(2,3)。您可能会使它复杂一点,并将什么范围的Map存储在什么节点中,并相应地修改读写部分。
您还可以搜索so分布式bloomfilter的实现示例。也许它会给你另一个疑问点,或者,你不必从头开始开发你的解决方案,你可以快速测试它在你的数据管道中的行为。
在任何情况下,如果你能在这里给出简短的反馈,说明你是如何处理这个问题的,如果你最终选择了另一个解决方案,那就太好了。