áá±á¬ááºážáá«ážááá¬áá¬ááŒááºááᯠáááºáááºážáá¬ážáá»á¬ážá¡ááœáẠá¡áá°ážááŒááºáááºáá¬ážáá«áááºá
PostgreSQL ááŸáá·áº áá»áááºáááºááŸá¯-áááá»áá±á¬ áá®ááœááºááŸá¯ áááºáááºáá»á¬ážááᯠáá±ážáá¬ážáá«á
Compose ááœááºá áá»áœááºá¯ááºááá¯á·ááẠáááºážááá¯á·á áá¯ááºáá±á¬ááºááá¯ááºá
áœááºážááŸáá·áº áá»áá¯á·ááœááºážáá»ááºáá»á¬ážááᯠááá¯ááá¯áááºážááŸá®ážáá¬á
á±ááẠá¡ááœáá·áºá¡áá±ážáá±ážááá·áº áá±áá¬áá±á·á
áºáá»á¬ážá
áœá¬ááŸáá·áº ááá¯ááºááœááºááŒá±ááŸááºážáá«áááºá áá±áá¬áá±á·á
áºá¡áá
áºáá»á¬ážá á¡ááºá¹áá«áááºáá»á¬ážááᯠááŸá
áºáááºáááºááẠáááºáá°áá¬áááºááŸáá·áºá¡áá»áŸ áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·ááŸáá·áº á¡áá»áááºááŒá¬ááŒáá·áºá
áœá¬ áá¯ááºáá±á¬ááºáá²á·áá±á¬ ááá¯ááá¯ááá·áºáá»ááºáá±á¬áááááá¬áá»á¬ážááœáẠá¡áá¬ážáá°á¡ááºá¹áá«áááºáá»á¬ážááŸááá±áá«á áááºáá»áŸáá±á¬ááºážáááºááᯠááœá±ážáá±á¬áááá«áááºá PostgreSQL ááœáẠáá»áœááºá¯ááºááŒááºááá¯áá±á¬ á¡ááºá¹áá«áááºá¡áá
áºáá»á¬ážáá²á០áá
áºáá¯ááẠá¡á
á¯á¡áá±ážáá
áºáá¯áá¯á¶ážááŸá áá»áááºáááºááŸá¯áá
áºáá¯á¡ááœáẠáá±ážáááºáá®ááœááºááŸá¯ááᯠáá»áááºááŸáááá¯ááºáááºá ááœááºáá±á«áºáá¬ááá·áºá¡ááá¯ááºážá áá»áœááºá¯ááºááá¯á·ááœáẠáááºážááá¯áááŸááá¬ážááŒá®ážááŒá
áºááŒá®ážá ááá±á·ááœáẠáááºážááᯠáááºáááºáá²á·ááá¯á·á¡áá¯á¶ážááŒá¯ááááºááᯠááá·áºá¡á¬áž áá»áŸáá±ááá¯áá«áááºá
áá«áá¬ááŒá±á¬áá·áºááá¯á¡ááºáá¬áá²á
á¡á á¯á¡ááœá²á·ááẠáááºááá¯á·ááŒá¯áá°ááá·áºáááºá ááá·áºáá»áŸá±á¬ááºááœáŸá¬áá±á«áºááœááºáá°áááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááœá±áá±ážáá»á±ááŸá¯á¡ááºááºááᯠáá°áá«á áááºááẠá¡á á¯á¡áá±ážáá áºáá¯áá¯á¶ážááœáẠXNUMX% áá®ááœááºááŸá¯ ááá¯á¡ááºáááºááŒá áºááŒá®ážá ááá¯á·ááŒá±á¬áá·áº áááºááá±áá¬áá±á·á áºááœáẠááŒá±á¬ááºážáá²ááŸá¯á¡á¬ážáá¯á¶ážááᯠá á±á¬áá·áºááá¯ááºááẠsynchronous commits áá»á¬ážááᯠááœáá·áºáá¬ážááá«áááºá ááá¯á·áá±á¬áºá ááá·áºáá»áŸá±á¬ááºááœáŸá¬ááẠáá»ááºááŒááºá áœá¬ááŒá®ážááœá¬ážáá±ááá·áº áá°ááŸá¯ááœááºáááºááŒá áºáá«áá XNUMX% áá®ááœááºááŸá¯ááẠáá»ááºááŒááºáá±á¬áá¯á¶á·ááŒááºááŸá¯ááᯠáááºááŸá áºáááºáá±áááºá áááºážááá¯á¡á±á¬ááºááŒááºáááºá áááºááẠáááºáá¡á á¯á¡áá±ážááœáẠá¡áááºáááŒááºáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
á¡áá±ážá¡áá°áá¯ááºáá«á
áá±áá¬áá®ááœááºááŸá¯ááŸáá·áº á áœááºážáá±á¬ááºáááºááŒá¬ážááœáẠá¡áá±ážá¡áá°áá¯ááºááẠááá¯á¡ááºáááºá áá¯á¶áá±ááœá²á·á ááºážáá¯á¶ááẠááá¯á¡áá»áááºá ááŒáá¯áááºááŸááºážáááá¯ááºááŒá®áž ááá»áŸá±á¬áºááá·áºáá¬ážáá±á¬ á¡á¶á·ááŒááœááºáá¬áá»á¬ážáááŸááá² ááŒá áºáá±á¬ááŒá±á¬áá·áº PostgreSQL ááẠáá®ááœááºááŸá¯á០áá±ážááœá¬ááœá¬ážáá«áááºá á¡áᯠááŸáááŸáá¯ááºážááŸá¯ááœá±ááᯠááŒáá·áºáá¡á±á¬ááºá
Tradeoff 1- á áœááºážáá±á¬ááºáááº
PostgreSQL á¡á á¯á¡áá±ážááẠáá®ááœááºááŸá¯ áááá¯á¡ááºáá«áá áááºážááẠáá»áááºááá¯ááºáá¯ááºáá±á¬ááºááá¯ááºáááºá á á¬áá±ážááŒááºážááᯠá¡á á¯á¡ááœá²á·áá±á«ááºážáá±á¬ááºáᶠááŒá¯áá¯ááºáá¬ážááŒá®áž áá®áá®á áá¹ááá·áºá¡áááºážáááºá¡ááŒá¬ááœáẠáááºážááá¯á¶á á¶áá°áá»á¬ážáᶠá¡ááºááááºáá»á¬ážááᯠáá±ážááá¯á·áá«áááºá PostgreSQL á¡á á¯á¡áá±ážáá áºáá¯ááẠáá®ááœááºááŸá¯ááá¯á¡ááºáá±á¬á¡áá«á áááºážááẠáá áºááŒáá¯ááºáááºážáá¯ááºáá±á¬ááºááá«áááºá á á¬áá±ážááŒááºážá¡á¬áž á¡á á¯á¡ááœá²á·áá±á«ááºážáá±á¬ááºáᶠá¡ááºááááºáá áºáᯠáá±ážááá¯á·áááºááŒá áºááŒá®áž áááºážááẠá¡á±á¬ááºááŒááºááŒá±á¬ááºáž áá±ážáá¬ážááŸá¯á áááºááá·áº áááá¯ááºážááá·áºáᶠá¡áááºááŒá¯áá»ááºááá±ážááá¯á·áá® áá áºáá¯á á®á áá±ážáá¬ážáá¬ážááá·áº á¡áááºááŒá¯áá»ááºááᯠá á±á¬áá·áºáá»áŸá±á¬áºáá±áá«áááºá á€áá»ááºážáááºááŸá¯áá»á¬ážá¡ááŒá¬áž áááºááœá±á·áá»áá±á¬ ááœá¬ááŒá¬ážáá»ááºááŸá¬ ááŒáá¯ááºáá°áá°ážá ááºáááºážáááºážááẠááœááºááẠáá¯ááºáá±á«ááºááŸá áºáᯠááá¯á¡ááºááŒá®áž synchronous áááºážáááºáž áá±ážáᯠááá¯á¡ááºáááºá
Tradeoff 2- áá®ááœááºááŸá¯
á€áá»ááºážáááºááŸá¯ááŸá áºáá¯ááœáẠáá±á«ááºážáá±á¬ááºáá»ááŸá¯á¶ážááŒááºážá ááááºáááºáááºáž ááœá²ááŒá¬ážáááá·áºáááºá á¡áá¯ááºá¡á¬áž áááŒáá¯ááºáááºáááºáž áá¯ááºáá±á¬ááºáá«áá ááá¯ááá¯á·áá±á¬ á¡ááŸá¬ážá¡ááœááºážáá áºáᯠááŒá áºáá±á«áºáá«áá ááŸááºáááºážá¡á¬ážáá¯á¶ážááᯠáá¯á¶áá°áá»á¬ážááŒáá·áº ááŒá¯áá¯ááºáááºááá¯ááºáá«á áááºáá±á¬ááºáá¯á¶ážááŸá¯á¶ážááŸá¬áá² á¡ááá®áá±ážááŸááºážááá¯ááºááá¯ááºááŸáá·áº áá¯á¶áá°ááœá¬ážááŒááºážá áááá±á¬ááºááŸá¯á¡áá±á«áº áá°áááºáááºá áá±ážááœá²á·áá¯á¶áá°áá°ážááŒááºážááẠáá±á«ááºážáá±á¬ááºááœááºááŸááá±á¬ á¡áá»ááºá¡áááºááá¬áááẠ1 MB áááºáááºážáá«á áá¯á¶áá°áá¯á¶áá°ááᯠáá±á«ááºážáá±á¬ááºááŒá áºáá¬ááŒááºážá០áá¬ážáá®ážáááºááŒá áºááŒá®ážá ááá¯ááá¯áááºááŸá¬á áá°áá®áá±á¬áá¯ááºáá±á¬ááºááŸá¯á¡ááœááºáž ááŸááºáááºážá 1 MB á¡áá áá¯á¶ážááŸá¯á¶ážááœá¬ážááá¯ááºáááºá
áááºážááẠsynchronous mode ááœááºáááŒá áºáá«á áá±á«ááºážáá±á¬ááºááœáẠáá»ááºááœááºáá«áá áá¯á¶áá°áá»á¬ážá¡á¬ážáá¯á¶ážááᯠá¡ááºááááºáá¯ááºáááºááŒá áºáá±á¬ááŒá±á¬áá·áº áá±á«ááºážáá±á¬ááºá¡áá±á«áº á¡áááºááŒá¯áá¬ážáá±á¬ á á¬ááẠáá¯á¶áá°áá»á¬ážáá±á«áºááœáẠá¡áááºááŒá¯ááááºááŒá áºáá«áááºá áá«á áá®ááœááºááŸá¯áá«á
ááá¯ááºáá»á±á¬áá®ááœá±ááŸáááŸá¯ááŸáá·áº á áœááºážáá±á¬ááºáááºááŒá¬ážááœáẠá¡áá±ážá¡áá°áá¯ááºáá¬ááœáẠááŸááºážááŸááºážáááºážáááºáž á¡á¬ážáá¬áá»ááºááŸáááá·áº ááœá±áá±ážáá»á±ááá·áºá¡ááºááºáá áºáá¯ááœáẠáá»áááºááá¯ááºááá·áºá¡ááŒá¯á¡áá°ááẠá¡áááá¹áá¬ááºááŸáá á±áááºá ááá¯áá²á·ááá¯á·áá±á¬ á¡ááá®áá±ážááŸááºážáá áºáá¯á¡ááœáẠá¡áá±ážááŒá®ážáá¯á¶ážá¡áá¬ááŸá¬ ááŸááºáááºáá±á¬áá±áá¬ááŒá áºáááºá ááᯠáá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠáááºááá¯ááºááá»áŸ ááŒááºááŒááºáá¯á¶á·ááŒááºááŒááºážááŒáá·áº áá¯á¶ážá áœá²áá°áá¡á¬áá¯á¶á áá¯ááºááŸá¯ááᯠááááºážáá¬ážááẠá¡ááááá¬áááºááŒá áºáá±á¬ áá°ááŸá¯ááœááºáááºáá áºáá¯á¡ááŒá±á¬ááºáž á ááºážá á¬ážáá«á á€á¡ááŒá±á¡áá±ááœááºá network hops áááºážáá«ážááŒá®áž commits á¡ááœááºá á±á¬áá·áºááá¯ááºážááŸá¯áááºážáá±á¬á áœááºážáá±á¬ááºáááºááẠáŠážá á¬ážáá±ážááŒá áºáááºá ááá¯á·áá¬ááœááºá á áœááºážáá±á¬ááºáááºááŸáá·áº áá®ááœááºááŸá¯á¡ááŒá¬áž á¡áá±ážá¡áá°ááẠáááºá ááºážá á¬ážáááá·áºáá áºáá¯áááºážáá±á¬ á¡áá¬ááá¯ááºáá«á
á¡áá±ážá¡áá° 3- áá»ááºá á®ážááŸá¯áá»á¬áž
ááŸá¯á¶ážáááá·áºááŸá¯áá áºáá¯á¡ááœááºáž á¡á á¯á¡ááœá²á·áá áºáᯠáááºááá¯á·ááŒá¯áá°áááºááᯠáá¬ážáááºááẠá¡ááœááºá¡áá±ážááŒá®ážáá«áááºá áá¯á¶áá°áá áºáᯠááá¯á·ááá¯áẠáá áºáá¯áááºááá¯áá±á¬ áá¯á¶áá°áá»á¬áž áá¡á±á¬ááºááŒááºááá·áº á¡ááŒá±á¡áá±áá áºáá¯ááᯠáá¯á¶ážáááºááŒáá·áºáá«á áááááááºáá»á¬ážááᯠáááŒáá¯ááºáááºážáá¯ááºáá±á¬ááºáá±á¬á¡áá«á áá±á«ááºážáá±á¬ááºááẠáá»á±á¬ááºáá¯á¶ážáá±áá±á¬ áá¯á¶á á¶áá°áá»á¬ážááᯠáá á±á¬áá·áºááá¯ááºážáá² áááºáá¶ááŒá®áž áá±ážáá¬ážááŸá¯áá»á¬ážááᯠáááºáááºáá¯ááºáá±á¬ááºááœá¬ážáááºááŒá áºáááºá áá¯á¶áá°áá»á¬ážááẠá¡á á¯á¡áá±ážááá¯á· ááŒááºááœá¬ážáá±á¬á¡áá« áá±á«ááºážáá±á¬ááºááᯠáááºážáááºá áááºáá°áááºáá»áŸáá±á¬ áá°ážáá°ááŸá¯ááŒáá·áºá áá¯á¶áá°áá»á¬ážááẠáá¯á¶á·ááŒááºááŒááºážáááŸááá«áá áá±á«ááºážáá±á¬ááºááẠááœá±ážáá»ááºá áá¬áááŸááá±á¬á·áá² áá¯á¶áá°á¡á á¯ááá¯á· ááŒááºáááºáá±á¬ááºááŸáááŒá®áž áá±ážááŒá®ážáááºáá¶ááá¯ááºáááºá¡áá áááááááºá¡áááºááŒá¯áá»ááºááᯠáááºáááºá á±á¬áá·áºááá¯ááºážáá±áááºááŒá áºáááºá
á¡áá±á¬ááºážá¡áááºáá áºáá¯áá»áŸáẠáá»áááºáááºááŸá¯áá áºáá¯ááŸááá«ááá¬ážá
á¡ááá®áá±ážááŸááºážáá áºáá¯á á®ááá¯ááºážááẠááá¯ááºáá»á±á¬áá®ááœá±ááŸá¯ááŸáá·áº á áœááºážáá±á¬ááºáááºáá±á«ááºážá ááºááŸá¯ á¡áá»áá¯ážá¡á á¬ážááœá²ááŒá¬ážááẠááá¯á¡ááºáá«áááºá ááá¯ááºáá«áá áááºážááẠáá»áœááºá¯ááºááá¯á·á áá®ááºáá±ážáá»á±ááá·áºá¡ááºááºááŒá áºááŒá®ážá áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶ážááááááºáááºážááŒá áºááẠáá»áœááºá¯ááºááá¯á·á áááºáá°ážáááºáá¬ážááá·áº ááá¯á·ááá¯áẠáá»áœááºá¯ááºááá¯á·á áá±á«áºáááºáá¯áá®ážáá«áž áá°ááŸá¯ááœááºáááºá¡ááºááºááŒá áºáááºá á¡ááŒá¬ážááá á¹á áá»á¬ážááœááºá á¡áá»áá¯á·áá±á¬áá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááẠáá áºááŒáá¯ááºáááºážáá¯ááºáá±á¬ááºááááºááŒá áºááŒá®áž á¡áá»áá¯á·áá±á¬áá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááẠá¡áá»áááºááá¯ááºááŒá áºááá«áááºá áá»ááºááá¯á· áá±ážááá¯á·ááá·áº áááºáá±á·áá»áºááᯠáááááááºááŒá¯áááºá¡áá á áá áºá¡á¬áž á á±á¬áá·áºááá¯ááºážááẠáááá¯áá¬ážááá¯ááºáá±á¬áºáááºáž áá°áá®áá±á¬ á¡ááá®áá±ážááŸááºážáá áºáá¯ááœáẠááœá±áá±ážáá»á±ááŸá¯ááᯠáá¯ááºáá±á¬ááºáá«áá á á±á¬áá·áºááá¯ááºážááááºááŒá áºáá«áááºá
á€áá¯á¶ážááŒááºáá»ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠá¡ááá®áá±ážááŸááºážáá±á¬á·ááºáá²áá±ážáá¬ážáá°á ááŒá¯áá¯ááºáááºá áá»ááºážáááºááŸá¯áá áºáá¯á á®ááᯠáááºááá·áºá¡áá»áááºááœááºá¡áá¯á¶ážááŒá¯ááááºááŸáá·áºáááºáááºá ááŸááºáááºáá±á¬áá¯á¶ážááŒááºáá»ááºáá»á¬ážáá»ááŒááºážááẠááá·áºá¡á á¯á¡áá±ážáá²á០á¡áá±á¬ááºážáá¯á¶ážááá¯áááŸáááẠáá°áá®áá±ážáá«áááá·áºáááºá áá±á¬á·ááºáá²á¡ááºáá»ááºáá®áá¬ááẠáá»áááºáááºááŸá¯áá»á¬ážááŸáá·áº á¡áá±á¬ááºážá¡áááºáá»á¬ážá¡ááœáẠSQL á¡ááá·áºááœáẠáááºážááá¯á·ááŒá¬ážááœáẠááŒá±á¬ááºážááá¯ááºáááºááŸá¬ á¡áá±ážááŒá®ážáá«áááºá
áááºááœá±á·ááœáẠááááºážáá»á¯ááºáááº
áá°áááºážá¡á¬ážááŒáá·áº PostgreSQL ááẠáá®ááœááºááŸá¯ááᯠáá±ážáááºá áááºážááᯠáá¬áᬠááá·áºáááºáá»ááºááŒáá·áº ááááºážáá»á¯ááºáá¬ážáááºá synchronous_commit
. áá¯á¶ááŸááºá¡á¬ážááŒáá·áº áááºážááẠá¡áá±á¡áá¬ážááœáẠááŸááá±áááºá on
ááá¯á·áá±á¬áº áááºážááœáẠá¡ááŒá¬ážááœá±ážáá»ááºá
áᬠáá¯á¶ážáá»áá¯ážááŸááááºá local
, remote_write
ááá¯á·ááá¯áẠoff
.
parameter ááᯠsetting áá¯ááºáá²á·á¡áá« off
á
ááºááœááºážá
áá
áºááœááºááẠsynchronous commits á¡á¬ážáá¯á¶ážááᯠáááºááá·áºáá¬ážáááºá áá±ááá¹áá ááá·áºáááºáá»ááºáá»á¬ážááẠáá±ááá¹ááá
áá
áºá¡ááœáẠáá
áºááŒáá¯ááºáááºážáá¯ááºááᯠáááºááŸááºáá±ážáá±á¬áºáááºáž áá¯á¶áá°áá»á¬ážáᶠá
á¬áá±ážááŒááºážááᯠááŒáá¯ááºáá°áá¯ááºáá±á¬ááºáááºá Remote_write
áááºáá°áááºáá»áŸáá±ážáááº- áá¯á¶áá°áá»á¬ážáᶠá
á¬áá±ážááŒááºážááᯠáááŒáá¯ááºáááºážááŒá¯áá¯ááºáá±á¬áºáááºáž áá¯á¶á
á¶áá°ááẠá
á¬áá±ážááŒááºážááᯠáááºáá¶áá±á¬áºáááºáž áá
áºááºááœáẠááá±ážáá¬ážááá·áºá¡áá« ááŒááºáá±ážáááºá
áááá¯ááºáá±á¬ááœá±ážáá»ááºá
áá¬á¡ááœá¬á¡áá±ážááᯠááá·áºááœááºážá
ááºážá
á¬ážááŒááºážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠá¡áá°á¡áá»áá·áºáá
áºáá¯ááᯠááœá±ážáá»ááºááŒá®áž áááºážááᯠááŸááºáá¬ážáá¬ážáá«á on
- áááºážááá¯á·ááẠsynchronous á¡áá¶ááœááºážááŸá¯áá»á¬ážááŒá
áºáááºá áá»áœááºá¯ááºááá¯á·ááœá±ážáá»ááºáá«áááºá local
ááœááºáááºáá±á«áºááœáẠáá»áááºááá¯ááºááŒááºážá¡ááœáẠáááááááºáá»á¬ážááŒá
áºááŒá®ážá ááŒááºááœááºážááŸááœááºááœá¬áá»áááºááœáẠáá
áºááŒáá¯ááºáááºážáá¯ááºáá±á¬ááºáááºá
á¡áᯠáá®áá¬ááᯠáááºááá¯áááºááŸááºáááá²ááá¯áᬠáááá±á¬ááºááŒá±á¬ááŒááẠá áá«áá±ááá·áº áá«ááá¯á· set up áá¯ááºááááºááá¯áᬠááœá±ážááŒáá·áºááá¯ááºáá«á synchronous_commit
в local
áá¬áá¬á¡ááœááºá ááá·áºáááºáá±á¬ááºááᯠááŒá±á¬ááºážááá¯á· ááŒá
áºááá¯ááºáá¬ážááá¯á· ááœá±ážáá²á·áááºá synchronous_commit
áá»á¶áááºážáááºážáá²á· áá«áᬠááŒá
áºááá¯ááºáá¯á¶áá¬ááá áá«ááá¯áá¯ááºááá¯á· áááºážáááºážááŸá
áºáá¯áá±á¬áẠááŸááá«áá±ážáááºá áááá¡áá»ááºááŸá¬ ááá·áºáá»áááºáááºááŸá¯á session ááᯠá¡á±á¬ááºáá«á¡ááá¯ááºáž áááºááŸááºáááºááŒá
áºáááºá
SET SESSION synchronous_commit TO ON;
// Your writes go here
áááºááŸááºá¡ááœááºážááŸá áá±á¬ááºáááºááœá²áá±ážáá¬ážááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááẠáá»áááºáááºáá¬ážáá±á¬áááá¯ááºážááá·áºáᶠááááºáá±á¬ááºážáá
áºáá¯áááŒááºáá® áá¯á¶á
á¶áá°áá»á¬ážáᶠá
á¬áá±ážááŒááºážááᯠá¡ááá¡ááŸááºááŒá¯áá«áááºá ááá¯ááºáá»áŸáẠsetting ááá¯ááŒá±á¬ááºážáá«á synchronous_commit
ááááºá á¡ááá¯ááºážááᯠáá»ááºáá¬ážááá¯ááºáá«áááºá SESSION
áááºážááẠdefault value ááœááºááŸááá±áá±á¬ááŒá±á¬áá·áº command ááœááºááŒá
áºáááºá
ááœá±áá±ážááœá±áá°áá
áºáá¯áááºážá¡ááœáẠsynchronous áá°ážáá°ááŒááºážááᯠáá±áá»á¬á
á±áááºá¡ááœáẠáá¯ááááááºážáááºážááẠáá±á¬ááºážááœááºáá«áááºá NoSQL áá»áá¯ážááẠáá±áá¬áá±á·á
áºáá»á¬ážá
áœá¬ááœáẠá¡áá±á¬ááºážá¡áááºááá¯ááºáᬠá¡áá°á¡ááááŸááá±á¬áºáááºáž PostgreSQL ááœáẠáá¯ááºáá±á¬ááºáááºá á€ááá
á¹á
ááœáẠáááºááẠááœá±áá±ážááœá±áá°áá
áºáᯠá
áááºááŒá®ážáá±á¬áẠáááºááŸááºáá«á synchronous_commit
в on
ááœá±áá±ážááœá±áá°á¡ááœáẠentry ááá¯ááá¯ááºáá±á¬ááºáá®á COMMIT
áááºááá·áº parameter value ááá¯áááᯠá¡áá¯á¶ážááŒá¯á á¡áá±á¬ááºážá¡áááºááŒá¯áá¯ááºáá«áááºá synchronous_commit
ááá¯á¡áá»áááºá áááºááŸááºáá¬ážáá±á¬áºáááºážá áá±ážáá¬ážáááºáá»á¬ážááẠááœá²ááœá²áá±ááŒááºážáááŸáááŒá±á¬ááºáž á¡ááŒá¬áž developer áá»á¬ážáá¬ážáááºááŒá±á¬ááºážáá±áá»á¬á
á±ááẠvariable ááᯠááŸá±á·ááá¯á·áááºááŸááºááŒááºážááẠá¡áá±á¬ááºážáá¯á¶ážááŒá
áºáááºá
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='*'
parameter ááá¯áááºááŸááºááŒááºážááŒáá·áº synchronous_commit
á¡áááá¹áá«ááºááá¯á· local
áá»áœááºá¯ááºááá¯á·ááẠáá±ááá¹áááá
áºááºáá»á¬ážááᯠáá
áºááŒáá¯ááºáááºáááºáž áááºáááºáááºááŸááá±ááá·áº á
áá
áºáá
áºáá¯ááᯠáááºáá®ážáá±ážáááºá ááá¯á·áá±á¬áº ááœááºáááºáá¯á¶áá° áááááááºáá»á¬ážááẠáá¯á¶áá±á¡á¬ážááŒáá·áº ááœá²ááœá²áá±áá«áááºá áá¯ááºáá«áááºá ááá¯ááºáá«áá á¡áááºááœááºááŒáá¬ážááá·áºá¡ááá¯ááºáž á€áááááááºáá»á¬ážááᯠáááºáá°ááŒá¯ááẠáá¯á¶ážááŒááºáá«áááºá
ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá±á¬ááºááᯠááá¯ááºááŒá®ááá¯áááº
áá±á¬ááºáááºá áá¬ážá¡áááºážáááº...
ááœááºáá²á·áá±á¬ áá
áºáááºáá PostgreSQL ááᯠáá±á¬ááºážá
áœá¬ áá»áááºááŸáááẠáááŒá
áºááá¯ááºááŒá±á¬ááºáž áá»áœááºá¯ááºááŒá±á¬áá²á·áá°ážáááºá ááá¯á¡áá»áááºááœáẠCompose platform á¡ááœá²á·á០á¡ááœá²á·ááẠKurt á ááá¯ááá¯á·áá±á¬ á¡ááœáá·áºá¡áá±ážáá
áºáᯠááŸááá±ááŒá®áᯠá¡ááá¯ááºá¡áᬠááá¯áá²á·áááºá áá°ááẠáá»áœááºá¯ááºáááá·áºááœááºááŸá¯ááᯠááŒáááºáááºá
á±ááŒá®áž PostgreSQL á
á¬ááœááºá
á¬áááºážááœáẠááœá±á·ááŸááá²á·áááºá
á€áááºáááºááᯠá¡áá»áááºáááœá±áž ááŒá±á¬ááºážáá²ááá¯ááºáááºá ááœá±áá±ážááœá±áá° áá
áºáá¯áá¯á¡ááœáẠá¡ááŒá¯á¡áá°ááᯠáááááááºááŒá¯ááá·áºá¡áá»áááºááœáẠáááºáá±á¬ááºááŸá¯ááŸáááá·áº áááºáááºááŒáá·áº áá¯á¶ážááŒááºáááºá ááá¯á·ááŒá±á¬áá·áºá á¡áá»áá¯á·áá±á¬ ááœá±áá±ážááœá±áá°áá»á¬ážá¡ááœáẠááŒá
áºááá¯ááºááŒá®áž á¡ááŒá¬ážá¡áá¬áá»á¬ážá¡ááœááºáááºáž áááŒáá¯ááºáááºážáá¯ááºáá±á¬ááºááẠááŒá
áºááá¯ááºááŒá®áž á¡áá¯á¶ážáááºáá«áááºá á¥ááᬠááá±á¬ááºááᯠá¡áááºážáá¯ááºááá¯ááºážáá¬á multistatement
áá«áá¬áá®áá¬á áá°áááºážáááºááá¯ážááẠááá·áºáá»ááºáááºááŒá
áºáá±á¬á¡áá«ááœáẠá¡ááŒáá¯ááºá¡ááá¯áẠáááááŒá¯á
á±ááẠááœá±áá±ážááœá±áá°ááᯠáááºááŸááºáá«á SET LOCAL synchronous_commit TO OFF
á¡áá±á¬ááºážá¡áááºáá
áºáá¯ááœááºá
á€ááœá²á·á ááºážáá¯á¶ááá¯ááºááá¯á· á€áá±ážáááºáá±á¬ááœááºážáá¶ááŒááºáááºááŸá¯ááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶ážá áœá²áá°áá»á¬ážá¡á¬áž áááºážááá¯á·á ááá¯ááºáá»á±á¬áá®ááœá±ááŸá¯ááŸáá·áº á áœááºážáá±á¬ááºáááºá¡áá±á«áº ááááºážáá»á¯ááºááŸá¯áá±ážáá²á·áááºá
source: www.habr.com