# Yandex 架构 > 原文: [http://highscalability.com/blog/2008/2/24/yandex-architecture.html](http://highscalability.com/blog/2008/2/24/yandex-architecture.html) **更新:** [用 Django](http://softwaremaniacs.org/blog/2008/02/24/why-offline-crashed-en/) 编写的 Yandex 新部分崩溃的剖析。 写入魔术会话变量会导致对每个请求的 InnoDB 数据库意外写入。 由于重建索引,写入花费了 6-7 秒。 有关系统大小,出了什么问题以及如何修复它的许多有用的细节。 Yandex 是俄罗斯的搜索引擎,其搜索索引为 35 亿页。 我们只知道一些有关它们如何工作的有趣事实,而在详细的体系结构级别则一无所知。 希望我们以后能学到更多,但是我认为这仍然很有趣。 从艾伦·斯特恩(Allen Stern)对 Yandex 首席技术官 Ilya Segalovich 的采访中,我们可以了解到: * 搜索索引中有 35 亿页。* 超过数千台服务器。* 每天有 3500 万次搜索。* 俄罗斯各地的几个数据中心。* 两层体系结构。* 该数据库被分成几部分,当请求搜索时,它从不同的数据库服务器中提取这些位,并为用户组合在一起。* 使用的语言:C ++,Perl 和一些 Java。* FreeBSD 被用作他们的服务器操作系统。* 2006 年的收入为 7200 万美元。 Yandex 不仅仅是搜索引擎。 这是一个门户。 我有一个朋友使用 yandex.ru 电子邮件地址。 哇。 我从未听说过 Yandex,但他们显然在那里做得很认真。 看到成功的事物出自俄罗斯/东欧,总是很酷:那里的顶级开发人员实际上真的非常出色:非常聪明和超强硬。 是的,Yandex 不仅仅是搜索引擎,它还提供了相当长的服务列表,其中包括电子邮件。 但是从我的角度来看,他们的服务并没有真正提供具有竞争力的质量水平,尤其是与 Google 服务相比:有时候,我认为 Yandex 搜索引擎不是根据相关性而是根据随机数生成器,邮箱来选择结果 经常被垃圾邮件淹没,等等。 就我而言,即使考虑到我居住在俄罗斯这一事实,我也更喜欢使用国际服务提供商,但 Yandex 仍然是俄罗斯最大的互联网服务提供商,并且由于一些奇怪的事实,确实有大量的俄罗斯人使用它 原因,例如它们只是“用来在 Yandex 中执行搜索”,或者键入 google.com 而不是 ya.ru 可能太耗时了... Google 的俄文搜索不理想,因为俄文有多种形式的单词。 因此,也请使用俄语进行良好的搜索,您应该非常了解俄语。 现在,谷歌搜索俄语,就好像它是英语一样。 +可能是俄罗斯支持其搜索引擎来控制互联网的俄罗斯部分。 有俄罗斯搜索引擎 yandex 和 ramber,有俄罗斯汇款网络货币和 yander 钱,有俄罗斯社交网络,当然还有 rutube。 由于您没有俄语键盘,因此您也无法在浏览器中输入俄语域名。 (俄语): [http://www.seotools.ru/biblioteka-optimizatora/yandeks/arhitektura.html](http://www.seotools.ru/biblioteka-optimizatora/yandeks/arhitektura.html) -Yandex 体系结构(2000) [http://www.searchrank.ru/arxitektura-yandeks-poiska/](http://www.searchrank.ru/arxitektura-yandeks-poiska/) (2007) 来自 HighLoad 2007 会议(俄语)的幻灯片 [http://www.google.ru/url?sa=t & ct = res & cd = 7 & url = http%3A% 2F%2Fwww.jug.ru%2Fservlets%2Fimages%2Fmeeting_2007_10_13%2Fyandex-search-arch-posthighload.ppt & ei = guy6R46gB6T8wwH88oHGCg & usg = AFQjCNF7f2AHT-Sy2a2Cy2a2C6Y2a2C2Y2a6C2Y2a6C6a7C7a2C6C6Y2A6C7Y2A6C6Y2A6Y2A6Y2C6Y2E7](http://www.google.ru/url?sa=t&ct=res&cd=7&url=http%3A%2F%2Fwww.jug.ru%2Fservlets%2Fimages%2Fmeeting_2007_10_13%2Fyandex-search-arch-posthighload.ppt&ei=guy6R46gB6T8wwH88oHGCg&usg=AFQjCNF7f_AsyqvkjUGje6aPU0q-IGy-aA&sig2=vhyz3MV66M6p7Dgsk2SfCQ) Google 确实为西里尔语(例如俄语或保加利亚语(我的母语))提供了支持。 也许 Yandex 做得更好。 该死的验证码区分大小写! 确实不是一个好选择! 也许我是在挑选东西,但是“崩溃的解剖”一文的摘要中有两件事。 他们没有写任何魔术变量。 他们正在修改每个请求上的会话数据(不必要),从而将其保存到 DB。 没什么神奇的。 漫长的索引重建是由于使用了非顺序主键(MD5 哈希)导致的-InnoDB,这意味着它将在每个请求上重建整个事物,从而导致性能下降。 对我来说,这是神奇的,因为很难从代码中推断出后果。 而选择具有如此巨大负面影响的关键价值则是另一大法宝。 通过看那条线,会期望这样的效果吗? 不是我,这就是为什么魔术突然出现。 Google does make stemming for cyrillic languages like Russian or Bulgarian (my native tongue). Perhaps Yandex does it better. 由于单一原因,我总是在用俄语搜索时使用 Yandex- **Yandex 会说俄语**,而 Google 不会。 但是 Google 获得了我所有的英语搜索,因为 Yandex 只是在“英语网”中做得不好。 但是,嘿-他们有一个哥哥可以向他学习,所以也许有一天...;) yandex 看起来真的很好,并且我肯定它会在将来对我有用 谢谢 关于 Yandex 的相当不错的总结。 老实说,我从来不知道这样的网站是在今天之前退出的。