Bioyino β€” распрСдСлённый, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ собираСтС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ. Как ΠΈ ΠΌΡ‹. ΠœΡ‹ Ρ‚ΠΎΠΆΠ΅ собираСм ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Π½ΡƒΠΆΠ½Ρ‹Π΅ для бизнСса. БСгодня ΠΌΡ‹ расскаТСм ΠΎ самом ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π·Π²Π΅Π½Π΅ систСмы нашСго ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° β€” statsd-совмСстимом сСрвСрС Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ bioyino, Π·Π°Ρ‡Π΅ΠΌ ΠΌΡ‹ Π΅Π³ΠΎ написали ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΡ‚ΠΊΠ°Π·Π°Π»ΠΈΡΡŒ ΠΎΡ‚ brubeck.

Bioyino — распрСдСлённый, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ

Из ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π½Π°ΡˆΠΈΡ… статСй (1, 2) ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΌΡ‹ собирали ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ brubeck. Он написан Π½Π° C. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΊΠΎΠ΄Π° β€” простой ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ±ΠΊΠ° (это Π²Π°ΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΈΡ‚ΡŒ) ΠΈ, самоС Π³Π»Π°Π²Π½ΠΎΠ΅, Π±Π΅Π· особых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ справляСтся с нашими ΠΎΠ±ΡŠΡ‘ΠΌΠ°ΠΌΠΈ Π² 2 ΠΌΠ»Π½. ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π² сСкунду (MPS) Π² ΠΏΠΈΠΊΠ΅. ДокумСнтация заявляСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ 4 ΠΌΠ»Π½. MPS со Π·Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΠΎΠΉ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π°ΡΠ²Π»Π΅Π½Π½ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅, Ссли ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроитС ΡΠ΅Ρ‚ΡŒ Π½Π° Linux. (Бколько MPS ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, Ссли ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ, Π½Π°ΠΌ нСизвСстно). НСсмотря Π½Π° эти прСимущСства, ΠΊ brubeck Ρƒ нас Π±Ρ‹Π»ΠΎ нСсколько ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Ρ… ΠΏΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΠΉ.

ΠŸΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΡ 1. Github β€” Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” пСрСстал Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ: ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ‚Ρ‡ΠΈ ΠΈ фиксы, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ наши ΠΈ (Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ наши) PR. Π’ послСдниС нСсколько мСсяцСв (Π³Π΄Π΅-Ρ‚ΠΎ с фСвраля-ΠΌΠ°Ρ€Ρ‚Π° 2018) Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ возобновилась, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ этим Π±Ρ‹Π»ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ 2 Π³ΠΎΠ΄Π° ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π·Π°Ρ‚ΠΈΡˆΡŒΡ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ разрабатываСтся для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Π½ΡƒΠΆΠ΄ Gihub, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹ΠΌ прСпятствиСм для внСдрСния Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй.

ΠŸΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΡ 2. Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ вычислСний. Brubeck собираСт для Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ всСго 65536 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π’ нашСм случаС для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ (30 сСк) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (1 527 392 Π² ΠΏΠΈΠΊΠ΅). Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ сСмплирования, значСния максимумов ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠΎΠ² выглядят бСсполСзными. НапримСр, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Bioyino — распрСдСлённый, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ
Как Π±Ρ‹Π»ΠΎ

Bioyino — распрСдСлённый, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ
Как Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ

По Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ суммы Π²ΠΎΠΎΠ±Ρ‰Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ сюда Π±Π°Π³ с ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ 32-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ float, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ отправляСт сСрвСр Π² segfault ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ с Π²ΠΈΠ΄Ρƒ Π½Π΅Π²ΠΈΠ½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΈ становится Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ. Π‘Π°Π³, кстати, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ исправлСн.

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠŸΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΡ X. На ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€Π΅Π΄ΡŠΡΠ²ΠΈΡ‚ΡŒ Π΅Ρ‘ всСм 14 Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ рСализациям statsd, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ прСдставим, Ρ‡Ρ‚ΠΎ нСкоторая ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ взятая инфраструктура выросла Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ 4 ΠΌΠ»Π½ MPS ΡƒΠΆΠ΅ нСдостаточно. Или ΠΏΡƒΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ Π½Π΅ выросла, Π½ΠΎ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ для вас ΡƒΠΆΠ΅ Π²Π°ΠΆΠ½Ρ‹ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅, 2-3 ΠΌΠΈΠ½ΡƒΡ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π°Π»Ρ‹ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ… ΡƒΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ приступы Π½Π΅ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»ΠΈΠΌΠΎΠΉ дСпрСссии Ρƒ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ². Π’Π°ΠΊ ΠΊΠ°ΠΊ Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ дСпрСссии β€” Π΄Π΅Π»ΠΎ Π½Π΅Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΠ΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ тСхничСскиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

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

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ запас Ρƒ нас Π±Ρ‹Π», ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ с отказоустойчивости. «О! ΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ! Π­Ρ‚ΠΎ просто, это ΠΌΡ‹ ΡƒΠΌΠ΅Π΅ΠΌΒ», β€” ΠΏΠΎΠ΄ΡƒΠΌΠ°Π»ΠΈ ΠΌΡ‹ ΠΈ запустили 2 сСрвСра, подняв Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ копию brubeck. Для этого Π½Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ с ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌΠΈ Π½Π° ΠΎΠ±Π° сСрвСра ΠΈ Π΄Π°ΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ для этого Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΊΡƒ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ отказоустойчивости ΠΌΡ‹ этим Ρ€Π΅ΡˆΠΈΠ»ΠΈ, но… Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Π‘Π½Π°Ρ‡Π°Π»Π° всё Π±Ρ‹Π»ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ brubeck собираСт свой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ, ΠΏΠΈΡˆΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Graphite Ρ€Π°Π· Π² 30 сСкунд, пСрСзаписывая старый ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» (это дСлаСтся Π½Π° сторонС Graphite). Если Π²Π΄Ρ€ΡƒΠ³ ΠΎΠ΄ΠΈΠ½ сСрвСр ΠΎΡ‚ΠΊΠ°ΠΆΠ΅Ρ‚, Ρƒ нас всСгда Π΅ΡΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ с собствСнной ΠΊΠΎΠΏΠΈΠ΅ΠΉ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Но Π²ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: Ссли сСрвСр ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ… Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Β«ΠΏΠΈΠ»Π°Β». Бвязано это с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ 30-сСкундныС ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ Ρƒ brubeck Π½Π΅ синхронизированы, ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ падСния ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ пСрСзаписываСтся. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ запуска Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ сСрвСра происходит Ρ‚ΠΎ ΠΆΠ΅ самоС. Π’ΠΏΠΎΠ»Π½Π΅ Ρ‚Π΅Ρ€ΠΏΠΈΠΌΠΎ, Π½ΠΎ хочСтся Π»ΡƒΡ‡ΡˆΠ΅! ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ Ρ‚ΠΎΠΆΠ΅ Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ дСлась. ВсС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ «лСтят» Π½Π° ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ сСрвСр, ΠΈ поэтому ΠΌΡ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ самыми 2-4 ΠΌΠ»Π½ MPS Π² зависимости ΠΎΡ‚ ΠΏΡ€ΠΎΠΊΠ°Ρ‡ΠΊΠΈ сСти.

Если Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠΊΠΎΠΏΠ°Ρ‚ΡŒ Π»ΠΎΠΏΠ°Ρ‚ΠΎΠΉ снСг, Ρ‚ΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ такая очСвидная идСя: Π½ΡƒΠΆΠ΅Π½ statsd, ΡƒΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² распрСдСлённом Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° синхронизация ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΎΠ΄Π°ΠΌΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌ. Β«ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ навСрняка ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒΒ», β€” сказали ΠΌΡ‹ ΠΈ пошли Π³ΡƒΠ³Π»ΠΈΡ‚ΡŒβ€¦. И Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ нашли. ΠŸΡ€ΠΎΡˆΠ΅Ρ€ΡΡ‚ΠΈΠ² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ statsd (https://github.com/etsy/statsd/wiki#server-implementations Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ 11.12.2017), ΠΌΡ‹ Π½Π΅ нашли Ρ€ΠΎΠ²Π½Ρ‹ΠΌ счётом Π½ΠΈΡ‡Π΅Π³ΠΎ. Π’ΠΈΠ΄ΠΈΠΌΠΎ, Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ этих Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ с ВАКИМ количСством ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ Π½Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ΠΈ Π±Ρ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ.

И Ρ‚ΡƒΡ‚ ΠΌΡ‹ вспомнили ΠΏΡ€ΠΎ Β«ΠΈΠ³Ρ€ΡƒΡˆΠ΅Ρ‡Π½Ρ‹ΠΉΒ» statsd β€” bioyino, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ писали Π½Π° Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π΅ just for fun (Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° сгСнСрировал скрипт ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ…Π°ΠΊΠ°Ρ‚ΠΎΠ½Π°) ΠΈ поняли, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ срочно Π½ΡƒΠΆΠ΅Π½ собствСнный statsd. Π—Π°Ρ‡Π΅ΠΌ?

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

На Ρ‡Ρ‘ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ? ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Π½Π° Rust. ΠŸΠΎΡ‡Π΅ΠΌΡƒ?

  • ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π±Ρ‹Π» ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ,
  • ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΡƒΠΆΠ΅ Π·Π½Π°Π» Rust ΠΈ рвался Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Π½Ρ‘ΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π° с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹Π»ΠΎΠΆΠΈΡ‚ΡŒ это Π² open-source,
  • ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ языки с GC Π½Π°ΠΌ Π½Π΅ подходят Π² силу ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° (практичСски realtime) ΠΈ GC-ΠΏΠ°ΡƒΠ·Ρ‹ практичСски нСдопустимы,
  • ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½Π° максимальная ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, сравнимая с C
  • ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Rust прСдоставляСт Π½Π°ΠΌ fearless concurrency, Π° Π½Π°Ρ‡Π°Π² ΠΏΠΈΡΠ°Ρ‚ΡŒ это Π½Π° C/C++, ΠΌΡ‹ Π±Ρ‹ ΠΎΠ³Ρ€Π΅Π±Π»ΠΈ Π΅Ρ‰Ρ‘ большС, Ρ‡Π΅ΠΌ Ρƒ brubeck, уязвимостСй, ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π±ΡƒΡ„Π΅Ρ€Π°, race conditions ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡΡ‚Ρ€Π°ΡˆΠ½Ρ‹Ρ… слов.

Π‘Ρ‹Π» ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Rust. Π£ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΎΠΏΡ‹Ρ‚Π° создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Rust, ΠΈ сСйчас ΠΌΡ‹ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² основном ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π±Ρ‹Π»ΠΈ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Π΅ опасСния, Ρ‡Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ получится, Π½ΠΎ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Ρ€ΠΈΡΠΊΠ½ΡƒΡ‚ΡŒ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ.

Π¨Π»ΠΎ врСмя…

НаконСц, послС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ, пСрвая Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ вСрсия Π±Ρ‹Π»Π° Π³ΠΎΡ‚ΠΎΠ²Π°. Π§Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ? ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ΅.

Bioyino — распрСдСлённый, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ

КаТдая Π½ΠΎΠ΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ свой собствСнный Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΈ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Π΅Ρ‚ ΠΈΡ… Ρƒ сСбя, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ Π½Π΅ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ для Ρ‚Π΅Ρ… Ρ‚ΠΈΠΏΠΎΠ², Π³Π΄Π΅ для Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ потрСбуСтся ΠΈΡ… ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€. Ноды соСдинСны ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ распрСдСлённой Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (distributed lock), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ срСди Π½ΠΈΡ… Ρ‚Ρƒ Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ (здСсь ΠΌΡ‹ ΠΏΠ»Π°ΠΊΠ°Π»ΠΈ), которая достойна ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π’Π΅Π»ΠΈΠΊΠΎΠΌΡƒ. Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ срСдствами Consul, Π½ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π°ΠΌΠ±ΠΈΡ†ΠΈΠΈ Π°Π²Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΎΡΡ‚ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π΄ΠΎ собствСнной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Raft, Π³Π΄Π΅ Ρ‚ΠΎΠΉ самой достойной Π±ΡƒΠ΄Π΅Ρ‚, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Π½ΠΎΠ΄Π°-Π»ΠΈΠ΄Π΅Ρ€ консСнсуса. ΠšΡ€ΠΎΠΌΠ΅ консСнсуса, Π½ΠΎΠ΄Ρ‹ достаточно часто (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² сСкунду) Π΄ΠΎΡΡ‹Π»Π°ΡŽΡ‚ своим сосСдям Ρ‚Π΅ части ΠΏΡ€Π΅Π΄Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π·Π° эту сСкунду Π½Π°Π±Ρ€Π°Ρ‚ΡŒ. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ β€” каТдая ΠΈΠ· Π½ΠΎΠ΄ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π΄Π΅Ρ€ΠΆΠΈΡ‚ Ρƒ сСбя ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, Π½ΠΎ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΏΡ€ΠΈ этом ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΡƒΠΆΠ΅ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΏΠΎ TCP ΠΈ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», поэтому расходы Π½Π° Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с UDP Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ΡΡ. НСсмотря Π½Π° довольно большоС количСство входящих ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ совсСм Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ памяти ΠΈ Π΅Ρ‰Ρ‘ мСньшС CPU. Для Π½Π°ΡˆΠΈΡ… Ρ…ΠΎΡ€ΠΎΡˆΠΎ сТимаСмых ΠΌΠ΅Ρ€Ρ‚ΠΈΠΊ это всСго лишь нСсколько дСсятков ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ бонусом ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ отсутствиС Π»ΠΈΡˆΠ½ΠΈΡ… пСрСзаписСй Π΄Π°Π½Π½Ρ‹Ρ… Π² Graphite, ΠΊΠ°ΠΊ это Π±Ρ‹Π»ΠΎ Π² случаС с burbeck.

UDP-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ с ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌΠΈ разбалансированы ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΎΠ΄Π°ΠΌΠΈ Π½Π° сСтСвом ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· простой Round Robin. Π‘Π°ΠΌΠΎ собой, сСтСвая ТСлСзяка Π½Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚ содСрТимоС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ поэтому ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚ΡΠ½ΡƒΡ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС, Ρ‡Π΅ΠΌ 4M ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² сСкунду, Π½Π΅ говоря ΡƒΠΆΠ΅ ΠΎ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°Ρ…, ΠΏΡ€ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½Π° Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚. Если ΡƒΡ‡Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ приходят Π½Π΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π² этом мСстС ΠΌΡ‹ Π½Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ΠΈΠΌ. Π’ случаС падСния сСрвСра сСтСвоС устройство быстро (Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 1-2 сСкунд) ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ этот Ρ„Π°ΠΊΡ‚ ΠΈ ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ ΡƒΠΏΠ°Π²ΡˆΠΈΠΉ сСрвСр ΠΈΠ· Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ этого пассивныС (Ρ‚.Π΅. Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ) Π½ΠΎΠ΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ практичСски Π½Π΅ замСчая просадок Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°Ρ…. ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ тСряСм β€” это Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠΈΡ… Π·Π° послСднюю сСкунду. ВнСзапная потСря/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅/ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π»ΠΈΠ΄Π΅Ρ€Π° ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ нарисуСт Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ аномалию (30-сСкундный ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ рассинхронизирован), Π½ΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ связи ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΎΠ΄Π°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ ΠΈ эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡƒΡ‚Ρ‘ΠΌ рассылки ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

НСмного ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ устройствС. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ΅, Π½ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² отличаСтся ΠΎΡ‚ Ρ‚ΠΎΠΉ, Ρ‡Ρ‚ΠΎ использована Π² brubeck. ΠŸΠΎΡ‚ΠΎΠΊΠΈ Π² brubeck β€” ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ β€” ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ Π·Π° сбор ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΈ Π·Π° Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΡŽ. Π’ bioyino Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ (workers) Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Π½Π° Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹: отвСтствСнныС Π·Π° ΡΠ΅Ρ‚ΡŒ ΠΈ отвСтствСнныС Π·Π° Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΡŽ. Π’Π°ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ позволяСт Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ: Ρ‚Π°ΠΌ Π³Π΄Π΅ трСбуСтся интСнсивная агрСгация, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ΠΎΠ², Ρ‚Π°ΠΌ Π³Π΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ сСтСвого Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° β€” ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΡ‚ΡŒ количСство сСтСвых ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π° Π½Π°ΡˆΠΈΡ… сСрвСрах ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π² 8 сСтСвых ΠΈ 4 Π°Π³Ρ€Π΅Π³ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠ°.

Π‘Ρ‡ΠΈΡ‚Π°ΡŽΡ‰Π°Ρ (отвСтствСнная Π·Π° Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΡŽ) Ρ‡Π°ΡΡ‚ΡŒ достаточно скучная. Π—Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ сСтСвыми ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π±ΡƒΡ„Π΅Ρ€Ρ‹ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ, Π³Π΄Π΅ Π² дальнСйшСм парсятся ΠΈ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΡƒΡŽΡ‚ΡΡ. По запросу ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΎΡ‚Π΄Π°ΡŽΡ‚ΡΡ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½ΠΎΠ΄Ρ‹. Всё это, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ пСрСсылку Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΎΠ΄Π°ΠΌΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Consul, выполняСтся асинхронно, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ tokio.

Π“ΠΎΡ€Π°Π·Π΄ΠΎ большС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π²Ρ‹Π·Π²Π°Π»Π° сСтСвая Ρ‡Π°ΡΡ‚ΡŒ, отвСтствСнная Π·Π° ΠΏΡ€ΠΈΡ‘ΠΌ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ. Основной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ выдСлСния сСтСвых ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ сущности Π±Ρ‹Π»ΠΎ стрСмлСниС ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ врСмя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΡ‚ΠΎΠΊ Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· сокСта. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ с использованиСм асинхронного UDP ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ recvmsg быстро ΠΎΡ‚ΠΏΠ°Π»ΠΈ: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Сст слишком ΠΌΠ½ΠΎΠ³ΠΎ user-space CPU Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ событий, Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” слишком ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ контСкста. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сСйчас ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ recvmmsg с большими Π±ΡƒΡ„Π΅Ρ€Π°ΠΌΠΈ (Π° Π±ΡƒΡ„Π΅Ρ€Π°, господа ΠΎΡ„ΠΈΡ†Π΅Ρ€Ρ‹, это Π²Π°ΠΌ Π½Π΅ Π°Π±Ρ‹ Ρ‡Ρ‚ΠΎ!). ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ UDP оставлСна для Π½Π΅Π½Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… случаСв, ΠΊΠΎΠ³Π΄Π° Π² recvmmsg Π½Π΅Ρ‚ нСобходимости. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ multimessage удаётся Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ: ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ сСтСвой ΠΏΠΎΡ‚ΠΎΠΊ Ρ€Π°Π·Π³Ρ€Π΅Π±Π°Π΅Ρ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ОБ β€” Π²Ρ‹Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· сокСта ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡ… Π² userspace-Π±ΡƒΡ„Π΅Ρ€, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·Ρ€Π΅Π΄ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°ΡΡΡŒ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π΄Π°Ρ‚ΡŒ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€Π°ΠΌ. ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π² сокСтС практичСски Π½Π΅ накапливаСтся, количСство ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² практичСски Π½Π΅ растёт.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π’ настройках ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€Π° выставлСн достаточно большим. Если Π²Ρ‹ Π²Π΄Ρ€ΡƒΠ³ Ρ€Π΅ΡˆΠΈΡ‚Π΅ ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ сСрвСр ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡ‚ΠΎΠ»ΠΊΠ½Ρ‘Ρ‚Π΅ΡΡŒ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ послС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ малСнького количСства ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, ΠΎΠ½ΠΈ Π½Π΅ прилСтят Π² Graphite, ΠΎΡΡ‚Π°Π²ΡˆΠΈΡΡŒ Π² Π±ΡƒΡ„Π΅Ρ€Π΅ сСтСвого ΠΏΠΎΡ‚ΠΎΠΊΠ°. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с нСбольшим количСством ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ bufsize ΠΈ task-queue-size значСния помСньшС.

НапослСдок β€” Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² для Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ².

Бтатистика количСства входящих ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ сСрвСру: Π±ΠΎΠ»Π΅Π΅ 2 ΠΌΠ»Π½ MPS.

Bioyino — распрСдСлённый, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΎΠ΄ ΠΈ пСрСраспрСдСлСниС входящих ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ.

Bioyino — распрСдСлённый, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ

Бтатистика ΠΏΠΎ исходящим ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌ: отправляСт всСгда Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° Π½ΠΎΠ΄Π° β€” рСйдбосс.

Bioyino — распрСдСлённый, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ

Бтатистика Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ΄Ρ‹ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ошибок Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… модулях систСмы.

Bioyino — распрСдСлённый, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ

ДСтализация входящих ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ (ΠΈΠΌΠ΅Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ скрыты).

Bioyino — распрСдСлённый, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ

Π§Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ с этим всСм Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС? ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π±Π»…! ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ планировался ΠΊΠ°ΠΊ open-source ΠΈ останСтся Ρ‚Π°ΠΊΠΈΠΌ всю Π΅Π³ΠΎ Тизнь. Π’ Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠΈΡ… ΠΏΠ»Π°Π½Π°Ρ… β€” ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Raft, смСна peer-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π½Π° Π±ΠΎΠ»Π΅Π΅ пСрСносимый, внСсСниС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ статистики, Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, исправлСниС ошибок ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ всС ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°: создавайтС PR, Issues, ΠΏΠΎ возмоТности Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ, Π΄ΠΎΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Ρ‚. Π΄.

На этом, ΠΊΠ°ΠΊ говорится, that’s all folks, ΠΏΠΎΠΊΡƒΠΏΠ°ΠΉΡ‚Π΅ Π½Π°ΡˆΠΈΡ… слонов!



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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ