寓言故事
图书馆被一张无限借书单拖垮
城里的图书馆有一位很快的检索员。读者递问题,他就跑进书库,找资料、写摘要、交答案。普通问题几分钟就能完成,大家都夸馆里办事快。
后来有人发现,只要把问题写得足够长,要求他比较所有版本、引用所有脚注、再反复检查每条线索,检索员就会在书库里跑上一整天。捣乱者没有抢书,也没有砸门,只是递来一张看似认真的借书单。
馆长起初以为这是勤奋读者。于是规定检索员要尽量完整回答,不能轻易拒绝。队伍很快排到门外,真正赶着查药方、契约和路引的人,反而拿不到服务。
账房发现墨水、纸张和灯油消耗暴涨;检索员没有被偷走书,却被消耗到无法工作。有人建议买更多灯油、雇更多检索员。捣乱者立刻递来更长的借书单,还同时从几个门口排队。
第一次修补只是扩资源,成本跟着对方的胃口上涨。副馆长改了规则:每张借书单有长度上限、时间预算、递归深度、并发额度和费用阈值;异常模式会降级,陌生读者要排队,危险请求直接截断。
他们还把资源消耗写进账本:哪个入口最贵,哪类问题最容易拖慢,哪些常客需要更高配额,哪些行为像攻击。正常读者若确有长题,可以预约专门时段;故意挖无底洞的人,不能占住公共窗口。
图书馆后来明白,拒绝服务不一定要砸门。只要诱使检索员把昂贵劳动投进无底洞,正常业务就会被挤出去;守门不仅要看内容是否有害,也要看它会吃掉多少公共能力。
后来馆门口多了一块小牌:认真问题欢迎,吞掉整座书库的问题要先说明用途和预算。读者起初不习惯,几周后反而满意,因为真正需要帮助的人不用再被一张荒唐长单挡在门外。