Поиск Π½Π° скорости 1 Π’Π‘/с

TL;DR: Π§Π΅Ρ‚Ρ‹Ρ€Π΅ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ я ΠΏΠΎΠΊΠΈΠ½ΡƒΠ» Google с ΠΈΠ΄Π΅Π΅ΠΉ Π½ΠΎΠ²ΠΎΠ³ΠΎ инструмСнта для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° сСрвСров. ИдСя состояла Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½Ρƒ слуТбу ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сбора ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π»ΠΎΠ³ΠΎΠ², сбора ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. Один ΠΈΠ· ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ²Β β€” сСрвис Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрым, обСспСчивая дСвопсам Π»Ρ‘Π³ΠΊΡƒΡŽ, ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ, ΠΏΡ€ΠΈΡΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ нСсколько Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ Π·Π° Π΄ΠΎΠ»ΠΈ сСкунды, Π½Π΅ выходя Π·Π° Ρ€Π°ΠΌΠΊΠΈ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π°. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ инструмСнты для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π»ΠΎΠ³Π°ΠΌΠΈ часто ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ ΠΈ Π½Π΅ΡƒΠΊΠ»ΡŽΠΆΠΈΠ΅, поэтому ΠΌΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ: Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ инструмСнт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½ΠΎΠ²Ρ‹Π΅ ощущСния ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ описываСтся, ΠΊΠ°ΠΊ ΠΌΡ‹ Π² Scalyr Ρ€Π΅ΡˆΠΈΠ»ΠΈ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ старой ΡˆΠΊΠΎΠ»Ρ‹, ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π³Ρ€ΡƒΠ±ΠΎΠΉ силы, устранив лишниС слои ΠΈ избСгая слоТных структур Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΈ ΡƒΡ€ΠΎΠΊΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ собствСнным ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹ΠΌ Π·Π°Π΄Π°Ρ‡Π°ΠΌ.

Π‘ΠΈΠ»Π° старой ΡˆΠΊΠΎΠ»Ρ‹

Анализ Π»ΠΎΠ³ΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ начинаСтся с поиска: Π½Π°ΠΉΡ‚ΠΈ всС сообщСния, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ. Π’ Scalyr это дСсятки ΠΈΠ»ΠΈ сотни Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ Π»ΠΎΠ³ΠΎΠ² со ΠΌΠ½ΠΎΠ³ΠΈΡ… сСрвСров. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ построСниС Π½Π΅ΠΊΠΎΠ΅ΠΉ слоТной структуры Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ для поиска. Π―, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²ΠΈΠ΄Π΅Π» Ρ‚Π°ΠΊΠΎΠ΅ Π² Google, Π³Π΄Π΅ ΠΎΠ½ΠΈ довольно Ρ…ΠΎΡ€ΠΎΡˆΠΈ Π² Ρ‚Π°ΠΊΠΈΡ… Π²Π΅Ρ‰Π°Ρ…. Но ΠΌΡ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ Π½Π° Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³Ρ€ΡƒΠ±ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅: Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ сканированиС Π»ΠΎΠ³ΠΎΠ². И это сработало β€” ΠΌΡ‹ обСспСчиваСм интСрфСйс с поиском Π½Π° порядок быстрСС, Ρ‡Π΅ΠΌ Ρƒ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠ² (см. Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡŽ Π² ΠΊΠΎΠ½Ρ†Π΅).

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ ΠΎΠ·Π°Ρ€Π΅Π½ΠΈΠ΅ΠΌ стало Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ соврСмСнныС процСссоры Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ быстры Π² простых, прямолинСйных опСрациях. Π­Ρ‚ΠΎ Π»Π΅Π³ΠΊΠΎ ΡƒΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π² слоТных, многослоистых систСмах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ зависят ΠΎΡ‚ скорости I/O ΠΈ сСтСвых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΈΠ΅ систСмы сСгодня ΠΎΡ‡Π΅Π½ΡŒ распространСны. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ количСство слоёв ΠΈ лишнСго мусора. Π‘ нСсколькими процСссорами ΠΈ сСрвСрами ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ поиска достигаСт 1 Π’Π‘ Π² сСкунду.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΈΠ· этой ΡΡ‚Π°Ρ‚ΡŒΠΈ:

  • Π“Ρ€ΡƒΠ±Ρ‹ΠΉ поиск — Π²ΠΏΠΎΠ»Π½Π΅ ТизнСспособный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ…, ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.
  • Грубая сила — это Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° проСктирования, Π° Π½Π΅ освобоТдСниС ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Как ΠΈ любая Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°, ΠΎΠ½Π° Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΠ΄Π½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ρ‡Π΅ΠΌ для Π΄Ρ€ΡƒΠ³ΠΈΡ…, ΠΈ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»ΠΎΡ…ΠΎ ΠΈΠ»ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.
  • Грубая сила особСнно Ρ…ΠΎΡ€ΠΎΡˆΠ° для достиТСния ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
  • Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС Π³Ρ€ΡƒΠ±ΠΎΠΉ силы Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΈ своСврСмСнного примСнСния достаточного количСства рСсурсов. Она ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли ваши сСрвСры ΠΏΠΎΠ΄ большой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ, Π½Π΅ связанной с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π΅.
  • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ зависит ΠΎΡ‚ Π΄ΠΈΠ·Π°ΠΉΠ½Π° всСй систСмы, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π°.

(Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ описываСтся поиск Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ выполняСт поиск ΠΏΠΎ Π»ΠΎΠ³Π°ΠΌ, сСрвСры Scalyr ΡƒΠΆΠ΅ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΈΡ…. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ обсудим поиск ΠΏΠΎ Π½Π΅ΠΊΡΡˆΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π»ΠΎΠ³Π°ΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚Π΅ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹: эффСктивный ΠΊΠΎΠ΄, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π³Ρ€ΡƒΠ±ΠΎΠΉ силы с большими Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ рСсурсами).

ΠœΠ΅Ρ‚ΠΎΠ΄ Π³Ρ€ΡƒΠ±ΠΎΠΉ силы

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ, поиск Π² большом Π½Π°Π±ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… производится ΠΏΠΎ индСксу ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ сСрвСрным Π»ΠΎΠ³Π°ΠΌ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ поиск ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ слова Π² ΠΆΡƒΡ€Π½Π°Π»Π΅. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ слова Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ список всСх Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ всС сообщСния с этим словом, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ‘error’, ‘firefox’ ΠΈΠ»ΠΈ Β«transaction_16851951Β» β€” просто смотрим Π² индСксС.

Π― использовал Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π² Google, ΠΈ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Но Π² Scalyr ΠΌΡ‹ ΠΈΡ‰Π΅ΠΌ Π² Π»ΠΎΠ³Π°Ρ… Π±Π°ΠΉΡ‚ Π·Π° Π±Π°ΠΉΡ‚ΠΎΠΌ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ? Π‘ абстрактной алгоритмичСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния индСксы ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов Π³ΠΎΡ€Π°Π·Π΄ΠΎ эффСктивнСС, Ρ‡Π΅ΠΌ Π³Ρ€ΡƒΠ±Ρ‹ΠΉ поиск. Однако ΠΌΡ‹ Π½Π΅ ΠΏΡ€ΠΎΠ΄Π°Ρ‘ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄Π°Ρ‘ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. И ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΒ β€” это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, Π½ΠΎ ΠΈ систСмная инТСнСрия. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ всё: ΠΎΠ±ΡŠΡ‘ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΈΠΏ поиска, доступноС ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ контСкст. ΠœΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ для нашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π²Ρ€ΠΎΠ΄Π΅ ‘grep’ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ индСкс.

Π˜Π½Π΄Π΅ΠΊΡΡ‹ β€” это ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ, Π½ΠΎ Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ ограничСния. Одно слово Π½Π°ΠΉΡ‚ΠΈ Π»Π΅Π³ΠΊΠΎ. А Π²ΠΎΡ‚ поиск сообщСний с нСсколькими словами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ‘googlebot’ ΠΈ ‘404’Β β€” ΡƒΠΆΠ΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС. Поиск Ρ„Ρ€Π°Π·Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ ‘uncaught exception’ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΠ³ΠΎ индСкса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ рСгистрируСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ всС сообщСния с этим словом, Π½ΠΎ ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ мСстополоТСниС слова.

Настоящая Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡΡ‚ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ Π½Π΅ слова. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, сколько Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΎΡ‚ Π±ΠΎΡ‚ΠΎΠ². ΠŸΠ΅Ρ€Π²Π°Ρ ΠΌΡ‹ΡΠ»ΡŒΒ β€” поиск Π² Π»ΠΎΠ³Π°Ρ… ΠΏΠΎ слову ‘bot’. Π’Π°ΠΊ Π²Ρ‹ Π½Π°ΠΉΠ΄Ρ‘Ρ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΠΎΡ‚ΠΎΠ²: Googlebot, Bingbot ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ…. Но здСсь ‘bot’Β β€” это Π½Π΅ слово, Π° Π΅Π³ΠΎ Ρ‡Π°ΡΡ‚ΡŒ. Если ΠΈΡΠΊΠ°Ρ‚ΡŒ ‘bot’ Π² индСксС, ΠΌΡ‹ Π½Π΅ Π½Π°ΠΉΠ΄Ρ‘ΠΌ сообщСний со словом ‘Googlebot’. Если ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ слово Π² индСксС ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ индСкс ΠΏΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΈΠΊΠ°ΠΌ, поиск сильно замСдлится. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π»ΠΎΠ³Π°ΠΌΠΈ Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ поиск ΠΏΠΎ частям слова ΠΈΠ»ΠΈ (Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ синтаксис с Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ этого ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ.

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Β β€” пунктуация. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ всС запросы ΠΎΡ‚ 50.168.29.7? Π§Ρ‚ΠΎ насчёт ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π»ΠΎΠ³ΠΎΠ², содСрТащих [error]? Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΡŽ.

НаконСц, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π»ΡŽΠ±ΡΡ‚ ΠΌΠΎΡ‰Π½Ρ‹Π΅ инструмСнты, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ рСгулярным Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ИндСкс ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для этого.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, индСксы слоТны. КаТдоС сообщСниС Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² нСсколько списков ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов. Π­Ρ‚ΠΈ списки слСдуСт постоянно Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ для поиска Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Запросы с Ρ„Ρ€Π°Π·Π°ΠΌΠΈ, Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ слов ΠΈΠ»ΠΈ рСгулярными выраТСниями Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с нСсколькими списками, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ для получСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½Π°Π±ΠΎΡ€Π°. Π’ контСкстС ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ слуТбы такая ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создаёт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π²ΠΈΠ΄Π½Ρ‹ ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ².

Π˜Π½Π΄Π΅ΠΊΡΡ‹ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ мСста, Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ β€” основная ΡΡ‚Π°Ρ‚ΡŒΡ расходов Π² систСмС управлСния Π»ΠΎΠ³Π°ΠΌΠΈ.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ поиск ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ мощности. Наши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ цСнят высокоскоростной поиск ΠΏΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ запросам, Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ запросы Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π΄ΠΊΠΎ. Для Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… поисковых запросов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, ΠΌΡ‹ примСняСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‘ΠΌΡ‹ (опишСм ΠΈΡ… Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅). Π”Ρ€ΡƒΠ³ΠΈΠ΅ запросы достаточно Ρ€Π΅Π΄ΠΊΠΈ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ€Π΅Π΄ΠΊΠΎ приходится ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π° Ρ€Π°Π·. Но это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ наши сСрвСры Π½Π΅ заняты: ΠΎΠ½ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ ΠΏΠΎ ΠΏΡ€ΠΈΡ‘ΠΌΡƒ, Π°Π½Π°Π»ΠΈΠ·Ρƒ ΠΈ ΡΠΆΠ°Ρ‚ΠΈΡŽ Π½ΠΎΠ²Ρ‹Ρ… сообщСний, ΠΎΡ†Π΅Π½ΠΊΠ΅ ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠΉ, ΡΠΆΠ°Ρ‚ΠΈΡŽ старых Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρƒ нас довольно сущСствСнный запас процСссоров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ для выполнСния запросов.

Грубая сила Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ грубая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° (ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ силы)

Грубая сила Π»ΡƒΡ‡ΡˆΠ΅ всСго Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° простых Π·Π°Π΄Π°Ρ‡Π°Ρ… с малСнькими Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ. Часто Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ» для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° ΠΎΡ‡Π΅Π½ΡŒ высоких скоростях. Если ΠΊΠΎΠ΄ слоТный, Ρ‚ΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ Π΅Π³ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π² нашСм ΠΊΠΎΠ΄Π΅ для поиска Π±Ρ‹Π» довольно большой Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ». ΠœΡ‹ Ρ…Ρ€Π°Π½ΠΈΠΌ сообщСния Π½Π° страницах ΠΏΠΎ 4K; каТдая страница содСрТит Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сообщСния (Π² UTF-8) ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сообщСния. ΠœΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅Β β€” это структура, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π΄Π»ΠΈΠ½Π° значСния, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ID сообщСния ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ поля. Π¦ΠΈΠΊΠ» поиска выглядСл Ρ‚Π°ΠΊ:

Поиск Π½Π° скорости 1 Π’Π‘/с

Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с фактичСским ΠΊΠΎΠ΄ΠΎΠΌ. Но Π΄Π°ΠΆΠ΅ здСсь Π²ΠΈΠ΄Π½ΠΎ нСсколько Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΠΏΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. JVM довольно Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ выдСляСт эфСмСрныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, поэтому этот ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΌΡ‹ Ρ‚ΠΎΠ³ΠΎ заслуТивали. Π’ΠΎ врСмя тСстирования ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ довольно ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΠΌ пользовались. Но Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ.

(Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ Ρ…Ρ€Π°Π½ΠΈΠΌ сообщСния Π² Ρ‚Π°ΠΊΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ со страницами ΠΏΠΎ 4K, тСкстом ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с Π»ΠΎΠ³Π°ΠΌΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π•ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сводятся ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ Π΄Π²ΠΈΠΆΠΎΠΊ Scalyr большС ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Π΅ΠΌ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму. ВСкстовый поиск часто сочСтаСтся с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ Π² стилС Π‘Π£Π‘Π” Π½Π° полях послС парсинга Π»ΠΎΠ³ΠΎΠ². ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ тысячам Π»ΠΎΠ³ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, ΠΈ простыС тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹ Π½Π΅ подходят для нашСго Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ, Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ, распрСдСлённого управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ).

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ казалось, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π³Ρ€ΡƒΠ±ΠΎΠΉ силы. «Настоящая Ρ€Π°Π±ΠΎΡ‚Π°Β» Π² String.indexOf() Π΄Π°ΠΆΠ΅ Π½Π΅ Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π»Π° Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ CPU. Π’ΠΎ Π΅ΡΡ‚ΡŒ оптимизация Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ принСсла Π±Ρ‹ сущСствСнного эффСкта.

Π’Π°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…Ρ€Π°Π½ΠΈΠΌ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницы, Π° тСкст всСх сообщСний Π² UTF-8 ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠΎΠ½Ρ†Π΅. Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π²ΡˆΠΈΡΡŒ этим, ΠΌΡ‹ пСрСписали Ρ†ΠΈΠΊΠ» для поиска сразу ΠΏΠΎ всСй страницС:

Поиск Π½Π° скорости 1 Π’Π‘/с

Вакая вСрсия Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСпосрСдствСнно Π½Π° прСдставлСнии raw byte[] ΠΈ выполняСт поиск всСх сообщСний сразу Π½Π° всСй страницС 4K.

Π­Ρ‚ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»Π΅Π³Ρ‡Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π³Ρ€ΡƒΠ±ΠΎΠΉ силы. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ поисковый Ρ†ΠΈΠΊΠ» вызываСтся ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ для всСй страницы 4K, Π° Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ сообщСнии. НСт Π½ΠΈ копирования Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΈ выдСлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². И Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Π° Π½Π΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ сообщСниС. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Ρ‚ΠΎΠ½Π½Ρƒ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° сосрСдоточСна Π² нСбольшом Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ Ρ†ΠΈΠΊΠ»Π΅ поиска, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для дальнСйшСй ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

Наш фактичСский поисковый Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ основан Π½Π° ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΈΠ΄Π΅Π΅ Π›Π΅ΠΎΠ½ΠΈΠ΄Π° Π’ΠΎΠ»ΡŒΠ½ΠΈΡ†ΠΊΠΎΠ³ΠΎ. Он ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π‘ΠΎΠΉΠ΅Ρ€Π°Β β€” ΠœΡƒΡ€Π° с пропуском ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π΄Π»ΠΈΠ½Ρ‹ поисковой строки Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС. Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ провСряСт Π΄Π²Π° Π±Π°ΠΉΡ‚Π° Π·Π° Ρ€Π°Π·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΆΠ½Ρ‹Π΅ совпадСния.

Наша рСализация Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ поиска создания поисковой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ 64K, Π½ΠΎ это Π΅Ρ€ΡƒΠ½Π΄Π° ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ ΠΈΡ‰Π΅ΠΌ. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ» ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ нСсколько Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ Π² сСкунду Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ядрС. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ составляСт ΠΎΠΊΠΎΠ»ΠΎ 1,25Β Π“Π‘ Π² сСкунду Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ядрС, ΠΈ Π΅ΡΡ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ. МоТно ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π°, ΠΈ ΠΌΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ c Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ Π½Π° C вмСсто Java.

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ силу

ΠœΡ‹ обсудили, Ρ‡Ρ‚ΠΎ поиск ΠΏΠΎ Π»ΠΎΠ³Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«Π³Ρ€ΡƒΠ±ΠΎΒ», Π½ΠΎ сколько «силы» Ρƒ нас Π΅ΡΡ‚ΡŒ? НСмало.

1 ядро: ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ использовании ΠΎΠ΄Π½ΠΎ ядро соврСмСнного процСссора довольно ΠΌΠΎΡ‰Π½ΠΎΠ΅ само ΠΏΠΎ сСбС.

8 ядСр: Π² настоящСС врСмя ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π° сСрвСрах Amazon hi1.4xlarge ΠΈ i2.4xlarge SSD, Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… 8 ядСр (16 ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²). Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ эти ядра заняты Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌΠΈ опСрациями. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ выполняСт поиск, Ρ‚ΠΎ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ, освобоТдая всС 8 ядСр для поиска. Поиск ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π·Π° долю сСкунды, послС Ρ‡Π΅Π³ΠΎ фоновая Ρ€Π°Π±ΠΎΡ‚Π° возобновляСтся (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-рСгулятор Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ шквал поисковых запросов Π½Π΅ ΠΏΠΎΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π²Π°ΠΆΠ½ΠΎΠΉ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅).

16 ядСр: для надёТности ΠΌΡ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΡƒΠ΅ΠΌ сСрвСры ΠΏΠΎ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ master/slave. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ мастСра Π² ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½ΠΈΠΈ ΠΎΠ΄ΠΈΠ½ сСрвСр SSD ΠΈ ΠΎΠ΄ΠΈΠ½ EBS. Если Π³Π»Π°Π²Π½Ρ‹ΠΉ сСрвСр ΠΏΠ°Π΄Π°Π΅Ρ‚, Ρ‚ΠΎ сСрвСр Π½Π° SSD Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π΅Π³ΠΎ мСсто. ΠŸΠΎΡ‡Ρ‚ΠΈ всё врСмя master ΠΈ slave Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… доступСн для поиска Π½Π° Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… сСрвСрах (Ρƒ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Ρ‘Π½Π½ΠΎΠ³ΠΎ сСрвСра EBS слабый процСссор, поэтому ΠΌΡ‹ Π΅Π³ΠΎ Π½Π΅ рассматриваСм). Π”Π΅Π»ΠΈΠΌ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρƒ нас доступны Π² ΠΎΠ±Ρ‰Π΅ΠΉ слоТности 16 ядСр.

Много ядСр: Π² блиТайшСм Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΌΡ‹ распрСдСлим Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ сСрвСрам Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС ΠΎΠ½ΠΈ участвовали Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ запроса. Π‘ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ядро. [ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΠΏΠ»Π°Π½ ΠΈ повысили ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ поиска Π΄ΠΎ 1Β Π’Π‘/с, см. ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ].

ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° обСспСчиваСт Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ прСимущСство ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π³Ρ€ΡƒΠ±ΠΎΠΉ силы Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² довольно ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, поиск Π½Π΅ слишком чувствитСлСн ΠΊ дСталям Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… (Π΄ΡƒΠΌΠ°ΡŽ, ΠΈΠΌΠ΅Π½Π½ΠΎ поэтому Π΅Π³ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«Π³Ρ€ΡƒΠ±Ρ‹ΠΌΒ»).

ИндСкс ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов ΠΈΠ½ΠΎΠ³Π΄Π° Π²Ρ‹Π΄Π°Ρ‘Ρ‚ нСвСроятно быстрый Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π° Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях Π½Π΅Ρ‚. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ вас 50Β Π“Π‘ Π»ΠΎΠ³ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ‘customer_5987235982’ встрСчаСтся Ρ€ΠΎΠ²Π½ΠΎ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π°. Поиск ΠΏΠΎ этому Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρƒ считаСт нСпосрСдствСнно ΠΈΠ· индСкса Ρ‚Ρ€ΠΈ мСстополоТСния ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ. Но слоТный поиск с подстановочными Π·Π½Π°ΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тысячи ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов ΠΈ Π·Π°Π½ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, поиск ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π³Ρ€ΡƒΠ±ΠΎΠΉ силы для любого запроса выполняСтся с Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ. Поиск Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… слов Π»ΡƒΡ‡ΡˆΠ΅, Π½ΠΎ Π΄Π°ΠΆΠ΅ поиск ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа происходит достаточно быстро.

ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π³Ρ€ΡƒΠ±ΠΎΠΉ силы ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±Π»ΠΈΠ·ΠΊΠ° ΠΊ тСорСтичСскому максимуму. Π—Π΄Π΅ΡΡŒ мСньшС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² для Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ дисков, ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΏΡ€ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…, ΠΏΠΎΠ³ΠΎΠ½ΠΈ указатСля ΠΈ тысяч Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½ для сбоСв. Π― просто посмотрСл Π½Π° запросы, сдСланныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Scalyr Π½Π° ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅ Π½Π° нашСм самом Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΌ сСрвСрС. Π‘Ρ‹Π»ΠΎ 14Β 000 запросов. Π ΠΎΠ²Π½ΠΎ восСмь ΠΈΠ· Π½ΠΈΡ… заняли Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ сСкунды; 99% Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… 111 миллисСкунд (Ссли Π²Ρ‹ Π½Π΅ использовали инструмСнты Π°Π½Π°Π»ΠΈΠ·Π° Π»ΠΎΠ³ΠΎΠ², ΠΏΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅: это быстро).

Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ, надёТная ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π°ΠΆΠ½Π° для удобства использования сСрвиса. Если ΠΎΠ½ пСриодичСски Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π½Π΅Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΉ ΠΈ Π½Π΅ΠΎΡ…ΠΎΡ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Поиск ΠΏΠΎ Π»ΠΎΠ³Π°ΠΌ Π² дСйствии

Π’ΠΎΡ‚ нСбольшая анимация, которая ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ поиск Scalyr Π² дСйствии. Π£ нас Π΅ΡΡ‚ΡŒ Π΄Π΅ΠΌΠΎ-Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚, ΠΊΡƒΠ΄Π° ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ событиС Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Github. Π’ этой дСмонстрации я ΠΈΠ·ΡƒΡ‡Π°ΡŽ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π° нСдСлю: ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 600Β ΠœΠ‘ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Π»ΠΎΠ³ΠΎΠ².

Π’ΠΈΠ΄Π΅ΠΎ записано Π² прямом эфирС, Π±Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ, Π½Π° ΠΌΠΎΡ‘ΠΌ дСсктопС (ΠΎΠΊΠΎΠ»ΠΎ 5000 ΠΊΠΈΠ»ΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΡ‚ сСрвСра). ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ обязана ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ быстрому ΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΠΌΡƒ бэкСнду. Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΠ°ΡƒΠ·Π° Π±Π΅Π· ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ‘loading’, это я дСлаю ΠΏΠ°ΡƒΠ·Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ успСли ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ Π½Π°ΠΆΠ°Ρ‚ΡŒ.

Поиск Π½Π° скорости 1 Π’Π‘/с

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΡ‘ΠΌΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π²Π°ΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Π½ΠΎ Β«Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉΒ» Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚ Β«ΠΏΡ€ΠΈΡ‡ΡƒΠ΄Π»ΠΈΠ²Ρ‹ΠΉΒ». ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ваш ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Из тСорСтичСского Π°Π½Π°Π»ΠΈΠ·Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ большоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅. Π‘ΠΎΠ»Π΅Π΅ простыС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π»Π΅Π³Ρ‡Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ½ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π΅Π΅ Π² ΠΏΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Ρ… ситуациях.

Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ контСкстС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΊΠΎΠ΄. Π’ нашСм случаС Π½ΡƒΠΆΠ½Ρ‹ достаточно ΠΌΠΎΡ‰Π½Ρ‹Π΅ сСрвСры для управлСния Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π΄ΠΊΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ поиск, поэтому ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ·Π°ΠΈΠΌΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ сСрвСров Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для выполнСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ поиска.

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π³Ρ€ΡƒΠ±ΠΎΠΉ силы ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ быстрый, Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΉ, Π³ΠΈΠ±ΠΊΠΈΠΉ поиск ΠΏΠΎ Π½Π°Π±ΠΎΡ€Ρƒ Π»ΠΎΠ³ΠΎΠ². НадССмся, Ρ‡Ρ‚ΠΎ эти ΠΈΠ΄Π΅ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

ΠŸΡ€Π°Π²ΠΊΠ°: Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈ тСкст измСнились с «Поиск Π½Π° скорости 20Β Π“Π‘ Π² сСкунду» Π½Π° «Поиск Π½Π° скорости 1Β Π’Π‘ Π² сСкунду», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π° послСдниС нСсколько Π»Π΅Ρ‚. Π­Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ скорости Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ связано с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° ΠΈ количСства сСрвСров EC2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ сСгодня ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌ для обслуТивания Π²ΠΎΠ·Ρ€ΠΎΡΡˆΠ΅ΠΉ клиСнтской Π±Π°Π·Ρ‹. Π’ блиТайшСС врСмя ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ΡΡ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ обСспСчат Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ Ρ€Π΅Π·ΠΊΠΎΠ΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ эффСктивности Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΈ ΠΌΡ‹ с Π½Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π½ΠΈΠ΅ΠΌ ΠΆΠ΄Ρ‘ΠΌ, ΠΊΠΎΠ³Π΄Π° появится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ± этом Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com