秦风,在西京大学计算机系,是一个符号化的人物。
关于他的传说,流传在每一个新生的入学手册和老生的卧谈会里。
传说他能用纯c语言手写一个作业系统内核;传说他参加亚洲区a竞赛时,一个人干翻全场,在封榜后两小时内连解三题,逆天翻盘;传说他眼里只有0和1,跟他说代码之外的话题,他会直接把你当成空气。
他就象一座孤高的冰山,矗立在凡人无法企及的云端,浑身散发着“生人勿近”的强大气场。
宋军伟花了两天时间,动用了自己所有的老乡关系,才打探到这位大神的基本活动轨迹——三点一线,实验室、食堂、宿舍,精准得象个原子钟。
周三下午,计算机系实验楼,3楼,并行计算实验室。
顾舟让宋军伟等人在楼下等着,自己一个人,推开了那扇虚掩的门。
实验室里很安静,只有服务器风扇的嗡嗡声。十几台高性能工作站整齐地排列着,而秦风,就坐在最角落的位置。
他穿着一件洗得发白的格子衬衫,戴着深度近视眼镜,正全神贯注地盯着屏幕上密密麻麻的代码。他的手指在键盘上飞速地敲击着,快得几乎出现了残影,发出一种富有节奏感的“哒哒”声。
顾舟没有出声打扰,只是静静地站在他身后,看他的屏幕。
而秦风的代码,写得极其优雅、精悍,充满了数学般的美感。
但也存在一个致命的问题。
顾舟就这么静静地看了十分钟。十分钟里,秦风仿佛与世隔绝,对身后多了一个人毫无察觉。
直到秦风的眉头紧紧锁了起来,手指也停在了键盘上。他遇到了一个绕不过去的坎——在处理节点动态增删时,数据迁移的效率极低,并且存在数据不一致的风险。这个问题,让他卡了整整三天。
就在他烦躁地准备推倒重来时,一个平静的声音,突然在他身后响起。
“一致性哈希了解一下?”
秦风浑身一震,猛地回过头。
当他看到身后站着的是一个面孔陌生的、看起来象个大一新生的家伙时,眼中先是闪过一丝错愕,随即被一种被打扰的恼怒所取代。
“你是谁?”他的声音,和他的人一样,冰冷而生硬。
“一个能帮你解决问题的人。”顾舟微笑着,指了指他的屏幕,“你的思路没错,但算法选错了。传统的哈希算法,在节点变动时,会导致大规模的数据迁移。你应该引入一个虚拟的哈希环,将数据和节点都映射到这个环上。这样,当一个节点失效时,它所负责的数据,只会顺时针地漂移到下一个节点,而不会影响整个哈希表的结构。”
顾舟一边说,一边随手从旁边的桌上拿起一支笔,在一张草稿纸上,飞快地画出了一个圆环和几个节点。
“增加一个虚拟节点层,用冗馀换稳定。当节点增加时,也只会影响环上相邻的两个节点。这样,你的系统,才能真正做到可扩展和高可用。”
秦风的目光,从一开始的轻篾,慢慢变成了震惊,最后化为了难以置信的骇然。
他死死地盯着顾舟画的那张简单的结构图,仿佛看到了神迹。
“一致性哈希”!
这个词,象一道闪电,劈开了他脑中所有的迷雾!
他这几天百思不得其解的难题,被眼前这个陌生人,用短短几句话,一张草图,就给出了一个堪称完美的、颠复性的解决方案!
这个方案,已经完全超出了他现有的知识体系!
“你你是怎么知道的?”秦风的声音,第一次出现了剧烈的波动。
“在一些比较前沿的论文上看到的。”顾舟脸不红心不跳地撒了个谎,他总不能说这是后世谷歌和亚马逊都在用的烂大街技术吧。