á¡á¬ážáá¯á¶ážáááºá¹ááá¬áá«á Vladislav Rodin á áááºááœááºáá±áá«áááºá áááºááŸáááœáẠáá»áœááºá¯ááºááẠOTUS ááœáẠSoftware Architecture ááŸáá·áº High-Stress Software Architecture ááá¯ááºáᬠáááºáááºážáá»á¬ážááᯠáááºááŒá¬ážáá±ážáá«áááºá áááºáááºážá¡áá
áºáá
áºáá¯á
áááºáááºáá»áŸá±á¬áºááá·áºáá»ááº
áááá«ááºáž
HDD ááẠáá áºá áá¹ááá·áºáá»áŸáẠáá¯ááºáá±á¬ááºáá»áẠ400-700 ááá·áºáᬠáá¯ááºáá±á¬ááºááá¯ááºáá±á¬ááŒá±á¬áá·áº (ááŒáá·áºáá¬ážáá±á¬ load á áá áºááœáẠáá¯á¶ááŸáẠrps ááŸáá·áº áááŸáá¯ááºážááŸááºááá¯ááºáá±á¬) ááá¹áááẠdisk áá±áá¬áá±á·á áºááẠáááá¯áá¬áááºáá¬á á¡ááááºá¡áááºááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áº á€ááá¯ááŸá±á¬ááºááŸá¯á á¡ááá¯ááºážá¡áá¬áá¯á¶á á¶áá»á¬ážááᯠá¡áá°ážááá¯ááŒá¯ááẠááá¯á¡ááºáá«áááºá
áá±á¬áá±á¬áááºááœááºá áá±áá¬áá±á·á
áºá
áá±ážáá»á²á·ááŒááºážáá¯á¶á
ᶠá áá¯ááŸááááº- áá¯á¶áá°áá°ážááŒááºážááŸáá·áº ááœá²ááŒááºážá
áááºááŒá¬ááŒááºážá Sharding ááẠááá·áºá¡á¬áž á
á¬áá±ážááŒááºážáá¯ááºáááºážááᯠá
áá±ážáá»ááá¯ááºá
á±ááŒá®áž ááááºá¡áá±ááŒáá·áº ááá·áºá¡á
á¯á¡áá±ážááŸá áá¬áá¬áá
áºáá¯á
á®á¡ááœáẠrps ááŸá¯ááºážááᯠáá»áŸá±á¬á·áá»áá«á áá¯á¶áá°áá°ážááŒááºáž ááẠááá·áºá¡á¬áž áá°áá®áá±á¬á¡áá¬ááᯠáá¯ááºáá±á¬ááºááá¯ááºáá±á¬áºáááºáž áááºááŸá¯ááŒááºáž áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááŒáá·áº áá¯ááºáá±á¬ááºááá¯ááºáááºá á€áá±á¬ááºážáá«ážááẠá€áá¯á¶á
á¶á¡ááá¯ááºážááŒá
áºáááºá
áá¯á¶áá°áá°ážááŒááºážá
áááºááẠá¡ááœááºááŒáá·áºáá¬ážáá±á¬á¡ááá·áºááᯠáá°ážáá°ááŒáá·áºááŸá¯áá«áá áááºážááŸá¬ ááá¯ážááŸááºážáá±á¬á¡áá¬ááŒá áºáááº- ááá·áºááœáẠáá¬áá¬áá áºáá¯ááŸáááŒá®ážá áááºážááœáẠáá±áá¬ááŸááááºá ááá¯á·áá±á¬áẠá€áá¬áá¬ááẠá€áá±áá¬ááá¯áááºááŸá¯ááŒááºážá¡á¬áž ááá¯ááºááœááºááŒá±ááŸááºážááá¯ááºá áœááºážáááŸááá±á¬á·áá«á áááºááẠáá±á¬ááºáááºáá¬áá¬ááŸá áºáá¯ááᯠáá±á«ááºážááá·áºáᬠáá¬áá¬á¡á¬ážáá¯á¶ážááœáẠáá±áá¬ááᯠáá áºááŒáá¯ááºáááºážáá¯ááºáá±á¬ááºááŒá®áž á¡áá¯á¶ážááŒá¯áá°ááẠááá·áºá¡á á¯á¡áá±ážááŸá áááºááá·áºáá¬áá¬á០áááºááá¯ááºáááºá
áááºážááááºááŸá¬ážáá±á¬ááá¯ážááŸááºážáá±á¬áºáááºážá á€á¡á á®á¡á á¥áºáá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯á¡áá»áá¯ážáá»áá¯ážááᯠá¡áá»áá¯ážá¡á á¬ážááœá²ááŒá¬ážááẠááœá±ážáá»ááºá áá¬áá»á¬ážá áœá¬ááŸááá«áááºá
- á¡á á¯á¡áá±ážááœáẠá¡áááºážááá¹ááá»á¬ážááŒáá·áº (ááááº-áááẠááá¯á·ááá¯áẠááááº-áá»áœááº)á
- áá±ážááá¯á·ááá·áºá¡áá¬áá»á¬ážá¡á¬ážááŒáá·áº (á¡áááºážá¡ááŒá±áá¶á áá¯ááºááŒááºáá»ááºá¡ááŒá±áᶠááá¯á·ááá¯áẠáá±á¬ááŸá±á¬)
- node synchronization ááá¹ááá¬ážá¡á
áá®áá±á·áá±á¬á· á¡áá»áẠ(á) áá»ááºááᯠááŒá±á¬ááŒáá«áááºá
ááœá±áá±ážááœá±áá° áááááááºá áááºááá¯ááŒá áºáá¬áá²á
á€á¡ááŒá±á¬ááºážá¡áá¬ááẠáá¯á¶áá°ááœá¬ážááŒááºážááŸáá·áº ááá¯ááºááá¯ááºáááºááá¯ááºáááºááá¯ááºáá«á áá®ážááŒá¬ážáá±á¬ááºážáá«ážááᯠáááºážááœááºáá±ážáá¬ážááá¯ááºáá±á¬áºáááºáž áá±á¬ááºáááºáááºááŸá¯ááŒááºážááẠááœá±áá±ážááœá±áá°áá¯ááºáá±á¬ááºááŸá¯ááá¹ááá¬ážááá¯áá¬ážááááºáá² á¡áá¯á¶ážááááºáá±á¬ááŒá±á¬áá·áºá á¡ááŒá±áá¶á¡áá»áá¯á¶ážá¡áá¬áá»á¬ážááᯠáá»áœááºá¯ááºááááá±ážáá«áá á±á ááœá±áá±ážááœá±áá° áááááááºáá áºáá¯ááẠá¡ááá·áº áááá·áºááŒáá·áº ááŒá áºáá±á«áºáááº-
- áá±áá¬áá±á·á áºááŸááºáááºážááœáẠááœá±áá±ážááœá±áá°áá áºáá¯ááᯠááŸááºáááºážáááºááŒááºážá
- áá±áá¬áá±á·á áºá¡ááºáá»ááºááœáẠááœá±áá±ážááœá±áá°ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá
- ááœá±áá±ážááœá±áá°ááᯠá¡á±á¬ááºááŒááºá áœá¬ á¡áá¯á¶ážááŒá¯áá¬ážááŒá±á¬ááºáž áááá¯ááºážááá·áºáᶠá¡áááºááŒá¯áá»áẠááŒááºáá±ážáááºá
ááá°áá®áá±á¬áá±áá¬áá±á·á áºáá»á¬ážááœááºá á€á¡ááºáááá¯áá®áááºááœáẠááœá²ááœá²ááŸá¯áá»á¬ážááŸáááá¯ááºáááº- á¥ááá¬á MySQL áá±áá¬áá±á·á áºá InnoDB á¡ááºáá»ááºááœáẠááŸááºáááºáž á áá¯ááŸááááº- áá áºáá¯ááẠáá¯á¶áá°ááœá¬ážááŒááºáž (binary log) ááŸáá·áº áá±á¬ááºáá áºáá¯ááẠPostgreSQL ááœááºááŸááá±á áẠACID (áá±á¬ááºááŒááº/ááŒááºáá¯ááºááá·áºááŸááºáááºáž)á áá¯ááºáá±á¬ááºáá»ááºááŸá áºáá¯áá¯á¶ážááᯠáá¯ááºáá±á¬ááºááá¯ááºáá±á¬ ááŸááºáááºážáá áºáᯠááŸáááẠ(ááŸá±á·ááŸááºááá¯ááºááᯠáá±ážáá« = WAL)á ááá¯á·áá±á¬áº á¡áááºááœááºáááºááŒáá²á·ááá·áºá¡áá¬ááẠáá±áá¯áá»ááá±á¬ááá¬ážááŒá áºááŒá®ážá ááá¯áá²á·ááá¯á·áá±á¬ ááœá²ááŒá¬ážááŸá¯áá»á¬ážááᯠááá·áºááœááºážá ááºážá á¬ážááŒááºážáááŒá¯ááá¯ááºáá±á
áááºáá°ááŒá¯ááŒááºáž (áááºáá°ááŒá¯ááŒááºáž)
ááœá±áá±ážááœá±áá° commit algorithm ááá¯á· áááºáá¶áááŸááá¬ážáá±á¬ ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠáááºáá°ááœá¬ážááẠáá¯áá¹áááá±áááᯠááá·áºááŒáá«á áá¯á·á
- áá±áá¬áá±á·á áºááŸááºáááºážááœáẠááœá±áá±ážááœá±áá°áá áºáá¯ááᯠááŸááºáááºážáááºááŒááºážá
- áá±áá¬áá±á·á áºá¡ááºáá»ááºááœáẠááœá±áá±ážááœá±áá°ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá
- áá¯á¶áá°áá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá±áá¬áá±ážááá¯á·ááŒááºážá
- áááºážááá¯á·ááœáẠááœá±áá±ážááœá±áá° ááŒá®ážááŒá±á¬ááºááŒá±á¬ááºáž áá¯á¶áá°á¡á¬ážáá¯á¶ážáá¶á០á¡áááºááŒá¯áá»ááºááᯠáááºáá¶áááŸáááŒááºážá
- ááœá±áá±ážááœá±áá°ááᯠá¡á±á¬ááºááŒááºá áœá¬ á¡áá¯á¶ážááŒá¯áá¬ážááŒá±á¬ááºáž áááá¯ááºážááá·áºáᶠá¡áááºááŒá¯áá»áẠááŒááºáá±ážáááºá
á€áááºážáááºážááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠá¡á¬ážáááºážáá»ááºáá»á¬ážá áœá¬ááᯠáááŸááá«áááºá
- áááá¯ááºážááá·áºááẠáá¯á¶á á¶áá°á¡á¬ážáá¯á¶ážááœáẠááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážáá»ááẠá á±á¬áá·áºááá¯ááºážáá±áá«áááºá
- á¡á á¯á¡áá±ážááŸá áá¶áá«ááºáá»á¬áž ááá¯ážáá¬áááºááŸáá·áºá¡áá»áŸ áá»áœááºá¯ááºááá¯á·ááẠáá±ážáá¬ážááŸá¯áá¯ááºáá±á¬ááºááŸá¯ á¡á±á¬ááºááŒááºááá¯ááºááŒá±ááᯠáá»áŸá±á¬á·áá»áá±ážáááºá
áááá¡áá»ááºááŸáá·áº á¡áááºážááŸáá·áºá¡áá»á¬áž ááŸááºážáá±áá«áá áá¯áááá¡áá»ááºá¡ááœáẠá¡ááŒá±á¬ááºážáááºážáá»á¬ážááᯠááŸááºážááŒááá·áºáá«áááºá áá áºááŒáá¯ááºáááºáááºáž áá°ážáá°ááŒááºážááœáẠá¡áááºážáá¯á¶áž node áá áºáá¯á០áá¯á¶á·ááŒááºááŸá¯ ááááŸááá²á·áá«áá ááœá±áá±ážááœá±áá°ááᯠááŒááºááŸáá·áºáá«áááºá ááá¯á·ááŒá±á¬áá·áºá á¡á á¯á¡áá±ážááŸá node á¡áá±á¡ááœááºááᯠááá¯ážááŒáŸáá·áºááŒááºážááŒáá·áºá áááºááẠá á¬áá±ážááŒááºážáá¯ááºáá±á¬ááºááŸá¯ áá»ááŸá¯á¶ážááá¯ááºááŒá±ááᯠááá¯ážááŒáá·áºá á±áááºá
á¥ááá¬á¡á¬ážááŒáá·áº 51% (á¡ááœááºá¡ááááº) á០á¡áááºááŒá¯áá»ááºááᯠá á±á¬áá·áºááá¯ááºážááá¯ááºáá«ááá¬ážá áá¯ááºáá²á·á áá»áœááºá¯ááºááá¯á·áá¯ááºááá¯ááºáá±á¬áºáááºážá ááá¹ááááºáá¬ážááŸááºážááœááºá á€áá¯á¶áá°ááœá¬ážááŒááºážá¡áá»áá¯ážá¡á á¬ážá áá¶ááááŒá áºááœááºá¡á¬ážáá¬áá»ááºáá áºáá¯ááŒá áºááá·áº á¡á á¯á¡áá±ážá¡ááœááºáž áá±áá¬áá»á¬áž ááŒáá·áºá á¯á¶áá®ááœááºááŸá¯ááᯠáá±áá»á¬á á±ááá¯ááºáá±á¬ááŒá±á¬áá·áº áá¯á¶ááŸááºá¡á¬ážáá¯á¶ážá០á¡áááºááŒá¯áá»áẠááá¯á¡ááºáá«áááºá
Asynchronous (async) áá°ážáá°ááŸá¯
áááẠalgorithm ááᯠááœááºážáá¶ááŒáá«á áá¯á·á áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶áá°áá»á¬ážááᯠâáá áºáá»áááºááá¯ááºáá áºáá»áááºááœááºâ áá¶ááá¯á· áá±áá¬áá±ážááá¯á·áááºááŒá áºááŒá®ážá âáá áºáá»áááºáá»áááºááœáẠáá±á¬ááºááá¯ááºážááœááºâ áá¯á¶á á¶áá°áá»á¬ážááẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáááºáá±á¬ááºáááá·áºáááº-
- áá±áá¬áá±á·á áºááŸááºáááºážááœáẠááœá±áá±ážááœá±áá°áá áºáá¯ááᯠááŸááºáááºážáááºááŒááºážá
- áá±áá¬áá±á·á áºá¡ááºáá»ááºááœáẠááœá±áá±ážááœá±áá°ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá
- ááœá±áá±ážááœá±áá°ááᯠá¡á±á¬ááºááŒááºá áœá¬ á¡áá¯á¶ážááŒá¯áá¬ážááŒá±á¬ááºáž áááá¯ááºážááá·áºáᶠá¡áááºááŒá¯áá»áẠááŒááºáá±ážáááºá
- áá¯á¶áá°áá»á¬ážáᶠáá±áá¬áá±ážááá¯á·ááŒááºážááŸáá·áº áááºážááá¯á·áᶠááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá
á€áá»ááºážáááºááŸá¯ááẠá¡á á¯á¡áá±ážá០áá»ááºááŒááºá áœá¬ á¡áá¯ááºáá¯ááºááá¯ááºá á±áááºá á¡ááŒá±á¬ááºážááŸá¬ áá»áœááºá¯ááºááá¯á·ááẠáááá¯ááºážááá·áºááẠáá¯á¶áá°áá»á¬ážáá±á¬ááºááŸáááẠáá±áá¬ááᯠá á±á¬áá·áºááá¯ááºážáá±ááŒá®áž áááááááºáááºáááŒá¯áá±á¬ááŒá±á¬áá·áºááŒá áºáááºá
ááá¯á·áá±á¬áº "áá áºáá»áááºáá»áááºááŸá¬" áá¯á¶áá°áá»á¬ážáá±á«áºááá¯á· áá±áá¬ááᯠá áœáá·áºáá áºááŒááºážá á¡ááŒá±á¡áá±ááẠááœá±áá±ážááœá±áá° áá¯á¶ážááŸá¯á¶ážááŸá¯ááᯠááŒá áºáá±á«áºá á±ááá¯ááºááŒá®ážá áá±áá¬ááᯠáá¯á¶áá°áá°ážááẠá¡áá»áááºáááŸááá«á áá¯á¶ážá áœá²áá°áᶠá¡áááºááŒá¯áá»ááºááŒáá·áº ááœáŸá²ááŒá±á¬ááºážááŸá¯ áá¯á¶ážááŸá¯á¶ážááœá¬ážááá¯ááºáááºá áááºáááºááŸá¯áá¡á±á¬ááºááŒááºááŸá¯ááŸáá·áºáááºáááºááŒá®áž á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážáá±á¬ááºááŸááá¬ááá·áº node ááẠHDD áá»ááºááœá¬ážáááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠááœá±áá±ážááœá±áá°ááᯠáá¯á¶ážááŸá¯á¶ážááœá¬ážáᬠá¡ááœááºáááŸá áºááŒáá¯á·ááœááºá¡áá»áá¯ážáááºáá»á¬ážááᯠááŒá áºáá±á«áºá á±ááá¯ááºáááºá
Semisync áá°ážáá°ááŸá¯
áá±á¬ááºáá¯á¶ážááœáẠsemi-synchronous replication ááá¯á· áá±á¬ááºáá«áááºá á€áá¯á¶áá°áá°ážááŒááºážá¡áá»áá¯ážá¡á á¬ážááẠáá°áááááºážááẠááá¯á·ááá¯áẠá¡ááœááºá¡áá¯á¶ážáá»á¬ážááŒááºážáááŸááá±á¬áºáááºážá áááºážááẠsynchronous ááŸáá·áº asynchronous replication ááŸá áºáá¯áá¯á¶ážááᯠáá±á«ááºážá ááºááá¯ááºáá±á¬ááŒá±á¬áá·áº áááºážááẠá áááºáááºá á¬ážááœááºáá±á¬ááºážáááºá
ááááºáááºážáááºáž á áá¯ááᯠáá±á«ááºážá ááºááẠááŒáá¯ážá á¬ážááŒáá«á áá¯á·á áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶ážá áœá²áá°á¡á¬áž ááŒá¬ááŸááºá áœá¬ ááááºážáááºážáá¬ážáááºááá¯ááºáá±á¬áºáááºáž áá±áá¬ááᯠáááºáá°ááŒá¯ááẠááá¯á¡ááºáááº-
- áá±áá¬áá±á·á áºááŸááºáááºážááœáẠááœá±áá±ážááœá±áá°áá áºáá¯ááᯠááŸááºáááºážáááºááŒááºážá
- áá±áá¬áá±á·á áºá¡ááºáá»ááºááœáẠááœá±áá±ážááœá±áá°ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá
- áá¯á¶áá°áá»á¬ážáᶠáá±áá¬áá±ážááá¯á·ááŒááºážá
- á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáááºáá¶áááŸáááŒá±á¬ááºáž áá¯á¶á á¶áá°áá¶á០á¡áááºááŒá¯áá»ááºááá°ááŒááºáž (áááºážááá¯á·ááᯠ"áá áºáá»áááºáá»áááºááœááº" á¡áá¯á¶ážáá»áá«áááº)á
- ááœá±áá±ážááœá±áá°ááᯠá¡á±á¬ááºááŒááºá áœá¬ á¡áá¯á¶ážááŒá¯áá¬ážááŒá±á¬ááºáž áááá¯ááºážááá·áºáᶠá¡áááºááŒá¯áá»áẠááŒááºáá±ážáááºá
ဠá¡ááºáááá¯áá®áááºááŒáá·áº á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáááºáá¶áááŸáááá·áº áá¯ááºááŸá áºáá¯áá¯á¶ážááŸáá·áº áá¯á¶á á¶áá° node áá»ááºááœá¬ážááŸáᬠááœá±áá±ážááœá±áá° áá¯á¶ážááŸá¯á¶ážááŸá¯ ááŒá áºáá±á«áºááŒá±á¬ááºáž áá»á±ážáá°ážááŒá¯á áááááŒá¯áá«á ááá¯ááá¯á·áá±á¬ áá»ááºááœááºááŸá¯ ááŒá áºááá¯ááºááŒá± áááºážáá«ážáááºáᯠáá°áááŒááŒá®áž á€á¡áá¹ááá¬ááºáá»á¬ážááᯠáááºáá¶áá«áááºá
ááá¯á·áá±á¬áº á€áá»ááºážáááºááŸá¯ááŒáá·áº phantom áááºááŸá¯ááá¯ááºááá·áº á¡áá¹ááá¬ááºááŸááááºá á¡á±á¬ááºáá«á¡ááŒá áºá¡áá»ááºááᯠá áááºáá°ážááŒáá·áºááŒáá«á áá¯á·- á¡ááá·áº 4 ááœáẠáááºááá·áºáá¯á¶á á¶áá°á០á¡áááºááŒá¯áá»ááºááááŸááá²á·áá«á áá»áœááºá¯ááºááá¯á·ááẠá€ááœá±áá±ážááœá±áá°ááᯠááŒááºááŸáá·áºááááºááŒá áºááŒá®áž áá±á¬ááºáááºáᶠá¡áááºááŒá¯áá»ááºááᯠááŒááºááá±ážáá«á áá±áá¬ááᯠá¡ááá·áº 2 ááœáẠá¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ááŒá±á¬áá·áºá á¡ááá·áº 2 áá¡áá¯á¶ážááŸáá·áº ááœá±áá±ážááœá±áá°á áá±á¬ááºááŒááºááœá²ááŒááºážááŒá¬ážááœáẠá¡áá»áááºááœá¬ááá»áẠááŸáááŒá®áž á¡ááŒáá¯ááºááœá±áá±ážááœá±áá°áá»á¬ážááẠáá±áá¬áá±á·á áºááœáẠáááŒá áºááá·áºáá±á¬ á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááŒááºááœá±á·ááá¯ááºáááºááŒá áºáááºá
á¡ááŸá¯á¶ážáááºážáá±á¬ semisync áá°ážáá°ááŸá¯
áááºážáááºážááœá±ážáááºá algorithm áá²á· á¡ááá·áºááœá±ááᯠááŒá±á¬ááºážááŒááºááŸááºááŒá®áž áá®á¡ááŒá±á¡áá±ááŸá¬ phantom reads ááŒá¿áá¬ááᯠááŒá±ááŸááºážááá¯ááºáá«áááºá
- áá±áá¬áá±á·á áºááŸááºáááºážááœáẠááœá±áá±ážááœá±áá°áá áºáá¯ááᯠááŸááºáááºážáááºááŒááºážá
- áá¯á¶áá°áá±áá¬áá±ážááá¯á·ááŒááºážá
- á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáááºáá¶áááŸáááŒá±á¬ááºáž áá¯á¶á á¶áá°áá¶á០á¡áááºááŒá¯áá»ááºááá°ááŒááºáž (áááºážááá¯á·ááᯠ"áá áºáá»áááºáá»áááºááœááº" á¡áá¯á¶ážáá»áá«áááº)á
- áá±áá¬áá±á·á áºá¡ááºáá»ááºááœáẠááœá±áá±ážááœá±áá°ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá
- ááœá±áá±ážááœá±áá°ááᯠá¡á±á¬ááºááŒááºá áœá¬ á¡áá¯á¶ážááŒá¯áá¬ážááŒá±á¬ááºáž áááá¯ááºážááá·áºáᶠá¡áááºááŒá¯áá»áẠááŒááºáá±ážáááºá
áá¯á¶áá°áá°ážáá¬ážááŸáá¬áá»áŸáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááá¯áá»áœááºá¯ááºááá¯á· áááááŒá¯áá«áááºá
áá±á¬ááºáá»ááº
á¡ááŒá²ááá¯ááá¯á á á¶ááŒááŒá±ááŸááºážáááºážáá»á¬ážáááŸááá« á áá áºáá¯á á®ááá¯ááºážááœáẠá¡á¬ážáá¬áá»ááºáá»á¬ážááŸáá·áº á¡á¬ážáááºážáá»ááºáá»á¬ážááŸáááŒá®áž ááá°áá®áá±á¬ á¡áááºážá¡á á¬ážáá»á¬ážááᯠááŒá±ááŸááºážáááºá¡ááœáẠááá·áºáá»á±á¬áºáá±á¬ ááŒá±ááŸááºážáááºážáá»á¬ážááŸááá«áááºá áááºáá°ááŒá¯áá¬ážáá±á¬áá±áá¬áá±á·á áºáá áºáá¯ááœááºáá±áá¬áá áºááŒáá¯ááºáááºážáá»áááºááá¯ááºááŒááºážá¡ááœááºááá¹ááá¬ážááá¯ááœá±ážáá»ááºááŒááºážá¡ááœááºáááºážáááºáá¯á¶ážáááŸááºáááºáááºá Semi-Synchronous áá°ážáá°ááŒááºážá á¡á¬ážáá¬áá»ááºá¡á á¯á¶ááẠáá»á¶á·ááŸá¶á·ááŸá¯áááºážáá±á¬áºáááºáž áááºážááᯠá¡á¬áá¯á¶á áá¯ááºááá¯ááºáááºáᯠáá°áááá¯ááºáá±á¬ááºá¡á±á¬áẠááá¯ááºáá¬ááŒá®áž á áááºáááºá á¬ážá áá¬áá±á¬ááºážáááºá
áá«áá«áá²á ááŸá¬ááœá±á·áááºá
source: www.habr.com