рдореИрдВ рдЖрдВрджреНрд░реЗрдИ рдмреЛрд░реЛрдбрд┐рди рджреНрд╡рд╛рд░рд╛ 2019 рдХреА рд╢реБрд░реБрдЖрдд рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ "рд╡рд╛рд▓-рдЬреА рд╕реЗ рдмреИрдХрдЕрдкред 2019 рдореЗрдВ рдХреНрдпрд╛ рд╣реИ?"

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░! рдореЗрд░рд╛ рдирд╛рдо рдПрдВрдбреНрд░реА рдмреЛрд░реЛрдбрд┐рди рд╣реИред рдореИрдВ рдпреИрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, 2016 рдХреЗ рдмрд╛рдж рд╕реЗ рдореБрдЭреЗ PostgreSQL рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рд╣реА рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рдЖрдк рд╕реНрд░реЛрдд рдХреЛрдб рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдФрд░ рддрдм рд╕реЗ рдореИрдВ рд░реБрдХ рдирд╣реАрдВ рд╕рдХрддрд╛ - рдореИрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВ рдЬреЛ рдХреБрдЫ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╡рд╣ рд╡рд╛рд▓-рдЬреА рдмреИрдХрдЕрдк рд╕рд┐рд╕реНрдЯрдо рд╣реИ ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпреИрдВрдбреЗрдХреНрд╕ рдореЗрдВ рд╣рдо рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ PostgreSQL рдореЗрдВ рдмреИрдХрдЕрдк рд╕рд┐рд╕реНрдЯрдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдФрд░ рдЖрдк рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЫрд╣ рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдмреИрдХрдЕрдк рд╕рд┐рд╕реНрдЯрдо рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВред рдФрд░ рд╣рд░ рд╕рд╛рд▓ рд╡реЗ рдереЛрдбрд╝рд╛ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдереЛрдбрд╝рд╛ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдЖрдЬ рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ рди рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ, рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рд╕рд░рд▓ рд╣реИ рдФрд░ рдпрд╣ рдХреНрдпрд╛ рд╣реИред рдЖрдкрдореЗрдВ рд╕реЗ рдХрд┐рддрдиреЗ рд▓реЛрдЧ рдореЗрд░реА рд╡рд╛рд▓-рдЬреА рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦ рдЪреБрдХреЗ рд╣реИрдВ? рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдХрд╛рдлреА рд▓реЛрдЧреЛрдВ рдиреЗ рдирд╣реАрдВ рджреЗрдЦрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЪреАрдЬ рд╕реЗ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ред

рдпрджрд┐ рдЕрдЪрд╛рдирдХ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ PostgreSQL рдХреНрд▓рд╕реНрдЯрд░ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдПрдХ рдЬреЛрдбрд╝реА рд╣реИ, рдФрд░ рдЕрдЪрд╛рдирдХ рдХреЛрдИ рдмреИрдХрдЕрдк рд╕рд┐рд╕реНрдЯрдо рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреЛрдИ рднреА S3 рд╕рдВрдЧреНрд░рд╣рдг рдпрд╛ Google рдХреНрд▓рд╛рдЙрдб рд╕рдВрдЧрдд рд╕рдВрдЧреНрд░рд╣рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

, Yandex Object Storage, S3 .

Bucket. .

.

C aws-s3-key.

WAL-G.
? . , , , . . , - , , . . , . . .

, WAL-G, ┬лbackup list┬╗, . Object Storage, , . , , . , . , .

. WAL-G ┬лbackup-push┬╗ WAL-G pgdata . , , PostgreSQL , , ┬лarchive-mode┬╗.

, ┬лarchive_mode = on┬╗ ┬лarchive_command┬╗, WAL-G. - - WAL-G. , . , WAL-G. - , GitHub. WAL-G , , archive_command.

WAL-G High Availability Database management.

. Yandex Object Storage.

тАУ Point in time recovery. . .

. ? , . . pg_basebackup , . , , .

. -, .

- , , pg_basebackup .
- . , , .
- , . - , .
- , . , contribution WAL-G. WAL-G, : ┬л , - ?┬╗. WAL-G.
- , , . .
- .
- .

. , PostgreSQL. - , - , - .

, WAL-G. . .

, тАУ , WAL-G .

WAL-G 4 . :
WAL-PUSH тАУ .
WAL-FETCH тАУ .
BACKUP-PUSH тАУ .
BACKUP-FETCH тАУ .

, WAL-G , . . listing , .

тАУ -.
- , , . , WAL. WAL-, - . , , , - fail, 4 - 10 WAL. , - .

LSN-based тАУ , , 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-based WAL- , mode-time . , . , WAL-.
, WAL , , , . , . , delta-.
Delta- WAL-, , WAL. delta- .

, , , , WAL, , , , .

_delta_partial . , , WAL , , .
, , , , , , , LSN-based .

, WAL-G. , , , - тАУ , . ( https://github.com/wal-g/wal-g/tree/master/internal/walparser)

. delta-. , , delta- , . , . delta-.

. . LSN-based, . , LSN-based delta- . . WAL-delta 20. . . , .

, , тАУ PostgreSQL, ┬лpg_prefaulter┬╗

, , Stand-by restore command, WAL-G WAL-. , WAL . , SSD . WAL , . page-. , . WAL-G, , WAL . , . SSD-, , , , .
, .

, .

, WAL-delta . , . WAL-delta , . WAL-delta , . , . ┬лinstant WAL-delta┬╗.

, , , , . . . WAL, PostgreSQL , .
. , - , . . . WAL-delta. , , , - - , delta pg_basebackup, .
. . . - , , , .
, , .

WAL-G. , . , API MySQL . MySQL PITR WAL-, binlog. MySQL, - , binlog . - cron тАУ - ?
MySQL restore command, , - -. , , , . , . , , - . (: MySQL )

, WAL-G .

, WAL-G . , . , WAL-G. - , High Availability , .

, 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 , , mode-time md5 PostgreSQL тАУ OK, , , .
WAL-E , archive command, WAL-G, WAL-E .
, , WAL-G , .
-, . , . , . , . . , WAL-G , smoke-: pg_dumpall /dev/null amcheck .

WAL-G WAL. . . . , , , . : ┬л , ┬╗. WAL-G . ( тАФ . тАФ backup-mark https://github.com/wal-g/wal-g/blob/master/PostgreSQL.md)

PITR.

Google Summer of Code. , - Go ┬лG┬╗, . , . , .

, . .
, WAL-G , . , , . pg_control . , - . , , . , .
offline-. , . . LSN, . LSN control . . . .
. . . - Go , bucket. pull request.
, , , , . . , , . , , PostgreSQL 9.4-9.5. , PostgreSQL, , . , , .

WAL-G , Database management. .
TODO. , , pull request, .

! ! , WAL-delta, , , full-page writes. , ? . , FPW ?
Full-page writes , . . . , , . , , , . FPW . , .
! . тАУ ?
pull request. SSD NMVE . , . , . , , , . , pull request. ( 0.2.13)
. , WAL-G , . . ?
, , . , , . , . , , тАУ Go.
! ! WAL-G GPG . , . - ? .
GitHub, .
. . ?
, WAL-G , , : ┬л , ?┬╗. , . . . , , . GPG , . GPG, open PGP, WAL-G, . Libsodium ( 0.2.15). , , тАУ , . - . (PGP encryption without external GPG тАФ v0.2.9)
! ! . , pg_basebackup WAL log , . . . - ?
, .
, .
. . , issue GitHub?
, .
, Google Summer of Code, , , .
. issue GitHub. , -, . restore. , . issues. , . . , .
, - (CEPH) , . ? retry . . - , , . , , . retry тАФ exponential backoff. , , . . . , . ? , , . , , , .
SLA? , ?
, , , . . . Amazon Google Cloud, Yandex Object Storage .
?
. - , , WAL-G. , . Object Storage, - listing . , folder. WAL-G тАУ - , , , , . . . , , Object Storage - , .
Mail .
reproduceтАж
тАж
reproduce, , , retry , , . , , . , . . 16 , retry 8 , 4 , 2 . . - 7,5 , 7,5 . .
! workflow WAL-G? , , . , . , , . - delta- , . . - ?
API delta- . тАУ max delta steps, . . , , backup-push, . , , 3, , backup-push, . , 3 .
. . , WAL-G, ?
, WAL-G, , .
, , pg_basebackup?
, , . Pg_basebackup . WAL-G , . warning, .
Pg_basebackup .
, . Pg_basebackup . , , , . pg_basebackup . , , .
, CephFS. Object Storage .
, , , . .
! . remote storage, , - -?
тАУ . , , . . . , . 0.2. , . . . WAL-E, . delta-backup. . , , Google Cloud, S3- storage.
, . , WAL-G тАУ - barmen? ?
, . WAL-G , , . , . , - , . , , . WAL-G . - , .
, storage. , , , , . , - . . , , . , - . . , , . - , , тАУ , .
PS рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг 0.2.15 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдЬрд┐рд╕рдореЗрдВ рдЖрдк .walg.json рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд╣реЛрдо рдбрд╛рдпрд░реЗрдХреНрдЯреНрд░реА рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдерд┐рдд рд╣реИред рдЖрдк рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рд╕рдХрддреЗ рд╣реИрдВред .Walg.json рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рдЕрдВрдХ рдореЗрдВ рд╣реИ https://github.com/wal-g/wal-g/issues/545
рд╡реАрдбрд┐рдпреЛ: