Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π’ Π΄ΠΎΠΊΠ»Π°Π΄Π° АндрСй Π‘ΠΎΡ€ΠΎΠ΄ΠΈΠ½ Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ ΠΊΠ°ΠΊ Ρ‚Π΅ са Π²Π·Π΅Π»ΠΈ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ ΠΎΠΏΠΈΡ‚Π° ΠΎΡ‚ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ Π½Π° PgBouncer ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡƒΠ» Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. ОдисСя, ΠΊΠ°ΠΊ са Π³ΠΎ внСдрявали Π² продукция. ОсвСн Ρ‚ΠΎΠ²Π° Ρ‰Π΅ обсъдим ΠΊΠ°ΠΊΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΡƒΠ»Π° Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ Π±ΠΈΡ…ΠΌΠ΅ искали Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π² Π½ΠΎΠ²ΠΈΡ‚Π΅ вСрсии: Π²Π°ΠΆΠ½ΠΎ Π΅ Π·Π° нас Π½Π΅ само Π΄Π° ΠΏΠΎΠΊΡ€ΠΈΠ΅ΠΌ собствСнитС си Π½ΡƒΠΆΠ΄ΠΈ, Π½ΠΎ ΠΈ Π΄Π° Ρ€Π°Π·Π²ΠΈΠ²Π°ΠΌΠ΅ общността ΠΎΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. ОдисСя.

Π’ΠΈΠ΄Π΅ΠΎ:

Π’ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄ΠΈ Π²ΠΈΠ΄Π΅ΠΎ

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅ Π½Π° всички! Казвам сС АндрСй.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π’ ЯндСкс сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° open source Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. И днСс Ρ‚Π΅ΠΌΠ°Ρ‚Π° Π½ΠΈ Π΅ Π·Π° ΠΏΡƒΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Ако Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ Π΄Π° Π½Π°Ρ€Π΅Ρ‡Π΅Ρ‚Π΅ ΠΏΡƒΠ» Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ Π½Π° Π±ΡŠΠ»Π³Π°Ρ€ΡΠΊΠΈ, моля ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΌΠΈ. Много ΠΌΠΈ сС иска Π΄Π° намСря Π΄ΠΎΠ±ΡŠΡ€ тСхничСски Ρ‚Π΅Ρ€ΠΌΠΈΠ½, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° сС ΡƒΡ‚Π²ΡŠΡ€Π΄ΠΈ Π² тСхничСската Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°.

Π’Π΅ΠΌΠ°Ρ‚Π° Π΅ доста слоТна, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π² ΠΌΠ½ΠΎΠ³ΠΎ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΡƒΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ са Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΈ Π·Π° тях Π΄ΠΎΡ€ΠΈ Π½Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅. Някои настройки, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ навсякъдС, Π½ΠΎ Π² Postgres Π½Π΅Ρ‰Π°Ρ‚Π° Π½Π΅ стоят Ρ‚Π°ΠΊΠ°. И Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с Ρ‚ΠΎΠ²Π° (Π½Π° HighLoad++ 2019) сС ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎΠΊΠ»Π°Π΄ Π½Π° Николай Π‘Π°ΠΌΠΎΡ…Π²Π°Π»ΠΎΠ² Π·Π° настройката Π½Π° заявкитС Π² Postgres. И Π°Π· Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌ, Ρ‡Π΅ Ρ‚ΡƒΠΊ са дошли Ρ…ΠΎΡ€Π°, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ са настроили заявкитС ΠΈΠ΄Π΅Π°Π»Π½ΠΎ, ΠΈ Ρ‚ΠΎΠ²Π° са Ρ…ΠΎΡ€Π°, ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΠ±Π»ΡŠΡΠΊΠ²Π°Ρ‚ с ΠΏΠΎ-Ρ€Π΅Π΄ΠΊΠΈ систСмни ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ със ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°, рСсурсната утилизация. И понякога ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС доста слоТно, Π² смисъл, Ρ‡Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Π½Π΅ са ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΈ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π’ ЯндСкс ΠΈΠΌΠ° Postgres. Π’ ЯндСкс.Облака ТивСят ΠΌΠ½ΠΎΠ³ΠΎ услуги Π½Π° ЯндСкс. И ΠΈΠΌΠ°ΠΌΠ΅ няколко ΠΏΠ΅Ρ‚Π°Π±Π°ΠΉΡ‚Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ Π½Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ ΠΌΠΈΠ»ΠΈΠΎΠ½ заявки Π² сСкунда Π² Postgres.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

И прСдоставямС доста стандартСн ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Π½Π° всички услуги – основната primary Π½ΠΎΠ΄Π° Π½Π° възСла, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π΄Π²Π΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ (синхронна ΠΈ асинхронна), Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€Π°Π½Π΅ Π½Π° чСтящитС заявки Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

ВсСки възСл Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° Π΅ Postgres, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ освСн Postgres ΠΈ систСмитС Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π΅ инсталиран ΠΈ ΠΏΡƒΠ» Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. ΠŸΡƒΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° fencing ΠΈ ΠΏΠΎ основното си ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Какво Π΅ основното ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡƒΠ» Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ?

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π’ Postgres Π΅ ΠΏΡ€ΠΈΠ΅Ρ‚Π° процСсна ΠΌΠΎΠ΄Π΅Π» ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π΅Π΄Π½ΠΎ Π²Ρ€ΡŠΠ·ΠΊΠ° – Ρ‚ΠΎΠ²Π° Π΅ Π΅Π΄ΠΈΠ½ процСс, Π΅Π΄ΠΈΠ½ Π±Π΅ΠΊΠ΅Π½Π΄ Postgres. И Π² Ρ‚ΠΎΠ·ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ кСшовС, ΠΊΠΎΠΈΡ‚ΠΎ Π΅ доста скъпо Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

ОсвСн Ρ‚ΠΎΠ²Π°, Π² ΠΊΠΎΠ΄Π° Π½Π° Postgres ΠΈΠΌΠ° масив, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ procArray. Π’ΠΎΠΉ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° основнитС Π΄Π°Π½Π½ΠΈ Π·Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ Π²Ρ€ΡŠΠ·ΠΊΠΈ. ΠŸΠΎΡ‡Ρ‚ΠΈ всички Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° procArray ΠΈΠΌΠ°Ρ‚ Π»ΠΈΠ½Π΅ΠΉΠ½Π° слоТност, ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΉΠΊΠΈ ΠΏΡ€Π΅Π· цСлия масив Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ Π²Ρ€ΡŠΠ·ΠΊΠΈ. Π’ΠΎΠ²Π° Π΅ доста Π±ΡŠΡ€Π· Ρ†ΠΈΠΊΡŠΠ», Π½ΠΎ ΠΏΡ€ΠΈ голям Π±Ρ€ΠΎΠΉ входящи ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ става ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-скъпо. И ΠΊΠΎΠ³Π°Ρ‚ΠΎ всичко станС ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-скъпо, Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΠ»Π°Ρ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ висока Ρ†Π΅Π½Π° Π·Π° голямо количСство ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ 3 възмоТни ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°:

  • На страната Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.
  • На страната Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ.
  • И ΠΌΠ΅ΠΆΠ΄Ρƒ тях, Ρ‚. Π΅. всСвъзмоТни ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ.

Π—Π° съТалСниС, Π²Π³Ρ€Π°Π΄Π΅Π½ΠΎΡ‚ΠΎ pooler Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅ Π² процСс Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. ΠŸΡ€ΠΈΡΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½ΠΈ ΠΎΡ‚ компанията PostgreSQL Professional основно работят Π²ΡŠΡ€Ρ…Ρƒ Π½Π΅Π³ΠΎ. Кога Ρ‰Π΅ сС появи Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° сС прСдскаТС. И Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡŠΡ‚ ΠΈΠΌΠ° Π΄Π²Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π’ΠΎΠ²Π° Π΅ pool Π½Π° страната Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ proxy pool.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Application-side pool Π΅ Π½Π°ΠΉ-простият Π½Π°Ρ‡ΠΈΠ½. ΠŸΠΎΡ‡Ρ‚ΠΈ всички клиСнтски Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ Π½Π°Ρ‡ΠΈΠ½ Π·Π° прСдставянС Π½Π° ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈΡ‚Π΅ Π²ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ Π² ΠΊΠΎΠ΄Π° ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° няколко дСсСтки Π²Ρ€ΡŠΠ·ΠΊΠΈ към Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ възниква, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅ Π΄Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Ρ‚Π΅ Π±Π΅ΠΊΠ΅Π½Π΄Π°, искатС Π΄Π° Π³ΠΎ разпространитС Π½Π° мноТСство Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΎΡΡŠΠ·Π½Π°Π²Π°Ρ‚Π΅, Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚Π΅ ΠΎΡ‰Π΅ няколко Π·ΠΎΠ½ΠΈ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚, няколко Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅. И ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΡŠΡ‚ с client side pooling Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ числа. Π“ΠΎΠ»Π΅ΠΌΠΈ – Ρ‚ΠΎΠ²Π° Π΅ ΠΎΠΊΠΎΠ»ΠΎ 10 000 Π²Ρ€ΡŠΠ·ΠΊΠΈ. Π’ΠΎΠ²Π° Π΅ прСдСлят, ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

ΠšΠΎΠ³Π°Ρ‚ΠΎ става Π΄ΡƒΠΌΠ° Π·Π° proxy poolers, ΠΈΠΌΠ° Π΄Π²Π° poolers, ΠΊΠΎΠΈΡ‚ΠΎ умСят ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Ρ‰Π°. Π’Π΅ Π½Π΅ са само poolers. Π’Π΅ са poolers + ΠΎΡ‰Π΅ страхотна функционалност. Π’ΠΎΠ²Π° Π΅ Pgpool ΠΈ Crunchy-Proxy.

Но, Π·Π° съТалСниС, Ρ‚Π°Π·ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° функционалност Π½Π΅ Π΅ Π½ΡƒΠΆΠ½Π° Π½Π° всички. И тя Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ poolers ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ само сСсийно pooling, Ρ‚. Π΅. Π΅Π΄ΠΈΠ½ входящ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Π΅Π΄ΠΈΠ½ изходящ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ към Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ.

Π—Π° Π½Π°ΡˆΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΈ Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ подходящо, Π·Π°Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ PgBouncer, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° transaction pooling, Ρ‚. Π΅. ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈΡ‚Π΅ Π²Ρ€ΡŠΠ·ΠΊΠΈ сС ΡΠ²ΡŠΡ€Π·Π²Π°Ρ‚ с клиСнтскитС Π²Ρ€ΡŠΠ·ΠΊΠΈ само Π·Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° транзакцията.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

И ΠΏΡ€ΠΈ Π½Π°ΡˆΠΈΡ‚Π΅ натоварвания – Ρ‚ΠΎΠ²Π° Π΅ вярно. Но ΠΈΠΌΠ° няколко ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°.Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΠΎΠΆΠ΅Π»Π°Π΅Ρ‚Π΅ Π΄Π° диагностициратС сСсия, Π·Π°Ρ‰ΠΎΡ‚ΠΎ всички входящи Π²Ρ€ΡŠΠ·ΠΊΠΈ са Π»ΠΎΠΊΠ°Π»Π½ΠΈ. Всички ΠΈΠ΄Π²Π°Ρ‚ ΠΎΡ‚ loopback ΠΈ прослСдяванСто Π½Π° сСсията става Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π Π°Π·Π±ΠΈΡ€Π° сС, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ application_name_add_host. Π’ΠΎΠ²Π° Π΅ Π½Π°Ρ‡ΠΈΠ½ΡŠΡ‚ ΠΎΡ‚ страна Π½Π° Bouncer Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ IP адрСс Π² application_name. Но application_name сС Π·Π°Π΄Π°Π²Π° с Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

На Ρ‚ΠΎΠ·ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΆΡŠΠ»Ρ‚Π°Ρ‚Π° линия прСдставлява Ρ€Π΅Π°Π»Π½ΠΈΡ‚Π΅ заявки, Π° синята - заявкитС, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π»ΠΈΠ·Π°Ρ‚ Π² Π±Π°Π·Π°Ρ‚Π°. А Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π°Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° application_name, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ само Π·Π° трасировка, Π½ΠΎ Π½Π΅ Π΅ напълно Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π΅Π½.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

ОсвСн Ρ‚ΠΎΠ²Π°, Π² Bouncer Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈ Π΅Π΄ΠΈΠ½ pool, Ρ‚.Π΅. броят Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅ с Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π±Π°Π·Π°.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π”ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Π²ΠΎΠ΄ΠΈ Ρ‚ΠΎΠ²Π°? Π˜ΠΌΠ°Ρ‚Π΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½Π° услуга, написана Π½Π° C++, ΠΈ Π½Π°Π±Π»ΠΈΠ·ΠΎ ΠΌΠ°Π»ΠΊΠ° услуга Π½Π° Node, която Π½Π΅ ΠΏΡ€Π°Π²ΠΈ Π½ΠΈΡ‰ΠΎ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ с Π±Π°Π·Π°Ρ‚Π°, Π½ΠΎ нСйният Π΄Ρ€Π°ΠΉΠ²ΡŠΡ€ полудява. Π’ΠΎΠΉ отваря 20 000 Π²Ρ€ΡŠΠ·ΠΊΠΈ, Π° всичко останало ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°. Π”ΠΎΡ€ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚Π΅ Π½ΠΎΡ€ΠΌΠ°Π»Π΅Π½ ΠΊΠΎΠ΄.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π Π°Π·Π±ΠΈΡ€Π° сС, написахмС малък ΠΏΠ°Ρ‚Ρ‡ Π·Π° Bouncer, ΠΊΠΎΠΉΡ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈ Ρ‚Π°Π·ΠΈ настройка, Ρ‚.Π΅. ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π°Π΄ pool.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

МоТСшС Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΈ ΠΎΡ‚ страна Π½Π° Postgres, Ρ‚.Π΅. Ρ€ΠΎΠ»ΠΈΡ‚Π΅ Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π΄Π° сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Ρ‚ с Π±Ρ€ΠΎΠΉ Π²Ρ€ΡŠΠ·ΠΊΠΈ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Но Ρ‚ΠΎΠ³Π°Π²Π° Π³ΡƒΠ±ΠΈΡ‚Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ Π·Π°Ρ‰ΠΎ няматС Π²Ρ€ΡŠΠ·ΠΊΠΈ със ΡΡŠΡ€Π²ΡŠΡ€Π°. PgBouncer Π½Π΅ ΠΏΡ€Π΅Π΄Π°Π²Π° Π³Ρ€Π΅ΡˆΠΊΠ° Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π°, Ρ‚ΠΎΠΉ Π²ΠΈΠ½Π°Π³ΠΈ Π²Ρ€ΡŠΡ‰Π° ΡΡŠΡ‰Π°Ρ‚Π° информация. И Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅: ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π°Ρ‚Π° Π²ΠΈ сС Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»Π°, ΠΌΠΎΠΆΠ΅ Π±ΠΈ просто Π±Π°Π·Π°Ρ‚Π° Π΅ ΠΏΠ°Π΄Π½Π°Π»Π°, ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π½Π΅Ρ‰ΠΎ Π½Π΅ Π΅ Π½Π°Ρ€Π΅Π΄. Но няма диагностика. Ако сСсията Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС установСна, няма Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅Ρ‚Π΅ Π·Π°Ρ‰ΠΎ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π³Π»Π΅Π΄Π°Ρ‚Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ Π²ΠΈΠΆΠ΄Π°Ρ‚Π΅, Ρ‡Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π“Π»Π΅Π΄Π°Ρ‚Π΅ Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ Π²ΠΈΠΆΠ΄Π°Ρ‚Π΅, Ρ‡Π΅ Bouncer Π΅ Π΅Π΄Π½ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π΅Π½. Π’ΠΎΠ²Π° Π΅ ΠΏΠΎΠ²Ρ€Π°Ρ‚Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² ΠΆΠΈΠ²ΠΎΡ‚Π° Π½Π° услугата. Π Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅, Ρ‡Π΅ стС сС подготвяли Π·Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ слСд Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π°, Π° Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ трябва Π΄Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Ρ‚Π΅ pooler.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π‘Ρ‚ΠΈΠ³Π½Π°Ρ…ΠΌΠ΅ Π΄ΠΎ ΠΈΠ·Π²ΠΎΠ΄Π°, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ ΠΏΠΎΠ²Π΅Ρ‡Π΅ PgBouncer-ΠΈ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

https://lwn.net/Articles/542629/

Малко Π΄ΠΎΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ Bouncer.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

И Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ стартирани с ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° TCP ΠΏΠΎΡ€Ρ‚Π° няколко Bouncers. И Π²Π΅Ρ‡Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ прСразпрСдСля входящитС TCP Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ тях с round-robin.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π’ΠΎΠ²Π° Π΅ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅, Ρ‚.Π΅. всичко ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°, сякаш ΠΈΠΌΠ°Ρ‚Π΅ Π΅Π΄ΠΈΠ½ Bouncer, Π½ΠΎ ΠΈΠΌΠ°Ρ‚Π΅ фрагмСнтация Π½Π° idle Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ стартиранитС Bouncer-ΠΈ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

И Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅, Ρ‡Π΅ Ρ‚Π΅Π·ΠΈ 3 Bouncers изяТдат всСки своС ядро Π½Π° 100 %. НуТдаСтС сС ΠΎΡ‚ доста Bouncers. Π—Π°Ρ‰ΠΎ?

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π—Π°Ρ‰ΠΎΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚Π΅ TLS. Π˜ΠΌΠ°Ρ‚Π΅ ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅. И Π°ΠΊΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ benchmark Π½Π° Postgres с TLS ΠΈ Π±Π΅Π· TLS, Ρ‰Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅, Ρ‡Π΅ броят Π½Π° установСнитС Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΏΠ°Π΄Π° ΠΏΠΎΡ‡Ρ‚ΠΈ с Π΄Π²Π° Ρ€Π΅Π΄Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС Π²ΠΊΠ»ΡŽΡ‡ΠΈ ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ TLS handshake изисква рСсурси Π½Π° цСнтралния процСсор.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

И Π² Π³ΠΎΡ€Π½Π°Ρ‚Π° част ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ доста криптографски Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½Π° входящи Π²Ρ€ΡŠΠ·ΠΊΠΈ. ПонСТС Π½Π°ΡˆΠΈΡΡ‚ primary ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π·ΠΎΠ½ΠΈ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚, входящитС Π²Ρ€ΡŠΠ·ΠΊΠΈ прСдставляват доста Ρ‚ΠΈΠΏΠΈΡ‡Π½Π° ситуация. Π’. Π΅. ΠΏΠΎ някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° старият primary Π΅ Π±ΠΈΠ» Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ ΠΈ цялото Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π΅ Π±ΠΈΠ»ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ΠΎ Π² Π΄Ρ€ΡƒΠ³ Π΄Π°Ρ‚Π° Ρ†Π΅Π½Ρ‚ΡŠΡ€. Всички Ρ‚Π΅ Ρ‰Π΅ Π΄ΠΎΠΉΠ΄Π°Ρ‚ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π° сС поздравят с TLS.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

И голямо количСство TLS handshake ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ успСС Π΄Π° сС ΠΏΠΎΠ·Π΄Ρ€Π°Π²ΠΈ Π²Π΅Ρ‡Π΅ с Bouncer, Π° Π΄Π° ΠΌΡƒ Π·Π°Ρ‚Π²ΠΎΡ€ΠΈ Π³ΡŠΡ€Π»ΠΎΡ‚ΠΎ. ΠŸΠΎΡ€Π°Π΄ΠΈ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°, ΠΏΠΎΡ‚ΠΎΠΊΡŠΡ‚ Π½Π° входящи Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° станС нСугасим. Ако ΠΈΠΌΠ°Ρ‚Π΅ retry Π² Π±Π°Π·Π°Ρ‚Π° Π±Π΅Π· exponential backoff, Ρ‚Π΅ няма Π΄Π° пристигат ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π² ΠΊΠΎΡ…Π΅Ρ€Π΅Π½Ρ‚Π΅Π½ ΠΏΠΎΡ‚ΠΎΠΊ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π•Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° 16 PgBouncer, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Ρ‚ 16 ядра Π½Π° 100%.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π‘Ρ‚ΠΈΠ³Π½Π°Ρ…ΠΌΠ΅ Π΄ΠΎ каскадния PgBouncer. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€Π°Ρ‚Π° конфигурация, която ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° постигнСм ΠΏΡ€ΠΈ Π½Π°ΡˆΠ΅Ρ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ с Bouncer. Π’ΡŠΠ½ΡˆΠ½ΠΈΡ‚Π΅ Bouncers слуТат Π·Π° TCP handshake, Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ Bouncers слуТат Π·Π° Ρ€Π΅Π°Π»Π½ΠΎ ΠΏΡƒPolling, Π·Π° Π΄Π° Π½Π΅ сС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡŠΠ½ΡˆΠ½ΠΈΡ‚Π΅ Π²Ρ€ΡŠΠ·ΠΊΠΈ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π’ Ρ‚Π°ΠΊΠ°Π²Π° конфигурация Π΅ възмоТно ΠΏΠ»Π°Π²Π½ΠΎ рСстартиранС. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° рСстартиратС всичкитС 18 Bouncers ΠΏΠΎ Π΅Π΄ΠΈΠ½. Но ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°ΠΊΠ°Π²Π° конфигурация Π΅ доста слоТно. БистСмни администратори, DevOps ΠΈ Ρ…ΠΎΡ€Π°, ΠΊΠΎΠΈΡ‚ΠΎ наистина носят отговорност Π·Π° Ρ‚ΠΎΠ·ΠΈ ΡΡŠΡ€Π²ΡŠΡ€, няма Π΄Π° са ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ ΠΎΡ‚ Ρ‚Π°ΠΊΠ°Π²Π° схСма.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

На ΠΏΡ€ΡŠΠ² ΠΏΠΎΠ³Π»Π΅Π΄, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° популяризирамС всичкитС Π½ΠΈ подобрСния Π² open source, Π½ΠΎ Bouncer Π½Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€Π΅. НапримСр, Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° стартиратС няколко PgBouncers Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΠΎΡ€Ρ‚ Π±Π΅ Π·Π°ΠΊΠΎΠΌΠΈΡ‚Π²Π°Π½Π° ΠΏΡ€Π΅Π΄ΠΈ мСсСц. А pull request с Ρ‚Π°Π·ΠΈ функция Π΅ Π±ΠΈΠ» Π½Π°ΠΏΡ€Π°Π²Π΅Π½ ΠΏΡ€Π΅Π΄ΠΈ няколко Π³ΠΎΠ΄ΠΈΠ½ΠΈ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

https://www.postgresql.org/docs/current/libpq-cancel.html

https://github.com/pgbouncer/pgbouncer/pull/79

Или ΠΎΡ‰Π΅ Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π’ Postgres ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° заявка, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΡ‚Π΅ Ρ‚Π°Π΅Π½ ΠΊΠΎΠ΄ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π±Π΅Π· излишна аутСнтификация. Но някои ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ просто ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ TCP-reset, Ρ‚.Π΅. ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Ρ‚ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎΡ‚ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅. Какво Ρ‰Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈ Bouncer Π² Ρ‚ΠΎΠ·ΠΈ случай? Нищо. Π’ΠΎΠΉ Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ Π΄Π° изпълнява заявката. Ако ΠΈΠΌΠ°Ρ‚Π΅ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎ количСство ΡΠ²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ, ΠΊΠΎΠΈΡ‚ΠΎ с ΠΌΠ°Π»ΠΊΠΈ заявки Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Ρ‚ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, просто Π΄Π° ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π΅Ρ‚Π΅ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ с Bouncer Π½Π΅ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ, Π½ΡƒΠΆΠ½ΠΎ Π΅ ΡΡŠΡ‰ΠΎ Π΄Π° Π·Π°Π²ΡŠΡ€ΡˆΠΈΡ‚Π΅ Ρ‚Π΅Π·ΠΈ заявки, ΠΊΠΎΠΈΡ‚ΠΎ работят Π² Π±Π°Π·Π°Ρ‚Π°.

Π’ΠΎΠ²Π° бСшС ΠΏΠΎΠΏΡ€Π°Π²Π΅Π½ΠΎ ΠΈ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ Π²Π»Π΅Π΅Π½ Π² upstream Π½Π° Bouncer-Π°.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π’Π°ΠΊΠ° стигнахмС Π΄ΠΎ нСобходимостта ΠΎΡ‚ собствСн connection pooler, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ сС Ρ€Π°Π·Π²ΠΈΠ²Π°, Ρ‰Π΅ сС ΠΏΠ°Ρ‚Ρ‡ΠΈ, Π² ΠΊΠΎΠΉΡ‚ΠΎ Π±ΡŠΡ€Π·ΠΎ Ρ‰Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, трябва Π΄Π° бъдС ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π΅Π½.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚Ρ‚Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ…ΠΌΠ΅ ΠΊΠ°Ρ‚ΠΎ основна Π·Π°Π΄Π°Ρ‡Π°. Врябва Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° управлявамС Π΄ΠΎΠ±Ρ€Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΡ‚ входящи TLS-ΡΠ²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ.

Π—Π° Ρ‚ΠΎΠ²Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈΡ…ΠΌΠ΅ ΠΎΡ‚Π΄Π΅Π»Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, която сС Π½Π°Ρ€ΠΈΡ‡Π° Machinarium, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° Π·Π° описаниС Π½Π° машинни ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎΡ‚ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ ΠΊΠ°Ρ‚ΠΎ послСдоватСлСн ΠΊΠΎΠ΄. Ако ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ изходния ΠΊΠΎΠ΄ Π½Π° libpq, Ρ‰Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅ доста слоТни извиквания, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π²ΠΈ Π²ΡŠΡ€Π½Π°Ρ‚ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΈ Π΄Π° ΠΊΠ°ΠΆΠ°Ρ‚: β€žΠ˜Π·Π²ΠΈΠΊΠ°ΠΉ ΠΌΠ΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-късно. Π‘Π΅Π³Π° ΠΈΠΌΠ°ΠΌ IO, Π½ΠΎ ΠΊΠΎΠ³Π°Ρ‚ΠΎ IO ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ, ΠΈΠΌΠ°ΠΌ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π·Π° ΠΏΡ€ΠΎΡ†Π΅ΡΠΎΡ€Π°β€œ. И Ρ‚ΠΎΠ²Π° Π΅ многостСпСнна схСма. ΠœΡ€Π΅ΠΆΠΎΠ²Π°Ρ‚Π° интСракция ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС описва с машина ΠΎΡ‚ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡ. Π‘ мноТСството ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΊΠ°Ρ‚ΠΎ β€žΠΠΊΠΎ ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ… Π·Π°Π³Π»Π°Π²ΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ с Ρ€Π°Π·ΠΌΠ΅Ρ€ N, сСга ΠΎΡ‡Π°ΠΊΠ²Π°ΠΌ N Π±Π°ΠΉΡ‚Π°β€œ, β€žΠΠΊΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ SYNC, сСга ΠΎΡ‡Π°ΠΊΠ²Π°ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½ΠΈ Π·Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°β€œ. ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π° сС доста Ρ‚Ρ€ΡƒΠ΄Π΅Π½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π΅Π½ ΠΊΠΎΠ΄, всС Π΅Π΄Π½ΠΎ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚ΡŠΡ‚ бСшС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½ Π² Π»ΠΈΠ½Π΅ΠΉΠ½Π° Ρ€Π°Π·Π²ΠΈΠ²ΠΊΠ°. НаправихмС Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ вмСсто машина ΠΎΡ‚ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΡ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡΡ‚ΡŠΡ‚ Π΄Π° описва основния ΠΏΡŠΡ‚ Π·Π° взаимодСйствиС Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ ΠΊΠΎΠ΄. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π² Ρ‚ΠΎΠ·ΠΈ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ ΠΊΠΎΠ΄ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС Π²ΠΌΡŠΠΊΠ²Π°Ρ‚ мСста, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ послСдоватСлността Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ трябва Π΄Π° бъдС ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° Π² ΠΎΡ‡Π°ΠΊΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°, ΠΏΡ€Π΅Π΄Π°Π²Π°ΠΉΠΊΠΈ контСкста Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄Ρ€ΡƒΠ³Π° ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½Π° (green thread). Π’ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ Π½Π° Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Π½Π°ΠΉ-очакваният ΠΏΡŠΡ‚ Π² Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π° записвамС послСдоватСлно, Π° послС добавямС към Π½Π΅Π³ΠΎ разклонСния.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΈΠΌΠ°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ TCP accept ΠΈ с round-robin ΠΏΡ€Π΅Π΄Π°Π²Π° мноТСствo ΠΎΡ‚ workers TCP-соСдинСниС.

ΠŸΡ€ΠΈ Ρ‚ΠΎΠ²Π° всяко клиСнтско ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ Π½Π° Π΅Π΄ΠΈΠ½ процСсор. И Ρ‚ΠΎΠ²Π° позволява Π΄Π° бъдС cache-friendly.

ОсвСн Ρ‚ΠΎΠ²Π°, Π½ΠΈΠ΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ…ΠΌΠ΅ ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π² Π΅Π΄ΠΈΠ½ голям ΠΏΠ°ΠΊΠ΅Ρ‚, Π·Π° Π΄Π° ΠΎΠ±Π»Π΅ΠΊΡ‡ΠΈΠΌ систСмния TCP-stack.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ…ΠΌΠ΅ транзакционния ΠΏΡƒΠ» ΠΏΠΎ Ρ‚Π°ΠΊΡŠΠ² Π½Π°Ρ‡ΠΈΠ½, Ρ‡Π΅ Odyssey ΠΏΡ€ΠΈ Π·Π°Π΄Π°Π΄Π΅Π½Π° настройка ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈ CANCEL ΠΈ ROLLBACK Π² случай Π½Π° ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½Π΅ Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎΡ‚ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅, Ρ‚.Π΅. Π°ΠΊΠΎ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ ΠΎΡ‡Π°ΠΊΠ²Π° заявката, Odyssey Ρ‰Π΅ ΠΊΠ°ΠΆΠ΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Π΄Π° Π½Π΅ сС ΠΎΠΏΠΈΡ‚Π²Π° Π΄Π° изпълнява заявката, която ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Ρ€Π°Π·Ρ…ΠΎΠ΄Π²Π° Ρ†Π΅Π½Π½ΠΈ рСсурси.

И, ΠΏΠΎ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚, Π½ΠΈΠ΅ Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ ΡΠ²ΡŠΡ€Π·Π²Π°Π½ΠΈΡΡ‚Π° Π·Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚. Π’ΠΎΠ²Π° позволява Π΄Π° Π½Π΅ сС прСинсталира application_name_add_host. Ако Π΅ възмоТно, Π½ΠΈΠ΅ нямамС Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° прСинсталация Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са Π½ΡƒΠΆΠ½ΠΈ Π·Π° диагностика.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π Π°Π±ΠΎΡ‚ΠΈΠΌ Π² интСрСситС Π½Π° Yandex.Cloud. И Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ managed PostgreSQL ΠΈ ΠΈΠΌΠ°Ρ‚Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ connection pooler, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Π»ΠΎΠ³ΠΈΡ‡Π½Π° рСпликация навън, Ρ‚.Π΅. Π΄Π° сС ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΎΡ‚ нас, Π°ΠΊΠΎ ΠΏΠΎΠΆΠ΅Π»Π°Π΅Ρ‚Π΅, Ρ‡Ρ€Π΅Π· Π»ΠΎΠ³ΠΈΡ‡Π½Π° рСпликация. Bouncer няма Π΄Π° ΠΏΡ€Π΅Π΄Π°Π΄Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½Π° Π»ΠΎΠ³ΠΈΡ‡Π½Π°Ρ‚Π° рСпликация навън.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π’ΠΎΠ²Π° Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° настройка Π½Π° Π»ΠΎΠ³ΠΈΡ‡Π½Π° рСпликация.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

ОсвСн Ρ‚ΠΎΠ²Π°, ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° физичСска рСпликация навън. Π’ ΠΎΠ±Π»Π°ΠΊΠ° Ρ‚ΠΎΠ²Π°, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, Π΅ нСвъзмоТно, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ³Π°Π²Π° Π²Π°ΡˆΠΈΡΡ‚ кластСр Ρ‰Π΅ прСдостави Ρ‚Π²ΡŠΡ€Π΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ информация Π·Π° сСбС си. Но Π² Ρ‚Π²ΠΎΠΈΡ‚Π΅ инсталации, Π°ΠΊΠΎ Ρ‚ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° физичСска рСпликация ΠΏΡ€Π΅Π· connection pooler Π² Odyssey, Ρ‚ΠΎΠ²Π° Π΅ възмоТно.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π’ Odyssey ΠΈΠΌΠ°ΠΌΠ΅ напълно ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ с PgBouncer. ИмамС ΡΡŠΡ‰Π°Ρ‚Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π°, която изпълнява ΠΏΠΎΡ‡Ρ‚ΠΈ всичкитС ΡΡŠΡ‰ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. Ако Π½Π΅Ρ‰ΠΎ липсва, ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Ρ‚Π΅ pull request ΠΈΠ»ΠΈ ΠΏΠΎΠ½Π΅ issue Π² GitHub, Ρ‰Π΅ сС Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. Но основната функционалност Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° PgBouncer Π²Π΅Ρ‡Π΅ я ΠΈΠΌΠ°ΠΌΠ΅.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

И, Ρ€Π°Π·Π±ΠΈΡ€Π° сС, ΠΈΠΌΠ°ΠΌΠ΅ error forwarding. Π©Π΅ Π²ΡŠΡ€Π½Π΅ΠΌ Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π°, която Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π΅ ΡΡŠΠΎΠ±Ρ‰ΠΈΠ»Π°. Π©Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ информация Π·Π°Ρ‰ΠΎ Π½Π΅ Π²Π»ΠΈΠ·Π°Ρ‚Π΅ Π² Π±Π°Π·Π°Ρ‚Π°, Π° Π½Π΅ просто, Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²Π»Π΅Π·Π΅Ρ‚Π΅.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π’Π°Π·ΠΈ функция ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½Π°, Π² случай Ρ‡Π΅ Π²ΠΈ Π΅ Π½ΡƒΠΆΠ½Π° 100%-Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с PgBouncer. МоТСм Π΄Π° сС Π΄ΡŠΡ€ΠΆΠΈΠΌ Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΡ‚ΠΎ Bouncer, просто Π·Π° всСки случай.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

Няколко Π΄ΡƒΠΌΠΈ Π·Π° изходния ΠΊΠΎΠ΄ Π½Π° Odyssey.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

https://github.com/yandex/odyssey/pull/66

НапримСр, ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ β€žPause / Resumeβ€œ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. Ако ΠΈΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π° Π΄Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ Postgres, ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ поставитС Π½Π° ΠΏΠ°ΡƒΠ·Π° Π² connection pooler, Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ pg_upgrade ΠΈ слСд Ρ‚ΠΎΠ²Π° Π΄Π° Π³ΠΎ пуснСтС ΠΎΡ‚Π½ΠΎΠ²ΠΎ. ΠžΡ‚ страна Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Ρ‰Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° сякаш Π±Π°Π·Π°Ρ‚Π° просто Π΅ Π·Π°Π±Π°Π²ΠΈΠ»Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° си. Π­Ρ‚Π° функционалност Π½ΠΈ бСшС прСдоставСна ΠΎΡ‚ Ρ…ΠΎΡ€Π° ΠΎΡ‚ общността. Вя всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½Π°, Π½ΠΎ скоро всичко Ρ‰Π΅ бъдС. (Π’Π΅Ρ‡Π΅ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½Π°)

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

https://github.com/yandex/odyssey/pull/73 β€” Π²Π΅Ρ‡Π΅ Π΅ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½Π°

ОсвСн Ρ‚ΠΎΠ²Π°, Π΅Π΄Π½Π° ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² PgBouncer Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° SCRAM Authentication, която Π½ΠΈ бСшС прСдоставСна ΠΎΡ‚ Ρ‡ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² ЯндСкс.Облак. И Π΄Π²Π΅Ρ‚Π΅ са слоТна функционалност ΠΈ Π²Π°ΠΆΠ½Π°.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π—Π°Ρ‚ΠΎΠ²Π° искам Π΄Π° Ρ€Π°Π·ΠΊΠ°ΠΆΠ° ΠΎΡ‚ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ Odyssey, извСднъТ ΠΈ Π²ΠΈΠ΅ искатС Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΊΠΎΠ΄.

Имам ΠΈΠ·Ρ…ΠΎΠ΄Π½Π° Π±Π°Π·Π° Odyssey, която Ρ€Π°Π·Ρ‡ΠΈΡ‚Π° Π½Π° Π΄Π²Π΅ основни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Kiwi Π΅ рСализация Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π·Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π½Π° Postgres. Π’.Π΅. нативният proto 3 Π½Π° Postgres са стандартнитС ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, с ΠΊΠΎΠΈΡ‚ΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° обмСнят. Π’Π΅ са Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Kiwi.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Machinarium Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° рСализация Π½Π° ΠΏΠΎΡ‚ΠΎΡ†ΠΈ. Малък Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ Machinarium Π΅ написан Π½Π° асмСблСр. Но Π½Π΅ сС страхувайтС, Ρ‚Π°ΠΌ са само 15 Ρ€Π΅Π΄Π°.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

АрхитСктурата Π½Π° Odyssey. Има основна машина, Π² която сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠΈΠ½ΠΈ. Π’ Ρ‚Π°Π·ΠΈ машина сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ°Π½Π΅Ρ‚ΠΎ Π½Π° входящи TCP-съСдинСния ΠΈ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈ.

Π’ Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΅Π΄ΠΈΠ½ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π½Π° няколко ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π² основния ΠΏΠΎΡ‚ΠΎΠΊ сС Π΄Π²ΠΈΠΆΠ°Ρ‚ ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° crone-Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ Π½Π΅ са Π½ΡƒΠΆΠ½ΠΈ Π² ΠΏΡƒΠ».

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π—Π° тСстванС Π½Π° Odyssey сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° стандартСн Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ тСстовС Π½Π° Postgres. ΠŸΡ€ΠΎΡΡ‚ΠΎ стартирамС install-check ΠΏΡ€Π΅Π· Bouncer ΠΈ ΠΏΡ€Π΅Π· Odyssey, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ Π½ΡƒΠ»Π΅Π² div. Има няколко тСста, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Ρ‚ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½ Π² Bouncer ΠΈ Π² Odyssey.

ОсвСн Ρ‚ΠΎΠ²Π°, ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ свои тСстовС. И Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ тСстовС Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π·Π° тСстванС Π½Π° Odyssey.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

ОсвСн Ρ‚ΠΎΠ²Π°, Π·Π°Ρ€Π°Π΄ΠΈ Π½Π°ΡˆΠ°Ρ‚Π° каскадна конфигурация, Π½ΠΈ сС Π½Π°Π»Π°Π³Π° Π΄Π° тСствамС Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ: Postgres + Odyssey, PgBouncer + Odyssey, Odyssey + Odyssey, Π·Π° Π΄Π° смС сигурни, Ρ‡Π΅ Π°ΠΊΠΎ Odyssey сС Π½Π°ΠΌΠΈΡ€Π° Π² някоя част ΠΎΡ‚ каскадата, Ρ‚ΠΎΠΉ ΡΡŠΡ‰ΠΎ Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ ΠΎΡ‡Π°ΠΊΠ²Π°ΠΌΠ΅.

Π“Ρ€Π°Π±Π»ΠΈ

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

НиС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Odyssey Π² продукция. И Π½Π΅ Π±ΠΈ Π±ΠΈΠ»ΠΎ чСстно Π΄Π° ΠΊΠ°ΠΆΠ°, Ρ‡Π΅ всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠ΅Ρ€Ρ„Π΅ΠΊΡ‚Π½ΠΎ. НС, Ρ‚.Π΅. Π΄Π°, Π½ΠΎ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ. НапримСр, Π² продукция всичко Ρ€Π°Π±ΠΎΡ‚Π΅ΡˆΠ΅ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ, слСд Ρ‚ΠΎΠ²Π° Π΄ΠΎΠΉΠ΄ΠΎΡ…Π° Π½Π°ΡˆΠΈΡ‚Π΅ приятСли ΠΎΡ‚ PostgreSQL Professional ΠΈ ΠΊΠ°Π·Π°Ρ…Π°, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚. Π’Π΅ наистина бяха ΠΏΡ€Π°Π²ΠΈ, Π½ΠΈΠ΅ Π³ΠΎ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅. Но Ρ‚ΠΎΠ²Π° бСшС ΠΈΠ·Π½Π΅Π½Π°Π΄Π° Π·Π° нас.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

ПослС ΠΎΡ‚ΠΊΡ€ΠΈΡ…ΠΌΠ΅, Ρ‡Π΅ Π² connection pooler ΠΈΠΌΠ° входящи TLS-ΡΠ²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ ΠΈ изходящи TLS-ΡΠ²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ. И Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½ΠΈΡΡ‚Π° са Π½ΡƒΠΆΠ½ΠΈ клиСнтски ΠΈ ΡΡŠΡ€Π²Π΅Ρ€Π½ΠΈ сСртификати.

Π‘ΡŠΡ€Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ сСртификати Π½Π° Bouncer ΠΈ Odyssey ΠΏΡ€Π΅ΠΈΠ·Ρ‡ΠΈΡ‚Π°Ρ‚ своя pcache, Π½ΠΎ клиСнтскитС сСртификати Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΠΏΡ€Π΅ΠΈΠ·Ρ‡ΠΈΡ‚Π°Ρ‚ ΠΎΡ‚ pcache, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π½Π°ΡˆΠΈΡΡ‚ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌ Odyssey Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка зависи ΠΎΡ‚ систСмната производитСлност ΠΏΡ€ΠΈ Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ сСртификат. Π’ΠΎΠ²Π° бСшС ΠΈΠ·Π½Π΅Π½Π°Π΄Π° Π·Π° нас, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π½Π΅ сС прояви Π²Π΅Π΄Π½Π°Π³Π°. ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ, Π½ΠΎ слСд 20 000 входящи Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ стана ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Pluggable Authentication Method – Ρ‚ΠΎΠ²Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° автСнтикация с Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈΡ‚Π΅ Linux срСдства. Π’ PgBouncer тя Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Ρ‚Π°ΠΊΠ°, Ρ‡Π΅ ΠΈΠΌΠ° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΏΠΎΡ‚ΠΎΠΊ Π·Π° ΠΎΡ‡Π°ΠΊΠ²Π°Π½Π΅ Π½Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ ΠΎΡ‚ PAM ΠΈ основСн ΠΏΠΎΡ‚ΠΎΠΊ PgBouncer, ΠΊΠΎΠΉΡ‚ΠΎ обслуТва Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° поиска Ρ‚Π΅ Π΄Π° ΠΈΠ·Ρ‡Π°ΠΊΠ°Ρ‚ Π² ΠΏΠΎΡ‚ΠΎΠΊΠ° PAM.

НиС Π½Π΅ Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ ΠΏΠΎ Π΅Π΄Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ проста ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°. ИмамС ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ. Π—Π°Ρ‰ΠΎ Π΄Π° Π½ΠΈ Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ²Π°?

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° създадС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ PAM-автСнтикация ΠΈ Π½Π΅ PAM-автСнтикация, Ρ‚ΠΎ голяма вълна ΠΎΡ‚ PAM-автСнтикация ΠΌΠΎΠΆΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° Π·Π°Π±Π°Π²ΠΈ Π½Π΅ PAM-автСнтикацията. Π’ΠΎΠ²Π° Π΅ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅. Но Π°ΠΊΠΎ искатС Π΄Π° Π³ΠΎ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС Π·Π°Π΅ΠΌΠ΅Ρ‚Π΅ с Ρ‚ΠΎΠ²Π°.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

ΠžΡ‰Π΅ Π΅Π΄Π½Π° трудност бСшС, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ° всички входящи ΡΠ²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ. И слСд Ρ‚ΠΎΠ²Π° Π³ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π° Π½Π° worker pool, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Ρ‰Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ TLS handshake.

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ ΠΊΠΎΠ³Π΅Ρ€Π΅Π½Ρ‚Π½Π° вълна ΠΎΡ‚ 20 000 ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ, Ρ‚Π΅ всички Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΈΠ΅Ρ‚ΠΈ. А Π½Π° страната Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° libpq Ρ‰Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π΅ Π΄Π° ΠΎΡ‚Ρ‡ΠΈΡ‚Π° Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚ΠΈΡ‚Π΅. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Ρ‚Π°ΠΌ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ΠΎ 3 сСкунди.

Ако всички Ρ‚Π΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° влязат Π² Π±Π°Π·Π°Ρ‚Π° Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‚Π΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° влязат Π² Π±Π°Π·Π°Ρ‚Π°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ всичко Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΠΎΠΊΡ€ΠΈΡ‚ΠΎ с нССкспонСнциалСн retry.

НиС стигнахмС Π΄ΠΎ ΠΈΠ·Π²ΠΎΠ΄Π°, Ρ‡Π΅ ΠΊΠΎΠΏΠΈΡ€Π°Ρ…ΠΌΠ΅ схСмата ΠΎΡ‚ PgBouncer, с Ρ‚ΠΎΠ²Π° Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ throttling Π½Π° количСството TCP-ΡΠ²ΡŠΡ€Π·Π²Π°Π½ΠΈΡ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ°ΠΌΠ΅.

Ако Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ°ΠΌΠ΅ Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΈ Ρ‚Π΅ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка Π½Π΅ успяват Π΄Π° сС Ρ…Π΅Π½Π΄ΡˆΠ΅ΠΉΠΊΠ½Π°Ρ‚, поставямС Π³ΠΈ Π² опашка, Π·Π° Π΄Π° Π½Π΅ ΠΈΠ·Ρ€Π°Π·Ρ…ΠΎΠ΄Π²Π°Ρ‚ рСсурситС Π½Π° цСнтралния процСсор. Π’ΠΎΠ²Π° Π΄ΠΎΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ СдноврСмСнният Ρ…Π΅Π½Π΄ΡˆΠ΅ΠΉΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ Π½Π΅ Π·Π° всички Π²Ρ€ΡŠΠ·ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са дошли. Но ΠΏΠΎΠ½Π΅ някой Ρ‰Π΅ Π²Π»Π΅Π·Π΅ Π² Π±Π°Π·Π°Ρ‚Π°, Π΄ΠΎΡ€ΠΈ ΠΏΡ€ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° натоварСност.

Roadmap

Какво Π±ΠΈΡ…ΠΌΠ΅ искали Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π² Odyssey Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅? Какво смС Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°ΠΌΠ΅ сами ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‡Π°ΠΊΠ²Π°ΠΌΠ΅ ΠΎΡ‚ общността?

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Към август 2019 Π³ΠΎΠ΄ΠΈΠ½Π°.

Π’Π°ΠΊΠ° изглСТдашС ΠΏΡŠΡ‚Π½Π°Ρ‚Π° ΠΊΠ°Ρ€Ρ‚Π° Π½Π° Odyssey ΠΏΡ€Π΅Π· август:

  • Π˜ΡΠΊΠ°Ρ…ΠΌΠ΅ SCRAM ΠΈ PAM удостовСряванС.
  • Π˜ΡΠΊΠ°Ρ…ΠΌΠ΅ Π½Π°ΠΏΡ€Π΅Π΄Π½Π°Π»ΠΈ чСтящи заявки Π½Π° standby.
  • Π‘ΠΈΡ…ΠΌΠ΅ искали online-restart.
  • И Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΏΠ°ΡƒΠ·Π° Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

ΠŸΠΎΠ»ΠΎΠ²ΠΈΠ½Π°Ρ‚Π° ΠΎΡ‚ Ρ‚Π°Π·ΠΈ ΠΏΡŠΡ‚Π½Π° ΠΊΠ°Ρ€Ρ‚Π° Π΅ изпълнСна, ΠΈ Ρ‚ΠΎ Π½Π΅ ΠΎΡ‚ нас. И Ρ‚ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±Ρ€Π΅. Π—Π°Ρ‚ΠΎΠ²Π° Π½Π΅ΠΊΠ° обсъдим ΠΊΠ°ΠΊΠ²ΠΎ остава ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΡ‰Π΅.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π©ΠΎ сС отнася Π΄ΠΎ Π½Π°ΠΏΡ€Π΅Π΄Π½Π°Π»ΠΈΡ‚Π΅ чСтящи заявки към standby? Π£ нас Π΅ΡΡ‚ΡŒ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Π΅Π· выполнСния запросов Π±ΡƒΠ΄ΡƒΡ‚ просто Π³Ρ€Π΅Ρ‚ΡŒ Π²ΠΎΠ·Π΄ΡƒΡ…. Они Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для обСспСчСния failover ΠΈ switchover. Π’ случаС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΈΡ… Π·Π°Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π΅ ΠΆΠ΅ самыС Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ процСссоры, Ρ‚Ρƒ ΠΆΠ΅ ΡΠ°ΠΌΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠ½Π°Ρ‡Π΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ рСпликация.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, Π² Postgres, Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΉΠΊΠΈ ΠΎΡ‚ вСрсия 10, ΠΈΠΌΠ° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ ΠΏΡ€ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π΄Π° посочитС ΠΈ session_attrs. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π² ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π΄Π° ΠΈΠ·Π±Ρ€ΠΎΠΈΡ‚Π΅ всички хостовС Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π° ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ‰ΠΎ ΠΎΡ‚ΠΈΠ²Π°Ρ‚Π΅ към Π±Π°Π·Π°Ρ‚Π°: Π΄Π° Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΈΠ»ΠΈ само Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅. И Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΡŠΡ‚ сам Ρ‰Π΅ ΠΈΠ·Π±Π΅Ρ€Π΅ ΠΏΡŠΡ€Π²ΠΈΡ ΠΏΠΎ списък хост, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΡƒ харСсва Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ изпълнява изискванията Π½Π° session_attrs.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Но ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ с Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π΅, Ρ‡Π΅ Ρ‚ΠΎΠΉ Π½Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² рСпликацията. МоТС Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ някаква Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, която Π΅ ΠΈΠ·Ρ‡Π°ΠΊΠ°Π»Π° Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ дълго Π²Ρ€Π΅ΠΌΠ΅ Π·Π° вашия сСрвис. Π—Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ ΠΏΡŠΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ изпълнСниС Π½Π° чСтящи заявки Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, ΠΏΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ, трябва Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΠΌΠ΅ Π² Odyssey Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ Π½Π΅ Π΅ възмоТно.

Odyssey трябва Π΄Π° Ρ…ΠΎΠ΄ΠΈ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΈ Π² Π±Π°Π·Π°Ρ‚Π° ΠΈ Π΄Π° ΠΏΠΈΡ‚Π° Π·Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΡ‚ΠΎ разстояниС ΠΎΡ‚ primary. И Π°ΠΊΠΎ Ρ‚ΠΎ Π΅ достигнало ΠΏΡ€Π΅Π΄Π΅Π»Π½Π°Ρ‚Π° стойност, Π½ΠΎΠ²ΠΈ заявки към Π±Π°Π·Π°Ρ‚Π° Π΄Π° Π½Π΅ сС ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚, Π΄Π° сС ΠΊΠ°ΠΆΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‡Π΅ трябва Π΄Π° ΠΈΠ½ΠΈΡ†ΠΈΡ€Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅ ΠΈ възмоТно Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅ Π΄Ρ€ΡƒΠ³ хост Π·Π° изпълнСниС Π½Π° заявкитС. Π’ΠΎΠ²Π° Ρ‰Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° Π±Π°Π·Π°Ρ‚Π° ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ Π΄Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΡ‚ΠΎ закъснСниС ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π΄Π° сС Π²ΡŠΡ€Π½Π΅ Π² ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° заявкитС.

Π’Ρ€ΡƒΠ΄Π½ΠΎ Π΅ Π΄Π° сС Π½Π°Π·ΠΎΠ²e срок Π·Π° рСализация, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ²Π° Π΅ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄. Но сС надявам, Ρ‡Π΅ Π½Π΅ Ρ‰Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ΅ 2,5 Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ Π½Π° ΠΊΠΎΠ»Π΅Π³ΠΈΡ‚Π΅ ΠΎΡ‚ PgBouncer. Π’Π°Π·ΠΈ функция Π±ΠΈΡ… искал Π΄Π° видя Π² Odyssey.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Π’ общността Ρ…ΠΎΡ€Π°Ρ‚Π° Π·Π°Π΄Π°Π²Π°Ρ…Π° Π²ΡŠΠΏΡ€ΠΎΡΠΈ относно ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° prepared statement.. Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½Π° инструкция ΠΏΠΎ Π΄Π²Π° Π½Π°Ρ‡ΠΈΠ½Π°. ΠŸΡŠΡ€Π²ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΡ‚Π΅ SQL ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ "prepared". Π—Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Ρ‚Π°Π·ΠΈ SQL ΠΊΠΎΠΌΠ°Π½Π΄Π°, трябва Π΄Π° Π½Π°ΡƒΡ‡ΠΈΠΌ ΠΊΠ°ΠΊ Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅ SQL ΠΎΡ‚ страна Π½Π° Bouncer. Π’ΠΎΠ²Π° Π±ΠΈ Π±ΠΈΠ»ΠΎ излишно, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ‚ пълСн парсСр. НС ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° парсирамС всяка SQL ΠΊΠΎΠΌΠ°Π½Π΄Π°.

Но ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½Π° инструкция Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π·Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π² proto3. И ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΌ информацията Π·Π° ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½Π° инструкция ΠΈΠ΄Π²Π° Π² структурирана Ρ„ΠΎΡ€ΠΌΠ°. МоТСм Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΠΌΠ΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ, Ρ‡Π΅ Π½Π° Π΅Π΄Π½ΠΎ сСрвСрно ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ Π΅ поискал Π΄Π° създадС ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ инструкции. И Π΄ΠΎΡ€ΠΈ Π°ΠΊΠΎ транзакцията Π΅ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈΠ»Π°, всС ΠΎΡ‰Π΅ трябва Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΠΌΠ΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

Но Ρ‚ΡƒΠΊ възниква Ρ€Π°Π·ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ някой Π³ΠΎΠ²ΠΎΡ€ΠΈ Π·Π° Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ трябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ коя Ρ‚ΠΎΡ‡Π½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½Π° инструкция Π΅ създал ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΈ Π΄Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ сСрвСрното ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ всички ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са създали Ρ‚Π°Π·ΠΈ сСрвСрна Π²Ρ€ΡŠΠ·ΠΊΠ°, Ρ‚.Π΅. ΠΊΠΎΠΈΡ‚ΠΎ са създали Ρ‚Π°ΠΊΠ°Π²Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½Π° инструкция.

АндрСс Π€Ρ€ΠΎΠΉΠ½Π΄ ΠΊΠ°Π·Π°, Ρ‡Π΅ Π°ΠΊΠΎ ΠΏΡ€ΠΈ вас Π΄ΠΎΠΉΠ΄Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π²Π΅Ρ‡Π΅ Π΅ създавал Ρ‚Π°ΠΊΠ°Π²Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½Π° инструкция Π² Π΄Ρ€ΡƒΠ³ΠΎ сСрвСрно ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅, ΡΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ я вмСсто Π½Π΅Π³ΠΎ. Но ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, Ρ‡Π΅ Π½Π΅ Π΅ съвсСм ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚Π΅ заявки Π² Π±Π°Π·Π°Ρ‚Π° вмСсто ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π½ΠΎ ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΊΠΎΠΉΡ‚ΠΎ пишС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π·Π° взаимодСйствиС с Π±Π°Π·Π°Ρ‚Π°, Π±ΠΈ Π±ΠΈΠ»ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π°ΠΊΠΎ просто ΠΌΡƒ Π΅ Π΄Π°Π΄Π΅Π½ΠΎ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅, Π² ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠΌΠ° Ρ‚Π°ΠΊΠ°Π²Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½Π° заявка.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

И ΠΎΡ‰Π΅ Π΅Π΄Π½Π° функция, която трябва Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ с PgBouncer. МоТСм Π΄Π° Π²ΡŠΡ€Π½Π΅ΠΌ срСдното Π²Ρ€Π΅ΠΌΠ΅ Π·Π° изпълнСниС Π½Π° заявка. Но срСдното Π²Ρ€Π΅ΠΌΠ΅ Π΅ срСдна Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° Π·Π° Π±ΠΎΠ»Π½ΠΈΡ†Π°Ρ‚Π°: някой Π΅ студСн, някой Π΅ Ρ‚ΠΎΠΏΡŠΠ» - Π² срСдно всички са Π·Π΄Ρ€Π°Π²ΠΈ. Π’ΠΎΠ²Π° Π½Π΅ Π΅ вярно.

Врябва Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈΠ»ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π±ΠΈΡ…Π° ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Π΅ ΠΈΠΌΠ° Π±Π°Π²Π½ΠΈ заявки, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·Ρ€Π°Π·Ρ…ΠΎΠ΄Π²Π°Ρ‚ рСсурси, ΠΈ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΏΠΎ-ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ².

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

Най-Π²Π°ΠΆΠ½ΠΎΡ‚ΠΎ - искамС вСрсия 1.0 (Π’Π΅Ρ‡Π΅ Π΅ излязла вСрсия 1.1). Π€Π°ΠΊΡ‚ΡŠΡ‚ Π΅, Ρ‡Π΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Odyssey Π΅ Π² вСрсия 1.0rc, Ρ‚.Π΅. release candidate. И всичкитС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·Π±Ρ€ΠΎΠΈΡ…, са Π±ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡ€Π°Π²Π΅Π½ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ с Ρ‚Π°Π·ΠΈ вСрсия, освСн Ρ‚Π΅Ρ‡ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚.

Какво Ρ‰Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° Π·Π° нас вСрсия 1.0? НиС пускамС Odyssey Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ Π±Π°Π·ΠΈ. Π’ΠΎΠΉ Π²Π΅Ρ‡Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ систСми, Π½ΠΎ ΠΊΠΎΠ³Π°Ρ‚ΠΎ достигнС 1 000 000 заявки Π² сСкунда, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π΅ вСрсията, която ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°Ρ€Π΅Ρ‡Π΅ΠΌ 1.0.

Π’ общността няколко Π΄ΡƒΡˆΠΈ поискаха вСрсия 1.0 Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΈ ΠΏΠ°ΡƒΠ·Π° ΠΈ SCRAM. Но Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Ρ‰Π΅ трябва Π΄Π° пуснСм слСдващата вСрсия Π² производствСна срСда, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π½ΠΈΡ‚ΠΎ SCRAM, Π½ΠΈΡ‚ΠΎ ΠΏΠ°ΡƒΠ·Π°Ρ‚Π° всС ΠΎΡ‰Π΅ са Π²ΠΌΡŠΠΊΠ½Π°Ρ‚ΠΈ. Но вСроятно Ρ‚ΠΎΠ·ΠΈ Π²ΡŠΠΏΡ€ΠΎΡ Ρ‰Π΅ бъдС Ρ€Π΅ΡˆΠ΅Π½ относитСлно Π±ΡŠΡ€Π·ΠΎ.

Odyssey roadmap: ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‰Π΅ искамС ΠΎΡ‚ ΠΏΡƒΠ»Π΅Ρ€Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ. АндрСй Π‘ΠΎΡ€ΠΈΠ΄ΠΈΠ½ (2019)

ΠžΡ‡Π°ΠΊΠ²Π°ΠΌ Π²Π°ΡˆΠΈΡ‚Π΅ pull request-ΠΎΠ²Π΅. ОсвСн Ρ‚ΠΎΠ²Π° Π±ΠΈΡ… искал Π΄Π° чуя ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈΠΌΠ°Ρ‚Π΅ с Bouncer. НСка Π³ΠΈ обсъдим. МоТС Π±ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са Π²ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ.

Π‘ Ρ‚ΠΎΠ²Π° моята част ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°, Π±ΠΈΡ… искал Π΄Π° чуя вас. Благодаря!

Π’ΡŠΠΏΡ€ΠΎΡΠΈ

Ако Π·Π°Π΄Π°Π΄Π°ΠΌ ΠΌΠΎΠ΅Ρ‚ΠΎ application_name, Ρ‰Π΅ сС ΠΏΡ€Π΅Π΄Π°Π΄Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π² transaction pooling Π² Odyssey?

Π’ Odyssey ΠΈΠ»ΠΈ Π² Bouncer?

Π’ Odyssey. Π’ Bouncer сС ΠΏΡ€Π΅Π΄Π°Π²Π°.

Π©Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ сСт.

И Π°ΠΊΠΎ ΠΌΠΎΠ΅Ρ‚ΠΎ Ρ€Π΅Π°Π»Π½ΠΎ соСдинСниС скача ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΈ соСдинСния, Ρ‰Π΅ бъдС Π»ΠΈ ΠΏΡ€Π΅Π΄Π°Π΄Π΅Π½ΠΎ?

Π©Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ сСт Π½Π° всички ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, ΠΈΠ·Π±Ρ€ΠΎΠ΅Π½ΠΈ Π² списъка. НС ΠΌΠΎΠ³Π° Π΄Π° ΠΊΠ°ΠΆΠ° Π΄Π°Π»ΠΈ application_name Π΅ Π² Ρ‚ΠΎΠ·ΠΈ списък. ИзглСТда, Ρ‡Π΅ съм Π³ΠΎ Π²ΠΈΠΆΠ΄Π°Π» Ρ‚Π°ΠΌ. Π©Π΅ Π·Π°Π΄Π°Π΄Π΅ΠΌ всички ΡΡŠΡ‰ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ. Π‘ Π΅Π΄Π½ΠΎ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ Ρ‚Π°ΠΌ сСт Ρ‰Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈ всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ Π΅ Π·Π°Π΄Π°Π²Π°Π» ΠΏΡ€ΠΈ стартиранС.

Благодаря, АндрСй, Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Π”ΠΎΠ±ΡŠΡ€ Π΄ΠΎΠΊΠ»Π°Π΄! Π Π°Π΄Π²Π°ΠΌ сС, Ρ‡Π΅ Odyssey сС Ρ€Π°Π·Π²ΠΈΠ²Π° всС ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ с всяка ΠΈΠ·ΠΌΠΈΠ½Π°Π»Π° ΠΌΠΈΠ½ΡƒΡ‚Π°. ПоТСлавам Π²ΠΈ Π΄Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°Ρ‚Π΅ ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½. Π’Π΅Ρ‡Π΅ сС ΠΎΠ±ΡŠΡ€Π½Π°Ρ…ΠΌΠ΅ към вас с ΠΌΠΎΠ»Π±Π° Π΄Π° осигуритС ΠΌΠ½ΠΎΠ³ΠΎΠΈΠ·Ρ‚ΠΎΡ‡Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Odyssey Π΄Π° сС ΡΠ²ΡŠΡ€Π·Π²Π° Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Ρ‚.Π΅. master slave, Π° слСд Ρ‚ΠΎΠ²Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ слСд failover Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅ с новия майстор.

Π”Π°, мисля, Ρ‡Π΅ си спомням Ρ‚Π°Π·ΠΈ дискусия. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΠΌΠ° няколко Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Но няма ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ тях. НиС трябва Π΄Π° слСдим ΠΎΡ‚ своя страна Π΄Π°Π»ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ всС ΠΎΡ‰Π΅ Π΅ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΈ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π΄Π°Π»ΠΈ Π΅ станало failover, ΠΊΠΎΠΉ Ρ‰Π΅ ΠΈΠ·Π²ΠΈΠΊΠ° pg_recovery. Имам стандартСн Π½Π°Ρ‡ΠΈΠ½ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π°, Ρ‡Π΅ Π½Π΅ смС Π½Π° майстора. И трябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΏΠΎ някакъв Π½Π°Ρ‡ΠΈΠ½ ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ? Π’.Π΅. идСята Π΅ интСрСсна, тя сС обсъТда. ΠŸΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ. Ако ΠΈΠΌΠ°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ Ρ€ΡŠΡ†Π΅, ΠΊΠΎΠΈΡ‚ΠΎ знаят C, Ρ‚ΠΎΠ²Π° Π΅ чудСсно.

Π’ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ Π·Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Ρ‡Ρ€Π΅Π· Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ Π½ΠΈ интСрСсува, Π·Π°Ρ‰ΠΎΡ‚ΠΎ искамС Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ внСдряванСто Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ€Π°Π½ΠΈ ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ΠΈ максимално лСсно Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° прилоТСния. Но Ρ‚ΡƒΠΊ Π±ΠΈΡ…ΠΌΠ΅ искали ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ, Ρ‚.Π΅. ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡Π½ΠΎ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ, ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Π΄ΠΎΠ±Ρ€Π΅.

Π’ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ ΡΡŠΡ‰ΠΎ Π΅ Π·Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ‚Π΅. ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π° сС, Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚Π΅ ΠΌΠ΅ΠΉΡΡ‚ΡŠΡ€ ΠΈ няколко Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ. И Π΅ ясно, Ρ‡Π΅ Π΄ΠΎ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ‚Π΅ сС Ρ…ΠΎΠ΄ΠΈ ΠΏΠΎ-рядко, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π΄ΠΎ ΠΌΠ΅ΠΉΡΡ‚ΡŠΡ€Π° Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ°Ρ‚ Ρ€Π°Π·Π»ΠΈΠΊΠΈ. ΠšΠ°Π·Π°Ρ…Ρ‚Π΅, Ρ‡Π΅ Ρ€Π°Π·Π»ΠΈΠΊΠΈΡ‚Π΅ Π² Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ‚Π°ΠΊΠΈΠ²Π°, Ρ‡Π΅ няма Π΄Π° отговарят Π½Π° вашия бизнСс ΠΈ няма Π΄Π° Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Ρ‚Π°ΠΌ, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅ сС ΠΏΡ€Π΅Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€Π°. ΠŸΡ€ΠΈ Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ дълго Π²Ρ€Π΅ΠΌΠ΅ Π½Π΅ стС Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ Ρ‚Π°ΠΌ, Π° слСд Ρ‚ΠΎΠ²Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° Ρ…ΠΎΠ΄ΠΈΡ‚Π΅, Ρ‚ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са Π²ΠΈ Π½ΡƒΠΆΠ½ΠΈ, няма Π΄Π° са Π²Π΅Π΄Π½Π°Π³Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ. Π’.Π΅. Π°ΠΊΠΎ постоянно Ρ…ΠΎΠ΄ΠΈΠΌ Π΄ΠΎ ΠΌΠ΅ΠΉΡΡ‚ΡŠΡ€Π°, Ρ‚Π°ΠΌ ΠΊΠ΅ΡˆΡŠΡ‚ Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½, Π° Π² Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° ΠΊΠ΅ΡˆΡŠΡ‚ ΠΌΠ°Π»ΠΊΠΎ изостава.

Π”Π°, Ρ‚ΠΎΠ²Π° Π΅ вярно. Π’ pcache няма Π΄Π° ΠΈΠΌΠ° Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅, Π² real cache няма Π΄Π° ΠΈΠΌΠ° информация Π·Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ искатС, Π² ΠΏΠ»Π°Π½ΠΎΠ²Π΅Ρ‚Π΅ няма Π΄Π° ΠΈΠΌΠ° парснати заявки, ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π½ΠΈΡ‰ΠΎ няма Π΄Π° ΠΈΠΌΠ°.

И ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠΌΠ°Ρ‚Π΅ някакъв ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ ΠΈ добавятС Π½ΠΎΠ²Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, Ρ‚ΠΎ Π΄ΠΎΠΊΠ°Ρ‚ΠΎ тя стартира, Π² нСя всичко Π΅ лошо, Ρ‚.Π΅. тя ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° своя кСш.

Π Π°Π·Π±Ρ€Π°Ρ… идСята. ΠŸΡ€Π°Π²ΠΈΠ»Π½ΠΈΡΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π±ΠΈ Π±ΠΈΠ» Π΄Π° стартиратС малък ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ заявки ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°, ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚ кСша. Π“Ρ€ΡƒΠ±ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΠΈΠΌΠ°ΠΌΠ΅ условиС, Ρ‡Π΅ трябва Π΄Π° изоставамС Π½Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 10 сСкунди ΠΎΡ‚ ΠΌΠ΅ΠΉΡΡ‚ΡŠΡ€Π°. И Ρ‚ΠΎΠ²Π° условиС Π΄Π° сС Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π½Π΅ с Π΅Π΄ΠΈΠ½ Π·Π°ΠΌΠ°Ρ…, Π° постСпСнно Π·Π° някои ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ.

Π”Π°, Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ тСТСстта.

Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±Ρ€Π° идСя. Но ΠΏΡŠΡ€Π²ΠΎ трябва Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅. ΠŸΡŠΡ€Π²ΠΎ трябва Π΄Π° сС ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΠΌ, Π° слСд Ρ‚ΠΎΠ²Π° Ρ‰Π΅ помислим ΠΊΠ°ΠΊ Π΄Π° сС Π²ΠΊΠ»ΡŽΡ‡ΠΈΠΌ. Π’ΠΎΠ²Π° Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π½Π° функция, Π·Π° Π΄Π° сС Π²ΠΊΠ»ΡŽΡ‡ΠΈΠΌ постСпСнно.

Π’ nginx ΠΈΠΌΠ° Ρ‚Π°ΠΊΠ°Π²Π° опция Π±Π°Π²Π½ΠΎ стартиранС Π² кластСр Π·Π° ΡΡŠΡ€Π²ΡŠΡ€. И Ρ‚ΠΎΠΉ постСпСнно ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ.

Π”Π°, ΠΎΡ‚Π»ΠΈΡ‡Π½Π° идСя, Ρ‰Π΅ ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ стигнСм Π΄ΠΎ Ρ‚ΠΎΠ²Π°.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster