Performance 谷歌怎么能这么快?

Performance 谷歌怎么能这么快?,performance,algorithm,Performance,Algorithm,是什么技术和编程决策使得谷歌能够如此快速地提供查询服务 每次我搜索某个东西(每天几次中的一次),我总是惊讶于他们如何在接近或不到1秒的时间内提供结果。他们有什么样的配置和算法可以实现这一点 旁注:这是一种压倒性的想法,即使我要在我的机器上安装一个桌面应用程序并使用它,速度也可能不及谷歌的一半。继续学习我说的 以下是一些很好的答案和建议: 硬件集群农场和大量廉价计算机 缓存和负载平衡 硬件 很多很多硬件。他们使用大量的商用PC集群作为服务器场。用一个答案来回答有点太多了。 创伤疗法是正

是什么技术和编程决策使得谷歌能够如此快速地提供查询服务

每次我搜索某个东西(每天几次中的一次),我总是惊讶于他们如何在接近或不到1秒的时间内提供结果。他们有什么样的配置和算法可以实现这一点

旁注:这是一种压倒性的想法,即使我要在我的机器上安装一个桌面应用程序并使用它,速度也可能不及谷歌的一半。继续学习我说的



以下是一些很好的答案和建议:

  • 硬件集群农场和大量廉价计算机
  • 缓存和负载平衡
硬件


很多很多硬件。他们使用大量的商用PC集群作为服务器场。

用一个答案来回答有点太多了。
创伤疗法是正确的。数以吨计的服务器和用于负载平衡/缓存的智能体系结构,瞧,您可以在1秒内运行查询。网上有很多文章描述谷歌服务架构。我相信你可以通过谷歌找到它们:)

这可以利用硬件的力量。例如。

他们已经实现了在大量硬件上运行的良好的分布式算法。

他们几乎有一个internet的本地副本,缓存在数千台定制文件系统的PC上。

如果您对google集群如何工作的更多细节感兴趣,我将推荐他们的开源实现


这是基于谷歌的数据。

谷歌雇佣最好的人中的最好的。一些IT界最聪明的人在谷歌工作。他们几乎可以在硬件和工程师身上投入无限的资金

他们对正在执行的任务使用高度优化的存储机制


他们的服务器场位于不同的地理位置。

你可以在一些关于谷歌研究人员撰写的研究论文的指南中找到。您应该从和的解释开始,尝试了解google页面背后的情况。

最重要的延迟之一是Web服务器将您的查询发送到Web服务器,并返回响应。这种延迟受到光速的限制,连谷歌都必须遵守。然而,他们在世界各地都有数据中心。因此,到其中任何一个的平均距离都较低。这样可以降低延迟。当然,差异是以毫秒为单位测量的,但如果响应必须在1000毫秒内到达,这很重要。

延迟会被磁盘访问消除。因此,有理由相信用于回答查询的所有数据都保存在内存中。这意味着数千台服务器,每台服务器都复制多个碎片中的一个。因此,搜索的关键路径不太可能触及其旗舰分布式系统技术GFS、MapReduce或BigTable。这些将用于粗略地处理爬虫程序结果

关于搜索,最方便的一点是,不需要有高度一致的结果或完全最新的数据,因此谷歌不会因为有了更为最新的搜索结果而被阻止响应查询

因此,一种可能的架构非常简单:前端服务器处理查询,对其进行规范化(可能通过去除停止词等),然后将其分发到拥有该部分查询空间的复制副本的任何子集(另一种体系结构是将数据按网页分割,以便每次查询都需要联系每个副本集中的一个)。可能会查询许多副本,并且最快的响应会获胜。每个副本都有一个索引映射查询(或单个查询项)如果不同的结果来自不同的来源,前端服务器可以在吐出html时对它们进行排序


请注意,这可能与谷歌实际所做的有很大的不同——他们将设计出这个系统的生命周期,因此在奇怪的区域中可能会有更多的缓存、奇怪的索引和某种时髦的负载平衡方案,以及其他可能的不同之处。

我一直觉得有趣的一个事实是,谷歌实际上是一个联合国生物信息学('凯,我觉得这很有趣,因为我是一个生物INF…东西)。让我解释一下

早期,生物信息学面临着在巨大字符串中快速搜索小文本的挑战。对我们来说,“巨大字符串”当然是DNA。通常不是单个DNA,而是来自不同物种/个体的多个DNA的数据库。小文本是蛋白质或它们的基因对应物,一个基因。计算生物学家最初的大部分工作仅限于寻找基因之间的同源性。这是通过记录与已知基因的亲缘关系

现在,这些DNA字符串确实变得非常大,(有损!)搜索必须非常有效。大多数现代字符串查找理论就是在计算生物学的背景下发展起来的

然而,相当一段时间以前,传统的文本搜索已经耗尽。需要一种新的方法,允许在次线性时间内搜索大字符串,即不查看每个字符。人们发现,这可以通过预处理大字符串并在其上构建特殊的索引数据结构来解决这些数据结构都有各自的优点和缺点,但有一个特别引人注目,因为它允许在固定时间内进行查找。现在,在谷歌运营的数量级中,这不再是严格意义上的事实,因为跨服务器、预处理和其他一些复杂的必须考虑uff

但在本质上,所谓的q-gra