如何让成千上万台电脑默契干活
在一场大型荒山造林活动中,成百上千的志愿者正准备种下小树苗。如果山脚下只有一个人拿着对讲机,挨个告诉每个人去哪里挖坑,频道很快就会占线,大家只能在原地干等。这就好比传统的电脑网络。当一个中心节点试图给所有机器分配每一个小任务时,它自己反而成了堵死整个流程的瓶颈。
为了快点种完,组织者让各个小队长自己看着办,找空地就种。结果呢,山坡两边的小队长没通气,碰巧把队伍带到了同一片空地。志愿者们挤成一团,反而把土踩实了,树也种不成。在分散式的电脑网络里也会出这种乱子。当各台机器自己管自己,不互相打招呼就安排任务时,很容易把一堆工作同时砸向同一台机器,直接让它死机。
后来营地里多了一位行程协调员。出发前,小队长们先在对讲机里报一下自己打算去哪。要是协调员在地图上发现两支队伍马上要撞车了,就赶紧给其中一队指个新方向。这正是新型网络系统的运作方式。它们加了一层数字防护盾,在任务开始前先看一眼各台机器的计划,一旦发现哪台机器快被任务压垮了,就立刻提前分流。
刚开始,整座山只有一个协调员。人一多,他盯着全盘地图根本看不过来。于是,大家把山分成了好几个山谷,每个山谷安排一个本地协调员。他们平时各管各的,只有队伍走到山谷交界处时,才互相通个气。在数字世界里,把防护盾拆分成这样一个一个的区域小盾牌,就能保证不管网络扩建得有多大,整个系统跑起来依然飞快。
有了这些分区协调员,整座山很快就种满了树苗,再也没出现过拥挤踩踏的情况。对于支撑我们日常生活的复杂网络来说,这种带防护盾的调度方式省下了一大半的处理时间,还节约了大量电能。这让我们看到,想干成一件超级大工程,既不需要一个反应迟钝的总指挥,也不必乱作一团,只需要在动手前做一点点轻巧的沟通就足够了。