Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΠΌ Π΄Π° сС Π·Π°ΠΏΠΎΠ·Π½Π°Π΅Ρ‚Π΅ с Ρ€Π°Π·ΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΠ°Ρ‚Π° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° 2016 Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ² "Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql"

Π’ Ρ‚ΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌ основнитС Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСнията, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‚ Π½Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ ΠΈ писанС Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. Π©Π΅ сС спра само Π½Π° Ρ‚Π΅Π·ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² Postgresql. ОбикновСно, Ρ‚ΠΎΠ²Π° Π΅ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° края Π½Π° производитСлността Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° систСма ΠΊΠ°Ρ‚ΠΎ цяло, ΠΌΠ°ΠΊΠ°Ρ€ Ρ‡Π΅ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π½Π΅ Π΅ ΠΈΠΌΠ°Π»ΠΎ Π²ΠΈΠ΄ΠΈΠΌΠΈ прСдпоставки Π·Π° Ρ‚ΠΎΠ²Π°.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Π Π°Π΄Π²Π°ΠΌ сС Π΄Π° Π²ΠΈ привСтствам! Π’ΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ Π½Π΅ Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° тСхничСски, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ Π½Π° моя ΠΊΠΎΠ»Π΅Π³Π°. Π’ΠΎΠΉ Π΅ насочСн основно към Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄ систСми, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ голям Π±Ρ€ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ. И всички Ρ‚Π΅ допускат Π΅Π΄Π½ΠΈ ΠΈ ΡΡŠΡ‰ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ. Π©Π΅ Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° тях. Π©Π΅ обясня ΠΊΠ°ΠΊΠ²ΠΈ Ρ„Π°Ρ‚Π°Π»Π½ΠΈ ΠΈ лоши послСдици водят Π΄ΠΎ Ρ‚Π΅Π·ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

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

Π©Π΅ Π²ΠΈ Π΄Π°ΠΌ Ρ‚Ρ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° с уТасни ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ ΠΊΠ°ΠΊ всичко Π΅ станало лошо. Накратко Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‚Π°ΠΌ сС случва. И ΠΊΠ°ΠΊ Π΄Π° сС Π±ΠΎΡ€ΠΈΠΌ с тях, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС случат, ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡ€Π΅Π²Π°Π½Ρ‚ΠΈΠ²Π½ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π·Π° прСдотвратяванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ. Π©Π΅ говоря Π·Π° ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ инструмСнти ΠΈ Ρ‰Π΅ Π΄Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ… тСстова Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΈΠΌΠ°Ρ… Π΄Π²Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. Π•Π΄Π½Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Π΅ със смСткитС Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅, Π° Π΄Ρ€ΡƒΠ³Π°Ρ‚Π° - с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ ΠΏΠΎ Ρ‚Π΅Π·ΠΈ смСтки. И с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° пСриодичност обновявамС ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅ ΠΏΠΎ Ρ‚Π΅Π·ΠΈ смСтки.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Π˜Π·Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°: тя Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΠΌΠ°Π»ΠΊΠ°, 2 MB. Π’Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ ΠΏΠΎ Π±Π°Π·Π°Ρ‚Π° ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΡΡŠΡ‰ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€ΠΎ. И Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ - 2000 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² сСкунда ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

И ΠΏΡ€Π΅Π· Ρ‚ΠΎΠ·ΠΈ Π΄ΠΎΠΊΠ»Π°Π΄ Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Π·Π° Π΄Π° Π΅ ясно ΠΊΠ°ΠΊΠ²ΠΎ сС случва. Π’ΠΈΠ½Π°Π³ΠΈ Ρ‰Π΅ ΠΈΠΌΠ° 2 слайда с Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. ΠŸΡŠΡ€Π²ΠΈΡΡ‚ слайд Π΅ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ сС случва ΠΎΠ±Ρ‰ΠΎ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°.

И Π² Ρ‚Π°Π·ΠΈ ситуация Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ наистина ΠΈΠΌΠ°ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π° с малък Ρ€Π°Π·ΠΌΠ΅Ρ€. Π˜Π½Π΄Π΅ΠΊΡΡŠΡ‚ Π΅ малък - 2 MB. Π’ΠΎΠ²Π° Π΅ ΠΏΡŠΡ€Π²ΠΈΡΡ‚ Π³Ρ€Π°Ρ„ΠΈΠΊ отляво.

Π‘Ρ€Π΅Π΄Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΡΡŠΡ‰ΠΎ Π΅ стабилно, ниско. Π’ΠΎΠ²Π° Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΡŠΡ‚ вдясно Π³ΠΎΡ€Π΅.

ЛСвият Π΄ΠΎΠ»Π΅Π½ Π³Ρ€Π°Ρ„ΠΈΠΊ ΠΏΠΎΠΊΠ°Π·Π²Π° Π½Π°ΠΉ-Π΄ΡŠΠ»Π³ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π±ΡŠΡ€Π·ΠΎ. И Π°Π²Ρ‚ΠΎ-Π²Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ Ρ‚ΡƒΠΊ всС ΠΎΡ‰Π΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ²Π° бСшС стартов тСст. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‚ΠΎΠΉ Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΈ Ρ‰Π΅ бъдС ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π·Π° нас.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Вторият слайд Π²ΠΈΠ½Π°Π³ΠΈ Ρ‰Π΅ бъдС посвСтСн Π½Π° ΠΏΠΎΠ΄Π»ΠΎΠΆΠΊΠ°Ρ‚Π°, която сС изслСдва. Π’ Ρ‚Π°Π·ΠΈ ситуация постоянно обновявамС ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅ ΠΏΠΎ смСткитС Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. И Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ срСдното Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ ΠΏΡ€ΠΈ опСрацията Π·Π° обновяванС Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄ΠΎΠ±Ρ€ΠΎ, ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ милисСкунда. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ рСсурситС Π½Π° процСсора (Ρ‚ΠΎΠ²Π° Π΅ дСсният Π³ΠΎΡ€Π΅Π½ Π³Ρ€Π°Ρ„ΠΈΠΊ) ΡΡŠΡ‰ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ ΠΈ Π² Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ ΠΌΠ°Π»ΠΊΠΈ количСства.

ДСсният Π΄ΠΎΠ»Π΅Π½ Π³Ρ€Π°Ρ„ΠΈΠΊ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠΎΠ»ΠΊΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ‚Π° ΠΈ дисковата ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° нСобходимия Ρ€Π΅Π΄, ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ. И броят Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ ΠΏΠΎ ΠΏΠΎΠ΄Π»ΠΎΠΆΠΊΠ°Ρ‚Π° – 2000 Π² сСкунда, ΠΊΠ°ΠΊΡ‚ΠΎ спомСнах Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

И сСга сС случва трагСдия. По някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° възниква дълга Π·Π°Π±Ρ€Π°Π²Π΅Π½Π° транзакция. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ са Π±Π°Π½Π°Π»Π½ΠΈ:

  • Π•Π΄Π½Π° ΠΎΡ‚ Π½Π°ΠΉ-разпространСнитС – Π΅, Ρ‡Π΅ Π² ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π΄Π° сС ΠΎΠ±Ρ€ΡŠΡ‰Π°ΠΌΠ΅ към външСн сСрвис. И Ρ‚ΠΎΠ·ΠΈ сСрвис Π½Π΅ Π½ΠΈ отговаря. Π’.Π΅. ΠΎΡ‚Π²ΠΎΡ€ΠΈΠ»ΠΈ смС транзакция, Π½Π°ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ смС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈ смС ΠΎΡ‚ΠΈΡˆΠ»ΠΈ Π΄Π° Ρ‡Π΅Ρ‚Π΅ΠΌ ΠΏΠΎΡ‰Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈΠ»ΠΈ към Π΄Ρ€ΡƒΠ³ сСрвиз Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° инфраструктура, ΠΈ ΠΏΠΎ някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π½Π΅ Π½ΠΈ отговаря. И сСсията Π½ΠΈ Π΅ замряла Π² ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ – нСизвСстно, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‰Π΅ бъдС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π°.
  • Π’Ρ‚ΠΎΡ€Π°Ρ‚Π° ситуация, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π² ΠΊΠΎΠ΄Π° ΠΏΠΎ някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° сС Π΅ появил exception. И Π² exception Π½Π΅ смС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈΠ»ΠΈ затварянСто Π½Π° транзакцията. И ΠΈΠΌΠ°ΠΌΠ΅ висяща сСсия с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½Π° транзакция.
  • И послСдният – Π΅ ΡΡŠΡ‰ΠΎ доста чСсто срСщан случай. Π’ΠΎΠ²Π° Π΅ нСкачСствСн ΠΊΠΎΠ΄. Някои Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²Π΅ отварят транзакция. Вя остава висяща, ΠΈ Π²ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Ρ‡Π΅ тя Π΅ висяща.

КъдС водят Ρ‚Π°ΠΊΠΈΠ²Π° Π½Π΅Ρ‰Π°?

Към Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ рязко Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ ΠΈ индСкситС. Π’ΠΎΠ²Π° Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Ρ„Π΅ΠΊΡ‚ΡŠΡ‚ bloat. Π—Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Ρ‚ΠΎΠ²Π° Ρ‰Π΅ сС ΠΈΠ·Ρ€Π°Π·ΠΈ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. И Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ‰Π΅ страда. Π—Π°Ρ‰ΠΎΡ‚ΠΎ, Π°ΠΊΠΎ Π² ΠΊΠΎΠ΄Π° стС ΠΏΡ€Π΅ΠΊΠ°Ρ€Π°Π»ΠΈ 10 милисСкунди Π·Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ Π΄ΠΎ Π±Π°Π·Π°Ρ‚Π°, 10 милисСкунди Π·Π° своята Π»ΠΎΠ³ΠΈΠΊΠ°, Ρ‚ΠΎ функцията Π²ΠΈ Π΅ Ρ€Π°Π±ΠΎΡ‚Π΅Π»Π° 20 милисСкунди. А сСга ситуацията Ρ‰Π΅ бъдС съвсСм Ρ‚Ρ€Π°Π³ΠΈΡ‡Π½Π°.

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

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

ΠžΠ±Ρ‰Π°Ρ‚Π° ситуация ΠΏΠΎ срСдното Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΡΡŠΡ‰ΠΎ сС ΠΈΠ·ΠΌΠ΅Π½ΠΈ Π½Π° няколко ΠΏΠΎΡ€ΡΠ΄ΡŠΠΊΠ°. Π’.Π΅. всички заявки към ΡΡŠΡ€Π²ΡŠΡ€Π° Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…Π° Π΄Π° спадат Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ стартираха Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ процСси Π½Π° Postgres ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π°Π²Ρ‚ΠΎ-Π²Π°ΠΊΡƒΡƒΠΌ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΎΠΏΠΈΡ‚Π²Π°Ρ‚ Π΄Π° правят Π½Π΅Ρ‰ΠΎ ΠΈ консумират рСсурси.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Какво сС случва с Π½Π°ΡˆΠ°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°? Π‘ΡŠΡ‰ΠΎΡ‚ΠΎ. Π‘Ρ€Π΅Π΄Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° рязко скочи Π½Π° няколко ΠΏΠΎΡ€ΡΠ΄ΡŠΠΊΠ°. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΏΠΎ потрСбяванитС рСсурси, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° процСсора Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ. Π’ΠΎΠ²Π° Π΅ горният дСсСн Π³Ρ€Π°Ρ„ΠΈΠΊ. И ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ сС дълТи Π½Π° Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ ΠΏΡ€ΠΎΡ†Π΅ΡΠΎΡ€ΡŠΡ‚ трябва Π΄Π° ΠΏΡ€Π΅Π³Π»Π΅ΠΆΠ΄Π° ΠΊΡƒΠΏ Π±ΠΎΠΊΠ»ΡƒΡ†ΠΈ Π² Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° СдинствСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π΄. Π’ΠΎΠ²Π° Π΅ долният дСсСн Π³Ρ€Π°Ρ„ΠΈΠΊ. И ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ – броят Π½Π° извикванията Π² сСкунда Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° сС сринС, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π΅ успява Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΡΡŠΡ‰ΠΎΡ‚ΠΎ количСство заявки.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Врябва Π΄Π° сС Π²ΡŠΡ€Π½Π΅ΠΌ към Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎΡ‚ΠΎ. Π’Π»ΠΈΠ·Π°ΠΌΠ΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅, Ρ‡Π΅ Π΄ΡŠΠ»Π³ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ водят Π΄ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. НамирамС ΠΈ ΡƒΠ±ΠΈΠ²Π°ΠΌΠ΅ Ρ‚Π°Π·ΠΈ транзакция. И всичко става Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ. Всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ трябва.

УспокоихмС сС, Π½ΠΎ слСд извСстно Π²Ρ€Π΅ΠΌΠ΅ Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π΄Π° забСлязвамС, Ρ‡Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½Π°Ρ‚Π° ситуация. ЗаявкитС всС ΠΎΡ‰Π΅ сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ, ΠΈ Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ. Π’ 1.5-2 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-Π±Π°Π²Π½ΠΎ Π² конкрСтния ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. НатоварванСто Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΡΡŠΡ‰ΠΎ Π΅ ΠΏΠΎ-високо, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ аварията.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

И Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ Π΅: β€žΠšΠ°ΠΊΠ²ΠΎ сС случва с Π±Π°Π·Π°Ρ‚Π° Π² Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚?”. А с Π±Π°Π·Π°Ρ‚Π° сС случва слСдното. На Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π²ΠΈΠΆΠ΄Π°Ρ‚Π΅, Ρ‡Π΅ тя Π΅ спряла ΠΈ Ρ‚Π°ΠΌ наистина няма дълги Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Но Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° аварията Ρ„Π°Ρ‚Π°Π»Π½ΠΎ нараснаха. И ΠΎΡ‚Ρ‚ΠΎΠ³Π°Π²Π° Π½Π΅ намаляха. Π‘Ρ€Π΅Π΄Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° Π±Π°Π·Π°Ρ‚Π° сС стабилизира. И ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π²ΡŠΡ€Π²ΡΡ‚ Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ с ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ²Π° Π·Π° нас скорост. Авто-Π²Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ стана ΠΏΠΎ-Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΈ Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° ΠΏΡ€Π°Π²ΠΈ Π½Π΅Ρ‰ΠΎ с Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ трябва Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π΄Π°Π½Π½ΠΈ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π·Π° ΠΈΠ·ΠΏΠΈΡ‚Π²Π°Π½Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° със смСтки, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ промСнямС ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅: Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° сС Π΅ Π²ΡŠΡ€Π½Π°Π»ΠΎ Π² Π½ΠΎΡ€ΠΌΠ°Ρ‚Π°. Но Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π΅ ΠΎΠΊΠΎΠ»ΠΎ Π΅Π΄Π½Π° ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΏΠΎ-високо.

И ΠΏΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° процСсора Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π΅ сС Π΅ Π²ΡŠΡ€Π½Π°Π»ΠΎ Π΄ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° слСд аварията. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅ са Ρ‚ΠΎΡ‡Π½ΠΎ Π² долния дСсСн Π³Ρ€Π°Ρ„ΠΈΠΊ. ЛСсно сС Π²ΠΈΠΆΠ΄Π°, Ρ‡Π΅ Ρ‚Π°ΠΌ става ΠΏΡ€Π΅Π½Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ количСство ΠΏΠ°ΠΌΠ΅Ρ‚. ВоСст, Π·Π° Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ нуТния Ρ€Π΅Π΄, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ рСсурситС Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° Π½Π° Π±Π΅Π·ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π΄Π°Π½Π½ΠΈ. Броят Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π² сСкунда сС Π΅ стабилизирал.

ΠžΠ±Ρ‰ΠΎ Π²Π·Π΅Ρ‚ΠΎ Π΅ Π΄ΠΎΠ±Ρ€Π΅, Π½ΠΎ ситуацията Π΅ ΠΏΠΎ-лоша, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ бСшС. Π―Π²Π½Π° дСградация Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ послСдица ΠΎΡ‚ Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ с Ρ‚Π°Π·ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

И Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ става Ρ‚Π°ΠΌ, Π°ΠΊΠΎ Π½Π΅ стС ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π°Π»ΠΈ Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° лСкция, сСга Ρ‰Π΅ сподСля ΠΌΠ°Π»ΠΊΠΎ тСория. ВСория Π·Π° Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ процСс. Π—Π°Ρ‰ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ автопочистванСто ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡ€Π°Π²ΠΈ Ρ‚ΠΎ?

Накратко, Π·Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. Π’ някакъв ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠΌΠ°ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π°. Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈΠΌΠ°ΠΌΠ΅ Ρ€Π΅Π΄ΠΎΠ²Π΅. Π’Π΅Π·ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ, ΠΆΠΈΠ²ΠΈ, Π½ΡƒΠΆΠ½ΠΈ Π½ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°. На ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°Ρ‚Π° Ρ‚Π΅ са ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈ с Π·Π΅Π»Π΅Π½ΠΎ. И ΠΈΠΌΠ° ΠΌΡŠΡ€Ρ‚Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ са ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ, ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΈ, Π·Π° тях ΠΈΠΌΠ° Π½ΠΎΠ²ΠΈ записи. И Ρ‚Π΅ са ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈ, Ρ‡Π΅ Π²Π΅Ρ‡Π΅ Π½Π΅ интСрСсуват Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. Но остават Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π·Π°Ρ€Π°Π΄ΠΈ особСноститС Π½Π° Postgres.

Π—Π°Ρ‰ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ автопочистванСто? АвтопочистванСто Π² някакъв ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ΄Π²Π°, ΠΎΠ±Ρ€ΡŠΡ‰Π° сС към Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΈ я ΠΏΠΈΡ‚Π°: "Моля, Π΄Π°ΠΉ ΠΌΠΈ id Π½Π° Π½Π°ΠΉ-старата транзакция, която Π΅ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ." Π‘Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π²Ρ€ΡŠΡ‰Π° Ρ‚ΠΎΠ²Π° id. И автопочистванСто, ΠΎΠΏΠΈΡ€Π°ΠΉΠΊΠΈ сС Π½Π° Π½Π΅Π³ΠΎ, ΠΏΡ€Π΅Π³Π»Π΅ΠΆΠ΄Π° Ρ€Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. И Π°ΠΊΠΎ Π²ΠΈΠ΄ΠΈ, Ρ‡Π΅ някои Ρ€Π΅Π΄ΠΎΠ²Π΅ са Π±ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΈ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-стари Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ Ρ‚ΠΎΠΉ ΠΈΠΌΠ° ΠΏΡ€Π°Π²ΠΎ Π΄Π° Π³ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π° ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅, записвайки Π½ΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ²Π° Π΅ Ρ„ΠΎΠ½ΠΎΠ²Π° процСс.

ΠŸΡ€Π΅Π· Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ някакви ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. И Π½Π° Ρ‚Π΅Π·ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅, записвамС Π½ΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ. И Ρ‚Π°ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ ΠΊΡ€ΡŠΠ³ΠΎΠ²Ρ€Π°Ρ‚, тоСст постоянно Ρ‚Π°ΠΌ Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‚ стари ΠΌΡŠΡ€Ρ‚Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, вмСсто тях записвамС Π½ΠΎΠ²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π½ΠΈ трябват. И Ρ‚ΠΎΠ²Π° Π΅ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с PostgreSQL.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Какво сС случи ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π°? Как ΠΏΡ€ΠΎΡ‚Π΅Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ процСс?

Π˜ΠΌΠ°Ρ…ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, някои Ρ€Π΅Π΄ΠΎΠ²Π΅ са Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ, Π° Π΄Ρ€ΡƒΠ³ΠΈ - Π½Π΅. ΠΠ²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ Π΄ΠΎΠΉΠ΄Π΅ ΠΈ ΠΏΠΎΠΏΠΈΡ‚Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΊΠΎΠΉ Π΅ Π½Π°ΡˆΠΈΡΡ‚ Π½Π°ΠΉ-стар Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π΅Π½ запис, какъв Π΅ нСговият ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. ΠŸΠΎΠ»ΡƒΡ‡ΠΈ Ρ‚ΠΎΠ·ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ с часовС ΠΏΠΎ-стар, Π° ΠΌΠΎΠΆΠ΅ ΠΈ Π΄Π° Π΅ дСсСтминутСн. Π’ΠΎΠ²Π° зависи ΠΎΡ‚ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° Ρ‚ΡŠΡ€ΡΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π΅ΠΌΠΈ. ΠžΠ±Π°Ρ‡Π΅ Π½Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈ Ρ‚Π°ΠΊΠΈΠ²Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² Π½Π°ΡˆΠ°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°.

Но Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌ Π½Π΅Ρ‰ΠΎ с Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, я обновявамС ΠΈ промСнямС Π΄Π°Π½Π½ΠΈ. Какво Π΄Π° ΠΏΡ€Π°Π²ΠΈ Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π² Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚? НС ѝ остава Π½ΠΈΡ‰ΠΎ Π΄Ρ€ΡƒΠ³ΠΎ, освСн Π΄Π° добавя Π½ΠΎΠ²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² края Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°. И ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π½ΠΈ Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° нараства.

Π’ дСйствитСлност, Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½ΠΈ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. Но ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ‚Π°ΠΊΡŠΠ² ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΡŠΡ‚ Π½Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² цялата Ρ‚Π°Π±Π»ΠΈΡ†Π° Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ нисък.

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅, Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ трябва Π΄Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° всички Ρ€Π΅Π΄ΠΎΠ²Π΅: ΠΊΠ°ΠΊΡ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΡ‚Π΅, Ρ‚Π°ΠΊΠ° ΠΈ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΡ‚Π΅, Π·Π° Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈ нСобходимия Ρ€Π΅Π΄. Π•Ρ„Π΅ΠΊΡ‚ΡŠΡ‚ ΠΎΡ‚ Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° с излишни Π΄Π°Π½Π½ΠΈ сС Π½Π°Ρ€ΠΈΡ‡Π° "bloat", ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΏΠΎΠ³Π»ΡŠΡ‰Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ дисково пространство. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ Π»ΠΈ, Ρ‡Π΅ бСшС 2 MB, стана 300 MB? А сСга смСнСтС ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ΠΈΡ‚Π΅ с Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ΠΈ ΠΈ Π±ΡŠΡ€Π·ΠΎ Ρ‰Π΅ Π·Π°Π³ΡƒΠ±ΠΈΡ‚Π΅ всичкитС си дискови рСсурси.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Какви ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ послСдствията Π·Π° нас?

  • Π’ моя ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈ индСкса нарасна 150 ΠΏΡŠΡ‚ΠΈ. ΠŸΡ€ΠΈ някои ΠΎΡ‚ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ са ΠΈΠΌΠ°Π»ΠΈ ΠΏΠΎ-Ρ„Π°Ρ‚Π°Π»Π½ΠΈ случаи, ΠΊΠΎΠ³Π°Ρ‚ΠΎ пространството Π½Π° диска ΠΈΠΌ Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° ΡΠ²ΡŠΡ€ΡˆΠ²Π°.
  • Π Π°Π·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ сами ΠΏΠΎ сСбС си Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ намаляват. ΠΠ²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ случаи ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡ‚Ρ€Π΅ΠΆΠ΅ края Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, Π°ΠΊΠΎ Π² Π½Π΅Π³ΠΎ ΠΈΠΌΠ° само Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. Но Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‚ΠΈΡ‡Π° постоянно ротация, Π΅Π΄ΠΈΠ½ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Ρ€Π΅Π΄ ΠΌΠΎΠΆΠ΅ Π΄Π° останС Π² края ΠΈ Π΄Π° Π½Π΅ сС обновява, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ всички останали Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ записвани някъдС Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. Но Ρ‚ΠΎΠ²Π° Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ°Π»ΠΊΠΎ вСроятно, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС надяватС Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° сама ΠΏΠΎ сСбС си Π΄Π° Π½Π°ΠΌΠ°Π»Π΅Π΅ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ Π΅ рСалистично.
  • Π‘Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ трябва Π΄Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄Π° цСлия ΠΊΡƒΠΏ Π½Π΅Π½ΡƒΠΆΠ½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. И Π½ΠΈΠ΅ ΠΈΠ·Ρ€Π°Π·Ρ…ΠΎΠ΄Π²Π°ΠΌΠ΅ дискови рСсурси, ΠΈΠ·Ρ‚ΠΎΡ‡Π²Π°ΠΌΠ΅ рСсурси Π½Π° процСсора ΠΈ СлСктричСската СнСргия.
  • И Ρ‚ΠΎΠ²Π° пряко влияС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½ΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ, Π°ΠΊΠΎ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ отдСляхмС 10 милисСкунди Π·Π° заявка, 10 милисСкунди Π·Π° ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° аварията Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° отдСлямС сСкунда Π·Π° заявка ΠΈ 10 милисСкунди Π·Π° ΠΊΠΎΠ΄Π°, Ρ‚.Π΅. производитСлността Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ спадна драстично. И ΠΊΠΎΠ³Π°Ρ‚ΠΎ аварията бСшС отстранСна, Π²Π΅Ρ‡Π΅ отдСляхмС 20 милисСкунди Π·Π° заявка ΠΈ 10 милисСкунди Π·Π° ΠΊΠΎΠ΄Π°. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ всС ΠΏΠ°ΠΊ ΠΈΠΌΠ°ΠΌΠ΅ спад Π² производитСлността ΠΎΡ‚ 1.5 ΠΏΡŠΡ‚ΠΈ. И всичко Ρ‚ΠΎΠ²Π° Π΅ Π·Π°Ρ€Π°Π΄ΠΈ Π΅Π΄Π½Π° транзакция, която Π·Π°Ρ†ΠΈΠΊΠ»ΠΈ, вСроятно ΠΏΠΎ наша Π²ΠΈΠ½Π°.
  • И Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ Π΅: β€žΠšΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΡŠΡ€Π½Π΅ΠΌ всичко ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ?β€œ, Π·Π° Π΄Π° успССм ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ Π±ΡŠΡ€Π·ΠΈ заявки, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ аварията.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Π—Π° Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ†ΠΈΠΊΡŠΠ» ΠΎΡ‚ дСйствия, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ°Ρ‚.

ΠŸΡŠΡ€Π²ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΈΡ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са сС ΡƒΠ³ΠΎΠ»Π΅ΠΌΠΈΠ»ΠΈ. Π Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅, Ρ‡Π΅ Π·Π° някои Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ записитС Π²ΡŠΡ€Π²ΡΡ‚ ΠΏΠΎ-Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ, Π° Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ - ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ. И Π·Π° Ρ‚ΠΎΠ²Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ pgstattuple. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ инсталиратС Ρ‚ΠΎΠ²Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ заявки, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅Ρ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са сС ΡƒΠ³ΠΎΠ»Π΅ΠΌΠΈΠ»ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ стС ΠΎΡ‚ΠΊΡ€ΠΈΠ»ΠΈ Ρ‚Π΅Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, Ρ‚Π΅ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ компрСсирани. Π—Π° Ρ‚ΠΎΠ²Π° Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ° инструмСнти. Π’ Π½Π°ΡˆΠ°Ρ‚Π° компания ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ‚Ρ€ΠΈ инструмСнта. ΠŸΡŠΡ€Π²ΠΈΡΡ‚ – Π²Π³Ρ€Π°Π΄Π΅Π½ΠΎΡ‚ΠΎ VACUUM FULL. Π’ΠΎ Π΅ ΡΡ‚Ρ€ΡŠΠΌΠ½ΠΎ, Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈ Π±Π΅Π·ΠΏΠΎΡ‰Π°Π΄Π½ΠΎ, Π½ΠΎ понякога Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. Pg_repack ΠΈ pgcompacttable – Ρ‚ΠΎΠ²Π° са външни ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ Π·Π° компрСсиранС Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. Π’Π΅ са ΠΏΠΎ-Π½Π΅ΠΆΠ½ΠΈ с Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ.

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ сС Π² зависимост ΠΎΡ‚ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅ Π΅ ΠΏΠΎ-ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π·Π° вас. Но Π·Π° Ρ‚ΠΎΠ²Π° Ρ‰Π΅ говоря Π² самия ΠΊΡ€Π°ΠΉ. Π’Π°ΠΆΠ½ΠΎ Π΅, Ρ‡Π΅ ΠΈΠΌΠ° Ρ‚Ρ€ΠΈ инструмСнта. Има ΠΎΡ‚ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚Π΅.

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ всичко Π΅ ΠΏΠΎΠΏΡ€Π°Π²Π΅Π½ΠΎ ΠΈ смС сС ΡƒΠ²Π΅Ρ€ΠΈΠ»ΠΈ, Ρ‡Π΅ всичко Π΅ Π½Π°Ρ€Π΅Π΄, трябва Π΄Π° Π·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ситуация Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅:

  • Вя сС прСдотвратява доста лСсно. Врябва Π΄Π° слСдитС ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° сСсиитС Π½Π° майстор-сСрвСра. ОсобСно опасни са сСсиитС Π² ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ idle in transaction.Π’ΠΎΠ²Π° са ΠΎΠ½Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΎΡ‚Π²ΠΎΡ€ΠΈΠ»ΠΈ транзакция, Π½Π°ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ са Π½Π΅Ρ‰ΠΎ ΠΈ слСд Ρ‚ΠΎΠ²Π° са сС ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡ΠΈΠ»ΠΈ ΠΈΠ»ΠΈ просто са сС Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ»ΠΈ, ΠΈΠ·Π³ΡƒΠ±ΠΈΠ»ΠΈ сС Π² ΠΊΠΎΠ΄Π°.
  • И Π·Π° вас, ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° тСстватС ΠΊΠΎΠ΄Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π΅Π·ΠΈ ситуации. НС Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ. Π’ΠΎΠ²Π° Ρ‰Π΅ бъдС ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°. Π©Π΅ ΠΈΠ·Π±Π΅Π³Π½Π΅Ρ‚Π΅ голямо количСство β€žΠ΄Π΅Ρ‚ΡΠΊΠΈβ€œ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Π΄ΡŠΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π½ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

На Ρ‚Π΅Π·ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ исках Π΄Π° Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ сС Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ слСд ΠΊΠ°Ρ‚ΠΎ ΠΌΠΈΠ½Π°Ρ… с VACUUM FULL ΠΏΡ€Π΅Π· Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. Π’ΠΎΠ²Π° Π½Π΅ Π΅ процСс Π² продукция.

Π Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π²Π΅Π΄Π½Π°Π³Π° сС Π²ΡŠΡ€Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° няколко ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°. Π’ΠΎΠ²Π° Π½Π΅ ΠΎΠΊΠ°Π·Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ влияниС Π²ΡŠΡ€Ρ…Ρƒ срСдното Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° ΡΡŠΡ€Π²Π΅Ρ€Π°.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

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

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Π’ΡƒΠΊ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° история. Вя Π΅ Π½Π°ΠΉ-разпространСната. И сС случва Π½Π° всички, нСзависимо ΠΎΡ‚ ΠΎΠΏΠΈΡ‚Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ квалификацията Π½Π° програмиститС. Π Π°Π½ΠΎ ΠΈΠ»ΠΈ късно Ρ‚ΠΎΠ²Π° сС случва.

Π’Ρ‚ΠΎΡ€Π°Ρ‚Π° история, Π² която разпрСдСлямС Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈΡ‚Π΅ рСсурси

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

  • Π’Π΅Ρ‡Π΅ смС пораснали ΠΈ станахмС сСриозни бизнСсмСни. И Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° ΠΈ Π±ΠΈ Π±ΠΈΠ»ΠΎ Ρ…ΡƒΠ±Π°Π²ΠΎ Π΄Π° балансирамС Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ: Π΄Π° пишСм Π½Π° ΠœΠ°ΡΡ‚Π΅Ρ€Π°, Π° ΠΎΡ‚ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° Π΄Π° Ρ‡Π΅Ρ‚Π΅ΠΌ. ОбикновСно Ρ‚Π°Π·ΠΈ ситуация възниква, ΠΊΠΎΠ³Π°Ρ‚ΠΎ искамС Π΄Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈΠΌ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈ ΠΈΠ»ΠΈ ETL. И Π±ΠΈΠ·Π½Π΅ΡΡŠΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ сС Ρ€Π°Π΄Π²Π° Π½Π° Ρ‚ΠΎΠ²Π°. Π˜ΡΠΊΠ°Ρ‚ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈ с ΠΌΠ½ΠΎΠ³ΠΎ слоТна Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°.
  • ΠžΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ°Ρ‚ часовС, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ слоТната Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС изчисли Π·Π° милисСкунди. НиС, ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠ±Ρ€ΠΈ слуТитСли, пишСм ΠΊΠΎΠ΄. ΠŸΡ€Π°Π²ΠΈΠΌ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ insert-ΠΈ, Ρ‡Π΅ Π·Π°ΠΏΠΈΡΡŠΡ‚ Π²ΡŠΡ€Π²ΠΈΠΌ Π½Π° ΠœΠ°ΡΡ‚Π΅Ρ€Π°, Π° ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°.
  • РазпрСдСлямС Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ.
  • Всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ. НиС смС Π²Π΅Π»ΠΈΠΊΠΈ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Как ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°Π·ΠΈ ситуация? ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π½Π° Ρ‚Π΅Π·ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ… ΠΈ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΎΡ‚ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°. Всички останали Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ сС отнасят само Π΄ΠΎ ΠœΠ°ΡΡ‚Π΅Ρ€-ΡΡŠΡ€Π²ΡŠΡ€Π°.

Π’Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° с ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅ Π΄ΠΎ сСга Π΅ нараснала. Π‘Ρ‚Π°Π½Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ срСдното Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° Π΅ стабилно. ΠžΠ±Π°Ρ‡Π΅ наблюдавамС, Ρ‡Π΅ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° ΠΈΠΌΠ°ΠΌΠ΅ дълга транзакция, която Ρ€Π°Π±ΠΎΡ‚ΠΈ 2 часа. Π’ΠΈΠΆΠ΄Π°ΠΌΠ΅ спокойната Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Π°Π²Ρ‚ΠΎ-Π²Π°ΠΊΡƒΡƒΠΌΠ°, ΠΊΠΎΠΉΡ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΌΡŠΡ€Ρ‚Π²ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅. Всичко Π΅ Π½Π°Ρ€Π΅Π΄.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½ΠΎ Π·Π° тСстваната Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° обновявамС ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅ ΠΏΠΎ смСткитС. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΈΠΌΠ°ΠΌΠ΅ стабилно Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° заявкитС ΠΈ стабилно ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° рСсурси. Всичко Π΅ Π½Π°Ρ€Π΅Π΄.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Всичко Π²ΡŠΡ€Π²ΠΈ Π΄ΠΎΠ±Ρ€Π΅, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Ρ‚Π΅Π·ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈ Π½Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ‚ Π΄Π° сС появяват ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈ с рСпликацията. Π’Π΅ сС появяват с постоянна пСриодичност.

Π—Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΠΌ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈ Π΄Π° Ρ‡Π΅Ρ‚Π΅ΠΌ Π·Π°Ρ‰ΠΎ Ρ‚ΠΎΠ²Π° сС случва. И Π½Π°ΠΌΠΈΡ€Π°ΠΌΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

ΠŸΡŠΡ€Π²ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΅ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° рСпликацията. Π—Π½Π°Π΅ΠΌ, Ρ‡Π΅ Π½Π°ΡˆΠΈΡΡ‚ ΠΎΡ‚Ρ‡Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚ΠΈ 3 часа. НастройвамС Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° рСпликацията Π½Π° 3 часа. ЗапускамС всичко, Π½ΠΎ всС ΠΏΠ°ΠΊ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅ понякога сС появяват.

ИскамС всичко Π΄Π° бъдС ΠΈΠ΄Π΅Π°Π»Π½ΠΎ. ΠŸΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΠΌ. НамирамС страхотна настройка Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ - hot_standby_feedback. Π’ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ я. Hot_standby_feedback Π½ΠΈ позволява Π΄Π° Π·Π°Π±Π°Π²ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π°Π²Ρ‚ΠΎ-Π²Π°ΠΊΡƒΡƒΠΌΠ° Π½Π° ΠœΠ°ΠΉΡΡ‚ΠΎΡ€Π°. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ напълно сС избавямС ΠΎΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈΡ‚Π΅ Π½Π° рСпликацията. И всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ Π΄ΠΎΠ±Ρ€Π΅ с ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

А ΠΊΠ°ΠΊΠ²ΠΎ сС случва ΠΏΠΎ Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ с ΠœΠ°ΠΉΡΡ‚ΠΎΡ€-ΡΡŠΡ€Π²ΡŠΡ€Π°? Π‘ ΠœΠ°ΠΉΡΡ‚ΠΎΡ€-ΡΡŠΡ€Π²ΡŠΡ€Π° сС случва Ρ‚ΠΎΡ‚Π°Π»Π½Π° Π±Π΅Π΄Π°. Π‘Π΅Π³Π° наблюдавамС Π³Ρ€Π°Ρ„ΠΈΡ†ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ… ΠΈ Π΄Π²Π΅Ρ‚Π΅ настройки. И Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ сСсията Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° ΠΏΠΎ някакъв Π½Π°Ρ‡ΠΈΠ½ Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° влияС Π½Π° ситуацията Π½Π° ΠœΠ°ΠΉΡΡ‚ΠΎΡ€-ΡΡŠΡ€Π²ΡŠΡ€Π°. ДСйствитСлно влияС, Π·Π°Ρ‰ΠΎΡ‚ΠΎ спира Π°Π²Ρ‚ΠΎ-Π²Π°ΠΊΡƒΡƒΠΌΠ°, ΠΊΠΎΠΉΡ‚ΠΎ прочиства ΠΌΡŠΡ€Ρ‚Π²ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅. Π Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π΅ скочил Π΄ΠΎ Π½Π΅Π±Π΅Ρ‚ΠΎ. Π‘Ρ€Π΅Π΄Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° изпълнСниС Π½Π° запитванията Π² цялата Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΡΡŠΡ‰ΠΎ Π΅ скочило Π΄ΠΎ Π½Π΅Π±Π΅Ρ‚ΠΎ. Авто-Π²Π°ΠΊΡƒΡƒΠΌΠΈΡ‚Π΅ ΠΌΠ°Π»ΠΊΠΎ сС Π½Π°ΠΏΡ€Π΅Π³Π½Π°Ρ…Π°.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π·Π° Π½Π°ΡˆΠ°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΡΡŠΡ‰ΠΎ Π΅ скочило Π΄ΠΎ Π½Π΅Π±Π΅Ρ‚ΠΎ. ΠŸΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° процСсорни рСсурси ΡΡŠΡ‰ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ нарасна. ΠžΡ‚Π½ΠΎΠ²ΠΎ ΠΏΡ€Π΅Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ голямо количСство ΠΌΡŠΡ€Ρ‚Π²ΠΈ, Π±Π΅Π·ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. И Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°, броят Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΏΠ°Π΄Π½Π°.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Как Ρ‰Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ Π½Π΅ Π·Π½Π°Π΅ΠΌ Π·Π° ΠΊΠ°ΠΊΠ²ΠΎ говоря Π΄ΠΎ сСга?

  • Π—Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅. Ако смС сС сблъсквали с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΠΏΡŠΡ€Π²Π°Ρ‚Π° част, Π·Π½Π°Π΅ΠΌ, Ρ‡Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π΄ΡŠΠ»Π³Π°Ρ‚Π° транзакция ΠΈ провСрявамС ΠœΠ°ΡΡ‚Π΅Ρ€Π°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ Π½Π° ΠœΠ°ΡΡ‚Π΅Ρ€Π°. Има ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. Загрява, Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ Π΅ ΠΏΠΎΠ΄ сто.
  • Запитванията Ρ‚Π°ΠΌ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Π±Π°Π²Π½ΠΎ, Π½ΠΎ Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ дълги Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. И Π½Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²Π° Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π°. НС Π·Π½Π°Π΅ΠΌ къдС Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΠΌ.
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅ ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΎΡ‚ΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅. МоТС Π±ΠΈ RAID Π΅ Ρ€Π°Π·Π±ΠΈΡ‚. МоТС Π΄Π° смС ΠΈΠ·Π³ΡƒΠ±ΠΈΠ»ΠΈ ΠΏΠ°ΠΌΠ΅Ρ‚Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ». Всичко ΠΌΠΎΠΆΠ΅ Π΄Π° сС случи. Но Π½Π΅, ΡΡŠΡ€Π²Π΅Ρ€ΠΈΡ‚Π΅ са Π½ΠΎΠ²ΠΈ, всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ.
  • Всички сС Π²ΡŠΡ€Ρ‚ΡΡ‚: администратори, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€. Нищо Π½Π΅ ΠΏΠΎΠΌΠ°Π³Π°.
  • И Π² Π΅Π΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ всичко Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° сС оправя само.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

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

БСсията Π΅ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈΠ»Π°. И само слСд някакво Π²Ρ€Π΅ΠΌΠ΅ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° сС пооправя. И срСдното Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° запитванията Π½Π° ΠœΠ°ΡΡ‚ΡŠΡ€ ΡΡŠΡ€Π²ΡŠΡ€Π° сС Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΈΡ€Π°. Π—Π°Ρ‰ΠΎΡ‚ΠΎ, Π½Π°ΠΉ-накрая, автопочистванСто ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π΄Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅, Π΄Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π° Ρ‚Π΅Π·ΠΈ ΠΌΡŠΡ€Ρ‚Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. И Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° Π²ΡŠΡ€ΡˆΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° си. И ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π±ΡŠΡ€Π·ΠΎ я ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π±ΡŠΡ€Π·ΠΎ Ρ‰Π΅ сС ΠΎΠΏΡ€Π°Π²ΠΈΠΌ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

По ΠΈΠ·ΠΏΠΈΡ‚Π²Π°Π½Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ обновявамС ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅ ΠΏΠΎ смСткитС, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΡŠΡ‰Π°Ρ‚Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°. Π‘Ρ€Π΅Π΄Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° смСтката ΡΡŠΡ‰ΠΎ постСпСнно сС Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΈΡ€Π°. РСсурситС, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ ΠΎΡ‚ процСсора, ΡΡŠΡ‰ΠΎ намаляват. И броят Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π² сСкунда сС Π²Ρ€ΡŠΡ‰Π° към Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎΡ‚ΠΎ. Но ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π½Π΅ Π² Ρ‚Π°ΠΊΠ°Π²Π° Π½ΠΎΡ€ΠΌΠ°, ΠΊΠ°ΠΊΠ²Π°Ρ‚ΠΎ ΠΈΠΌΠ°Ρ…ΠΌΠ΅ ΠΏΡ€Π΅Π΄ΠΈ аварията.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Π’ΡŠΠ² всСки случай ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ спад Π² производитСлността, ΠΊΠ°ΠΊΡ‚ΠΎ Π² ΠΏΡŠΡ€Π²ΠΈΡ случай, с Π΅Π΄Π½Π° ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π΄ΠΎ Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ, Π° понякога ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅.

ИзглСТда, Ρ‡Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ всичко ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ. Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ…ΠΌΠ΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ. ΠžΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π΅ остава Π±Π΅Π· Ρ€Π°Π±ΠΎΡ‚Π°. Π Π°Π·ΡƒΠΌΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ…ΠΌΠ΅ запитванията, Π½ΠΎ Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° всичко сС ΠΎΠΊΠ°Π·Π° лошо.

  • НС Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΠΉΡ‚Π΅ hot_standby_feedback? Π”Π°, Π±Π΅Π· сСриозни ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ Π½Π΅ сС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΄Π° сС Π²ΠΊΠ»ΡŽΡ‡Π²Π°. Π—Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ пряко влияС Π½Π° ΠœΠ°ΡΡ‚ΡŠΡ€-ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΈ спира Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π°Π²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌΠ° Ρ‚Π°ΠΌ. Ако Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π½Π° някаква Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° ΠΈ Π·Π°Π±Ρ€Π°Π²ΠΈΡ‚Π΅ Π·Π° Π½Π΅Π³ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡƒΠ±ΠΈΠ²Π°Ρ‚Π΅ ΠœΠ°ΡΡ‚ΡŠΡ€Π° ΠΈ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ сСриозни ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.
  • Π”Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ max_standby_streaming_delay? Π”Π°, Π·Π° ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅ - Ρ‚Π°ΠΊΠ° Π΅. Ако ΠΈΠΌΠ°Ρ‚Π΅ тричасов ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΈ Π½Π΅ искатС Π΄Π° спира ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈΡ‚Π΅ с Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅, просто ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Ρ‚Π΅ Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ. Π”ΡŠΠ»Π³ΠΈΡΡ‚ ΠΎΡ‚Ρ‡Π΅Ρ‚ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ изисква Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΏΠΎΡΡ‚ΡŠΠΏΠΈΠ»ΠΈ Π² Π±Π°Π·Π°Ρ‚Π° Ρ‚ΠΎΡ‡Π½ΠΎ сСга. Ако Π΅ тричасов, Π·Π½Π°Ρ‡ΠΈ Π³ΠΎ стартиратС Π·Π° някакъв стар ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ. И Π·Π°ΠΊΡŠΡΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΎΡ‚ Ρ‚Ρ€ΠΈ часа, ΠΈΠ»ΠΈ ΡˆΠ΅ΡΡ‚ часа - няма Π΄Π° ΠΈΠ³Ρ€Π°Π΅ роля, Π½ΠΎ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ стабилно ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅ си ΠΈ няма Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с тяхното спиранС.
  • Π Π°Π·Π±ΠΈΡ€Π° сС, трябва Π΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Ρ‚Π΅ Π΄ΡŠΠ»Π³ΠΈΡ‚Π΅ сСсии Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ‚Π΅, особСно Π°ΠΊΠΎ Ρ€Π΅ΡˆΠΈΡ‚Π΅ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ hot_standby_feedback Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°. Π—Π°Ρ‰ΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС случи всичко. Π”Π°Π²Π°Π»ΠΈ стС Ρ‚Π°Π·ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π·Π° Π΄Π° тСстира заявки. Π’ΠΎΠΉ Π΅ написал Π»ΡƒΠ΄Π° заявка. Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π° я ΠΈ ΠΎΡ‚ΠΈΠ²Π° Π΄Π° ΠΏΠΈΠ΅ Ρ‡Π°ΠΉ, Π° Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ ΠΏΡ€Π΅ΠΏΡŠΠ»Π½Π΅Π½ ΠœΠ°ΡΡ‚ΡŠΡ€. Или смС пуснали Π½Π΅Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΌ. Π‘ΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠΈΡ‚Π΅ са Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΈ. БСсиитС Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ‚Π΅ трябва Π΄Π° сС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Ρ‚ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΈ Π½Π° ΠœΠ°ΡΡ‚ΡŠΡ€Π°.
  • И Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ Π±ΡŠΡ€Π·ΠΈ ΠΈ дълги заявки ΠΏΠΎ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ‚Π΅, Ρ‚ΠΎ Π² Ρ‚Π°ΠΊΡŠΠ² случай Π΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° Π³ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ. Π’ΠΎΠ²Π° Π΅ Π»ΠΈΠ½ΠΊ към streaming_delay. Π—Π° Π±ΡŠΡ€Π·ΠΈΡ‚Π΅ ΠΈΠΌΠ°ΠΉΡ‚Π΅ Π΅Π΄Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° с ΠΌΠ°Π»ΠΊΠΎ закъснСниС Π½Π° рСпликацията. Π—Π° Π΄ΡŠΠ»Π³ΠΈΡ‚Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Π½ΠΈ заявки ΠΈΠΌΠ°ΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, която ΠΌΠΎΠΆΠ΅ Π΄Π° изостава с 6 часа ΠΈΠ»ΠΈ Π΄ΠΎΡ€ΠΈ с Π΄Π΅Π½ΠΎΠ½ΠΎΡ‰ΠΈΠ΅. Π’ΠΎΠ²Π° Π΅ напълно Π½ΠΎΡ€ΠΌΠ°Π»Π½Π° ситуация.

ΠžΡ‚ΡΡ‚Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ послСдствията ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½:

  • НамирамС Ρ€Π°Π·Π΄ΡƒΡ‚ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ.
  • И компрСсирамС с Π½Π°ΠΉ-удобния инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ Π½ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠΆΠ΄Π°.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Π²Ρ‚ΠΎΡ€ΠΎ Ρ‚ΡƒΠΊ Π·Π°Π²ΡŠΡ€ΡˆΠΈ. ΠŸΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ към Ρ‚Ρ€Π΅Ρ‚Π°Ρ‚Π° история.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° доста ΠΎΠ±ΠΈΡ‡Π°ΠΉΠ½Π° Π·Π° нас, Π² която ΠΏΡ€Π°Π²ΠΈΠΌ миграция.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

  • ВсСки софтуСрСн ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ нараства. Π˜Π·ΠΌΠ΅Π½ΡΡ‚ сС изискванията към Π½Π΅Π³ΠΎ. НиС във всСки случай искамС Π΄Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π°ΠΌΠ΅. И понякога сС случва, Ρ‡Π΅ трябва Π΄Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ ΡŠΠΏΠ΄Π΅ΠΉΡ‚ Π² ΠΏΠ»Π°Π½Π° Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° миграция Π·Π° Π½ΠΎΠ²Π°Ρ‚Π° функционалност, която внСдрявамС Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅.
  • Бтарият Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π½Π΅ Π½ΠΈ удовлСтворява. Π”Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Π΅ сСга Ρ‰Π΅ сС ΠΎΠ±ΡŠΡ€Π½Π΅ΠΌ към Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΈΠΌΠ°ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ‚Π΅Π·ΠΈ смСтки. И Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ Ρ‚Π΅ са Π±ΠΈΠ»ΠΈ Π² Ρ€ΡƒΠ±Π»ΠΈ, Π° Π½ΠΈΠ΅ Ρ€Π΅ΡˆΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ точността ΠΈ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ Π² ΠΊΠΎΠΏΠ΅ΠΉΠΊΠΈ. Π—Π° Ρ‚ΠΎΠ²Π° Π½ΠΈ Π΅ Π½ΡƒΠΆΠ΅Π½ ΡŠΠΏΠ΄Π΅ΠΉΡ‚: ΠΏΠΎΠ»Π΅Ρ‚ΠΎ със сумата Π½Π° опСрацията Π΄Π° сС ΡƒΠΌΠ½ΠΎΠΆΠΈ ΠΏΠΎ сто.
  • Π’ ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ свят ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ срСдства Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° вСрсиитС Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Π”Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Liquibase. ЗаписвамС Π½Π°ΡˆΠ°Ρ‚Π° миграция Ρ‚Π°ΠΌ. ВСстувамС я Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° тСстова Π±Π°Π·Π°. Всичко Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ. ΡŠΠΏΠ΄Π΅ΠΉΡ‚ΡŠΡ‚ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°. Π‘Π»ΠΎΠΊΠΈΡ€Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π·Π° извСстно Π²Ρ€Π΅ΠΌΠ΅, Π½ΠΎ Π·Π°Ρ‚ΠΎΠ²Π° пък ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ. И ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° стартирамС Π½ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π½Π° Ρ‚ΠΎΠ²Π°. Всичко Π΅ тСствано, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ. Всичко Π΅ ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Π½ΠΎ.
  • ΠŸΡ€ΠΎΠ²Π΅Π΄ΠΎΡ…ΠΌΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°, ΠΏΡ€ΠΎΠ²Π΅Π΄ΠΎΡ…ΠΌΠ΅ миграция.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Π•Ρ‚ΠΎ, миграцията с ΡŠΠΏΠ΄Π΅ΠΉΡ‚Π° Π΅ прСдставСна ΠΏΡ€Π΅Π΄ вас. Въй ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° са ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ смСткитС, Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° бСшС с Ρ€Π°Π·ΠΌΠ΅Ρ€ 15 GB. И Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ обновявамС всяка Ρ€Π΅Π΄ΠΈΡ†Π°, с ΡŠΠΏΠ΄Π΅ΠΉΡ‚Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ…ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ прСзаписахмС всяка Ρ€Π΅Π΄ΠΈΡ†Π°.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

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

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

ΠŸΡ€ΠΎΠ²Π΅Π΄ΠΎΡ…ΠΌΠ΅ миграция ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡΡ‚Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π½ΠΎ:

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

И Ρ‚ΠΎΠ²Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π΅ Π±Π»Π°Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π½ΠΈ разваля ΠΆΠΈΠ²ΠΎΡ‚Π°.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Π’ΡƒΠΊ дСмонстрирам, Ρ‡Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π² ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ‚Π΅ Π΄Π²Π° случая, Π½Π΅ смята Π΄Π° сС Π²ΡŠΡ€Π½Π΅ към ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈ. Π‘Ρ€Π΅Π΄Π½ΠΎΡ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Ако сС ΠΎΠ±ΡŠΡ€Π½Π΅ΠΌ към Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° със счСтовСтС, Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ срСдното Π²Ρ€Π΅ΠΌΠ΅ Π·Π° заявка Π΅ нараснало Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ спрямо Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°. НатоварванСто Π½Π° процСсора ΠΈ количСството провСрявани Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° скочи Π½Π°Π΄ 7,5, Π° ΠΏΡ€Π΅Π΄ΠΈ бСшС ΠΏΠΎΠ΄ Ρ‚ΠΎΠ²Π°. И скочи Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ ΠΏΡ€ΠΈ процСсоритС, Π° ΠΏΡ€ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ – 1,5 ΠΏΡŠΡ‚ΠΈ, Ρ‚.Π΅. ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ дСградация Π½Π° производитСлността Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°. ВслСдствиС Π½Π° Ρ‚ΠΎΠ²Π° – дСградация Π½Π° производитСлността Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ‚ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ броят Π½Π° извикванията остана Π½Π° ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Π’ΡƒΠΊ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ Ρ‚Π°ΠΊΠΈΠ²Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ. А Ρ‚Π΅ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ. НиС постоянно ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ Ρ‚Π΅Π·ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ.

  • Π’Π°ΠΊΠΈΠ²Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ сС правят Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ. Π’Π΅ Π²ΠΈΠ½Π°Π³ΠΈ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ».
  • НСобходим Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» ΠΎΡ‚ страна Π½Π° ΠΊΠΎΠΌΠΏΠ΅Ρ‚Π΅Π½Ρ‚Π΅Π½ Ρ‡ΠΎΠ²Π΅ΠΊ. Ако Π² Π΅ΠΊΠΈΠΏΠ° Π²ΠΈ ΠΈΠΌΠ° DBA, Π½Π΅ΠΊΠ° Ρ‚ΠΎΠΉ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° с Ρ‚ΠΎΠ²Π°. Π’ΠΎΠ²Π° Π΅ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π°. Ако няма, Π½Π΅ΠΊΠ° Π½Π°ΠΉ-опитният Ρ‡ΠΎΠ²Π΅ΠΊ Π³ΠΎ ΠΏΡ€Π°Π²ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ Π·Π½Π°Π΅ ΠΊΠ°ΠΊ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ с Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ.
  • Новата схСма Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ, Π΄ΠΎΡ€ΠΈ Π² случай, Ρ‡Π΅ обновявамС само Π΅Π΄Π½Π° ΠΊΠΎΠ»ΠΎΠ½Π°, Π²ΠΈΠ½Π°Π³ΠΈ подготвямС Π½Π° Π΅Ρ‚Π°ΠΏΠΈ, Ρ‚.Π΅. ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° бъдС пусната Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ:
  • Добавят сС Π½ΠΎΠ²ΠΈ ΠΏΠΎΠ»Π΅Ρ‚Π°, Π² ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ записвамС Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ.
  • ΠŸΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠΌΠ΅ Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΎΡ‚ старото ΠΏΠΎΠ»Π΅ Π² Π½ΠΎΠ²ΠΎΡ‚ΠΎ ΠΏΠΎΠ»Π΅ Π½Π° ΠΌΠ°Π»ΠΊΠΈ части. Π—Π°Ρ‰ΠΎ Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌ? ΠŸΡŠΡ€Π²ΠΎ, Π²ΠΈΠ½Π°Π³ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°ΠΌΠ΅ процСса. Π—Π½Π°Π΅ΠΌ, Ρ‡Π΅ смС ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΈ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠ°Ρ€Ρ‚ΠΈΠ΄ΠΈ ΠΈ Π½ΠΈ остават ΠΎΡ‰Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π°.
  • Вторият ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π΅Π½ Π΅Ρ„Π΅ΠΊΡ‚ Π΅, Ρ‡Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ всяка Ρ‚Π°ΠΊΠ°Π²Π° ΠΏΠ°Ρ€Ρ‚ΠΈΠ΄Π° затварямС транзакцията, отварямС Π½ΠΎΠ²Π° ΠΈ Ρ‚ΠΎΠ²Π° позволява Π½Π° автопочистванСто Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°ΠΉΠΊΠΈ ΠΌΡŠΡ€Ρ‚Π²ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π·Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°.
  • Π—Π° Ρ€Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ сС появят Π² процСса Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ (старото ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ всС ΠΎΡ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ) добавямС Ρ‚Ρ€ΠΈΠ³Π΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ записва Π½ΠΎΠ²ΠΈΡ‚Π΅ стойности Π² Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π΅Ρ‚Π°. Π’ нашия случай – Ρ‚ΠΎΠ²Π° Π΅ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° сто ΠΎΡ‚ старата стойност.
  • Ако смС наистина ΡƒΠΏΠΎΡ€ΠΈΡ‚ΠΈ ΠΈ искамС Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ ΡΡŠΡ‰ΠΎΡ‚ΠΎ ΠΏΠΎΠ»Π΅, Ρ‚ΠΎ слСд Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° всички ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€Π΅Π΄ΠΈ внСдряванСто Π½Π° Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, просто ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ»Π΅Ρ‚Π°Ρ‚Π°. Π‘Ρ‚Π°Ρ€ΠΈΡ‚Π΅ Π² някакво измислСно ΠΈΠΌΠ΅, Π° Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π΅Ρ‚Π° ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°ΠΌΠ΅ Π² старитС.
  • И само слСд Ρ‚ΠΎΠ²Π° пускамС Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

И ΠΏΡ€ΠΈ Ρ‚ΠΎΠ²Π° няма Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ bloat ΠΈ производитСлността няма Π΄Π° спаднС.

Π’ΡƒΠΊ Π·Π°Π²ΡŠΡ€ΡˆΠΈ Ρ‚Ρ€Π΅Ρ‚Π°Ρ‚Π° история.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

https://github.com/dataegret/pg-utils/blob/master/sql/table_bloat.sql

https://github.com/dataegret/pg-utils/blob/master/sql/table_bloat_approx.sql

Π‘Π΅Π³Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π·Π° инструмСнтитС, ΠΊΠΎΠΈΡ‚ΠΎ спомСнах Π² самата ΠΏΡŠΡ€Π²Π° история.

ΠŸΡ€Π΅Π΄ΠΈ Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅ bloat, Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ трябва Π΄Π° инсталиратС Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅. pgstattuple.

Π—Π° Π΄Π° Π½Π΅ си измислятС заявки, Π½ΠΈΠ΅ Π² Π½Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° Π²Π΅Ρ‡Π΅ написахмС Ρ‚Π΅Π·ΠΈ заявки. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅. Π’ΡƒΠΊ са прСдставСни Π΄Π²Π΅ заявки.

  • ΠŸΡŠΡ€Π²Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ доста дълго, Π½ΠΎ Π·Π°Ρ‚ΠΎΠ²Π° пък Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ Ρ‚ΠΎΡ‡Π½ΠΈΡ‚Π΅ стойности Π½Π° bloat ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°.
  • Π’Ρ‚ΠΎΡ€Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΈ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ трябва Π±ΡŠΡ€Π·ΠΎ Π΄Π° ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ – ΠΈΠΌΠ° Π»ΠΈ bloat ΠΈΠ»ΠΈ няма bloat ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. И ΠΎΡ‰Π΅ трябва Π΄Π° Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Π΅ bloat Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Postgres Π²ΠΈΠ½Π°Π³ΠΈ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°. Π’ΠΎΠ²Π° Π΅ особСност Π½Π° нСговия ΠΌΠΎΠ΄Π΅Π» MVCC.
  • И 20% bloat Π΅ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ Π·Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ Π² ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ случаи. Π’.Π΅. Π½Π΅ трябва Π΄Π° сС притСсняватС ΠΈ Π΄Π° компрСсиратС Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°.

Π Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈ Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΈ с Π±Π΅Π·ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π΄Π°Π½Π½ΠΈ.

Π‘Π΅Π³Π° Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°ΠΌΠ΅ bloat:

  • Ако ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ°Π»ΠΊΠ° Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈ Π΄ΠΎΠ±Ρ€ΠΈ дисковС, Ρ‚.Π΅. Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π΄ΠΎ Π΅Π΄ΠΈΠ½ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ Π΅ напълно възмоТно Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° VACUUM FULL. Π©Π΅ Π²Π·Π΅ΠΌΠ΅ Π·Π° вас Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Сксклузивно Π·Π° няколко сСкунди ΠΈ Π΄ΠΎΠ±Ρ€Π΅, Π±ΡŠΡ€Π·ΠΎ ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ‰Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈ всичко. Какво ΠΏΡ€Π°Π²ΠΈ VACUUM FULL? Π’Π·Π΅ΠΌΠ° Сксклузивна Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° ΠΈ ΠΎΡ‚ старитС Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ прСнаписва Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΡ‚Π΅ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² Π½ΠΎΠ²Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°. И Π² края замСня мСстата ΠΈΠΌ. Π‘Ρ‚Π°Ρ€ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°, Π½ΠΎΠ²ΠΈΡ‚Π΅ поставя вмСсто старитС. Но ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° си Π²Π·ΠΈΠΌΠ° Сксклузивна Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ с Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π½ΠΈΡ‰ΠΎ: Π½ΠΈΡ‚ΠΎ Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π² нСя, Π½ΠΈΡ‚ΠΎ Π΄Π° Ρ‡Π΅Ρ‚Π΅Ρ‚Π΅ ΠΎΡ‚ нСя, Π½ΠΈΡ‚ΠΎ Π΄Π° я ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚Π΅. И VACUUM FULL изисква Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ място Π½Π° диска, Π·Π° Π΄Π° запишС Π΄Π°Π½Π½ΠΈΡ‚Π΅.
  • БлСдващият инструмСнт pg_repack. По своя ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ‚ΠΎΠΉ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° VACUUM FULL, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° прСнаписва Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ старитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Π½ΠΎΠ²ΠΈ ΠΈ Π³ΠΈ замСня Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. Но ΠΏΡ€ΠΈ Ρ‚ΠΎΠ²Π° Π½Π΅ Π²Π·ΠΈΠΌΠ° Сксклузивна Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° си, Π° я Π²Π·ΠΈΠΌΠ° само Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ° Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° замяна Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅. Π˜Π·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡ‚Π° Π·Π° дискови рСсурси са Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ Ρ‚Π΅Π·ΠΈ Π½Π° VACUUM FULL. НуТдаСтС сС ΠΎΡ‚ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ място Π½Π° диска, Π° Ρ‚ΠΎΠ²Π° понякога ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ ΠΎΡ‚ Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚. ОсвСн Ρ‚ΠΎΠ²Π° Ρ‚ΠΎΠΉ Π΅ доста Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Ρ‰ Π·Π° процСсора, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π°ΠΊΡ‚ΠΈΠ²Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π²Ρ…ΠΎΠ΄/ΠΈΠ·Ρ…ΠΎΠ΄.
  • ВрСтият инструмСнт – Ρ‚ΠΎΠ²Π° Π΅ pgcompacttable. Вя носи ΠΏΠΎ-Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към рСсурситС, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ. ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π½Π° pgcompacttable Π΅, Ρ‡Π΅ Ρ‡Ρ€Π΅Π· обновлСния Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° прСнася всички Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° стартира Π²Π°ΠΊΡƒΡƒΠΌ Π½Π° Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π·Π½Π°Π΅ΠΌ, Ρ‡Π΅ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ са Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ, Π° Π² края ΠΌΡŠΡ€Ρ‚Π²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅. Π’Π°ΠΊΡƒΠΌΡŠΡ‚ Π²Π΅Ρ‡Π΅ сам отрязва Ρ‚ΠΎΠ·ΠΈ излишък, Ρ‚.Π΅. Π½Π΅ изисква ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ дисково пространство. И Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π° ΠΏΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° рСсурси.

Π‘ инструмСнтитС всичко.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ bloat Π² postgresql. АндрСй Π‘Π°Π»Π½ΠΈΠΊΠΎΠ²

Ако Ρ‚Π΅ΠΌΠ°Ρ‚Π° Π·Π° bloat Π²ΠΈ сС струва интСрСсна Π·Π° ΠΏΠΎ-дълбоко ΠΏΡ€ΠΎΡƒΡ‡Π²Π°Π½Π΅, Π΅Ρ‚ΠΎ няколко ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π»ΠΈΠ½ΠΊΠ°:

  • https://www.slideshare.net/alexius2Mb/where-is-the-space-postgres – Ρ‚ΠΎΠ²Π° Π΅ Π΄ΠΎΠΊΠ»Π°Π΄ Π½Π° моя ΠΊΠΎΠ»Π΅Π³Π°. Π’ΠΎΠΉ Π΅ ΠΎΠ±Ρ‰ Π·Π° Ρ‚ΠΎΠ²Π° къдС ΠΈΠ·Ρ‡Π΅Π·Π²Π° мястото Π² Postgres Π² Ρ…ΠΎΠ΄Π° Π½Π° Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΈ ΠΆΠΈΠ²ΠΎΡ‚Π°. И Ρ‚Π°ΠΌ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡˆΠΈΡ€Π΅Π½ ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π΅Π½ тСхничСски ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π·Π° администратори Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ относно bloat.
  • https://github.com/dataegret/pg-utils – Ρ‚ΠΎΠ²Π° Π΅ Π»ΠΈΠ½ΠΊ към Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ ΠΊΡƒΠΏ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ скриптовС Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ скриптовС Π·Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° bloat.
  • Π’Ρ€Π΅Ρ‚ΠΈ ΠΈ Ρ‡Π΅Ρ‚Π²ΡŠΡ€Ρ‚ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ към инструмСнти, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ Π΄Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅.
  • http://blog.dataegret.com/2Mb018/03/postgresql-bloatbusters.html – Ρ‚ΠΎΠ²Π° Π΅ публикация Π½Π° моя ΠΊΠΎΠ»Π΅Π³Π°. Π’Π°ΠΌ Ρ‚ΠΎΠΉ сСриозно ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° bloat Π½Π° Π½ΠΈΠ²ΠΎ, Π±Π»ΠΈΠ·ΠΊΠΎ Π΄ΠΎ администраторитС.

Π’ΡƒΠΊ сС ΠΎΠΏΠΈΡ‚Π°Ρ… Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ° страховитост Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‚Π΅ са нСпосрСдствСни наши ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Π½Π° Π±Π°Π·ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ ΠΈ трябва Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ ΠΊΠ°ΠΊΠ²ΠΈ дСйствия ΠΊΠ°ΠΊΠ²ΠΎ водят. Надявам сС, Ρ‡Π΅ успях. Благодаря Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅Ρ‚ΠΎ!

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

Благодаря Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Π’ΠΈΠ΅ Π³ΠΎΠ²ΠΎΡ€Π΅Ρ…Ρ‚Π΅ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. А ΠΊΠ°ΠΊ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС прСдотвратяват? Π’.Π΅. ΠΈΠΌΠ°Ρ… ситуация, Π² която запитванията сС Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ…Π° Π½Π΅ само ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π°, Ρ‡Π΅ Ρ‚Π΅ сС ΠΎΠ±Ρ€ΡŠΡ‰Π°Ρ…Π° към някакви външни услуги. Π’ΠΎΠ²Π° бяха просто някакви звСрски joins. ИмашС някакви ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΈ Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½ΠΈ запитвания, ΠΊΠΎΠΈΡ‚ΠΎ висСха ΠΏΠΎ цял Π΄Π΅Π½, Π° послС Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ…Π° Π΄Π° правят Π½Π΅Ρ‰ΠΎ странно. Π’.Π΅. ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π° Π½Π° Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ описватС. Как ΠΌΠΎΠΆΠ΅ Π΄Π° сС слСди Ρ‚ΠΎΠ²Π°? Π”Π° сСдя ΠΈ постоянно Π΄Π° Π³Π»Π΅Π΄Π°ΠΌ ΠΊΠΎΠΉ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ Π΅ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ΠΎ? Как ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈ?

Π’ Ρ‚ΠΎΠ·ΠΈ случай – Ρ‚ΠΎΠ²Π° Π΅ Π·Π°Π΄Π°Ρ‡Π° Π·Π° администраторитС Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° компания, Π½Π΅ Π½Π΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π° DBA.

Аз съм администратор.

Π’ PostgreSQL ΠΈΠΌΠ° Ρ‚Π°ΠΊΠΎΠ²Π° прСдставлСниС, ΠΊΠ°Ρ‚ΠΎ pg_stat_activity, Π² ΠΊΠΎΠ΅Ρ‚ΠΎ са ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ΠΈΡ‚Π΅ запитвания. И ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΠ»ΠΊΠΎ дълго Π΅ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ΠΎ.

Врябва Π»ΠΈ Π΄Π° Π²Π»ΠΈΠ·Π°ΠΌ Π½Π° всСки 5 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ ΠΈ Π΄Π° Π³Π»Π΅Π΄Π°ΠΌ?

НастройтС cron ΠΈ провСряйтС. Ако ΠΈΠΌΠ°Ρ‚Π΅ дълга заявка, ΠΏΠΈΡˆΠ΅Ρ‚Π΅ писмо ΠΈ Ρ‚ΠΎΠ²Π° Π΅ всичко. Π’.Π΅. Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π³Π»Π΅Π΄Π°Ρ‚Π΅ с ΠΎΡ‡ΠΈΡ‚Π΅ си, Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°. Π©Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ писмо, Π½Π° ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€Π°Ρ‚Π΅. А ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π΄Π° отстрСлватС.

Има Π»ΠΈ явни ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ Π·Π°Ρ‰ΠΎ Ρ‚ΠΎΠ²Π° сС случва?

Аз ΠΈΠ·Π±Ρ€ΠΎΠΈΡ… някои. Π”Ρ€ΡƒΠ³ΠΈ са ΠΏΠΎ-слоТни ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ. И Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡ‚Π½Π΅ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅.

Благодаря Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Π˜ΡΠΊΠ°Ρ… Π΄Π° уточня Π·Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° pg_repack. Ако Π½Π΅ ΠΏΡ€Π°Π²ΠΈ Сксклузивна Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°, то…

Вя ΠΏΡ€Π°Π²ΠΈ Сксклузивна Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°.

… Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠ³Π° Π΄Π° загубя Π΄Π°Π½Π½ΠΈ. ΠœΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ трябва Π»ΠΈ Π΄Π° записва Π½ΠΈΡ‰ΠΎ ΠΏΡ€Π΅Π· Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅?

НС, Ρ‚ΠΎ спокойно Ρ€Π°Π±ΠΎΡ‚ΠΈ с Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, Ρ‚.Π΅. pg_repack ΠΏΡŠΡ€Π²ΠΎ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Ρ всички ΠΆΠΈΠ²ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°. ЕстСствСно, Ρ‚Π°ΠΌ сС записва Π½Π΅Ρ‰ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. Π’ΠΎΠΉ просто добавя Ρ‚ΠΎΠ·ΠΈ хвост.

Π’.Π΅. Π² края Π½Π° ΠΊΡ€Π°ΠΈΡ‰Π°Ρ‚Π° Ρ‚ΠΎΠΉ всС ΠΏΠ°ΠΊ Π»ΠΈ ΠΏΡ€Π°Π²ΠΈ?

Π’ края Π½Π° ΠΊΡ€Π°ΠΈΡ‰Π°Ρ‚Π° Ρ‚ΠΎΠΉ Π²Π·Π΅ΠΌΠ° Сксклузивна Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°, Π·Π° Π΄Π° замСня мСстата Π½Π° Ρ‚Π΅Π·ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Π’ΠΎΠ²Π° Ρ‰Π΅ бъдС ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΎΡ‚ VACUUM FULL?

VACUUM FULL, ΠΊΠΎΠ³Π°Ρ‚ΠΎ стартира, Π²Π΅Π΄Π½Π°Π³Π° ΠΏΠΎΠ΅ΠΌΠ° Сксклузивна Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°. И Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅ ΡΠ²ΡŠΡ€ΡˆΠΈ всичко, Π½Π΅ я пуска. А pg_repack ΠΏΠΎΠ΅ΠΌΠ° Сксклузивна Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° само Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° замяна Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅. Π’ Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅, Π½ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ няма Π΄Π° сС загубят, всичко Ρ‰Π΅ бъдС Π½Π°Ρ€Π΅Π΄.

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅! Π Π°Π·ΠΊΠ°Π·Π²Π°Ρ…Ρ‚Π΅ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π°Π²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌΠ°. ИмашС Π³Ρ€Π°Ρ„ΠΈΠΊΠ° с Ρ‡Π΅Ρ€Π²Π΅Π½ΠΈ, ΠΆΡŠΠ»Ρ‚ΠΈ ΠΈ Π·Π΅Π»Π΅Π½ΠΈ ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π·Π° записи. Π’.Π΅. ΠΆΡŠΠ»Ρ‚ΠΈΡ‚Π΅ – Π΅ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π» ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚ΠΈ. И слСдоватСлно Π² тях ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π΄Π° Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π΅Ρ‰ΠΎ Π½ΠΎΠ²ΠΎ?

Π”Π°. Postgres Π½Π΅ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π° Ρ€Π΅Π΄ΠΎΠ²Π΅. Има Ρ‚Π°ΠΊΠ°Π²Π° спСцифика. Ако смС ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ Ρ€Π΅Π΄, старият Π³ΠΎ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°ΠΌΠ΅ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚. Π’Π°ΠΌ Π²Π»ΠΈΠ·Π° id Π½Π° транзакцията, която Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»Π° Ρ‚ΠΎΠ·ΠΈ Ρ€Π΅Π΄, ΠΈ записвамС Π½ΠΎΠ² Ρ€Π΅Π΄. И ΠΈΠΌΠ°ΠΌΠ΅ сСсии, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π³ΠΈ Ρ‡Π΅Ρ‚Π°Ρ‚. Π’ някакъв ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρ‚Π΅ стават съвсСм стари. И ΡΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π°Π²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌΠ° Π΅, Ρ‡Π΅ Ρ‚ΠΎΠΉ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π° ΠΏΡ€Π΅Π· Ρ‚Π΅Π·ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΈ Π³ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π° ΠΊΠ°Ρ‚ΠΎ Π½Π΅Π½ΡƒΠΆΠ½ΠΈ. И Ρ‚Π°ΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€Π΅Π·Π°ΠΏΠΈΡˆΠ°Ρ‚ Π΄Π°Π½Π½ΠΈ.

Π Π°Π·Π±Ρ€Π°Ρ…. Но Π²ΡŠΠΏΡ€ΠΎΡΡŠΡ‚ Π½Π΅ Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π° Ρ‚ΠΎΠ²Π°. НС Π΄ΠΎΠ²ΡŠΡ€ΡˆΠΈΡ…. Π”Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π°. Π’ нСя ΠΈΠΌΠ° ΠΏΠΎΠ»Π΅Ρ‚Π° с ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ² Ρ€Π°Π·ΠΌΠ΅Ρ€. И Π°ΠΊΠΎ сС ΠΎΠΏΠΈΡ‚Π°ΠΌ Π΄Π° вставя Π½Π΅Ρ‰ΠΎ Π½ΠΎΠ²ΠΎ, Ρ‚ΠΎ просто ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π²Π»Π΅Π·Π΅ Π² старата ΠΊΠ»Π΅Ρ‚ΠΊΠ°.

НС, Ρ‚Π°ΠΌ вся строчка сС обновява. Π’ Postgres ΠΈΠΌΠ° Π΄Π²Π° ΠΌΠΎΠ΄Π΅Π»Π° Π·Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠΉ ΠΈΠ·Π±ΠΈΡ€Π° Π² зависимост ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅. Има Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°, Π° ΠΈΠΌΠ° ΠΈ tos-Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ²Π° са Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠ±Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ: тСкст, json. Π’Π΅ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. И ΠΏΠΎ Ρ‚Π΅Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ сС случва ΡΡŠΡ‰Π°Ρ‚Π° история с Π±Π»ΠΎΠ°Ρ‚Π°, Ρ‚.Π΅. всичко Π΅ ΡΡŠΡ‰ΠΎΡ‚ΠΎ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Ρ‚Π΅ са ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΈ.

Бпасибо Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! НякъдС ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ Π»ΠΈ Π΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° statement timeout Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° запитванията?

Много Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ»ΠΈΠ²ΠΎ. НиС Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ навсякъдС. И Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ нямамС свои услуги, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΠΌΠ΅ дистанционна ΠΏΠΎΠΌΠΎΡ‰ ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ доста Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ. Всички са напълно ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈ. Има задания Π² cron, ΠΊΠΎΠΈΡ‚ΠΎ провСряват. ΠŸΡ€ΠΎΡΡ‚ΠΎ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° сС уточнява ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° сСсиитС, ΠΏΡ€Π΅Π΄ΠΈ която Π½Π΅ Π³ΠΈ прСкратявамС. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΌΠΈΠ½ΡƒΡ‚Π° ΠΈΠ»ΠΈ 10 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ. Зависи ΠΎΡ‚ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±Π°Π·Π°Ρ‚Π° ΠΈ Π½Π΅ΠΉΠ½ΠΎΡ‚ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Но Π·Π° всички ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ pg_stat_activity.

Бпасибо Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! ΠžΠΏΠΈΡ‚Π²Π°ΠΌ сС Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ° Π²Π°ΡˆΠ°Ρ‚Π° прСзСнтация към ΠΌΠΎΠΈΡ‚Π΅ прилоТСния. И ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, Ρ‡Π΅ навсякъдС стартирамС транзакция ΠΈ навсякъдС я Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ явно. Ако сС случи някакво ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, всС Π΅Π΄Π½ΠΎ става rollback. Но сСга сС замислих. ВсС ΠΏΠ°ΠΊ транзакцията ΠΌΠΎΠΆΠ΅ Π΄Π° стартира нСявно. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΌΠ΅ΠΊ Π·Π° ΠΌΠΎΠΌΠΈΡ‡Π΅Ρ‚ΠΎ, ΠΏΠΎ всяка вСроятност. Ако просто правя ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° записа, транзакцията Ρ‰Π΅ стартира Π² PostgreSQL ΠΈ Ρ‰Π΅ Π·Π°Π²ΡŠΡ€ΡˆΠΈ Π΅Π΄Π²Π° ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π΅ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π°?

Ако Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ Π·Π° Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° зависи ΠΎΡ‚ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅, ΠΎΡ‚ ORM, ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°. Π’Π°ΠΌ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ настройки. Ако Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ auto commit on, транзакцията стартира ΠΈ Π²Π΅Π΄Π½Π°Π³Π° сС затваря.

Π’.Π΅. затваря сС Π²Π΅Π΄Π½Π°Π³Π° слСд ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ?

Π’ΠΎΠ²Π° зависи ΠΎΡ‚ настройкитС. Π•Π΄Π½Π° ΠΎΡ‚ настройкитС, която спомСнах, Π΅ auto commit on. Вя Π΅ доста разпространСна. Ако Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°, транзакцията сС отваря ΠΈ затваря. Ако Π½Π΅ стС ΠΊΠ°Π·Π°Π»ΠΈ явно "start transaction" ΠΈ "end transaction", Π° просто стС стартирали Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π² сСсията.

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅! Благодаря Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Π”Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ Π±Π°Π·Π°, която нараства Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΈ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΡΠ²ΡŠΡ€ΡˆΠ²Π° мястото. Има Π»ΠΈ инструмСнти, с ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π° сС ΠΎΠΏΡ€Π°Π²ΠΈΠΌ?

ΠœΡΡΡ‚ΠΎΡ‚ΠΎ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° трябва Π΄Π° сС наблюдава.

НапримСр, DBA ΠΎΡ‚ΠΈΠ΄Π΅ Π΄Π° ΠΏΠΈΠ΅ Ρ‡Π°ΠΉ, бСшС Π½Π° ΠΊΡƒΡ€ΠΎΡ€Ρ‚Π° ΠΈ Ρ‚.Π½.

ΠšΠΎΠ³Π°Ρ‚ΠΎ сС създава Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма, сС създава ΠΏΠΎΠ½Π΅ ΠΌΠ°Π»ΠΊΠΎ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ пространство, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Π½Π΅ сС записват Π΄Π°Π½Π½ΠΈ.

А Π°ΠΊΠΎ достигнС изцяло Π½ΡƒΠ»Π°?

Π’Π°ΠΌ Ρ‚Π°ΠΊΠ° сС Π½Π°Ρ€ΠΈΡ‡Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ пространство, Ρ‚. Π΅. Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС освободСно ΠΈ Π² зависимост ΠΎΡ‚ Ρ‚ΠΎΠ²Π° ΠΊΠΎΠ»ΠΊΠΎ голямо Π΅ създадСно, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚Π΅ свободно пространство. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π΅ Π·Π½Π°ΠΌ ΠΊΠΎΠ»ΠΊΠΎ Ρ‚Π°ΠΌ Π΅. А Π² Π΄Ρ€ΡƒΠ³ случай – доставянС Π½Π° дисковС, Π·Π° Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ място Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅Π»Π½Π° опСрация. МоТС Π΄Π° сС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅ някоя Ρ‚Π°Π±Π»ΠΈΡ†Π°, която наистина Π½Π΅ Π²ΠΈ Π΅ Π½ΡƒΠΆΠ½Π°.

НяматС Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ инструмСнти?

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

Благодаря Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! Имам Π΄Π²Π° Π²ΡŠΠΏΡ€ΠΎΡΠ°. ΠŸΡŠΡ€Π²ΠΎ, дСмонстрирахтС слайдовС, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС показвашС, Ρ‡Π΅ ΠΏΡ€ΠΈ зависнали Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ нараства ΠΊΠ°ΠΊΡ‚ΠΎ ΠΎΠ±Π΅ΠΌΡŠΡ‚ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΡ‚ΠΎ пространство, Ρ‚Π°ΠΊΠ° ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° индСкса. И слСд Ρ‚ΠΎΠ²Π° Π² Π΄ΠΎΠΊΠ»Π°Π΄Π° имашС ΠΊΡƒΠΏ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π°. А ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π·Π° индСкса?

Π’Π΅ ΡΡŠΡ‰ΠΎ Π³ΠΈ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚.

Но Π²Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ Π½Π΅ засяга индСкса?

Някои работят с индСкса. НапримСр, pg_rapack, pgcompacttable. Π’Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ ΠΏΡ€Π΅ΡΡŠΠ·Π΄Π°Π²Π° индСкситС, засяга Π³ΠΈ. Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° VACUUM FULL Π΅ Π΄Π° ΠΏΡ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅ всичко, Ρ‚. Π΅. Ρ‚ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΈ с всички.

И вторият Π²ΡŠΠΏΡ€ΠΎΡ. НС Ρ€Π°Π·Π±Ρ€Π°Ρ… Π·Π°Ρ‰ΠΎ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈΡ‚Π΅ зависят Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ самата рСпликация. ΠœΠΈΡΠ»Π΅Ρ…, Ρ‡Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈΡ‚Π΅ са Ρ‡Π΅Ρ‚Π΅Π½Π΅, Π° рСпликацията – запис.

Π’ ΠΊΠ°ΠΊΠ²ΠΎ възниква ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π½Π° рСпликацията? ИмамС Мaster, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ процСси. ΠŸΡ€ΠΈ нас сС случва Π°Π²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌ. ΠΠ²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡ€Π°Π²ΠΈ? Π’ΠΎΠΉ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π° стари Ρ€Π΅Π΄ΠΎΠ²Π΅. Ако ΠΏΠΎ Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π° ΠΈΠΌΠ° заявка, която Ρ‡Π΅Ρ‚Π΅ Ρ‚Π΅Π·ΠΈ стари Ρ€Π΅Π΄ΠΎΠ²Π΅, Π° Π½Π° Master-Π° Π΅ възникнала ситуация, Ρ‡Π΅ Π°Π²Ρ‚ΠΎΠ²Π°ΠΊΡƒΡƒΠΌΡŠΡ‚ Π΅ oznachΠΈΠ» Ρ‚Π΅Π·ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΈ Π·Π° прСзапис, Ρ‚ΠΎ Π½ΠΈΠ΅ Π³ΠΈ прСзаписвамС. И Π½ΠΈ ΠΈΠ΄Π²Π° ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ трябва Π΄Π° ΠΏΡ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅ΠΌ Ρ‚Π΅Π·ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са Π½ΡƒΠΆΠ½ΠΈ Π½Π° заявката Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°, рСпликационният процСс Ρ‰Π΅ ΠΈΠ·Ρ‡Π°ΠΊΠ° зададСния ΠΎΡ‚ вас Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚. А слСд Ρ‚ΠΎΠ²Π° PostgreSQL Ρ‰Π΅ Ρ€Π΅ΡˆΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΏΠΎ-Π²Π°ΠΆΠ½ΠΎ Π·Π° Π½Π΅Π³ΠΎ. И рСпликацията Π·Π° Π½Π΅Π³ΠΎ Π΅ ΠΏΠΎ-Π²Π°ΠΆΠ½Π° ΠΎΡ‚ заявката ΠΈ Ρ‚ΠΎΠΉ Ρ‰Π΅ отстрани заявката, Π·Π° Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ‚Π°.

АндрСй, ΠΈΠΌΠ°ΠΌ Π²ΡŠΠΏΡ€ΠΎΡ. Π’Π΅Π·ΠΈ страхотни Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ…Ρ‚Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° прСзСнтацията, Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π»ΠΈ са ΠΎΡ‚ някакъв ваш инструмСнт? Π‘ ΠΊΠ°ΠΊΠ²ΠΎ са Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈΡ‚Π΅?

Π’ΠΎΠ²Π° Π΅ услуга Okmeter.

Π’ΠΎΠ²Π° Π»ΠΈ Π΅ Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚?

Π”Π°. Π’ΠΎΠ²Π° Π΅ Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚.

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

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