{"source":{"id":"mb-20260827-2f2d5f","title":"一个 48 KB 的轻量数据库索引，体积只有传统 B 树的四千五百分之一","url":"https://mubeitech.com/p/mb-20260827-2f2d5f"},"method":"semantic-similarity","count":6,"items":[{"rank":1,"id":"mb-20260827-ea4977","account":"mubei","brand":"","title":"在 2500 亿条全局缓存的尺度下，结构体里每多留一个无用字段，代价是 15000 GB 物理内存","summary":"在 2500 亿条全局缓存的尺度下，结构体里每多留一个无用字段，代价是 15000 GB 物理内存","body":"在 2500 亿条全局缓存的尺度下，结构体里每多留一个无用字段，代价是 15000 GB 物理内存。\n每条缓存只要浪费一个字节，乘以全网基数，就是 250 GB 内存凭空蒸发。\n现代编程语言总在强调灵活、动态、可扩展。\n但当海量数据一旦写入就永远不可变时，那些为了防御未知扩容而预留的抽象，到底在暗中吞噬多少硬件账单？\nCloudflare 负责承载 1.1.1.1 的 DNS 解析引擎 Big Pineapple，在全球同时维持着 2500 亿条缓存。\n工程师在底层 Rust 内存布局上连砍 5 刀，把单条缓存从 953 字节压到 420 字节。\n全网直接抠出 100 TB 内存，相当于 130 台顶配 Gen 13 服务器的物理内存总和。\n更反直觉的是：内存砍掉 56%，写入吞吐反而暴涨 43%，读取延迟下降 19%。\n这台让事件得以发生的机器，叫不可变数据的动态税。\n第一刀，砍掉容量字段。\n开发习惯随手使用的 Vec 和 String，在底层都由 3 个字段构成：指针、长度、容量，各占 8 字节。\n只要数据存入缓存，生命周期内就绝不再追加。\n那个用来防扩容溢出的容量字段完全是摆设，加上堆上过度预留的闲置空间，纯属白白占座。\n换成只含指针和长度的不可变切片 Box，单条缓存 8 个字段直接省下 64 字节。\n仅这一步，全网立刻抹掉 15 TB 内存。\n第二刀，消除多余指针。\n一条 DNS 响应包含应答、权威、附加三部分数据。\n传统设计会建 3 个独立列表，各背 16 字节的指针和长度。\n改造成一个连续大列表，每个分区的切分点改用 2 字节的 u16 偏移量定位。\n干掉 2 个独立列表，净省 28 字节，同时消除多余的内存对齐填充。\n第三刀，拆解枚举的对齐膨胀。\nRust 的枚举是标签联合体，整个结构体的大小，必须硬性对齐体积最大的那个变体。\n一个极其罕见的 NAPTR 记录因为字段繁多占了 136 字节，直接把整个记录枚举强行垫到 144 字节。\n而占全球 80% 以上流量的普通 A 记录只有 4 字节，AAAA 记录只有 16 字节。\n这意味着每一次最常规的解析，都要替那个几乎遇不到的冷门记录，平白背上 120 多字节的空白填充。\n把超大变体单独装箱丢到堆上，让核心枚举瞬间缩回正常体型。\n第四刀，剥离冗余的所有者域名。\n绝大多数解析记录的域名，和最初发起的查询键名完全一致。\n把原本每个记录都单独存一份的域名改成 Option，一致时设为 None，读取时直接复用现成键名，零堆分配。\n只有遇到 CNAME 这类跳转、域名发生变化时，才在堆上分配存储。\n第五刀，回归网络线格式。\n堆上分散的独立分配，会让内存分配器 jemalloc 产生尺寸对齐浪费，更会把数据打散在内存各处。\n最终把记录数据直接打包成紧凑的原生二进制线格式，通过全局复用的缓冲池写入。\n这不仅消除了内存碎片，更带来质的飞跃：\n由于主流记录已经是二进制格式，组装 DNS 响应时直接整块内存复制，跳过了逐字段序列化的 CPU 开销。\n计算机科学里有一条常识：时间换空间，空间换时间。\n但在现代硬件架构下，这条规律正在被改写。\nCPU 的计算速度极快，真正的瓶颈永远卡在数据在内存与核心之间搬运的延迟。\n当离散的指针被消除、多余的填充被剔除，数据紧凑地聚拢在连续内存中，CPU 缓存一行就能装下整条记录。\n减少内存占用的过程，恰恰消灭了 CPU 跨越堆空间去寻址的开销。\n最顶级的系统性能优化，往往不是去换更快的芯片。\n是在数据不可变的那一刻，果断剥掉现代编程语言强加给你的所有动态幻觉。","category":"科技","score":null,"translated_x_url":null,"translated_status_id":null,"published_at":"2026-08-27 21:12:42","created_at":"2026-08-27 21:12:42","url":"https://mubeitech.com/p/mb-20260827-ea4977","markdown_url":"https://mubeitech.com/p/mb-20260827-ea4977/markdown"},{"rank":2,"id":"2090797317830193188","account":"mubei","brand":"@mubei","title":"PostgreSQL 能拿下今天的数据库江山，全靠死对头甲骨文送助攻。 80 多岁还在创业的 Postgres 之父斯通…","summary":"PostgreSQL 能拿下今天的数据库江山，全靠死对头甲骨文送助攻。 80 多岁还在创业的 Postgres 之父斯通布雷克，最近公开致谢甲骨文。 \"我们真得好好感谢甲骨文，当年他们买下 MySQL，所有人都慌了，那正是 Postgres 崛起的起点。\" 时间拉回 2010 年…","body":"PostgreSQL 能拿下今天的数据库江山，全靠死对头甲骨文送助攻。\n80 多岁还在创业的 Postgres 之父斯通布雷克，最近公开致谢甲骨文。\n\"我们真得好好感谢甲骨文，当年他们买下 MySQL，所有人都慌了，那正是 Postgres 崛起的起点。\"\n\n时间拉回 2010 年。\n甲骨文出手收购了 MySQL。\n当时的甲骨文明明什么坏事都还没做，全球开发者就已经开始恐慌性出逃。\n所有人都在找退路，那一刻成了 PostgreSQL 崛起的起点。\n\n十五年过去，当年的恐慌被证明完全是对的。\n2025 年 9 月，甲骨文对核心 MySQL 团队进行了大规模裁员。\n斯通布雷克如今对老对手的断言：MySQL 作为一个竞争对手，正在消失。\n\n另一边呢？\n2023 年，PostgreSQL 登顶全球开发者中最受欢迎的数据库。\n微软、谷歌、亚马逊，全都围绕它的协议搭建自家的云服务。\n为什么它能持续赢下去？\n斯通布雷克说，它由二三十位极其聪明的超级程序员掌控，这才是开源最极致的状态。\n\n甲骨文花了整整十五年，无意中替对手打造了最大的优势。\n从第一天起，PostgreSQL 就从来没有一个需要让人害怕的单一掌控者。","category":"其它","score":null,"translated_x_url":"https://x.com/i/status/2091121242552012890","translated_status_id":"2091121242552012890","published_at":"2026-08-22 11:09:46","created_at":"2026-08-22T12:56:55+02:00","url":"https://mubeitech.com/p/2090797317830193188","markdown_url":"https://mubeitech.com/p/2090797317830193188/markdown"},{"rank":3,"id":"mb-20260827-5f4919","account":"mubei","brand":"","title":"在一个 30MB 的程序里，哪怕只改动一行代码","summary":"在一个 30MB 的程序里，哪怕只改动一行代码","body":"在一个 30MB 的程序里，哪怕只改动一行代码。\n整整 4MB 的底层字节全被重新洗了一遍。\n13% 的机器指令、所有的跨函数调用、以及整张函数表，瞬间全部变样。\n如果改动涉及几个功能模块，超过 70% 的字节都会面目全非。\n可你在源码里，明明只是修改了一个字符。\n为什么一个微小的改动，会引发整座二进制大厦的雪崩？\n因为现代编译系统在排布代码时，所有函数都是首尾相连紧密贴合的。\n排在中间的函数稍微变长了几个字节。\n排在它后面的成千上万个函数，在内存里的物理地址全被硬生生往后推了一格。\n每一个跳向这些函数的调用指令。\n每一个跨区域的指针引用。\n全都被链接器重新修改了一遍地址。\n更要命的是 Go 语言的自身机制。\n为了在程序崩溃时能打印出精准的堆栈和行号。\n编译器在程序里塞进了一张庞大的函数元数据表。\n这张表独占了整个程序将近三分之一的体积。\n骨牌一旦倒下，整张表里的几十万个偏移量记录，瞬间全被重写。\n过去二十年里，全世界分发软件更新，用的都是通用的二进制差分工具。\n比如经典的 bsdiff。\n这类工具的底层逻辑。\n是把编译好的可执行文件，当成一串毫无意义的黑盒字节流。\n面对这种雪崩式的地址移位，通用算法根本看不懂发生了什么。\n它只能老老实实把每一个变动过的地址当成全新的数据，打包进补丁文件里。\n结果就是：哪怕只改动一行代码。\n通用压缩工具生成的增量补丁，依然高达 150KB 到 500KB。\n如果是在机房之间分发还好。\n但在弱网环境或者跨国网络中。\n遇到 1% 的网络丢包。\n每多几十 KB 的冗余数据，传输耗时就会从几秒直接飙升到几分钟。\n解开这个死结的钥匙，藏在 Google 早年间做的一个精巧设计里。\n2009 年，Google 遇到了同样的难题。\n为了给全球数亿用户静默推送 Chrome 浏览器更新。\n工程师研发了一套名为 Courgette 的差分算法。\nGoogle 的核心洞见切中了要害：\n可执行文件不是随机生成的噪音，它是由严密的编译器逻辑塑造出来的结构体。\n既然两台机器都知道编译器是怎么工作的。\n为什么要在网络上传输那些本来就能推算出来的地址变化？\nGoogle 的做法很大胆：\n把旧版本和新版本全部反汇编。\n将所有具体的内存地址抹平，换成抽象的符号标签。\n只在纯逻辑层面做差分。\n补丁体积瞬间从几百 KB 砍到了几十 KB。\n而开源项目 go-binsync 把这个思路推到了更深处。\n它甚至不需要做繁琐且容易出错的反汇编。\n因为 Go 语言哪怕剥离了所有调试符号。\n内部依然完整保留着那张结构规整的函数表。\n新旧两个版本的程序一碰头。\n工具直接读取这张函数表，按函数名对齐每一个代码块。\n只要知道哪几个函数变长了。\n接收端直接在本地模拟编译器的排布规则。\n分毫不差地预测出后面每一个函数挪到了什么新地址。\n它根本不需要在网线上传输那几十万处被挪动的指针。\n它只需要传输真正新增的几行机器码，外加一份极短的预测纠偏记录。\n这台机器跑出来的数字相当惊人。\n在一个 30MB 的程序里改动一行代码：\n通用差分工具 bsdiff 生成的补丁是 150,475 字节。\n而采用结构预测编码的补丁，只有 2,262 字节。\n补丁体积瞬间缩小了 67 倍。\n哪怕只是在一个字符串里加了 3 个字节。\n补丁更是直接被压到了 438 个字节。\n在 Prometheus 监控系统的真实版本升级中：\n从 3.13.1 到 3.13.2，面对 94MB 剥离符号后的程序。\n全量压缩下载需要传输 20.6MB。\n通用差分需要 2.69MB。\n而结构预测补丁只有 95KB，体积缩小了整整 28 倍。\n在 20Mbps 带宽加 1% 丢包率的常规网络下。\n全量下载需要 2.4 分钟。\n通用差分需要 15 秒。\n而它只需要 1.0 秒。\n甚至因为省去了构建全文件后缀数组的暴力计算。\n补丁的生成速度反而比传统工具快了三倍。\n过去半个世纪的信息论，习惯把压缩当成纯粹的统计学博弈。\n数据被视作黑盒，算法在字节与概率之间寻找重复的模式。\n可软件从来不是无规律的黑盒。\n最高级的压缩，从来不是在传输通道里寻找统计冗余。\n是把生成端的确定性逻辑，直接变成接收端的推演引擎。\n当通信的两端共享了同一套编译规律。\n物理网络真正需要承载的，就只剩下那些无法被逻辑推演出来的意外。","category":"科技","score":null,"translated_x_url":null,"translated_status_id":null,"published_at":"2026-08-27 22:36:41","created_at":"2026-08-27 22:36:41","url":"https://mubeitech.com/p/mb-20260827-5f4919","markdown_url":"https://mubeitech.com/p/mb-20260827-5f4919/markdown"},{"rank":4,"id":"mb-20260825-bb71f5","account":"mubei","brand":"","title":"在很多技术发布会和基准测试榜单上，大模型编写底层 GPU 算子代码，已经能跑出惊人的成绩","summary":"在很多技术发布会和基准测试榜单上，大模型编写底层 GPU 算子代码，已经能跑出惊人的成绩","body":"在很多技术发布会和基准测试榜单上，大模型编写底层 GPU 算子代码，已经能跑出惊人的成绩。\n在开源微基准测试 KernelBench 上，AI 智能体写出来的算子不仅全部通过单元测试，还能比官方库快出两三倍。\n但只要把这些在沙盒里跑赢的算子，真正塞进一个完整的大模型推理脚本里，车祸立刻发生。\n原本在单点测试里快如闪电的代码，一进真实业务毫无起色，甚至直接引发显存溢出和隐性崩溃。\n为什么在孤立测试台上跑分的顶级算子，一进真实生产环境就失灵？\n是基准测试的题目太假，还是我们在测量代码性能的时候，从一开始就看错了物理现实？\n拆开现代 GPU 的算力黑箱，会看到一条横亘在实验室跑分和真实系统之间的冰冷断层。\n基准测试与部署断层（Benchmark-to-Deployment Gap）。\narXiv 最新发表的一篇论文（arXiv:2608.21836，已被 EMNLP 2026 主会录用），由学者 Hui Zeng 等人把这个行业痛点彻底扒开了。\n过去大家优化算子，习惯把注意力集中在单点上：把一个注意力机制、矩阵乘法或者激活函数单独抽出来，扔进一个无菌的测试台里。\n在孤立的测试台里，算子吃的是形状固定、连续规整的干净张量，缓存被预热到最佳状态，完全没有其他任务来抢资源。\n但在一个真实运转的大模型推理工作流里，根本不存在这种理想无菌的环境。\n大模型推理由两个物理特性完全不同的阶段咬合而成。\n第一个阶段是首字预填充（Prefill）。\n几十上百个提示词词元同时涌入，算力被瞬间拉满，GPU 处于计算受限状态。\n第二个阶段是逐字生成（Decode）。\n模型一个词元一个词元往外吐，每吐一个词都要去显存里读取一次庞大的键值缓存（KV Cache），GPU 瞬间切换到显存带宽受限状态。\n一个在孤立测试台上被调优到极速的算子，对这两个截然不同的动态阶段一无所知。\n它为了在单点测试里刷出高分，可能会贪婪地霸占所有的寄存器和共享显存。\n一旦回到真实的多层神经网络里，这种贪婪会直接破坏上下文的显存布局，导致相邻算子发生寄存器溢出，把整条流水线的吞吐量拖入泥潭。\n单次测试里看似微小的数值误差，在自回归生成的几百轮循环中，还会迅速滚成雪崩式的精度偏离。\n这就是孤岛微基准测试给整个行业制造的局部最优幻觉。\n单点算子没有问题。\n问题是它脱离了系统上下文。\n为了打破这道断层，研究团队提出了一个闭环优化框架 LLM4LLM。\n它不再把算子关在孤立的沙盒里调优。\n它的起点直接扎在真实的目标推理脚本里。\n接着做阶段感知拆解：在首字预填充和逐字生成两个阶段，分别抓取真实的显存压力和延迟瓶颈。\n随后由经验引导的幕式智能体探索 Triton 和 CUDA 代码空间。\n最后接入最关键的一道闭环：模型内验证（In-Model Validation）。\n每一个生成的代码补丁，不跑虚假的单点跑分，必须直接插入完整的十多层模型权重中，带上真实的键值缓存跑完端到端全流程。\n只有端到端总延迟真正下降、精度完全合规的代码，才会被系统接收。\n这套把优化拉回真实生产环境的系统，跑出了硬碰硬的实测数据。\n在 A100 和 H100 GPU 上针对 10 个主流大模型推理工作流进行测试，每一个模型的端到端延迟全部实现大幅改善。\n在 A100 上取得 3.91 倍的几何平均加速。\n在 H100 上取得 6.98 倍的几何平均加速。\n作为底层算子能力的交叉印证，在 KernelBench 第二级别测试上也同时斩获 2.745 倍的几何平均提速。\n把代码优化从无菌沙盒搬进真实的系统骨架，换来的是近 7 倍的真实性能跃迁。\n在高度复杂的现代计算堆栈里，脱离系统上下文的局部最优，往往只是测量工具给出的纸面富贵。\n一行真正高效的底层代码，从来不是孤立的数学公式。\n它是咬合在整台机器动态齿轮里的精密零件。","category":"科技","score":null,"translated_x_url":null,"translated_status_id":null,"published_at":"2026-08-25 12:04:39","created_at":"2026-08-25 12:04:39","url":"https://mubeitech.com/p/mb-20260825-bb71f5","markdown_url":"https://mubeitech.com/p/mb-20260825-bb71f5/markdown"},{"rank":5,"id":"16102690","account":"mubei","brand":"@mubei","title":"最可怕的 Bug，是你写了 100% 正确的代码，机器却硬生生给你“编”错了。 这就是硅谷著名的 “Core 59” 悬…","summary":"最可怕的 Bug，是你写了 100% 正确的代码，机器却硬生生给你“编”错了。 这就是硅谷著名的 “Core 59” 悬案。 当时 Facebook 的 Spark 数据库在跑任务时，经常莫名其妙地丢失随机文件。 没有报错，没有崩溃，数据就是凭空消失了。 这种“无声的错误”（Si…","body":"最可怕的 Bug，是你写了 100% 正确的代码，机器却硬生生给你“编”错了。\n\n这就是硅谷著名的 “Core 59” 悬案。\n当时 Facebook 的 Spark 数据库在跑任务时，经常莫名其妙地丢失随机文件。\n没有报错，没有崩溃，数据就是凭空消失了。\n这种“无声的错误”（Silent Error），能逼疯最冷静的程序员。\n\nFacebook 派出了顶尖的工程团队，开始了一场史诗级的 Debug 过程。\n他们把范围一步步缩小，最后锁定了 Scala 语言里的 math.pow() 求幂函数。\n而且，他们发现了一个规律：\n这个 Bug，只要分配到 CPU 的 Core 59（第 59 号核心）上，就会 100% 重现！\n\n为什么会这样？\n我们现代软件栈的信任链，其实长得可怕。\n你写的高级代码，要先变成 Java 字节码，再通过 Java 虚拟机（JVM）的 JIT 即时编译器，在运行时翻译成 CPU 看得懂的汇编指令。\n问题，就出在翻译官身上。\n\n为了抓出这个内鬼，排查团队把 JIT 编译出来的机器码导了出来。\n整整 43 万行汇编代码。\n他们硬生生把这 43 万行精简到了 400 行。\n最后，通过 GDB 调试寄存器，终于抓到了元凶：\n在把公式编译成机器码时，编译器产生了一条错误的机器指令。\n\n代码是对的，公式是对的，但编译器给出的最终指令是错的。\n这就是为什么这桩案子让技术圈至今提起都心有余悸。\n我们每天写着代码，默认底层的编译器、操作系统、芯片都是绝对诚实和无懈可击的。\n但当你在几十万行自动生成的汇编代码深处看到那条“走火入魔”的指令时，你才会意识到：\n现代科技的摩天大楼，其实是一座建立在概率和层层黑盒之上的惊险杰作。","category":"其它","score":null,"translated_x_url":"https://x.com/i/status/2072250268683473135","translated_status_id":"2072250268683473135","published_at":"2026-07-01 08:58:22","created_at":"2026-07-01T10:52:28+02:00","url":"https://mubeitech.com/p/16102690","markdown_url":"https://mubeitech.com/p/16102690/markdown"},{"rank":6,"id":"mb-20260825-7b5442","account":"mubei","brand":"","title":"很多人做垂类大模型，都有一个美好的设想","summary":"很多人做垂类大模型，都有一个美好的设想","body":"很多人做垂类大模型，都有一个美好的设想。\n既然几百亿参数的模型在云端运行太贵、延迟太高。\n那就通过剪枝和蒸馏，把它压缩成几十亿参数的端侧小模型。\n只要在训练时疯狂给它喂量化金融、医疗或者法律的专业数据。\n不就能用极低的算力成本，换来一个垂直领域的专家？\n但为什么很多在测试集上跑分极高的小模型，一放到真实业务里就漏洞百出？\n甚至在遇到复杂环境时，会频繁产生低级的逻辑幻觉？\n当我们把一个庞大的神经网络向下压缩时，它最先丢掉的到底是什么？\n2026 年 8 月，arXiv 上的一篇新论文把这个暗坑的底牌彻底翻了出来。\n来自 NVIDIA 的研究学者 Lavinia Ghita、Dhruv Desai 和 Ioana Boier，给领域特定的大模型蒸馏推导出了一套全新的缩放定律。\n他们用 50 万条金融新闻构成的 FinHeadlineMix 数据集作为实验场景。\n对比了迭代结构化剪枝下的 Logit 蒸馏与 LoRA 蒸馏。\n实验抓到了一个反常识的物理现象。\n在模型被压缩的过程中，垂直领域的专业任务能力并没有断崖下跌。\n它表现出平缓、可预测的线性衰减。\n真正率先发生雪崩式坍塌的，是模型的通用常识基准。\n通识能力的断崖，远在领域能力衰减之前就早已发生。\n这直接戳破了过去垂直小模型的经验主义幻觉。\n很多人以为通用知识是冗余的边角料，删掉也无伤大雅。\n现实是，任何垂直领域的深度推演，底层全靠通识逻辑和因果表征在支撑。\n通识一旦提前崩塌，小模型立刻退化成一个只能在固定题库里死记硬背的偏科生。\n它表面上跑分漂亮，实质上已经失去了跨情境理解和复杂推理的能力。\n这台让压缩模型失控的机器，核心卡点在监督格式上。\n传统的蒸馏方式只对齐最终输出的概率分布，让 KL 散度在长推理链条上剧烈震荡。\n剪枝的剪刀切下去，最先切断的就是高维空间里复杂的推理网络。\nNVIDIA 团队给出的破局解法，叫混合思维链监督损失。\n它没有停留在强迫小模型模仿大模型的最终答案。\n它把大模型在得出结论前一步一步的推理痕迹，完整蒸馏给小模型。\n思维链在这个时候，变成了一套不可替代的认知支架。\n它在参数被剪掉的同时，把原本会被抹杀的通识逻辑结构，硬生生重新焊接回了神经网络里。\n决定垂直模型上限的，从不取决于背诵了多少专业术语。\n取决于底层支撑逻辑推演的通识结构，到底保留了多少。\n绕开推理轨迹去谈模型压缩，做出来的终究只是一台脆弱的过拟合玩具。","category":"科技","score":null,"translated_x_url":null,"translated_status_id":null,"published_at":"2026-08-25 12:04:40","created_at":"2026-08-25 12:04:40","url":"https://mubeitech.com/p/mb-20260825-7b5442","markdown_url":"https://mubeitech.com/p/mb-20260825-7b5442/markdown"}]}