αααα»αααααΎα±ααα’αααα’αΆαααααα·α αΆαα·ααααααΆαααΆαααααΈααΎαααααΆα 2019 ααα Andrey Borodin "ααΆαααααα»ααα»αααΆαα½α WAL-G α ααΎααΆαα’αααΈαα αααα»αααααΆα 2019?"
αα½ααααΈβα’αααβααΆααα’ααααααΆ! αααα»αααααα Andrey Borodin α αααα»αααΆα’αααα’αα·αααααααα Yandex α αααα»αααΆαα αΆααα’αΆααααααααΎ PostgreSQL ααΆααααΈααααΆα 2016 αααααΆααααΈαααα»αααΆααα·ααΆαααΆαα½αα’αααα’αα·αααααα α αΎααα½αααααΆααα·ααΆαααΆα’αααΈααααααααΆαααΊααΆαααα - α’αααααααΌααααααα αΎααααααΎαααΆ α αΎαα’αααΈαααΉαααααΎαααΆαα α αΎαα αΆααααΆααααΈαααααααααααα»ααα·αα’αΆα ααααααααΆααα - αααα»αααααααααααααααααααααααααααΆα
ααΏααα½αααααααα»ααααα»αααααΎααΆαααΊααααααααααααα»ααα»αα
ααα»ααααααααααα αααΆαααΆαααααααα·αααααΉααααα·ααΆαα’αααΈα’αααΈαααααΎαααΆαααααΎααα»ααααααα ααα»αααααααα·ααΆαα’αααΈαααααααααΆααΆαααα αα·αα’αααΈαααααΆα ααΎα’αααααα»ααααΆαααΆααααΆαααΎααααΆαααΆααααααααααα»αα’αααΈ WAL-G αα½α α αΎα? ααΆααα’αααααα»ααααα½αα ααα½ααα·αααΆαααΎααα ααααααααα»αααΉαα αΆααααααΎαααΆαα½αααΏαααΆαααααααα»αα
ααααα·αααΎααααΆαααααα’αααααΆαα ααααα PostgreSQL α αΎααααα»ααα·αααΆα’ααααααααααααΆααΆαααΈαααΈααΆαα½ααα½ααα α αΎαααααΆααααααα·αααΆααααΆαααααααααααααα»ααα»ααα α‘αΎααα αααα’αααααααΌαααα½αααΆααααααααααα»α S3 α¬ααα ααααα»ααααααααΌαααααΆααΉα Google Cloud α
α§ααΆα ααα α’αααα’αΆα ααααααααααΎα α αΎααααααααΌαααααααααααΆααααααΆαα Yandex Object Storage αααααΆ S3 αααααααΌαααααΆα
αααααΆαααααααααΎα Bucket α ααΆααααΆααααααΆαα»ααααααΆααααααααΆαααα»αααααα
αααααΎαα’αααααααΎααααΆααααααΆααααα
αααααΎαααα αΌαααααΎαααααΆααα’αααααααΎααααΆααααααΆα aws-s3-keyα
ααΆαααααΆαα ααααααΆααααααααΆαα α»αααααααααα»ααα WAL-G α
ααΎααΆαα ααααααΆααα»αααααααΎααα»αααΈααΆαα ααααααΆααααΆαααΌα ααααα ? αααα»αβα αααΎαβααβααααΌαβααΆαβααβααααΎβα²ααβααααααβαα»αβαααβαααααα α αΎαααααα·αααΎαα·αααΆαααα α»ααα αααα»ααααααααααΆαααααααααΆαααααααααΆααα§ααΆα ααααα½ααααααααΆαααααααα»αα ααααααΆαααΆα αααααΆααΆαα ααααααΆαααΈαααα·α ααα·ααΆα α αΎααααααΆααααααΆ ααΆαααααΆαααα ααΎαααΆαααααΎαααααααααααα α»ααα½αα ααα½α αααααΆααααααΆαα αααα»ααα»αααΆααα·αααααΆαα ααα»ααααααΎααα·αααΆααααΆαα ααααααΆαααΆαα ααααααΆααα α‘αΎαααα αααααα»αααΆααααααα·α ααα·ααΆααα»αααααα αα·αααΆαααα α»ααααααΎαααααΆαααα αααα»αααΆαα αααααΊ ααα α»αααααΌαααΆααααααααα αααααααααααααΎαααΆαα
αα ααααααα’αααααΆαααΆααα WAL-G α’αααα’αΆα ααααΎαααΆαααΆααααααααΆ "αααααΈααααα»ααα»α" ααΆαααααααααααααΆααα’αααααα·ααααΆαα α αΎαααΆααΉαααααΆαααα Object Storage α αΎαααααΆααα’αααααΆααΎα’αααααΆαααΆαααααα»ααα»αα’αααΈααααα ααΆααααΌα α’ααααα·ααα½αααΆαααΆαααααα»ααα»αααα α ααα»α ααααααΆααααααΊααΎααααΈαααα αΆαααΆα’αααΈααααααααΆαααΊααΆααααααΆααα αααααΊααΆααΆααααααααΆαα»αααΌααααααα½αααα’αααααα·ααααΆα αα·αααααα·ααααα·ααΆααααααααΆααα
αααααΆααααΈααα α’αααα’αΆα ααααΎααΆαααααα»ααα»αααααΌαααααα’αααα αα·ααΆαααΆ "backup-push" αα αααα»α WAL-G α αΎααααααΆαααα αααα»α WAL-G ααΌαααΈααΆαα pgdata αα cluster ααααα’αααα α αΎαααΆαα αααΎαααααααΆ PostgreSQL ααΉαααααΆααα’αααααΆ ααααα·αααΎα’ααααα·αααΆααααΆαααααααααααααα»ααα»ααα α’αααααααΌαααΎα ββ"ααααααααααΆα"α
αααααΆααααααΆα’αααααααΌαα
αΌααα
ααΆααααΆαααααα α αΎαααΎα βarchive_mode=onβ α αΎααααααα βarchive_commandβ αααααΆααΆααααααααΆαααα
αααα»α WAL-G αααααα ααα»αααααααααΆααα ααα»αααα½αα
ααα½α ααα»ααααααααααααΎααααααΈααααΆαααΎαααααΆαααααα α αΎααα»αααΆαα»ααα·α WAL-Gα ααΌααα»αααααΎααααααα ααααΎαα»αααΆααααααΆααα
αααα»α WAL-Gα ααααα·αααΎα’αααααΆααα’αααΈαα½α ααΌαααααααα
ααΎαααααΎ WAL-G ααΆα ααααααΎααααΈαααααΎαα ααααααααα’αΆα ααααΆαααααααα αααα»αααΆααααααααααααΌαααααΆααα·αααααα Yandex α
α αΎαααΆααααααΆααΆααααΌαααΆαααααααΎαα αααα»α topology αα 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 αα½αααααΆαααααααααΆααααααΌα balalaika αααα
WAL-G ααΆα 4 ααΆααααααααΆα αααα
WAL-PUSH - αα»ααααα»ααααααααΆαα
WAL-FETCH - ααα½αααΆαααΆαα
BACKUP-PUSH - ααααΎααΆαααααα»ααα»αα
BACKUP-FETCH - ααα½αααΆαααΆαααααα»ααα»αααΈααααααααααααα»ααα»αα
ααΆααα·α WAL-G ααααΆαααΆααααααααααααΆαααααα»ααα»αααΆαααααααα αααααΊααΆαα α»ααααααΈ αα·αααΆααα»ααααααααααΆ αα·αααΆαααααα»ααα»ααααα»ααααααααα·ααααααααααΌαααΆααα ααααααα
αα»αααΆαααααΆαααα½ααααααΆααααΎαααΊαα»αααΆαααααΆααααααΎαα αααΆααα ααααααΈααααα
α αααΆααα αααα Delta ααΆααααααΆααΎααα·ααααααΎαααΆαααααα»ααα»αααααααααα αααααααΆααααΌααα ααα»ααααααΆαααααααααααααΆαααααΆααααααΌαααα―αααΆααααααΆαααααΆααααααΌααα αααα»αα αααααααα»αααααα ααΆα αΆααααΈααΌα ααΆαα»αααΆααααααΊαααααααα ααΉααααααααΆααααα»αααΆααααααααααααααααΎ WAL α ααα»ααααβααΎαβα’αΆα βααΆααβααΆαβααααα»αβαα»αβααααβαα½αβαααα WAL ααααβααααΆα ααΌα ααααα αΎα αα ααααααααΎαααΆαααΆαααααα»ααα»αααΆααΌαααααΆααααααΆαααααΎα‘αΎααα αααααα αα ααΆαααααα»ααα»ααααααααΈααααααΆαααααΆαααααα α αΎααα αααααααα ααααα·αααΎααααΆααα αααααΎαααααΌαααααΎααΆαααααα»ααα»α 4 delta αα·α 10 αααααα WAL α ααΆααΉαα αααΆααααααΌα ααααΆ αααααααΆαααααα»ααα»αααΈααααααα·αααααααααΆα
LSN-based deltas - αααααΆααααααΆαα ααααααααΎαααΆαααααα»ααα»α ααΎαααΉαααααΌαααΆααααα αΌαααααΆααΌααααααααΈαα½αα α αΎααα·αα·αααααΎα LSN ααααααΆααΆαα½αααΉα LSN ααααΆαααααα»ααα»αααΈαα»α ααΎααααΈαααααΆααΆααΆαααααΆααααααΌαα αααααααΆαα½ααααα’αΆα αααα»ααα·αααααααααααΆαααααΆααααααΌααα½αααααΆαααααααΆααα αααα»αααΆαααααα»ααα»ααααααααΈααααα
ααΌα ααααααα»αααΆααα·ααΆα ααΆαααα α·ααααα»αααΆααααΆα αααΎαααααΌαααΆαααα α·ααααα»αααΆααα ααααααΆαααααααααΆα
ααα»αααα API ααααααΆααα αααα»α PostgreSQL ααΊααααα PostgreSQL αααααΆαα»αα―αααΆα WAL αα½α α αΎααα αααααααΆαααΆααααΎαα»αα―αααΆα WAL αα½αα ααα»αααααα ααααααααΌαααααΆααα·ααααααααααΎαα»αα―αααΆα WAL αα½ααααααααΎααΆααααααααΆ "WAL-FETCH" ααΎαα α ααΆααααααααΆ "WAL-PREFETCH" ααααααα αα―αααΆα 8 αααααΆααααΎααααΈααΆααααα·ααααααααΈααααΆααααααα»ααααααααΆα
α αΎααα ααααααααΌαααααΆααα·αααααααα»αα±ααααΎααααααΆαα»αα―αααΆααα½α ααΎααα·αα·αααααΎα archive_status α αΎαααΎαααΆααΎααΆαα―αααΆα WAL αααααααααααα¬ααα α αΎαααΎααααααα»αααααΆααΆαααΆααα WAL ααααααααΆα ααααααααααΌαααΆαααα½αααΆαααααα·αααααΆααα½αα±ααααααααααΆαα αα·αααΆαααααααα ααααΆααααΆαα αααΎααα αααα»αα ααα½α WALs ααααα·αααΆααααααΆαα»αα α’ααααααααΎαααααααααααααα»ααα»αααΆα αααΎαααΏααΆ αααααΊααΆααααααααααααα»ααααααΆα ααΈαααααααΎαααΉαααα’ααααΎα ααααααΉαααααααΎαα’αααΈαααααααΆααααα»αααααΌαααααα·ααααααΆ PostgreSQL API α PostgreSQL αα·αααΆααΆααΌαααααααΆααααα archive_status folder αααααΆαααα½αααΎααα αα·ααα·αααΆααΆααΌα semantics ααααααΆααααααααΆααααααααα½ααααααΆααα―αααΆα WAL αα ααΈαααα αααΆαβααΆβααβααα ααΎαβαααα»αβαα·ααααΆβααΌαβααααα ααΎαβααΎαβααΆβααΆβααΌα αααα α αΎαβααΎαβαααα»αβααααΆααΆαβααΆαβααβααΆβα α αΎαααΎαααααααααααα·ααα ααα PostgreSQL αααα»αα’αα·αααα ααααα·αααΎααααΆααααααααΆααααααααΌαααΆαααΌα ααΎαααΉααααααααΎααΆα
αα αααα»αααααααααααα·αα»αααααααααΆ ααΈαααα WAL αααααΆαααΌαααααΆαααΎ LSN αααααΌαα±ααα’αΆαα―αααΆαα αααααααΆαα½αααααααααααΆαα αααα»αααααααααα―αααΆαααΆαααααΆααααααΌαα αΆααααΆααααΈααΆαααααα»ααα»αααΈαα»αααα ααΎαβαααβαα βααΆαα½αβαααβα’ααβααααααβαα·αβαα½αβααααΆαα α αΎααα ααΈαααα ααααΎαααΆαααΆααααααΆαααααα·ααααΆαααΆααΎαααΆα WAL deltas α
αααααΆααααααΆ ααΆααααααααααΎααααααΆαα»α WAL αα ααΎ Master ααΎααα·αααααΉααααααα αΆααααΆ α’αα·αααααΈαααΆ αα·αααααΎααΆαα αααααΆαααα»ααααααα ααα»ααααααΎαααα’αΆαααΆαααα»αααααααα½ααααααα ααΎααα·ααΆααα·αα’αΆααααααααααΆαα αααα»αααΆα ααΎααααααΆαααα»αααΆαα½ααααααΆαααααΆααααααΌα αα·ααααααΌαα―αααΆα delta
α―αααΆα delta αα·αααααΆα’αααΈαα½αααΆααααΆααααα―αααΆα WAL αα·αααααΆα’αααΈααααααΆαα’αααΈαααα»ααααααααΌαααΆαααααΆααααααΌααα αααα»ααα½ααα WAL αααα α αΎααααααΆααααα―αααΆα delta ααΆαααααααααααΌαααΆααα»ααααα»ααααααααΆααααααα
αα ααΈαααααΎαααααααα»αααΉαααΆααα·ααααααΆααΎαααΆαααααααααα’αααΈαααααααααΆααααΆαααΏα ααα»ααααααΎααα·αα’αΆα α’αΆααααααααα·ααΆααααααααααααααΆααααααΆααααααααΆααΆααα ααΈααααααα αααα»ααααααααΆααααΆαααα½α ααΎαα’αΆα αα½ααααααααΉαααΆααααα αααααααααααααΆ WAL αα»α αααααΎααα·αααΆαα’αααΈααααΆααααΆαα½ααα α‘αΎααα αααααΆααα ααΆαα’αΆααααΆαααΆα‘ααααΆαα±ααααΎααα·ααΆαα’ααΆααααααα·αααΆααααΆαα’ααΈαααΆαα
ααΆαααααα ααΎαααααΌαααΆαααααααααααα·αα’αΆα αααααΆααα αααα»αα―αααΆα _delta_partial α ααΆαααααα αα ααααααααΎααααααααα α’ααΈαααΆααα·α ααΎαααΉααα·αααααΆααααααααααααααααααΆ WAL αα ααΆαα½α αααααΆααααααΎαααΉααααααΆ αα·ααααααΈα’αααΈαααααΆαααααΆααααααΌααα αααα»αααΆα
ααααα·αααΎαα αααα»ααααααααα·ααΆαααααααααΆααα·ααΆαααΆαα’ααααααααααΎαααΆααααΆαα αα ααΆααα ααα»α αα½ααααααΎααα·ααααααΈα’αααΈααααααα»αααΎαα‘αΎαααα ααΌα ααααα αΎααααα»αα’αα‘α»ααααααααΆαααααα»ααα»ααααααΆαα ααΎαααΉαααααΌααααααα±ααα’αΆαα αααααααΆααααΌαααααααα ααΌα αααααΎαααΆαααααΎααΆαα½α LSN ααααααΆα - ααΈαααααααααΆαααΌαααααΆαα
ααΆαααααα ααΆααααα»αααααΆααα’ααααααααΎαααΆαααΆαα±ααααΆαααΆααα·αααΆ ααΎαααΆαααΎααααααααΎαα
αα αααααΆααααα·ααΆα WAL-G α ααΆαβαααα»αβααΉαβα’ααβααΆαβα’αααβααΆβααααΎβαα ααβααΎβα’αααβααΆβα
ααβαααααβααααΎβααΆβααΆβααΆααΆαααα (αααααααΆαααααααΆαααααΎαα
αα
α»ααααααααΆα
ααΆαααααα ααα αΌαααααααΆαααΆααα’ααααΎααα αααα»αααααΆαααΆααα α α α αααΆαααΆαααααααΎααααααΆααα»α αα·ααααααΆαα»αα―αααΆαααΈααααα α αΎαααΆαα ααααααααααααΎαα αααΆααα ααααααααα»ααα»αααααΌαααααα½αααΆαα―αααΆα delta αααα»αα’αα‘α»αααααααααΆαααααααΆαααααΆαααΆαααααα»ααα»αα αααα»αααααΈααα ααααααααααααααααααα·ααΉαααααΌαααααααααΆαα»αα α αΎααααα αα ααΈααααααα·αααααααααααα·ααΆααααΌαααααΉαααααααααααααα α αΎαααΆααααααααΆααααΈαααααα»ααααα α―αααΆαα ααααα’αΆα αααααΆαα»αααΆαααααα»ααα»α delta ααααααα
αα ααΎααααΆα ααα’αααΈααααααααΆαααΎααα ααΆααααααΆαα αααβααΆβααΆαβααΆαβααβααΈβαααα»αβαα·αβαα½αβααααβααΎαα ααΎαααΆα LSN-based ααααααααΎαα‘αΎααααα»ααα½αααααα α αΎαααΎαααΎαααΆααΆαααααα»ααα»ααααααααΈαααααααααΆαααΌαααααΆαααΎ LSN αααα»αααααΎαααΆαααΈααααααΈααααΉααααααααααααΆαααααΉαα αααααΊααΆααααα»ααα αααα»αα ααα½αααααΌααααα½αααααΆαα WAL-delta ααΆαααΆααα½αααΎααααα αα 20 ααΆααΈαα ααΈαααα αααααΊααΆααΆααααααΏααα½αα±ααααααααααΆαα ααα»αααααα αααααΆαα½αααααΆαααααΆαααΆαααααΆααααααΌαααΆααααααααΆαααα ααΎαααααΆαα
αααααΆαααΎαααΆαααααααΆαα’αααΈαααα»αααΆαααααΆαααααΆααααααΌα αα·ααα αααααΆαα αααα»ααααααααα·ααΆαααααααααΌαααααΆααα·αααααα ααΎαααΆααα ααααααααα α αΎαααΆααααααα α α·ααααααα αΌααα»αααΆα - ααααααααααα PostgreSQL αααα α ααΆ "pg_prefaulter"
αααααΆααααααΆαα ααααααααΌαααααΆααααααααααα·ααααα·ααΆααααααααΆααααΆα ααΆααααΆαα WAL-G α±αααα ααα―αααΆα WAL αααααΆααα ααΎααααα’αααΈαα·αααααααααααΆααΆααααααΎαααΆαααααΆα WAL ααΉαα αΌαααααΎαααα»ααααα’ααΆααααααααΈ α αΎαα αΆααααααΎαααααα·ααααα·ααΆαα’αΆααα ααΎαααα»αααΆαααααα αααααααΌαααΆαααααΎααΎααααΈαααααΎαααααα·αααααΆαααα§ααααααααααΆ SSD α αααααΆααααα·α WAL ααΉααα αααααααααααααααΌαααααΆααααααΌαα αααααααααααα·ααα ααΎααΆα α αΎααα·ααα αααα»αααααΆαααααααΆαααααααααα α αΎαααΆααααΉααααα αΆααααα»ααααααααΆαααααΆαααααΆαααααααααααααααα ααα»αααααα ααααααααααΊ WAL-G αααααΉαααΆαααα»αααα»ααααΆαααααααΆαααα WAL ααΆααα»αααα ααΎαααΉαααααΌαααΆααααααααΆααααΆαα α αΎααα αααααΆαα½αααααΆαααα αΆααααααΎαααααΎα±αααα½αααΆα‘αΎααααα α α αΆααααααΎαααΆαα αΌαααααΎααΆαα αααΎα ααΌα αααααα½αααΆααααΌαααΆαααααα·ααααα·ααααααααΆα ααΆααααΎαααΆαααΆααααΆαααα’αα ααΎααααΆα SSD ααα»ααααααΆα’αα»αα ααΆαα·αααΆαα·αα’αΆα α’αα»ααααααΆααααααΆααααααΆαααααΉαααααα ααΈαααααααΎαααααΆααααααααααααααααΆαα½αααΆααΆαα½αααΉαααΆαααααα»αααααααΎαα
αααααΊααΆα’αααΈαααααΆααα αααα»αααΌαα₯α‘αΌααααα
ααΆααααααααα·ααααααααΎαα ααααααααα
ααΌαααΆαααααααα αΆαααΆ WAL-delta α αααΆααααααααΈααΆααα α αΎααααααΊααΆααΆαα’αΆαααΆαααααΆααααααΌααααααΆαααΎαα‘αΎααα αααα»αααΌαααααΆααα·αααααααααα»αα’αα‘α»ααααααααα ααΎαα’αΆα ααααΎ WAL-delta αα·αααααΉααααα ααααααααα»ααααααα αααααααΆαααααΆααααααααα»αααααααΆαααααα αΎαα ααΎαα’αΆα α’αΆα WAL-delta αααααΆααααΆααΈ αααααααΆααΆαααααααααα αααα»ααααααααα½αααΆααΈ ααΎαα’αΆα αααααααΆααααΆαααααΆααααααΌααααααΆαααΎαα‘αΎαα ααααα αααααα α αΎααααα’αΆα ααααΌαααΆαααα α ααΆ "WAL-delta ααααΆαα" α
α ααα»α αααααΊααΆαα ααααααααΎαααααΆαα αααααα‘αΎααα·α ααΎαααΆαααααααα ααα½αααΏααααααΎαααααΌαααααα‘αΎαααΆαααααααααΆααα αααααΊααα·ααΆα WAL ααα PostgreSQL αα·ααα½αααααααΌαααΆαααΆααααααα αααααααΆααααΌαααΆααααααααΆααααααΆααα
ααα»ααααααααα·ααααααΆααα’ααααα ααααα·αααΎααΎαααΉαααΆαααα»ααα½αα ααα½αααΉαααααΌαααΆαααααΆααααααΌααα ααΆα ααα»α ααααΆαααΆααααΆααααααΆαααααα»ααα»αααα ααΎααα·αα’αΆα ααααΆααααααΌαααΆααΆαααΈα’ααΈαααΆαααΆαααα αααβααΊβα₯α‘αΌαβαααβααΎαβααΆαβααΆαβαααααΎαβααααα·αααααΆαβα―αααΆαβαααβα―αααΆαβααβααΆαβαααααΌαβαααα WAL-delta α αααααΆααααααΆ ααααα·αααΎααΆα§ααΆα ααα αα ααααα’ααααΆαααΆααΆααα½αααααΌαααΆααα»αααΆαααααα»α α¬α―αααΆααα½αα ααα½αααααΌαααΆααα»αααΆαααααα»αααΈααΆααΆα ααααα αααααα delta αα·ααα»ααα·ααα ααααα αααα αα·ααααααα αα pg_basebackup ααααΌαααΆαααααΆαα‘αΎααα·α ααΎαααΉααα·ααααααΎααα·αααααααααααα
ααΎαα αααααααΈααα αα αααα·ααααΆααααααααααα·ααααααα αααααΊααααα·αααΎαααααααααααα―αααΆαααααΆααααααΌααα ααααα αααα ααα»ααααααΉαααααΌαααΆααααααααΆααααΎαα αααααα»α αααααΆαααααα αααααααΆααα α ααα»α αα½ααα αααααααα ααααα·α ααΎααα·αα αΆαααΆα ααααααααααααΈαααΈααααΌαααααααααα ααΆαααα
ααα»ααααααααα ααααΆαααα·αααααααα»αααααΌαααΆααα·ααΆααααΆαααΆαααααααα αααα»ααααα½αααΎα ααα»ααααααΆαα·αααΆααααΆααααααΌααα α‘αΎαα
ααΎαα αααααααΎααα»αααΆααα½αααααααααααα αααα»α WAL-Gα ααΎαα ααααααΎα±ααααΆα’αΆα αααααΈαααΆα ααΈαααααααΎαααααΌαααΆααααααΌαααααΆααα·ααααααααααααααααΆ α αΎαα ααααΆαααααααΆαααΆααααααΆααααααααααααΆαααααα»ααα»αααΆαααααααΌα ααααΆα ααα»αααααααα αΆααΊααΆ MySQL APIs ααΆαααΆααα»αααααΆααααΆααα αα αααα»α 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 ααΆααΎααα ααΎ archive-status ααΎαα―αααΆααααααΆααααα αα αα·ααααααΆαα»ααα½αααΆ ααααααααααααααααααααααααΉααα·αααΉαααΆααΆαα―αααΆα 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 α₯α‘αΌαααα ααΌαααααααααΆααααααααΆααααααΆααααα α»ααααααααα ααα ααα αααα»ααα»αα αααα»ααα·αααΆααΉααα·αα·αααααΎαααααΎααΆαα
α αΎαααΏαααααΆαααααααααΎα²ααααΎααααα½αααΆαααααααααΊααΆ ααΎαα ααααΆαααΆαααααΎααααααα½ααααα αΌα docker α±ααααΆαα αααΎαααΆααααα’αΆα ααααΎαα ααΆα ααααα·αα·αααααΎαααααΆαααΆαααααααα α₯α‘αΌαααα ααΎαααααΆααααααΆαααααααααΆααΈαααΌααΌαααααΆαααα»αααααα αα ααΆαα commit ααα»ααααααΎαα αααα·αα·αααααΎα commit-by-commit ααΌααα»αααΆαααΆααα’αααααααΎαααΆααααα ααΆαα·ααα ααΆα§ααΆα ααα ααΎαααΉαααΆαααΆαααΆαααααααααααααΆαααααααΆαα PostgreSQL 9.4-9.5 α ααΎαααΆαααααα½ααα ααΈααααααα ααααααΆαααα PostgreSQL ααα»ααααααΎααα·ααα·αα·αααααΎαααΆαααααααααΆα α·αααααα commit ααΎααααΈααααΆααααΆα’αααΈαααΆααα’αααα·αααΌα α α αΎαααΆα αΆααααΌα ααΆαααα»αααΆ αααααΊααΆα αΆαα·ααααααααααααααΆαα
ααΎαααΆα WAL-G αααααααΎαααΆαααΎα αααααααΆααα½αααΆαααα αααα»αααΆααααααααααααΌαααααΆααα·αααααα Yandex α α αΎαααΆααααα»ααα»ααα·ααααααααΆαααα terabytes ααΆαααααΆααααααα
ααΎαααΆα TODO ααΆα αααΎααα αααα»αααΌαααααααΎαα ααααα·αααΎα’αααα αααααααα·ααΈ αα ααΎααααα»ααααα αΆαααΆαααααΎαα»αααΆα ααΎααααα»ααααα αΆααααα½αα
αααα½α
ααΆααααΈαα½ααααΈ! ααΌαα’ααα»α! ααΆαααααΆααααααααα»αααΊααΆ ααααα·αααΎα’ααααααα»αααααΎ WAL-delta α’ααααααα ααααΆααΉαααα’ααααααΆααααΎααΆααααααααααααααα α αΎαβααααα·αβααΎβααΌα ααααβααΎβα’αααβααΆαβαααβααΆαβααααΎβααβαααβ? α’αααααΆααααα αΆαααααΆα αααααααααααα’αΆαα ααΎβααΆβααΆααβααβαααααβααα’αΆαβααα»ααααΆβααΎ FPW ααααΌαβααΆαβαα·α?
ααΆααααααααααααααααααΌαααΆαααΎααααααΆαααα½αααΎα ααΎααα·αααΆαααααΆααΆααα·αααΆααα αααααΊαααα»ααααα»αααΆαααΆα’αααα’αα·αααααα αα·αααΆαααααΆααΆααα·αααΆααα α’αααααααααααααααααααααααααΆαααααΆαααααΆααααα ααααΆααΆαααααΆαααααΆααααα αΆαααα ααα»ααααααΎαααααΌαααΆα FPW α ααααΎαααααααΆαααααΆααααΆαααα·αααΆαααααααααΎαα·αααΌα ααααααααΆαα·αα’αΆα αα αα½α αααααα»αααΆαααααΆαααααα»ααα»αααΈααΆαα ααααα
α’ααα»ααααααΆαααααΆαααΆααα! αααα»αααΆααααα½αααΈαα αααα½αααΈαα½αααΊ ααΎααΉαααΆαα’αααΈααΎαα‘αΎαα ααααααΆααΆααα»?
ααΎααααα»ααααα αΆαααΆαααααΎαα»αααΆαα ααΌαααααΆααα·ααααααααααααΎαααααα ααΎααΆα SSD αα·α NMVE α αΎαααΎααα·αααΆαα·αααααΌαααΆααα»αααΆααααααα αααα»ααα·αααΆααααααααααα½ααα½α ααΆαααααα»αααΆαα αααΆααααααααΆααααααααααα ααααααααΎααααΈααααΎααΆα±ααααΆαααα’αααααα αααα»αααααΌααα·αααα’ααααΈα α·αααααΆααΎαααΆααααααΏααααα ααΆαβααα»αααβαααβααΆαβααΆαααα ααα»ααααβααΆαβααΆααααβααΆβαααα»αβααααβαααβααβααΉαβαα½αααα αα½αβααβααΆαβααααΎβααΆαβαααα α ααα»ααααβαα½αβααβαα·αβααααΎβααΆαβααααΎβαα»αβααΆαβα (αααααααααα»ααααα 0.2.13)
α αΎααααα½αααΈααΈαα α’αααααΆααα·ααΆααα ααΎαααααΌαααΆ WAL-G ααααααααΆααΆααααΎαααΆαααα―α α αΎααα·αααααΌαααΆααα»αααα αααα»αααααΎαααααααα»ααααα½αα―αα α ααα»α’αααΈααΆαααΆαα½ααααα·ααα½αααααΎ?
ααΎαα ααα±ααααΆααΆαααααααααΆααααααΌα ααΆα‘αΆα‘αΆααΆα αααααΆααααααΆα’ααααα·αααααΌαααΆαα’αααΈααΆααα’αα ααΎαααααα balalaika ααα»αααααα ααΎαα ααα±ααααααααααααΆαααΆαααΆααααα ααααα·αααΎα’αααααΆααα»αααΆααααα’αααααααΌαααααΎαα αααα»αααααααΈα αααααΆααααααααααΆααααΎα - ααΎαααΉαααααΎααΆαα αααα»α 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 α ααα»ααααβαα αΌαβααβαααβαααβααα αααα»αβαα·αβααΆαβαααα·αβααα’βα’αααΈβααααβαααααααΆαβαααα αΆβαααβααα ααΆααααααααααα»αααααα»αα½αα ααα½ααααααΆααααααΆαα α»ααααααΈααΆαααααα»ααα»ααα»αααααΆα α’ααααα»αα±αααα½αααααΆααααααΈααααα» α αΎααα½ααααααααααααα ααΈαααα WAL-G ααΆαααΆααααααααΆα α αααααααα αΆααα - ααΆααααααααα½αα ααα½ααα ααΈαααααααα·ααααααΆα―αααΆα αααα»ααα·αα’αΆα ααααΆαααΆα‘αΎααα·αααΆα αααααΆααααααΆααΆαααααα»ααα»ααα·αααααΌαααΆαααααΆαα‘αΎααα·αααα αααααΆααΆααα·α α’αααααΆαα ααααααααααΆαααααΆαα‘αΎααα·αααΆαααααα»α ααα»ααααααΆαααααα±ααα’αααααΌαααααΆαααΆααααααΆαααα α»α αααααΆαααααα»αααα»ααα·ααααααααΆααααα‘ααααααααΆαα ααααααα½αα ααα½ααααααΆαα·ααααααααααα
αααααΊααΆααΏααααααΎαα‘αΎααα αααα»α Mail cloudα
ααΎβα’αΆα βαααααΎαβααΆαβααααβααΌα...
ααΆααααΌαααΆαααααααΌαααΆαααααααααΆαα ...
ααααα·αααΎααΆαααΆαααα·αα‘αΎααα·α ααααααα»ααα·αααΆααΎαααΉααα·αααααααΆαα½ααα»αααααΆαααααααααΆααΆαααααααα α αΎααααα·ααΈααααΆααΆαααααααα αα·ααααααΈα’αααΈααααααααΆαααΆαααΈααΎαα αααα ααααΆααΆααΉαααΆααααααααΆααααααΆααααΎααα ααΎααΆααααααΆααααΈα αΎαααΉααα·αααααΎα±ααααΌα ααΆααααααΆαααααααααΆααααααΎαααΉαααΆααααααΈαααΆααααα»αααααααααα αααααΆαααα₯α‘αΌαααα ααΎααααααΆααααΆααααααΆαααααΆαααΏα α§. ααααα·αααΎααΎαα αΆααααααΎαααΆαααΎαα‘αΎααα·αααΆαα½αααΉα 16 threads αααααΆαααααααααΆααααΈααΆαααααΆααΆααααααααααΎαααααΌαααΉαααΆα 8 threads, 4 threads, 2 threads αα·ααα½αα α αΎααααααΆααααααΆααΉαααΆαα―αααΆαα αΌααα αααα»αααααααΈααα½αα ααααα·αααΎααΆααααααααααααααα½αα ααα½αααΌα ααΆ 7,5 αααααααα‘αΆαααΊααα’αααα»ααααααΆααααΆαααΌααααααΎαααΉαααααα ααΎαα½αααΆα αΎαααααΆααΆααααααΎααααααααα‘αΆα 7,5 ααααααααα αααααΆαααα·ααα½αα
α’ααα»ααααααΆαααααΆαααΆααα! ααΎααα αΌαααΆαααΆααααααααααααΆααααααΎααΆαααΆαα½α WAL-G ααΎααα ααΌα α’αααΈ? α§ααΆα ααααααα»αααααΈαααααααααα ααααααααααΆαααΈααααααααααΆαααααααα α αΎαβααΎαβααβαα·αβαα»αβααΆαβααααα»αβαα»αβααααΌαβαααααΆααβααβαα»αβαααα»αβαααααααΆαβαα αΌαβαααβααΎαβααΆαβαααβαααβαα βααΎβαα»αβα αααααβαααβααΆαβαααα»αβαααβααΆβααΆαβααΆαβαααβααΆααα αα α ααα»α αααα α’αααααααΌαααααΎααΆαααααα»ααα»α delta ααααααα αααααΊααααΎαααΆαααΆααααα αα½αα ααα½ααααα»ααααα»αααΆ α¬ααΎααΆααΎαα‘αΎααααααααααΆ?
API ααααα»ααα»α delta ααΊααΆααααααΆααα ααΆαααααα ααΈααα - ααα αΆαααΈααααα’αα·ααααΆ αααα αΎαααΆα’αααΈαααααα α ααΆα ααΆαααααααααΆαααΎααα ααΌαααα αααααΆααααααΆααΆααααααααα’αααααααΎααΆα backup-push ααΆααΆαααααΆαααααα»ααα»αααααααα ααααα·αααΎα’αααααααΌαααΆαα ααΆααααα·αααααΆαααΆαα½α α§ααΆα ααα 3 αααααΆααααααααααααΆαααααα’αααααααΎ backup-push ααΆααΎααααααααα·ααααΆαααααα»ααα»αααΈαα»αα ααΆααβααΎαβααΎαβααΆβα’αααβαα·αβααΎαβααααβαααααΆααβαα 3 deltas αα·αβαααααΎαβααΆ delta αα½αβα
αααααΊααΆααααααααααΎαααΎαααααΎαααΆα WAL-G ααΆααααΆααΆαααααΎααΆαααααα»ααα»ααααααα?
αα ααΎαααααΎαααΆα WAL-G α αΎαααΆααααΆααΆααααααΎααααααααΈαααα ααααα·αααΎαααααΆαααααααα’αααα’αα»ααααΆαα
αα·ααΆαααααααααα ααααα·αααΎα’αααααααΎαααΆαααΆααΆαα½αααΌαααααΆααααα ααΎααΆααΉαααΆαα₯αα·ααΆααααΌα pg_basebackup αααα¬αα?
αα ααΆααΉααα ααααααΎαααΆαααΏαααΆααα»α αααααααΆααααΎααΆααααα αΆαα αα·ααααΆαααΆα‘ααα Pg_basebackup ααΉαααΆαα shaft αα αααααα’αααα WAL-G ααααααααΆα’αααααΆαααααααα ααΆαααααααααααααααΆαα α αΎαααΆααΉαα ααααΆααααααΆα ααααα·αααΎααΆαα·αααααΌαααΆαααααααα ααΆααααααααα
Pg_basebackup α’αΆα βααααΎαααΆαβααΆαβαααβαα·αβα αΆαβααΆα αβα αΆαβααΆα αα
ααΆα / α αΆααααααΆαααααα½αααααΉαααΆαα’αΆαααααα·αα·ααΆααααΎαααααΌα ααααΆα Pg_basebackup α αααααα ααααααααα―αααΆαα αα·ααΆαα’αΈααα αΉα ααΎαααΆααα»αααΆαααααΈααααααα»αααααα ααααΆααα α₯α‘αΌααααααΎαα’αΆα ααααα»ααα»ααα ααααααααα―αααΆαααΈ pg_basebackup α αααα»αβαα·αβααΉαβααΆβα ααα»βα’αααΈβααΆαβααΆβααααΌαβααΆαβαααβαα ααα»ααααβααΆβαα βααΈαααα
α§ααΆα ααααα ααΎ CephFS α αα·αααααααααααααΆα ααααααααα ααΆααααααααααΆααααα»αααααα»ααα
ααΆα/α αΆα ααααααα ααααΆααΌαα ααα»ααααα½ααααα½ααααα½αα’αααΈαα»αααΆαααα ααΎααααΈααΎαα’αΆα ααααΎααΆααΆαα α αΎαααΎαααΆαααααΎααΆα
α’ααα»ααααααΆαααααΆαααΆααα! ααΆααααααα½αα’αααΈααΆαα αααααα ααααααααα―αααΆαααα»αααααα α ααααΈαααα’αα α₯α‘αΌαααα ααΎα’αααααΆααααααΆαα αααααα αααααααααα»αααΈα ααααΆααα α§ααΆα ααα ααααα·αααΎααΆαααααΎαααααα αααα»αααααααααααα·αααααα α¬α’αααΈαααααααα?
αααα»αβααΆαβαααααΎαβαααβααΆβαααα½αβαα·ααΆαα ααΆα/α αΆα ααΎαααΆαααα ααα»αααααα»αααΆαααααα·αααΆααααΆααα½ααααα αΌααα αααα»αααΆαα ααααααΆαααΆαα½ααα α‘αΎαααα αααβααΊβααΆαβα ααβααααΆαβαα»αβααΆααβα’ααβααΆααααβααΆ ααα»ααααβααααβα ααβαα·αβααΆαα αα»αααΆααααααααΌαααΆααααααααα αααα»ααααα 0.2 α ααΆα αααΆααααΆααΉαααααΌαααΆαα ααααααΆααααα»ααααααΆαααααα αα ααααααααΎααα½ααα»αααα α»ααααααααααΆααααΆααα’ααα ααα»ααααα₯α‘αΌαααα αααα’αΆα ααααΌαααΆαααααΎαααα αααα»αααΆαα ααααααΆααα»αααα»αααααα ααΆαααα α»αααΈααα αααα»αααΆαα ααααααΆααα»ααααα αααα αΆααΆαα½αααΉαααΆαααααΆα WAL-E ααΎααα·αααΆααα½ααα»αααΆααα α αΎααα αααα»αααΆαα ααααααΆααα»αα α»αααααααααα»α ααα α»αα’αααΈααΆαααααα»ααα»α delta ααααΌαααΆαααααααα ααΌα αααα ααΎαααΌαααααΆαα’ααααααααααααΆα±ααααααΎαααααααααΆαα ααααααΆαα αααΆαααΆαα·αααΆαααα α»αααααααα αααα»αααΆαα ααααααΆααα»α ααΎαα’αΆα αα·ααΆαααΆαααΆααΎαααΆαααα Google Cloud, S3-compatible things and file storageα
αα½ααααΈ α’ααα»ααααααΆαααααΆαααΆαααα ααΌα ααααααα»ααααα αΎα WAL-G αα·ααααααΆαααααααααααααααααααααΆαααΌα ααΆ barmen αα? ααΎα’αααααΆαααααααααααΆααααΈαααα»ααα·ααα ααααα?
αααα αΆααΊααΆααΎαααΆαααααΆααααΈααααΆαααΈαα·ααα αααα WAL-G ααααα ααΎαααΆαααΈαααΌαααααΆα ααΎαααΆαααΈαα ααααα αα·ααα ααΎαααΆαααΈαααΆααα’αααα αααα»αα αααααα αα αααβααΎαβααααΆααβαα βααΆααβα αααααβααΆααβααΆαα ααΎαβααΆαβααΆαβααα‘αΎαβα’αααβααααΆααβααΆβα αααΎαα α αΎαααΆααααααααααΆαα’αααΈααΎαα‘αΎααα αααα»ααα½ααα ααΆααΆαααα αΆαααααα½αα αααααΆααααα½αααααααΌααα½ααα»α α’αααααααΌααααααΆα ααααααα½αααΆα₯α‘αΌαααααα·αααΆαααΆαααααα»ααα»αα αααα»ααα·αααΆαααααααα’αα·αααα WAL-G αααα»ααα·ααα αααααααααΉααααααΆααααααααααααααα»ααα»αααα ααααα·αααΎαα ααααα ααααΆααα»αααΆααα½αα ααα½ααα ααΈααα αααα»ααα·ααααααΆααα’αααΈααΆααα’ααα
ααΎαααΆααααα»ααααααα½ααα»αααααΌαααΎααΆααααα»αα α αΎαβααΎαβααΆαβα’αΆααααααβααα’βαααβααΆβαα·αβαααβααΆβααΎαβαααβααΆαβααα»αααβαα·αααβαααβααΆααβα―αααΆαβααααβααΎαβαααβα―αααΆαβααΆαβαα»ααααα·ααΆαα αα½αααααααΎαααααααααααααααΆααααααααΌαααααααΆααααα ααΈααα ααΎααααΈααααααααΉαααΆαααΆαααααα―αααΆααα½αα ααα½αα αα½αααααα½ααα»αααααΌαα ααααααααα·ααααααΌααααααΆαα αα ααααααα’αααααΆαα’ααααααα‘α»αααααΆ α’ααααααα ααααΆααΉαααΉαααααΆααααΆααΌαααααΆααα·ααααααααΌα ααααααΆαα ααΆα αααα αααΎαααΆααααααΌααααα»ααα ααΎαααΆαααΈααααααα½αα α’αααα αΆααααΈααΌα ααΆααΆααααααααααααα αααΎα ααα»αααααααααΆααα ααα»αααα½αα ααα½α α’αααΈααα·αααααΆααααααΆαα ααΆα’αΆα αααααα ααΆαα·ααΈαααααα ααΆααααααΆαααΆα αααΎααα ααΈααα ααΆαααααΌαααααΎαααΆα ααα»αααααα·αααΆαααΆααα ααΈαααααα α αΎαααΎααα»αααααΆααααΉααααααΌαααΆααααααΎααααΈααααααααα’αααΈαα½α α αΎαααΎαααΆαααααΆααααααΌααα ααΆααα·ααααααΆααΆααααα»ααα·ααααααααΊααΆααααΆααααααΆα ααααα‘αααααααα»ααααα·αααααΆα ααααα‘ααααΊααα½ααα»αααααΌαα
PS ααααααααΈααααΌαααΆαα
ααααααΆα
ααΈααα’αΌ:
ααααα: www.habr.com