αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹ Andrey Borodin αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž”αžΆαž“αž‚αž·αžαž‚αžΌαžšαž–αžΈαž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“ PgBouncer αž“αŸ…αž–αŸαž›αžšαž…αž“αžΆαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹ αž“αžΆαžœαžΆ OdysseyαžŠαžΌαž…αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž”αžΆαž“αž”αž‰αŸ’αž…αžΌαž›αžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž•αž›αž·αžαž€αž˜αŸ’αž˜αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αž™αžΎαž„αž“αžΉαž„αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž’αŸ†αž–αžΈαž˜αž»αžαž„αžΆαžšαžšαž”αžŸαŸ‹αž§αž”αž€αžšαžŽαŸαž‘αžΆαž‰αžŠαŸ‚αž›αž™αžΎαž„αž…αž„αŸ‹αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαŸ– αžœαžΆαž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž”αŸ†αž–αŸαž‰αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžšαž”αžŸαŸ‹αž™αžΎαž„αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαžΎαž˜αŸ’αž”αžΈαž’αž—αž·αžœαžŒαŸ’αžαžŸαž αž‚αž˜αž“αŸαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ” ធូឌីសស៊ី.

វីដេធូ:

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αžŸαž½αžŸαŸ’αžαžΈβ€‹αž’αŸ’αž“αž€β€‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αŸ’αž“αžΆ! αžαŸ’αž‰αž»αŸ†αžˆαŸ’αž˜αŸ„αŸ‡ Andrew αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž“αŸ… Yandex αžαŸ’αž‰αž»αŸ†αž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž αŸ” αž αžΎαž™αžαŸ’αž„αŸƒαž“αŸαŸ‡ αž™αžΎαž„αž˜αžΆαž“αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž˜αž½αž™ αž’αŸ†αž–αžΈαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ αž€αž»αž„αžαžΊαž“αŸαžšαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžŠαžΉαž„αž–αžΈαžšαž”αŸ€αž”αž αŸ… Connect Pooler αž‡αžΆαž—αžΆαžŸαžΆαžšαž»αžŸαŸ’αžŸαžΈ αž”αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž‰αž»αŸ†αž˜αž€αŸ” αžαŸ’αž‰αž»αŸ†β€‹αž–αž·αžβ€‹αž‡αžΆβ€‹αž…αž„αŸ‹β€‹αžšαž€β€‹αž–αžΆαž€αŸ’αž™β€‹αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸβ€‹αž›αŸ’αž’β€‹αžŠαŸ‚αž›β€‹αž‚αž½αžšβ€‹αžαŸ‚β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αž‘αžΎαž„β€‹αž€αŸ’αž“αž»αž„β€‹αž’αž€αŸ’αžŸαžšαžŸαž·αž›αŸ’αž”αŸβ€‹αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαŸ”

αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‚αžΊαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αžŽαžΆαžŸαŸ‹ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αžΆαž…αŸ’αžšαžΎαž“ αž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ αž αžΎαž™αž’αŸ’αž“αž€αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŠαžΉαž„αž’αŸ†αž–αžΈαžœαžΆαž‘αŸαŸ” αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž˜αžΆαž“αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αž‚αŸ’αžšαž”αŸ‹αž‘αžΈαž€αž“αŸ’αž›αŸ‚αž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„ Postgres αžœαžΆαž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΌαž…αž“αŸ„αŸ‡αž‘αŸαŸ” αž αžΎαž™αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆ (αž“αŸ… HighLoad++ 2019) αž˜αžΆαž“αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž˜αž½αž™αžŠαŸ„αž™ Nikolai Samokhvalov αž’αŸ†αž–αžΈαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžŸαŸ†αžŽαž½αžšαž“αŸ…αž€αŸ’αž“αž»αž„ Postgres αŸ” αž αžΎαž™αžŠαžΌαž…αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž™αž›αŸ‹αž αžΎαž™ αž˜αž“αž»αžŸαŸ’αžŸαž”αžΆαž“αž˜αž€αž‘αžΈαž“αŸαŸ‡αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαŸ†αžŽαž½αžšαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž™αŸ‰αžΆαž„αž›αŸ’αž’αž₯αžαžαŸ’αž…αŸ„αŸ‡αžšαž½αž…αž αžΎαž™ αž αžΎαž™αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž˜αž“αž»αžŸαŸ’αžŸαžŠαŸ‚αž›αž”αŸ’αžšαžˆαž˜αž˜αž»αžαž“αžΉαž„αž”αž‰αŸ’αž αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸαž€αž˜αŸ’αžšαž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž”αžŽαŸ’αžαžΆαž‰ αž“αž·αž„αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž“αž’αžΆαž“αŸ” αž αžΎαž™αž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžαŸ’αž›αŸ‡ αžœαžΆαž’αžΆαž…αž˜αžΆαž“αž€αžΆαžšαž›αŸ†αž”αžΆαž€αž€αŸ’αž“αž»αž„αž“αŸαž™αžαžΆαž”αž‰αŸ’αž αžΆαž˜αž·αž“αž…αŸ’αž”αžΆαžŸαŸ‹αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

Yandex αž˜αžΆαž“ Postgres αŸ” αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ Yandex αž‡αžΆαž…αŸ’αžšαžΎαž“αžšαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ Yandex.Cloud αŸ” αž αžΎαž™αž™αžΎαž„αž˜αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸ†αž“αž½αž“ petabytes αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž”αžΆαž“αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹αž˜αž½αž™αž›αžΆαž“αžŸαŸ†αžŽαžΎαž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈαž“αŸ…αž€αŸ’αž“αž»αž„ Postgres αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž αžΎαž™αž™αžΎαž„αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž…αž„αŸ’αž€αŸ„αž˜αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαžŸαž˜αžšαž˜αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ - αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžαŸ’αž“αžΆαŸ†αž„αž…αž˜αŸ’αž”αž„αž…αž˜αŸ’αž”αž„αž“αŸƒαžαŸ’αž“αžΆαŸ†αž„ αž€αžΆαžšαž…αž˜αŸ’αž›αž„αž’αž˜αŸ’αž˜αžαžΆαž–αžΈαžš (αžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜ αž“αž·αž„αž’αžŸαž˜αž€αžΆαž›) αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€ αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž“αŸƒαžŸαŸ†αžŽαžΎαž’αžΆαž“αž“αŸ…αž›αžΎαž€αžΆαžšαž…αž˜αŸ’αž›αž„αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αžαŸ’αž“αžΆαŸ†αž„αž…αž„αŸ’αž€αŸ„αž˜αž“αžΈαž˜αž½αž™αŸ—αž‚αžΊ Postgres αžŠαŸ‚αž›αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎ Postgres αž“αž·αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ αž§αž”αž€αžšαžŽαŸαžαž—αŸ’αž‡αžΆαž”αŸ‹αž€αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž•αž„αžŠαŸ‚αžšαŸ” αž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž αŸŠαž»αž˜αž–αŸαž‘αŸ’αž’ αž“αž·αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ„αž›αž”αŸ†αžŽαž„αž…αž˜αŸ’αž”αž„αžšαž”αžŸαŸ‹αžœαžΆαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αžαžΎαž’αŸ’αžœαžΈαž‡αžΆαž‚αŸ„αž›αž”αŸ†αžŽαž„αžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹?

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

Postgres αž‘αž‘αž½αž›αž™αž€αž‚αŸ†αžšαžΌαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž“αŸαŸ‡αž˜αžΆαž“αž“αŸαž™αžαžΆαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž½αž™αž‚αžΊαž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž½αž™ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαžΆαž„αž€αŸ’αžšαŸ„αž™ Postgres αŸ” αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αž“αŸαŸ‡αž˜αžΆαž“αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“ αžŠαŸ‚αž›αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžαŸ’αž›αŸƒαžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž€αžΌαžŠ Postgres αž˜αžΆαž“αž’αžΆαžšαŸαž˜αž½αž™αž αŸ…αžαžΆ procArrayαŸ” αžœαžΆαž˜αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž’αŸ†αž–αžΈαž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž”αžŽαŸ’αžαžΆαž‰αŸ” αž αžΎαž™αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš procArray αž˜αžΆαž“αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž›αžΈαž“αŸαž’αŸŠαŸ‚αžš αž–αž½αž€αž‚αŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž’αžΆαžšαŸαž‘αžΆαŸ†αž„αž˜αžΌαž›αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž”αžŽαŸ’αžαžΆαž‰αŸ” αžœαžΆβ€‹αž‡αžΆβ€‹αžœαžŠαŸ’αžŠβ€‹αžŠαŸβ€‹αž›αžΏαž“β€‹αž˜αž½αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž‡αžΆαž˜αž½αž™β€‹αž“αžΉαž„β€‹αž€αžΆαžšβ€‹αžαž—αŸ’αž‡αžΆαž”αŸ‹β€‹αž”αžŽαŸ’αžαžΆαž‰β€‹αž…αžΌαž›β€‹αž€αžΆαž“αŸ‹β€‹αžαŸ‚β€‹αž…αŸ’αžšαžΎαž“ αž’αŸ’αžœαžΈαŸ—β€‹αž“αžΉαž„β€‹αž˜αžΆαž“β€‹αžαž˜αŸ’αž›αŸƒβ€‹αžαŸ’αž›αŸƒβ€‹αž‡αžΆαž„β€‹αž”αž“αŸ’αžαž·αž…αŸ” αž αžΎαž™αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αžœαžΈαŸ—αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžαŸ’αž›αŸƒαž‡αžΆαž„αž”αž“αŸ’αžαž·αž… αž’αŸ’αž“αž€αž’αžΆαž…αž”αž‰αŸ’αž…αž”αŸ‹αž€αžΆαžšαž”αž„αŸ‹αžαŸ’αž›αŸƒαžαŸ’αž–αžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž”αžŽαŸ’αžαžΆαž‰αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž˜αžΆαž“αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž…αŸ†αž“αž½αž“ ៣ αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αŸ–

  • αž“αŸ…αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”
  • αž“αŸ…αž›αžΎαž•αŸ’αž“αŸ‚αž€αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ”
  • αž αžΎαž™αžšαžœαžΆαž„, αž“αŸ„αŸ‡αž‚αžΊ, αž‚αŸ’αžšαž”αŸ‹αž”αŸ’αžšαž—αŸαž‘αž“αŸƒαž”αž“αŸ’αžŸαŸ†αŸ”

αž‡αžΆαž’αž€αž»αžŸαž› αž’αžΆαž„αž‘αžΉαž€αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž€αŸ†αž–αž»αž„αžŸαŸ’αžαž·αžαž€αŸ’αžšαŸ„αž˜αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ” αž˜αž·αžαŸ’αžαž—αž€αŸ’αžαž·αžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸ… PostgreSQL Professional αž’αŸ’αžœαžΎαžšαžΏαž„αž“αŸαŸ‡αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αŸ” αž–αŸαž›β€‹αžŠαŸ‚αž›β€‹αžœαžΆβ€‹αž“αžΉαž„β€‹αž›αŸαž…β€‹αž‘αžΎαž„β€‹αž‚αžΊβ€‹αž–αž·αž”αžΆαž€β€‹αž“αžΉαž„β€‹αž‘αžŸαŸ’αžŸαž“αŸαž‘αžΆαž™αŸ” αž αžΎαž™αž€αžΆαžšαž–αž·αžαž™αžΎαž„αž˜αžΆαž“αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž–αžΈαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αžšαžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαŸ” αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αŸ’αžšαž»αž˜αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αž’αžΆαž„αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž’αžΆαž„αž…αŸ†αž αŸ€αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αžΊαž‡αžΆαžœαž·αž’αžΈαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ†αž•αž»αžαŸ” αž αžΎαž™αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆαž’αžαž·αžαž·αž‡αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž’αŸ’αž“αž€αž“αžΌαžœαžœαž·αž’αžΈαž˜αž½αž™: αž”αž„αŸ’αž αžΆαž‰αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžšαžΆαž”αŸ‹αž›αžΆαž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΌαžŠαž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžšαžΆαž”αŸ‹αžŸαž·αž”αž‘αŸ…αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αž€αžΎαžαž‘αžΎαž„αž‚αžΊαžαžΆαž“αŸ…αž…αŸ†αžŽαž»αž…αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αž„αŸ‹αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™ αž’αŸ’αž“αž€αž…αž„αŸ‹αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αžœαžΆαž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž’αŸ’αž“αž€αžŠαžΉαž„αžαžΆαž’αŸ’αž“αž€αž˜αžΆαž“αžαŸ†αž”αž“αŸ‹αžŠαŸ‚αž›αž’αžΆαž…αžšαž€αž”αžΆαž“αž‡αžΆαž…αŸ’αžšαžΎαž“αž‘αŸ€αž αž˜αž‡αŸ’αžˆαž˜αžŽαŸ’αžŒαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž αžΎαž™αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž”αžΌαž€αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαžšαž”αžŸαŸ‹αž—αžΆαž‚αžΈαž’αžαž·αžαž·αž‡αž“αž“αžΆαŸ†αž‘αŸ…αžšαž€αž…αŸ†αž“αž½αž“αžŠαŸαž…αŸ’αžšαžΎαž“αŸ” αž’αŸ† αŸ— αž˜αžΆαž“αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž”αŸ’αžšαž αŸ‚αž› 10 αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž‚αŸ‚αž˜αžŠαŸ‚αž›αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αž˜αŸ’αž˜αžαžΆαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈ proxy poolers αž“αŸ„αŸ‡αž˜αžΆαž“ poolers αž–αžΈαžšαžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαžšαžΏαž„αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž–αž½αž€αž‚αŸαž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž‡αžΆαž’αŸ’αž“αž€αž αŸ‚αž›αž‘αžΉαž€αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αž‘αŸαŸ” αž–αž½αž€αž‚αŸαž‚αžΊαž‡αžΆαž’αžΆαž„αž αŸ‚αž›αž‘αžΉαž€ + αž˜αž»αžαž„αžΆαžšαžαŸ’αžšαž‡αžΆαž€αŸ‹αž‡αžΆαž„αŸ” αž“αŸαŸ‡αŸ” Pgpool ΠΈ Crunchy-αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈ.

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž’αž€αž»αžŸαž› αž˜αž·αž“αž˜αŸ‚αž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαžαŸ’αžšαžΌαžœαž€αžΆαžšαž˜αž»αžαž„αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž“αŸαŸ‡αž‘αŸαŸ” αž αžΎαž™αžœαžΆαž“αžΆαŸ†αž±αŸ’αž™αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆ poolers αž‚αžΆαŸ†αž‘αŸ’αžšαžαŸ‚ session pooling αž–αŸ„αž›αž‚αžΊ client incoming client αž˜αž½αž™ outgoing client αž‘αŸ…αž€αžΆαž“αŸ‹ databaseαŸ”

αžœαžΆβ€‹αž˜αž·αž“β€‹αžŸαŸαž€αŸ’αžαž·αžŸαž˜β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž‚αŸ„αž›αž”αŸ†αžŽαž„β€‹αžšαž”αžŸαŸ‹β€‹αž™αžΎαž„β€‹αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αž™αžΎαž„β€‹αž”αŸ’αžšαžΎ PgBouncer αžŠαŸ‚αž›β€‹αž’αž“αž»αžœαžαŸ’αžβ€‹αž€αžΆαžšβ€‹αž”αž‰αŸ’αž…αžΌαž›β€‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš αž–αŸ„αž›β€‹αž‚αžΊβ€‹αž€αžΆαžšβ€‹αžαž—αŸ’αž‡αžΆαž”αŸ‹β€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž”αž˜αŸ’αžšαžΎβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„β€‹αž“αžΉαž„β€‹αž€αžΆαžšβ€‹αžαž—αŸ’αž‡αžΆαž”αŸ‹β€‹αž’αžαž·αžαž·αž‡αž“β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αžαŸ‚β€‹αžšαž™αŸˆαž–αŸαž›β€‹αž“αŸƒβ€‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšβ€‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž“αŸ’αž‘αž»αž€αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸαŸ‡αž‡αžΆαž€αžΆαžšαž–αž·αžαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“.αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž”αž‰αŸ’αž αžΆαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž…αž„αŸ‹αžœαž·αž—αžΆαž‚αžŸαž˜αŸαž™αž˜αž½αž™ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž…αžΌαž›αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αžΊαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αŸ” αž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž”αžΆαž“αž˜αž€αž‡αžΆαž˜αž½αž™αž€αžΆαžšαžœαž·αž›αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰ αž αžΎαž™αžŠαžΌαž…αž˜αŸ’αžŠαŸαž…αžŠαŸ‚αž›αžœαžΆαž€αŸ’αž›αžΆαž™αž‡αžΆαž€αžΆαžšαž›αŸ†αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αžœαž‚αŸ’αž‚αž“αŸαŸ‡αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎ application_name_add_host αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžœαž·αž’αžΈαž˜αž½αž™αž“αŸ…αžαžΆαž„ Bouncer αžŠαžΎαž˜αŸ’αž”αžΈαž”αž“αŸ’αžαŸ‚αž˜αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αž‘αŸ… application_name αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚ application_name αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž”αž“αŸ’αžαŸ‚αž˜αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž“αŸ…αž›αžΎαž€αŸ’αžšαžΆαž αŸ’αžœαž“αŸαŸ‡ αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžŽαŸŒαž›αžΏαž„αž‚αžΊαž‡αžΆαžŸαŸ†αžŽαžΎαž–αž·αžαž”αŸ’αžšαžΆαž€αžŠ αž“αž·αž„αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αžŽαŸŒαžαŸ€αžœαž‚αžΊαž‡αžΆαžŸαŸ†αžŽαžΎαžŠαŸ‚αž›αž αŸ„αŸ‡αž αžΎαžšαž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž αžΎαž™αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαž“αŸαŸ‡αž‚αžΊαž…αŸ’αž”αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ application_name αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚αž€αžΆαžšαžαžΆαž˜αžŠαžΆαž“αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αž·αž“αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αžαž“αŸ…αž€αŸ’αž“αž»αž„ Bouncer αž’αŸ’αž“αž€αž˜αž·αž“αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αž’αžΆαž„αž˜αž½αž™αž”αžΆαž“αž‘αŸ αž–αŸ„αž›αž‚αžΊαž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ αž€αŸ’αž“αž»αž„αž˜αž½αž™αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αžαžΎαž“αŸαŸ‡αž“αžΆαŸ†αž‘αŸ…αžšαž€αž’αŸ’αžœαžΈ? αž’αŸ’αž“αž€β€‹αž˜αžΆαž“β€‹αžŸαŸαžœαžΆβ€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αž•αŸ’αž‘αž»αž€β€‹αžŠαŸ‚αž›β€‹αžŸαžšαžŸαŸαžšβ€‹αž‡αžΆ C++ αž“αž·αž„β€‹αž€αž“αŸ’αž›αŸ‚αž„β€‹αž˜αž½αž™β€‹αž“αŸ…β€‹αž€αŸ’αž”αŸ‚αžšβ€‹αžŸαŸαžœαžΆβ€‹αžαžΌαž…β€‹αž˜αž½αž™β€‹αž“αŸ…β€‹αž›αžΎβ€‹αžαŸ’αž“αžΆαŸ†αž„β€‹αžŠαŸ‚αž›β€‹αž˜αž·αž“β€‹αž’αŸ’αžœαžΎβ€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž‚αž½αžšβ€‹αž±αŸ’αž™β€‹αž—αŸαž™αžαŸ’αž›αžΆαž…β€‹αž‡αžΆαž˜αž½αž™β€‹αž“αžΉαž„β€‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αž”αž‰αŸ’αž‡αžΆβ€‹αžšαž”αžŸαŸ‹β€‹αžœαžΆβ€‹αž†αŸ’αž€αž½αžαŸ” αžœαžΆαž”αžΎαž€αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ 20 αž αžΎαž™αž’αŸ’αžœαžΈαŸ—αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αžΉαž„αžšαž„αŸ‹αž…αžΆαŸ†αŸ” αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž›αŸαžαž€αžΌαžŠαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž€αŸαž’αž˜αŸ’αž˜αžαžΆαžŠαŸ‚αžšαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž™αžΎαž„αž”αžΆαž“αžŸαžšαžŸαŸαžšαž”αŸ†αžŽαŸ‡αžαžΌαž…αž˜αž½αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Bouncer αžŠαŸ‚αž›αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž“αŸαŸ‡ αž–αŸ„αž›αž‚αžΊαž€αŸ†αžŽαžαŸ‹αž’αžαž·αžαž·αž‡αž“αž‘αŸ…αž’αžΆαž„αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αžœαžΆαž’αžΆαž…αž‘αŸ…αžšαž½αž…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž”αŸ‚αž”αž“αŸαŸ‡αž“αŸ…αž•αŸ’αž“αŸ‚αž€ Postgres αž–αŸ„αž›αž‚αžΊαž€αŸ†αžŽαžαŸ‹αžαž½αž“αžΆαž‘αžΈαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ„αž™αž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž”αžΆαžαŸ‹αž”αž„αŸ‹αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž™αž›αŸ‹αž–αžΈαž˜αžΌαž›αž αŸαžαž»αžŠαŸ‚αž›αž’αŸ’αž“αž€αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ” PgBouncer αž˜αž·αž“αž”αŸ„αŸ‡αž€αŸ†αž αž»αžŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ αžœαžΆαžαŸ‚αž„αžαŸ‚αžαŸ’αžšαž‘αž”αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“αžŠαžŠαŸ‚αž›αŸ” αž αžΎαž™αž’αŸ’αž“αž€αž˜αž·αž“αž’αžΆαž…αž™αž›αŸ‹αž”αžΆαž“αž‘αŸαŸ– αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž–αžΆαž€αŸ’αž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αžΎαž”αžαŸ‚αž”αžΆαžαŸ‹ αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αžΆαž“αž’αŸ’αžœαžΈαž˜αž½αž™αžαž»αžŸαž αžΎαž™αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž˜αžΆαž“αžšαŸ„αž‚αžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž‘αŸαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžŸαž˜αŸαž™αž˜αž·αž“αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž”αžΆαž“ αž’αŸ’αž“αž€αž“αžΉαž„αž˜αž·αž“αžŠαžΉαž„αžαžΆαž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαžœαžΆαž˜αž·αž“αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαžœαžΆαž”αžΆαž“αž‘αŸαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž“αŸ…αž…αŸ†αžŽαž»αž…αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αž’αŸ’αž“αž€αž˜αžΎαž›αž€αŸ’αžšαžΆαž αŸ’αžœαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž αžΎαž™αžƒαžΎαž‰αžαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž›αžΎ αž αžΎαž™αžƒαžΎαž‰αžαžΆ Bouncer αž˜αžΆαž“αžαŸ’αžŸαŸ‚αžαŸ‚αž˜αž½αž™αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž…αŸ†αžŽαž»αž…αžšαž”αžαŸ‹αž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž‡αžΈαžœαž·αžαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ” αž’αŸ’αž“αž€αžŠαžΉαž„αžαžΆαž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αžšαŸ€αž”αž…αŸ†αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž˜αž½αž™αž†αŸ’αž“αžΆαŸ†αž€αž“αŸ’αž›αŸ‡ αž αžΎαž™αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž”αžΌαž€αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž™αžΎαž„αž”αžΆαž“αžˆαžΆαž“αžŠαž›αŸ‹αž€αžΆαžšαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“αžαžΆαž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžš PgBouncers αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

https://lwn.net/Articles/542629/

Bouncer αžαŸ’αžšαžΌαžœαž”αžΆαž“ patched αž”αž“αŸ’αžαž·αž…αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž αžΎαž™αž–αž½αž€αž‚αŸαž”αžΆαž“αž’αŸ’αžœαžΎαžœαžΆαžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™ Bouncers αž‡αžΆαž…αŸ’αžšαžΎαž“αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αžΎαž€αž‘αžΎαž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž…αŸ’αžšαž€ TCP αž‘αžΎαž„αžœαž·αž‰αŸ” αž αžΎαž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αžΉαž„αž•αŸ’αž‘αŸαžšαž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹ TCP αž…αžΌαž›αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžšαžœαžΆαž„αž–αž½αž€αžœαžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎ round-robin αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αžœαžΆαž˜αžΆαž“αžαž˜αŸ’αž›αžΆαž—αžΆαž–αž…αŸ†αž–αŸ„αŸ‡αž’αžαž·αžαž·αž‡αž“ αž˜αžΆαž“αž“αŸαž™αžαžΆαžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž’αŸ’αž“αž€αž˜αžΆαž“ Bouncer αž˜αž½αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αž“αž€αž˜αžΆαž“αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ†αž“αŸαžšαžšαžœαžΆαž„ Bouncers αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž αžΎαž™αž“αŸ…αž–αŸαž›αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αž’αŸ’αž“αž€αž’αžΆαž…αž€αžαŸ‹αžŸαŸ†αž‚αžΆαž›αŸ‹αžαžΆ Bouncers αž‘αžΆαŸ†αž„ 3 αž“αŸαŸ‡αž˜αŸ’αž“αžΆαž€αŸ‹αŸ—αžŸαŸŠαžΈαžŸαŸ’αž“αžΌαž›αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ 100% αŸ” αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžš Bouncers αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αž αŸαžαž»αž’αŸ’αžœαžΈ?

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž’αŸ’αž“αž€αž˜αžΆαž“ TLS αŸ” αž’αŸ’αž“αž€αž˜αžΆαž“αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹ Postgres αžŠαŸ„αž™αž˜αžΆαž“ αž“αž·αž„αž‚αŸ’αž˜αžΆαž“ TLS αž’αŸ’αž“αž€αž“αžΉαž„αžƒαžΎαž‰αžαžΆαž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž’αŸ’αž›αžΆαž€αŸ‹αž…αž»αŸ‡αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž–αžΈαžšαž›αŸ†αžŠαžΆαž”αŸ‹αž“αŸƒαž‘αŸ†αž αŸ†αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αžΎαž€αž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž” αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž€αžΆαžšαž…αžΆαž”αŸ‹αžŠαŸƒ TLS αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž“αž’αžΆαž“ CPU αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž αžΎαž™αž“αŸ…αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž›αžΎ αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αž˜αž»αžαž„αžΆαžšαž‚αŸ’αžšαžΈαž”αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž˜αžΆαž“αžšαž›αž€αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž…αžΌαž›αŸ” αžŠαŸ„αž™αžŸαžΆαžšβ€‹αž”αž‹αž˜β€‹αžšαž”αžŸαŸ‹β€‹αž™αžΎαž„β€‹αž’αžΆαž…β€‹αž”αŸ’αžŠαžΌαžšβ€‹αžšαžœαžΆαž„β€‹αžαŸ†αž”αž“αŸ‹β€‹αžŠαŸ‚αž›β€‹αž’αžΆαž…β€‹αž”αŸ’αžšαžΎβ€‹αž”αžΆαž“ αžšαž›αž€β€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αžαž—αŸ’αž‡αžΆαž”αŸ‹β€‹αž…αžΌαž›β€‹αž‚αžΊβ€‹αž‡αžΆβ€‹αžŸαŸ’αžαžΆαž“αž—αžΆαž–β€‹αž’αž˜αŸ’αž˜αžαžΆαŸ” αž“αŸ„αŸ‡αž‚αžΊαž‡αžΆαž αŸαžαž»αž•αž›αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αž”αž‹αž˜αž…αžΆαžŸαŸ‹αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“ αž”αž“αŸ’αž‘αž»αž€αž‘αžΆαŸ†αž„αž˜αžΌαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž‘αŸ…αž˜αž‡αŸ’αžˆαž˜αžŽαŸ’αžŒαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αž½αž™αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž–αž½αž€αž‚αŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αŸ’αž“αžΆαž“αžΉαž„αž˜αž€αž“αž·αž™αžΆαž™αž‡αŸ†αžšαžΆαž”αžŸαž½αžš TLS αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž αžΎαž™αž€αžΆαžšαž…αžΆαž”αŸ‹αžŠαŸƒ TLS αž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ†αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž›αŸ‚αž„αž“αž·αž™αžΆαž™αžαžΆαž‡αŸ†αžšαžΆαž”αžŸαž½αžš Bouncer αž‘αŸ€αžαž αžΎαž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž“αžΉαž„αž…αŸ’αžšαž”αžΆαž…αŸ‹αž”αŸ†αž–αž„αŸ‹αž€αžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αŸ” αžŠαŸ„αž™αžŸαžΆαžšαž’αžŸαŸ‹αž–αŸαž› αžšαž›αž€αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž…αžΌαž›αž’αžΆαž…αž“αžΉαž„αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž–αŸ’αž™αžΆαž™αžΆαž˜αž˜αŸ’αžαž„αž‘αŸ€αžαž‘αŸ…αž€αžΆαž“αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŠαŸ„αž™αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαžαž™αž€αŸ’αžšαŸ„αž™αž’αž·αž…αžŸαŸ’αž”αŸ‰αžΌαžŽαž„αŸ‹αžŸαŸ’αž™αŸ‚αž› αž–αž½αž€αž‚αŸαž“αžΉαž„αž˜αž·αž“αž˜αž€αž˜αŸ’αžαž„αž αžΎαž™αž˜αŸ’αžαž„αž‘αŸ€αžαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž›αž€αžŠαŸ‚αž›αž‡αžΆαž”αŸ‹αž‚αŸ’αž“αžΆαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒ 16 PgBouncers αžŠαŸ‚αž›αž•αŸ’αž‘αž»αž€ 16 cores αž“αŸ… 100% αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž™αžΎαž„αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹αž›αŸ’αž”αžΆαž€αŸ‹ PgBouncer αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸαž›αŸ’αž’αž”αŸ†αž•αž»αžαžŠαŸ‚αž›αž’αžΆαž…αžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αž“αŸ…αž›αžΎαž”αž“αŸ’αž‘αž»αž€αžšαž”αžŸαŸ‹αž™αžΎαž„αž‡αžΆαž˜αž½αž™ Bouncer αŸ” Bouncers αžαžΆαž„αž€αŸ’αžšαŸ…αžšαž”αžŸαŸ‹αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΆαž”αŸ‹αžŠαŸƒ TCP αž αžΎαž™ Bouncers αžαžΆαž„αž€αŸ’αž“αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαž€αž»αŸ†αž±αŸ’αž™αž”αŸ‚αž€αžαŸ’αž‰αŸ‚αž€αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžαžΆαž„αž€αŸ’αžšαŸ…αž…αŸ’αžšαžΎαž“αž–αŸαž€αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸαŸ‡ αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αžŠαŸ„αž™αžšαž›αžΌαž“αž‚αžΊαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ Bouncers αž‘αžΆαŸ†αž„ 18 αž“αŸαŸ‡αž‘αžΎαž„αžœαž·αž‰αž˜αŸ’αžαž„αž˜αž½αž™αŸ—αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž”αŸ‚αž”αž“αŸαŸ‡αž‚αžΊαž–αž·αž”αžΆαž€αžŽαžΆαžŸαŸ‹αŸ” Sysadmins, DevOps αž“αž·αž„αž˜αž“αž»αžŸαŸ’αžŸαžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž“αŸαŸ‡αž“αžΉαž„αž˜αž·αž“αžŸαž”αŸ’αž”αžΆαž™αž…αž·αžαŸ’αžαžαŸ’αž›αžΆαŸ†αž„αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž“αŸαŸ‡αž‘αŸαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαžαžΆαž€αžΆαžšαž€αŸ‚αž›αž˜αŸ’αž’αžšαž”αžŸαŸ‹αž™αžΎαž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™αž‘αŸ…αž‡αžΆαž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž  αž”αŸ‰αž»αž“αŸ’αžαŸ‚ Bouncer αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαž™αŸ‰αžΆαž„αž›αŸ’αž’αž“αŸ„αŸ‡αž‘αŸαŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš PgBouncers αž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸ…αž›αžΎαž…αŸ’αžšαž€αž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž–αŸ’αžšαžΉαžαŸ’αžαž€αžΆαž›αž–αžΈαž˜αž½αž™αžαŸ‚αž˜αž»αž“αŸ” αž˜αžΆαž“αžŸαŸ†αžŽαžΎαž‘αžΆαž‰αž‡αžΆαž˜αž½αž™αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž“αŸαŸ‡αž‡αžΆαž…αŸ’αžšαžΎαž“αž†αŸ’αž“αžΆαŸ†αž˜αž»αž“αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

https://www.postgresql.org/docs/current/libpq-cancel.html

https://github.com/pgbouncer/pgbouncer/pull/79

αž¬αž§αž‘αžΆαž αžšαžŽαŸαž˜αž½αž™αž‘αŸ€αžαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„ Postgres αž’αŸ’αž“αž€αž’αžΆαž…αž›αž»αž”αž…αŸ„αž›αžŸαŸ†αžŽαžΎαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž•αŸ’αž‰αžΎαž€αžΆαžšαžŸαž˜αŸ’αž„αžΆαžαŸ‹αž‘αŸ…αž€αžΆαž“αŸ‹αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž•αŸ’αžŸαŸαž„αžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αžαž·αžαž·αž‡αž“αž˜αž½αž™αž…αŸ†αž“αž½αž“αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž•αŸ’αž‰αžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ TCP αž‘αžΎαž„αžœαž·αž‰ αž–αŸ„αž›αž‚αžΊαž–αž½αž€αž‚αŸαž”αŸ†αž”αŸ‚αž€αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž”αžŽαŸ’αžαžΆαž‰αŸ” តើ Bouncer αž“αžΉαž„αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈ? αž‚αžΆαžαŸ‹αž“αžΉαž„αž˜αž·αž“αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž‘αŸαŸ” αžœαžΆαž“αžΉαž„αž”αž“αŸ’αžαž’αž“αž»αžœαžαŸ’αžαžŸαŸ†αžŽαžΎαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αžΆαž“αž‘αž‘αž½αž›αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŸαŸ†αžŽαžΎαžαžΌαž…αŸ— αž“αŸ„αŸ‡αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž•αŸ’αžαžΆαž…αŸ‹αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž–αžΈ Bouncer αž“αžΉαž„αž˜αž·αž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž‘αŸ αž’αŸ’αž“αž€αž€αŸαžαŸ’αžšαžΌαžœαž”αŸ†αž–αŸαž‰αžŸαŸ†αžŽαžΎαž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αž„αžŠαŸ‚αžšαŸ”

αžœαžΆβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‡αž½αžŸαž‡αž»αž›β€‹αž αžΎαž™β€‹αž”αž‰αŸ’αž αžΆβ€‹αž“αŸαŸ‡β€‹αž˜αž·αž“β€‹αž‘αžΆαž“αŸ‹β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž‰αŸ’αž…αžΌαž›β€‹αž…αžΌαž›β€‹αž‘αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž…αžšαž“αŸ’αžβ€‹αžšαž”αžŸαŸ‹ Bouncer αž‘αŸαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž™αžΎαž„αž”αžΆαž“αžˆαžΆαž“αžŠαž›αŸ‹αž€αžΆαžšαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“αžαžΆ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž™αžΎαž„ αžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„ αž”αŸ†αžŽαŸ‡ αžŠαŸ‚αž›αž”αž‰αŸ’αž αžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ‚αžŠαŸ†αžšαžΌαžœαž”αžΆαž“αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸ αž αžΎαž™αžŠαŸ‚αž›αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΆαž“αžαŸ’αžŸαŸ‚αž–αž αž»αžαŸ’αžŸαŸ‚αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž™αžΎαž„αž€αŸ†αžŽαžαŸ‹ multithreading αž‡αžΆαž€αž·αž…αŸ’αž…αž€αžΆαžšαž…αž˜αŸ’αž”αž„αŸ” αž™αžΎαž„αžαŸ’αžšαžΌαžœαžαŸ‚αž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž›αž€αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ TLS αž…αžΌαž›αž”αžΆαž“αž›αŸ’αž’αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž€αžΎαžαž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™αž αŸ…αžαžΆ Machinarium αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž…αž“αžΆαž‘αžΎαž„αžŠαžΎαž˜αŸ’αž”αžΈαž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαžŸαŸ’αžαžΆαž“αž—αžΆαž–αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž”αžŽαŸ’αžαžΆαž‰αž‡αžΆαž€αžΌαžŠαžαžΆαž˜αž›αŸ†αžŠαžΆαž”αŸ‹αž›αŸ†αžŠαŸ„αž™αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž€αžΌαžŠαž”αŸ’αžšαž—αž– libpq αž’αŸ’αž“αž€αž“αžΉαž„αžƒαžΎαž‰αž€αžΆαžšαž αŸ…αžŠαŸαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αž’αžΆαž…αž•αŸ’αžαž›αŸ‹αž›αž‘αŸ’αž’αž•αž›αž±αŸ’αž™αž’αŸ’αž“αž€αžœαž·αž‰ αž αžΎαž™αž“αž·αž™αžΆαž™αžαžΆ β€œαž αŸ…αžαŸ’αž‰αž»αŸ†αž–αŸαž›αž€αŸ’αžšαŸ„αž™αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“ IO αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αŸαž›αž“αŸαŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž–αŸαž›αžŠαŸ‚αž› IO αž”αžΆαžαŸ‹αž‘αŸ… αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž˜αžΆαž“αž”αž“αŸ’αž‘αž»αž€αž›αžΎ processorβ€αŸ” αž αžΎαž™αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαž–αž αž»αž€αž˜αŸ’αžšαž·αžαŸ” αž€αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž”αžŽαŸ’αžαžΆαž‰αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαžŠαŸ„αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžšαžŠαŸ’αž‹αŸ” αž…αŸ’αž”αžΆαž”αŸ‹αž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαžΌαž…αž‡αžΆ "αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž–αžΈαž˜αž»αž“αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‘αž‘αž½αž›αž”αž‹αž˜αž€αžαžΆαž“αŸƒαž‘αŸ†αž αŸ† N αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž€αŸ†αž–αž»αž„αžšαž„αŸ‹αž…αžΆαŸ† N bytes" "αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž•αŸ’αž‰αžΎαž€αž‰αŸ’αž…αž”αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“ SYNC αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž€αŸ†αž–αž»αž„αžšαž„αŸ‹αž…αžΆαŸ†αž€αž‰αŸ’αž…αž”αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“αžŠαŸ‚αž›αž˜αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αŸαžαžΆαž›αž‘αŸ’αž’αž•αž›αŸ”" αž›αž‘αŸ’αž’αž•αž›β€‹αž‚αžΊβ€‹αž‡αžΆβ€‹αž€αžΌαžŠβ€‹αžŠαŸ‚αž›β€‹αž–αž·αž”αžΆαž€β€‹αž†αŸ’αž›αžΎαž™β€‹αžαž”β€‹αž“αžΉαž„β€‹αž€αžΆαžšβ€‹αž™αž›αŸ‹β€‹αžƒαžΎαž‰β€‹αžŠαžΌαž…β€‹αž‡αžΆβ€‹αž•αŸ’αž‘αžΆαŸ†αž„β€‹αžαŸ’αž˜β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αŸ†αž”αŸ’αž›αŸ‚αž„β€‹αž‘αŸ…β€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αžŸαŸ’αž€αŸαž“β€‹αž”αž“αŸ’αž‘αžΆαžαŸ‹αŸ” αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαžœαžΆαžŠαžΌαž…αŸ’αž“αŸαŸ‡αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžšαžŠαŸ’αž‹ αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž–αž·αž–αžŽαŸŒαž“αžΆαž•αŸ’αž›αžΌαžœαžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž“αŸƒαž€αžΌαžŠαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž’αž˜αŸ’αž˜αžαžΆαŸ” αžœαžΆαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΌαžŠαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž“αŸαŸ‡ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž…αžΌαž›αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž›αŸ†αžŠαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžαŸ’αžšαžΌαžœαžšαŸ†αžαžΆαž“αžŠαŸ„αž™αžšαž„αŸ‹αž…αžΆαŸ†αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαž”αžŽαŸ’αžαžΆαž‰ αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž”αžšαž·αž”αž‘αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž‘αŸ…αž€αžΆαž“αŸ‹ coroutine αž•αŸ’αžŸαŸαž„αž‘αŸ€αž (αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž–αžŽαŸŒαž”αŸƒαžαž„)αŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αž‚αžΊαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž™αžΎαž„αžŸαžšαžŸαŸαžšαž•αŸ’αž›αžΌαžœαžŠαŸ‚αž›αžšαŸ†αž–αžΉαž„αž‘αž»αž€αž”αŸ†αž•αž»αžαž“αŸ…αž€αŸ’αž“αž»αž„ maze αž‡αžΆαž”αŸ‹αŸ—αž‚αŸ’αž“αžΆαž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž”αž“αŸ’αžαŸ‚αž˜αžŸαžΆαžαžΆαž‘αŸ…αžœαžΆαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž‡αžΆαž›αž‘αŸ’αž’αž•αž› αž™αžΎαž„αž˜αžΆαž“αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž˜αž½αž™αžŠαŸ‚αž› TCP αž‘αž‘αž½αž›αž™αž€ αž αžΎαž™ round-robin αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ TPC αž‘αŸ…αž€αž˜αŸ’αž˜αž€αžšαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαž“αžΈαž˜αž½αž™αŸ—αžαŸ‚αž„αžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαžαž½αžšαž€αŸ’αž”αžΆαž›αžαŸ‚αž˜αž½αž™αŸ” αž αžΎαž™αž“αŸαŸ‡αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αŸ”

αž αžΎαž™αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αž™αžΎαž„αž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž”αž“αŸ’αžαž·αž…αž“αžΌαžœαž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž€αž‰αŸ’αž…αž”αŸ‹αžαžΌαž…αž‘αŸ…αž€αŸ’αž“αž»αž„αž€αž‰αŸ’αž…αž”αŸ‹αž’αŸ†αž˜αž½αž™ αžŠαžΎαž˜αŸ’αž”αžΈαž”αž“αŸ’αž’αžΌαžšαž”αž“αŸ’αžαž™αž‡αž„αŸ‹ TCP αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž™αžΎαž„αž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž€αŸ’αž“αž»αž„αž“αŸαž™αžαžΆ Odyssey αž“αŸ…αž–αŸαž›αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž’αžΆαž…αž•αŸ’αž‰αžΎ CANCEL αž“αž·αž„ ROLLBACK αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž€αžΆαžšαž”αžšαžΆαž‡αŸαž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž”αžŽαŸ’αžαžΆαž‰ αž–αŸ„αž›αž‚αžΊαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‚αŸ’αž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž€αŸ†αž–αž»αž„αžšαž„αŸ‹αž…αžΆαŸ†αžŸαŸ†αžŽαžΎαž“αŸ„αŸ‡ Odyssey αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αž»αŸ†αž±αŸ’αž™αž–αŸ’αž™αžΆαž™αžΆαž˜ αž”αŸ†αž–αŸαž‰αžαžΆαž˜αžŸαŸ†αžŽαžΎαžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αž‡αŸ‡αžαŸ’αž‡αžΆαž™αž’αž“αž’αžΆαž“αžŠαŸαž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαŸ”

αž αžΎαž™αž“αŸ…αž–αŸαž›αžŽαžΆαžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“ αž™αžΎαž„αžšαž€αŸ’αžŸαžΆαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‡αžΆαž˜αž½αž™αž’αžαž·αžαž·αž‡αž“αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ” αžœαžΆαž‡αŸ€αžŸαžœαžΆαž„αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ application_name_add_host αž‘αžΎαž„αžœαž·αž‰αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž“αŸαŸ‡αž’αžΆαž…αž‘αŸ…αžšαž½αž… αž“αŸ„αŸ‡αž™αžΎαž„αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž€αŸ†αžŽαžαŸ‹αž‘αžΎαž„αžœαž·αž‰αž“αžΌαžœαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžšαŸ„αž‚αžœαž·αž“αž·αž…αŸ’αž†αŸαž™αž“αŸ„αŸ‡αž‘αŸαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž™αžΎαž„αž’αŸ’αžœαžΎαž€αžΆαžšαž€αŸ’αž“αž»αž„αž•αž›αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžšαž”αžŸαŸ‹ Yandex.Cloud αŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΎ PostgreSQL αžŠαŸ‚αž›αž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„ αž αžΎαž™αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹ αž“αŸ„αŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαž…αž˜αŸ’αž›αž„αžαžΆαž˜αž‘αžΌαž‡αžΈαžαž›αž‘αŸ…αžαžΆαž„αž€αŸ’αžšαŸ… αž–αŸ„αž›αž‚αžΊαž‘αž»αž€αž–αž½αž€αž™αžΎαž„ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αž”αžΆαž“ αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αžΆαžšαž…αž˜αŸ’αž›αž„αžαžΆαž˜αž‘αžΌαž‡αžΈαžαž›αŸ” Bouncer αž“αžΉαž„αž˜αž·αž“αž”αž‰αŸ’αž…αŸαž‰αž›αŸ†αž αžΌαžšαž…αž˜αŸ’αž›αž„αž‘αžΌαž‡αžΈαžαž›αž“αŸ…αžαžΆαž„αž€αŸ’αžšαŸ…αž‘αŸαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž€αžΆαžšαž…αž˜αŸ’αž›αž„αž‘αžΌαž‡αžΈαžαž›αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αž™αžΎαž„αž˜αžΆαž“αž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αž˜αŸ’αž›αž„αžšαžΌαž”αžœαŸαž“αŸ’αžαžαžΆαž„αž€αŸ’αžšαŸ…αŸ” αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹ αž“αŸ…αž€αŸ’αž“αž»αž„ Cloud αž“αŸαŸ‡αž‚αžΊαž˜αž·αž“αž’αžΆαž…αž‘αŸ…αžšαž½αž…αž“αŸ„αŸ‡αž‘αŸ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž…αž„αŸ’αž€αŸ„αž˜αž“αžΉαž„αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž’αŸ’αž“αž€αž“αžΌαžœαž–αŸαžαŸŒαž˜αžΆαž“αž…αŸ’αžšαžΎαž“αž–αŸαž€αž’αŸ†αž–αžΈαžαŸ’αž›αž½αž“αžœαžΆαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αžΆαžšαž…αž˜αŸ’αž›αž„αžšαžΌαž”αžœαž“αŸ’αžαžαžΆαž˜αžšαž™αŸˆαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ Odyssey αžœαžΆαž’αžΆαž…αž‘αŸ…αžšαž½αž…αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

Odyssey αž˜αžΆαž“αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŠαŸ‚αž›αž†αž”αž‚αŸ’αž“αžΆαž™αŸ‰αžΆαž„αž–αŸαž‰αž›αŸαž‰αž‡αžΆαž˜αž½αž™ PgBouncer αŸ” αž™αžΎαž„αž˜αžΆαž“αž€αž»αž„αžŸαžΌαž›αžŠαžΌαž…αž‚αŸ’αž“αžΆαžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž˜αž½αž™αž”αžΆαžαŸ‹ αžŸαžΌαž˜αž•αŸ’αž‰αžΎαžŸαŸ†αžŽαžΎαžšαž‘αžΆαž‰ αž¬αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž“αŸ…αž›αžΎ GitHub αž αžΎαž™αž™αžΎαž„αž“αžΉαž„αž”αŸ†αž–αŸαž‰αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αž˜αžΆαž“αž˜αž»αžαž„αžΆαžšαž…αž˜αŸ’αž”αž„αžšαž”αžŸαŸ‹αž€αž»αž„αžŸαžΌαž› PgBouncer αžšαž½αž…αž αžΎαž™αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž αžΎαž™αž‡αžΆαž€αžΆαžšαž–αž·αž αž™αžΎαž„αž˜αžΆαž“αž€αŸ†αž αž»αžŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαŸ” αž™αžΎαž„αž“αžΉαž„αžαŸ’αžšαž‘αž”αŸ‹αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž”αžΆαž“αžšαžΆαž™αž€αžΆαžšαžŽαŸαžŠαŸ„αž™αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž’αŸ’αž“αž€αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαž˜αžΌαž›αž αŸαžαž»αžŠαŸ‚αž›αž’αŸ’αž“αž€αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž”αž‰αŸ’αž…αžΌαž›αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž αžΎαž™αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αžαžΆαž’αŸ’αž“αž€αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαž“αŸ„αŸ‡αž‘αŸαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž—αžΆαž–αž†αž”αž‚αŸ’αž“αžΆ 100% αž‡αžΆαž˜αž½αž™ PgBouncerαŸ” αž™αžΎαž„β€‹αž’αžΆαž…β€‹αž˜αžΆαž“β€‹αž₯αžšαž·αž™αžΆαž”αž‘β€‹αžŠαžΌαž…β€‹αž“αžΉαž„ Bouncer αž‚αžΊβ€‹αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚β€‹αž“αŸ…β€‹αžαžΆαž„β€‹αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αŸ”

αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ

αž–αžΆαž€αŸ’αž™αž–αžΈαžšαž”αžΈαž’αŸ†αž–αžΈαž€αžΌαžŠαž”αŸ’αžšαž—αž– Odyssey αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

https://github.com/yandex/odyssey/pull/66

αž§αž‘αžΆαž αžšαžŽαŸαž˜αžΆαž“αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ "αž•αŸ’αž’αžΆαž€ / αž”αž“αŸ’αž" αŸ” αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαž Postgres αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αž“αž€αž’αžΆαž…αž•αŸ’αž’αžΆαž€αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹ αž’αŸ’αžœαžΎ pg_upgrade αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αŸ’αžœαžΎαž”αž“αŸ’αžαŸ” αž αžΎαž™αž–αžΈαžαžΆαž„αž’αžαž·αžαž·αž‡αž“ αžœαžΆαž“αžΉαž„αž˜αžΎαž›αž‘αŸ…αž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž™αžΊαžαŸ” αž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž“αžΆαŸ†αž˜αž€αž‡αžΌαž“αž™αžΎαž„αžŠαŸ„αž™αž˜αž“αž»αžŸαŸ’αžŸαž˜αž€αž–αžΈαžŸαž αž‚αž˜αž“αŸαŸ” αž“αžΆαž„β€‹αž˜αž·αž“β€‹αž‘αžΆαž“αŸ‹β€‹αž€αž€β€‹αž“αŸ…β€‹αž‘αžΎαž™β€‹αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž™αžΌαžšβ€‹αž˜αž·αž“β€‹αž†αžΆαž”αŸ‹β€‹αž’αŸ’αžœαžΈβ€‹αž‚αŸ’αžšαž”αŸ‹β€‹αž™αŸ‰αžΆαž„β€‹αž“αžΉαž„β€‹αž€αŸ’αž›αžΆαž™β€‹αž‡αžΆαŸ” (αž€αž€αž αžΎαž™)

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

https://github.com/yandex/odyssey/pull/73 - αž€αž€αžšαž½αž…αž αžΎαž™

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžαŸ’αž˜αžΈαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„ PgBouncer αž‚αžΊαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ SCRAM Authentication αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž“αžΆαŸ†αž™αž€αž˜αž€αž±αŸ’αž™αž™αžΎαž„αžŠαŸ„αž™αž˜αž“αž»αžŸαŸ’αžŸαž˜αŸ’αž“αžΆαž€αŸ‹αžŠαŸ‚αž›αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„ Yandex.Cloud αž•αž„αžŠαŸ‚αžšαŸ” αž‘αžΆαŸ†αž„αž–αžΈαžšαž˜αžΆαž“αž˜αž»αžαž„αžΆαžšαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰ αž“αž·αž„αžŸαŸ†αžαžΆαž“αŸ‹αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžαžΆ Odyssey αž’αŸ’αžœαžΎαž–αžΈαž’αŸ’αžœαžΈ αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αž„αŸ‹αžŸαžšαžŸαŸαžšαž€αžΌαžŠαž”αž“αŸ’αžαž·αž…αž₯αž‘αžΌαžœαž“αŸαŸ‡αŸ”

αž’αŸ’αž“αž€αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž”αŸ’αžšαž—αž– Odyssey αžŠαŸ‚αž›αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€αž›αžΎαž”αžŽαŸ’αžŽαžΆαž›αŸαž™αžŸαŸ†αžαžΆαž“αŸ‹αž–αžΈαžšαŸ” αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ Kiwi αž‚αžΊαž‡αžΆαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αŸƒαž–αž·αž’αžΈαžŸαžΆαžš Postgres αŸ” αž“αŸ„αŸ‡αž‚αžΊαž”αŸ’αžšαžΌαžαžΌ 3 αžŠαžΎαž˜αžšαž”αžŸαŸ‹ Postgres αž‚αžΊαž‡αžΆαžŸαžΆαžšαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαžŠαŸ‚αž›αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αž αž“αž·αž„αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ„αž™αž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αžΆαž“αŸ” αž–αž½αž€αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž‚αžΈαžœαžΈαŸ”

αž”αžŽαŸ’αžŽαžΆαž›αŸαž™ Machinarium αž‚αžΊαž‡αžΆαž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αŸ” αž”αŸ†αžŽαŸ‚αž€αžαžΌαž…αž˜αž½αž™αž“αŸƒ Machinarium αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž‡αžΆαž—αžΆαžŸαžΆαž‡αž½αž”αž”αŸ’αžšαž‡αž»αŸ†αž‚αŸ’αž“αžΆαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž€αž»αŸ†β€‹αž—αŸαž™β€‹αžαŸ’αž›αžΆαž…β€‹αž˜αžΆαž“β€‹αžαŸ‚ ៑αŸ₯ αžαŸ’αžŸαŸ‚β€‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ Odyssey αŸ” αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŸαŸ†αžαžΆαž“αŸ‹αžŠαŸ‚αž› coroutines αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αŸαŸ‡αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž‘αž‘αž½αž›αž™αž€αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ TCP αž…αžΌαž› αž“αž·αž„αž…αŸ‚αž€αž…αžΆαž™αž–αž½αž€αžœαžΆαž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž€αž˜αŸ’αž˜αž€αžšαŸ”

αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžαž·αžαž·αž‡αž“αž‡αžΆαž…αŸ’αžšαžΎαž“αž’αžΆαž…αž’αŸ’αžœαžΎαž€αžΆαžšαž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αž€αžšαž˜αŸ’αž“αžΆαž€αŸ‹αŸ” αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αžŸαŸ†αžαžΆαž“αŸ‹αž€αŸαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž»αž„αžŸαžΌαž› αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž·αž…αŸ’αž…αž€αžΆαžšαž€αŸ’αžšαžΌαž“ αžŠαžΎαž˜αŸ’αž”αžΈαž›αž»αž”αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ‚αž›αž›αŸ‚αž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž’αžΆαž„αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

Odyssey αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαžˆαž»αžαžαŸαžŸαŸ’αž Postgres αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαŸ” αž™αžΎαž„αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš install-check αžαžΆαž˜αžšαž™αŸˆ Bouncer αž αžΎαž™αžαžΆαž˜αžšαž™αŸˆ Odyssey αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“ null div αŸ” αž˜αžΆαž“αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαž’αŸ’αžœαžΎαž‘αŸ’αžšαž„αŸ‹αž‘αŸ’αžšαžΆαž™αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αžŠαŸ‚αž›αž˜αž·αž“αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ Bouncer αž“αž·αž„αž“αŸ…αž€αŸ’αž“αž»αž„ Odyssey αŸ”

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αžαž˜αžΆαž“αž’αŸ’αž“αž€αž”αžΎαž€αž”αžšαž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ” αž αžΎαž™αž™αžΎαž„αž”αŸ’αžšαžΎαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžŠαžΎαž˜αŸ’αž”αžΈαžŸαžΆαž€αž›αŸ’αž”αž„ Odyssey αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž›αŸ’αž”αžΆαž€αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„ αž™αžΎαž„αžαŸ’αžšαžΌαžœαžŸαžΆαž€αž›αŸ’αž”αž„αž”αžŽαŸ’αžαž»αŸ†αž•αŸ’αžŸαŸαž„αŸ—αŸ– Postgres + Odyssey, PgBouncer + Odyssey, Odyssey + Odyssey αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαžΆαž€αžŠαžαžΆ αž”αŸ’αžšαžŸαž·αž“αž”αžΎ Odyssey αž”αž‰αŸ’αž…αž”αŸ‹αž•αŸ’αž“αŸ‚αž€αžŽαžΆαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž›αŸ’αž”αžΆαž€αŸ‹αž“αŸ„αŸ‡ αžœαžΆαž€αŸαž“αŸ…αžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αž„αžŠαŸ‚αžšαŸ” αžŠαžΌαž…αžŠαŸ‚αž›αž™αžΎαž„αžšαŸ†αž–αžΉαž„αž‘αž»αž€αŸ”

αžαž»αž„

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž™αžΎαž„αž”αŸ’αžšαžΎ Odyssey αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αž›αž·αžαŸ” αž αžΎαž™αžœαžΆαž˜αž·αž“αž™αž»αžαŸ’αžαž·αž’αž˜αŸŒαž‘αŸαž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαŸ’αž‰αž»αŸ†αž“αž·αž™αžΆαž™αžαžΆαž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž‘αŸ αž“αŸ„αŸ‡αž‚αžΊαž”αžΆαž‘ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž“αž·αž…αŸ’αž…αž‘αŸαŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αž›αž·αžαž’αŸ’αžœαžΈαŸ—αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‘αžΎαž”αžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž–αŸαž›αž“αŸ„αŸ‡αž˜αž·αžαŸ’αžαž—αŸαž€αŸ’αžαž·αžšαž”αžŸαŸ‹αž™αžΎαž„αž˜αž€αž–αžΈ PostgreSQL Professional αž”αžΆαž“αž˜αž€αž“αž·αž™αžΆαž™αžαžΆαž™αžΎαž„αž˜αžΆαž“αž€αžΆαžšαž›αŸαž…αž’αŸ’αž›αžΆαž™αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αŸ” αž–αž½αž€αž‚αŸαž–αž·αžαž‡αžΆαž˜αŸ‚αž“ αž™αžΎαž„αž”αžΆαž“αž€αŸ‚αž–αž½αž€αž‚αŸαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαžŸαžΆαž˜αž‰αŸ’αž‰αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž™αžΎαž„αž”αžΆαž“αžšαž€αžƒαžΎαž‰αžαžΆαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž˜αžΆαž“αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ TLS αž…αžΌαž› αž“αž·αž„αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ TLS αž…αŸαž‰αŸ” αž αžΎαž™αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αž˜αžΆαž“αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαž’αžαž·αžαž·αž‡αž“ αž“αž·αž„αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”

αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Bouncer αž“αž·αž„ Odyssey αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž“αž‘αžΎαž„αžœαž·αž‰αžŠαŸ„αž™ pcache αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαž’αžαž·αžαž·αž‡αž“αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž’αžΆαž“αž‘αžΎαž„αžœαž·αž‰αž–αžΈ pcache αž‘αŸ αž–αŸ’αžšαŸ„αŸ‡ Odyssey αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž”αžΆαž“αžšαž”αžŸαŸ‹αž™αžΎαž„αž“αŸ…αž‘αžΈαž”αŸ†αž•αž»αžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸƒαž€αžΆαžšαž’αžΆαž“αžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžšαž“αŸαŸ‡αŸ” αž“αŸαŸ‡β€‹αž”αžΆαž“β€‹αž’αŸ’αžœαžΎβ€‹αž±αŸ’αž™β€‹αž™αžΎαž„β€‹αž—αŸ’αž‰αžΆαž€αŸ‹β€‹αž•αŸ’αž’αžΎαž› αž–αŸ’αžšαŸ„αŸ‡β€‹αžœαžΆβ€‹αž˜αž·αž“β€‹αž…αŸ†αžŽαžΆαž™β€‹αž–αŸαž›β€‹αž™αžΌαžšβ€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž‘αž”αŸ‹αž‘αž›αŸ‹αŸ” αžŠαŸ†αž”αžΌαž„αžœαžΆαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αžαžΆαž˜αž›αžΈαž“αŸαž’αŸŠαŸ‚αžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈ 20 αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž…αžΌαž›αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“αž―αž„αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

Pluggable Authentication Method αž‚αžΊαž‡αžΆαžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸ Lunux αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„ PgBouncer αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžαžΆαž˜αžšαž”αŸ€αž”αžŠαŸ‚αž›αž˜αžΆαž“αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαžšαž„αŸ‹αž…αžΆαŸ†αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αž–αžΈ PAM αž αžΎαž™αž˜αžΆαž“αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™ PgBouncer αžŸαŸ†αžαžΆαž“αŸ‹αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αžŸαŸαžœαžΆαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“ αž αžΎαž™αž’αžΆαž…αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž±αŸ’αž™αž–αž½αž€αž‚αŸαžšαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™ PAM αŸ”

αž™αžΎαž„αž˜αž·αž“αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžœαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž αŸαžαž»αž•αž›αžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž½αž™αŸ” αž™αžΎαž„αž˜αžΆαž“αžαŸ’αžŸαŸ‚αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆ?

αž‘αžΈαž”αŸ†αž•αž»αžαžœαžΆαž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž”αž‰αŸ’αž αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž“αŸ„αŸ‡ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹ PAM αž“αž·αž„αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆ PAM αž“αŸ„αŸ‡αžšαž›αž€αžŠαŸαž’αŸ†αž“αŸƒαž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹ PAM αž’αžΆαž…αž–αž“αŸ’αž™αžΆαžšαž–αŸαž›αž™αŸ‰αžΆαž„αžŸαŸ†αžαžΆαž“αŸ‹αž“αžΌαžœαž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹αžŠαŸ‚αž›αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆ PAM αŸ” αž“αŸαŸ‡αž‡αžΆαžšαžΏαž„αž˜αž½αž™αžŠαŸ‚αž›αž™αžΎαž„αž˜αž·αž“αž”αžΆαž“αž‡αž½αžŸαž‡αž»αž›αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αž‡αž½αžŸαž‡αž»αž›αžœαžΆ αž’αŸ’αž“αž€αž’αžΆαž…αž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž”αžΆαž“αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αžαž»αž„αžšαž½αž…αž˜αž½αž™αž‘αŸ€αžαž‚αžΊαžαžΆαž™αžΎαž„αž˜αžΆαž“αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αž˜αž½αž™αžŠαŸ‚αž›αž‘αž‘αž½αž›αž™αž€αžšαžΆαž›αŸ‹αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž…αžΌαž›αŸ” αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αŸαžšαž‘αŸ…αž’αžΆαž„αž€αž˜αŸ’αž˜αž€αžšαžŠαŸ‚αž›αž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž€αžΆαžšαž…αžΆαž”αŸ‹αžŠαŸƒ TLS αž“αžΉαž„αž”αŸ’αžšαž–αŸ’αžšαžΉαžαŸ’αžαž‘αŸ…αŸ”

αž”αž“αŸ’αž‘αžΆαžαŸ‹αžαžΆαž„αž€αŸ’αžšαŸ„αž˜ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αžšαž›αž€αžŸαŸŠαžΈαžŸαž„αŸ’αžœαžΆαž€αŸ‹αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž”αžŽαŸ’αžαžΆαž‰ 20 αž“αŸ„αŸ‡αž–αž½αž€αžœαžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αž™αž€αŸ” αž αžΎαž™αž“αŸ…αž›αžΎαž•αŸ’αž“αŸ‚αž€αž’αžαž·αžαž·αž‡αž“ libpq αž“αžΉαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžšαžΆαž™αž€αžΆαžšαžŽαŸαž’αŸ†αž–αžΈαž–αŸαž›αžœαŸαž›αžΆαž’αžŸαŸ‹αŸ” αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆ 000 αžœαž·αž“αžΆαž‘αžΈαŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž–αž½αž€αž‚αŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž˜αž·αž“αž’αžΆαž…αž”αž‰αŸ’αž…αžΌαž›αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™αž”αžΆαž“αž‘αŸαž“αŸ„αŸ‡ αž–αž½αž€αž‚αŸαž˜αž·αž“αž’αžΆαž…αž”αž‰αŸ’αž…αžΌαž›αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αžΆαž“αž‘αŸ αž–αŸ’αžšαŸ„αŸ‡αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αžŠαžŽαŸ’αžαž”αŸ‹αžŠαŸ„αž™αž€αžΆαžšαž–αŸ’αž™αžΆαž™αžΆαž˜αž˜αŸ’αžαž„αž‘αŸ€αžαžŠαŸ‚αž›αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž“αž·αž‘αžŸαŸ’αžŸαž“αŸ’αžαŸ”

αž™αžΎαž„αžˆαžΆαž“αžŠαž›αŸ‹αž€αžΆαžšαžŸαž“αŸ’αž“αž·αžŠαŸ’αž‹αžΆαž“αžαžΆαž™αžΎαž„αž”αžΆαž“αž…αž˜αŸ’αž›αž„αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαž–αžΈ PgBouncer αž“αŸ…αž‘αžΈαž“αŸαŸ‡αžŠαŸ„αž™αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž™αžΎαž„αž”αžΆαž“αž”αž·αž‘αž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ TCP αžŠαŸ‚αž›αž™αžΎαž„αž‘αž‘αž½αž›αž™αž€αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αžƒαžΎαž‰αžαžΆαž™αžΎαž„αž€αŸ†αž–αž»αž„αž‘αž‘αž½αž›αž™αž€αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž‘αžΈαž”αŸ†αž•αž»αžαž–αž½αž€αž‚αŸαž˜αž·αž“αž˜αžΆαž“αž–αŸαž›αž…αžΆαž”αŸ‹αžŠαŸƒ αž™αžΎαž„αžŠαžΆαž€αŸ‹αž–αž½αž€αžœαžΆαž‡αžΆαž‡αž½αžš αžŠαžΎαž˜αŸ’αž”αžΈαž€αž»αŸ†αž±αŸ’αž™αžαŸ’αž‡αŸ‡αžαŸ’αž‡αžΆαž™αž’αž“αž’αžΆαž“ CPUαŸ” αž“αŸαŸ‡αž“αžΆαŸ†αž±αŸ’αž™αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž€αžΆαžšαž…αžΆαž”αŸ‹αžŠαŸƒαž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αžŠαž›αŸ‹αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹αž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž“αžΉαž„αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αžΆαžšαž•αŸ’αž‘αž»αž€αž‚αžΊαž’αŸ’αž„αž“αŸ‹αžŽαžΆαžŸαŸ‹αŸ”

αž•αŸ‚αž“αž‘αžΈαž”αž„αŸ’αž αžΆαž‰αž•αŸ’αž›αžΌαžœ

αžαžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αžƒαžΎαž‰αž’αŸ’αžœαžΈαž“αžΆαž–αŸαž›αž’αž“αžΆαž‚αžαž“αŸ… Odyssey? αžαžΎβ€‹αž™αžΎαž„β€‹αžαŸ’αžšαŸ€αž˜β€‹αžαŸ’αž›αž½αž“β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž’αž—αž·αžœαžŒαŸ’αžβ€‹αžαŸ’αž›αž½αž“β€‹αž™αžΎαž„β€‹αž’αŸ’αžœαžΈ αž αžΎαž™β€‹αžαžΎβ€‹αž™αžΎαž„β€‹αžšαŸ†αž–αžΉαž„β€‹αž’αŸ’αžœαžΈβ€‹αž–αžΈβ€‹αžŸαž αž‚αž˜αž“αŸ?

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž‚αž·αžαžαŸ’αžšαžΉαž˜αžαŸ‚αžŸαžΈαž αžΆ αž†αŸ’αž“αžΆαŸ† 2019 αŸ”

αž“αŸαŸ‡αž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž•αŸ‚αž“αž‘αžΈαž”αž„αŸ’αž αžΆαž‰αž•αŸ’αž›αžΌαžœ Odyssey αž˜αžΎαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αžαŸ‚αžŸαžΈαž αžΆαŸ–

  • αž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž€αžΆαžšαž•αŸ’αž‘αŸ€αž„αž•αŸ’αž‘αžΆαžαŸ‹ SCRAM αž“αž·αž„ PAM αŸ”
  • αž™αžΎαž„αž…αž„αŸ‹αž”αž‰αŸ’αž‡αžΌαž“αžŸαŸ†αžŽαžΎαž’αžΆαž“αž‘αŸ…αžšαž„αŸ‹αž…αžΆαŸ†αŸ”
  • αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαŸ”
  • αž“αž·αž„αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž’αžΆαž€αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αž“αŸƒαž•αŸ‚αž“αž‘αžΈαž”αž„αŸ’αž αžΆαž‰αž•αŸ’αž›αžΌαžœαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹ αž αžΎαž™αž˜αž·αž“αž˜αŸ‚αž“αžŠαŸ„αž™αž–αž½αž€αž™αžΎαž„αž‘αŸαŸ” αž αžΎαž™αž“αŸαŸ‡αž‚αžΊαž›αŸ’αž’αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŸαžΌαž˜αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž’αŸ†αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž“αŸ…αžŸαŸαžŸαžŸαž›αŸ‹ αž αžΎαž™αž”αž“αŸ’αžαŸ‚αž˜αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž‘αžΆαž€αŸ‹αž‘αž„β€‹αž“αžΉαž„β€‹αžŸαŸ†αžŽαž½αžšβ€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αžαŸ‚β€‹αž’αžΆαž“β€‹αž‘αŸ…β€‹αž˜αž»αžβ€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αžšαž„αŸ‹αž…αžΆαŸ†? αž™αžΎαž„αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαž…αž˜αŸ’αž›αž„αžŠαŸ‚αž›αž“αžΉαž„αž€αž˜αŸ’αžαŸ…αžαŸ’αž™αž›αŸ‹αžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž’αž“αž»αžœαžαŸ’αžαžŸαŸ†αžŽαžΎαŸ” αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž–αž½αž€αž‚αŸαžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αžαž›αŸ‹αž€αžΆαžšαž”αžšαžΆαž‡αŸαž™ αž“αž·αž„αž€αžΆαžšαž”αŸ’αžαžΌαžšαŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž‡αŸ’αžˆαž˜αžŽαŸ’αžŒαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αž½αž™ αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž€αžΆαž“αŸ‹αž€αžΆαž”αŸ‹αž–αž½αž€αžœαžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž„αžΆαžšαž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž™αžΎαž„αž˜αž·αž“αž’αžΆαž…αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžŽαŸ’αžαžΆαž›αžŠαžΌαž…αž‚αŸ’αž“αžΆ αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαžΌαž…αž‚αŸ’αž“αžΆαžαž»αžŸαž‚αŸ’αž“αžΆ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž”αžΎαž˜αž·αž“αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž‘αŸαž€αžΆαžšαž…αž˜αŸ’αž›αž„αž“αžΉαž„αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž‡αžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž“αŸ…αž€αŸ’αž“αž»αž„ Postgres αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž–αžΈ 10 αžœαžΆαž’αžΆαž…αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ session_attrs αž“αŸ…αž–αŸαž›αž—αŸ’αž‡αžΆαž”αŸ‹αŸ” αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αžšαžΆαž™β€‹αž”αž‰αŸ’αž‡αžΈβ€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™β€‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹β€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αžαž—αŸ’αž‡αžΆαž”αŸ‹ αž αžΎαž™β€‹αž“αž·αž™αžΆαž™β€‹αžαžΆβ€‹αž αŸαžαž»β€‹αž’αŸ’αžœαžΈβ€‹αž”αžΆαž“β€‹αž‡αžΆβ€‹αž’αŸ’αž“αž€β€‹αž‘αŸ…β€‹αž€αžΆαž“αŸ‹β€‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ– សរសេរ αž¬β€‹αž’αžΆαž“β€‹αžαŸ‚β€‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž αžΎαž™αž’αŸ’αž“αž€αž”αžΎαž€αž”αžšαžαŸ’αž›αž½αž“αž―αž„αž“αžΉαž„αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžŠαŸ†αž”αžΌαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžŠαŸ‚αž›αž‚αžΆαžαŸ‹αž…αžΌαž›αž…αž·αžαŸ’αžαž”αŸ†αž•αž»αžαžŠαŸ‚αž›αž”αŸ†αž–αŸαž‰αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžšαž”αžŸαŸ‹ session_attrs αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αž‚αžΊαžαžΆαžœαžΆαž˜αž·αž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœαž“αŸƒαž€αžΆαžšαž…αž˜αŸ’αž›αž„αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΆαž“αž€αžΆαžšαž…αž˜αŸ’αž›αž„αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αž™αžΊαžαž™αŸ‰αžΆαžœαž€αŸ’αž“αž»αž„αž…αŸ†αž“αž½αž“αž–αŸαž›αžœαŸαž›αžΆαžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αž‘αž‘αž½αž›αž™αž€αž”αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž»αžαž„αžΆαžšαž–αŸαž‰αž›αŸαž‰αž“αŸƒαžŸαŸ†αžŽαž½αžšαž’αžΆαž“αž“αŸ…αž›αžΎαž…αž˜αŸ’αž›αž„ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αžαŸ’αžαž—αžΆαž–αžšαž”αžŸαŸ‹ Odyssey αž€αŸ’αž“αž»αž„αž€αžΆαžšαž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžœαžΆαž˜αž·αž“αž’αžΆαž…αž’αžΆαž“αž”αžΆαž“αŸ”

Odyssey αžαŸ’αžšαžΌαžœαžαŸ‚αž‘αŸ…αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαž–αŸαž›αž˜αž½αž™αž‘αŸ…αž–αŸαž›αž˜αž½αž™αž αžΎαž™αžŸαž»αŸ†αž…αž˜αŸ’αž„αžΆαž™αž…αž˜αŸ’αž›αž„αž–αžΈαž”αž‹αž˜αŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαžˆαžΆαž“αžŠαž›αŸ‹αžαž˜αŸ’αž›αŸƒαž€αŸ†αžŽαžαŸ‹ αžŸαžΌαž˜αž€αž»αŸ†αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αžŸαŸ†αžŽαžΎαžαŸ’αž˜αžΈαž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž”αŸ’αžšαžΆαž”αŸ‹αž’αžαž·αžαž·αž‡αž“αžαžΆαžœαžΆαžαŸ’αžšαžΌαžœαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αžΎαž„αžœαž·αž‰ αž αžΎαž™αž’αžΆαž…αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ†αžŽαžΎαŸ” αžœαžΆβ€‹αž“αžΉαž„β€‹αž’αž“αž»αž‰αŸ’αž‰αžΆαžβ€‹αž±αŸ’αž™β€‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™β€‹αžŸαŸ’αžŠαžΆαžšβ€‹αž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœβ€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αž…αž˜αŸ’αž›αž„β€‹αž‘αžΎαž„β€‹αžœαž·αž‰β€‹αž™αŸ‰αžΆαž„β€‹αž†αžΆαž”αŸ‹β€‹αžšαž αŸαžŸ αž αžΎαž™β€‹αžαŸ’αžšαž‘αž”αŸ‹β€‹αž˜αž€β€‹αžœαž·αž‰β€‹αž˜αŸ’αžŠαž„β€‹αž‘αŸ€αžβ€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž†αŸ’αž›αžΎαž™β€‹αžαž”β€‹αž“αžΉαž„β€‹αžŸαŸ†αžŽαžΎαŸ”

αžœαžΆαž–αž·αž”αžΆαž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αžαž›αŸ‹αž–αŸαž›αžœαŸαž›αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž–αŸ’αžšαŸ„αŸ‡αžœαžΆαž‡αžΆαž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αž‰αž»αŸ†αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαž˜αž·αž“αž˜αŸ‚αž“ 2,5 αž†αŸ’αž“αžΆαŸ†αžŠαžΌαž…αž˜αž·αžαŸ’αžαžšαž½αž˜αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž–αžΈ PgBouncer αž‘αŸαŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„ Odyssey αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαž αž‚αž˜αž“αŸ αž˜αž“αž»αžŸαŸ’αžŸαž”αžΆαž“αžŸαž½αžšαž’αŸ†αž–αžΈαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αž…αŸ†. αž₯αž‘αžΌαžœαž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αž…αŸ†αžαžΆαž˜αž–αžΈαžšαžœαž·αž’αžΈαŸ” αžŠαŸ†αž”αžΌαž„αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ SQL αžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αžαžΆ "αžšαŸ€αž”αž…αŸ†" αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž™αž›αŸ‹αž–αžΈαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ SQL αž“αŸαŸ‡ αž™αžΎαž„αžαŸ’αžšαžΌαžœαžšαŸ€αž“αž™αž›αŸ‹αž–αžΈ SQL αž“αŸ…αžαžΆαž„ Bouncer αŸ” αž“αŸαŸ‡β€‹αž“αžΉαž„β€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αžŸαž˜αŸ’αž›αžΆαž”αŸ‹β€‹αž›αžΎαžŸβ€‹αž–αžΈβ€‹αž“αŸαŸ‡ αž–αŸ’αžšαŸ„αŸ‡β€‹αžœαžΆβ€‹αž›αžΎαžŸβ€‹αž–αžΈβ€‹αž–αŸ’αžšαŸ„αŸ‡β€‹αž™αžΎαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž€αžΆαžšβ€‹αž’αžΆαžαž»β€‹αž‰αŸ‚αž€β€‹αž‘αžΆαŸ†αž„αž˜αžΌαž›αŸ” αž™αžΎαž„αž˜αž·αž“αž’αžΆαž…αž‰αŸ‚αž€αžšαžΆαž›αŸ‹αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ SQL αž”αžΆαž“αž‘αŸαŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž“αŸ…αž€αž˜αŸ’αžšαž·αžαž–αž·αž’αžΈαžŸαžΆαžšαžŸαžΆαžšαž“αŸ…αž›αžΎ proto3 αŸ” αž αžΎαž™αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž–αŸαžαŸŒαž˜αžΆαž“αžŠαŸ‚αž›αžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αž˜αž€αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž‡αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ” αž αžΎαž™αž™αžΎαž„αž’αžΆαž…αž‚αžΆαŸ†αž‘αŸ’αžšαž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αžαžΆαž“αŸ…αž›αžΎαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αžαž·αžαž·αž‡αž“αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž±αŸ’αž™αž”αž„αŸ’αž€αžΎαžαžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αž…αŸ†αŸ” αž αžΎαž™αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘αž€αŸαžŠαŸ„αž™ αž€αŸαž™αžΎαž„αž“αŸ…αžαŸ‚αžαŸ’αžšαžΌαžœαžšαž€αŸ’αžŸαžΆαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžšαžœαžΆαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž“αž·αž„αž’αžαž·αžαž·αž‡αž“αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž—αžΆαž–αž˜αž·αž“αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαž“αŸ’αž‘αž“αžΆαž€αžΎαžαž‘αžΎαž„ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž“αž·αž™αžΆαž™αžαžΆ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž™αž›αŸ‹αž–αžΈαž”αŸ’αžšαž—αŸαž‘αž“αŸƒαžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αž…αŸ†αžŠαŸ‚αž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαž αž“αž·αž„αž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžšαžœαžΆαž„αž’αžαž·αžαž·αž‡αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž“αŸαŸ‡ αž–αŸ„αž›αž‚αžΊαž’αŸ’αž“αž€αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž”αŸ‚αž”αž“αŸαŸ‡αŸ”

Andres Freund αž”αžΆαž“αž“αž·αž™αžΆαž™αžαžΆαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αžαž·αžαž·αž‡αž“αž˜αž€αžšαž€αž’αŸ’αž“αž€αžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αž…αŸ†αžšαž½αž…αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž”αž„αŸ’αž€αžΎαžαžœαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αžΆαžαŸ‹αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž αžΆαž€αŸ‹αž”αžΈαžŠαžΌαž…αž‡αžΆαžαž»αžŸαž”αž“αŸ’αžαž·αž…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ†αžŽαžΎαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž’αžαž·αžαž·αž‡αž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαžΆαž˜αž‘αžŸαŸ’αžŸαž“αŸˆαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαŸ‚αž›αžŸαžšαžŸαŸαžšαž–αž·αž’αžΈαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αžœαžΆαž“αžΉαž„αž˜αžΆαž“αž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‚αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž”αžŽαŸ’αžαžΆαž‰αžŠαŸ„αž™αžŸαžΆαž˜αž‰αŸ’αž‰αŸ” αž˜αžΆαž“αžŸαŸ†αžŽαžΎαžŠαŸ‚αž›αž”αžΆαž“αžšαŸ€αž”αž…αŸ†αž”αŸ‚αž”αž“αŸαŸ‡αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž“αž·αž„αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž˜αž½αž™αž‘αŸ€αžαžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαžΌαžœαž’αž“αž»αžœαžαŸ’αžαŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž˜αžΆαž“αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™ PgBouncer αŸ” αž™αžΎαž„αž’αžΆαž…αžαŸ’αžšαž‘αž”αŸ‹αž–αŸαž›αžœαŸαž›αžΆαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ†αžŽαž½αžšαž‡αžΆαž˜αž’αŸ’αž™αž˜αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αŸαž›αžœαŸαž›αžΆαž‡αžΆαž˜αž’αŸ’αž™αž˜αž‚αžΊαžŸαžΈαžαž»αžŽαŸ’αž αž—αžΆαž–αž‡αžΆαž˜αž’αŸ’αž™αž˜αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž“αŸ’αž‘αžΈαžšαž–αŸαž‘αŸ’αž™: αžαŸ’αž›αŸ‡αžαŸ’αžšαž‡αžΆαž€αŸ‹ αžαŸ’αž›αŸ‡αž€αŸ’αžαŸ… - αž‡αžΆαž˜αž’αŸ’αž™αž˜ αž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž˜αžΆαž“αžŸαž»αžαž—αžΆαž–αž›αŸ’αž’αŸ” αžœαžΆβ€‹αž˜αž·αž“β€‹αž–αž·αžβ€‹αž‘αŸαŸ”

αž™αžΎαž„αžαŸ’αžšαžΌαžœαž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž‚αžšαž™αžŠαŸ‚αž›αž“αžΉαž„αž”αž„αŸ’αž αžΆαž‰αžαžΆαž˜αžΆαž“αžŸαŸ†αžŽαž½αžšαž™αžΊαžαŸ—αžŠαŸ‚αž›αžαŸ’αž‡αŸ‡αžαŸ’αž‡αžΆαž™αž’αž“αž’αžΆαž“ αž“αž·αž„αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αžΆαž“αŸ‹αžαŸ‚αž’αžΆαž…αž‘αž‘αž½αž›αž™αž€αž”αžΆαž“αŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžŸαŸ†αžαžΆαž“αŸ‹αž”αŸ†αž•αž»αžαž“αŸ„αŸ‡αž‚αžΊαžαžΆαžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž”αžΆαž“αž€αŸ†αžŽαŸ‚ 1.0 (αž€αŸ†αžŽαŸ‚ 1.1 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžšαž½αž…αž αžΎαž™) αŸ” αž€αžΆαžšαž–αž·αžαž‚αžΊαžαžΆ Odyssey αž₯αž‘αžΌαžœαž“αŸαŸ‡αžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚ 1.0rc αž–αŸ„αž›αž‚αžΊ αž”αŸαž€αŸ’αžαž‡αž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™αŸ” αž αžΎαž™αž”αž‰αŸ’αž αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžšαžΆαž™αž”αž‰αŸ’αž‡αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αž½αžŸαž‡αž»αž›αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αŸ†αžŽαŸ‚αžŠαžΌαž…αž‚αŸ’αž“αžΆαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„ αž›αžΎαž€αž›αŸ‚αž„αžαŸ‚αž€αžΆαžšαž›αŸαž…αž’αŸ’αž›αžΆαž™αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αŸ”

αžαžΎαž€αŸ†αžŽαŸ‚ 1.0 αž“αžΉαž„αž˜αžΆαž“αž“αŸαž™αž™αŸ‰αžΆαž„αžŽαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„? αž™αžΎαž„αž€αŸ†αž–αž»αž„αžŠαžΆαž€αŸ‹ Odyssey αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž›αžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžšαž”αžŸαŸ‹αž™αžΎαž„αžšαž½αž…αž αžΎαž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžœαžΆαžˆαžΆαž“αžŠαž›αŸ‹ 1 αžŸαŸ†αžŽαžΎαž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈ αž“αŸ„αŸ‡αž™αžΎαž„αž’αžΆαž…αž“αž·αž™αžΆαž™αž”αžΆαž“αžαžΆ αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αŸ†αžŽαŸ‚αž…αŸαž‰αž•αŸ’αžŸαžΆαž™ αž αžΎαž™αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αŸ†αžŽαŸ‚αžŠαŸ‚αž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž αŸ…αžαžΆ 000 αŸ”

αž˜αž“αž»αžŸαŸ’αžŸαž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαž αž‚αž˜αž“αŸαž”αžΆαž“αžŸαž½αžšαžαžΆαž€αŸ†αžŽαŸ‚ 1.0 αžšαž½αž˜αž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž’αžΆαž€ αž“αž·αž„ SCRAM αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸαŸ‡αž“αžΉαž„αž˜αžΆαž“αž“αŸαž™αžαžΆ αž™αžΎαž„αž“αžΉαž„αžαŸ’αžšαžΌαžœαžŠαžΆαž€αŸ‹αž…αŸαž‰αž€αŸ†αžŽαŸ‚αž”αž“αŸ’αž‘αžΆαž”αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž•αž›αž·αž αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž‘αžΆαŸ†αž„ SCRAM αž“αž·αž„αž€αžΆαžšαž•αŸ’αž’αžΆαž€αž˜αž·αž“αž‘αžΆαž“αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž˜αŸ’αž›αžΆαž”αŸ‹αž“αŸ…αž‘αžΎαž™αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚ αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž‘αŸ†αž“αž„αž‡αžΆαž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸαŸ”

αž•αŸ‚αž“αž‘αžΈαž•αŸ’αž›αžΌαžœ Odyssey: αžαžΎαž™αžΎαž„αž…αž„αŸ‹αž”αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαž–αžΈαž§αž”αž€αžšαžŽαŸαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” Andrey Borodin (αž†αŸ’αž“αžΆαŸ† 2019)

αžαŸ’αž‰αž»αŸ†αž€αŸ†αž–αž»αž„αžšαž„αŸ‹αž…αžΆαŸ†αžŸαŸ†αžŽαžΎαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αžαŸ’αž‰αž»αŸ†β€‹αž€αŸβ€‹αž…αž„αŸ‹β€‹αžŠαžΉαž„β€‹αžŠαŸ‚αžšβ€‹αžαžΆβ€‹αž’αŸ’αž“αž€β€‹αž˜αžΆαž“β€‹αž”αž‰αŸ’αž αžΆβ€‹αž’αŸ’αžœαžΈβ€‹αž‡αžΆαž˜αž½αž™ BouncerαŸ” αžαŸ„αŸ‡αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž–αž½αž€αž‚αŸαŸ” αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž™αžΎαž„αž’αžΆαž…αž’αž“αž»αžœαžαŸ’αžαž˜αž»αžαž„αžΆαžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ”

αž“αŸαŸ‡αž‡αžΆαž—αžΆαž‚αž”αž‰αŸ’αž…αž”αŸ‹αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αžŸαŸ’αžαžΆαž”αŸ‹αž’αŸ’αž“αž€ αžŸαžΌαž˜αž’αžšαž‚αž»αžŽ!

αžŸαŸ†αžŽαž½αžš

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαŸ’αž‰αž»αŸ†αž€αŸ†αžŽαžαŸ‹ application_name αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αžαžΎαžœαžΆαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž”αž“αŸ’αžαž™αŸ‰αžΆαž„αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αžšαž½αž˜αž‘αžΆαŸ†αž„αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„ Odyssey αžŠαŸ‚αžšαž¬αž‘αŸ?

Odyssey ឬ Bouncer?

αž“αŸ… Odyssey αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„ Bouncer αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ„αŸ‡αž…αŸ„αž›αŸ”

αž™αžΎαž„αž“αžΉαž„αž’αŸ’αžœαžΎαžˆαž»αžαž˜αž½αž™αŸ”

αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž›αŸ„αžαž›αžΎαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αžαžΎαžœαžΆαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αžŠαŸ‚αžšαž¬αž‘αŸ?

αž™αžΎαž„αž“αžΉαž„αž”αž„αŸ’αž€αžΎαžαžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαŸ” αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαžΆαž”αŸ‹αžαžΆαžαžΎ application_name αžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαž“αŸαŸ‡αž‘αŸαŸ” αžαŸ’αž‰αž»αŸ†αž‚αž·αžαžαžΆαžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžƒαžΎαž‰αž‚αžΆαžαŸ‹αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αŸ” αž™αžΎαž„αž“αžΉαž„αž€αŸ†αžŽαžαŸ‹αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαžΌαž…αž‚αŸ’αž“αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŸαŸ†αžŽαžΎαž˜αž½αž™ αžŸαŸ†αžŽαž»αŸ†αž“αžΉαž„αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αžŠαŸ„αž™αž’αžαž·αžαž·αž‡αž“αž€αŸ†αž‘αž»αž„αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αŸ”

αž’αžšαž‚αž»αžŽ Andrey αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸ! αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž›αŸ’αž’! αžαŸ’αž‰αž»αŸ†β€‹αžšαžΈαž€αžšαžΆαž™β€‹αžŠαŸ‚αž› Odyssey αž€αŸ†αž–αž»αž„β€‹αž’αž—αž·αžœαžŒαŸ’αžβ€‹αž›αžΏαž“β€‹αž‡αžΆαž„β€‹αž˜αž»αž“β€‹αžšαžΆαž›αŸ‹β€‹αž“αžΆαž‘αžΈαŸ” αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž”αž“αŸ’αžαžŠαžΌαž…αž“αŸαŸ‡αŸ” αž™αžΎαž„αž”αžΆαž“αžŸαŸ’αž“αžΎαž±αŸ’αž™αž’αŸ’αž“αž€αž˜αžΆαž“αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž”αŸ’αžšαž—αž–αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸ’αžšαžΎαž“αžšαž½αž…αž αžΎαž™ αžŠαžΌαž…αŸ’αž“αŸαŸ‡ Odyssey αž’αžΆαž…αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆ αž–αŸ„αž›αž‚αžΊαž‘αžΆαžŸαž€αžšαž˜αŸ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž‘αŸ…αž˜αŸαžαŸ’αž˜αžΈαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž”αžšαžΆαž‡αŸαž™αŸ”

αž”αžΆαž‘ αžαŸ’αž‰αž»αŸ†αž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž…αž„αž…αžΆαŸ†αž€αžΆαžšαž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž“αŸαŸ‡αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž˜αžΆαž“αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžšαžœαžΆαž„αž–αž½αž€αž‚αŸαž‘αŸαŸ” αž“αŸ…αžαžΆαž„αž™αžΎαž„ αž™αžΎαž„αžαŸ’αžšαžΌαžœαžŸαŸ’αž‘αž„αŸ‹αž˜αžΎαž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαžΆαžœαžΆαž“αŸ…αžšαžŸαŸ‹ αž αžΎαž™αž™αž›αŸ‹αžαžΆαž€αžΆαžšαž”αžšαžΆαž‡αŸαž™αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„ αžŠαŸ‚αž›αž“αžΉαž„αž αŸ… pg_recovery αŸ” αžαŸ’αž‰αž»αŸ†β€‹αž˜αžΆαž“β€‹αžœαž·αž’αžΈβ€‹αžŸαŸ’αžŠαž„αŸ‹αžŠαžΆαžšβ€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αž™αž›αŸ‹β€‹αžŠαžΉαž„β€‹αžαžΆβ€‹αž™αžΎαž„β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αž˜αž€β€‹αžšαž€β€‹αž˜αŸ’αž…αžΆαžŸαŸ‹αŸ” αž αžΎαž™β€‹αžαžΎβ€‹αž™αžΎαž„β€‹αž‚αž½αžšβ€‹αž™αž›αŸ‹β€‹αž–αžΈβ€‹αž€αŸ†αž αž»αžŸβ€‹αž¬β€‹αž™αŸ‰αžΆαž„β€‹αžŽαžΆ? αž“αŸ„αŸ‡αž‚αžΊαž‚αŸ†αž“αž·αžαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžœαžΆαž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαŸ” αžŸαžšαžŸαŸαžšαž˜αžαž·αž”αž“αŸ’αžαŸ‚αž˜αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž€αž˜αŸ’αž˜αž€αžšαžŠαŸ‚αž›αžŸαŸ’αž‚αžΆαž›αŸ‹ C αž“αŸ„αŸ‡αž‡αžΆαž‘αžΌαž‘αŸ…αž›αŸ’αž’αžŽαžΆαžŸαŸ‹αŸ”

αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž›αžΎαž€αžΆαžšαž…αž˜αŸ’αž›αž„αž€αŸαž‡αžΆαž€αžΆαžšαž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αž•αž„αžŠαŸ‚αžš αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž™αžΎαž„αž…αž„αŸ‹αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαž’αž“αž»αž˜αŸαžαž“αŸƒαž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ‚αž›αž”αžΆαž“αž…αž˜αŸ’αž›αž„αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαžŸαžΆαž˜αž‰αŸ’αž‰αžαžΆαž˜αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž•αŸ’αžαž›αŸ‹αž™αŸ„αž”αž›αŸ‹αž”αž“αŸ’αžαŸ‚αž˜ αž–αŸ„αž›αž‚αžΊ αžšαž”αŸ€αž”αž’αŸ’αžœαžΎαžœαžΆαž±αŸ’αž™αž…αŸ’αž”αžΆαžŸαŸ‹ αžšαž”αŸ€αž”αž’αŸ’αžœαžΎαžœαžΆαž±αŸ’αž™αž”αžΆαž“αž›αŸ’αž’αŸ”

αžŸαŸ†αžŽαž½αžšαž€αŸαž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαž…αž˜αŸ’αž›αž„αž•αž„αžŠαŸ‚αžšαŸ” αžœαžΆαž”αŸ’αžšαŸ‚αžαžΆαž’αŸ’αž“αž€αž˜αžΆαž“αž˜αŸαž“αž·αž„αž…αž˜αŸ’αž›αž„αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž αžΎαž™αžœαžΆαž…αŸ’αž”αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹αžαžΆαž–αž½αž€αž‚αŸαž‘αŸ…αž…αž˜αŸ’αž›αž„αž‰αžΉαž€αž‰αžΆαž”αŸ‹αžαž·αž…αž‡αžΆαž„αž‘αŸ…αž˜αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž–αŸ’αžšαŸ„αŸ‡αžœαžΆαž’αžΆαž…αž˜αžΆαž“αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαŸ” αž’αŸ’αž“αž€αž”αžΆαž“αž“αž·αž™αžΆαž™αžαžΆ αž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αžΆαž…αž˜αžΆαž“αžŠαžΌαž…αž‡αžΆ αžœαžΆαž“αžΉαž„αž˜αž·αž“αž”αŸ†αž–αŸαž‰αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž αžΎαž™αž’αŸ’αž“αž€αž“αžΉαž„αž˜αž·αž“αž‘αŸ…αž‘αžΈαž“αŸ„αŸ‡αžšαž αžΌαžαžŠαž›αŸ‹αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž˜αŸ’αž›αž„αŸ” αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž”αžΆαž“αž‘αŸ…αž‘αžΈαž“αŸ„αŸ‡αž™αžΌαžšαž αžΎαž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αŸ…αž“αŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαž“αžΉαž„αž˜αž·αž“αž˜αžΆαž“αž—αŸ’αž›αžΆαž˜αŸ—αž‘αŸαŸ” αž“αŸ„αŸ‡αž‚αžΊαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž‘αŸ…αž˜αŸαž₯αžαžˆαž”αŸ‹αžˆαžš αž“αŸ„αŸ‡αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŠαŸ…αž‘αžΎαž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž…αž˜αŸ’αž›αž„αž“αžΉαž„αž™αžΊαžαž”αž“αŸ’αžαž·αž…αŸ”

αž”αžΆαž‘β€‹αžœαžΆβ€‹αž‡αžΆβ€‹αžšαžΏαž„β€‹αž–αž·αžαŸ” pcache αž“αžΉαž„αž˜αž·αž“αž˜αžΆαž“αž”αŸ’αž›αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αž„αŸ‹αž”αžΆαž“αž‘αŸ αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž–αž·αžαž“αžΉαž„αž˜αž·αž“αž˜αžΆαž“αž–αŸαžαŸŒαž˜αžΆαž“αž’αŸ†αž–αžΈαžαžΆαžšαžΆαž„αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αž„αŸ‹αž”αžΆαž“ αž‚αž˜αŸ’αžšαŸ„αž„αž“αžΉαž„αž˜αž·αž“αž˜αžΆαž“αžŸαŸ†αžŽαž½αžšαžŠαŸ‚αž›αž”αžΆαž“αž‰αŸ‚αž€αž‘αŸ αžœαžΆαž“αžΉαž„αž˜αž·αž“αž˜αžΆαž“αž’αŸ’αžœαžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αž αžΎαž™αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αž˜αžΆαž“αž…αž„αŸ’αž€αŸ„αž˜αž”αŸ’αžšαž—αŸαž‘αž˜αž½αž™αž…αŸ†αž“αž½αž“ αž αžΎαž™αž’αŸ’αž“αž€αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž…αž˜αŸ’αž›αž„αžαŸ’αž˜αžΈαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αžœαžΆαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‚αžΊαž˜αž·αž“αž›αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆ αž–αŸ„αž›αž‚αžΊαžœαžΆαž”αž„αŸ’αž€αžΎαž“αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžšαž”αžŸαŸ‹αžœαžΆαŸ”

αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‘αž‘αž½αž›αž‚αŸ†αž“αž·αžαŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž‚αžΊαžαŸ’αžšαžΌαžœαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžŽαž½αžšαž˜αž½αž™αž—αžΆαž‚αžαžΌαž…αž›αžΎαž€αžΆαžšαž…αž˜αŸ’αž›αž„αž‡αžΆαž˜αž»αž“αžŸαž·αž“ αžŠαŸ‚αž›αž“αžΉαž„αž’αŸ’αžœαžΎαž±αŸ’αž™αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž€αŸ’αžαŸ…αž‘αžΎαž„αŸ” αž“αž·αž™αžΆαž™αž‡αžΆαžšαž½αž˜ αž™αžΎαž„αž˜αžΆαž“αž›αž€αŸ’αžαžαžŽαŸ’αžŒαžαžΆ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž™αžΊαžαž™αŸ‰αžΆαžœαž–αžΈαž€αŸ’αžšαŸ„αž™αž˜αŸαž˜αž·αž“αž›αžΎαžŸαž–αžΈ 10 αžœαž·αž“αžΆαž‘αžΈαŸ” αž αžΎαž™αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž“αŸαŸ‡αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž…αžΌαž›αž€αŸ’αž“αž»αž„αžšαž›αž€αžαŸ‚αž˜αž½αž™αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αŸ‰αžΆαž„αžšαž›αžΌαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžαž·αžαž·αž‡αž“αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ”

αž”αžΆαž‘ αž”αž„αŸ’αž€αžΎαž“αž‘αž˜αŸ’αž„αž“αŸ‹αŸ”

αž“αŸαŸ‡αž‡αžΆαž‚αŸ†αž“αž·αžαž›αŸ’αž’αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαŸ†αž”αžΌαž„αž™αžΎαž„αžαŸ’αžšαžΌαžœαž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž”αž·αž‘αž“αŸαŸ‡αŸ” αžŠαŸ†αž”αžΌαž„αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αž·αž‘ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž™αžΎαž„αž“αžΉαž„αž‚αž·αžαž–αžΈαžšαž”αŸ€αž”αž”αžΎαž€αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž˜αž»αžαž„αžΆαžšαžŠαŸαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™αž˜αž½αž™αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž™αŸ‰αžΆαž„αžšαž›αžΌαž“αŸ”

Nginx αž˜αžΆαž“αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸαŸ‡αŸ” slowly start αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ” αž αžΎαž™αž‚αžΆαžαŸ‹αž”αž„αŸ’αž€αžΎαž“αž”αž“αŸ’αž‘αž»αž€αž”αž“αŸ’αžαž·αž…αž˜αŸ’αžαž„ αŸ— αŸ”

αž”αžΆαž‘ αž‚αŸ†αž“αž·αžαžŠαŸαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™ αž™αžΎαž„αž“αžΉαž„αžŸαžΆαž€αž›αŸ’αž”αž„αžœαžΆαž“αŸ…αž–αŸαž›αž™αžΎαž„αž‘αŸ…αžŠαž›αŸ‹αž‘αžΈαž“αŸ„αŸ‡αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹