TGViewer
开发者工具箱|编程·开发工具·资源 开发者工具箱|编程·开发工具·资源 @devtoolboxhub · 883 subscribers
Post #1824 5
SetrixDB:Go 编写的精确集合引擎

SetrixDB 是一个可嵌入的 Go 集合引擎,针对 uint64 ID 提供精确的成员判断与集合交集运算,核心思路是把集合当作位图、把交集当作 AND 操作。它面向电商筛选、权限检查、反欺诈、RAG 候选预过滤这类场景,数据本身留在原数据库,SetrixDB 作为索引或预过滤器旁路运行。

项目从零实现了最小完美哈希函数(CHD v2)做键生成,在 5000 万键上零冲突,约 4.03 bits/key,查找约 118 ns。位图 AND 内核通过 cgo 走 AVX-512,带运行时指令检测与标量回退,同一二进制可在任意 CPU 上运行。支持分片与集群模式,节点增删只重映射约 1/(N+1) 的 ID。

实测数据(2 vCPU AMD EPYC Zen4,AVX-512,Go 1.22,2026 年 9 月):
成员判断(100 万键):SetrixDB 结构占用 0.5 B/key,约 118 ns/次;Go map 为 22.3 B/key、133.3M ops/s;Bloom filter 1.2 B/key、23.6M ops/s,但有 1% 误报。
交集(A=B=100 万):AVX-512 位图 AND 6 µs,纯 Go 位图 29 µs,Roaring 148 µs(稠密 ID)/523 ms(随机 64 位 ID),排序归并 9.2 ms,hash join 91.6 ms。
真实数据集验证:Online Retail II 上 "UK AND Q4/2011 AND price ≥ 5" 返回 22,701 行、823 µs;Wikipedia 标题(1926 万条)上 "multi-word AND starts with s" 返回 1,408,399 条、9.5 ms;MovieLens 25M 上三组查询结果均与外部 sort+comm 校验一致。
同一 25M ID 宇宙、千万级集合上,排序列表归并 87.7 MB/80.4 ms,稠密位图(AVX-512)2 MB/227 µs,约快 350 倍、小 43 倍。


作者也明确列出了劣势:宇宙空间稀疏或超出内存时不如 Roaring;不支持范围查询、相似度与 join;MPHF 面向静态集合,频繁增删需要重建。当前为 v0.1.0 alpha,已在回环与双机间测试,3 节点集群在云端跑过但未经历多数据中心生产环境。

项目开源,Apache-2.0 许可,代码与可复现基准见 GitHub:GitHub

🔗 原文:点击查看
More from @devtoolboxhub
  1. Sep 23, 2026AI reshaping 全球服务外包市场 数十年来,企业扩张运营规模默认方案是将后台工作、一线客户服务和行政支持转移到低成本人力中心。 印度和菲律宾在全球服务贸易中占据了巨大份额…
  2. Sep 23, 2026AI 代理端到端开发工作流 现有AI编码代理能较好完成单个开发任务,但处理包含多个关联任务的完整功能需求时,会遇到任务编排、依赖管理和风险控制等问题。近期有文章提出一套从Epic到…
  3. Sep 22, 20262026年LLM路由工具选型对比 选择LLM路由工具的核心依据是基础设施控制权,而非模型数量。LiteLLM支持100+模型提供商,已经成为混合部署自托管模型与云端模型团队的标准方…
  4. Sep 22, 2026Archify 推出浏览器端交互式图表 Archify 是MIT许可的开源系统图表生成工具,2026年4月创建,截至2026年9月已收获超65000个Star,目前仅以Agent技…
  5. Sep 22, 2026PostgreSQL 参数 max_parallel_apply_workers_per_subscription 解析 max_parallel_apply_workers_pe…
  6. Sep 21, 2026全端离线AI助理新增拒答能力 FamiliaSync 是一款离线优先的加密家庭 organizer 应用,所有数据都存储在用户自有设备中,因此内置助理的所有查询也必须在手机本地运行…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →