ΠΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΌ Π΄Π° Π³ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠ΅ΠΏΠΈΡΠΎΡ Π½Π° ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠΎΡ ΠΎΠ΄ ΠΏΠΎΡΠ΅ΡΠΎΠΊΠΎΡ Π½Π° 2019 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΎΠ΄ ΠΠ½Π΄ΡΠ΅Ρ ΠΠΎΡΠΎΠ΄ΠΈΠ½ βΠ Π΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ ΡΠΎ WAL-G. Π¨ΡΠΎ ΠΈΠΌΠ° Π²ΠΎ 2019 Π³ΠΎΠ΄ΠΈΠ½Π°?β
ΠΠ΄ΡΠ°Π²ΠΎ Π½Π° ΡΠΈΡΠ΅! ΠΠ°Ρ ΡΠ΅ Π²ΠΈΠΊΠ°ΠΌ ΠΠ½Π΄ΡΠ΅Ρ ΠΠΎΡΠΎΠ΄ΠΈΠ½. ΠΠ°Ρ ΡΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅Ρ Π²ΠΎ Yandex. ΠΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΈΡΠ° PostgreSQL ΠΎΠ΄ 2016 Π³ΠΎΠ΄ΠΈΠ½Π°, ΠΎΡΠΊΠ°ΠΊΠΎ ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠ°Π² ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΈ ΠΌΠΈ ΡΠ΅ΠΊΠΎΠ° Π΄Π΅ΠΊΠ° ΡΓ¨ Π΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ - Π·Π΅ΠΌΠ΅ΡΠ΅ Π³ΠΎ ΠΈΠ·Π²ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ Π³ΠΎ, ΠΈ ΡΓ¨ ΡΠ΅ ΡΡΠΏΠ΅Π΅. Π ΠΎΡΡΠΎΠ³Π°Ρ Π½Π΅ ΠΌΠΎΠΆΠ°ΠΌ Π΄Π° ΠΏΡΠ΅ΡΡΠ°Π½Π°ΠΌ - ΠΏΠΈΡΡΠ²Π°ΠΌ ΡΠ΅ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°Π±ΠΎΡΠΈ.
ΠΠ΄Π½Π° ΠΎΠ΄ ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΈ ΡΠ°Π±ΠΎΡΠ°ΠΌ Π΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ.
ΠΠΎ, Π΄Π΅Π½Π΅Ρ ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠΎΡ Π½Π΅ Π΅ ΡΠ°ΠΌΠΎ Π·Π° ΡΠΎΠ° ΡΡΠΎ ΡΠΌΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠ»Π΅, ΡΡΠΊΡ ΠΈ Π·Π° ΡΠΎΠ° ΠΊΠΎΠ»ΠΊΡ Π΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΠΈ ΡΡΠΎ Π΅. ΠΠΎΠ»ΠΊΡΠΌΠΈΠ½Π° ΠΎΠ΄ Π²Π°Ρ Π²Π΅ΡΠ΅ Π³ΠΈ Π³Π»Π΅Π΄Π°Π° ΠΌΠΎΠΈΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ°ΠΈ Π·Π° WAL-G? ΠΠΎΠ±ΡΠΎ Π΅ ΡΡΠΎ Π΄ΠΎΡΡΠ° Π»ΡΡΠ΅ Π½Π΅ Π³Π»Π΅Π΄Π°Π°, Π·Π°ΡΠΎΠ° ΡΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ½Π°ΠΌ ΠΎΠ΄ Π½Π°ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎΡΠΎ.
ΠΠΊΠΎ ΠΎΠ΄Π΅Π΄Π½Π°Ρ ΠΈΠΌΠ°ΡΠ΅ ΠΊΠ»Π°ΡΡΠ΅Ρ PostgreSQL, ΠΈ ΠΌΠΈΡΠ»Π°ΠΌ Π΄Π΅ΠΊΠ° ΡΠ΅ΠΊΠΎΡ ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΎΠ΄ Π½ΠΈΠ² ΡΠΎ ΡΠ΅Π±Π΅, ΠΈ ΠΎΠ΄Π΅Π΄Π½Π°Ρ ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ΠΌΠ° ΡΠ΅Π·Π΅ΡΠ²Π΅Π½ ΡΠΈΡΡΠ΅ΠΌ, ΡΠΎΠ³Π°Ρ ΡΡΠ΅Π±Π° Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ΡΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° S3 ΠΈΠ»ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎ ΡΠΎ Google Cloud.
ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΡΠ΄Π΅ΡΠ΅ Π½Π° Π½Π°ΡΠΈΠΎΡ ΡΡΠ°Π½Π΄ ΠΈ Π΄Π° Π·Π΅ΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠΌΠΎΡΠΈΠ²Π΅Π½ ΠΊΠΎΠ΄ Π·Π° Yandex Object Storage, ΠΊΠΎΡ Π΅ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π΅Π½ ΡΠΎ S3.
ΠΠΎΡΠΎΠ° ΠΊΡΠ΅ΠΈΡΠ°ΡΡΠ΅ ΠΊΠΎΡΠ°. Π’ΠΎΠ° Π΅ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ Π·Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
Π‘ΠΎΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°.
ΠΡΠ΅ΠΈΡΠ°ΡΡΠ΅ ΠΊΠ»ΡΡ Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π·Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°: aws-s3-key.
ΠΡΠ΅Π·Π΅ΠΌΠ΅ΡΠ΅ Π³ΠΎ Π½Π°ΡΠ½ΠΎΠ²ΠΎΡΠΎ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° WAL-G.
ΠΠ°ΠΊΠΎ Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠ΅Ρ-ΠΈΠ·Π΄Π°Π½ΠΈΡΠ° ΡΠ΅ ΡΠ°Π·Π»ΠΈΠΊΡΠ²Π°Π°Ρ ΠΎΠ΄ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ°ΡΠ°? Π§Π΅ΡΡΠΎ ΠΌΠ΅ ΠΏΡΠ°ΡΡΠ²Π°Π°Ρ Π΄Π° ΡΠ΅ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄Π°ΠΌ ΠΏΡΠ΅Π΄Π²ΡΠ΅ΠΌΠ΅. Π Π°ΠΊΠΎ Π½Π΅ΠΌΠ° Π±Π°Π³ Π²ΠΎ Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΅Π΄Π΅Π½ ΠΌΠ΅ΡΠ΅Ρ, ΡΠΎΠ³Π°Ρ Π³ΠΎ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡΠ²Π°ΠΌ. ΠΠ²Π΅ Π³ΠΎ ΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ΄ Π½ΠΎΠ΅ΠΌΠ²ΡΠΈ. Π ΠΎΠ²Π° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° ΡΠ΅ΠΊΠΎΡ ΠΌΠ΅ΡΠ΅Ρ Π½Π°ΠΎΡΠ°Π²ΠΌΠ΅ Π½Π΅ΠΊΠ°ΠΊΠΎΠ² Π²ΠΈΠ΄ Π½Π° Π±ΡΠ±Π°ΡΠΊΠ°, ΠΎΠ±ΠΈΡΠ½ΠΎ Π²ΠΎ Π½Π΅ΠΊΡΠΈΡΠΈΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, Π½ΠΎ ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ΠΌΠ°ΠΌΠ΅ ΠΈΠ·Π΄Π°Π΄Π΅Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. ΠΡΠ΅ΡΡ ΠΎΠ΄Π½Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π΅ ΡΠ°ΠΌΠΎ Π½ΠΎΠ΅ΠΌΠ²ΡΠΈ. ΠΠΎ Π½Π΅Π³ΠΎ Π½Π΅ Π½ΠΈ ΡΠ΅ ΠΏΠΎΠ·Π½Π°ΡΠΈ Π³ΡΠ΅ΡΠΊΠΈ, Ρ.Π΅. Π³ΡΠ΅ΡΠΊΠΈ Π±Π΅Π° Π΄ΠΎΠ΄Π°Π΄Π΅Π½ΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Π½Π°ΠΏΡΠ΅Π΄ΡΠ²Π°ΡΠ΅.
ΠΡΠΊΠ°ΠΊΠΎ ΡΠ΅ Π³ΠΎ ΠΏΡΠ΅Π·Π΅ΠΌΠ΅ΡΠ΅ WAL-G, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π²ΡΡΠΈΡΠ΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° βΡΠ΅Π·Π΅ΡΠ²Π½Π° Π»ΠΈΡΡΠ°β, ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°ΡΡΠΈ Π³ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°ΡΠ°. Π ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π΅ ΡΠΎ Object Storage ΠΈ ΡΠ΅ ΡΠΈ ΠΊΠ°ΠΆΠ΅ ΠΊΠ°ΠΊΠ²ΠΈ Π±Π΅ΠΊΠ°ΠΏ ΠΈΠΌΠ°Ρ. ΠΠ° ΠΏΠΎΡΠ΅ΡΠΎΠΊΠΎΡ, ΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°, Π½Π΅ ΡΡΠ΅Π±Π° Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ. ΠΠΎΠ΅Π½ΡΠ°ΡΠ° Π½Π° ΠΎΠ²ΠΎΡ ΡΠ»Π°ΡΠ΄ Π΅ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ Π΄Π΅ΠΊΠ° ΡΓ¨ Π΅ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ. ΠΠ²Π° Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π°ΡΠ° ΠΊΠΎΡΠ° ΠΏΡΠΈΡΠ°ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°ΡΠ° ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.
ΠΠΎΡΠ»Π΅ ΠΎΠ²Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π²Π°ΡΠ°ΡΠ° ΠΏΡΠ²Π° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°. ΠΠ°ΠΆΠ΅ΡΠ΅ βbackup-pushβ Π²ΠΎ WAL-G ΠΈ Π½Π°Π²Π΅Π΄Π΅ΡΠ΅ Π²ΠΎ WAL-G Π»ΠΎΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° pgdata Π½Π° Π²Π°ΡΠΈΠΎΡ ΠΊΠ»Π°ΡΡΠ΅Ρ. Π, Π½Π°ΡΠ²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ, PostgreSQL ΡΠ΅ Π²ΠΈ ΠΊΠ°ΠΆΠ΅, Π°ΠΊΠΎ Π²Π΅ΡΠ΅ Π½Π΅ΠΌΠ°ΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π΅Π½ ΡΠΈΡΡΠ΅ΠΌ, Π΄Π΅ΠΊΠ° ΡΡΠ΅Π±Π° Π΄Π° ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈΡΠ΅ βarchive-modeβ.
ΠΠ²Π° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° ΡΡΠ΅Π±Π° Π΄Π° ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π²ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ ΠΈ Π΄Π° Π³ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΠ΅ βarchive_mode = onβ ΠΈ Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅ΡΠ΅ βarchive_commandβ, ΡΡΠΎ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΎ WAL-G. ΠΠΎ, ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π΅ΠΊΠΎΡΠ° ΠΏΡΠΈΡΠΈΠ½Π°, Π»ΡΡΠ΅ΡΠΎ ΡΠ΅ΡΡΠΎ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π±Π°Ρ ΡΠΊΡΠΈΠΏΡΠΈ Π½Π° ΠΎΠ²Π°Π° ΡΠ΅ΠΌΠ° ΠΈ ΡΠ° ΠΎΠ±Π²ΠΈΡΠΊΡΠ²Π°Π°Ρ ΠΎΠΊΠΎΠ»Ρ WAL-G. ΠΠ΅ ΠΌΠΎΠ»Π°ΠΌ, Π½Π΅ Π³ΠΎ ΠΏΡΠ°Π²Π΅ΡΠ΅ ΠΎΠ²Π°. ΠΠΎΡΠΈΡΡΠ΅ΡΠ΅ ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ° ΠΏΡΠΎΠ½Π°ΡΠ΄Π΅Π½Π° Π²ΠΎ WAL-G. ΠΠΊΠΎ Π½Π΅ΡΡΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅, ΠΏΠΈΡΠ΅ΡΠ΅
ΠΠΈΠ΅ ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ WAL-G Π³Π»Π°Π²Π½ΠΎ Π·Π° Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π΅ΠΌΠ΅ ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠΎ Π²ΠΈΡΠΎΠΊΠ° Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΎΡΡ Π²ΠΎ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠΎ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Yandex.
Π ΠΎΠ±ΠΈΡΠ½ΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡΠ° ΠΎΠ΄ Π΅Π΄Π΅Π½ Master ΠΈ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΏΡΠ°Π²ΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° Π²ΠΎ Yandex Object Storage.
ΠΠ°ΡΡΠ΅ΡΡΠΈΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡΠ° ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ ΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ΅Ρ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° Point in time recovery. ΠΠΎ, Π²ΠΎ ΠΎΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ, ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Π½Π΅ Π½ΠΈ ΡΠ΅ ΡΠΎΠ»ΠΊΡ Π²Π°ΠΆΠ½ΠΈ. Π’ΡΠ΅Π±Π° ΡΠ°ΠΌΠΎ Π΄Π° ΠΏΡΠΈΠΊΠ°ΡΠΈΠΌΠ΅ Π½ΠΎΠ² ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΎΠ΄ ΡΠ΅Π·Π΅ΡΠ²Π½Π°ΡΠ° ΠΊΠΎΠΏΠΈΡΠ°.
ΠΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΎ, Π½ΠΈ ΡΡΠ΅Π±Π°Π°Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΠΊΠΎΠ³Π° Π΄ΠΎΠ΄Π°Π²Π°ΠΌΠ΅ Π½ΠΎΠ² ΡΠ°Π·ΠΎΠ». ΠΠΎΡΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ? ΠΠ±ΠΈΡΠ½ΠΎ Π»ΡΡΠ΅ΡΠΎ Π΄ΠΎΠ΄Π°Π²Π°Π°Ρ Π½ΠΎΠ² ΡΠ°Π·ΠΎΠ» Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΏΠΎΡΡΠΎΡΠ½ΠΈΠΎΡ ΠΊΠ»Π°ΡΡΠ΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈ ΡΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅. Π’ΡΠ΅Π±Π° Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π°Ρ Π½ΠΎΠ²Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°. ΠΠΊΠΎ Π³ΠΎ Π΄ΠΎΠ΄Π°Π΄Π΅ΠΌΠ΅ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ ΠΎΠ΄ pg_basebackup Π½Π° Master, ΡΠΎΠ³Π°Ρ Master ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΎΠΏΠ°Π΄Π½Π΅. ΠΠ°ΡΠΎΠ°, Π·Π° Π½Π°Ρ Π±Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π±ΡΠ·ΠΎ Π΄Π° ΠΈΡΠΏΡΠ°ΡΠΈΠΌΠ΅ Π½ΠΎΠ² ΡΠ°Π·ΠΎΠ» ΠΎΠ΄ Π°ΡΡ ΠΈΠ²Π°ΡΠ°, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° Master.
Π ΡΡΡΠ΅ Π΅Π΄Π½Π° ΡΠ»ΠΈΡΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡΠ°. ΠΠ²Π° Π΅ ΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π΄Π° ΡΠ΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ° ΡΡΠ°ΡΠΈΠΎΡ Master ΠΎΡΠΊΠ°ΠΊΠΎ ΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΡΡΠ»ΠΈ Cluster Master ΠΎΠ΄ Π¦Π΅Π½ΡΠ°ΡΠΎΡ Π·Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠΎ ΠΊΠΎΡ ΡΠ΅ ΠΈΠ·Π³ΡΠ±ΠΈ ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ΡΠΎ.
- ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, ΠΏΡΠΈ ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° Π±Π°ΡΠ°ΡΠ°ΡΠ° Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΠΊΠΎΠΏΠΈΡΠ°ΡΠ΅, ΡΡΠ°ΡΠΈΠ²ΠΌΠ΅ Π΄Π΅ΠΊΠ° pg_basebackup Π½Π΅ Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π΅Π½ Π·Π° Π½Π°Ρ ΠΊΠΎΠ³Π° ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅ Π²ΠΎ ΠΎΠ±Π»Π°ΠΊΠΎΡ.
- Π‘Π°ΠΊΠ°Π²ΠΌΠ΅ Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°ΠΌΠ΅ Π½Π°ΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. ΠΠΎ, ΡΠ΅ΡΠΈΡΠΈ ΡΠ΅ΠΊΠΎΡ ΡΠ΅Π·Π΅ΡΠ²Π΅Π½ ΡΠΈΡΡΠ΅ΠΌ ΠΎΡΠ²Π΅Π½ ΠΎΠ½Π° ΡΡΠΎ Π΄ΠΎΠ°ΡΠ° Π²ΠΎ ΠΊΡΡΠΈΡΠ°ΡΠ° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅.
- Π‘Π°ΠΊΠ°Π²ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»Π° Π½Π° ΡΓ¨ Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π²ΠΎ ΠΎΠ±Π»Π°ΠΊΠΎΡ ΠΊΡΠΏΡΠ²Π° Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡΡΠΊΠΈ ΡΠ°Π΄ΡΠ°. ΠΠΎ, Π°ΠΊΠΎ Π½Π΅ΠΌΠ°ΠΌΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·Π°ΠΌ Π²ΠΎ Π½Π΅ΠΊΠΎΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ°, ΡΠΎΠ³Π°Ρ Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ ΡΠ°Π΄ΡΠ° ΡΡΠ°Π½ΡΠ²Π°Π°Ρ Π±Π΅ΡΠΊΠΎΡΠΈΡΠ½ΠΈ.
- ΠΠΈ ΡΡΠ΅Π±Π° ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠ΅ΡΡΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π½Π΅ ΡΠ΅ Π½Π°ΡΠΈ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°Π°Ρ Π²ΠΎ ΡΠ°ΡΠ΅Π½ ΡΠ΅ΠΊΡΡ. ΠΠ°ΡΠ΅ΠΌ, Π½Π°ΡΠΈΠΎΡ ΠΏΡΠΈΠ΄ΠΎΠ½Π΅Ρ ΠΊΠΎΠ½ WAL-G Π·Π°ΠΏΠΎΡΠ½Π° ΡΠΎ ΡΠΈΡΡΠΈΡΠ°ΡΠ΅. ΠΠΎ Π·Π°Π²ΡΡΠΈΠ²ΠΌΠ΅ ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π²ΠΎ WAL-G, ΠΏΠΎ ΡΡΠΎ Π±Π΅Π²ΠΌΠ΅ ΠΏΡΠ°ΡΠ°Π½ΠΈ: βΠΠΎΠΆΠ΅Π±ΠΈ Π½Π΅ΠΊΠΎΡ ΠΎΠ΄ Π½Π°Ρ ΡΠ΅ Π³ΠΎ ΡΠ°Π·Π²ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ? Π ΠΎΡΡΠΎΠ³Π°Ρ ΡΠ°Π±ΠΎΡΠ°ΠΌ ΡΠΎ WAL-G ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ΄ Π΅Π΄Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π°.
- ΠΡΡΠΎ ΡΠ°ΠΊΠ°, Π½ΠΈ ΡΡΠ΅Π±Π°ΡΠ΅ ΠΏΡΠΈΠ³ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠΎ ΡΠ΅ΠΊΠΎΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΎ ΠΎΠ±Π»Π°ΠΊΠΎΡ, Π΄ΠΎΠ·Π½Π°Π²ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΏΠΎΠ½Π΅ΠΊΠΎΠ³Π°Ρ Π»ΡΡΠ΅ΡΠΎ ΠΈΠΌΠ°Π°Ρ Π²Π°ΠΆΠ΅Π½ ΡΠΎΠ²Π°Ρ Π½Π° Π½Π°ΠΌΠΈΡΠ½ΠΈΡΠΈ Π½ΠΎΡΠ΅ ΠΈ ΡΠΎΡ ΡΠΎΠ²Π°Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΌΠ΅ΡΠ°. ΠΠ°ΡΠΎΠ° Π΄ΠΎΠ΄Π°Π΄ΠΎΠ²ΠΌΠ΅ ΠΏΡΠΈΠ³ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅.
- ΠΠ°ΠΊΠΎ ΠΈ ΠΎΠ³Π»Π°ΡΡΠ²Π°ΡΠ΅ ΠΈ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅.
- Π Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ°.
Π Π°Π·Π³Π»Π΅Π΄Π°Π²ΠΌΠ΅ ΠΌΠ½ΠΎΠ³Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°Π»Π°ΡΠΊΠΈ. ΠΠ° ΡΡΠ΅ΡΠ°, ΠΈΠΌΠ°ΠΌΠ΅ ΠΎΠ³ΡΠΎΠΌΠ΅Π½ ΠΈΠ·Π±ΠΎΡ Π²ΠΎ PostgreSQL. Π ΡΠ΅ΠΊΠ°Π΄Π΅ Π½Π΅ΡΡΠΎ Π½ΠΈ Π½Π΅Π΄ΠΎΡΡΠΈΠ³Π°ΡΠ΅, Π½Π΅ΠΊΠΎΡ Π΅Π΄Π½Π° ΠΌΠ°Π»Π° ΡΡΠ½ΠΊΡΠΈΡΠ°, Π½Π΅ΠΊΠΎΡ Π΅Π΄Π½Π° ΠΌΠ°Π»Π° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°.
Π ΠΎΡΠΊΠ°ΠΊΠΎ Π³ΠΈ ΠΈΡΠΏΠΈΡΠ°Π²ΠΌΠ΅ ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π΄ΠΎΡΠ΄ΠΎΠ²ΠΌΠ΅ Π΄ΠΎ Π·Π°ΠΊΠ»ΡΡΠΎΠΊ Π΄Π΅ΠΊΠ° ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ΅ΠΌΠ΅ WAL-G. Π’ΠΎΠ³Π°Ρ ΡΠΎΠ° Π±Π΅ΡΠ΅ Π½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠ΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π²Π»ΠΈΡΠ°Π΅ Π½Π° ΡΠ°Π·Π²ΠΎΡΠΎΡ ΠΊΠΎΠ½ ΠΎΠ±Π»Π°ΠΊ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ.
ΠΠ»Π°Π²Π½Π°ΡΠ° ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡΠ° Π΄ΠΎ ΠΊΠΎΡΠ° ΡΠ΅ ΠΏΡΠΈΠ΄ΡΠΆΡΠ²Π°ΠΌΠ΅ Π΅ Π΄Π΅ΠΊΠ° WAL-G ΡΡΠ΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½ ΠΊΠ°ΠΊΠΎ Π±Π°Π»Π°Π»Π°ΡΠΊΠ°.
WAL-G ΠΈΠΌΠ° 4 ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. ΠΠ²Π°:
WAL-PUSH β Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΡΡΠ΅ ΡΠ° ΠΎΡΠΊΠ°ΡΠ°.
WAL-FETCH - Π·Π΅ΠΌΠ΅ΡΠ΅ Π²ΡΠ°ΡΠΈΠ»ΠΎ.
BACKUP-PUSH β Π½Π°ΠΏΡΠ°Π²Π΅ΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°.
BACKUP-FETCH β Π΄ΠΎΠ±ΠΈΡΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° ΠΎΠ΄ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°.
ΠΡΡΡΠ½ΠΎΡΡ, WAL-G ΠΈΠΌΠ° ΠΈ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΎΠ²ΠΈΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ, Ρ.Π΅. Π½Π°Π²Π΅Π΄ΡΠ²Π° ΠΈ Π±ΡΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ Π²ΠΎ ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ° ΡΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΡ.
ΠΠ΄Π½Π° ΠΎΠ΄ Π²Π°ΠΆΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° Π½Π°Ρ Π΅ ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° Π·Π° ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ Π½Π° Π΄Π΅Π»ΡΠ° ΠΊΠΎΠΏΠΈΠΈ.
ΠΠΎΠΏΠΈΠΈΡΠ΅ Π½Π° ΠΠ΅Π»ΡΠ° Π·Π½Π°ΡΠ°Ρ Π΄Π΅ΠΊΠ° Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΡΠ΅Π»ΠΎΡΠ½Π° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° Π½Π° ΡΠ΅Π»ΠΈΠΎΡ ΠΊΠ»Π°ΡΡΠ΅Ρ, ΡΡΠΊΡ ΡΠ°ΠΌΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΈ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ. Π‘Π΅ ΡΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎ ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³Ρ ΡΠ»ΠΈΡΠ½ΠΎ Π½Π° ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° ΠΎΠΏΠΎΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° WAL. ΠΠΎ, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ Π΄Π° Π½Π°Π²ΠΈΠ²Π°ΠΌΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° Π½Π° Π΄Π΅Π»ΡΠ° ΡΠΎ Π΅Π΄Π½Π° Π½ΠΈΡΠΊΠ° Π½Π° WAL. Π‘ΠΏΠΎΡΠ΅Π΄ ΡΠΎΠ°, ΠΊΠΎΠ³Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΎΡΠ½ΠΎΠ²Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° Π½Π°ΠΏΡΠ°Π²Π΅Π½Π° Π²ΠΎ ΡΠ°Π±ΠΎΡΠ°, Π΄Π΅Π»ΡΠ° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ ΡΠ΅ΠΊΠΎΡΠ΄Π½Π΅Π²Π½ΠΎ, Π° Π²ΠΎ ΡΠ΅ΡΠ²ΡΡΠΎΠΊ Π½Π΅ ΡΡΠΏΠ΅Π΅ΠΌΠ΅, ΡΠΎΠ³Π°Ρ ΡΡΠ΅Π±Π° Π΄Π° Π½Π°Π²ΠΈΠ²Π°ΠΌΠ΅ 4 Π΄Π΅Π»ΡΠ° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ ΠΈ 10 ΡΠ°ΡΠ° WAL. ΠΠ΅ ΠΏΠΎΡΡΠ°Π΅ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ Π½Π° Π΄Π΅Π»ΡΠ° ΡΠ΅ ΡΡΠΊΠ°Π»Π°Π°Ρ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ.
ΠΠ΅Π»ΡΠΈ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° LSN - ΡΠΎΠ° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° ΠΊΠΎΠ³Π° ΠΊΡΠ΅ΠΈΡΠ°ΠΌΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°, ΡΠ΅ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΠΌΠ΅ ΡΠ΅ΠΊΠΎΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° ΠΈ Π΄Π° Π³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌΠ΅ Π½Π΅ΡΠ·ΠΈΠ½ΠΈΠΎΡ LSN ΡΠΎ LSN ΠΎΠ΄ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½Π°ΡΠ° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠ°. Π‘Π΅ΠΊΠΎΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° ΡΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΡΠ°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΎΠ΄ΡΠΆΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΡΠ΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΏΡΠΈΡΡΡΠ½Π° Π²ΠΎ Π΄Π΅Π»ΡΠ° ΡΠ΅Π·Π΅ΡΠ²Π½Π°ΡΠ° ΠΊΠΎΠΏΠΈΡΠ°.
ΠΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ΠΊΠΎΠ², Π΄ΠΎΡΡΠ° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±Π΅ΡΠ΅ ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½ΠΎ Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΌΠΎΡ.
ΠΠΎ, Π°ΡΡ ΠΈΠ²ΡΠΊΠΈΠΎΡ API Π²ΠΎ PostgreSQL Π΅ ΠΊΠΎΠ½Π·ΠΈΡΡΠ΅Π½ΡΠ΅Π½. PostgreSQL Π°ΡΡ ΠΈΠ²ΠΈΡΠ° Π΅Π΄Π½Π° WAL-Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΈ ΠΊΠΎΠ³Π° ΡΠ° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π° Π±Π°ΡΠ° Π΅Π΄Π½Π° WAL-Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°. ΠΠΎ, ΠΊΠΎΠ³Π° Π±Π°Π·Π°ΡΠ° Π±Π°ΡΠ° Π΅Π΄Π½Π° WAL-Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βWAL-FETCHβ, ΡΠ° ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βWAL-PREFETCHβ, ΠΊΠΎΡΠ° Π³ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΡΠ²Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ 8 Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π·Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΈ.
Π ΠΊΠΎΠ³Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π±Π°ΡΠ° Π΄Π° Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ Π΅Π΄Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°, Π½ΠΈΠ΅ Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π²ΠΎ archive_status ΠΈ Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Π°Π»ΠΈ ΠΈΠΌΠ° Π΄ΡΡΠ³ΠΈ WAL-Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ. Π Π½ΠΈΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΏΡΠ΅Π·Π΅ΠΌΠ΅ΠΌΠ΅ WAL ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ. ΠΠ²Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½Π° Π΄ΠΎΠ±ΠΈΠ²ΠΊΠ° Π²ΠΎ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π³ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΡΠ°ΡΡΠΎΡΠ°Π½ΠΈΠ΅ΡΠΎ Π²ΠΎ Π±ΡΠΎΡΠΎΡ Π½Π° Π½Π΅Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½ΠΈ WAL. ΠΠ½ΠΎΠ³Ρ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΈ Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π²Π΅ΡΡΠ²Π°Π°Ρ Π΄Π΅ΠΊΠ° ΠΎΠ²Π° Π΅ ΡΠΎΠ»ΠΊΡ ΡΠΈΠ·ΠΈΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠ΅ ΠΏΠΎΡΠΏΠΈΡΠ°ΠΌΠ΅ Π½Π° Π½Π°ΡΠ΅ΡΠΎ Π·Π½Π°Π΅ΡΠ΅ Π·Π° Π²Π½Π°ΡΡΠ΅ΡΠ½ΠΈΡΠ΅ Π΄Π΅Π»ΠΎΠ²ΠΈ Π½Π° ΠΊΠΎΠ΄ΠΎΡ ΡΡΠΎ Π½Π΅ Π΅ PostgreSQL API. PostgreSQL Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΠΏΡΠΈΡΡΡΡΠ²ΠΎ Π½Π° ΠΏΠ°ΠΏΠΊΠ°ΡΠ° archive_status Π·Π° Π½Π°Ρ ΠΈ Π½Π΅ ΡΠ° Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ°ΡΠ°, ΠΏΡΠΈΡΡΡΡΠ²ΠΎΡΠΎ Π½Π° ΡΠΈΠ³Π½Π°Π»ΠΈ Π·Π° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΎΡΡ Π·Π° WAL Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΡΠ°ΠΌΡ. Π‘Π΅ΠΏΠ°ΠΊ, Π½ΠΈΠ΅ Π³ΠΎ ΠΏΡΠΎΡΡΡΠ²Π°ΠΌΠ΅ ΠΈΠ·Π²ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄, Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° Π΅ ΡΠ°ΠΊΠ° ΠΈ ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΈΡΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅. Π Π½ΠΈΠ΅ ΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΠΌΠ΅ Π½Π°ΡΠΎΠΊΠ°ΡΠ° Π²ΠΎ ΠΊΠΎΡΠ° ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° PostgreSQL; Π°ΠΊΠΎ ΠΎΠ΄Π΅Π΄Π½Π°Ρ ΠΎΠ²ΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ ΡΠ΅ ΡΠΊΡΡΠΈ, ΡΠ΅ ΠΏΡΠ΅ΡΡΠ°Π½Π΅ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅.
ΠΠΎ ΡΠ²ΠΎΡΠ°ΡΠ° ΡΠΈΡΡΠ° ΡΠΎΡΠΌΠ°, WAL Π΄Π΅Π»ΡΠ° Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° LSN Π±Π°ΡΠ° ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΊΠΎΡΠ° Π±ΠΈΠ»ΠΎ ΠΊΠ»Π°ΡΡΠ΅Ρ-Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ΅ΠΆΠΈΠΌ Π²ΠΎ Π΄Π°ΡΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠΎ ΠΎΠ΄ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½Π°ΡΠ° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°. Π‘ΠΎ ΠΎΠ²Π° ΠΆΠΈΠ²Π΅Π΅Π²ΠΌΠ΅ Π΄ΠΎΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅, ΡΠΊΠΎΡΠΎ Π΅Π΄Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π°. Π Π½Π° ΠΊΡΠ°ΡΠΎΡ Π΄ΠΎΡΠ΄ΠΎΠ²ΠΌΠ΅ Π΄ΠΎ Π·Π°ΠΊΠ»ΡΡΠΎΠΊ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ°ΠΌΠ΅ WAL Π΄Π΅Π»ΡΠΈ.
ΠΠ²Π° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° ΡΠ΅ΠΊΠΎΠ³Π°Ρ ΠΊΠΎΠ³Π° Π³ΠΎ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ WAL Π½Π° Master, Π½Π΅ ΡΠ°ΠΌΠΎ ΡΡΠΎ Π³ΠΎ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°ΠΌΠ΅, ΡΠΈΡΡΠΈΡΠ°ΠΌΠ΅ ΠΈ ΠΈΡΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π΄ΠΎ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, ΡΡΠΊΡ ΠΈ Π³ΠΎ ΡΠΈΡΠ°ΠΌΠ΅ Π²ΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΠΈ ΡΠΈΡΠ°ΠΌΠ΅ Π·Π°ΠΏΠΈΡΠΈΡΠ΅ Π²ΠΎ Π½Π΅Π³ΠΎ. ΠΠΈΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ ΠΊΠΎΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠΈ ΠΈ ΡΠΎΠ±ΠΈΡΠ°ΠΌΠ΅ Π΄Π΅Π»ΡΠ°-Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ.
ΠΠ΅Π»ΡΠ°-Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΎΠΏΠΈΡΡΠ²Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΠΎΠΏΡΠ΅Π³ Π½Π° WAL-Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ, ΠΎΠΏΠΈΡΡΠ²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΡΠΎΠ° ΠΊΠΎΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΡΠ΅ ΡΠΌΠ΅Π½Π΅ΡΠΈ Π²ΠΎ ΠΎΠ²ΠΎΡ ΠΎΠΏΡΠ΅Π³ Π½Π° WAL. Π ΡΠΎΠ³Π°Ρ ΠΎΠ²ΠΈΠ΅ Π΄Π΅Π»ΡΠ°-Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½ΠΈ.
ΠΠ²Π΄Π΅ ΡΠΌΠ΅ ΡΠΎΠΎΡΠ΅Π½ΠΈ ΡΠΎ ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° Π΄ΠΎΡΡΠ° Π±ΡΠ·ΠΎ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°Π²ΠΌΠ΅ ΡΓ¨, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ Π΄Π° ΡΠΈΡΠ°ΠΌΠ΅ ΡΠ΅ΠΊΠ²Π΅Π½ΡΠΈΡΠ°Π»Π½Π° ΠΈΡΡΠΎΡΠΈΡΠ°, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π²ΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΈΠ΄Π΅ΠΌΠ΅ Π½Π° ΠΊΡΠ°ΡΠΎΡ Π½Π° ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΈΠΎΡ ΡΠ΅ΠΊΠΎΡΠ΄ Π½Π° WAL, ΡΠΎ ΠΊΠΎΡ ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ΠΌΠ°ΠΌΠ΅ ΡΡΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π΅ΠΌΠ΅, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΠ°ΡΠ°Π»Π΅Π»Π½ΠΎΡΠΎ ΡΠΈΡΠ°ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠΎΠ° ΠΏΡΠ²ΠΎ Π΄Π° ΡΠ° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΠΈΠ΄Π½ΠΈΠ½Π°ΡΠ°, ΠΊΠΎΡΠ° ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ΠΌΠ° ΠΌΠΈΠ½Π°ΡΠΎ.
ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, ΠΌΠΎΡΠ°Π²ΠΌΠ΅ Π΄Π° ΡΡΠ°Π²ΠΈΠΌΠ΅ Π½Π΅ΡΠ°Π·Π±ΠΈΡΠ»ΠΈΠ²ΠΈ ΠΏΠ°ΡΡΠΈΡΠ° Π²ΠΎ _delta_partial Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ. ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, ΠΊΠΎΠ³Π° ΡΠ΅ ΡΠ΅ Π²ΡΠ°ΡΠΈΠΌΠ΅ Π²ΠΎ ΠΌΠΈΠ½Π°ΡΠΎΡΠΎ, ΡΠ΅ Π³ΠΈ Π·Π°Π»Π΅ΠΏΠΈΠΌΠ΅ ΠΏΠ°ΡΡΠΈΡΠ°ΡΠ° ΠΎΠ΄ WAL ΡΠ΅ΠΊΠΎΡΠ΄ΠΎΡ Π²ΠΎ Π΅Π΄Π½ΠΎ, ΠΏΠΎΡΠΎΠ° ΡΠ΅ Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΠΈ ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΠ΅ ΡΡΠΎ ΡΠ΅ ΡΠΌΠ΅Π½ΠΈΠ»ΠΎ Π²ΠΎ Π½Π΅Π³ΠΎ.
ΠΠΊΠΎ Π²ΠΎ ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ° Π½Π° Π½Π°ΡΠ΅ΡΠΎ ΠΏΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π²ΡΠ°ΡΠΈΠ»ΠΎΡΠΎ ΠΈΠΌΠ° Π±Π°ΡΠ΅ΠΌ Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° ΠΊΠ°Π΄Π΅ ΡΡΠΎ Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π°, ΡΠΎΠ³Π°Ρ, ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΎ, Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° ΡΠ΅ Π±ΠΈΠ΄Π΅ΠΌΠ΅ ΠΏΡΠΈΠ½ΡΠ΄Π΅Π½ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π΄Π° Π³ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΠΌΠ΅ ΡΠ΅Π»ΠΈΠΎΡ ΠΊΠ»Π°ΡΡΠ΅Ρ, ΠΈΡΡΠΎ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠ²ΠΌΠ΅ ΡΠΎ ΠΎΠ±ΠΈΡΠ΅Π½ LSN - Π·Π°ΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Π΄Π΅Π»ΡΠ°.
ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, ΡΠΈΡΠ΅ Π½Π°ΡΠΈ ΡΡΡΠ°Π΄Π°ΡΠ° Π΄ΠΎΠ²Π΅Π΄ΠΎΠ° Π΄ΠΎ ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° ΡΠ° ΠΎΡΠ²ΠΎΡΠΈΠ²ΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π·Π° ΠΏΠ°ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° WAL-G. ΠΠΎΠ»ΠΊΡ ΡΡΠΎ Π·Π½Π°ΠΌ, Π½ΠΈΠΊΠΎΡ Π½Π΅ Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ΅ΡΡΡΠ΅, Π½ΠΎ Π°ΠΊΠΎ Π½Π΅ΠΊΠΎΡ ΡΠ°ΠΊΠ°, ΠΏΠΈΡΠ΅ΡΠ΅ Π³ΠΎ ΠΈ ΡΠΏΠΎΡΡΠ΅Π±ΠΈ, Π΅ Π²ΠΎ ΡΠ°Π²Π½Π° ΡΠΎΠΏΡΡΠ²Π΅Π½ΠΎΡΡ. (ΠΠΆΡΡΠΈΡΠ°Π½Π° Π²ΡΡΠΊΠ°
ΠΠ°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ°, ΡΠΈΡΠ΅ ΡΠ΅ΠΊΠΎΠ²ΠΈ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ·Π³Π»Π΅Π΄Π°Π°Ρ Π΄ΠΎΡΡΠ° ΠΊΠΎΠΌΠΏΠ»ΠΈΡΠΈΡΠ°Π½ΠΈ. ΠΠ°ΡΠΈΠΎΡ Master Π³ΠΈ Π°ΡΡ ΠΈΠ²ΠΈΡΠ° Π²ΡΠ°ΡΠΈΠ»ΠΎΡΠΎ ΠΈ Π³ΠΈ Π°ΡΡ ΠΈΠ²ΠΈΡΠ° Π΄Π΅Π»ΡΠ°-Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅. Π ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠ° ΡΡΠΎ ΡΠ° ΠΏΡΠ°Π²ΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½Π°ΡΠ° ΠΊΠΎΠΏΠΈΡΠ° ΠΌΠΎΡΠ° Π΄Π° ΠΏΡΠΈΠΌΠ° Π΄Π΅Π»ΡΠ°-Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ ΡΠ΅ΠΊΠΎΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΡΠΎ ΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ. ΠΠΎ ΠΎΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ, Π΄Π΅Π»ΠΎΠ²ΠΈ ΠΎΠ΄ ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ° ΡΠ΅ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π΄ΠΎΠ΄Π°Π΄Π°Ρ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΎ ΠΈ Π΄Π° ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π°Ρ, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠ΅Π»Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡΠ° Π½Π΅ ΡΠ΅ Π²ΠΊΠ»ΠΎΠΏΡΠ²Π° Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈ. Π ΡΠ°ΠΌΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΠ²Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π°ΡΡ ΠΈΠ²ΠΈΡΠ° ΡΠ΅Π»ΠΎΡΠ½Π° Π΄Π΅Π»ΡΠ° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°.
ΠΠ° Π³ΡΠ°ΡΠΈΠΊΠΎΠ½ΠΈΡΠ΅ ΡΓ¨ ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ. ΠΠ²Π° Π΅ ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅ ΠΎΠ΄ Π΅Π΄Π΅Π½ ΠΎΠ΄ Π½Π°ΡΠΈΡΠ΅ Π²ΠΈΡΡΠΈΠ½ΡΠΊΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈ. ΠΠΌΠ°ΠΌΠ΅ LSN-Π±Π°Π·ΠΈΡΠ°Π½ΠΈ, Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ Π·Π° Π΅Π΄Π΅Π½ Π΄Π΅Π½. Π Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° Π΄Π΅Π»ΡΠ° ΡΠ΅Π·Π΅ΡΠ²Π½Π°ΡΠ° ΠΊΠΎΠΏΠΈΡΠ° Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° LSN ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅ ΠΎΠ΄ ΡΡΠΈ Π½Π°ΡΡΡΠΎ Π΄ΠΎ ΠΏΠ΅Ρ Π½Π°ΡΡΡΠΎ. ΠΠ²Π° Π΅ ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅ Π²ΠΎ Π±ΡΠΎΡΠΎΡ Π½Π° ΡΠ°Π΄ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ. WAL-delta ΠΎΠ²Π΄Π΅ Π½ΠΈ ΠΎΠ΄Π·Π΅Π΄Π΅ ΠΎΠΊΠΎΠ»Ρ 20 ΠΌΠΈΠ½ΡΡΠΈ, ΠΎΠ΄Π½ΠΎΡΠ½ΠΎ ΡΡΠ°Π½Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ±ΡΠ·, Π½ΠΎ Π²ΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΏΠΎΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²Π½Π° ΡΠ°Π·ΠΌΠ΅Π½Π° ΠΏΡΠ΅ΠΊΡ ΠΌΡΠ΅ΠΆΠ°ΡΠ°.
ΠΠΈΠ΄Π΅ΡΡΠΈ ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΡΠΎΠ° ΠΊΠΎΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΡΠ΅ ΡΠΌΠ΅Π½ΠΈΡΠ° ΠΈ Π²ΠΎ ΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π²ΠΎ ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, ΠΎΡΠΈΠ΄ΠΎΠ²ΠΌΠ΅ ΠΏΠΎΠ½Π°ΡΠ°ΠΌΡ ΠΈ ΡΠ΅ΡΠΈΠ²ΠΌΠ΅ Π΄Π° ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ° - Π΅ΠΊΡΡΠ΅Π½Π·ΠΈΡΠ° PostgreSQL Π½Π°ΡΠ΅ΡΠ΅Π½Π° βpg_prefaulterβ
ΠΠ²Π° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° ΠΊΠΎΠ³Π° ΡΡΠ΅Π½Π΄-Π±Π°Ρ Π±Π°Π·Π°ΡΠ° ΡΠ° ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π·Π° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅, ΠΌΡ ΠΊΠ°ΠΆΡΠ²Π° Π½Π° WAL-G Π΄Π° ΡΠ° ΠΏΡΠ΅Π·Π΅ΠΌΠ΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° WAL-Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°. ΠΠΈΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ Π΄ΠΎ ΠΊΠΎΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ Π½Π° WAL Π²ΠΎ Π±Π»ΠΈΡΠΊΠ° ΠΈΠ΄Π½ΠΈΠ½Π° ΠΈ ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ° Π·Π° ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΎΠ²ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ. ΠΠ²Π° Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ ΡΠΎ ΡΠ΅Π» Π΄Π° ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΠ°Ρ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΎΡΠΈΡΠ΅ Π½Π° SSD. ΠΠΈΠ΄Π΅ΡΡΠΈ ΡΠΎΠ»Π½Π°ΡΠ° WAL ΡΠ΅ ΡΡΠΈΠ³Π½Π΅ Π΄ΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΡΡΠΎ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΡΠΌΠ΅Π½ΠΈ. ΠΠ²Π°Π° ΡΡΡΠ°Π½ΠΈΡΠ° Π΅ Π½Π° Π΄ΠΈΡΠΊΠΎΡ ΠΈ Π½Π΅ Π΅ Π²ΠΎ ΠΊΠ΅ΡΠΎΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°. Π ΡΠΎΡ ΡΠ΅ ΡΠ΅ΠΊΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΎ Π΄Π° ΠΏΡΠΈΡΡΠΈΠ³Π½Π΅ ΠΎΠ²Π°Π° ΡΡΡΠ°Π½ΠΈΡΠ°. ΠΠΎ, Π²ΠΎ Π±Π»ΠΈΠ·ΠΈΠ½Π° Π΅ WAL-G, ΠΊΠΎΡ Π·Π½Π°Π΅ Π΄Π΅ΠΊΠ° Π²ΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΡΠΎΡΠΈΡΠΈ ΠΌΠ΅Π³Π°Π±Π°ΡΡΠΈ WAL ΡΠ΅ Π½ΠΈ ΡΡΠ΅Π±Π°Π°Ρ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΈ Π²ΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΏΠΎΡΠ½ΡΠ²Π° Π΄Π° Π³ΠΈ Π·Π°Π³ΡΠ΅Π²Π°. ΠΠ½ΠΈΡΠΈΡΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ΠΊΡΠ°ΡΠ½ΠΈ ΠΏΡΠΈΡΡΠ°ΠΏΠΈ Π½Π° Π΄ΠΈΡΠΊΠΎΡ, ΡΠ°ΠΊΠ° ΡΡΠΎ ΡΠΈΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Π°Ρ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ. ΠΠ²Π° ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΠ±ΡΠΎ Π½Π° SSD-Π΄ΠΈΡΠΊΠΎΠ²ΠΈ, Π½ΠΎ, Π·Π° ΠΆΠ°Π», Π°ΠΏΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ Π΅ ΠΏΡΠΈΠΌΠ΅Π½Π»ΠΈΠ²ΠΎ Π·Π° Ρ Π°ΡΠ΄ Π΄ΠΈΡΠΊ, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π½ΠΈΠ΅ ΡΠ΅ ΠΌΠ΅ΡΠ°ΠΌΠ΅ ΡΠΎ Π½Π΅Π³ΠΎ ΡΠ°ΠΌΠΎ ΡΠΎ Π½Π°ΡΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
ΠΠ²Π° Π΅ ΠΎΠ½Π° ΡΡΠΎ Π΅ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ ΡΠ΅Π³Π°.
ΠΠΎΡΡΠΎΡΠ°Ρ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΡΠΎ Π±ΠΈ ΡΠ°ΠΊΠ°Π»Π΅ Π΄Π° Π³ΠΈ Π΄ΠΎΠ΄Π°Π΄Π΅ΠΌΠ΅.
ΠΠ²Π°Π° ΡΠ»ΠΈΠΊΠ° ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π° Π΄Π΅ΠΊΠ° WAL-delta ΡΡΠ°Π΅ ΡΠ΅Π»Π°ΡΠΈΠ²Π½ΠΎ ΠΊΡΠ°ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅. Π ΠΎΠ²Π° Π΅ ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈΡΠ° Π²ΠΎ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ ΡΠ΅ΠΊΠΎΡ Π½Π° Π΄Π΅Π½ΠΎΡ. ΠΠΎΠΆΠ΅Π²ΠΌΠ΅ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌΠ΅ WAL-delta Π½Π΅ ΡΠ°ΠΌΠΎ Π½ΠΎΡΠ΅, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠΎΠ° Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Π·Π½Π°ΡΠ°Π΅Π½ ΠΈΠ·Π²ΠΎΡ Π½Π° ΠΎΠΏΡΠΎΠ²Π°ΡΡΠ²Π°ΡΠ΅. ΠΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΡΠΈΡΠ°ΠΌΠ΅ WAL-delta ΡΠ΅ΠΊΠΎΡΠ° ΠΌΠΈΠ½ΡΡΠ° Π±ΠΈΠ΄Π΅ΡΡΠΈ Π΅ Π΅Π²ΡΠΈΠ½. ΠΠ° Π΅Π΄Π½Π° ΠΌΠΈΠ½ΡΡΠ° ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΈ ΡΠΊΠ΅Π½ΠΈΡΠ°ΠΌΠ΅ ΡΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈΠ»Π΅ Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ. Π ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΡΠ΅ΡΠ΅ βΠΈΠ½ΡΡΠ°Π½Ρ ΠΠΠ-Π΄Π΅Π»ΡΠ°β.
ΠΠΎΠ΅Π½ΡΠ°ΡΠ° Π΅ Π΄Π΅ΠΊΠ° ΠΊΠΎΠ³Π° Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΠΌΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ, Π³ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΠΌΠ΅ Π±ΡΠΎΡΠΎΡ Π½Π° ΠΏΡΠΈΠΊΠ°Π·Π½ΠΈ ΡΡΠΎ ΡΡΠ΅Π±Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π΄Π° Π³ΠΈ Π½Π°Π²ΠΈΠ²Π°ΠΌΠ΅. ΠΠ΄Π½ΠΎΡΠ½ΠΎ, ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π°ΡΠ° Π½Π° WAL ΡΡΠΎ ΡΠ° ΡΠΎΠ»Π° PostgreSQL ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π·Π° ΡΠΎΠ° Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅.
ΠΠΎ, ΡΠΎΠ° Π½Π΅ Π΅ ΡΠ΅. ΠΠΊΠΎ Π·Π½Π°Π΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° Π½Π΅ΠΊΠΎΡ Π±Π»ΠΎΠΊ ΡΠ΅ Π±ΠΈΠ΄Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Ρ Π΄ΠΎ ΡΠΎΡΠΊΠ° Π½Π° ΠΊΠΎΠ½Π·ΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡ Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½Π°ΡΠ° ΠΊΠΎΠΏΠΈΡΠ°, Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌΠ΅ Π²ΠΎ ΠΌΠΈΠ½Π°ΡΠΎΡΠΎ. ΠΠ΄Π½ΠΎΡΠ½ΠΎ, ΡΠ΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠ° ΠΎΠ΄ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΏΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π·Π° ΠΏΡΠ΅ΠΏΡΠ°ΡΠ°ΡΠ΅ WAL-Π΄Π΅Π»ΡΠ°. ΠΠ²Π° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° Π°ΠΊΠΎ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎ Π²ΡΠΎΡΠ½ΠΈΠΊ ΡΠ°Π±Π΅Π»Π° Π΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΈΠ·Π±ΡΠΈΡΠ°Π½Π° ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΈΠ·Π±ΡΠΈΡΠ°Π½ΠΈ ΠΎΠ΄ ΡΠ°Π±Π΅Π»Π°ΡΠ°, ΡΠΎΠ³Π°Ρ ΠΊΠΎΠ³Π° delta ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΡΠ²Π° Π²ΠΎ ΠΏΠΎΠ½Π΅Π΄Π΅Π»Π½ΠΈΠΊ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π° pg_basebackup, Π½ΠΈΠ΅ Π΄ΡΡΠΈ ΠΈ Π½Π΅ΠΌΠ° Π΄Π° Π³ΠΈ ΡΠΎΠ·Π΄Π°Π΄Π΅ΠΌΠ΅ ΠΎΠ²ΠΈΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ.
Π‘Π°ΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΠ° ΠΏΡΠΎΡΠΈΡΠΈΠΌΠ΅ ΠΎΠ²Π°Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ° Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°. ΠΠ΄Π½ΠΎΡΠ½ΠΎ, Π°ΠΊΠΎ Π½Π΅ΠΊΠΎΡ Π΄Π΅Π» ΠΎΠ΄ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΏΠΎΠ½Π΅Π΄Π΅Π»Π½ΠΈΠΊ, Π½ΠΎ ΡΠ΅ Π±ΠΈΠ΄Π΅ ΠΏΡΠ΅ΠΏΠΈΡΠ°Π½ Π²ΠΎ ΡΡΠ΅Π΄Π°, ΡΠΎΠ³Π°Ρ ΠΏΡΠΈ Π²ΡΠ°ΡΠ°ΡΠ΅ Π½Π° ΡΠΎΡΠΊΠ° Π²ΠΎ ΡΠ΅ΡΠ²ΡΡΠΎΠΊ, Π½Π΅ ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΈ ΠΏΠΈΡΡΠ²Π°ΠΌΠ΅ ΠΏΡΠ²ΠΈΡΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π²Π΅ΡΠ·ΠΈΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈ Π½Π° Π΄ΠΈΡΠΊΠΎΡ.
ΠΠΎ, ΠΎΠ²Π° Π΅ ΡΓ¨ ΡΡΡΠ΅ ΠΈΠ΄Π΅ΡΠ° Π·Π° ΠΊΠΎΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ Π΄ΠΈΡΠΊΡΡΠΈΡΠ° Π²ΠΎ Π½Π°Ρ, Π½ΠΎ ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ Π΅ ΡΡΠΈΠ³Π½Π°ΡΠ° Π΄ΠΎ ΠΊΠΎΠ΄ΠΎΡ.
Π‘Π°ΠΊΠ°ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΡΡΡΠ΅ Π΅Π΄Π½Π° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π²ΠΎ WAL-G. Π‘Π°ΠΊΠ°ΠΌΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΠΏΡΠΎΡΠΈΡΡΠ²Π°ΡΠ΅ Π·Π°ΡΠΎΠ° ΡΡΠΎ ΡΡΠ΅Π±Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°ΠΌΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ Π±ΠΈ ΡΠ°ΠΊΠ°Π»Π΅ Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΌΡ ΠΏΡΠΈΡΡΠ°ΠΏΠΈΠΌΠ΅ Π½Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠΎ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ Π½Π° ΠΈΡΡ Π½Π°ΡΠΈΠ½. ΠΠΎ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π΅ ΡΡΠΎ MySQL API-ΠΈΡΠ΅ ΡΠ΅ ΡΠ°Π΄ΠΈΠΊΠ°Π»Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ. ΠΠΎ MySQL, PITR Π½Π΅ ΡΠ΅ Π±Π°Π·ΠΈΡΠ° Π½Π° ΡΠΈΠ·ΠΈΡΠΊΠΈΠΎΡ Π΄Π½Π΅Π²Π½ΠΈΠΊ Π½Π° WAL, ΡΡΠΊΡ Π½Π° Π±ΠΈΠ½Π»ΠΎΠ³ΠΎΡ. Π Π½ΠΈΠ΅ Π½Π΅ΠΌΠ°ΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌ Π·Π° Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΡΠ΅ Π²ΠΎ MySQL ΡΡΠΎ ΡΠ΅ ΠΌΡ ΠΊΠ°ΠΆΠ΅ Π½Π° Π½Π΅ΠΊΠΎΡ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ Π΄Π΅ΠΊΠ° ΠΎΠ²ΠΎΡ Π±ΠΈΠ½Π»ΠΎΠ³ Π΅ Π·Π°Π²ΡΡΠ΅Π½ ΠΈ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°. Π’ΡΠ΅Π±Π° Π΄Π° Π·Π°ΡΡΠ°Π½Π΅ΠΌΠ΅ Π½Π΅ΠΊΠ°Π΄Π΅ Π²ΠΎ cron ΡΠΎ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌΠ΅ Π΄Π°Π»ΠΈ ΠΈΠΌΠ° Π½Π΅ΡΡΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΎ?
Π Π½Π° ΠΈΡΡ Π½Π°ΡΠΈΠ½, Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° MySQL, Π½Π΅ΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΌΡ ΠΊΠ°ΠΆΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π΄Π΅ΠΊΠ° ΠΌΠΈ ΡΡΠ΅Π±Π°Π°Ρ ΡΠ°ΠΊΠ²ΠΈ ΠΈ ΡΠ°ΠΊΠ²ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ. ΠΡΠ΅Π΄ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π° Π½Π° Π²Π°ΡΠΈΠΎΡ ΠΊΠ»Π°ΡΡΠ΅Ρ, ΡΡΠ΅Π±Π° Π΄Π° Π·Π½Π°Π΅ΡΠ΅ ΠΊΠΎΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΠ΅ Π²ΠΈ ΡΡΠ΅Π±Π°Π°Ρ. ΠΠΈΠ΅ ΡΠ°ΠΌΠΈΡΠ΅ ΡΡΠ΅Π±Π° Π΄Π° ΠΏΠΎΠ³ΠΎΠ΄ΠΈΡΠ΅ ΠΊΠΎΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΠ΅ Π²ΠΈ ΡΡΠ΅Π±Π°Π°Ρ. ΠΠΎ, ΠΎΠ²ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΌΠΎΠΆΠ΅Π±ΠΈ ΡΠ΅ ΠΌΠΎΠΆΠ°Ρ Π½Π΅ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π°Ρ. (ΠΠΎΡΠ°ΡΠ½ΡΠ²Π°ΡΠ΅: MySQL Π΅ Π²Π΅ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½)
ΠΠΎ ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠΎΡ ΡΠ°ΠΊΠ°Π² Π΄Π° Π·Π±ΠΎΡΡΠ²Π°ΠΌ ΠΈ Π·Π° ΠΎΠ½ΠΈΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΠΊΠΎΠ³Π° WAL-G Π½Π΅ Π²ΠΈ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ°.
ΠΠΊΠΎ Π½Π΅ΠΌΠ°ΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°, WAL-G Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° Π΄Π΅ΠΊΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΎΡ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΡΠ΅ Π±ΠΈΠ΄Π΅ Π·Π°ΡΡΠ²Π°Π½. Π Π°ΠΊΠΎ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΡΠ΅ΡΠΎ Π·Π°ΠΎΡΡΠ°Π½ΡΠ²Π° Π·Π°Π΄ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈ ΠΎΠ΄ ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ°, ΡΠΎΠ° Π΅ ΡΠΈΠ·ΠΈΠΊ. ΠΠΊΠΎ Π½Π΅ΠΌΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°, Π½Π΅ Π±ΠΈ ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΠ°Π» ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° WAL-G. Π‘Π΅ΠΏΠ°ΠΊ, ΡΠΎΡ Π΅ Π³Π»Π°Π²Π½ΠΎ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ Π·Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ° Π½Π° ΠΎΠ±Π»Π°ΠΊ, ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎ Π²ΠΈΡΠΎΠΊΠ° Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΎΡΡ ΡΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°, ΠΊΠΎΡΠ° Π΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ½Π° Π·Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡΠ° Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΏΡΠ΅Π·Π΅ΠΌΠ΅Π½ΠΈ Π±Π°ΡΡΠΈ.
Π§Π΅ΡΡΠΎ Π³Π»Π΅Π΄Π°ΠΌ Π»ΡΡΠ΅ ΠΊΠΎΠΈ ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°Π°Ρ Π΄Π° ΡΡΡΠ°Π°Ρ ΠΈ WAL-G ΠΈ WAL-E Π²ΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΠΈΠ΅ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°ΠΌΠ΅ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡ Π½Π°Π½Π°Π·Π°Π΄ Π²ΠΎ ΡΠΌΠΈΡΠ»Π° Π΄Π΅ΠΊΠ° WAL-G ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±Π½ΠΎΠ²ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΎΠ΄ WAL-E ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΡΠ°ΡΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° Π½Π°ΠΏΡΠ°Π²Π΅Π½Π° Π²ΠΎ WAL-E. ΠΠΎ, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π΄Π²Π°ΡΠ° ΠΎΠ΄ ΠΎΠ²ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ wal-push, ΡΠΈΠ΅ ΠΏΠΎΡΠ½ΡΠ²Π°Π°Ρ Π΄Π° ΠΊΡΠ°Π΄Π°Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π΅Π΄Π΅Π½ ΠΎΠ΄ Π΄ΡΡΠ³. ΠΠΊΠΎ Π³ΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΈΠΌΠ΅ Π²ΠΎ WAL-G, ΡΠΎΡ ΡΠ΅ΠΏΠ°ΠΊ ΡΠ΅ ΠΎΡΡΠ°Π½Π΅ Π²ΠΎ WAL-E. ΠΠΎ WAL-E, Π³ΠΎ Π³Π»Π΅Π΄Π° ΡΡΠ°ΡΡΡΠΎΡ Π½Π° Π°ΡΡ ΠΈΠ²Π°ΡΠ°, Π³ΠΈ Π³Π»Π΅Π΄Π° Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΈ Π³ΠΈ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°, Π΄ΠΎΠ΄Π΅ΠΊΠ° Π΄ΡΡΠ³ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π½Π΅ΠΌΠ° Π΄Π° Π·Π½Π°Π°Ρ Π΄Π΅ΠΊΠ° ΠΎΠ²Π°Π° WAL-Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΡΡΠΎΠ΅Π»Π°, Π±ΠΈΠ΄Π΅ΡΡΠΈ PostgreSQL Π½Π΅ΠΌΠ° Π΄Π° ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π΅ Π΄Π° ΡΠ° Π°ΡΡ ΠΈΠ²ΠΈΡΠ° ΠΏΠΎ Π²ΡΠΎΡ ΠΏΠ°Ρ.
Π¨ΡΠΎ ΡΠ΅ ΠΏΠΎΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΠΎΠ²Π΄Π΅ Π½Π° ΡΡΡΠ°Π½Π°ΡΠ° WAL-G? ΠΠ΅ΠΌΠ° Π΄Π° ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠ°ΠΌΠ΅ PostgreSQL Π΄Π΅ΠΊΠ° ΠΎΠ²Π°Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π΅ ΠΏΡΠ΅Π½Π΅ΡΠ΅Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ, Π° ΠΊΠΎΠ³Π° PostgreSQL ΡΠ΅ ΠΏΠΎΠ±Π°ΡΠ° ΠΎΠ΄ Π½Π°Ρ Π΄Π° ΡΠ° Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΠΌΠ΅, Π²Π΅ΡΠ΅ ΡΠ΅ Π·Π½Π°Π΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΠ°ΠΊΠ²Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠΎ ΠΎΠ²ΠΎΡ ΡΠ΅ΠΆΠΈΠΌ-Π²ΡΠ΅ΠΌΠ΅ ΠΈ ΡΠΎ ΠΎΠ²ΠΎΡ md5 Π΅ Π²Π΅ΡΠ΅ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π° ΠΈ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΠΌΠ΅ PostgreSQL - ΠΠΎ ΡΠ΅Π΄, ΡΓ¨ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΎ Π±Π΅Π· ΡΡΡΡΠΈΠ½ΡΠΊΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π½ΠΈΡΡΠΎ.
ΠΠΎ, ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ Π½Π΅ΠΌΠ° Π΄Π° ΡΠ΅ ΠΏΠΎΠΏΡΠ°Π²ΠΈ Π½Π° ΡΡΡΠ°Π½Π°ΡΠ° WAL-E, ΡΠ°ΠΊΠ° ΡΡΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π° Π°ΡΡ ΠΈΠ²Π° ΡΡΠΎ ΡΠ΅ ΡΠ° Π°ΡΡ ΠΈΠ²ΠΈΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΈ Π²ΠΎ WAL-G ΠΈ Π²ΠΎ WAL-E.
ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, ΠΈΠΌΠ° ΡΠ»ΡΡΠ°ΠΈ ΠΊΠ°Π΄Π΅ ΡΡΠΎ WAL-G Π½Π΅ Π²ΠΈ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ° ΡΠ΅Π³Π°, Π½ΠΎ Π½ΠΈΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΠ²Π½ΠΎ ΡΠ΅ Π³ΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΈΠΌΠ΅.
ΠΡΠ²ΠΎ, Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅ΠΌΠ°ΠΌΠ΅ Π²Π³ΡΠ°Π΄Π΅Π½Π° ΠΏΠΎΡΠ²ΡΠ΄Π° Π·Π° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°. ΠΠ΅ΠΌΠ°ΠΌΠ΅ ΠΏΠΎΡΠ²ΡΠ΄Π° Π½ΠΈΡΡ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° ΠΈΠ»ΠΈ Π·Π° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅. Π‘Π΅ ΡΠ°Π·Π±ΠΈΡΠ°, ΠΎΠ²Π° Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΎ Π²ΠΎ ΠΎΠ±Π»Π°ΠΊΠΎΡ. ΠΠΎ, ΠΎΠ²Π° ΡΠ΅ ΡΠΏΡΠΎΠ²Π΅Π΄ΡΠ²Π° Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΠΎ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΠΎ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ. ΠΠΈ ΡΠ°ΠΊΠ°Π» Π΄Π° ΠΈΠΌ ΡΠ° Π΄Π°Π΄Π°ΠΌ ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅. ΠΠΎ, ΡΠΎ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ°, ΠΏΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΠΌ Π΄Π΅ΠΊΠ° Π²ΠΎ WAL-G ΡΠ΅ Π±ΠΈΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π²ΡΠ°ΡΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ ΠΈ Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΡΠ²Π°, ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΠ°Ρ ΡΠ΅ΡΡΠΎΠ²ΠΈ Π·Π° Π΄ΠΈΠΌ: pg_dumpall Π½Π° /dev/null ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΎΡ amcheck.
ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² Π²ΠΎ WAL-G Π½Π΅ ΠΏΠΎΡΡΠΎΠΈ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ ΠΎΠ΄Π»ΠΎΠΆΠΈ Π΅Π΄Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° ΠΎΠ΄ WAL. Π’ΠΎΠ° Π΅, Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°ΠΌΠ΅ Π½Π΅ΠΊΠΎΡ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ΅Π΄ΡΠΌ Π΄Π΅Π½Π°, ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄Π΅ΡΠ΅Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ, ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΡΠΈ ΡΠ΅Π»ΠΎΡΠ½ΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ. ΠΠΎΡΡΠ° ΡΠ΅ΡΡΠΎ Π»ΡΡΠ΅ΡΠΎ Π΄ΠΎΠ°ΡΠ°Π°Ρ ΠΈ Π²Π΅Π»Π°Ρ: βΠΠΈ ΡΡΠ΅Π±Π° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° Π½Π° ΠΎΠ½Π° ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈ Π½Π° ΠΠΎΠ²Π° ΠΠΎΠ΄ΠΈΠ½Π° ΠΈ ΡΠ°ΠΊΠ°ΠΌΠ΅ Π΄Π° Π³ΠΎ Π·Π°Π΄ΡΠΆΠΈΠΌΠ΅ Π·Π°ΡΠ΅ΠΊΠΎΠ³Π°Ρβ. WAL-G ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΎΠ²Π°. (ΠΠ°Π±Π΅Π»Π΅ΡΠΊΠ° - ΠΠ²Π° Π΅ Π²Π΅ΡΠ΅ ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ΠΎ. ΠΡΠΎΡΠΈΡΠ°ΡΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ - ΠΠΏΡΠΈΡΠ° Π·Π° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΎΠ·Π½Π°ΠΊΠ° Π²ΠΎ
Π Π½Π΅ΠΌΠ°ΠΌΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ΅Ρ Π·Π° ΡΠΈΡΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈ Π½Π° Π²ΡΠ°ΡΠΈΠ»ΠΎ ΠΏΡΠΈ ΠΏΠΎΡΠ²ΡΠ΄ΡΠ²Π°ΡΠ΅ Π½Π° PITR.
ΠΠ΄ ΡΠ΅ΡΠΎ ΠΎΠ²Π° ΡΠΎΡΡΠ°Π²ΠΈΠ² ΠΏΡΠΎΠ΅ΠΊΡ Π·Π° Google Summer of Code. ΠΠΊΠΎ ΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅ ΠΏΠ°ΠΌΠ΅ΡΠ½ΠΈ ΡΡΡΠ΄Π΅Π½ΡΠΈ ΠΊΠΎΠΈ Π±ΠΈ ΡΠ°ΠΊΠ°Π»Π΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ°Ρ Π½Π΅ΡΡΠΎ Π²ΠΎ Go ΠΈ Π΄Π° Π΄ΠΎΠ±ΠΈΡΠ°Ρ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΈΠ»ΡΠ°Π΄ΠΈ Π΄ΠΎΠ»Π°ΡΠΈ ΠΎΠ΄ Π΅Π΄Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ° ΡΠΎ Π±ΡΠΊΠ²Π°ΡΠ° βΠβ, ΡΠΎΠ³Π°Ρ ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΠ°ΡΡΠ΅ ΠΈΠΌ Π³ΠΎ Π½Π°ΡΠΈΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠ΅ Π΄Π΅ΡΡΡΠ²ΡΠ²Π°ΠΌ ΠΊΠ°ΠΊΠΎ ΠΌΠ΅Π½ΡΠΎΡ Π·Π° ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠΈΠ΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²Π°Ρ ΡΠΎΠ°. ΠΠΊΠΎ Π½Π΅ΠΌΠ° ΡΡΡΠ΄Π΅Π½ΡΠΈ, ΡΠΎΠ³Π°Ρ ΡΠ΅ Π·Π΅ΠΌΠ°ΠΌ ΠΈ ΡΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²Π°ΠΌ ΡΠ°ΠΌ Π½Π° Π»Π΅ΡΠΎ.
Π ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³Ρ Π΄ΡΡΠ³ΠΈ ΠΌΠ°Π»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° ΠΊΠΎΠΈ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½ΠΎ ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅. Π ΡΠ΅ ΡΠ»ΡΡΡΠ²Π°Π°Ρ Π½Π΅ΠΊΠΎΠΈ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ ΡΡΠ΄Π½ΠΈ ΡΠ°Π±ΠΎΡΠΈ.
ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΌΡ Π΄Π°Π΄Π΅ΡΠ΅ Π½Π° WAL-G ΠΏΡΠ°Π·Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°, ΡΠ°Π° Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΠ΅ ΠΏΠ°Π΄Π½Π΅. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΌΡ ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π΄Π΅ΠΊΠ° ΡΡΠ΅Π±Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° Π½Π° ΠΏΡΠ°Π·Π½Π° ΠΏΠ°ΠΏΠΊΠ°. ΠΠ°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° pg_control Π½Π΅ΠΌΠ° Π΄Π° Π±ΠΈΠ΄Π΅ ΡΠ°ΠΌΡ. Π ΡΠ΅ ΠΌΠΈΡΠ»ΠΈ Π΄Π΅ΠΊΠ° Π½Π΅ΡΡΠΎ Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°. Π’Π΅ΠΎΡΠ΅ΡΡΠΊΠΈ, Π²ΠΎ ΠΎΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ ΡΡΠ΅Π±Π° Π΄Π° ΠΌΡ Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»Π½Π° ΠΏΠΎΡΠ°ΠΊΠ° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π·Π° Π΄Π° ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈ Π°Π»Π°ΡΠΊΠ°ΡΠ°. ΠΠΎ, ΠΎΠ²Π° Π½Π΅ Π΅ Π½ΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°ΡΠ΅ΡΠΎ, ΡΡΠΊΡ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° Π΄ΠΎΠ±Π°Ρ, ΡΠ°Π·Π±ΠΈΡΠ»ΠΈΠ² ΡΠ°Π·ΠΈΠΊ.
ΠΠ΅ Π·Π½Π°Π΅ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΠΎΡΠ»Π°ΡΠ½ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°. ΠΠΊΠΎ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π»Π°ΠΆΠ΅, Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°. ΠΠΎ, ΡΓ¨ Π΅ ΠΌΠ½ΠΎΠ³Ρ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΠΎΠ²Π΄Π΅. ΠΠΈΠ΅ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΠΌΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ ΠΎΠ΄ LSN ΠΊΠΎΠ³Π° Π·Π°ΠΏΠΎΡΠ½Π°. LSN Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π±Π°Π·Π° ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ° ΠΎΠ΄ ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π°ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°. Π ΠΎΠ²Π° Π΅ ΡΠΎΠ»ΠΊΡ Π½Π΅ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°. ΠΠ½ΠΎΠ³Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π½Π°ΠΏΡΠ°Π²Π°Ρ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ. Π ΡΠΎΠ° Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ.
ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΡΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊΠΎΡ Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π΅Π½ ΠΏΡΠΎΡΡΠΎΡ. ΠΠ°ΡΠΎΠ° ΡΡΠΎ ΠΎΠ±ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅ ΡΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ Π΄ΠΎΠΌΠ°. Π ΡΠΈΠ΅ Π½Π΅ ΡΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠΈΡΠ° Π΄ΠΎ ΡΠΎΠ°. ΠΠΎ, Π°ΠΊΠΎ Π½Π΅ΠΊΠΎΡ ΡΠ°ΠΊΠ° Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ° Π²ΠΎ Go Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², Π΄ΠΎΠ΄Π°ΡΡΠ΅ ΡΠ°ΠΊΡΠ²Π°ΡΠ΅ ΡΠΎ Π³ΡΠ΅ΡΠΊΠΈ Π²ΠΎ ΠΏΡΠΎΡΡΠΎΡΠΎΡ Π²ΠΎ ΠΊΠΎΡΠΏΠ°ΡΠ°. ΠΠ΅ΡΠΈΠ½ΠΈΡΠΈΠ²Π½ΠΎ ΡΠ΅ Π³ΠΎ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌ Π±Π°ΡΠ°ΡΠ΅ΡΠΎ Π·Π° ΠΏΠΎΠ²Π»Π΅ΠΊΡΠ²Π°ΡΠ΅.
Π Π³Π»Π°Π²Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° ΡΡΠΎ Π½Π΅ Π·Π°Π³ΡΠΈΠΆΡΠ²Π° Π΅ ΡΡΠΎ ΡΠ°ΠΊΠ°ΠΌΠ΅ ΡΡΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ΡΡΠΎΠ²ΠΈ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° Π½Π° Π΄ΠΎΠΊΠ΅ΡΠΎΡ ΠΊΠΎΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡΠ°. ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² ΡΠ΅ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ°ΠΌΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡΠ°. ΠΠ° ΡΠ΅ΠΊΠΎΡ commit, Π½ΠΎ ΡΠ°ΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌΠ΅ commit-by-commit ΡΠ΅Π»Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΡΡΠΎ ΡΠ° ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°ΠΌΠ΅. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° PostgreSQL 9.4-9.5. ΠΠΈ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°ΠΌΠ΅ Π±ΠΈΠ΄Π΅ΡΡΠΈ Π·Π°Π΅Π΄Π½ΠΈΡΠ°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° PostgreSQL, Π½ΠΎ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ commit-by-commit Π·Π° Π΄Π° ΡΠ΅ ΡΠ²Π΅ΡΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΓ¨ Π½Π΅ Π΅ ΡΠΊΡΡΠ΅Π½ΠΎ. Π ΠΌΠΈ ΡΠ΅ ΡΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° ΠΎΠ²Π° Π΅ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ ΡΠ΅ΡΠΈΠΎΠ·Π΅Π½ ΡΠΈΠ·ΠΈΠΊ.
ΠΠΌΠ°ΠΌΠ΅ WAL-G ΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ΄ ΠΈΠ»ΡΠ°Π΄Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΈ Π²ΠΎ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠΎ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Yandex. Π ΠΏΡΠ°Π²ΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° ΠΎΠ΄ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΡΠΎΡΠΈΡΠΈ ΡΠ΅ΡΠ°Π±Π°ΡΡΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠ΅ΠΊΠΎΡ Π΄Π΅Π½.
ΠΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³Ρ TODO Π²ΠΎ Π½Π°ΡΠΈΠΎΡ ΠΊΠΎΠ΄. ΠΠΊΠΎ ΡΠ°ΠΊΠ°ΡΠ΅ Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°ΡΠ΅, Π΄ΠΎΡΠ΄Π΅ΡΠ΅, ΡΠ΅ΠΊΠ°ΠΌΠ΅ Π±Π°ΡΠ°ΡΠ° Π·Π° ΠΏΠΎΠ²Π»Π΅ΠΊΡΠ²Π°ΡΠ΅, ΡΠ΅ΠΊΠ°ΠΌΠ΅ ΠΏΡΠ°ΡΠ°ΡΠ°.
ΠΏΡΠ°ΡΠ°ΡΠ°
ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΏΠ»Π°Π΄Π½Π΅! ΠΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ°ΠΌ! ΠΠΎΡΠ° ΠΏΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΠΊΠ° Π΅ Π΄Π΅ΠΊΠ° Π°ΠΊΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ WAL-delta, Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΌΠ΅ΡΠ° ΡΠ΅ ΠΏΠΎΡΠΏΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΠΈΡΡΠ²Π°ΡΠ°ΡΠ° Π½Π° ΡΠ΅Π»Π° ΡΡΡΠ°Π½ΠΈΡΠ°. Π Π°ΠΊΠΎ Π΅ ΡΠ°ΠΊΠ°, Π΄Π°Π»ΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈΠ²ΡΠ΅ ΡΠ΅ΡΡΠΎΠ²ΠΈ? ΠΠΎΠΊΠ°ΠΆΠ°Π²ΡΠ΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ Π³ΡΠ°ΡΠΈΠΊ. ΠΠΎΠ»ΠΊΡ Π΅ ΠΏΠΎΡΠ±Π°Π²ΠΎ Π°ΠΊΠΎ ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠΈ FPW?
ΠΠ°ΠΏΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΡΠ΅Π»Π° ΡΡΡΠ°Π½ΠΈΡΠ° Π΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ Π·Π° Π½Π°Ρ, Π½Π΅ ΡΠΌΠ΅ ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π΅Π»Π΅ Π΄Π° Π³ΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈΠΌΠ΅. ΠΠ΄Π½ΠΎΡΠ½ΠΎ, ΡΠ°Ρ ΠΊΠ°ΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅Ρ Π½Π΅ ΡΡΠΌ ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π΅Π» Π΄Π° Π³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ°ΠΌ. Π‘ΠΈΡΡΠ΅ΠΌΡΠΊΠΈΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ ΠΊΠΎΠΈ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°Π»Π΅ Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ Π³ΠΎ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°Π»Π΅ ΠΎΠ²Π° ΠΏΡΠ°ΡΠ°ΡΠ΅. ΠΠΎ, Π½ΠΈ ΡΡΠ΅Π±Π° FPW. Π Π΅ΡΠΈΡΠΈ Π½ΠΈΠΊΠΎΡ Π½Π΅ Π³ΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π²ΠΎ ΡΠΏΡΠΎΡΠΈΠ²Π½ΠΎ Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π·Π΅ΠΌΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° ΠΎΠ΄ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°.
ΠΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌΠ΅ Π·Π° ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠΎΡ! ΠΠΌΠ°ΠΌ Π΄Π²Π΅ ΠΏΡΠ°ΡΠ°ΡΠ°. ΠΡΠ²ΠΎΡΠΎ ΠΏΡΠ°ΡΠ°ΡΠ΅ Π΅ ΡΡΠΎ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΠΈ ΡΠΎ ΡΠ°Π±Π΅Π»ΠΈΡΠ΅?
Π§Π΅ΠΊΠ°ΠΌΠ΅ Π±Π°ΡΠ°ΡΠ΅ Π·Π° ΠΏΠΎΠ²Π»Π΅ΠΊΡΠ²Π°ΡΠ΅. ΠΠ°ΡΠΈΡΠ΅ Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΆΠΈΠ²Π΅Π°Ρ Π½Π° SSD ΠΈ NMVE Π΄ΠΈΡΠΊΠΎΠ²ΠΈ ΠΈ Π½Π°Π²ΠΈΡΡΠΈΠ½Π° Π½Π΅ Π½ΠΈ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½Π° ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ°. ΠΠ΅ ΡΡΠΌ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ Π΄Π° ΠΏΠΎΡΡΠΎΡΠ°ΠΌ ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² Π·Π° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²Π°ΠΌ ΡΠΎΠ° Π΄ΠΎΠ±ΡΠΎ. Π‘Π΅ΡΡΠ΄Π½ΠΎ ΡΠ΅ Π·Π°Π»Π°Π³Π°ΠΌ Π΄Π΅ΠΊΠ° Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°ΠΌΠ΅ ΠΎΠ²Π°. ΠΠΌΠ° Π»ΡΡΠ΅ ΠΊΠΎΠΈ Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π°, Π½ΠΎ Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π° Π½Π° Π½Π°ΡΠΈΠ½ ΡΡΠΎ ΠΈΠΌ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ°. ΠΠ°ΠΏΡΠ°Π²ΠΈΡΠ° Π²ΠΈΠ»ΡΡΠΊΠ°, Π½ΠΎ Π½Π΅ Π³ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ²Π°Π°Ρ Π±Π°ΡΠ°ΡΠ°ΡΠ° Π·Π° Π²Π»Π΅ΡΠ΅ΡΠ΅. (ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΎ Π²ΠΎ Π²Π΅ΡΠ·ΠΈΡΠ° 0.2.13)
Π Π²ΡΠΎΡΠΎΡΠΎ ΠΏΡΠ°ΡΠ°ΡΠ΅. Π Π΅ΠΊΠΎΠ²ΡΠ΅ Π½Π° ΡΠ°ΠΌΠΈΠΎΡ ΠΏΠΎΡΠ΅ΡΠΎΠΊ Π΄Π΅ΠΊΠ° WAL-G ΠΏΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΡΠ²Π° Π΄Π΅ΠΊΠ° ΡΠ°Π±ΠΎΡΠΈ ΡΠ°ΠΌ ΠΈ Π½Π΅ ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ. ΠΠ°Ρ ΡΠ°ΠΌΠΈΠΎΡ ΠΊΠΎΡΠΈΡΡΠ°ΠΌ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ. ΠΠΎΡΡΠΎ Π½Π΅ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ?
Π‘Π°ΠΊΠ°ΠΌΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΊΠΎ Π±Π°Π»Π°Π»Π°ΡΠΊΠ°. ΠΠ²Π° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° Π½Π΅ Π²ΠΈ ΡΡΠ΅Π±Π° Π½ΠΈΡΡΠΎ ΠΎΡΠ²Π΅Π½ Π±Π°Π»Π°Π»Π°ΡΠΊΠ°. Π‘Π°ΠΊΠ°ΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π΄Π° Π±ΠΈΠ΄Π΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΡΡΠΎ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π²ΠΎ ΡΠΊΡΠΈΠΏΡΠ°, ΡΠΎΠ³Π°Ρ Π΄ΠΎΡΠ΄Π΅ΡΠ΅ ΠΈ ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π½ΠΈ - ΡΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΡΠΎΠ° Π²ΠΎ Go.
ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΏΠ»Π°Π΄Π½Π΅! ΠΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌΠ΅ Π·Π° ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠΎΡ! ΠΠ΅ ΠΌΠΎΠΆΠ΅Π²ΠΌΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΡΠ΅ΡΠ°ΠΌΠ΅ WAL-G Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΡΠΎ Π΄Π΅ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ GPG. Π‘Π΅ ΡΠΈΡΡΠΈΡΠ° Π½ΠΎΡΠΌΠ°Π»Π½ΠΎ, Π½ΠΎ Π½Π΅ ΡΠ°ΠΊΠ° Π΄Π° ΡΠ΅ Π΄Π΅ΡΠΈΡΡΠΈΡΠ°. ΠΠ°Π»ΠΈ Π΅ ΡΠΎΠ° Π½Π΅ΡΡΠΎ ΡΡΠΎ Π½Π΅ Π½ΠΈ ΡΡΠΏΠ΅Π°? Π‘ΠΈΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π΅ Π΄Π΅ΠΏΡΠ΅ΡΠΈΠ²Π½Π°.
ΠΠ°ΠΏΡΠ°Π²Π΅ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π° GitHub ΠΈ Π°ΡΠ΄Π΅ Π΄Π° Π³ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΠ΅.
ΠΠ΄Π½ΠΎΡΠ½ΠΎ, Π½Π΅ ΡΡΠ΅ Π³ΠΎ ΡΡΠ΅ΡΠ½Π°Π»Π΅ ΠΎΠ²Π°?
ΠΠΎΡΡΠΎΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠΎΡ Π·Π° Π³ΡΠ΅ΡΠΊΠ° Π΄Π΅ΠΊΠ° ΠΊΠΎΠ³Π° WAL-G Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ° Π·Π° ΠΊΠ°ΠΊΠ²Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ, ΠΏΡΠ°ΡΡΠ²Π°: βΠΠΎΠΆΠ΅Π±ΠΈ Π΅ ΡΠΈΡΡΠΈΡΠ°Π½Π°?β ΠΠΎΠΆΠ΅Π±ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π²ΠΎΠΎΠΏΡΡΠΎ Π½Π΅ Π΅ ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ. Π‘Π°ΠΊΠ°ΠΌ Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΠΌ Π»ΠΎΠ³ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΠΎΠ²Π°Π° ΡΠ΅ΠΌΠ°. Π’ΠΎΡ ΠΌΠΎΡΠ° Π΄Π° Π³ΠΎ Π΄Π΅ΡΠΈΡΡΠΈΡΠ°. ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅ Π½Π° ΠΎΠ²Π°Π° ΡΠ΅ΠΌΠ° Π²ΠΎ ΡΠΌΠΈΡΠ»Π° Π΄Π΅ΠΊΠ° Π½Π°Π²ΠΈΡΡΠΈΠ½Π° Π½Π΅ Π½ΠΈ ΡΠ΅ Π΄ΠΎΠΏΠ°ΡΠ° ΠΊΠ°ΠΊΠΎ Π΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° Π΄ΠΎΠ±ΠΈΠ²Π°ΡΠ΅ ΡΠ°Π²Π½ΠΈ ΠΈ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΈ. ΠΠ°ΡΠΎΠ° ΡΡΠΎ Π³ΠΎ Π½Π°ΡΠ΅ΠΊΡΠ²Π°ΠΌΠ΅ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ GPG Π·Π° Π΄Π° Π½ΠΈ Π³ΠΈ Π΄Π°Π΄Π΅ ΡΠ²ΠΎΠΈΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΈ. Π ΡΠΎΠ³Π°Ρ Π³ΠΈ Π·Π΅ΠΌΠ°ΠΌΠ΅ ΠΎΠ²ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΈ ΠΈ Π³ΠΈ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°ΠΌΠ΅ Π²ΠΎ Π²Π½Π°ΡΡΠ΅ΡΠ½ΠΈΠΎΡ GPG, ΠΊΠΎΡ Π΅ ΠΎΡΠ²ΠΎΡΠ΅Π½ PGP, ΠΊΠΎΡ Π΅ ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°Π½ Π·Π° Π½Π°Ρ Π²ΠΎ WAL-G, ΠΈ ΡΠ°ΠΌΡ Π³ΠΎ Π½Π°ΡΠ΅ΠΊΡΠ²Π°ΠΌΠ΅ ΡΠΈΡΡΠΈΡΠ°ΡΠ΅. ΠΠΎ ΠΎΠ²ΠΎΡ ΠΏΠΎΠ³Π»Π΅Π΄, ΡΠ°ΠΊΠ°ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΠΈ ΡΠ°ΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΠΆΠΈΠΌΠ΅ Π΅Π½ΠΊΡΠΈΠΏΡΠΈΡΠ° Π½Π° Libsodium (ΠΠΎΠ΄Π°Π΄Π΅Π½ΠΎ Π²ΠΎ Π²Π΅ΡΠ·ΠΈΡΠ° 0.2.15). Π‘Π΅ ΡΠ°Π·Π±ΠΈΡΠ°, Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ΡΠΎ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ, Π°ΡΠ΄Π΅ Π΄Π° Π³ΠΎ ΡΡΠ°ΡΠΈΠΌΠ΅ - Π²ΠΈ ΡΡΠ΅Π±Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠΈΠΌΠΏΡΠΎΠΌ ΠΎΡΠΊΠΎΠ»ΠΊΡ Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π·Π±ΠΎΡΠΎΠ²ΠΈ. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΎΠ±Π΅ΡΠ΅ΡΠ΅ Π½Π΅ΠΊΠΎΠ³Π°Ρ Π²ΠΎ ΠΏΡΠΎΡΡΠΎΡΠΈΡΠ°ΡΠ° Π½Π° Π³ΠΎΠ²ΠΎΡΠ½ΠΈΠΊΠΎΡ ΠΈ Π΄Π° Π³ΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΡ. (PGP ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ Π±Π΅Π· Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ΅Π½ GPG - v0.2.9)
ΠΠ΄ΡΠ°Π²ΠΎ! ΠΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌΠ΅ Π·Π° ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠΎΡ! ΠΠΌΠ°ΠΌ Π΄Π²Π΅ ΠΏΡΠ°ΡΠ°ΡΠ°. ΠΠΌΠ°ΠΌ ΡΡΠ΄Π½Π° ΠΆΠ΅Π»Π±Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²Π°ΠΌ pg_basebackup ΠΈ WAL Π΄Π° ΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ°ΠΌ Π²ΠΎ Π΄Π²Π° ΠΏΡΠΎΠ²Π°ΡΠ΄Π΅ΡΠΈ, Ρ.Π΅. ΡΠ°ΠΊΠ°ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°Π²Π°ΠΌ Π΅Π΄Π΅Π½ ΠΎΠ±Π»Π°ΠΊ ΠΈ Π΄ΡΡΠ³. ΠΠ°Π»ΠΈ ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΡ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΎΠ²Π°?
ΠΠ²Π° ΡΠ΅Π³Π° Π½Π΅ ΠΏΠΎΡΡΠΎΠΈ, Π½ΠΎ ΡΠΎΠ° Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΠΈΠ΄Π΅ΡΠ°.
ΠΠ΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π½Π΅ Π²Π΅ΡΡΠ²Π°ΠΌ Π½Π° Π΅Π΄Π΅Π½ ΠΏΡΠΎΠ²Π°ΡΠ΄Π΅Ρ, ΡΠ°ΠΊΠ°ΠΌ Π΄Π° Π³ΠΎ ΠΈΠΌΠ°ΠΌ ΠΈΡΡΠΎΡΠΎ ΠΊΠ°Ρ Π΄ΡΡΠ³, Π·Π° ΡΠ΅ΠΊΠΎΡ ΡΠ»ΡΡΠ°Ρ.
ΠΠ΄Π΅ΡΠ°ΡΠ° Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°. Π’Π΅Ρ Π½ΠΈΡΠΊΠΈ, ΠΎΠ²Π° Π²ΠΎΠΎΠΏΡΡΠΎ Π½Π΅ Π΅ ΡΠ΅ΡΠΊΠΎ Π΄Π° ΡΠ΅ ΡΠΏΡΠΎΠ²Π΅Π΄Π΅. ΠΠ° Π΄Π° Π½Π΅ ΡΠ΅ ΠΈΠ·Π³ΡΠ±ΠΈ ΠΈΠ΄Π΅ΡΠ°ΡΠ°, ΠΌΠΎΠΆΠ΅ Π»ΠΈ Π΄Π° Π²Π΅ Π·Π°ΠΌΠΎΠ»Π°ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π° GitHub?
ΠΠ°, ΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°.
Π ΠΏΠΎΡΠΎΠ°, ΠΊΠΎΠ³Π° ΡΡΡΠ΄Π΅Π½ΡΠΈΡΠ΅ ΡΠ΅ Π΄ΠΎΡΠ΄Π°Ρ Π½Π° Google Summer of Code, ΡΠ΅ Π³ΠΈ Π΄ΠΎΠ΄Π°Π΄Π΅ΠΌΠ΅ Π²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Π·Π° Π΄Π° ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ° Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ΄ Π½ΠΈΠ².
Π Π²ΡΠΎΡΠΎΡΠΎ ΠΏΡΠ°ΡΠ°ΡΠ΅. ΠΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π° GitHub. ΠΠΈΡΠ»Π°ΠΌ Π΄Π΅ΠΊΠ° Π΅ Π²Π΅ΡΠ΅ Π·Π°ΡΠ²ΠΎΡΠ΅Π½. ΠΠΎΡΡΠΎΠΈ ΠΏΠ°Π½ΠΈΠΊΠ° Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ΡΠΎ. Π Π·Π° Π΄Π° Π³ΠΎ ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅, Π½Π°ΠΏΡΠ°Π²ΠΈΠ²ΡΠ΅ ΠΏΠΎΡΠ΅Π±Π΅Π½ ΡΠΊΠ»ΠΎΠΏ. ΠΠΎ ΠΏΡΠ°ΡΠ°ΡΠ°ΡΠ° Π΅ Π²ΠΎ ΠΏΡΠ°Π²ΠΎ. Π ΠΏΠΎΡΡΠΎΠΈ ΠΎΠΏΡΠΈΡΠ° Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π° Π²ΠΎ Π΅Π΄Π½Π° Π½ΠΈΡΠΊΠ°. Π Π·Π°ΡΠΎΠ° ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ½ΠΎΠ³Ρ Π±Π°Π²Π½ΠΎ. Π Π½Π°ΠΈΠ΄ΠΎΠ²ΠΌΠ΅ Π½Π° ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π° ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ Π΅ ΠΏΠΎΠΏΡΠ°Π²Π΅Π½.
ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π΅ ΡΡΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π΅ΠΊΠΎΡΠ° ΠΏΡΠΈΡΠΈΠ½Π° ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ (CEPH) ΡΠ° ΡΠ΅ΡΠ΅ΡΠΈΡΠ° Π²ΡΡΠΊΠ°ΡΠ° ΠΊΠΎΠ³Π° ΡΠ΅ Π΄ΠΎΡΠ΄Π΅ΠΌΠ΅ Π΄ΠΎ Π½Π΅Π° ΡΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎΡΡ. Π¨ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π·Π° ΠΎΠ²Π°? ΠΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΠΈΠ΄ ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°. Π‘Π΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π΄Π° ΡΠ° ΠΏΡΠ΅Π·Π΅ΠΌΠ΅ΠΌΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ°. ΠΠΎ Π΅Π΄Π½ΠΎ ΠΏΠΎΠΌΠΈΠ½ΡΠ²Π°ΡΠ΅ ΠΈΠΌΠ°Π²ΠΌΠ΅ Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π½Π΅ ΠΏΡΠ΅Π·Π΅ΠΌΠ΅Π½ΠΈ, ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠ΅ Π²ΡΠΎΡ Π·Π° ΡΠΈΡΠ΅ ΡΡΠΎ Π½Π΅ ΡΠ΅ Π½Π°ΡΠ°Π²ΠΈΡΠ°. Π ΡΠ΅ Π΄ΠΎΠ΄Π΅ΠΊΠ° Π±Π°ΡΠ΅ΠΌ Π΅Π΄Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π΅ Π²ΡΠΈΡΠ°Π½Π° ΠΏΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π°ΡΠ΅, ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π°ΠΌΠ΅ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π°ΠΌΠ΅ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π°ΠΌΠ΅. ΠΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΠ²ΠΌΠ΅ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΠΈΠ΄ - Π΅ΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ°Π»Π½ΠΎ Π½Π°Π·Π°Π΄ΡΠ²Π°ΡΠ΅. ΠΠΎ, Π½Π΅ Π΅ ΡΠΎΡΠ΅ΠΌΠ° ΡΠ°ΡΠ½ΠΎ ΡΡΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ΡΠΎ ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° Π²ΡΡΠΊΠ°ΡΠ° Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΊΠΈΠ½ΡΠ²Π° Π½Π° ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅. ΠΠ΄Π½ΠΎΡΠ½ΠΎ, ΠΊΠΎΠ³Π° ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΠΌΠ΅ Π½Π° Π΅Π΄Π΅Π½ ΡΡΡΠΈΠΌ, ΡΠΎΠ° Π½Π΅ Π³ΠΈ ΠΏΡΠ΅ΠΊΠΈΠ½ΡΠ²Π° ΠΎΠ²ΠΈΠ΅ Π²ΡΡΠΊΠΈ. Π¨ΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈΠΌΠ΅ ΠΎΠ²Π΄Π΅? ΠΠΌΠ°ΠΌΠ΅ Π·Π°Π΄ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ°, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌΠ΅ ΡΠ΅ΠΊΠΎΡΠ° Π²ΡΡΠΊΠ° ΡΠΎ Π±ΡΠΎΡΠΎΡ Π½Π° Π±Π°ΡΡΠΈ ΡΡΠΎ Π³ΠΈ ΠΈΡΠΏΡΠ°ΡΠ°. ΠΠ½Π°ΠΊΡ, Π½Π΅ Π·Π½Π°ΠΌ ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²Π°ΠΌ ΡΠΎ ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΈ Π½Π΅ Π½ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΠΌΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΠΌΠ΅ ΠΎΠ΄ Π½Π΅Π³ΠΎ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ.
ΠΠ΅ΠΌΠ° SLA? ΠΠ°Ρ Π½Π΅ ΠΈΠΌ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΊΠ°ΠΊΠΎ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Π°Ρ Π΄Π° Π±ΠΈΠ΄Π°Ρ ΠΈΠ·ΠΌΠ°ΡΡΠ²Π°Π½ΠΈ?
ΠΠΎΠ΅Π½ΡΠ°ΡΠ° Π΅ Π΄Π΅ΠΊΠ° Π»ΡΡΠ΅ΡΠΎ ΠΊΠΎΠΈ ΡΠ΅ Π³ΠΎ ΡΠΌΠΈΡΠ»Π°Ρ ΠΎΠ²Π° ΠΏΡΠ°ΡΠ°ΡΠ΅ ΠΎΠ±ΠΈΡΠ½ΠΎ ΠΈΠΌΠ°Π°Ρ ΡΠ²ΠΎΡ ΡΡΠ΅Π·ΠΎΡ. Π’ΠΎΠ° Π΅, Π½ΠΈΠΊΠΎΡ Π½Π΅ Π΄ΠΎΠ°ΡΠ° ΠΎΠ΄ Amazon ΠΈΠ»ΠΈ Google Cloud ΠΈΠ»ΠΈ Yandex Object Storage.
ΠΠΎΠΆΠ΅Π±ΠΈ ΠΏΡΠ°ΡΠ°ΡΠ΅ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π΅ Π΅ Π·Π° Π²Π°Ρ?
ΠΡΠ°ΡΠ°ΡΠ΅ΡΠΎ ΠΎΠ²Π΄Π΅ Π²ΠΎ ΠΎΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ Π½Π΅ Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΊΠΎΠΌΡ. ΠΠΊΠΎ ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠΈ ΠΈΠ΄Π΅ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΡΠΎ ΠΎΠ²Π°, Π°ΡΠ΄Π΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΡΠΎΠ° Π²ΠΎ WAL-G. ΠΠΎ, Π·Π°ΡΠ΅Π³Π° Π½Π΅ΠΌΠ°ΠΌ Π΄ΠΎΠ±ΡΠΈ ΠΈΠ΄Π΅ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²Π°ΠΌ ΡΠΎ ΠΎΠ²Π°. ΠΠΌΠ° Π½Π΅ΠΊΠΎΠΈ Object Storage ΡΡΠΎ ΠΏΠΎΠΈΠ½Π°ΠΊΡ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°Π°Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ Π½Π° Π»ΠΈΡΡΠΈ. ΠΠ°ΡΠ°ΡΠ΅ ΠΎΠ΄ Π½ΠΈΠ² Π΄Π° Π½Π°Π²Π΅Π΄Π°Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΈ ΠΈ ΡΠΈΠ΅ Π΄ΠΎΠ΄Π°Π²Π°Π°Ρ ΠΏΠ°ΠΏΠΊΠ° ΡΠ°ΠΌΡ. WAL-G ΡΠ΅ ΠΏΠ»Π°ΡΠΈ ΠΎΠ΄ ΠΎΠ²Π° - ΠΈΠΌΠ° Π½Π΅ΡΡΠΎ ΠΎΠ²Π΄Π΅ ΡΡΠΎ Π½Π΅ Π΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°, Π½Π΅ ΠΌΠΎΠΆΠ°ΠΌ Π΄Π° Π³ΠΎ Π²ΡΠ°ΡΠ°ΠΌ, ΡΡΠΎ Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° ΡΠ΅Π·Π΅ΡΠ²Π½Π°ΡΠ° ΠΊΠΎΠΏΠΈΡΠ° Π½Π΅ Π΅ Π²ΡΠ°ΡΠ΅Π½Π°. Π’ΠΎΠ° Π΅, Π²ΡΡΡΠ½ΠΎΡΡ, ΠΈΠΌΠ°ΡΠ΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ ΠΊΠ»Π°ΡΡΠ΅Ρ, Π½ΠΎ ΡΠΎΡ Π²ΠΈ Π²ΡΠ°ΡΠ° ΠΏΠΎΠ³ΡΠ΅ΡΠ΅Π½ ΡΡΠ°ΡΡΡ Π±ΠΈΠ΄Π΅ΡΡΠΈ Object Storage Π²ΡΠ°ΡΠΈ Π½Π΅ΠΊΠΎΠΈ ΡΡΠ΄Π½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΡΠΎ Π½Π΅ Π³ΠΈ ΡΠ°Π·Π±ΡΠ° ΡΠ΅Π»ΠΎΡΠ½ΠΎ.
ΠΠ²Π° Π΅ Π½Π΅ΡΡΠΎ ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π° Π²ΠΎ ΠΎΠ±Π»Π°ΠΊΠΎΡ Π·Π° ΠΏΠΎΡΡΠ°.
ΠΠΊΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΡΠ΅ ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΠ°...
ΠΠΎΡΡΠΎΡΠ°Π½ΠΎ ΡΠ΅ ΡΠ΅ΠΏΡΠΎΠ΄ΡΡΠΈΡΠ°...
ΠΠΊΠΎ ΠΈΠΌΠ° ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΠ°, ΡΠΎΠ³Π°Ρ ΠΌΠΈΡΠ»Π°ΠΌ Π΄Π΅ΠΊΠ° ΡΠ΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ°ΠΌΠ΅ ΡΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΠΈΠ΄ΠΈ ΠΈ ΡΠ΅ ΡΡΠ°ΡΠΈΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π΅ΠΌΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΠ΅ ΡΡΠΎ Π±Π°ΡΠ° ΠΎΠ±Π»Π°ΠΊΠΎΡ ΠΎΠ΄ Π½Π°Ρ. ΠΠΎΠΆΠ΅Π±ΠΈ ΡΠ΅ Π½ΠΈ Π±ΠΈΠ΄Π΅ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ Π½Π° ΡΡΠΈ Π²ΡΡΠΊΠΈ ΠΈ Π½Π΅ΠΌΠ° Π΄Π° ΡΠ° ΠΏΡΠ΅ΠΊΠΈΠ½Π΅ Π²ΡΡΠΊΠ°ΡΠ°, ΡΠΎΠ³Π°Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ ΡΠ΅ ΡΡΠΈΠ³Π½Π΅ΠΌΠ΅ Π΄ΠΎ ΡΡΠΈ. ΠΠ°ΡΠΎΠ° ΡΡΠΎ ΡΠ΅Π³Π° ΡΠ° ΠΈΡΠΏΡΡΡΠ°ΠΌΠ΅ Π²ΡΡΠΊΠ°ΡΠ° ΠΌΠ½ΠΎΠ³Ρ Π±ΡΠ·ΠΎ, Ρ.Π΅. Π°ΠΊΠΎ ΡΡΠ°ΡΡΡΠ²Π°Π²ΠΌΠ΅ Π·Π°ΠΊΡΠ΅ΠΏΠ½ΡΠ²Π°ΡΠ΅ ΡΠΎ 16 Π½ΠΈΡΠΊΠΈ, ΡΠΎΠ³Π°Ρ ΠΏΠΎ ΠΏΡΠ²ΠΎΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π°ΡΠ΅ ΡΠ΅ ΠΈΠΌΠ° 8 Π½ΠΈΡΠΊΠΈ, 4 Π½ΠΈΡΠΊΠΈ, 2 Π½ΠΈΡΠΊΠΈ ΠΈ Π΅Π΄Π½Π°. Π ΡΠΎΠ³Π°Ρ ΡΠ΅ ΡΠ° ΠΏΠΎΠ²Π»Π΅ΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° Π²ΠΎ Π΅Π΄Π΅Π½ ΠΏΠΎΡΠΎΠΊ. ΠΠΊΠΎ ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠΈ ΠΌΠ°Π³ΠΈΡΠ½ΠΈ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΠΊΠ°ΠΊΠΎ 7,5 Π½ΠΈΡΠΊΠΈ ΡΠ΅ Π½Π°ΡΠ΄ΠΎΠ±ΡΠΈ Π·Π° ΠΏΡΠΌΠΏΠ°ΡΠ΅, ΡΠΎΠ³Π°Ρ ΡΠ΅ ΡΠ΅ Π·Π°Π΄ΡΠΆΠΈΠΌΠ΅ Π½Π° Π½ΠΈΠ² ΠΈ ΡΠ΅ ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π΅ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΡΡΡΠ΅ 7,5 Π½ΠΈΡΠΊΠΈ. ΠΠ²Π΅ Π΅Π΄Π½Π° ΠΈΠ΄Π΅ΡΠ°.
ΠΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌΠ΅ Π·Π° ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠΎΡ! ΠΠ°ΠΊΠΎ ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠ½ΠΈΠΎΡ ΡΠ°Π±ΠΎΡΠ΅Π½ ΡΠ΅ΠΊ Π·Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ WAL-G? ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎ Π³Π»ΡΠΏΠ°Π²ΠΈΠΎΡ ΡΠ»ΡΡΠ°Ρ ΠΊΠΎΠ³Π° Π½Π΅ΠΌΠ° Π΄Π΅Π»ΡΠ° Π½ΠΈΠ· ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅. Π ΡΠ° Π·Π΅ΠΌΠ°ΠΌΠ΅ ΠΈ ΡΠ° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΠΏΠΎΡΠ΅ΡΠ½Π°ΡΠ° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°, Π° ΠΏΠΎΡΠΎΠ° ΡΠ° Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ ΠΎΡΠΊΠ°ΡΠ° Π΄ΠΎΠ΄Π΅ΠΊΠ° Π½Π΅ ΡΡΠ°Π½Π΅ΠΌΠ΅ ΡΠΈΠ½ΠΈ Π²ΠΎ Π»ΠΈΡΠ΅ΡΠΎ. ΠΠ²Π΄Π΅, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ, ΠΈΠΌΠ° Π΄Π΅ΡΠ΅ΠΊΡ. ΠΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠ΅Π±Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π΄Π΅Π»ΡΠ° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅, Ρ.Π΅. Π½Π΅ΠΊΠΎΡ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ Π³ΠΎ ΠΏΠΎΡΡΠΈΠΊΠ½ΡΠ²Π° ΠΎΠ²Π° ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π° ΠΎΠ²Π°?
ΠΠ΅Π»ΡΠ° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈΠΎΡ API Π΅ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½. ΠΠΌΠ° Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ ΡΠ°ΠΌΡ - ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈ ΡΠ΅ΠΊΠΎΡΠΈ Π΄Π΅Π»ΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π°ΡΠ΅ΠΊΡΠ²Π°. Π‘ΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ Π΅ Π½ΡΠ»Π°. ΠΠ²Π° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° ΡΠ΅ΠΊΠΎΡ ΠΏΠ°Ρ ΠΊΠΎΠ³Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°-ΠΏΡΠΈΡΠΈΡΠ½ΡΠ²Π°ΡΠ΅, ΠΏΡΠ΅Π·Π΅ΠΌΠ° ΡΠ΅Π»ΠΎΡΠ½Π° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°. ΠΠΊΠΎ Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π° ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΠ²Π΅Π½ Π±ΡΠΎΡ, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, 3, ΡΠΎΠ³Π°Ρ ΡΠ»Π΅Π΄Π½ΠΈΠΎΡ ΠΏΠ°Ρ ΠΊΠΎΠ³Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°-ΠΏΡΠΈΡΠΈΡΠ½ΡΠ²Π°ΡΠ΅, ΡΠ΅ ΡΠ° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΈΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ. ΠΠ»Π΅Π΄Π° Π΄Π΅ΠΊΠ° Π½Π΅ Π³ΠΎ Π½Π°Π΄ΠΌΠΈΠ½ΡΠ²Π°Ρ ΡΠΈΠ½ΡΠΈΡΠΎΡ ΠΎΠ΄ 3 Π΄Π΅Π»ΡΠΈ ΠΈ ΠΏΡΠ°Π²ΠΈ Π΄Π΅Π»ΡΠ°.
ΠΠ΄Π½ΠΎΡΠ½ΠΎ, ΡΠ΅ΠΊΠΎΠ³Π°Ρ ΠΊΠΎΠ³Π° ΡΠ΅ Π³ΠΎ ΡΡΠ°ΡΡΡΠ²Π°ΠΌΠ΅ WAL-G, ΡΠΎΡ ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠ΅Π»ΠΎΡΠ½Π° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°?
ΠΠ΅, Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅ WAL-G ΠΈ ΡΠΎΡ ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ Π΄Π΅Π»ΡΠ° Π°ΠΊΠΎ Π²Π°ΡΠΈΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π³ΠΎ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Π°Ρ ΡΠΎΠ°.
ΠΡΡΠ±ΠΎ ΠΊΠ°ΠΆΠ°Π½ΠΎ, Π°ΠΊΠΎ ΡΠ΅ΠΊΠΎΡ ΠΏΠ°Ρ Π³ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΡΠΎ Π½ΡΠ»Π°, Π΄Π°Π»ΠΈ ΡΠ΅ ΡΠ΅ ΠΎΠ΄Π½Π΅ΡΡΠ²Π° ΠΊΠ°ΠΊΠΎ pg_basebackup?
ΠΠ΅, ΡΠ΅ΠΏΠ°ΠΊ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎΠ±ΡΠ·ΠΎ Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ° ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·Π°ΠΌ. Pg_basebackup ΡΠ΅ Π³ΠΎ ΡΡΠ°Π²ΠΈ Π²ΡΠ°ΡΠΈΠ»ΠΎΡΠΎ Π΄ΠΎ Π²Π°Ρ. WAL-G ΠΏΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΡΠ²Π° Π΄Π΅ΠΊΠ° ΡΡΠ΅ Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π»Π΅ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΡΠ΅ΡΠΎ. Π ΡΠ΅ ΠΈΠ·Π΄Π°Π΄Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π°ΠΊΠΎ Π½Π΅ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½.
Pg_basebackup ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π±Π΅Π· ΡΠ°Ρ ΡΠΈ.
ΠΠ°, ΡΠΎΠ³Π°Ρ ΡΠΈΠ΅ ΡΠ΅ ΡΠ΅ ΠΎΠ΄Π½Π΅ΡΡΠ²Π°Π°Ρ ΡΠ΅ΡΠΈΡΠΈ ΠΈΡΡΠΎ. Pg_basebackup ΠΊΠΎΠΏΠΈΡΠ° Π²ΠΎ Π΄Π°ΡΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΠ°ΡΠ΅ΠΌ, ΠΈΠΌΠ°ΠΌΠ΅ Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡΠ° ΠΊΠΎΡΠ° Π·Π°Π±ΠΎΡΠ°Π²ΠΈΠ² Π΄Π° ΡΠ° ΡΠΏΠΎΠΌΠ½Π°ΠΌ. Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ° Π²ΠΎ Π΄Π°ΡΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ ΠΎΠ΄ pg_basebackup. ΠΠ΅ Π·Π½Π°ΠΌ Π·ΠΎΡΡΠΎ Π΅ ΡΠΎΠ° ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ, Π½ΠΎ Π³ΠΎ ΠΈΠΌΠ°.
ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° CephFS. ΠΠ΅ ΡΠ΅ΠΊΠΎΡ ΡΠ°ΠΊΠ° Π΄Π° Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΡ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅.
ΠΠ°, Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ Π·Π°ΡΠΎΠ° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ° ΠΏΡΠ°ΡΠ°ΡΠ΅ Π·Π° ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ° Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΡΠΎΠ°. Π Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠ²ΠΌΠ΅ ΡΠΎΠ°.
ΠΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌΠ΅ Π·Π° ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠΎΡ! ΠΠΌΠ° ΡΠ°ΠΌΠΎ ΠΏΡΠ°ΡΠ°ΡΠ΅ Π·Π° ΠΊΠΎΠΏΠΈΡΠ°ΡΠ΅ Π²ΠΎ Π΄Π°ΡΠΎΡΠ΅ΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ. ΠΠ°Π΄Π²ΠΎΡ ΠΎΠ΄ ΠΊΡΡΠΈΡΠ°ΡΠ°, Π΄Π°Π»ΠΈ ΡΠ΅Π³Π° ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°ΡΠ΅ Π½Π° Π΄Π°Π»Π΅ΡΠΈΠ½ΡΠΊΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΡΠ° ΠΏΠΎΠ»ΠΈΡΠ° Π²ΠΎ ΡΠ΅Π½ΡΠ°ΡΠΎΡ Π·Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈΠ»ΠΈ Π½Π΅ΡΡΠΎ Π΄ΡΡΠ³ΠΎ?
ΠΠΎ ΠΎΠ²Π°Π° ΡΠΎΡΠΌΡΠ»Π°ΡΠΈΡΠ°, ΠΎΠ²Π° Π΅ ΡΠ΅ΡΠΊΠΎ ΠΏΡΠ°ΡΠ°ΡΠ΅. ΠΠ°, ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°ΠΌΠ΅, Π½ΠΎ ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΡΓ¨ ΡΡΡΠ΅ Π½Π΅ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π²ΠΎ Π½ΠΈΡΡ Π΅Π΄Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. Π’ΠΎΠ° Π΅, ΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄-ΠΈΠ·Π΄Π°Π½ΠΈΡΠ° Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°Π°Ρ ΠΎΠ²Π°, Π½ΠΎ Π²Π΅ΡΠ·ΠΈΠΈΡΠ΅ Π·Π° ΠΈΠ·Π΄Π°Π²Π°ΡΠ΅ Π½Π΅. ΠΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π΅ Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π²ΠΎ Π²Π΅ΡΠ·ΠΈΡΠ°ΡΠ° 0.2. ΠΠ΅ΡΠΈΠ½ΠΈΡΠΈΠ²Π½ΠΎ ΡΠ΅ Π±ΠΈΠ΄Π΅ ΠΎΠ±ΡΠ°Π²Π΅Π½ Π½Π°ΡΠΊΠΎΡΠΎ, ΡΡΠΎΠΌ ΡΠ΅ Π³ΠΈ ΠΏΠΎΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΡΠΈΡΠ΅ ΠΏΠΎΠ·Π½Π°ΡΠΈ Π³ΡΠ΅ΡΠΊΠΈ. ΠΠΎ, Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠ°ΠΌΠΎ Π²ΠΎ ΠΏΡΠ΅Π΄ΠΈΠ·Π΄Π°Π²Π°ΡΠ΅. ΠΠΌΠ° Π΄Π²Π΅ Π³ΡΠ΅ΡΠΊΠΈ Π²ΠΎ ΠΏΡΠ΅Π΄ΠΈΠ·Π΄Π°Π²Π°ΡΠ΅ΡΠΎ. ΠΡΠΎΠ±Π»Π΅ΠΌ ΡΠΎ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° WAL-E, Π½Π΅ Π³ΠΎ ΡΠ΅ΡΠΈΠ²ΠΌΠ΅. Π Π²ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π±Π΅ΡΠ΅ Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π³ΡΠ΅ΡΠΊΠ° Π·Π° Π΄Π΅Π»ΡΠ°-ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΊΠΎΠΏΠΈΡΠ°. ΠΠ°ΡΠΎΠ°, Π½Π° ΡΠΈΡΠ΅ ΠΈΠΌ ΠΏΡΠ΅ΠΏΠΎΡΠ°ΡΡΠ²Π°ΠΌΠ΅ Π΄Π° Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π²Π΅ΡΠ·ΠΈΠΈΡΠ΅ Π·Π° ΠΈΠ·Π΄Π°Π²Π°ΡΠ΅. Π¨ΡΠΎΠΌ Π½Π΅ΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ Π²ΠΎ ΠΏΡΠ΅Π΄ΠΈΠ·Π΄Π°Π²Π°ΡΠ΅ΡΠΎ, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°ΠΌΠ΅ Google Cloud, ΡΠ°Π±ΠΎΡΠΈ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΈ ΡΠΎ S3 ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ.
ΠΠ΄ΡΠ°Π²ΠΎ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ°ΠΌ Π·Π° ΠΈΠ·Π²Π΅ΡΡΠ°ΡΠΎΡ. ΠΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ, WAL-G Π½Π΅ Π΅ Π½Π΅ΠΊΠΎΡ Π²ΠΈΠ΄ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΠΈΡΡΠ΅ΠΌ ΠΊΠ°ΠΊΠΎ Π±Π°ΡΠΌΠ΅Π½ΠΈ? ΠΠ°Π»ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠ°ΡΠ΅ Π΄Π° ΡΠ΅ Π΄Π²ΠΈΠΆΠΈΡΠ΅ Π²ΠΎ ΠΎΠ²Π°Π° Π½Π°ΡΠΎΠΊΠ°?
ΠΡΠΎΠ±Π»Π΅ΠΌΠΎΡ Π΅ ΡΡΠΎ ΡΠ΅ ΠΎΠ΄Π΄Π°Π»Π΅ΡΠΈΠ²ΠΌΠ΅ ΠΎΠ΄ ΠΎΠ²Π°Π° Π½Π°ΡΠΎΠΊΠ°. WAL-G ΠΆΠΈΠ²Π΅Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΠΎΡ Π΄ΠΎΠΌΠ°ΡΠΈΠ½, Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ ΠΈ Π½Π° ΡΠΈΡΠ΅ Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΈ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ. ΠΠΎΠ³Π° ΡΠ΅ ΠΏΡΠ΅ΡΠ΅Π»ΠΈΠ²ΠΌΠ΅ Π²ΠΎ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΈΠ»ΡΠ°Π΄ΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈ, ΠΈΠΌΠ°Π²ΠΌΠ΅ ΠΌΠ½ΠΎΠ³Ρ ΡΠ°Π½ΠΊΠ΅ΡΡΠΊΠΈ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΈ. Π ΡΠ΅ΠΊΠΎΠ³Π°Ρ ΠΊΠΎΠ³Π° Π½Π΅ΡΡΠΎ ΡΠ΅ ΡΠ΅ ΡΠ°ΡΠΏΠ°Π΄Π½Π΅ Π²ΠΎ Π½ΠΈΠ², ΡΠΎΠ° Π΅ Π³ΠΎΠ»Π΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠΈΠ΄Π΅ΡΡΠΈ ΡΠΈΠ΅ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠΏΡΠ°Π²Π°Ρ, ΡΡΠ΅Π±Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠΈ ΡΠ΅Π³Π° Π½Π΅ΠΌΠ°Π°Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΠΈ. ΠΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌ Π΄Π° ΡΠ°Π·Π²ΠΈΠ²Π°ΠΌ WAL-G Π²ΠΎ Π½Π°ΡΠΎΠΊΠ° Π½Π° ΡΠΈΠ·ΠΈΡΠΊΠΈ Ρ Π°ΡΠ΄Π²Π΅Ρ Π·Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΠΊΠΎ Π·Π°Π΅Π΄Π½ΠΈΡΠ°ΡΠ° ΡΠ°ΠΊΠ° Π½Π΅ΠΊΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΎΠ²Π΄Π΅, Π²ΠΎΠΎΠΏΡΡΠΎ Π½Π΅ ΠΌΠΈ ΠΏΡΠ΅ΡΠΈ.
ΠΠΌΠ°ΠΌΠ΅ ΡΠΈΠΌΠΎΠ²ΠΈ ΠΊΠΎΠΈ ΡΠ΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ½ΠΈ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅. Π ΡΠ΅ ΡΡΠ²ΡΡΠ²ΡΠ²Π°ΠΌΠ΅ ΡΠΎΠ»ΠΊΡ Π΄ΠΎΠ±ΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠΌΠ΅ Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΠΌΠ° ΠΏΠΎΡΠ΅Π±Π½ΠΈ Π»ΡΡΠ΅ ΠΊΠΎΠΈ Π³ΠΈ ΡΡΠ°Π²Π°Π°Ρ Π½Π°ΡΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΠ°ΠΌΡ ΠΊΠ°Π΄Π΅ ΡΡΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΡΠ΅ Π±Π΅Π·Π±Π΅Π΄Π½ΠΈ. Π’ΠΈΠ΅ ΠΏΡΠ°Π²Π°Ρ ΡΠ΅ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΠ°ΠΌΠ΅ΡΠ½ΠΈ ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΌΡ Π·Π° Π΄Π° ΠΈΠ·Π΄ΡΠΆΠ°Ρ Π³ΡΠ±Π΅ΡΠ΅ Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ Π±ΡΠΎΡ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ. Π’ΠΈΠ΅ ΡΠ΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ½ΠΈ Π·Π° ΠΏΡΠΎΠΏΡΡΠ½ΠΈΠΎΡ ΠΎΠΏΡΠ΅Π³ Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ°. ΠΠΎΠ³Π° ΠΈΠΌΠ°ΡΠ΅ ΡΠ°Π½ΠΊΠ΅Ρ, ΠΌΠΎΠΆΠ΅ ΠΎΠ΄Π΅Π΄Π½Π°Ρ Π΄Π° Π΄ΠΎΠ·Π½Π°Π΅ΡΠ΅ Π΄Π΅ΠΊΠ° Π½Π° ΠΈΡΡΠΈΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ΅ ΡΠΎΠ±ΡΠ°Π»Π΅ ΠΌΠ°Π»ΠΈ Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΡΠΎ ΠΌΠ½ΠΎΠ³Ρ ΡΠΎΠΎΠ±ΡΠ°ΡΠ°Ρ. Π‘Π΅ ΡΠΈΠ½ΠΈ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ ΠΏΡΠΎΡΡΠΎΡ Π½Π° Π½Π΅Π³ΠΎ, Π½ΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π΅ΠΊΠΎΡΠ° ΠΏΡΠΈΡΠΈΠ½Π° ΡΓ¨ Π½Π΅ ΡΠ΅ Π²ΠΊΠ»ΠΎΠΏΡΠ²Π° Π²ΠΎ ΠΌΡΠ΅ΠΆΠ°ΡΠ°. ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΡΠΏΠ°Π΄Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ. ΠΠΌΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΌΡΠ΅ΠΆΠΈ ΡΠ°ΠΌΡ, ΠΈΠΌΠ° ΠΏΡΠΎΡΠ΅ΡΠΎΡΡΠΊΠΈ ΡΠ°Π΄ΡΠ°, Π½ΠΎ ΡΡΠΊΠ° Π½Π΅ΠΌΠ° Π΄ΠΈΡΠΊΠΎΠ²ΠΈ. Π Π½ΠΈΠ΅ ΡΠ΅ ΠΈΠ·ΠΌΠΎΡΠΈΠ²ΠΌΠ΅ ΠΎΠ΄ ΠΎΠ²Π°Π° ΠΏΠΎΡΡΠ΅Π±Π° Π΄Π° ΠΆΠΎΠ½Π³Π»ΠΈΡΠ°ΠΌΠ΅ ΡΠΎ Π½Π΅ΡΡΠΎ ΠΈ ΡΠ΅ ΠΏΡΠ΅ΡΠ΅Π»ΠΈΠ²ΠΌΠ΅ Π½Π° ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ΡΠΎ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π΅ ΠΏΠΎΡΠ΅Π±Π½Π° ΡΡΠ»ΡΠ³Π°, Π·Π° ΠΊΠΎΡΠ° ΡΠ΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ½ΠΈ ΠΏΠΎΡΠ΅Π±Π½ΠΈ ΠΏΠΎΡΠ΅Π±Π½ΠΈ Π»ΡΡΠ΅.
Π.Π‘. ΠΠ·Π΄Π°Π΄Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° Π²Π΅ΡΠ·ΠΈΡΠ°
ΠΠΈΠ΄Π΅ΠΎ:
ΠΠ·Π²ΠΎΡ: www.habr.com