打开网易新闻 查看精彩图片
Discourse最近修了个离谱的bug:Jennifer Aniston在《老友记》里跳"happy dance"的GIF,被一位用户发了24万多次,直接塞满377GB的备份空间。这个1.6MB的小文件,差点让整站备份崩盘。
问题出在Discourse的"安全上传"机制。当同一张图从私信转到公开帖,系统会生成一个全新的文件副本,连文件名里的哈希值都随机重算。Goldsborough在博客里解释:「原始内容一模一样,但Discourse把它当成新文件。」一张热门表情包在帖子、转发、私信里流窜,每换一个场景就克隆一次自己。
技术团队的第一版修复方案是用硬链接去重——相同哈希的文件只存一份,其他的指过去就行。结果撞上Linux ext4文件系统的隐藏天花板:单个inode最多挂6.5万个硬链接。Goldsborough吐槽:「原本想只下载一次,结果下了18万次备用副本,不是我要的胜利。」
现在他们改用"内容寻址存储",把文件按哈希值统一管理,彻底告别无限复制。那个24万次的Rachel表情包用户,至今身份不明——可能是真爱粉,也可能只是手滑了246,173次。
热门跟贴