同性婚姻的彩虹滤镜等Facebook上的案例让他们有了“在灾难期间,协助他人更佳保证朋友告诉自己安全性”的点子:在灾难期间,人们可以改版自己的状态回应自己“安全性”。但是,这并不是一个让别人告诉自己还“安全性”的最佳解决方案,因为:你必须:1.告诉他朋友们你还安全性;2.你朋友获得信息确认你还安全性首先,不是你所有的朋友都能看见这个改版其次,用户没办法获得所有处在灾难中的朋友的名单Brain想要更加结构化的方法来再行Safety Check解决问题这一问题。那么,它是如何运营的?如果你处在灾情区域,Facebook不会发给你一条启动时,告知你否安全性;如果你还OK,页面“我很安全性”按钮,确认自己是安全性的;你所有的朋友都会被警告你还安全性;你的朋友们也可以看到一个所有在灾情区域朋友的名单。
所以问题来了:你是如何创建一个用户否在灾难发生地?一个更容易想起的解决方案是建构地理索引(GeoIndex)的确是,但它有很多严重不足:人们在大大移动的,数据无法动态改版;为十五亿用户创建地理索引过于过可观,Brain小组并没充足的资源去承托它——忘记,他们只是Facebook这个大公司里企图构建这个解决方案的小团队;而且:相比考虑到如何保有一个平时完全用将近的的数据通道,解决方案必需考虑到事件的突发性,即:一旦突发事件再次发生时,这个功能是动态即时能用的。最后解决方案综合了社交图谱的轮廓及属性:当灾难再次发生时(例如尼泊尔地震),Safety Check不会检查每个独立国家信息流写入过程中被启动时“钩子”;当用户检查他们的信息流时,“钩子”就不会生效。
如果用户写入信息时不出灾难发生地(尼泊尔)那么任何事情都会再次发生;但当有人处在尼泊尔又去查找了他的信息流,Duang。接下来Safety Check不会检查用户的所有好友,如果他们在同一个区域,Safety Check就不会立刻发送到一个启动时通报,告知他们否还安全性。
这个过程不会大大反复,对于每一个被证实在灾难地域的人,最主要的工作就是去检查他们的好友,然后发送到通报。在实践中过程中,这个方案是十分有效地的。算法可以迅速地找寻到人,以至于让人实在它是即时再次发生,没延后。
例如说道,一群人在同一个房间的人会在刚好接到他们的提示信息。这是如何做的?秘诀在于:Facebook上人与人链接的图谱是是密集且有联系的。在Facebook上,十五亿用户给定两名之间的间隔度只有4.47而不是6,平均值来讲,只要5步就能在Facebook上寻找任何人。
一旦系统在启动时消息的时候随机挑选出了一个更加活跃而且且朋友数更加多的用户,这样就过滤器丢弃了很多违宪的用户,不必须再行展开数十亿的多余计算出来了。但另一个问题又经常出现了:Safety Check需要权利地用于分段服务器去处置有所不同的用户催促,还包括用户的好友。这个时候,分布式解决方案可能会经常出现这样的问题:两台在有所不同的数据中心机器检测到同一个用户,这意味著迭代了分离出来度边缘后,有个用户不会接到两条通报。
设身处地想象一下:如果户一下子接到多个证实他五谷丰登的通报,这不会反而不会减少用户的焦虑感。解决问题方法是:用一个数据库来储存状态,这样就只有一台机器被用来检查用户了。在尼泊尔地震央:将近五分钟就有三百万人接到改版状态的催促,多达1亿在尼泊尔的人获得安全性证实。五分钟之内,三分之二的FACEBOOK用户被系统迭代了一回。
在经历了一些困难后,Safety Check公布了第一个版本。但由于Facebook系统本身的复杂性,这个功能被继续隐蔽了,只有当再次发生紧急情况时,它才以求被落成。
例如刚再次发生的奥兰多枪击案。页面此处可读者Highscalability的原文。原创文章,予以许可禁令刊登。
下文闻刊登须知。
本文来源:博鱼·boyu体育-www.kcoo.net