αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž—αžΆαž–αžŸαŸŠαžΈαžŸαž„αŸ’αžœαžΆαž€αŸ‹αž‚αŸ’αž“αžΆαž“αŸƒαž€αžΆαžšαžŸαžšαžŸαŸαžš PostgreSQL αž“αž·αž„αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹

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

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž—αžΆαž–αžŸαŸŠαžΈαžŸαž„αŸ’αžœαžΆαž€αŸ‹αž‚αŸ’αž“αžΆαž“αŸƒαž€αžΆαžšαžŸαžšαžŸαŸαžš PostgreSQL αž“αž·αž„αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹

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

αž αŸαžαž»αž’αŸ’αžœαžΈαžαŸ’αž‰αž»αŸ†αžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆ?

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

αž‡αž½αž”αž€αžΆαžšαžŸαž˜αŸ’αžšαž”αžŸαž˜αŸ’αžšαž½αž›

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

Tradeoff 1: αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž

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

Tradeoff 2: αž—αžΆαž–αž‡αžΆαž”αŸ‹αž›αžΆαž”αŸ‹

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

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

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

αž€αžΆαžšαžŠαŸ„αŸ‡αžŠαžΌαžš 3: αž‚αžΆαŸ†αž„

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

αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž½αž™αž€αŸ’αž“αž»αž„αž˜αž½αž™αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš?

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

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

αž’αžΆαž“αžΆαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž

αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ PostgreSQL αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž—αžΆαž–αžŸαŸŠαžΈαžŸαž„αŸ’αžœαžΆαž€αŸ‹αž‚αŸ’αž“αžΆαŸ” αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžŠαŸ„αž™αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ synchronous_commit. αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžœαžΆαžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž‘αžΈαžαžΆαŸ†αž„ onαž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž˜αžΆαž“αž‡αž˜αŸ’αžšαžΎαžŸαž”αžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ– local, remote_write ឬ off.

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

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

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

SET SESSION synchronous_commit TO ON;  
// Your writes go here

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

αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž‘αžΈαž–αžΈαžšαž‚αžΊαž›αŸ’αž’αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž…αž„αŸ‹αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžΆαž€αžŠαžαžΆαž’αŸ’αž“αž€αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž…αž˜αŸ’αž›αž„αžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžαŸ‚αž˜αž½αž™αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αŸ†αž“αžΆαž“αŸ‹ NoSQL αž‡αžΆαž…αŸ’αžšαžΎαž“ αž‚αŸ†αž“αž·αžαž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž˜αž·αž“αž˜αžΆαž“αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„ PostgreSQL αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡αž’αŸ’αž“αž€αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž€αŸ†αžŽαžαŸ‹ synchronous_commit Π² on αž˜αž»αž“αž–αŸαž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž’αžΆαžαž»αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ” COMMIT αž“αžΉαž„αž’αŸ’αžœαžΎαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαŸ„αž™αž”αŸ’αžšαžΎαžαž˜αŸ’αž›αŸƒαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŽαžΆαž˜αž½αž™αŸ” synchronous_commitαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž–αŸαž›αž“αŸ„αŸ‡ αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžœαžΆαž›αŸ’αž’αž”αŸ†αž•αž»αžαž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž’αžαŸαžšαž‡αžΆαž˜αž»αž“ αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ’αžšαžΆαž€αžŠαžαžΆαž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž™αž›αŸ‹αžαžΆαž€αžΆαžšαžŸαžšαžŸαŸαžšαž˜αž·αž“αžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž€αŸαžŠαŸ„αž™αŸ”

BEGIN;  
SET LOCAL synchronous_commit TO ON;  
// Your writes go here
COMMIT;  

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

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ PostgreSQL

αž˜αž»αž“αž“αŸαŸ‡ αž™αžΎαž„αž”αžΆαž“αžŸαŸ’αžšαž˜αŸƒαž˜αžΎαž›αž”αŸ’αžšαž–αŸαž“αŸ’αž’ PostgreSQL αž‡αžΆαž˜αž½αž™ synchronous_commit, αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„ local. αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αžΆαž“αž—αžΆαž–αž”αŸ’αžšαžΆαž€αžŠαž“αž·αž™αž˜αž“αŸ…αž›αžΎαž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸƒαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž–αžΈαžšαŸ” αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž˜αž½αž™αž‘αŸ€αž synchronous_standby_names αž“αžΉαž„αž…αžΌαž›αž˜αž€αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αž“αŸ…αž–αŸαž› synchronous_commit αž“αžΉαž„αž“αŸ…αž€αŸ’αž“αž»αž„ on. αžœαžΆαž€αŸ†αžŽαžαŸ‹αžαžΆαžαžΎαž€αžΆαžšαž…αž˜αŸ’αž›αž„αžŽαžΆαž˜αž½αž™αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜ αž αžΎαž™αž™αžΎαž„αž“αžΉαž„αž€αŸ†αžŽαžαŸ‹αžœαžΆαž‘αŸ…αž‡αžΆ *αžŠαŸ‚αž›αž“αžΉαž„αž˜αžΆαž“αž“αŸαž™αžαžΆαž€αžΆαžšαž…αž˜αŸ’αž›αž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΌαž›αžšαž½αž˜αŸ” αžαž˜αŸ’αž›αŸƒαž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„ αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αžŠαŸ„αž™αž”αž“αŸ’αžαŸ‚αž˜αŸ–

synchronous_commit = local  
synchronous_standby_names='*'

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

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αžΆαž“αž’αŸ’αžœαžΎαžαžΆαž˜αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž‚αž˜αŸ’αžšαŸ„αž„αž’αž—αž·αž”αžΆαž›αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž”αžΆαž“αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαŸ’αž˜αžΈαŸ—αž˜αž½αž™αž…αŸ†αž“αž½αž“ (1, 2) αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž’αž—αž·αž”αžΆαž›αž’αŸ’αžœαžΎαž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž“αž·αž„αžαžΆαž˜αžŠαžΆαž“αž—αžΆαž–αžŸαŸŠαžΈαžŸαž„αŸ’αžœαžΆαž€αŸ‹αž‚αŸ’αž“αžΆαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ”

αž–αžΆαž€αŸ’αž™αž–αžΈαžšαž”αžΈαž‘αŸ€αž...

αž€αžΆαž›αž–αžΈαž˜αž½αž™αžŸαž”αŸ’αžαžΆαž αŸαž˜αž»αž“ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžαžΆ αžœαžΆαž˜αž·αž“αž’αžΆαž…αž‘αŸ…αžšαž½αž…αž‘αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ‚αžŸαž˜αŸ’αžšαž½αž› PostgreSQL αž±αŸ’αž™αž”αžΆαž“αž›αŸ’αž’αž·αžαž›αŸ’αž’αž“αŸ‹αŸ” αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαž–αŸαž›αžŠαŸ‚αž› Kurt αžŸαž˜αžΆαž‡αž·αž€αž“αŸƒαž€αŸ’αžšαž»αž˜ Compose platform αž”αžΆαž“αž‘αž‘αžΌαž…αžαžΆαž˜αžΆαž“αž±αž€αžΆαžŸαž”αŸ‚αž”αž“αŸαŸ‡αŸ” αž‚αžΆαžαŸ‹αž”αžΆαž“αžŸαŸ’αž„αž”αŸ‹αžŸαŸ’αž„αžΆαžαŸ‹αž€αžΆαžšαž‡αŸ†αž‘αžΆαžŸαŸ‹αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αž αžΎαž™αž”αžΆαž“αžšαž€αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš PostgreSQL αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜:

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž—αžΆαž–αžŸαŸŠαžΈαžŸαž„αŸ’αžœαžΆαž€αŸ‹αž‚αŸ’αž“αžΆαž“αŸƒαž€αžΆαžšαžŸαžšαžŸαŸαžš PostgreSQL αž“αž·αž„αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž“αŸαŸ‡αž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αžΆαž“αž‚αŸ’αžšαž”αŸ‹αž–αŸαž›αŸ” αž₯αžšαž·αž™αžΆαž”αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŽαžΆαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‡αžΆαž’αžšαž˜αžΆαž“αž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžœαžΆαž’αžΆαž…αž‘αŸ…αžšαž½αž… αž“αž·αž„αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜ αž“αž·αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ„αž™αž’αžŸαž˜αž€αžΆαž›αŸ” αž§αž‘αžΆαž αžšαžŽαŸαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αžαŸ†αž˜αž½αž™αŸ” multistatement αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž€αžΆαžš commits asynchronous αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžαž˜αŸ’αž›αŸƒαž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αž“αŸƒαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž‚αžΊαž•αŸ’αž‘αž»αž™ αž€αŸ†αžŽαžαŸ‹ SET LOCAL synchronous_commit TO OFF αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž˜αž½αž™αŸ”

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

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

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