1 分•作者: MilnerRoute•9 个月前
返回首页
最新
1 分•作者: orderone_ai•9 个月前
3 分•作者: transpute•9 个月前
1 分•作者: Nurbek-F•9 个月前
1 分•作者: znano•9 个月前
1 分•作者: blackpc•9 个月前
1 分•作者: znano•9 个月前
3 分•作者: mattismegevand•9 个月前
8 分•作者: dangoodmanUT•9 个月前
嘿,Hacker News!这个周末我被布隆过滤器给“极客狙击”了,特别是在搜索具有高“基数”(唯一项目数量)的数据集时。<p>它们是一种_惊人_的数据结构,在固定大小的情况下,可以跟踪潜在的集合成员资格。这意味着与普通的 B 树索引不同,它们不会随着数据集中唯一项目数量的增加而增长。<p>这使得它们非常适合“大海捞针”式的搜索(日志、文档),正如 VictoriaMetrics 和必应的 BitFunnel 等实现所展示的那样。我过去也用过它们,但它们从未在我的项目中占据中心位置。<p>我希望为另一个项目实现高基数的关键词搜索……然后,好吧,我们开始陷入“剃牦牛”的兔子洞!<p>BloomSearch 将其带入一个可扩展的 Go 包中:<p>- 通过布隆过滤器和流式行扫描实现非常高的内存效率<p>- DataStore 和 MetaStore 接口,适用于任何后端(可以相同或分离)<p>- 通过分区、minmax 索引,当然还有布隆过滤器进行分层剪枝<p>- 通过字段、标记或字段:标记以及复杂的组合器进行搜索<p>- 分离存储和计算,实现无限制的摄取和查询吞吐量<p>当然,你们知道我不得不创建一个自定义文件格式 ^-^ (FILE_FORMAT.MD)<p>BloomSearch 针对大规模并发、任意基数和数据集大小以及超低内存使用进行了优化。在大小和性能优化方面,还有很多工作要做,但我已经对它非常满意了。通过分布式查询处理,我的目标是在大型数据集上实现 >1000 亿行/秒的处理速度。<p>我也很高兴能用它来取代我们庞大的日志记录费用,大约 0.003 美元/GB 的日志存储,实现无限保留和无负担的查询 :P
1 分•作者: ivanjermakov•9 个月前
1 分•作者: marvin-hansen•9 个月前
1 分•作者: bookofjoe•9 个月前
2 分•作者: thunderbong•9 个月前
2 分•作者: gmays•9 个月前
1 分•作者: baxtr•9 个月前
1 分•作者: nyc111•9 个月前
1 分•作者: microsoftedging•9 个月前
6 分•作者: Bluestein•9 个月前
2 分•作者: zdw•9 个月前
8 分•作者: bwm•9 个月前