8作者: dangoodmanUT7 个月前原帖
嘿,HN!这个周末我被布隆过滤器吸引了,特别是用于搜索高“基数”(唯一项数量)数据集。 它们是一种_惊人的_数据结构,在固定大小的情况下,跟踪潜在的集合成员资格。这意味着,与普通的B树索引不同,它们不会随着数据集中唯一项数量的增加而增长。 这使得它们非常适合“干草堆中的针”搜索(日志、文档),正如VictoriaMetrics和Bing的BitFunnel所展示的那样。 我过去使用过它们,但在我的项目中从未成为核心。 我想为另一个项目实现高基数的关键词搜索……于是,我们就开始了这段探索之旅! BloomSearch将其整合到一个可扩展的Go包中: - 通过布隆过滤器和流式行扫描实现非常高效的内存使用 - 提供DataStore和MetaStore接口,适用于任何后端(可以是相同或不同的) - 通过分区、最小最大索引以及当然的布隆过滤器进行层次化修剪 - 通过字段、令牌或字段:令牌进行复杂组合的搜索 - 解耦存储和计算,以支持无限制的数据摄取和查询吞吐量 当然,你知道我必须制作一个自定义文件格式 ^-^(FILE_FORMAT.MD) BloomSearch针对大规模并发、任意基数和数据集大小进行了优化,并且内存使用极低。 在大小和性能优化方面仍有很多潜力,但我已经对此感到非常满意。通过分布式查询处理,我的目标是超过100亿行/秒的查询速度,适用于大数据集。 我也很期待用无限保留和无负担查询替代我们每GB约0.003美元的高日志存储费用 :P
5作者: amichail7 个月前原帖
特别是,C64可以在内存中预先加载一个已经准备好运行的BASIC程序。<p>它甚至可以自动列出程序代码(LIST),然后为你运行(RUN)这个程序。<p>为了避免打扰用户,程序应该只进行一些计算,打印结果,然后退出,而不需要任何用户输入。<p>你甚至可以在ROM中存储一系列短程序,每次C64启动时随机选择一个运行。<p>你认为这会鼓励更多用户学习BASIC编程吗?