ΠΡΠ΅Π΄Π»Π°Π³Π°ΠΌ Π²ΠΈ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΠ΅Π½ΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΎΡ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° 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 = onβ ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ βarchive_commandβ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠΎ Π΅ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² WAL-G. ΠΠΎ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΏΡΠΈΡΠΈΠ½Π° Ρ
ΠΎΡΠ°ΡΠ° ΡΠ΅ΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π±Π°Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ ΠΏΠΎ ΡΠ°Π·ΠΈ ΡΠ΅ΠΌΠ° ΠΈ Ρ ΡΠ²ΠΈΠ²Π°Ρ ΠΎΠΊΠΎΠ»ΠΎ WAL-G. ΠΌΠΎΠ»Ρ ΡΠ΅ Π½Π΅ ΠΏΡΠ°Π²ΠΈ ΡΠΎΠ²Π° ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° WAL-G. ΠΠΊΠΎ Π½Π΅ΡΠΎ ΠΠΈ Π»ΠΈΠΏΡΠ²Π°, ΠΏΠΈΡΠ΅ΡΠ΅ Π½Π°
ΠΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ WAL-G Π³Π»Π°Π²Π½ΠΎ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΡΠ΅Ρ Ρ Π²ΠΈΡΠΎΠΊΠ° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ Π² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π½Π° Yandex.
Π ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ ΠΎΡ Π΅Π΄ΠΈΠ½ Master ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΏΡΠ°Π²ΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π² Yandex Object Storage.
ΠΠ°ΠΉ-ΡΠ΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ΠΈΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΏΠΈΡ Π½Π° ΠΊΠ»ΡΡΡΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π²ΡΠ² Π²ΡΠ΅ΠΌΠ΅ΡΠΎ. ΠΠΎ Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π²Π°ΠΆΠ½Π° Π·Π° Π½Π°Ρ. ΠΡΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠ°ΡΠΈΠΌ Π½ΠΎΠ² ΠΊΠ»ΡΡΡΠ΅Ρ ΠΎΡ Π°ΡΡ ΠΈΠ²Π°.
ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ Π½ΠΎΠ² Π²ΡΠ·Π΅Π». ΠΠ°ΡΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ? ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Ρ ΠΎΡΠ°ΡΠ° Π΄ΠΎΠ±Π°Π²ΡΡ Π½ΠΎΠ² Π²ΡΠ·Π΅Π» ΠΊΡΠΌ ΠΊΠ»ΡΡΡΠ΅Ρ, Π·Π°ΡΠΎΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΡ ΠΊΠ»ΡΡΡΠ΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈ Ρ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½Π΅. Π’Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΡΡ Π½ΠΎΠ²Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°. ΠΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΠΎΡ 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. ΠΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ ΡΠΌΡΡΠ°Ρ, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΠΈΡΠΊΠΎΠ²Π°Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, Π·Π°ΡΠΎΡΠΎ Π½ΠΈΠ΅ ΡΠ°Π·ΡΠΈΡΠ°ΠΌΠ΅ Π½Π° ΠΏΠΎΠ·Π½Π°Π½ΠΈΡΡΠ° ΡΠΈ Π·Π° Π²ΡΡΡΠ΅ΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠ΄Π°, ΠΊΠΎΠΉΡΠΎ Π½Π΅ Π΅ API Π½Π° PostgreSQL. PostgreSQL Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΏΠΊΠ°ΡΠ° archive_status Π·Π° Π½Π°Ρ ΠΈ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ°ΡΠ°, Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠΈΠ³Π½Π°Π»ΠΈ Π·Π° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡ Π·Π° WAL ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ°ΠΌ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π½ΠΈΠ΅ ΠΈΠ·ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΡΠ°ΠΊΠ° ΠΈ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅. Π Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΠΌΠ΅ ΠΏΠΎΡΠΎΠΊΠ°ΡΠ°, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° PostgreSQL; Π°ΠΊΠΎ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΡΠΎΠ·ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ ΡΠ΅ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈ, Π½ΠΈΠ΅ ΡΠ΅ ΡΠΏΡΠ΅ΠΌ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅.
Π ΡΠΈΡΡΠ°ΡΠ° ΡΠΈ ΡΠΎΡΠΌΠ° LSN-Π±Π°Π·ΠΈΡΠ°Π½Π°ΡΠ° WAL Π΄Π΅Π»ΡΠ° ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠ΅Π½ ΡΠ°ΠΉΠ», ΡΠΈΠ΅ΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ΅ΠΆΠΈΠΌ Π²ΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ ΡΠ»Π΅Π΄ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΎΡΠΎ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅. ΠΠΈΠ²ΡΡ ΠΌΠ΅ Ρ ΡΠΎΠ²Π° Π΄ΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΏΠΎΡΡΠΈ Π³ΠΎΠ΄ΠΈΠ½Π°. Π Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ΅ Π΄ΠΎ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ WAL Π΄Π΅Π»ΡΠ°.
Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ WAL Π½Π° Master, Π½ΠΈΠ΅ Π½Π΅ ΡΠ°ΠΌΠΎ Π³ΠΎ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°ΠΌΠ΅, ΠΊΡΠΈΠΏΡΠΈΡΠ°ΠΌΠ΅ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ ΠΊΡΠΌ ΠΌΡΠ΅ΠΆΠ°ΡΠ°, Π½ΠΎ ΠΈ Π³ΠΎ ΡΠ΅ΡΠ΅ΠΌ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΠΈ ΡΠ΅ΡΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠΈΡΠ΅ Π² Π½Π΅Π³ΠΎ. ΠΠΈΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ ΠΊΠΎΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΡΠ° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΈ ΡΡΠ±ΠΈΡΠ°ΠΌΠ΅ Π΄Π΅Π»ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
ΠΠ΅Π»ΡΠ° ΡΠ°ΠΉΠ»ΡΡ ΠΎΠΏΠΈΡΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ WAL ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΎΠΏΠΈΡΠ²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΎΠ²Π° ΠΊΠΎΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΡΠ° Π±ΠΈΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΈ Π² ΡΠΎΠ·ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ WAL. Π ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅Π·ΠΈ Π΄Π΅Π»ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΡΡΠΎ ΡΠ΅ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Ρ.
Π’ΡΠΊ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°ΠΌΠ΅ Ρ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΡΡΠΏΠΎΡΠ΅Π΄ΠΈΡ ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΎ Π΄ΠΎΡΡΠ° Π±ΡΡΠ·ΠΎ, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½Π° ΠΈΡΡΠΎΡΠΈΡ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ, Π·Π°ΡΠΎΡΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ΅ΡΠ½Π΅ΠΌ ΠΊΡΠ°Ρ Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ WAL Π·Π°ΠΏΠΈΡ, ΠΊΠΎΠΉΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½ΡΠΌΠ°ΠΌΠ΅ Ρ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΡΠ²ΡΡΠΆΠ΅ΠΌ, Ρ.ΠΊ. ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠΎΠ²Π°, ΡΠ΅ ΠΏΡΡΠ²ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½ΡΠΌΠ° ΠΌΠΈΠ½Π°Π»ΠΎ.
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ Π½Π΅ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΠΈ ΡΠ°ΡΡΠΈ Π² _delta_partial ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ Π² ΠΌΠΈΠ½Π°Π»ΠΎΡΠΎ, ΡΠ΅ ΡΠ»Π΅ΠΏΠΈΠΌ ΠΏΠ°ΡΡΠ΅ΡΠ°ΡΠ° ΠΎΡ WAL Π·Π°ΠΏΠΈΡΠ° Π² Π΅Π΄Π½ΠΎ, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΠΈ ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ Π² Π½Π΅Π³ΠΎ.
ΠΠΊΠΎ Π² ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π½Π°ΡΠΈΡ Π²Π°Π» ΠΈΠΌΠ° ΠΏΠΎΠ½Π΅ Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ°, Π² ΠΊΠΎΡΡΠΎ Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π°, ΡΠΎΠ³Π°Π²Π°, ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ ΡΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΈΠ½ΡΠ΄Π΅Π½ΠΈ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠ΅Π»ΠΈΡ ΠΊΠ»ΡΡΡΠ΅Ρ, ΡΠΎΡΠ½ΠΎ ΠΊΠ°ΠΊΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΠΌΠ΅ Ρ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ LSN -Π±Π°Π·ΠΈΡΠ°Π½Π° Π΄Π΅Π»ΡΠ°.
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° ΡΡΠ»ΠΎΡΠΎ Π½ΠΈ ΡΡΡΠ°Π΄Π°Π½ΠΈΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΠΎΡΠ²ΠΎΡΠΈΡ
ΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π·Π° ΡΠ°Π·Π±ΠΎΡ Π½Π° WAL-G. ΠΠΎΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π·Π½Π°ΠΌ ΠΎΡΠ΅ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ Π³ΠΎ ΠΏΠΎΠ»Π·Π²Π°, Π½ΠΎ Π°ΠΊΠΎ Π½ΡΠΊΠΎΠΉ ΠΈΡΠΊΠ° Π΄Π° ΠΏΠΈΡΠ΅ ΠΈ Π΄Π° Π³ΠΎ ΠΏΠΎΠ»Π·Π²Π°, ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ Π΅. (ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π»ΠΈΠ½ΠΊ
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° Π²ΡΠΈΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΠΏΠΎΡΠΎΡΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ Π΄ΠΎΡΡΠ° ΡΠ»ΠΎΠΆΠ½ΠΈ. ΠΠ°ΡΠΈΡΡ ΠΌΠ°ΠΉΡΡΠΎΡ Π°ΡΡ ΠΈΠ²ΠΈΡΠ° Π²Π°Π»Π° ΠΈ Π°ΡΡ ΠΈΠ²ΠΈΡΠ° Π΄Π΅Π»ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. Π ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ ΠΏΡΠ°Π²ΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΡΠΎ ΠΊΠΎΠΏΠΈΠ΅, ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π΄Π΅Π»ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΡΠ΅Π· Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΈΠ·ΠΌΠΈΠ½Π°Π»ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ΡΠΎ. Π ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΠ°ΡΡΠΈ ΠΎΡ ΠΈΡΡΠΎΡΠΈΡΡΠ° ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π³ΡΡΠΏΠΎΠ²ΠΎ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ ΡΡΠ»Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ ΡΠ΅ ΠΏΠΎΠ±ΠΈΡΠ° Π² Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΈ. Π Π΅Π΄Π²Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π°ΡΡ ΠΈΠ²ΠΈΡΠ° ΠΏΡΠ»Π½ΠΎ Π΄Π΅Π»ΡΠ° Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅.
ΠΠ° Π³ΡΠ°ΡΠΈΠΊΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎ. Π’ΠΎΠ²Π° Π΅ ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΠΎΡ Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΡΠΈΡΠ΅ ΡΠ΅Π°Π»Π½ΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ. ΠΠΌΠ°ΠΌΠ΅ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° LSN, Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ Π·Π° Π΅Π΄ΠΈΠ½ Π΄Π΅Π½. Π Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ Π±Π°Π·ΠΈΡΠ°Π½ΠΎΡΠΎ Π½Π° LSN Π΄Π΅Π»ΡΠ° Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ ΡΠ°Π±ΠΎΡΠΈ ΠΎΡ ΡΡΠΈ ΡΡΡΡΠΈΠ½ΡΠ° Π΄ΠΎ ΠΏΠ΅Ρ ΡΡΡΡΠΈΠ½ΡΠ°. Π’ΠΎΠ²Π° Π΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π² Π±ΡΠΎΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΈΡΠ΅ ΡΠ΄ΡΠ°. Π’ΡΠΊ WAL-delta Π½ΠΈ ΠΎΡΠ½Π΅ ΠΎΠΊΠΎΠ»ΠΎ 20 ΠΌΠΈΠ½ΡΡΠΈ, ΡΠΎΠ΅ΡΡ ΡΡΠ°Π½Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π±ΡΡΠ·, Π½ΠΎ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΏΠΎ-ΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²Π΅Π½ ΠΎΠ±ΠΌΠ΅Π½ ΠΏΠΎ ΠΌΡΠ΅ΠΆΠ°ΡΠ°.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΎΠ²Π° ΠΊΠΎΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΡΠ° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΈ ΠΏΠΎ ΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π² ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, Π½ΠΈΠ΅ ΠΎΡΠΈΠ΄ΠΎΡ ΠΌΠ΅ ΠΏΠΎ-Π΄Π°Π»Π΅Ρ ΠΈ ΡΠ΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ - PostgreSQL ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅, Π½Π°ΡΠ΅ΡΠ΅Π½ΠΎ βpg_prefaulterβ
Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅Π·Π΅ΡΠ²Π½Π°ΡΠ° Π±Π°Π·Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π·Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅, ΡΡ ΠΊΠ°Π·Π²Π° Π½Π° WAL-G Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ WAL ΡΠ°ΠΉΠ». Π Π°Π·Π±ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ Π΄ΠΎ ΠΊΠΎΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΠΈΠΌΠ° Π΄ΠΎΡΡΡΠΏ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° WAL Π² Π±Π»ΠΈΠ·ΠΊΠΎ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈ ΠΈΠ½ΠΈΡΠΈΠΈΡΠ°ΠΌΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° ΡΠ΅Π·ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅. Π’ΠΎΠ²Π° Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ, Π·Π° Π΄Π° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° SSD ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈΡΠ΅. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΎΠ»ΠΊΠ°ΡΠ° WAL ΡΠ΅ Π΄ΠΎΡΡΠΈΠ³Π½Π΅ ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½Π°. Π’Π°Π·ΠΈ ΡΡΡΠ°Π½ΠΈΡΠ° Π΅ Π½Π° Π΄ΠΈΡΠΊ ΠΈ Π½Π΅ Π΅ Π² ΠΊΠ΅ΡΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°. Π ΡΠΎΠΉ ΡΠ΅ ΡΠ°ΠΊΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ ΡΠ°Π·ΠΈ ΡΡΡΠ°Π½ΠΈΡΠ° Π΄Π° ΠΏΡΠΈΡΡΠΈΠ³Π½Π΅. ΠΠΎ Π½Π°Π±Π»ΠΈΠ·ΠΎ Π΅ WAL-G, ΠΊΠΎΠΉΡΠΎ Π·Π½Π°Π΅, ΡΠ΅ Π² ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎΡΡΠΎΡΠΈΠ½ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ° WAL ΡΠ΅ Π½ΠΈ ΡΡΡΠ±Π²Π°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΈ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° Π³ΠΈ Π·Π°Π³ΡΡΠ²Π°. ΠΠ½ΠΈΡΠΈΠΈΡΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΠΈ Π΄ΠΎΡΡΡΠΏΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ. Π’ΠΎΠ²Π° ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΠ±ΡΠ΅ Π½Π° SSD ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π½ΠΎ, Π·Π° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅, Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌΠΎ Π·Π° ΡΠ²ΡΡΠ΄ Π΄ΠΈΡΠΊ, Π·Π°ΡΠΎΡΠΎ Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎ ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠ²Π°ΠΌΠ΅ Π² Π½Π΅Π³ΠΎ Ρ Π½Π°ΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ°Π½ΠΈ.
Π’ΠΎΠ²Π° Π΅, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π² ΠΊΠΎΠ΄Π° ΡΠ΅Π³Π°.
ΠΠΌΠ° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π±ΠΈΡ ΠΌΠ΅ ΠΈΡΠΊΠ°Π»ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ.
Π’Π°Π·ΠΈ ΡΠ½ΠΈΠΌΠΊΠ° ΠΏΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ WAL-Π΄Π΅Π»ΡΠ° ΠΎΡΠ½Π΅ΠΌΠ° ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΊΡΠ°ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅. Π ΡΠΎΠ²Π° Π΅ ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, Π½Π°ΡΡΡΠΏΠΈΠ»ΠΈ Π² Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΠΏΡΠ΅Π· Π΄Π΅Π½Ρ. ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ WAL-delta Π½Π΅ ΡΠ°ΠΌΠΎ ΠΏΡΠ΅Π· Π½ΠΎΡΡΠ°, Π·Π°ΡΠΎΡΠΎ Π²Π΅ΡΠ΅ Π½Π΅ Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π΅Π½ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅. ΠΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ΡΠ΅ΠΌ WAL-Π΄Π΅Π»ΡΠ° Π²ΡΡΠΊΠ° ΠΌΠΈΠ½ΡΡΠ°, Π·Π°ΡΠΎΡΠΎ Π΅ Π΅Π²ΡΠΈΠ½ΠΎ. ΠΠ° Π΅Π΄Π½Π° ΠΌΠΈΠ½ΡΡΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠΊΠ°Π½ΠΈΡΠ°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, Π½Π°ΡΡΡΠΏΠΈΠ»ΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°. Π ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΡΠ΅ΡΠ΅ "Π½Π΅Π·Π°Π±Π°Π²Π½Π° WAL-Π΄Π΅Π»ΡΠ°".
ΠΡΠΏΡΠΎΡΡΡ Π΅, ΡΠ΅ ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ ΠΊΠ»ΡΡΡΠ΅ΡΠ°, Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΠΌΠ΅ Π±ΡΠΎΡ Π½Π° ΠΈΡΡΠΎΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°Π²ΠΈΠ²Π°ΠΌΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ WAL, ΠΊΠΎΠ΅ΡΠΎ PostgreSQL ΠΏΡΠ΅Π²ΡΡΡΠ°, ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ, Π·Π°ΡΠΎΡΠΎ ΠΎΡΠ½Π΅ΠΌΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅.
ΠΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π²ΡΠΈΡΠΊΠΎ. ΠΠΊΠΎ Π·Π½Π°Π΅ΠΌ, ΡΠ΅ Π½ΡΠΊΠΎΠΉ Π±Π»ΠΎΠΊ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ Π΄ΠΎ ΡΡΠ΅ΠΏΠ΅Π½ Π½Π° ΡΡΠ³Π»Π°ΡΡΠ²Π°Π½ΠΎΡΡ Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΡΠΎ ΠΊΠΎΠΏΠΈΠ΅, Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ Π² ΠΌΠΈΠ½Π°Π»ΠΎΡΠΎ. Π’ΠΎΠ΅ΡΡ, ΡΠ΅Π³Π° ΠΈΠΌΠ°ΠΌΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΠΉΠ» ΠΏΠΎ ΡΠ°ΠΉΠ» Π½Π° WAL-Π΄Π΅Π»ΡΠ° ΠΏΡΠ΅Π½Π°ΡΠΎΡΠ²Π°Π½Π΅. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π°ΠΊΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ² Π²ΡΠΎΡΠ½ΠΈΠΊ Π΅Π΄Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° Π΅ Π±ΠΈΠ»Π° Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΈΠ·ΡΡΠΈΡΠ° ΠΈΠ»ΠΈ Π½ΡΠΊΠΎΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ° Π±ΠΈΠ»ΠΈ ΠΈΠ·ΡΡΠΈΡΠΈ ΠΈΠ·ΡΡΠ»ΠΎ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, ΡΠΎΠ³Π°Π²Π° ΠΊΠΎΠ³Π°ΡΠΎ Π΄Π΅Π»ΡΠ°ΡΠ° ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΡΠΈ Π² ΠΏΠΎΠ½Π΅Π΄Π΅Π»Π½ΠΈΠΊ ΠΈ ΡΡΠ±ΠΎΡΠ½ΠΈΡΡ pg_basebackup Π±ΡΠ΄Π΅ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²Π΅Π½, Π½ΠΈΠ΅ Π΄ΠΎΡΠΈ Π½ΡΠΌΠ° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ.
ΠΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΠ°Π·ΡΠΈΡΠΈΠΌ ΡΠ°Π·ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π΄ΠΎ Π½ΠΈΠ²ΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°. Π’ΠΎΠ΅ΡΡ, Π°ΠΊΠΎ ΡΠ°ΡΡ ΠΎΡ ΡΠ°ΠΉΠ»Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΏΠΎΠ½Π΅Π΄Π΅Π»Π½ΠΈΠΊ, Π½ΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π½Π° Π² ΡΡΡΠ΄Π°, ΡΠΎΠ³Π°Π²Π° ΠΏΡΠΈ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π΄ΠΎ ΡΠΎΡΠΊΠ° Π² ΡΠ΅ΡΠ²ΡΡΡΡΠΊ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ ΠΏΡΡΠ²ΠΈΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈ Π½Π° Π΄ΠΈΡΠΊΠ°.
ΠΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ ΠΈΠ΄Π΅Ρ, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π° Π°ΠΊΡΠΈΠ²Π½ΠΎ Π² Π½Π°Ρ, Π½ΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ ΡΡΠΈΠ³Π½Π°Π»Π° Π΄ΠΎ ΠΊΠΎΠ΄Π°.
ΠΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΎΡΠ΅ Π΅Π΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ Π² WAL-G. ΠΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠ°Π·ΡΠΈΡΡΠ΅ΠΌ, Π·Π°ΡΠΎΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π±ΠΈΡ ΠΌΠ΅ ΠΈΡΠΊΠ°Π»ΠΈ Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΡΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΏΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½. ΠΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ MySQL API ΡΠ° ΠΊΠΎΡΠ΅Π½Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ. Π MySQL PITR ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π΅ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ WAL ΠΆΡΡΠ½Π°Π», Π° Π½Π° binlog. Π Π½ΠΈΠ΅ Π½ΡΠΌΠ°ΠΌΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ Π² MySQL, ΠΊΠΎΡΡΠΎ Π΄Π° ΠΊΠ°ΠΆΠ΅ Π½Π° Π²ΡΠ½ΡΠ½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΠ΅ ΡΠΎΠ·ΠΈ binlog Π΅ Π·Π°Π²ΡΡΡΠ΅Π½ ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½. Π’ΡΡΠ±Π²Π° Π΄Π° ΡΡΠΎΠΈΠΌ Π½ΡΠΊΡΠ΄Π΅ Π² 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 ΠΈ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Ρ ΠΈΠ»ΡΠ΄ΠΈ Π΄ΠΎΠ»Π°ΡΠ° ΠΎΡ Π΅Π΄Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Ρ Π±ΡΠΊΠ²Π°ΡΠ° βGβ, ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ°ΠΉΡΠ΅ ΠΈΠΌ Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ. Π©Π΅ Π΄Π΅ΠΉΡΡΠ²Π°ΠΌ ΠΊΠ°ΡΠΎ ΠΌΠ΅Π½ΡΠΎΡ Π·Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΡΡ. ΠΠΊΠΎ Π½ΡΠΌΠ° ΡΡΠ΅Π½ΠΈΡΠΈ, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ Π³ΠΎ Π²Π·Π΅ΠΌΠ° ΠΈ ΡΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²Ρ ΡΠ°ΠΌ ΠΏΡΠ΅Π· Π»ΡΡΠΎΡΠΎ.
ΠΠΌΠ°ΠΌΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΠΌΠ°Π»ΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, Π²ΡΡΡ Ρ ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠΈΠΌ. Π ΡΠ΅ ΡΠ»ΡΡΠ²Π°Ρ Π΄ΠΎΡΡΠ° ΡΡΡΠ°Π½Π½ΠΈ Π½Π΅ΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ Π΄Π°Π΄Π΅ΡΠ΅ Π½Π° WAL-G ΠΏΡΠ°Π·Π΅Π½ Π±Π΅ΠΊΡΠΏ, ΡΠΎΠΉ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ ΠΏΠ°Π΄Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΌΡ ΠΊΠ°ΠΆΠ΅ΡΠ΅, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π°ΡΡ ΠΈΠ²ΠΈΡΠ° ΠΏΡΠ°Π·Π½Π° ΠΏΠ°ΠΏΠΊΠ°. Π€Π°ΠΉΠ»ΡΡ pg_control Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°ΠΌ. Π ΡΠ΅ ΡΠΈ ΠΏΠΎΠΌΠΈΡΠ»ΠΈ, ΡΠ΅ Π½Π΅ΡΠΎ Π½Π΅ ΡΠ°Π·Π±ΠΈΡΠ°. ΠΠ° ΡΠ΅ΠΎΡΠΈΡ Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»Π½ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, Π·Π° Π΄Π° ΠΌΡ ΠΎΠ±ΡΡΠ½ΠΈΡΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°. ΠΠΎ ΡΠΎΠ²Π° Π΄ΠΎΡΠΈ Π½Π΅ Π΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ΡΠΎ, Π° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° Π΄ΠΎΠ±ΡΡ, ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌ Π΅Π·ΠΈΠΊ.
ΠΠ΅ Π·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ ΠΎΡΠ»Π°ΠΉΠ½ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅. ΠΠΊΠΎ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ Π»ΡΠΆΠ΅, Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΠΌΠ΅. ΠΠΎ ΡΡΠΊ Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΡ ΠΎΡ LSN, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°. LSN Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π±Π°Π·Π° ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΡΠ΅ΡΠ΅Π½ ΠΎΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈΡ ΡΠ°ΠΉΠ». Π ΡΠΎΠ²Π° Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π½Π΅ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Ρ ΠΎΡΠ½ΠΎΠ²Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ. Π Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ.
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Ρ Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΡ Ρ Π΄ΠΎΠΌΠ°. Π ΡΠ΅ Π½Π΅ ΡΡΠΈΠ³Π½Π°Ρ Π° Π΄ΠΎ Π½Π΅Π³ΠΎ. ΠΠΎ Π°ΠΊΠΎ Π½ΡΠΊΠΎΠΉ ΠΈΡΠΊΠ° Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ° Π² Go ΡΠΎΡΠ½ΠΎ ΡΠ΅Π³Π°, Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π·Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ Π»ΠΈΠΏΡΠ° Π½Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΊΡΠΌ ΠΊΠΎΡΠ°ΡΠ°. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° Π·Π° ΠΈΠ·ΡΠ΅Π³Π»ΡΠ½Π΅.
Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π½ΠΈ ΡΡΠ΅Π²ΠΎΠΆΠΈ, Π΅, ΡΠ΅ ΠΈΡΠΊΠ°ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΎΠ²Π΅ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΠΎΠΊΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ ΡΠ°ΠΌΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ. ΠΡΠΈ Π²ΡΠ΅ΠΊΠΈ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ, Π½ΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ ΠΊΠΎΠΌΠΈΡ ΠΏΠΎ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ ΡΡΠ»Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅. ΠΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° PostgreSQL 9.4-9.5. ΠΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ Π³ΠΈ, Π·Π°ΡΠΎΡΠΎ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° PostgreSQL, Π½ΠΎ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ ΠΏΠΎ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ, Π·Π° Π΄Π° ΡΠΌΠ΅ ΡΠΈΠ³ΡΡΠ½ΠΈ, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π½Π΅ Π΅ ΠΏΠΎΠ²ΡΠ΅Π΄Π΅Π½ΠΎ. Π ΠΌΠΈ ΡΠ΅ ΡΡΡΡΠ²Π°, ΡΠ΅ ΡΠΎΠ²Π° Π΅ Π΄ΠΎΡΡΠ° ΡΠ΅ΡΠΈΠΎΠ·Π΅Π½ ΡΠΈΡΠΊ.
ΠΠΌΠ°ΠΌΠ΅ 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 log Π² Π΄Π²Π° Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊΠ°, Ρ.Π΅. ΠΈΡΠΊΠ°ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ Π΅Π΄ΠΈΠ½ ΠΎΠ±Π»Π°ΠΊ ΠΈ Π΄ΡΡΠ³. ΠΠΌΠ° Π»ΠΈ Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°?
Π‘Π΅Π³Π° ΡΠΎΠ²Π° Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°, Π½ΠΎ Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΠΈΠ΄Π΅Ρ.
ΠΡΠΎΡΡΠΎ Π½Π΅ Π²ΡΡΠ²Π°ΠΌ Π½Π° Π΅Π΄ΠΈΠ½ Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ, ΠΈΡΠΊΠ°ΠΌ Π΄Π° ΠΈΠΌΠ°ΠΌ ΡΡΡΠΎΡΠΎ Π² Π΄ΡΡΠ³, Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΉ.
ΠΠ΄Π΅ΡΡΠ° Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°. Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π½ΠΈΠΊΠ°ΠΊ ΡΡΡΠ΄Π½ΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠ° Π΄Π° Π½Π΅ ΡΠ΅ ΠΈΠ·Π³ΡΠ±ΠΈ ΠΈΠ΄Π΅ΡΡΠ°, ΠΌΠΎΠ³Π° Π»ΠΈ Π΄Π° Π²ΠΈ ΠΏΠΎΠΌΠΎΠ»Ρ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² 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 Π·Π° Π΄Π΅Π»ΡΠ° Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ Π΅ Π΄ΠΎΡΡΠ° ΠΏΡΠΎΡΡ. Π’Π°ΠΌ ΠΈΠΌΠ° ΡΠΈΡΠ»ΠΎ β ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈ Π΄Π΅Π»ΡΠ° ΡΡΡΠΏΠΊΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π°ΡΠΈΡΠ°. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ Π½ΡΠ»Π°. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ backup-push, ΡΠΎΠΉ ΠΈΠ·ΡΠ΅Π³Π»Ρ ΠΏΡΠ»Π΅Π½ Π°ΡΡ ΠΈΠ². ΠΠΊΠΎ Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»Π½ΠΎ ΡΠΈΡΠ»ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 3, ΡΠΎΠ³Π°Π²Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅, ΡΠΎΠΉ ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π° Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ Π°ΡΡ ΠΈΠ²ΠΈ. Π’ΠΎΠΉ Π³Π»Π΅Π΄Π° Π΄Π° Π½Π΅ ΠΏΡΠ΅Π²ΠΈΡΠΈΡΠ΅ Π²Π΅ΡΠΈΠ³Π°ΡΠ° ΠΎΡ 3 Π΄Π΅Π»ΡΠΈ ΠΈ ΠΏΡΠ°Π²ΠΈ Π΄Π΅Π»ΡΠ°.
Π’ΠΎΠ΅ΡΡ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ WAL-G, ΡΠΎΠΉ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΏΡΠ»Π΅Π½ Π±Π΅ΠΊΡΠΏ?
ΠΠ΅, Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ²Π°ΠΌΠ΅ WAL-G ΠΈ ΡΠΎΠΉ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ Π΄Π΅Π»ΡΠ°, Π°ΠΊΠΎ Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π³ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ.
ΠΡΡΠ±ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, Π°ΠΊΠΎ Π³ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ Ρ Π½ΡΠ»Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΡΠ΅ ΡΠ΅ Π΄ΡΡΠΆΠΈ Π»ΠΈ ΠΊΠ°ΡΠΎ pg_basebackup?
ΠΠ΅, ΠΏΠ°ΠΊ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ, Π·Π°ΡΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ. Pg_basebackup ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈ ΡΠ°Ρ ΡΠ°ΡΠ° Π΄ΠΎ Π²Π°Ρ. WAL-G ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΎ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅. Π ΡΠ΅ ΠΈΠ·Π΄Π°Π΄Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π°ΠΊΠΎ Π½Π΅ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½.
Pg_basebackup ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π±Π΅Π· Π²Π°Π»ΠΎΠ²Π΅.
ΠΠ°, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ ΡΠ΅ ΡΠ΅ Π΄ΡΡΠΆΠ°Ρ ΠΏΠΎΡΡΠΈ ΠΏΠΎ ΡΡΡΠΈΡ Π½Π°ΡΠΈΠ½. Pg_basebackup ΠΊΠΎΠΏΠΈΡΠ° Π²ΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΠΈΠΌΠ°ΠΌΠ΅ Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ Π·Π°Π±ΡΠ°Π²ΠΈΡ Π΄Π° ΡΠΏΠΎΠΌΠ΅Π½Π°. ΠΠ΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ Π²ΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡ pg_basebackup. ΠΠ΅ Π·Π½Π°ΠΌ Π·Π°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ²Π°, Π½ΠΎ Π³ΠΎ ΠΈΠΌΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° CephFS. ΠΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΈΡΠΊΠ° Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° Object Storage.
ΠΠ°, Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π·Π°ΡΠΎΠ²Π° ΡΠ΅ Π·Π°Π΄Π°Π΄ΠΎΡ Π° Π²ΡΠΏΡΠΎΡ Π·Π° ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ. Π Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΠΌΠ΅.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°! ΠΠΌΠ° ΡΠ°ΠΌΠΎ Π²ΡΠΏΡΠΎΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π²ΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠ·Π²ΡΠ½ ΠΊΡΡΠΈΡΡΠ° ΡΠ΅Π³Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ Π»ΠΈ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π² ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΈΠΌΠ° Π½ΡΠΊΠ°ΠΊΡΠ² ΡΠ°ΡΡ Π² ΡΠ΅Π½ΡΡΡΠ° Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ Π½Π΅ΡΠΎ Π΄ΡΡΠ³ΠΎ?
Π ΡΠ°Π·ΠΈ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΊΠ° ΡΠΎΠ²Π° Π΅ ΡΡΡΠ΄Π΅Π½ Π²ΡΠΏΡΠΎΡ. ΠΠ°, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅, Π½ΠΎ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² Π½ΠΈΠΊΠΎΡ Π²Π΅ΡΡΠΈΡ. Π’ΠΎΠ΅ΡΡ, Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠΎΠ²Π°, Π½ΠΎ Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π½Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π½Π΅. Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π±Π΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡΠ² Π²Π΅ΡΡΠΈΡ 0.2. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΡΠ½Π°Ρ ΡΠΊΠΎΡΠΎ, Π²Π΅Π΄Π½Π°Π³Π° ΡΠΎΠΌ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ. ΠΠΎ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠ°ΠΌΠΎ Π² ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ. ΠΠΌΠ° Π΄Π²Π° Π±ΡΠ³Π° Π² ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ. ΠΡΠΎΠ±Π»Π΅ΠΌ Ρ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° WAL-E, Π½Π΅ ΡΠΌΠ΅ Π³ΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΈΠ»ΠΈ. Π Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π° Π²Π΅ΡΡΠΈΡ Π±Π΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π±ΡΠ³ Π·Π° Π΄Π΅Π»ΡΠ°-Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅. ΠΠ°ΡΠΎΠ²Π° ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²Π΅ΡΡΠΈΠΈΡΠ΅ Π·Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅. ΠΠ΅Π΄Π½Π°Π³Π° ΡΠΎΠΌ Π½ΡΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ Π² ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ Google Cloud, S3-ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ Π½Π΅ΡΠ° ΠΈ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄Π°. ΠΠΎΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ, WAL-G Π½Π΅ Π΅ Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠ°ΡΠΎ Π±Π°ΡΠΌΠ°Π½ΠΈΡΠ΅? Π‘ΠΌΡΡΠ°ΡΠ΅ Π»ΠΈ Π΄Π° ΡΠ΅ Π΄Π²ΠΈΠΆΠΈΡΠ΅ Π² ΡΠ°Π·ΠΈ ΠΏΠΎΡΠΎΠΊΠ°?
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ ΡΠ΅ ΠΎΡΠ΄Π°Π»Π΅ΡΠΈΡ ΠΌΠ΅ ΠΎΡ ΡΠ°Π·ΠΈ ΠΏΠΎΡΠΎΠΊΠ°. WAL-G ΠΆΠΈΠ²Π΅Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ Ρ ΠΎΡΡ, Π½Π° Ρ ΠΎΡΡΠ° Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΠΈ Π½Π° Π²ΡΠΈΡΠΊΠΈ Ρ ΠΎΡΡΠΎΠ²Π΅ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°. ΠΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΡ ΠΌΠ΅ Π² Π½ΡΠΊΠΎΠ»ΠΊΠΎ Ρ ΠΈΠ»ΡΠ΄ΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΈΠΌΠ°Ρ ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΈ Π½Π° Π±Π°ΡΠΌΠ°Π½ΠΈ. Π Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π΅ΡΠΎ ΡΠ΅ ΡΠ°Π·ΠΏΠ°Π΄Π½Π΅ Π² ΡΡΡ , ΡΠΎΠ²Π° Π΅ Π³ΠΎΠ»ΡΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΊΠΎΠΈ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ ΡΠ΅Π³Π° Π½ΡΠΌΠ°Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΡ. ΠΠ΅ ΡΠΌΡΡΠ°ΠΌ Π΄Π° ΡΠ°Π·Π²ΠΈΠ²Π°ΠΌ WAL-G Π² ΠΏΠΎΡΠΎΠΊΠ° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ Ρ Π°ΡΠ΄ΡΠ΅Ρ Π·Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΠΊΠΎ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° ΠΈΡΠΊΠ° Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΡΡΠΊ, Π½ΡΠΌΠ°ΠΌ Π½ΠΈΡΠΎ ΠΏΡΠΎΡΠΈΠ².
ΠΠΌΠ°ΠΌΠ΅ Π΅ΠΊΠΈΠΏΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ. Π ΡΠ΅ ΡΡΠ²ΡΡΠ²Π°ΠΌΠ΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π΄ΠΎΠ±ΡΠ΅, ΡΠ΅ Π½Π΅ ΡΠΌΠ΅ Π½ΠΈΠ΅, ΡΠ΅ ΠΈΠΌΠ° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ Ρ ΠΎΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΡΡΠ°Π²ΡΡ Π½Π°ΡΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ°ΠΌ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΡΠ° Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎ ΠΌΡΡΡΠΎ. Π’Π°ΠΌ ΠΏΡΠ°Π²ΡΡ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Ρ ΠΈΡΡΠΈ ΠΊΠΎΠ΄ΠΎΠ²Π΅, Π·Π° Π΄Π° ΠΈΠ·Π΄ΡΡΠΆΠ°Ρ Π½Π° Π·Π°Π³ΡΠ±Π°ΡΠ° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π±ΡΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. Π’Π΅ ΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΈ Π·Π° ΡΠ΅ΡΡΠΎΡΠ½Π°ΡΠ° Π»Π΅Π½ΡΠ° Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ°. ΠΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ Π±Π°ΡΠΌΠ°Π½, ΠΌΠΎΠΆΠ΅ ΠΈΠ·Π²Π΅Π΄Π½ΡΠΆ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅, ΡΠ΅ ΠΌΠ°Π»ΠΊΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊ ΡΠ° ΡΠ΅ ΡΡΠ±ΡΠ°Π»ΠΈ Π½Π° ΡΡΡΠΈΡ ΡΡΡΠ²ΡΡ. ΠΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΡΡΡΠΎ Π² Π½Π΅Π³ΠΎ, Π½ΠΎ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΠ²Π° ΠΏΡΠΈΡΠΈΠ½Π° Π²ΡΠΈΡΠΊΠΎ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ±ΠΈΡΠ° Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ°. ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠΊΠ°ΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΡΠΎ. Π’Π°ΠΌ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΡΠ΅ΠΆΠΈ, ΠΈΠΌΠ° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΈ ΡΠ΄ΡΠ°, Π½ΠΎ ΡΡΠΊ Π½ΡΠΌΠ° Π΄ΠΈΡΠΊΠΎΠ²Π΅. Π Π½ΠΈΠ΅ ΡΠ΅ ΡΠΌΠΎΡΠΈΡ ΠΌΠ΅ ΠΎΡ ΡΠ°Π·ΠΈ Π½ΡΠΆΠ΄Π° Π΄Π° ΠΆΠΎΠ½Π³Π»ΠΈΡΠ°ΠΌΠ΅ Ρ Π½Π΅ΡΠΎ ΠΈ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ ΠΌΠ΅ ΠΊΡΠΌ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ Π΅ ΠΎΡΠ΄Π΅Π»Π½Π° ΡΡΠ»ΡΠ³Π°, Π·Π° ΠΊΠΎΡΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ Ρ ΠΎΡΠ°.
PS ΠΠ·Π»Π΅Π·Π΅ Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ
Video:
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com