αα
αααα»ααααΆαααΆαααααααααΆαα Andrey Borodin ααΉαααααΆααα’αααααΈααααααααα½αααααΆααα·αααΌαααΈαααα·αααααααααΆαααααΎααΆαααααααΆα PgBouncer αα
ααααα
ααΆα§αααααααααΆαα
ααΈααα’αΌ:
αα½ααααΈβα’αααβααΆααα’ααααααΆ! αααα»αααααα Andrew α
αα Yandex αααα»ααααααΎαααΌαααααΆααα·αααααααααααααΎαα αα α α αΎαααααααα ααΎαααΆααααααΆααααα½α α’αααΈααΆααααααΆαα αα»αααΊαααα
ααααα·αααΎα’αααααΉαααΈααααα α Connect Pooler ααΆααΆααΆαα»ααααΈ ααααΆαααααα»αααα αααα»αβαα·αβααΆβα ααβααβααΆαααβαα αα αααααβααα’βαααβαα½αβααβαααααΎαβα‘αΎαβαααα»αβα’αααααα·ααααβαα αα αααααα
αααααΆαααααΊαααα»αααααΆαααΆαα ααΈααααααα αααα»αααΌαααααΆααα·ααααααααΆα αααΎα α§αααααααααΆααααΆααααααΆααααααΌαααΆαααααΆααααααΆαα½α α αΎαα’ααααα·αα αΆαααΆα αααΉαα’αααΈααΆααα ααΆααΆααα·αααΆαα ααΆαααΆαααααααα½αα ααα½ααα αααααααΈαααααα ααα»αααααα αααα»α Postgres ααΆαα·αααααΎαααΆαααΌα αααααα α αΎαααααααααΆ (αα HighLoad++ 2019) ααΆααααΆαααΆααααα½αααα Nikolai Samokhvalov α’αααΈααΆααααααΎααααα½ααα αααα»α Postgres α α αΎαααΌα ααααααα»ααααα αΎα ααα»αααααΆαααααΈααααααααΆαααααααα ααΆαααααααααααα½ααααααα½ααααααΆαααα’α₯αααα αααα½α α αΎα α αΎαααΆαααααααΊααΆααα»ααααααααααααα»αααΉααααα αΆααααααααααααααααΆααααααΉααααααΆα αα·αααΆαααααΎααααΆααααααΆαα α αΎααα αααααααααα ααΆα’αΆα ααΆαααΆαααααΆααααα»ααααααΆαααα αΆαα·αα αααΆααα
Yandex ααΆα Postgres α ααααΆαααα Yandex ααΆα αααΎαααααα αααα»α Yandex.Cloud α α αΎαααΎαααΆααα·ααααααα ααα½α petabytes ααααααααΎαααΆααααΆαα αα ααΆαααα½αααΆαααααΎαααα»ααα½ααα·ααΆααΈαα αααα»α Postgres α
α αΎαααΎααααααααΌαα ααααααααααααΆααααααααααααΆααααααΆααααααΆααα’αα - αααααΊααΆααααΆααα ααααα ααααααααααΆαα ααΆαα ααααααααααΆααΈα (ααααΆααααα αα·αα’ααααΆα) ααΆαααααα»ααα»α ααΆαααααΎααΆαααααααΆαααααααΎα’αΆααα ααΎααΆαα ααααα
ααααΆααα αααααααΈαα½ααααΊ Postgres αααααααααααΈααΎ Postgres αα·ααααααααααααα½ααα·αα·ααα α§ααααααααααΆααααααααΌαααΆαααα‘αΎααααααα α§αααααααααΆααααααΌαααΆαααααΎααααΆαααααααΆααααΆαα αα»αααααα αα·ααααααΆαααααααααα ααααααααααΆα
ααΎα’αααΈααΆαααααααααααΆααααααΆααααααΆααα§αααααααααΆαα?
Postgres ααα½αααααααΌααααΎαααΆααα αααααααΎααΆαααΆαα½αααΌαααααΆααα·ααααααα αααααΆααααααΆααΆααααααΆαααα½αααΊααΆααααΎαααΆααα½α αααααα·ααΈααΆαααααα Postgres α α αΎααα αααα»ααααααααΆαααααααααααΆαααααΆαααααααΆααααααααααααΆααΆα αααΎα αααααΆααααααααααααΆαααααα»αααΆααααααΎαααΆααα»αααααΆαααααΆααααΆααααααΆααααααααααααΆα
ααΎαααΈααα ααΌα Postgres ααΆαα’αΆαααα½αα α ααΆ procArrayα ααΆααΆααα·ααααααααΌαααααΆαα’αααΈααΆαααααΆαααααααΆαα α αΎαααααΎαααααααααααα½ααααααααΆαααααΎαααΆα procArray ααΆαααΆααααα»αααααΆαααΈααα’ααα αα½αααααααΎαααΆαααΎα’αΆααααΆααααΌαααααΆααααααΆαααααααΆαα ααΆβααΆβααααβααβααΏαβαα½α ααα»ααααβααΆαα½αβααΉαβααΆαβαααααΆααβαααααΆαβα αΌαβααΆααβααβα αααΎα α’αααΈαβααΉαβααΆαβαααααβααααβααΆαβααααα·α α α αΎααα ααααααα’αααΈαααΆααααααααααααΆαααααα·α α’αααα’αΆα αααα ααααΆααααααααααααααααααΆααααΆααααααΆαααααααΆαααΆα αααΎαα
ααΆααα·ααΈααΆαααααα ααα½α α£ αααα’αΆα ααααΎαα ααΆαα
- αα αααααααΆααααααα·ααΈα
- αα ααΎαααααααΌαααααΆααα·ααααααα
- α αΎααααΆα, αααααΊ, ααααααααααααααααααα
ααΆα’αα»αα α’αΆαααΉααααααααΆααααααΆαα½ααα αα α»αααααααααα»ααααα·ααααααααΆαα’αα·ααααααα αα·αααααααα·ααααααΎααα PostgreSQL Professional ααααΎααΏααααααΆαα αααΎαα αααβαααβααΆβααΉαβααα βα‘αΎαβααΊβαα·ααΆαβααΉαβααααααααΆαα α αΎαααΆααα·αααΎαααΆααααααααααΆαααΈααααααΆααααααΆααααααααΎααααΈααααΎαααΎαα ααΆαααααααΊααΆαααα»ααααααααΆααααααα·ααΈ αα·αα’αΆαααααΌααααΈα
α’αΆαα αα αααααααα·ααΈααΊααΆαα·ααΈααΆααααα½ααααα»αα α αΎαααααΎαααααααααααααα·ααΈαααααΆα’αα·αα·ααααΆααα’αααααααα±ααα’αααααΌααα·ααΈαα½α: αααα αΆαααΆααααααΆααααΆααααΆαααααα’ααααα αααα»αααΌααααα»αααααααααααΆααααααΆααααΆαααα·ααα ααΌαααααΆααα·ααααααα
αααα αΆαααααΎαα‘αΎαααΊααΆαα α ααα»α ααΆααααΆαααα½ααααα’αααα ααααααΎααΆαααααααΆααααααααΆαααααα α’αααα ααααΆαααααααΆαααΆαα ααΆαααααΆαααΈααα·αααα·αααΆα αααΎαα
αααααΆαααα α’αααααΉαααΆα’αααααΆαααααααααα’αΆα ααααΆαααΆα αααΎαααα ααααααααααα·ααααααααΆα αααΎαα α αΎααα·ααΈααΆαααααααΌααααα αΌαααααΆααααααΆααΈα’αα·αα·ααααΆααα ααα ααα½αααα αααΎαα αα α ααΆαααΆααααααΆαααααα αα 10 α αααααΊααΆααααααα’αΆα ααααΎαααΆαααααααΆα
ααααα·αααΎααΎααα·ααΆαα’αααΈ proxy poolers αααααΆα poolers ααΈααααα’αΆα
ααααΎααΏαααΆα
αααΎαα αα½ααααα·αααααΉαααααΆα’αααα ααααΉαααα»αααααααα αα½αααααΊααΆα’αΆαα ααααΉα + αα»αααΆααααααΆααααΆαα αααα
ααα»ααααααΆα’αα»αα αα·αααααααααααααΆααααΌαααΆααα»αααΆααααααααααααα α αΎαααΆααΆαα±ααααΆααα·ααααααΆ poolers ααΆαααααα session pooling αααααΊ client incoming client αα½α outgoing client αα ααΆαα databaseα
ααΆβαα·αβαααααα·ααβαααααΆααβαααααααβααααβααΎαβαα ααΌα ααααβααΎαβααααΎ PgBouncer αααβα’αα»ααααβααΆαβαααα αΌαβααααα·ααααα·ααΆα αααβααΊβααΆαβαααααΆααβαααΆαααΈαβαααααΎβααααΌαβααΆαβααααΌααααβααΉαβααΆαβαααααΆααβα’αα·αα·ααβαααααΆααβααβααααααβααβααααα·ααααα·ααΆαβααα»αααααα
α αΎααα αααα»αααααα»αααΆαααΆαααααααΎααααααΆααΆααα·αα ααα»ααααααΆααααα αΆαα½αα ααα½α.
αααα αΆα αΆααααααΎααα αααα’αααα αααα·ααΆααααααα½α ααΈαααααααΆααααααΆααα αΌαααααα’αααααΆααα’ααααΊαα αααα»αααΌαααααΆαα ααα»ααααααααααααΆααΆαααααΆαα½αααΆααα·ααααα‘αααααα·α α αΎαααΌα ααααα αααααΆααααΆαααΆααΆαααααΆααααα»αααΆαααΆαααΆααααααααα
ααΆααΆααα·αααΆααα’αααα’αΆα ααααΎ application_name_add_host α αααααΊααΆαα·ααΈαα½ααα ααΆα Bouncer ααΎααααΈααααααα’αΆααααααΆα IP αα application_name α ααα»αααα application_name ααααΌαααΆαααααααααααΆααααααΆααααααααα
αα ααΎααααΆα ααααα ααααααααααααααΆαααααααΏαααΊααΆααααΎαα·αααααΆαα αα·αααααααααααααααΆααααααααααΊααΆααααΎαααα ααα αΎαα αΌααα αααα»αααΌαααααΆααα·ααααααα α αΎαααΆααα»αααααΆαααααΊα αααΆααααΆααααΆαααα‘αΎα application_name αααααααΌαααΆααααααΆααααααΆαααΆαααΆαααα»ααααα ααα»ααααααΆαα·αα₯ααα·αααααααΆαααααααα
ααΎαααΈαααααααα αααα»α Bouncer α’ααααα·αα’αΆα αααααα’αΆααα½αααΆααα αααααΊα ααα½αααααΆαααααΆααααΌαααααΆααα·αααααααααααΆααα’αααααααΎααααΆααααΆααααΆαα αααα»ααα½αααΌαααααΆααα·ααααααααΆααααΆααα
ααΎαααααΆααα ααα’αααΈ? α’αααβααΆαβααααΆβαααβααΆαβαααα»αβαααβαααααβααΆ C++ αα·αβααααααβαα½αβαα βαααααβααααΆβααΌα βαα½αβαα βααΎβααααΆααβαααβαα·αβααααΎβα’αααΈβαααβαα½αβα±ααβαααααααΆα βααΆαα½αβααΉαβααΌαααααΆαβαα·αααααα ααα»ααααβαααααα·ααΈβαααααΆβααααβααΆβαααα½αα ααΆααΎαααΆααααααΆαα 20 α αΎαα’αααΈαααααααααααΉααααα αΆαα ααΌααααΈαααααααΌαααααα’αααααααααααΆαααα
ααΆααΆααα·αααΆαα ααΎαααΆααααααααααααΌα αα½ααααααΆαα Bouncer αααααααααααΆααααααααα αααααΊαααααα’αα·αα·αααα α’αΆαα
ααΆα’αΆα αα αα½α αααα»αααΆαααααΎαααααααα ααααα Postgres αααααΊααααααα½ααΆααΈαα αααα»αααΌαααααΆααα·αααααααααα ααα½αααααΆααααααΆααα
ααα»αααααααααΆααααα’αααααΆααααααααααααΆααααα»αααΆααααααΈααΌαα ααα»αααα’ααααα·αααΆαααΆααααααΆαααα αααΆαααΈαααα PgBouncer αα·ααααααα α»ααααα»αααΆααααααΆαααα ααΆααααααααα‘ααααααααΆαααααα α αΎαα’ααααα·αα’αΆα αααααΆαααα αααα ααααΆααΆααααααααΆααααααα’αααααΆαααααΆααααααΌα αααα ααααΆααΌαααααΆααα·ααααααααΎαααααΆαα αααα ααααΆααΆαα’αααΈαα½ααα»αα αΎαα ααα»αααααα·αααΆαααααα·αα·α ααααααα ααααα·αααΎαααααα·αα’αΆα αααααΎαααΆα α’αααααΉααα·αααΉαααΆα ααα»α’αααΈααΆαααΆααΆαα·αα’αΆα αααααΎαααΆααΆαααα
αα α ααα»α ααΆααααΆαααα½α α’αααααΎαααααΆα αααααααα·ααΈ α αΎαααΎαααΆαααααα·ααΈαα·αααααΎαααΆαααα
ααΌααααα‘ααααΎααααααααΆαααΎ α αΎαααΎαααΆ Bouncer ααΆααααααααα½αα αααααΊααΆα ααα»α αααααα½ααα αααα»αααΈαα·αααααΆααααα α’αααααΉαααΆα’ααααααα»ααααα αααααΎααΆαααααααΆαααΌαααααΆααα·αααααααααα»ααααααααα½αααααΆαααααα α αΎαα’αααααααΌαααααΎααΆαααααααΆαααΌαα
ααΎαααΆαααΆααααααΆαααααα·ααααΆαααΆααΎαααααΌαααΆα PgBouncers αααααααααα
Bouncer ααααΌαααΆα patched ααααα·α α
α αΎααα½αααααΆαααααΎααΆααΎααααΈα±αα Bouncers ααΆα αααΎαα’αΆα ααααΌαααΆαααΎαα‘αΎααααααααΎααααΆααα ααα TCP α‘αΎααα·αα α αΎαααααααααααααα·ααααα·ααΆαααΉααααααααΆαααααΆαα TCP α αΌααααααααααααααααα·αααΆααα½αααΆαααααααΎ round-robin α
ααΆααΆααααααΆααΆαα ααααα’αα·αα·αα ααΆααααααΆααΆα αΆααααΌα ααΆα’αααααΆα Bouncer αα½α ααα»ααααα’αααααΆαααΆααααα ααααααΆααααααΆααααααααααΆα Bouncers αααα»αααααΎαααΆαα
α αΎααα αααααΆααααΆαααα½α α’αααα’αΆα αααααααΆααααΆ Bouncers ααΆαα 3 αααααααΆααααααΈααααΌααααααα½ααα 100% α α’αααααααΌαααΆα Bouncers αα½αα ααα½αα α ααα»α’αααΈ?
αααααΆαααα’αααααΆα TLS α α’αααααΆαααΆααααααΆαααααααΆαα’αα·αααααΈαα α αΎαααααα·αααΎα’ααααααααΆαα Postgres αααααΆα αα·αααααΆα TLS α’αααααΉαααΎαααΆα ααα½αααααΆααααααΆαααααααΆααααααΎαα‘αΎαααααΆααα α»αααααΎαααααΈαααααΆααααααα αααΆαα½αααΉαααΆαααΎαααΆαα’αα·αααααΈα ααΈαααααααΆαα αΆαααα TLS ααααΎααααΆααααααΆα CPU α
α αΎααα αααααααΆαααΎ α’αααα’αΆα ααΎαααΎααα»αααΆαααααΈααα½αα ααα½ααααααααΌαααΆαααααα·ααααα·αα ααααααααΆααααααααΆααααααΆααα αΌαα αααααΆαβαααβααααβααΎαβα’αΆα βααααΌαβαααΆαβαααααβαααβα’αΆα βααααΎβααΆα αααβααβααΆαβαααααΆααβα αΌαβααΊβααΆβααααΆαααΆαβααααααΆα αααααΊααΆα ααα»αααα½αα ααα½αααααααα αΆαααα·αα’αΆα ααααΎααΆα ααααα»αααΆααααΌαααααΌαααΆααααααΌααα ααααααααααα·αααααααα½αααααααααα αα½αααααΆααα’ααααααΆααΉααααα·ααΆαααααΆααα½α TLS αααα»αααααααα½αα
α αΎαααΆαα αΆαααα TLS αα½αα ααα½ααααααα ααααΆααααα·ααΆαααΆααααΆααα½α Bouncer αααα αΎα ααα»ααααααΆααΉαα ααααΆα αααααααααααααΆααα αααααΆαα’ααααα αααααααΆααααααΆααα αΌαα’αΆα ααΉααα·αααααΎαααΆαα ααααα·αααΎα’αααααααΆααΆαααααααααα ααΆααααΌαααααΆαααααα·αααΆαααΆααααααααα’α·α αααααΌαααααααα αα½αααααΉααα·αααααααα αΎαααααααααα αααα»αααααααααΆααααααΆα
αααααΊααΆα§ααΆα ααααα 16 PgBouncers ααααααα»α 16 cores αα 100% α
ααΎαααΆααααααααααΆαα PgBouncer α αααααΊααΆααΆαααααααα ααΆααααααααααααα’αααα»ααααα’αΆα αααααα ααΆααα ααΎααααα»αααααααΎαααΆαα½α Bouncer α Bouncers ααΆααααα ααααααΎαααααΌαααΆαααααΎαααααΆααααΆαα αΆαααα TCP α αΎα Bouncers ααΆααααα»αααααΌαααΆαααααΎαααααΆααααΆααα½ααααα αΌααα·αααααΆαα ααΌα ααααααΎααααΈαα»αα±ααααααααααααΆααααααΆααααΆααααα α αααΎααααα
αα αααα»αααΆαααααααα ααΆααααααααααα ααΆαα αΆααααααΎαα‘αΎααα·αααααααΌαααΊα’αΆα ααααΎαα ααΆαα α’αααα’αΆα α αΆααααααΎα Bouncers ααΆαα 18 αααα‘αΎααα·ααααααα½ααα ααα»ααααααΆααααααΆααΆααααααααααααααΊαα·ααΆαααΆααα Sysadmins, DevOps αα·αααα»ααααααααα½ααα»αααααΌααα·αααααΆαααααααΆαααααΆαααΈααααααααΉααα·ααααααΆαα α·αααααααΆααααΆαα½αααΉαααΆααααα ααααααα
ααΆα αΆααααΌα ααΆααΆααΆααααααα’ααααααΎαααΆααα’ααα’αΆα ααααΌαααΆαααααααααααΆααα ααΆαααααααΎαα αα ααα»αααα Bouncer αα·αααααΌαααΆαααΆαααααααΆαααα’αααααα ααΆα§ααΆα ααα αααααααΆααααα»αααΆαααααΎαααΆα PgBouncers ααΆα αααΎααα ααΎα ααααα½αααααΌαααΆααααααααΉαααααΆαααΈαα½ααααα»αα ααΆαααααΎααΆαααΆαα½ααααααααα·ααααααααΆα αααΎαααααΆααα»αα
α¬α§ααΆα ααααα½ααααα αα αααα»α Postgres α’αααα’αΆα αα»αα ααααααΎααααααα»αααααΎαααΆααααααααΎααΆααααααΆαααα ααΆααααΆααααααΆαααααααααααα·αα αΆαααΆα αααΆαααΆααααααααααΆαααα·αα αΆαααΆα αα ααα»ααααα’αα·αα·αααα½αα ααα½αααααΆααααααααΎααΆαααααα TCP α‘αΎααα·α αααααΊαα½ααααααααααΆαααααΆαααααααΆαα ααΎ Bouncer ααΉαααααΎα’αααΈ? ααΆααααΉααα·αααααΎα’αααΈααα ααΆααΉαααααα’αα»ααααααααΎα ααααα·αααΎα’αααααΆαααα½αααΆαααααΆααααΆα αααΎααααααΆααααααΎαααΌαααααΆααα·ααααααααΆαα½αααΉαααααΎααΌα α αααααααΆααααααααΆα αααΆααααααΆααααΈ Bouncer ααΉααα·ααααααααααΆαααα α’αααααααααΌααααααααααΎααΆαααααααααααα»αααααΎαααΆααα αααα»αααΌαααααΆααα·αααααααααααα
ααΆβααααΌαβααΆαβαα½ααα»αβα αΎαβαααα αΆβαααβαα·αβααΆααβααααΌαβααΆαβαααα αΌαβα αΌαβαα βαααα»αβα ααααβαααα Bouncer ααα
ααΌα ααααα αΎα ααΎαααΆαααΆααααααΆαααααα·ααααΆαααΆ ααΎαααααΌαααΆαα§αααααααααΆααααααΆααααααααααΆαααααα½αααααααΎα αααααΉαααααΌαααΆααααααΎαα‘αΎα αααα ααααααα αΆα’αΆα ααααΌαααΆαααααααΌαααΆααααΆαααΆαααα αα α αΎααααααΆααΆααα·αααΆαα ααααΌαααααΆααααααα α»ααααα
ααΎαααααα multithreading ααΆαα·α αα ααΆαα ααααα ααΎαααααΌαααα’αΆα αααααααΆααααααααΆααααααΆαα TLS α αΌαααΆαααα’α
ααΎααααΈααααΎααΌα αααα ααΎαααααΌααααααΎααααααΆαααααΆα ααααα‘αααα½αα α ααΆ Machinarium αααααααΌαααΆααα ααΆα‘αΎαααΎααααΈαα·αααααΆα’αααΈααααΆαααΆααααΆαααΈαααααΆααααααΆαααααααΆαααΆααΌαααΆαααααΆαααααααα ααααα·αααΎα’ααααααα‘ααααΎαααΌαααααα libpq α’αααααΉαααΎαααΆαα α αααααα»αααααΆααα½αα ααα½ααααα’αΆα αααααααααααα±ααα’ααααα·α α αΎααα·ααΆαααΆ βα α αααα»αααααααααα α₯α‘αΌαααα αααα»αααΆα IO αααααΆαααααααα ααα»αααααα αααααα IO ααΆαααα αααα»αααΉαααΆαααααα»αααΎ processorβα α αΎααααααΊααΆαααααααΆααααα α»ααααα·αα ααΆαααααΆαααααααααααΆαααΆααααααΆααααΌαααΆααα·αααααΆααααααΆαααΈαααααα α αααΆααααΆα αααΎαααΌα ααΆ "ααααα·αααΎααΈαα»ααααα»αααΆαααα½αααααααΆααααα α N α₯α‘αΌαααααααα»ααααα»ααααα αΆα N bytes" "ααααα·αααΎαααα»αααΆαααααΎαααα ααααααααΆα SYNC α₯α‘αΌαααααααα»ααααα»ααααα αΆααααα ααααααααΆααααααΆααα·ααααααααααΆααααααα" ααααααβααΊβααΆβααΌαβαααβαα·ααΆαβααααΎαβααβααΉαβααΆαβαααβααΎαβααΌα βααΆβααααΆααβαααβααααΌαβααΆαβαααααααβαα βααΆβααΆαβαααααβαααααΆααα ααΎααααααΎαααΆααΌα αααααααα½αα±αααααΆαααΈααααα α’αααααααααααααα·ααΈαα·αααααΆααααΌαααααΆααααα’αααααααααααα»αααααααααααΌαα αΆαααΆα αααααααΆα ααΆααααΆααααααΆαα αααα»αααΌαα αΆαααΆα αααα α’αααααααΌααααα αΌααααααααααααααΆααααααα·ααααα·ααααΌαααααΆαααααααα αΆααα·ααααααααΈαααααΆα ααααααΆααααα·ααααααα·ααααα·αα ααΆαα coroutine αααααααα (αααααααα‘αΆαααααααα)α αα·ααΈααΆααααααααααΊααααααααααΆαα ααΉαααΆααα·ααααααΆααΎααααααααααΌααααααααΉααα»ααααα»ααα αααα»α maze ααΆαααααααΆα αΎααααααΆααααααααααααΆααΆαα ααΆα
ααΆαααααα ααΎαααΆααααααααα‘αΆααα½αααα TCP ααα½ααα α αΎα round-robin ααααααΆααααΆααααααΆαα TPC αα ααααααααΆα αααΎαα
αααα»αααααΈααα ααΆαααααΆαααααΆαααΈααααααααΈαα½αααααααααααΎαααΆαααΎαα½αααααΆααααα½αα α αΎααααα’αα»ααααΆαα±ααα’αααααααΎα±ααααΆααΆααααα½ααααα»αααααΆαααααααΆααα
α αΎαααΎαααΈαααααα ααΎαααΆαααααΎα±αααααααΎαα‘αΎαααααα·α ααΌαααΆααααααΌααααα ααααΌα αα αααα»ααααα αααααα½α ααΎααααΈαααααΌααααααααα TCP ααααααααα
ααΎαααΈααα ααΎαααΆαααααΎα±αααααααΎαα‘αΎαααΌαααΆααα½ααααα αΌαααααα·ααααα·ααΆααααα»ααααααΆ Odyssey αα αααααααααα ααΆαααααααα α’αΆα ααααΎ CANCEL αα·α ROLLBACK αααα»αααααΈααΆαααΆααααΆααααααα»αααΆααααααΆαααααααΆα αααααΊααααα·αααΎααααΆαααααΆααααΆαααααα»ααααα αΆαααααΎααα Odyssey ααΉαααααΆααααΌαααααΆααα·αααααααα»αα±ααααααΆααΆα αααααααΆαααααΎαααα’αΆα ααααααααΆαααααΆαααααΆααααααα
α αΎααα αααααΆαααα’αΆα ααααΎαα ααΆα ααΎααααααΆααααΆααααααααΆαα½αα’αα·αα·ααααΌα ααααΆα ααΆαααααΆαααΆαααα‘αΎα application_name_add_host α‘αΎααα·αα ααααα·αααΎαααα’αΆα αα αα½α αααααΎααα·αα αΆαααΆα ααααααα‘αΎααα·αααΌααααΆαααΆαααααααααααααΌαααΆααααααΆααααΆαααααΎααααα·αα·α αααααααααα
ααΎαααααΎααΆααααα»ααααααααααααααα Yandex.Cloud α α αΎαααααα·αααΎα’αααααααΎ PostgreSQL αααααΆαααααααααα α αΎαααΆαααα‘αΎαα§αααααααααΆαα αααα’αααα’αΆα αααααΎαααΆαα ααααααΆαα‘αΌααΈαααα ααΆααααα αααααΊαα»ααα½αααΎα ααααα·αααΎα’αααα ααααΆα αααααααΎααΆαα ααααααΆαα‘αΌααΈααα Bouncer ααΉααα·ααααα ααααα αΌαα ααααα‘αΌααΈαααα ααΆααααα ααα
αααααΊααΆα§ααΆα αααααααΆαααα‘αΎαααΆαα ααααα‘αΌααΈααα
ααΎαααΈαααααα ααΎαααΆαααΆαααΆαααααααααΆααααΆαα ααααααΌααααααααΆααααα α ααΆααΆααα·αααΆαα αα αααα»α Cloud αααααΊαα·αα’αΆα αα αα½α ααααα ααΈααααααααααΆαααα α αααααααΉααααααα±ααα’αααααΌαααααααΆαα αααΎααααα’αααΈαααα½αααΆα ααα»αααααα αααα»αααΆαααα‘αΎαααααα’ααα ααααα·αααΎα’αααααααΌαααΆαααΆαα ααααααΌαααααααΆααααα§αααααααααΆαααα αααα»α Odyssey ααΆα’αΆα αα αα½α α
Odyssey ααΆαααΆααααα½ααα·αα·ααααααααααααΆαααΆαααααααααΆαα½α PgBouncer α ααΎαααΆααα»αααΌαααΌα ααααΆαααααααΎαααΆαααααΎααααααααααΆααααααααΆααΌα ααααΆα ααααα·αααΎααΆαα’αααΈαα½αααΆαα ααΌαααααΎααααΎαααΆα α¬αααΆαα αα ααΆααααΆααααα αΆαα ααΎ GitHub α αΎαααΎαααΉααααααααΆααααααααΆα αΆαααΆα αα ααα»ααααααΎαααΆααα»αααΆαα αααααααααα»αααΌα PgBouncer αα½α α αΎαα
α αΎαααΆααΆααα·α ααΎαααΆαααα α»ααααα»αααΆααααααΌαααααα ααΎαααΉααααα‘ααααα α»ααααααΆαααΆαααΆααααααααΌαααααΆααα·ααααααα α’αααααΉαααα½αααΆαααααααΆαα’αααΈααΌαα ααα»αααα’ααααα·αααααΌαααΆαααΆαααααα αΌααααα»αααΌαααααΆααα·αααααα α αΎααα·αααααΉαααααΆα’ααααα·αααααΌαααΆααα½ααααα αΌααα αααα»αααΆαααααα
αα»αααΆααααααααΌαααΆααα·ααααα»αααααΈαααα’αααααααΌαααΆαααΆαααααααΆ 100% ααΆαα½α PgBouncerα ααΎαβα’αΆα βααΆαβα₯αα·ααΆααβααΌα βααΉα Bouncer ααΊβααααΆααααβαα βααΆαβαα»ααααα·ααΆαα
ααΆαα’αα·αααααα
ααΆαααααΈαααΈα’αααΈααΌαααααα Odyssey α
α§ααΆα αααααΆαααΆααααααααΆ "ααα’αΆα / αααα" α ααΆααααααΆαα½αααΆααααΌαααΆαααααΎααΎααααΈααααΎαα αα α»ααααααααΆαααΌαααααΆααα·ααααααα ααααα·αααΎα’αααααααΌαααΆαα’αΆααααα Postgres αααααΆααααα’αααα’αΆα ααα’αΆαααΆαα αααα»αα§αααααααααΆαα ααααΎ pg_upgrade αααααΆααααααααΎααααα α αΎαααΈααΆαα’αα·αα·αα ααΆααΉαααΎααα α αΆααααΌα ααΆααΌαααααΆααα·αααααααααα»αααααΎαααΆαααΊαα αα»αααΆααααααααΌαααΆαααΆαααααΌαααΎααααααα»αααααααΈαα ααααα ααΆαβαα·αβααΆααβααβαα βα‘αΎαβαα ααα»ααααβαα·αβααΌαβαα·αβααΆααβα’αααΈβαααααβαααΆαβααΉαβααααΆαβααΆα (ααα αΎα)
ααΎαααΈαααααα αααααααα·αααααααΈαα½ααα αααα»α PgBouncer ααΊααΆαααΆαααααααααΆαα SCRAM Authentication αααααααΌαααΆαααΆαααααα±ααααΎααααααα»αααααααΆααααααα·αααααΎαααΆααα αααα»α Yandex.Cloud αααααα ααΆααααΈαααΆααα»αααΆααααα»αααααΆα αα·αααααΆααα
ααΌα ααααα αΎα αααα»αα ααααααΆααα’αααααΆ Odyssey ααααΎααΈα’αααΈ αααα»αααααΈαααα’αααα αααααααααΌαααααα·α α₯α‘αΌααααα
α’αααααΆαααΌαααααΆαααααα Odyssey αααααΉαααα’ααααΎαααααΆαααααααΆααααΈαα αααααΆααα Kiwi ααΊααΆααΆαα’αα»αααααααα·ααΈααΆα Postgres α αααααΊααααΌααΌ 3 ααΎααααα Postgres ααΊααΆααΆααααααααΆαααααααααααΆααα»α αα·ααααααααΆααααααα’αΆα ααααΆααααααΌαααΆαα αα½αααΆααααΌαααΆαα’αα»αααααα αααα»ααααααΆαααααΈααΈα
αααααΆααα Machinarium ααΊααΆαααααΆαααααΆαα’αα»αααααααααααα‘αΆαα αααααααΌα αα½ααα Machinarium αααααααΌαααΆααααααααΆααΆααΆαα½αααααα»αααααΆα ααα»ααααβαα»αβαααβααααΆα βααΆαβαα α‘α₯ ααααβααα»αααααα
ααααΆαααααααα Odyssey α ααΆααααΆαααΈαααααΆααααα coroutines αααα»αααααΎαααΆαα αααΆαααΈααααα’αα»ααααααΆαααα½αααααΆααααααΆαα TCP α αΌα αα·αα ααα αΆααα½αααΆαααα»αα ααααααααααα
α’ααααααααααΆααααααΆααα’αα·αα·ααααΆα αααΎαα’αΆα ααααΎααΆααααα»αααααααααααΆααα αααααααα‘αΆαααααΆααααααααΎαααΆααα»αααΌα αα·αααααΎαααΆααα·α αα ααΆαααααΌα ααΎααααΈαα»αααΆααααααΆααααααααααααΌαααΆααα αααα»αα’αΆαα
Odyssey ααααΌαααΆαααΆααααααααααααΎαα»αααααα Postgres αααααααΆαα ααΎαααααΆααααααααΎαααΆα install-check ααΆαααα Bouncer α αΎαααΆαααα Odyssey ααΎαααα½αααΆα null div α ααΆαααΆαααααΎαααααααΆα αααΎααααααΆααααααΉαααΆαααααΎαααααααααΆαααΆαααα·α ααααααααα·αααααααΆαααα·αααααΆααααΌα ααααΆαα αααα»α Bouncer αα·ααα αααα»α Odyssey α
ααΎαααΈααααααααΆαα’αααααΎαααααΆα αααΎααααααΆαααΆαααααΎαααααααααΆαααααα½ααααααα½αααα α αΎαααΎαααααΎααΆαααααΎααααααααααα½αααααΎααααΈααΆααααα Odyssey α
ααΎαααΈαααααα αααααΆαααααΆαααααααα ααΆααααααααααααΆααααααααΎα ααΎαααααΌαααΆαααααααααα»αααααααα Postgres + Odyssey, PgBouncer + Odyssey, Odyssey + Odyssey ααΎααααΈααααΆααααΆ ααααα·αααΎ Odyssey αααα αααααααααΆαα½ααα αααα»αααααΆααααα ααΆαααα ααααααΎαααΆααααααα ααΌα αααααΎαααααΉααα»αα
αα»α
ααΎαααααΎ Odyssey αααα»αααΆαααα·αα α αΎαααΆαα·ααα»αααα·αααααααααα·αααΎαααα»ααα·ααΆαααΆα’αααΈαααΆααα’ααααααΎαααΆαα αα αααααΊααΆα ααα»αααααα·ααααααΆαα·α αα ααα ααΆα§ααΆα ααα αα αααα»αααΆαααα·αα’αααΈαααααααααΆαααΎαααααααΎαααΆα αααααααα·ααααααααα·ααααααΎαααααΈ PostgreSQL Professional ααΆααααα·ααΆαααΆααΎαααΆαααΆαααα ααααΆαα’αααα αα αΆαα αα½ααααα·αααΆααα ααΎαααΆααααα½αααα ααα»ααααααΆααΆαααααααααΆααααα
αααααΆααααααΎαααΆαααααΎαααΆα§αααααααααΆααααααΆααααααααΆαααΆααααααΆαα TLS α αΌα αα·αααΆααααααΆαα TLS α ααα α αΎαααΆααααααΆαααααααΌαα±ααααΆααα·ααααΆααααααα’αα·αα·αα αα·ααα·ααααΆαααααααααΆαααΈαααα
αα·ααααΆαααααααααΆαααΈααα Bouncer αα·α Odyssey ααααΌαααΆαα’αΆαα‘αΎααα·αααα pcache αααααα½ααα ααα»αααααα·ααααΆααααααα’αα·αα·αααα·αα αΆαααΆα αααααΌαα’αΆαα‘αΎααα·αααΈ pcache αα ααααα Odyssey αααα’αΆα ααααΎααΆαααααααΆαααΆαααααααΎααα ααΈαααα»αααααΎαααΆααα αααα»αααααΎαααΆαααααααααααααΆαα’αΆααα·ααααΆαααααααααα αααβααΆαβααααΎβα±ααβααΎαβααααΆααβααα’αΎα αααααβααΆβαα·αβα αααΆαβαααβααΌαβααΎααααΈβααααααα ααααΌαααΆααααΎααΆαααααααΆαααΆαααΈααα’ααα ααα»αααααααααΆααααΈ 20 ααΆααααααΆααα αΌααααα»ααααααααΆαααααΆαααα αΆαααααΆααααα αΆααααα½αα―αα
Pluggable Authentication Method ααΊααΆαααααααΆααααα»αααΆααααααααααΆαααααααααΎα§ααααα Lunux αααααΆαααααΆααα αα αααα»α PgBouncer ααΆααααΌαααΆαα’αα»ααααααΆααααααααααΆααααααααα‘αΆαααΆα ααααα‘αααα½αααΎααααΈαααα αΆαααΆαααααΎαααααΈ PAM α αΎαααΆααααααααα‘αΆα PgBouncer ααααΆααααααααααααααΆααΆααααααΆαααα αα α»αααααα α αΎαα’αΆα ααααΎαα»αα±αααα½αααααααα αααα»ααααααααα‘αΆα PAM α
ααΎααα·αααΆαα’αα»ααααααΆαααααΆααα ααα»ααααΆαααααα½αα ααΎαααΆαααααααΆα αααΎαα α ααα»α’αααΈααΆαααΆααΎαααααΌαααΆαααΆ?
ααΈαααα»αααΆα’αΆα αααααΎααααα αΆαα αααα»αααα ααααα·αααΎα’αααααΆαααΆααααααααααΆαα PAM αα·αααΆααααααααααΆαααα·ααααααΆ PAM ααααααααααααααΆααααααααααΆαα PAM α’αΆα αααααΆαααααααΆαααααΆααααΌαααΆααααααααααΆααααααα·ααααααΆ PAM α αααααΆααΏααα½ααααααΎααα·αααΆααα½ααα»αα ααα»ααααααααα·αααΎα’αααα αααα½ααα»αααΆ α’αααα’αΆα ααααΎααΌα αααααΆαα
αα»ααα½α αα½ααααααΊααΆααΎαααΆααααααααα‘αΆααα½ααααααα½αααααΆααααΆαααααΆααα αΌαα α αΎααααααΆαααααα½αααααααΌαααΆαααααααα α’αΆααααααααααααΆαααααααααααΆαα αΆαααα TLS ααΉααααααααΉααααα α
αααααΆααααΆαααααα ααααα·αααΎα’αααααΆαααααααΈαααααΆααααααΆααααααΆαααααααΆα 20 ααααα½αααΆααΆααα’ααααΉαααααΌαααΆαααα½αααα α αΎααα ααΎαααααα’αα·αα·αα libpq ααΉαα αΆααααααΎαααΆαααΆαααα’αααΈαααααααΆα’ααα ααΆαααααΆαααΎαααΆα αΆααααΌα ααΆ 000 αα·ααΆααΈα
ααααα·αααΎαα½αααααΆααα’αααα·αα’αΆα αααα αΌαααΌαααααΆααα·αααααααααα»αααααααα½αααΆαααααα αα½ααααα·αα’αΆα αααα αΌαααΌαααααΆααα·ααααααααΆααα αααααα’αααΈαααΆααα’αααααα’αΆα ααααΌαααΆααααααααααααααααΆαααααΆααΆααααααααααααα·ααααααΆαα·αααααααα
ααΎαααΆααααααΆαααααα·ααααΆαααΆααΎαααΆαα αααααααααααΆαααααΈ PgBouncer αα ααΈααααααααΆααα·ααααααΆααΎαααΆααα·αα ααα½αααααΆααααααΆαα TCP αααααΎαααα½αααα
ααααα·αααΎααΎαααΎαααΆααΎααααα»αααα½αααααΆααααααΆαα ααα»αααααα ααΈαααα»ααα½ααααα·αααΆααααα αΆαααα ααΎαααΆαααα½αααΆααΆαα½α ααΎααααΈαα»αα±ααααααααααΆαααααΆα CPUα αααααΆαα±ααααΆααα·ααααααΆααΆαα αΆαααααααα»ααααααααΆαααααΆαααα ααααΆαα·αααααΌαααΆαα’αα»αααααααααΆααααΆααααααΆααααΆααα’αααααααΆααααααα ααα»αααααααΆαα αα ααΆααααΆαααααΆααααΆααααΉαα αΌααα αααα»αααΌαααααΆααα·αααααααααααΈααΆααΆααααα»αααΊαααααααΆααα
αααααΈαααα αΆαααααΌα
ααΎα’αααα ααααΎαα’αααΈααΆαααα’ααΆαααα Odyssey? ααΎβααΎαβαααααβαααα½αβααΎααααΈβα’αα·ααααβαααα½αβααΎαβα’αααΈ α αΎαβααΎβααΎαβααααΉαβα’αααΈβααΈβαα αααα?
αα·αααααΉαααααΈα αΆ ααααΆα 2019 α
αααααΆα’αααΈααααααααΈαααα αΆαααααΌα Odyssey ααΎααα αααα»αααααΈα αΆα
- ααΎαα ααααΆαααΆααααααααααΆαα SCRAM αα·α PAM α
- ααΎαα αααααααΌαααααΎα’αΆααα αααα αΆαα
- αααα»αα ααα αΆααααααΎαα‘αΎααα·αααΆαα’ααΈαααΊαα·αα
- αα·ααααααααΆααααα»αααΆαααα’αΆααα ααΎαααΆαααΈαααα
ααΆαααααααΆααααααααΈαααα αΆαααααΌααααααααΌαααΆααααα αα α αΎααα·ααααααααα½αααΎαααα α αΎααααααΊααα’α ααΌα ααααααΌααα·ααΆααααΆα’αααΈα’αααΈααααα αααααα α αΎααααααααααααααααα
ααΆαααααΆααααα αααα»α Postgres α αΆααααααΎαααΈ 10 ααΆα’αΆα αααααΆαα session_attrs αα αααααααΆααα α’αααβα’αΆα βααΆαβαααααΈβαααΆαααΈαβααΌαααααΆαβαα·ααααααβααΆααα’ααβαααα»αβααΆαβαααααΆαα α αΎαβαα·ααΆαβααΆβα ααα»βα’αααΈβααΆαβααΆβα’αααβαα βααΆααβααΌαααααΆαβαα·ααααααα ααααα α¬βα’αΆαβααβααα»αααααα α αΎαα’αααααΎααααααα½αα―αααΉαααααΎαααΎααααΆαααΈαααααΌααα αααα»ααααααΈαααααΆααα αΌαα α·ααααααα»ααααααααααααααΌαααΆααααα session_attrs α
ααα»αααααααα αΆααΆαα½ααα·ααΈααΆααααααααααΊααΆααΆαα·ααααααααααααΆαααΊααααΆαααααΆαα ααααα α’αααα’αΆα ααΆαααΆαα αααααα½αα ααα½ααααααΊααααΆααααα»αα ααα½ααααααααΆααααα·αα’αΆα ααα½αααααΆααααααΆααααααΆααααααααα’αααα ααΎααααΈααΎαααααΎαααΆααα»αααΆααααααααααααα½αα’αΆααα ααΎα αααα ααΎαααααΌαααΆαααααααααααΆααααα Odyssey αααα»αααΆααα·αααααΎαααΆααα ααααααααΆαα·αα’αΆα α’αΆαααΆαα
Odyssey ααααΌααααα ααΌαααααΆααα·ααααααααΈααααα½ααα ααααα½αα αΎααα»αα ααααΆαα ααααααΈαααα α αΎαααααα·αααΎααΆααΆαααααααααααααα ααΌααα»αα’αα»ααααΆαα±ααααααΎααααΈα αΌααα αααα»αααΌαααααΆααα·αααααα ααααΆααα’αα·αα·ααααΆααΆααααΌαα αΆααααααΎαααΆααααααΆααα‘αΎααα·α α αΎαα’αΆα ααααΎαααΎααααΆαααΈαααααααααααΎααααΈααααα·ααααα·ααααΎα ααΆβααΉαβα’αα»ααααΆαβα±ααβααΌαααααΆαβαα·ααααααβααααΆαβααΆαααΊααααΆαβααβααΆαβα ααααβα‘αΎαβαα·αβαααΆαβααΆααβαα αα α αΎαβαααα‘ααβααβαα·αβααααβαααβααΎααααΈβααααΎαβααβααΉαβααααΎα
ααΆαα·ααΆααααα»αααΆαααααααααααααΆαααααΆααααΆαα’αα»αααααααααααΆααΆαααααααΎαα αα α ααα»αααααααα»ααααααΉαααΆαα·αααα 2,5 ααααΆαααΌα αα·ααααα½αααΆαααΆααααααααα»αααΈ PgBouncer ααα αααααΊααΆαααααααα·αααααααααα»αα ααααΎααα αααα»α Odyssey α
ααα»ααααααΆαααα ααααΈαααααααΆααααααααΆααααα ααα ααααα·ααα·ααΈααΆαααΆααα ααΎ proto3 α α αΎααααααΊααΆαααααααααααααααΆααααααα ααααΈαααααααΆααααααααΆααααα ααααα»αααααΌαααΆααααααΎαα‘αΎααααααα»αααααααααΆαα ααΆααααααααα α αΎαααΎαα’αΆα ααΆααααααΆααααααΉαααΆαα ααΎααΆααααααΆαααααΆαααΈααααα½αα ααα½αα’αα·αα·ααααΆαααααΎαα»αα±αααααααΎαααα ααααΈαααααααΆααααααααΆααααα αα α αΎααααααΈααΆααααα·ααααα·ααΆαααααΌαααΆααα·αααααα ααααΎααα ααααααΌααααααΆααΆααααααΆαααααΆααααΆαααΈααα αα·αα’αα·αα·ααα
ααα»αααααα ααΈααα ααΆααα·αααααααααΆαααα»αααΆαααααααΆααΎαα‘αΎα ααΈαααααααααΆααααΆαααα·ααΆαααΆ α’αααααααΌααααααΈααααααααααα ααααΈαααααααΆααααααΆααααα αααααααΆαααΈααααααααΆααααααΎα αα·αα αααααααααΆααααααΆαααααΆαααΈααααααΆαα’αα·αα·ααααΆααα’ααααααααααΎαααΆααααααΆαααααΆαααΈαααααα αααααΊα’ααααααααΆααααααΎαααα ααααΈαααααααΆααααααααΆααααα αααααααα
Andres Freund ααΆααα·ααΆαααΆααααα·αααΎα’αα·αα·ααααααα’ααααααααΆααααααΎαααα ααααΈαααααααΆααααααααΆααααα ααα½α α αΎααα αααα»αααΆααααααΆαααααΆαααΈααααααααααααααααΆαααααααααΎαααΆαααααΆααααΆααα ααα»ααααααΆα αΆααααΈααΌα ααΆαα»αααααα·α αααα»αααΆαααααα·ααααα·ααααΎαα αααα»αααΌαααααΆααα·αααααααααα½αα±ααα’αα·αα·αα ααα»ααααααΆαααααααααααα’αααα’αα·αααααααααααααααα·ααΈααΆααααααΆααα’ααααααααααΆαα½αααΌαααααΆααα·αααααα ααΆααΉαααΆαααΆαααΆααααα½αααααα·αααΎααΆααααααΌαααΆααααααααΆααααααΆαααααααΆααααααΆααααα ααΆαααααΎαααααΆααααα αααααααα
αα·ααααααααα·ααααα½αααααααααΎαααααΌαα’αα»ααααα α₯α‘αΌααααααΎαααΆαααΆααααα½ααα·αα·ααααααααααΌαααααΆααΆαα½α PgBouncer α ααΎαα’αΆα αααα‘αααααααααΆααααα·ααααα·αααα½αααΆαααααα ααα»αααααααααααΆααΆαααααααΊααΈαα»ααα ααΆαααΆααααααα αααα»ααααααΈαααααα: αααααααααΆαα αααααααα - ααΆααααα ααα»ααααααααααααΆααΆααα»αααΆαααα’α ααΆβαα·αβαα·αβααα
ααΎαααααΌαα’αα»ααααααΆαααΆαααααααααΆααααΆααααααααΉααααα αΆαααΆααΆααααα½αααΊαααααααααααααΆαααααΆα αα·αααααΎα±ααααΆααααα½ααα·αα·αααααΆααααα’αΆα ααα½αααααΆαα
α’αααΈαααααααΆαααααα»ααααααΊααΆαααα»αα ααααΆααααα 1.0 (αααα 1.1 ααααΌαααΆαα ααααααΆααα½α α αΎα) α ααΆααα·αααΊααΆ Odyssey α₯α‘αΌαααααααα·ααα αααα»ααααα 1.0rc αααααΊ αααααααα ααααααΆαα α αΎααααα αΆααΆααα’ααααααααα»αααΆαααΆααααααΈααααΌαααΆααα½ααα»αααΆαα½αααΉαααααααΌα ααααΆααΆαααααα»α ααΎααααααααΆαααα ααααΆαα’αααα αα αΆαα
ααΎαααα 1.0 ααΉαααΆαααααααΆαααΆαααααΆααααΎα? ααΎααααα»αααΆαα Odyssey αα ααΆααααΌαααααΆαααααααΎαα ααΆααααΌαααΆαααααΎαααΆααα ααΎααΌαααααΆααα·ααααααααααααΎααα½α α αΎα ααα»αααααα ααααααααΆααΆαααα 1 ααααΎαααα»ααα½ααα·ααΆααΈ αααααΎαα’αΆα αα·ααΆαααΆαααΆ αααααΊααΆααααα ααααααΆα α αΎααααααΊααΆαααααααα’αΆα ααααΌαααΆαααα α ααΆ 000 α
ααα»ααααα½αα ααα½ααα αααα»ααα ααααααΆααα½αααΆαααα 1.0 αα½αααΆαααΆαααα’αΆα αα·α SCRAM α ααα»αααααααααΉαααΆααααααΆ ααΎαααΉαααααΌαααΆααα αααααααααααΆααααΎααααΈααα·α ααΈαααααααΆαα SCRAM αα·αααΆαααα’αΆααα·αααΆααααααΌαααΆααααααΆαααα α‘αΎαα ααα»αααα ααΆαα αααΎαααααααΆαααα αΆαααααΉαααααΌαααΆααααααααΆααααΆαααΆαααα ααα
αααα»ααααα»ααααα αΆαααααΎαααααα’αααα αααα»αβααβα ααβααΉαβαααβααΆβα’αααβααΆαβαααα αΆβα’αααΈβααΆαα½α Bouncerα ααααα·ααΆααααΆαα½αααα αααα ααααΆααΎαα’αΆα α’αα»αααααα»αααΆααα½αα ααα½ααααα’αααααααΌαααΆαα
αααααΆααΆααααα αααααααααα»α αααα»αα ααααααΆααα’ααα ααΌαα’ααα»α!
αααα½α
ααααα·αααΎαααα»αααααα application_name ααααΆαααααα½ααααααααα»α ααΎααΆααΉαααααΌαααΆααααααΌααααααααΆαααααΉαααααΌα αα½αααΆααααΆααααα αΌαααααα·ααααα·ααΆααα αααα»α Odyssey αααα¬αα?
Odyssey α¬ Bouncer?
αα Odyssey α αα αααα»α Bouncer ααΆααααΌαααΆααααα ααα
ααΎαααΉαααααΎαα»ααα½αα
α αΎαααααα·αααΎααΆααααααΆαααα·αααααΆαααααααααα»ααααααΎααΆααααααΆαααααααααα ααΎααΆααΉαααααΌαααΆααααααΌααααα¬αα?
ααΎαααΉααααααΎααααα»ααααααΆαααΆααααααααΆααα’αααααααΆααα αααα»ααααααΈα αααα»ααα·αα’αΆα ααααΆααααΆααΎ application_name αααα·ααα αααα»ααααααΈαααααα αααα»ααα·αααΆαααα»αααΆαααΎαααΆαααα ααΈαααα ααΎαααΉαααααααααΆαααΆααααααααΌα ααααΆααΆααα’ααα ααΆαα½αααΉαααααΎαα½α αααα»αααΉαααααΎα’αααΈααααααααΆααααααααΌαααΆαααα‘αΎααααα’αα·αα·ααααα‘α»ααααα αΆααααααΎαα
α’ααα»α Andrey αααααΆαααααΆαααΆααα! αααΆαααΆαααααα’! αααα»αβααΈαααΆαβααα Odyssey αααα»αβα’αα·ααααβααΏαβααΆαβαα»αβααΆααβααΆααΈα αααα»αα ααααααααΌα αααα ααΎαααΆαααααΎα±ααα’αααααΆαααΆααααααΆααααααααα·ααααααα αααΎααα½α α αΎα ααΌα αααα Odyssey α’αΆα ααααΆαααα ααΌαααααΆααα·ααααααααααααααααΆαααα»ααααααααΆαααααΆ αααααΊααΆααααα α αΎααααααΆααααααααΆαααααααααααααααααα·αα ααααααΈαααααΆααααΈααΆααααΆαααα
ααΆα αααα»αα αΆααααΌα ααΆα αα αΆαααΆααα·ααΆααααΆαααα α₯α‘αΌααααααΆααααααααααα»αααΆα αααΎαα ααα»αααααα·αααΆαααΆαααααΆααααααΌααααΆααα½αααααα αα ααΆαααΎα ααΎαααααΌααααααααΎααααΆαααΈαααααΆααΆαα ααα α αΎααααααΆααΆααααΆαααααΆαααΎαα‘αΎα αααααΉαα α pg_recovery α αααα»αβααΆαβαα·ααΈβαααααααΆαβααβααΆαβαααβααΉαβααΆβααΎαβαα·αβααΆαβααβααβααα αΆααα α αΎαβααΎβααΎαβαα½αβαααβααΈβααα α»αβα¬βαααΆαβααΆ? αααααΊαααα·ααα½αα±ααα αΆααα’αΆααααααααΆαααα»αααααΌαααΆααα·ααΆααααΆα αααααααα·ααααααα ααααα·αααΎα’αααααΆααααααααααααααΆαα C αααααΆααΌαα ααα’ααΆααα
αααα αΆααααΆαααααΎααΆαααααααΆαααΎααΆαα ααααααααΆααΆαα αΆααα’αΆαααααααααααΆααααΎαααααα ααΈαααααααΎαα ααααααΎα±ααααΆαα’αα»αααααα ααααααααααΆαα ααααααΆαααααααααΆααααααΆααααα’αΆα ααααΎαα ααΆααααααΆααα’αααα’αα·αααααααααααα·ααΈα ααα»αααααα ααΈααα αααα»αα αααααααααααααααααα αααααΊ ααααααααΎααΆα±ααα αααΆαα ααααααααΎααΆα±ααααΆαααα’α
αααα½αααααΆααααααΉαααΆαα αααααααααα ααΆααααααΆα’αααααΆααααα·αα ααααααΆα αααΎαα α αΎαααΆα αααΆααααΆααααΆαα½ααααα α ααααααΉαααΆαααα·α ααΆααα αααααααΆααααΆααααααΆαααααααααΆα’αΆα ααΆαααΆααα»αααααΆα α’αααααΆααα·ααΆαααΆ ααΆααα»αααααΆαααα·ααααααα’αΆα ααΆαααΌα ααΆ ααΆααΉααα·ααααααα’αΆααΈαααααααααα’ααα α αΎαα’αααααΉααα·ααα ααΈααααα αΌααααααΆααααΌαααΆαα ααααα αααα»ααααααΆαα½αααααΆαααααααα·αααΎα’ααααα·αααΆααα ααΈαααααΌαα αΎαα αΆααααααΎααα ααααα·αααααααααααααΌαααΆαααΉααα·αααΆαααααΆααααα αααααΊααααα·αααΎααΎααα ααα₯αααααα αααααααΆαααααααΆαααα ααΈαααααααΌαααΆααααα α‘αΎα ααα»αααααα αααα»αααααΆαααααααΆααα ααααααΉαααΊαααααα·α α
ααΆαβααΆβααΆβααΏαβαα·αα pcache ααΉααα·αααΆααααα»ααα·αααααααααα’αααα ααααΆααα ααααΆαααααααΆαααα·αααΉααα·αααΆαααααααΆαα’αααΈααΆααΆααααα’αααα ααααΆα ααααααααΉααα·αααΆααααα½ααααααΆαααααα ααΆααΉααα·αααΆαα’αααΈααΆααα’ααα
α αΎααα ααααααα’αααααΆαα ααααααααααααα½αα ααα½α α αΎαα’αααααααααααΆαα ααααααααΈαα ααΈααα αααααααααααΆα αΆααααααΎα α’αααΈααααααααΆαααΊαα·αααα’αα αααα»αααΆ αααααΊααΆαααααΎαααααΆαααααααΆααααααααΆα
αααα»αααΆαααα½ααααα·αα αα·ααΈααΆαααααααααΉαααααΌαααΊααααΌαααααΎαααΆααααα½ααα½αααΆαααΌα ααΎααΆαα ααααααΆαα»ααα·α αααααΉαααααΎα±ααααααΆαααααααΆαααααα α‘αΎαα αα·ααΆαααΆαα½α ααΎαααΆαααααααααααΆ ααΎαααααΌαααΊααααΆαααΈααααααααα·αααΎαααΈ 10 αα·ααΆααΈα α αΎαααααααααααααα·αααααΌαααΆαααΆαααααα αΌααααα»αααααααα½ααα ααα»αααααααΆααααΌααααααΆααα’αα·αα·αααα½αα ααα½αα
ααΆα αααααΎαααααααα
αααααΆαααα·αααα’α ααα»ααααααααΌαααΎαααααΌαα’αα»ααααααΆααα·ααααα ααααΌαααΎαααααΌααα·α α αΎααααααΆααααααΎαααΉααα·αααΈααααααΎαα αααααΊααΆαα»αααΆαααα’ααα αΆααααα½αααΎααααΈααΎαααααΎαααΆααααΆααααΌαα
Nginx ααΆααααααΎααααα slowly start
αα
αααα»αα
ααααααααααΆαααααΆαααΈαααα α αΎαααΆαααααααΎαααααα»αααααα·α
αααα α α
ααΆα αααα·αααα’ααα αΆααα ααΎαααΉαααΆαααααααΆαα αααααΎααα αααααΈαααα
ααααα: www.habr.com