áááŒá¬áá±ážáá®á¡ááá Odnoklassniki ááẠSQL Server ááœáẠá¡áá»áááºááŸáá·áºáááŒá±ážáá® áá¯ááºáá±á¬ááºááŒá®áž áá±áᬠ50 TB ááá·áºááᯠááááºážáááºážáá¬ážáááºá ááá¯ááá¯á·áá±á¬ááá¬áá¡ááœááºá SQL DBMS ááá¯á¡áá¯á¶ážááŒá¯á áá±áá¬á
ááºáá¬áá»ááºááœááºááŸá¯áááºáá¶ááá¯ááºáá±á¬áááºáá±á¬ááºááœáá·áºááá¯áááºáá»áŸááºááŒááºááŒá®ážáá¯á¶ááŒááºá
áááºáá»ááá±á¬á¡áá¯á¶ážááŒá¯ááœáá·áºááá¯áá±ážá
áœááºážáááºááŸá¬áááŒá
áºááá¯ááºáá±á áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá ááá¯ááá¯á·áá±á¬á¡ááŒá±á¡áá±áá»áá¯ážááœááºá NoSQL ááá¯ááŸá±á¬ááºááŸá¯áá²á០áá
áºáá¯ááᯠá¡áá¯á¶ážááŒá¯áá±á¬áºáááºáž á¡áá¬á¡á¬ážáá¯á¶ážááᯠNoSQL ááá¯á· ááœáŸá²ááŒá±á¬ááºážááááá¯ááºáá«- á¡áá»áá¯á·áá±á¬ á¡áá¬áá»á¬ážááẠACID á¡áá±á¬ááºážá¡áááºá¡á¬ááá¶áá»áẠááá¯á¡ááºáá«áááºá
áááºážááẠáá»áœááºá¯ááºááá¯á·á¡á¬áž NoSQL á áá áºáá»á¬ážá á¡ááŸá¬ážá¡ááœááºážáá¶ááá¯ááºáááºááŸáááŸá¯á á¡ááá¯ááºážá¡áá¬ááŸáá·áº á áœááºážáá±á¬ááºáááºááᯠáá¶á·ááá¯ážáá±ážááá·áº DBMS ááŒá áºááá·áº NewSQL ááá¯ááŸá±á¬ááºááŸá¯á¡á¬áž á¡áá¯á¶ážááŒá¯ááŒááºážááá¯á· áŠážáááºá á±áá²á·áááºá ááá¯á·áá±á¬áº áá áºáá»áááºáááºážááœáẠACID ááᯠááááºážááááºážááŒááºážááẠááŸá±ážááá¯ážá áá áºáá»á¬ážááŸáá·áº á¡áá»áœááºážááááºááŸáááŒá±á¬ááºáž á¡á¬ááá¶áá«áááºá á€áá°áááºážá á¬ážáá áºá áá¯ááºáááºážááœááºáá¯á¶ážá ááºááŸá¯á áá Ạá¡áááºážáááºáᬠááŸááááºá ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠááá¯á áá áºááᯠááá¯ááºááá¯áẠá¡áá±á¬ááºá¡ááẠáá±á¬áºááŒá®áž á á®ážááœá¬ážááŒá ẠáááºáááºááŸá¯áá²ááá¯á· ááá·áºááá¯ááºáá«áááºá
áááºááá¯á¡áá¯ááºáá¯ááºááá² - ááŒááºáá±á¬ááºááŸá¯á¡á±á¬ááºááŸá¬áááºáá«á
ááá±á·ááœááºá Odnoklassniki ááá
ááºááááááºááẠáá°ážááŒá¬ážáá±á¬áá¬áá±á¬ááºáááºáááºáá° áááºáž 70 áá»á±á¬áºááŸááááºá áá»áœááºáá±á¬áºááá¯
áá»áœááºá¯ááºááá¯á·ááẠáá¬ážááŸááºáž 2010 ááŸá áááºáᬠ0.6 áá¯ááŸá áºááááºážá Cassandra ááá¯á¡áá¯á¶ážááŒá¯áá²á·áááºá ááá±á·ááœáẠáááºáááºáá±áá±á¬ á¡á á¯á¡ááœá²á· áá«áááºáá»á¬ážá áœá¬ááŸááááºá á¡ááŒááºáá¯á¶ážá¡á á¯á¡ááœá²á·ááẠáá áºá áá¹ááá·áºáá»áŸáẠáá¯ááºáá±á¬ááºáá»ááºáá±á«ááºáž 4 áááºážáá»á±á¬áºááᯠáá¯ááºáá±á¬ááºáá±ááŒá®áž á¡ááŒá®ážáá¯á¶áž 260 TB á ááá¯ážááá¯ááºáá»á¬ážá
ááá¯á·áá±á¬áºá áááºážááá¯á·á¡á¬ážáá¯á¶ážááẠááá¯ááŸá±á¬ááºááŸá¯á¡ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº áá¬ááẠNoSQL á¡á
á¯á¡áá±ážáá»á¬ážááŒá
áºáááºá
SQL Server node áá»á¬ážáá
áºáá»áŸá±á¬áẠáá±áá¬ááŒáá·áºáá±ááẠáá±á«ááºááá¯ááºááŸáá·áº á¡áá»á¬ážááá¯áẠááŸá
áºáá»áá¯ážáá¯á¶ážááᯠá¡áá¯á¶ážááŒá¯áá²á·áááºá
sharding ááŸáá·áº SQL ááá¯á¡ááŸáááºááŒáŸáá·áºáááºáá»á±ážáá°ážáááºáá«áááºá
- entity ID ááᯠááœá²áá¯ááºááá·áºá¡áá« á¡ááŒá¬ážáá¬áá¬ááœáẠááŸááá±ááá¯ááºáá±á¬ááŒá±á¬áá·áº Foreign key ááá·áºáááºáá»ááºáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· ááá¯á¶ážáá«á
- DBMS CPU ááœáẠáááºáá±á¬ááºážáááºááŒá±á¬áá·áº ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬ážááŸáá·áº á¡á áá»áá¯ážááŸá¯áá»á¬ážááᯠááá¯á¶ážáá«á
- á¡áááºáá±á¬áºááŒáá«á¡á¬ážáá¯á¶ážááŸáá·áº áá áºááºá០áá»áááºážáááºááŒááºážáá»á¬ážá áœá¬ááŒá±á¬áá·áº JOIN áá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· ááá¯á¶ážáá«á
- á¡áá±á¬ááºážá¡áááºááŒááºáááœááºá áá±á¬á·áááºááŸá¯áá»á¬ážáá»áŸá±á¬á·áá»ááẠáá»áœááºá¯ááºááá¯á·ááẠRead Uncommitted isolation á¡ááá·áºááᯠá¡áá¯á¶ážááŒá¯áá«áááºá
- áá»áœááºá¯ááºááá¯á·ááẠááá¯áá±á¬ááºážáá±á¬ ááœá±áá±ážááœá±áá°áá»á¬ážááá¯áᬠáá¯ááºáá±á¬ááºááẠ(áá»ááºážáá»áŸá¡á¬ážááŒáá·áº 100 ms áááºááá¯áááº)á
- ááááºááá¯á·ááŒááºážáá»á¬ážá áœá¬ááŒá±á¬áá·áº á¡áááºážáá±á«ááºážáá»á¬ážá áœá¬ UPDATE ááŸáá·áº DELETE ááᯠááá¯á¶ážáá« - áá»áœááºá¯ááºááá¯á·ááẠáá áºááŒáááºáá»áŸáẠááŸááºáááºážáá áºáá¯áᬠá¡ááºááááºáá¯ááºáá«áááºá
- áá»áœááºá¯ááºááá¯á·ááẠá¡ááœáŸááºážáá»á¬ážáá±á«áºááœááºáᬠá á¯á¶á ááºážáá±ážááŒááºážááŸá¯áá»á¬ážááᯠá¡ááŒá²áá¯ááºáá±á¬ááºááẠ- áá»áœááºá¯ááºááá¯á·á¡ááœáẠá á¬ážááœá²á¡ááŒáá·áºá áááºááºá¡á á®á¡á á¥áºáá«ááŸááá±á¬ query ááẠáá±áá¬áá±á·á áºááᯠá¡ááœááºá¡áá»áœá¶áááºá á±ááŒá®áž áááºážááᯠáá»ááŸá¯á¶ážá á±áá«áááºá
á€á¡ááá·áºáá»á¬ážááẠSQL áá¬áá¬áá»á¬ážá០á¡ááŒáá·áºáá¯á¶ážá áœááºážáá±á¬ááºáááºáá®ážáá«ážááᯠááŸá áºáá¯ááºááá¯ááºá á±áá«áááºá ááá¯á·áá±á¬áº ááŒá¿áá¬áá»á¬áž ááá¯áá»á¬ážáá¬áááºá áá°ááá¯á·ááá¯ááŒáá·áºáá¡á±á¬ááºá
SQL ááŒá¿áá¬áá»á¬áž
- áá»áœááºá¯ááºááá¯á·ááá¯ááºááá¯ááºáá±ážáá¬ážáá±á¬ sharding ááá¯á¡áá¯á¶ážááŒá¯áá±á¬ááŒá±á¬áá·áºá á¡ááºááááºáá»á¬ážááá¯ááºááá¯ááºááŒá¯áá¯ááºáá±á¬ shard á¡áá áºáá»á¬ážááá¯ááá·áºááŒááºážááŒá áºáá«áááºá á€á¡áá»áááºáá áºáá»áŸá±á¬ááºáá¯á¶ážááœááºá á¡ááœááºá¡á á¬ážááŸá áá±áá¬áá¯á¶áá°áá»á¬ážááẠáá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠáá±á¬ááºááœááºáá±ážááŒááºážáááŸááá«á
- ááá¬ážááŸá ááŸááºáááºážá¡áá±á¡ááœáẠááá¯ážáá¬áááºááŸáá·áºá¡áá»áŸ ááá·áºááœááºážááŒááºážááŸáá·áº ááŒá¯ááŒááºááŒááºážá á¡ááŒááºááŸá¯ááºáž áá»á±á¬á·áá»ááœá¬ážáááºá ááŸáááŒá®ážáá¬ážááá¬ážáá áºáá¯ááá¯á· á¡ááœáŸááºážáá»á¬ážááá·áºáá±á¬á¡áá«á á¡ááŸáááºááẠá¡áá»ááºáá áºáá¯á¡á¬ážááŒáá·áº áá»áááºážááœá¬ážáááºá á¡ááœáŸááºážáá»á¬ážááᯠáááºáá®ážááŒááºážááŸáá·áº ááŒááºáááºáááºáá®ážááŒááºážááẠá¡áá»áááºáá¯ááºááœá¬ážáááŒáá·áº ááŒá áºáá±á«áºáá«áááºá
- áá¯ááºáá¯ááºááŸá¯ááœáẠSQL Server á¡ááœáẠWindows ááá¬áá¡áááºážáááºááŸáááŒááºážááẠá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶á á®áá¶ááá·áºááœá²ááŸá¯ááᯠáááºáá²á á±áááºá
áá«áá±ááá·áº á¡áááááŒá¿áá¬á
á¡ááŸá¬ážáá¶ááá¯ááºáááº
áá°áááºáž SQL áá¬áá¬ááœáẠá¡ááŸá¬ážáá¶ááá¯ááºááẠáá¶á·áá»ááºážáááºá ááá·áºááœááºáá±áá¬áá±á·á áºáá¬áá¬áá áºáá¯áá¬ááŸááááºááá¯áá«á áá¯á·á áááºážáááºáá¯á¶ážááŸá áºáá áºááŒáááºáá»ááºááœááºáááºááá¯áá«á áá¯á·á á€á¡áá»áááºá¡áá±á¬á¡ááœááºáž ááá¯ááºááẠáááá Ạ20 ááŒá¬ áá»ááºááœá¬ážááá·áºá¡ááœáẠáááºáá¶ááá¯ááºááœááºááŸááááºá ááá·áºááœáẠáá¬áᬠ64 áá¯ááŸááá«áá ááá¯ááºááẠáá¯á¶ážáááºáá»áŸáẠáá áºááŒááẠáá»ááºáá±áá«áááºá á¡áááºá ááá·áºááœáẠáá¬áᬠ200 ááŸááá«áá ááá¯ááºááẠá¡áááºá áẠá¡áá¯ááºááá¯ááºáá«á áá«á ááŒá¿áá¬áá«á
SQL server áá
áºáá¯á á¡ááŸá¬ážáá¶ááá¯ááºáááºááᯠááŒáŸáá·áºáááºááẠá¡áááºá¡áá¬áá¯ááºáá±á¬ááºááá¯ááºááááºážá áááºáá±á¬ááºááẠáá®áá®áá®ážáá®ážáá¬ážá áá»áœááºá¯ááºááá¯á·ááᯠááááºáá±á«áºáá«áááºá
áááºážááẠá á»á±ážááŒá®ážáá±á¬ á ááºáááááá¬áá»á¬ážá áœá¬ ááá¯á¡ááºáááº- áááºáá°áááºáá»áŸáá±á¬á optical fiberá áá»áŸáá±áá¬ážáá±á¬ ááá¯ááŸá±á¬ááºááŸá¯á ááŸáá·áº á¡áááºáá¬ážááŸáááŸá¯ááœáẠá áááºáá»áá¯á¶ááŒááºá áœá¬ á¡áá¯ááºááá¯ááºáá«- áá°ážááŒá±á¬ááºážááŒááºážáá»á¬ážá 10% ááá·áºááẠmain node áá±á¬ááºááœááºááŸá ááá¬ážáá²á·ááá¯á· á¡áááºáá¯á¶á áá»ááºááœááºááŸá¯ááŒáá·áº á¡áá¯á¶ážáááºááœá¬ážáá«áááºá
ááá¯á·áá±á¬áº ááá¯áá²á·ááá¯á· á¡ááœááºáááŸáááá¯ááºáá±á¬ á¡á á¯á¡áá±ážá á¡áááá¡á¬ážáááºážáá»ááºááŸá¬ áááºážáááºááŸááá±ááá·áº áá±áá¬á ááºáᬠáá»ááºááœááºáá«á áá¯ááááŸáááá¯ááºááŒááºážáááºááŒá áºáááºá Odnoklassniki ááœáẠáá±áá¬á ááºáᬠáá±ážáá¯ááŸáááŒá®áž áááºážááá¯á·á¡áááºá០áá áºáá¯ááœáẠááŒá®ážááŒáá·áºá á¯á¶áá±á¬ áá»áá¯á·ááœááºážáá»ááºáá áºáᯠááŒá áºáá¬áá±á¬á¡áá«ááœáẠáá»áœááºá¯ááºááá¯á·á áááºáááºááŸá¯ááᯠáá±áá»á¬á á±ááẠááá¯á¡ááºáá«áááºá
áá®á¡ááœáẠáá»áœááºáá±á¬áºááá¯á· áá¯á¶ážááá¯ááºáááºá
á€ááŒá¿áá¬áá»á¬ážá¡á¬ážáá¯á¶ážááẠá¡á áœááºážáá±á¬ááºááŒá±ááŸááºážáá»ááºáá áºáᯠááá¯á¡ááºááŒá®áž áááºážááá¯á·ááᯠá¡áá±ážá áááºááœá²ááŒááºážá áááºááŒá¬ááẠá áááºáá²á·áááºá á€áá±áá¬ááœáẠáá»áœááºá¯ááºááá¯á·ááẠSQL Server ááᯠá¡áááá¡á¬ážááŒáá·áº áá¯ááºáá±á¬ááºááẠ- ááœá±áá±ážááœá±áá°áá»á¬ážááŸáá·áº áááá¬ážáááºááẠááá¯á¡ááºáá«áááºá
ááá¯ážááŸááºážáá±á¬ááœá±áá±ážááœá±áá°
á¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ SQL áááá¯ááááºáá¬áá áºáŠážáá¡ááŒááºá០á¡ááá¯ážááŸááºážáá¯á¶ážááœá±áá±ážááœá±áá°ááᯠáá¯á¶ážáááºááŒáá·áºááŒáá«á áá¯á·- áá¬ááºáá¯á¶áá áºáá¯á¶ááᯠá¡ááºááºáááºáá áºáá¯ááá¯á·ááá·áºááŒááºážá á¡ááºááºáááºáá»á¬ážááŸáá·áº áá¬ááºáá¯á¶áá»á¬ážááᯠááá°áá®áá±á¬ áááºážáááºááŒá¬ážáá»á¬ážááœáẠááááºážáááºážáá¬ážáááºá á¡ááºááºáááºááœáẠá¡áá»á¬ážáá°ááŸá¬ áá¬ááºáá¯á¶áá±á¬ááºáᬠááŸááááºá ááá¯á·áá±á¬áẠááá¯ááá¯á·áá±á¬ ááœá±áá±ážááœá±áá°ááᯠá¡á±á¬ááºáá«á¡ááá·áºáá»á¬ážá¡ááŒá Ạááá¯ááºážááŒá¬ážáá¬ážáá«áááºá
- á¡ááºááºáááºááᯠáá±á¬á·ááŒáá·áº áá±á¬á·áááºáá¬ážáááºá
- áá¬ááºáá¯á¶ááá¬ážááœáẠááá·áºááœááºážááŸá¯áá áºáá¯ááᯠáááºáá®ážáá«á
- áá¬ááºáá¯á¶ááœáẠá¡áá»á¬ážáá°ááŸá¬ á¡ááŒá±á¡áá±ááŸááá«áá ááá¯á·áá±á¬áẠá¡ááºááºáááºááœáẠá¡áá»á¬ážáá°ááŸá¬ áá¬ááºáá¯á¶áá±á¬ááºáá¬áá áºáá¯ááᯠááá·áºáá«á ááŸááºáááºážááᯠá¡ááºááááºáá¯ááºááŒá®áž ááœá±áá±ážááœá±áá°ááŒá¯áá¯ááºáá«á
ááá¯á·ááá¯áẠpseudocode ááŒáá·áº-
TX.start("Albums", id);
Album album = albums.lock(id);
Photo photo = photos.create(âŠ);
if (photo.status == PUBLIC ) {
album.incPublicPhotosCount();
}
album.update();
TX.commit();
á á®ážááœá¬ážáá±ážáá¯ááºáááºážáá áºáá¯á¡ááœáẠá¡áá¯á¶ážá¡áá»á¬ážáá¯á¶ážá¡ááŒá±á¡áá±ááŸá¬ áá±áá¬áá±á·á áºááŸáá±áá¬áá»á¬ážááᯠá¡ááá®áá±ážááŸááºážáá¬áá¬áááŸááºáá¬ááºáá²ááá¯á· áááºááŸá¯ááŒááºážá áá áºáá¯áá¯ááᯠááŒá±á¬ááºážáá²ááŒááºážááŸáá·áº áááºááá¯ážá¡áá áºáá»á¬ážááᯠáá±áá¬áá±á·á áºááá¯á· ááŒááºáááºááááºážáááºážááŒááºážááŒá áºáááºááᯠáá»áœááºá¯ááºááá¯á·ááœá±á·ááŒááºááá«áááºá á¡áá»á¬ážá¡á¬ážááŒáá·áº ááá¯ááá¯á·áá±á¬ ááœá±áá±ážááœá±áá°ááœáẠáá»áœááºá¯ááºááá¯á·ááẠáá»á¬ážá áœá¬áá±á¬á ááá¬ážáá»á¬ážá áœá¬ááᯠá¡ááºááááºáá¯ááºáá«áááºá
ááœá±áá±ážááœá±áá°áá
áºáá¯ááᯠáá¯ááºáá±á¬ááºáá±á¬á¡áá«á á¡ááŒá¬ážá
áá
áºá០áá°áá®áá±á¬áá±áá¬ááᯠáá
áºááŒáá¯ááºáááºáááºáž ááœááºážáá¶ááŒááºáááºááŸá¯áá»á¬áž ááŒá
áºáá±á«áºááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá Antispam ááẠá¡áá¯á¶ážááŒá¯áá°á¡á¬áž áá
áºáááºážáááºážááŒáá·áº áá¶ááááŒá
áºááœááºááŸááááºáᯠáá¯á¶ážááŒááºááá¯ááºááŒá®áž ááá¯á·ááŒá±á¬áá·áº áá¯á¶ážá
áœá²áá°ááá¬ááºáá¯á¶á¡á¬ážáá¯á¶ážááᯠá¡áá»á¬ážáá°ááŸá¬áááŒá
áºááá·áºáá±á¬á·áá² áááºážááá¯á·á¡á¬áž ááááºážááŸááááºá¡ááœáẠáá±ážááá¯á·ááẠááá¯á¡ááºáááºá ááá¯ááá¯áááºááŸá¬ photo.status ááᯠá¡ááŒá¬ážáááºááá¯ážá¡áá»áá¯á·ááá¯á· ááŒá±á¬ááºážáá²áᬠáááºááá¯ááºáá¬áá±á¬ááºáá¬áá»á¬ážááᯠááááºááá¯ááºááŒááºážááŒá
áºáááºá á¡áááºá á€áá¯ááºáá±á¬ááºáá»ááºááẠá¡ááºáááºááŒá°áá
áºá á¡áá¯á¶ážáá»ááŸá¯ááŸáá·áº ááŒáá¯ááºááá¯ááºááŸá¯ááá¯ááºáᬠááŒá¯ááŒááºááœááºážáá¶ááŸá¯áá»á¬ážááᯠáá®ážááŒá¬ážááœá²áá¯ááºááŒááºážááá¯á·ááᯠá¡á¬ááá¶áá»ááºáááŸááá² ááŒá
áºáá±á«áºáá¬áá«áá
ááœá±áá±ážááœá±áá°áá
áºáá¯á¡ááœááºáž á¡áá»áá¯ážáá»áá¯ážáá±á¬ á
á®ážááœá¬ážáá±ážáá¯ááºáááºážááá¯ááºáá¬áá»á¬ážááᯠá¡áá¯á¶ážáá»áᬠá¡áá¬ážáá°áá¯ááºá¡áá»á¬ážá¡ááŒá¬ážááᯠOdnoklassniki ááááºááŸáááŸá¯áá
áºáá¯áá¯á¶ážááœáẠáá±ážáá¬ážáá¬ážáááºá NoSQL ááá¯á· ááœáŸá±á·ááŒá±á¬ááºážááŒááºáž á¡ááœá±á·á¡ááŒá¯á¶á¡áá±á«áº á¡ááŒá±áá¶áááºá
á¡ááŒá¬ážá¡áá±ážááŒá®ážáá±á¬ ááá¯á¡ááºáá»ááºáá»á¬ážááŸá¬-
- áá±áá¬á ááºáá¬ááœáẠáá»ááºááœááºáá«áá ááá¯ááŸá±á¬ááºááŸá¯á¡áá áºááá¯á· á á¬áá±ážááŒááºážááŸáá·áº á á¬áááºááŒááºáž ááŸá áºáá¯á áá¯á¶ážááᯠáááá¯ááºááá«áááºá
- áááºááŸá ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ á¡ááŸáááºááᯠááááºážááááºážáá«á ááá¯ááá¯áááºááŸá¬ repository á¡áá áºáá áºáá¯ááŸáá·áºá¡áá¯ááºáá¯ááºáá±á¬á¡áá«á code ááá¬áááẠááá·áºááŸááºážááŒá±á¡á¬ážááŒáá·áº áá°áá®ááá·áºáááºá repository ááœáẠáááºááá·áºá¡áá¬ááá¯áá»áŸ ááá·áºáááºáááá¯á¡ááºáá«á áááááá¹ááá»á¬ážááá¯ááŒá±ááŸááºážáááºá¡ááœáẠalgorithms áá»á¬ážáááºáá®ážáááºá áá¯áááá¡ááœáŸááºážááááºážáá»á¬ážááᯠááááºážááááºážáá¬ážáááºá áááºááŒáá·áº áááŒá áºááá·áºáá«á
- ááá¯ááŸá±á¬ááºááŸá¯á¡áá
áºá ááŒááºááŸá¯ááºážááẠáá±áá¬ááá¯áááºááŸá¯ááá·áºá¡áá«ááŸáá·áº ááœá±áá±ážááœá±áá°áá»á¬ážááᯠáá¯ááºáá±á¬ááºááá·áºá¡áá« ááŸá
áºáá¯á
áá¯á¶ážááœáẠá¡ááœááºááŒáá·áºáá¬ážááááºááŒá
áºááŒá®ážá á¥ááá¬á á¥ááá¬á á¥ááá¬á ááá¬áááºááá¯ááºáᬠááŒááºážáááºáá±á¬á áá»ááºáá»ááºááŒáá·áºááŒáá·áºá¡áá¯á¶ážááŒá¯ááá¯ááºáá±á¬áºáááºáž ááŸá±ážááœá±ážáá±á¬ááŒá±ááŸááºážáááºážáá»á¬ážááᯠá¡áá¯á¶ážáá»ááááá«á
ááŸá áºááá·áº áá»á°ážááœááºáááºá . - á¡ááá¯á¡áá»á±á¬áẠáá»á¶áááºážááŸá¯ á¡ááá¯ááºážá¡áá¬á
- áá°ážááŒá¬ážáááºážááŒá¬ážáá±á¬ áá¬á·ááºáá²áá»á¬ážááᯠáááºáá°á áá¬áááá¯áá² áá¯á¶ááŸááºá á»á±ážáá±á«áá±á¬ áá¬áá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«á
- áá¯áá¹ááá® developer áá»á¬ážá០ááá¯ááŸá±á¬ááºááŸá¯ ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ ááŒá áºááá¯ááºááŒá±á áá áºáááºážááá¯ááá±á¬áº Java ááœáẠáá°ááá¯áẠááá¯á·ááá¯áẠopen source ááŒá±ááŸááºážáá»ááºáá»á¬ážá¡á¬áž áŠážá á¬ážáá±ážáá¬ážáááºá
áá¯á¶ážááŒááºáá»ááºáá»á¬ážá áá¯á¶ážááŒááºáá»ááºáá»á¬áž
ááŒá áºááá¯ááºáá»á±ááŸááá±á¬ ááŒá±ááŸááºážáá»ááºáá»á¬ážááᯠááœá²ááŒááºážá áááºááŒá¬ááŒááºážááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠááŒá áºááá¯ááºáá±á¬ áááá¯áá¬ááᬠááœá±ážáá»ááºááŸá¯ááŸá áºáá¯ááá¯á· áá±á¬ááºáá¬áááº-
áááá¡áá»ááºááŸá¬ áááºááá·áº SQL áá¬áá¬ááá¯áááᯠááá°ááŒá®áž ááá¯á¡ááºáá±á¬ á¡ááŸá¬ážá¡ááœááºážáá»á¬ážááᯠáááºážáá¶ááŒááºážá á¡ááá¯ááºážá¡áá¬áá»á²á·ááœááºááŒááºáž ááá¹ááá¬ážá áá»ááºááœááºááŸá¯á¡á á¯á¡áá±ážá áááááá¹áááŒá±ááŸááºážááŒááºážááŸáá·áº ááŒáá·áºáá±ááŒááºážá áá¯á¶ááŒááºá áááºáá»áááŒá®áž ááŒááºáááºáá±á¬ ACID á¡áá±á¬ááºážá¡áááºáá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáááºááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááẠá€ááœá±ážáá»ááºááŸá¯á¡á¬áž á¡ááœááºá¡áá±ážá¡ááœá²ááá¯ááºáá±á¬á áá¯ááºáá¬ážá¡áá°ážááŒá¯á¡ááŒá Ạá¡ááá·áºáááºááŸááºáá¬ážáááºá
áá¯áááááœá±ážáá»ááºááŸá¯ááŸá¬ á¡áááºááá·áºáá¯ááºáá¬ážáá±á¬ NoSQL ááá¯ááŸá±á¬ááºááŸá¯á¡á¬áž á¡áá±á¬ááºá¡áááºáá±á¬áºááá·áºá¡ááá¯ááºážá¡áá¬á áá»ááºááœááºááŸá¯á¡á
á¯á¡áá±ážáá
áºáá¯á áááááá¹áááŒá±ááŸááºážááŸá¯á ááœá±áá±ážááœá±áá°ááŸáá·áº SQL áááºááá¯ááºááá¯ááºá¡áá±á¬ááºá¡áááºáá±á¬áºáááºááŒá
áºáááºá ááááá
áºáá»ááºááœááºá ACID á¡áá±á¬ááºážá¡áááºáá»á¬ážááá¯ááá±á¬áºááŒáá² SQL ááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºááá·áºá¡áá¯ááºáááºáá»áŸáẠááŸá
áºáá»á¬ážá
áœá¬ááŒá¬ááá·áºá¡áá¯ááºáá
áºáá¯ááá¯áááºá ááá¯á·áá±á¬áº áááºááœá±á·ááœááºáá»áœááºá¯ááºááá¯á·á¡áá¯á¶ážááŒá¯ááá·áº SQL á¡ááºá¹áá«áááºááẠANSI SQL ááŸáá·áº áá±ážááœá¬ááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·ááá±á¬áá±á«ááºáá¬áááºá
Cassandra ááŸáá·áº CQL
áá«ááᯠCassandra áá²á· á áááºáááºá á¬ážá áá¬á áá¬ááœá±áá²á áá°á·ááŸá¬ áááºááá¯á áœááºážáááºááœá± ááŸááá²á
ááááŠážá áœá¬á á€áá±áá¬ááœáẠáááºááẠáá±áá¬á¡áá»áá¯ážá¡á á¬ážá¡áá»áá¯ážáá»áá¯ážááᯠáá¶á·ááá¯ážáá±ážááá·áº ááá¬ážáá»á¬ážááᯠáááºáá®ážááá¯ááºáááºá áááºááẠá¡ááááá±á¬á·áá±á«áºááœáẠSELECT ááá¯á·ááá¯áẠUPDATE ááŒá¯áá¯ááºááá¯ááºáááºá
CREATE TABLE photos (id bigint KEY, owner bigint,âŠ);
SELECT * FROM photos WHERE id=?;
UPDATE photos SET ⊠WHERE id=?;
áá¯á¶áá°áá±áᬠáá®ááœááºááŸá¯ááŸáá
á±ááẠCassandra ááᯠá¡áá¯á¶ážááŒá¯áááºá
áá»áœááºá¯ááºááá¯á·ááẠnode áá¯á¶ážáá¯ááᯠáááºááœááºááŒá®áž ááŸá
áºáá¯áá¶á០áá¯á¶á·ááŒááºááŸá¯ááᯠáááºáá¶áá±á¬á¡áá« áá»ááºážáááºááŸá¯ááᯠáá±á«áºáááºá
Cassandra ááá±á¬ááºáááºá¡áá»áá¯ážáá»á±ážáá°ážááŸá¬ Batchlog ááẠáááºááŒá¯áá¯ááºáá±á¬ááŒá±á¬ááºážáá²ááŸá¯á¡áá¯ááºáá»á¬ážááᯠá¡ááŒáá·áºá¡áá¡áá¯á¶ážáá»áááºááŒá áºá á± áá¯á¶ážááá¡áá¯á¶ážáá»ááŒá±á¬ááºážáá±áá»á¬á á±ááá·áºááá¹ááá¬ážáá áºáá¯ááŒá áºáááºá áááºážááẠáá»áœááºá¯ááºááá¯á·á¡á¬áž ACID ááœáẠA ááŸááŒá±ááŸááºážááá¯ááºá á±áá«áááºá
Cassandra ááœáẠá¡áá±á¬ááºážá¡áááºááŸáá·áº á¡áá®ážá
ááºáá¯á¶ážá¡áá¬ááŸá¬ "
Cassandra ááœáẠáá»áœááºá¯ááºááá¯á· áá»á±á¬ááºáá¯á¶ážáá±áá±á¬á¡áá¬áá»á¬áž
áá«ááŒá±á¬áá·áº Cassandra ááŸá¬ áááá·áº ACID á¡áá±á¬ááºážá¡áááºááœá±ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá²á·ááá«áááºá ááá¹áááẠDBMS á á¡ááŒá¬ážá¡áááºááŒá±ááá·áº á¡ááºá¹áá«áááºááŸá áºáá¯ááᯠáá»áœááºá¯ááºááá¯á· á¡ááœááºááá° á¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºáááº- á¡ááááá®ážááŒáá·áºáá¬áá áá±áá¬ááœá±ážáá»ááºááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºá á±ááá·áº áááááºáááºáž ááŒááºáááºáá±á¬ á¡ááœáŸááºážááááºážáá»á¬ážááŸáá·áº ááá¯ááá¯ááá¯áá Ạá¡ááá¯á¡áá»á±á¬áẠááá¯ážáá¬áá±áá±á¬ ID áá»á¬ážá áá¯á¶ááŸáẠáá»ááºááá±áá¬áá áºáá¯á
C*One
ááá¯á·ááŒá±á¬áá·áº DBMS á¡áá áºáá áºáᯠááœá±ážááœá¬ážáá¬áá²á·áááºá C*Oneserver node á¡áá»áá¯ážá¡á á¬ážáá¯á¶ážáá»áá¯áž áá«áááºáá±á¬á
- ááá¯ááŸá±á¬ááºááŸá¯ â (áá®ážáá«áž) á ᶠCassandra áá¬áá¬áá»á¬ážááẠáá±áááœááºážáá áºáá»á¬ážáá±á«áºááœáẠáá±áá¬áá»á¬ážááᯠááááºážáááºážááẠáá¬áááºááŸááááºá áá±áá¬áá»á¬ážá áááºááŸáá·áº ááá¬á ááá¯ážáá¬áááºááŸáá·áºá¡áá»áŸ áááºážááá¯á·á ááá¬áááᯠáááºááááºážá០áá¬ááááºážá¡áá á¡ááœááºááá° áá»áááºááŸáááá¯ááºáááºá
- ááœá±áá±ážááœá±áá°ááŸáááŸáá¯ááºážáá±ážááŸá°ážáá»á¬áž - ááœá±áá±ážááœá±áá°áá±á¬ááºááœááºááŸá¯áá»á¬ážááá¯áá±áá»á¬á á±áááºá
- áá±á¬ááºáááºáá»á¬ážááẠáá¯ááºáááºážáááºáááºáá±á¬ááºááœááºááŸá¯áá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáááºááŸáá·áº ááœá±áá±ážááœá±áá°áá»á¬ážááᯠá¡á ááŒá¯ááá·áº á¡ááá®áá±ážááŸááºážáá¬áá¬áá»á¬ážááŒá áºáááºá á¡á²áá®ááᯠáá±á¬ááºááẠáá±á¬ááºáá±á«ááºážáá»á¬ážá áœá¬ ááŸáááá¯ááºáá«áááºá
á¡áá»áá¯ážá¡á
á¬ážá¡á¬ážáá¯á¶ážááá¬áá¬áá»á¬ážááẠáá¯á¶á¡á
á¯á¡áá±ážáá
áºáá¯á áá
áºá
áááºáá
áºááá¯ááºážááŒá
áºáááºá áá
áºáá¯ááŸáá·áºáá
áºáᯠáááºááœááºáááºá¡ááœáẠá¡ááœááºážááá¯ááºáž Cassandra áááºáá±á·áá»áºáááá¯ááá¯áá±á¬ááᯠá¡áá¯á¶ážááŒá¯á
client áá»á¬áž
áá¯á¶ááŸááºáá¬ááºáá±á¬ááºážáá»á¬ážá¡á
á¬áž Fat Client áá¯ááºááᯠá¡áá¯á¶ážááŒá¯áááºá ááá¯ááá¯á·áá±á¬ node ááẠáá±áá¬ááᯠááááºážáááºážááá¬ážáá±á¬áºáááºáž áá±á¬ááºážááá¯ááŸá¯áá¯ááºáá±á¬ááºááŸá¯á¡ááœáẠááŸáááŸáá¯ááºážáá±ážááŸá°ážá¡ááŒá
Ạáá¯ááºáá±á¬ááºááá¯ááºáááºá ááá¯ááá¯áááºááŸá¬ Client ááá¯ááºááá¯ááºá áááºážá áá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠááŸáááŸáá¯ááºážáá±ážááŸá°ážá¡ááŒá
Ạáá¯ááºáá±á¬ááºáááº- áááºážááẠááá¯ááŸá±á¬ááºááŸá¯áá¯á¶á
á¶áá°áá»á¬ážááᯠáá±ážááŒááºážááŒá®áž áááááá¹ááá»á¬ážááᯠááŒá±ááŸááºážáá±ážáááºá áááºážááẠá¡áá±ážááááºážááŸáááŸáá¯ááºážáá±ážááŸá°ážááŸáá·áº áááºááœááºááŸá¯ááá¯á¡ááºááá·áº áá¯á¶ááŸááºáá¬ááºáá±á¬ááºážááẠááá¯ááá¯áá¯á¶ááŒááºá
áááºáá»áááŒá®áž ááŒááºáááºáá¯á¶áá¬áááá² áá±á¬ááºážááá¯áá»ááºáá»á¬ážáá±ážááá¯á·ááŸá¯ááá¯áááºáž ááááºážáá»á¯ááºááá¯ááºáááºá áááá¯ááºážááá·áºááœááºááœáá·áºáá¬ážáá±á¬ ááœá±áá±ážááœá±áá°ááŒááºáááœááºá áá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠááá¯ááŸá±á¬ááºáá¯á¶áá»á¬ážááá¯á· áá±ážááá¯á·áá«áááºá áá±á¬ááºáááºááẠááœá±áá±ážááœá±áá°áá
áºáá¯ááœáá·áºáá«áá ááœá±áá±ážááœá±áá°á¡ááœááºáž áá±á¬ááºážááá¯áá»ááºá¡á¬ážáá¯á¶ážááᯠááœá±áá±ážááœá±áá°ááŸáááŸáá¯ááºážáá±ážááŸá°ážáᶠáá±ážááá¯á·áááºááŒá
áºáááºá
C*One Transaction Coordinator
ááŸáááŸáá¯ááºážáá±ážááŸá°ážááẠáá»áœááºá¯ááºááá¯á· C*One á¡ááœáẠá¡á ááŸá¡áá¯á¶áž áá¯ááºáá±á¬ááºáá²á·ááá·áº á¡áá¬ááŒá áºáááºá á¡áá±á¬ááºážá¡áááºáá»á¬ážá áá±á¬á·áááºááŸá¯áá»á¬ážááŸáá·áº á¡áá±á¬ááºážá¡áááºááŒá¯áá¯ááºááá·áº á¡ááŸá¬á á¬áá»á¬ážááᯠá á®áá¶ááá·áºááœá²ááẠáááºážááœáẠáá¬áááºááŸááááºá
áááºáá±á¬ááºááŸá¯áá±ážáá±á¬ á¡áá±á¬ááºážá¡áááºáá
áºáá¯á
á®á¡ááœááºá ááŸáááŸáá¯ááºážáá±ážááŸá°ážá á¡áá»áááºáá¶ááááºáá
áºáá¯áá¯ááºáá±ážáááº- áá±á¬ááºáááºááœá²ááœá±áá±ážááœá±áá°áá
áºáá¯á
á®ááẠááááºááœá±áá±ážááœá±áá°ááẠááá¯áá»á¬ážáááºá Cassandra á áááááá¹áááŒá±ááŸááºážáá±ážá
áá
áºááẠá¡áá»áááºáá¶ááááºáá¯á¶ážáá»á¬ážáá±á«áºááœáẠá¡ááŒá±áá¶áá¬ážáá±á¬ááŒá±á¬áá·áº (ááœá²ááœá²áá±áá±á¬ááŸááºáááºážááŸá
áºáá¯á áá±á¬ááºáá¯á¶ážá¡áá»áááºáá¶ááááºááᯠáááºááŸááá¯áá°ááááº)á áááááá¹áááẠáá±á¬ááºáááºááœá²ááœá±áá±ážááœá±áá°á¡ááœáẠá¡ááŒá²áááºážááŒá±áááºááœá¬ážáááºááŒá
áºáááºá á¡á²áá«ááᯠáá»áœááºáá±á¬áºááá¯á· á¡áá±á¬ááºá¡áááºáá±á¬áºáááºá
áá±á¬á·ááá±á¬ááºáá»á¬áž
á¡áá®ážáá»ááºááŸá¯ááᯠáá±áá»á¬á á±áááºá áá»áœááºá¯ááºááá¯á·ááẠááŸááºáááºážá á¡ááááá±á¬á·ááᯠá¡ááŒá±áá¶á á¡ááá¯ážááŒááºáá±á¬áá±á¬á·áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠáá¯á¶ážááŒááºáá²á·áááºá áá áºáááºážááá¯ááá±á¬áº ááœá±áá±ážááœá±áá°áá áºáá¯ááœáẠááŸááºáááºážáá áºáá¯ááᯠáŠážá áœá¬áá±á¬á·áááºáá¬ážááááºá ááá¯á·áá±á¬ááºááŸáᬠáááºáááºá ááŒááºáááºááŒá®áž ááááºážáááºážáá¬ážááááºááŒá áºáááºá á¡á±á¬ááºááŒááºáá±á¬ áááááŒá¯ááŒá®ážááŸáᬠááŒáá¯ááºááá¯ááºáá±á¬ ááœá±áá±ážááœá±áá°áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºááẠááŸááºáááºážáá áºáá¯ááᯠáá±á¬á·ááºááœáá·áºááá¯ááºáááºááŒá áºáááºá
ááá¯ááá¯á·áá±á¬áá±á¬á·áááºááŒááºážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážááẠáááŒáá·áºáá±áá±á¬áááºáááºážáá»ááºááœáẠááá¯ážááŸááºážáá«áááºá ááŒáá·áºáá±ááá·áºá áá áºááœáẠá¡áááááœá±ážáá»ááºá áá¬ááŸá áºáá¯ááŸááááº- á¡á á¯á¡áá±ážáá±á«áºááœáẠááŒáá·áºáá±áá±á¬áá±á¬á·áááºááŒááºážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠááá¯á·ááá¯áẠáá°áá®áá±á¬ááŸááºáááºážáá«ááŸááá±á¬ ááœá±áá±ážááœá±áá°áá»á¬ážááᯠáá°áá®áá±á¬ááŸáááŸáá¯ááºážáá±ážááŸá°ážá á¡ááŒá²áááºážáááºáá±á¬ááºááŸá¯áá±ážááá¯ááºááẠááœáŸá²ááŒá±á¬ááºážáá±ážáá»á±ááŸá¯áá»á¬ážááᯠááŒáá·áºáá±áá«á
áá»áœááºá¯ááºááá¯á·áá¡ááŒá±á¡áá±ááœáẠSQL ááŸá áá±áááœááºáž ááœá±áá±ážááœá±áá°á¡á¯ááºá á¯áá»á¬ážááŒá¬ážááœáẠáá±áá¬ááᯠááŒáá·áºáá±áá¬ážááŒá®ážááŒá áºáá±á¬ááŒá±á¬áá·áºá áá±ááá¹áá ááœá±áá±ážááœá±áá°á¡ááœá²á·áá»á¬ážááᯠááŸáááŸáá¯ááºážáá±ážááŸá°ážáá»á¬ážáᶠáá¬áááºáá±ážá¡ááºááẠáá¯á¶ážááŒááºáá²á·áááº- ááŸáááŸáá¯ááºážáá±ážááŸá°ážáá áºáŠážááẠááá¯áááºáá»á¬áž 0 á០9 á¡áá á¡áá±á¬ááºážá¡áááºá¡á¬ážáá¯á¶ážááᯠáá¯ááºáá±á¬ááºáááºá áá¯ááá - ááá¯ááẠ10 á០19 á¡ááá áá±á¬áẠ... ááŒá®ážáá±á¬á·á ááááºá¡áá±ááŒáá·áºá ááŸáááŸáá¯ááºážáá±ážááŸá°ážááŒá áºáááºáá áºáá¯á á®ááẠááœá±áá±ážááœá±áá°á¡ááœá²á·á áá¬á áá¬ááŒá áºáá¬áááºá
ááá¯á·áá±á¬áẠáá±á¬á·áááºááŸá¯áá»á¬ážááᯠááŸáááŸáá¯ááºážáá±ážááŸá°ážá ááŸááºáá¬ááºááœáẠbanal HashMap áá¯á¶á á¶ááŒáá·áº á¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºáááºá
ááŸáááŸáá¯ááºážáá±ážááŸá°áž áá¡á±á¬ááºááŒááºáá«á
ááŸáááŸáá¯ááºážáá±ážááŸá°ážáá áºáŠážááẠááœá±áá±ážááœá±áá°á¡á¯ááºá á¯áá áºá á¯ááᯠáá®ážááá·áºáá±á¬ááºááœááºáá±ážáá±á¬ááŒá±á¬áá·áºá á¡áá±á¬ááºážá¡áááºááŒá¯áá¯ááºááẠáá¯áááá¡ááŒáááºááŒáá¯ážáááºážááŸá¯ááẠá¡áá»áááºáá¯ááºááœá¬ážá á±ááẠáááºážááá»ááºááœááºááŸá¯áá¡áá»ááºááᯠá¡ááŒááºáá¯á¶ážááŒááºááẠá¡ááœááºá¡áá±ážááŒá®ážáá«áááºá á€ááŒááºáááºááŒá®áž áá¯á¶ááŒááºá áááºáá»áá á±áááºá¡ááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒáá·áºá¡ááá»áááºáááºáá¬ážáá±á¬ quorum hearbeat áááá¯ááá¯áá±á¬ááᯠá¡áá¯á¶ážááŒá¯áá²á·áááº-
áá±áá¬á ááºáá¬áá áºáá¯á á®ááœáẠááŸáááŸáá¯ááºážáá±ážááŸá°áž áá¯á¶ááŸááºááŸá áºáᯠá¡áááºážáá¯á¶ážááŸááááºá á¡áá«á¡á¬ážáá»á±á¬áºá áœá¬á ááŸáááŸáá¯ááºážáá±ážááŸá°ážáá áºáŠážá á®ááẠá¡ááŒá¬ážááŸáááŸáá¯ááºážáá±ážááŸá°ážáá»á¬ážáᶠááŸáá¯á¶ážáá¯ááºáá¶áááºáá±á·áá»áºáá áºáᯠáá±ážááá¯á·ááŒá®áž áááºážááá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážááŸáá·áº áááºáááºá áááºážááá¯á·á¡á¬áž á¡á á¯á¡áá±ážááŸá ááŸáááŸáá¯ááºážáá±ážááŸá°ážáá»á¬ážá០áá±á¬ááºáá¯á¶ážá¡ááŒáááºáááŸáááá·áº áááºááá·áºááŸáá¯á¶ážáá¯ááºáááºáá±á·áá»áºáá»á¬ážááᯠá¡ááŒá±á¬ááºážááŒá¬ážáá«áááºá
áááºážááá¯á·áááŸáá¯á¶ážáá¯ááºáá¶áááºáá±á·ááºá»ááá
áºá
áááºáá
áºááá¯ááºážá¡áá±ááŒáá·áº á¡ááŒá¬ážáá°áá»á¬ážáá¶ááŸá¡áá¬ážáá°á¡áá»ááºá¡áááºáá»á¬ážááᯠáááºáá¶ááá°ááŒááºážááŒáá·áº ááŸáááŸáá¯ááºážáá±ážááŸá°ážáá
áºáŠážá
á®ááẠáááºááá·áºá¡á
á¯á¡áá±ážáá»á¬ážáá¯ááºáá±á¬ááºáá±ááŒá®áž áááºááá·áºá¡áá¬ááẠááá¯ááºáá±á¬ááºáááºááᯠáá°á·ááá¯ááºáá°áá¯á¶ážááŒááºáááº- quorum áááá¬áá¡á Node X ááẠáá¯á¶ááŸááºááŸáá·áºáááºáááºááá·áº á¡á
á¯á¡áá±ážáá»á¬ážááŸá node á¡áá»á¬ážá
á¯áá¶á០ááááºážá¡áá»ááºá¡áááºááᯠáááºáá¶áááŸááá«áá node Y á០áááºáá±á·áá»áºáááºáá¶áááŸáááŒááºáž á ááá¯á·áá±á¬áẠY ááẠá¡áá¯ááºáá¯ááºáááºá á¡ááŒááºá¡ááŸááºá¡á¬ážááŒáá·áºá á¡áá»á¬ážá
á¯ááẠnode Y á០áá»á±á¬ááºáá¯á¶ážáá±áá±á¬ áááºáá±á·áá»áºáá»á¬ážááᯠááááºážááá¯á·áááºááŸáá·áº Y ááẠááŒááºážááá¯áá¬ážáááºá á¡áááºá quorum ááẠnode X á០áááºáá±á·áá»áºáá»á¬ážááᯠáááºáá¶áááŸááá±á¬á·ááẠááá¯ááºááŒá±á¬ááºážááᯠquorum á á¡áááá±ážáá«á node X ááá¯ááºááá¯ááºá áá¡á±á¬ááºááŒááºáᯠáá°ááá«áááá·áºáááºá
ááŸáá¯á¶ážáá¯ááºáá¶á á¬ááá¯áá»á¬ážááᯠá¡ááŒáááºáá± 20 ms ááŒáá·áº áá áºá áá¹ááá·áºáá»áŸáẠá¡ááŒááẠ50 ááá·áº ááŒáááºááŸá¯ááºážááŒáá·áºááŒáá·áº áá±ážááá¯á·áá«áááºá Java ááœááºá á¡ááŸáá¯ááºá á¯áá±á¬ááºážáá°á ááŸáá¯ááºážááŸááºááá¯ááºáá±á¬ áá±áá¹ááááºáá¬ážááá·áºááŒá¬áá»áááºááŒá±á¬áá·áº 50 ms á¡ááœááºáž áá»áŸá±á¬ááºááœáŸá¬áá¯á¶á·ááŒááºááŸá¯ááᯠá¡á¬ááá¶ááẠáááºáá²áááºá GC áá±áá¹ááááºááá·áºááŒá¬áá»áááºá¡ááœáẠáá áºááŸááºáá áºáá¯ááᯠáááºááŸááºááœáá·áºááŒá¯ááá·áº G1 á¡ááŸáá¯ááºá á¯áá±á¬ááºážáá°ááᯠá¡áá¯á¶ážááŒá¯á á€áá¯á¶á·ááŒááºááŸá¯á¡áá»áááºááᯠáá»áœááºá¯ááºááá¯á· áááŸáááá¯ááºáá«áááºá ááá¯á·áá±á¬áºá áá áºáá«áá áºáá¶ááœááºá á á¯áá±á¬ááºážáá°ááẠ50 ms áááºáá»á±á¬áºááœááºá áá±áá¹ááááºáááºá áááºážááẠááŸá¬ážááœááºážáá±á¬á¡ááŸá¬ážááŸá¬ááœá±ááœá±á·ááŸáááŸá¯ááᯠááŒá áºáá±á«áºá á±ááá¯ááºáááºá ááá¯ááá¯á·áááŒá áºááœá¬ážá á±áááºá¡ááœááºá ááŸáááŸáá¯ááºážáá±ážááŸá°ážááẠáááºážááŸáááááŸáá¯á¶ážáá¯ááºáá»ááºáááºáá±á·áá»áº áá»á±á¬ááºááœá¬ážáá±á¬á¡áá«ááœáẠá¡áá±ážááááºážááá¯ááºá áá»áá¯á·ááœááºážáá»ááºááᯠá¡á á®áááºáá¶áááºááá¯ááºáá«á áááºááá¯ááºá¡áá»á¬ážá¡ááŒá¬áž áá»á±á¬ááºááœááºááœá¬ážááŸáᬠ200 ááœáẠááŸáááŸáá¯ááºážáá±ážááááºá áá»ááºááœááºááŸá¯ááᯠáá»áœááºá¯ááºááá¯á· ááááŸáááá¯ááºáá¯á¶ááŒá áºáá«áááºá áá±á«áºá
ááá¯á·áá±á¬áº áááºááá·áº Node áá»á¬áž áá¯ááºáá±á¬ááºááŸá¯ áááºááœá¬ážáááºááᯠáá»ááºááŒááºá áœá¬ áá¬ážáááºááẠááá¯á¶áá±á¬ááºáá«á áá«ááᯠáá áºáá¯áá¯áá¯ááºááá¯á·ááá¯áááºá
áá°áá¬áž
ááá¹ááááºá¡á
á®á¡á
á¥áºááœááºá ááá¬áá»ááŸá¯á¶ážááŸá¯áá
áºáá¯ááŸáá
áºáá¯á¡á¬ážá¡áá¯á¶ážááŒá¯á ááœá±ážáá±á¬ááºááœá²á¡áá
áºáá
áºáá¯á
áááºááŒááºážááœáẠáá«áááºáá«áááºá
á¡á¯ááºá
ᯠ50 ááœáẠááœá±áá±ážááœá±áá°áá¯ááºáá±á¬ááºááá¯áááºááá¯áá«á
áá¯á·á áááºáááŸáááŸáá¯ááºážáá±ážááŸá°ážááá»ááºááœááºááŸá¯ááŒá
áºáá±á¬á¡áá«ááœáẠá¡á¯ááºá
ᯠ50 ááœáẠááœá±áá±ážááœá±áá°áá¯ááºáá±á¬ááºááá·áº Node áá»á¬ážááẠá¡á
á¬ážááá¯ážá¡á
á®á¡á
ááºááᯠááŒáá¯áááºáá¯á¶ážááŒááºááŒáá«á
áá¯á·á áá»áœááºá¯ááºááá¯á·á áááºááŸááºážáá»ááºááŸá¬ áá±áá¬á
ááºáᬠáá»áá¯á·ááœááºážááŸá¯áá
áºáá¯ááœáẠá
áá
áºáá¯ááºáá±á¬ááºááá¯ááºá
áœááºážááᯠááááºážááááºážáááºááŒá
áºáááºá áááá¡áá¶ááẠá¡ááŒá¬ážáá±áá¬á
ááºáá¬á០node ááŒá
áºáááºááŒá
áºááŒá®áž áá¯áááá¡áááºááŸá¬ áááááá±áá¬á០node ááŒá
áºáááºááᯠáá¯á¶ážááŒááºááŒáá«á
áá¯á·á á€á¡á
á®á¡á
á¥áºááᯠáá
áºááŒáááºááœá±ážáá»ááºááŒá®áž á¡á
á¯á¡á
ááºážá topology á¡ááŒá±á¬ááºážá¡áá²áá»á¬áž áááŒá±á¬ááºážááá»ááºážá ááá¯ááá¯áááºááŸá¬ áá¯á¶ááŸááºá¡áá
áºáá»á¬áž ááááºááá»ááºáž (á¡ááœááºááŸá¬ážáá«ážáááº)á á¡áá±á¬ááºážáá»ááºááœá¬ážáá«á áááºááŒáœáá±á¬áá¬á
áá¬á¡áá
áºááᯠááœá±ážáá»ááºááŒááºážáá¯ááºáááºážá
ááºááẠá¡ááŒá²áááºážá¡á±á¬ááºáá«á¡ááá¯ááºážááŒá
áºáááº- áááá¡áááºááẠáááºááŒáœáá±á¬áá¬á
áá¬ááŒá
áºáá¬áááºááŒá
áºááŒá®áž áááºážááẠá¡áá¯ááºááá¯ááºáá±á¬á·áá«áá áá¯áááá¡áááºááẠáááºááŒáœáá±á¬áá¬á
áá¬ááŒá
áºáá¬áááºááŒá
áºáááºá
á€á¡á á®á¡á á¥áºááẠuniversal algorithm ááẠááá¯ááá¯áá¯á¶ááŒááºá áááºáá»áááŒá®áž áá¬á áá¬á¡áá áºááᯠá¡áááºááœááºážáááºá¡ááœáẠá¡áá±á¬ááºážááá»ááºááœááºááŸá¯ááᯠáá¯á¶ážááŒááºááẠáá¯á¶áá±á¬ááºáá«áááºá
áá«áá±ááá·áº á¡áᯠáááºáá¬á áá¬á¡áá¯ááºáá¯ááºáá±áááºááá¯áᬠáá±á¬ááºáááºááœá±á áááºááá¯áá¬ážáááºááá²á 50 ms ááŒáá·áº áá±á¬ááºáá±á«ááºážáá»á¬ážá áœá¬áá±á¬ áá±á¬ááºáááºáá»á¬ážáᶠá¡áá»ááºá¡áááºáá±ážááá¯á·ááẠáááŒá áºááá¯ááºáá«á áá±á¬ááºáááºáá áºáŠážááẠááœá±áá±ážááœá±áá°áá áºáá¯ááœáá·áºááẠáá±á¬ááºážááá¯áá»ááºáá áºáᯠáá±ážááá¯á·áá±á¬á¡áá«á á€áá¬á áá¬ááẠá¡áá¯ááºááá¯ááºáá±á¬á·áá²á áá±á¬ááºážááá¯áá»áẠá¡áá»áááºáá¯ááºááœá¬ážáá±á¬á¡áá«ááœáẠá¡ááŒá±á¡áá±áá áºáᯠááŒá áºááá¯ááºáááºá ááá¯ááá¯á·áááŒá áºááœá¬ážá á±áááºá¡ááœáẠáá±á¬ááºáááºáá»á¬ážááẠá¡á¯ááºá á¯áá¬á áá¬ááŸáá·áº áááºážáá¡áááºááœá±ááŸá áºáá¯áá¯á¶ážááᯠáá áºááŒáá¯ááºáááºááœáá·áºááẠáá±á¬ááºážááá¯áá»ááºáá áºáá¯ááᯠááŸááºážááᬠáá±ážááá¯á·áá±á¬áºáááºáž áááºááŸáá¡áá»áááºááœáẠáááºááŒáœáá±á¬áá¬á áá¬áá áºáŠážáááºážááᬠá€áá±á¬ááºážááá¯áá»ááºááᯠáá¯á¶á·ááŒááºáááºááŒá áºáááºá áááá¯ááºážááá·áºááẠáááºááŒáœáá±á¬ áá¬á áá¬ááŒáá·áºáᬠááœá±áá±ážááœá±áá°á¡ááœááºáž áá±á¬ááºáááºááœá² áááºááœááºááŸá¯á¡á¬ážáá¯á¶ážááᯠááŒá¯áá¯ááºáá«áááºá
áááá¹áá°áá¬á áá¬áá»á¬ážááẠá¡áá»áááºá¡áááºááŒá¬ ááááºážáááºážáá¬ážááá·áº áááœá±ážáá±ážáá±á¬ ááœá±áá±ážááœá±áá°áá»á¬ážá áááºážá á®ááœáẠáááºážááá¯á·ááá¯ááºááá·áº ááœá±áá±ážááœá±áá°áá»á¬ážá¡ááœáẠáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáááºáá¶áááŸáááá·áºáá±áá¬ááŒá áºáááºá áááºááŒáœáá±á¬áá¬á áá¬áá±áá¯á¶ážááœá¬ážáá«áá áá¬á áá¬á¡áá áºááẠáááºážááááºážá á®á០ááœá±áá±ážááœá±áá°áá»á¬ážááá¯ááœáá·áºááẠáá±á¬ááºážááá¯ááŒá®áž áá¯á¶ážá áœá²áá°á¡á¬áž áá¯á¶á·ááŒááºáááºá á¡áááºá áá±á¬ááºáááºááẠáá¬á áá¬áá±á¬ááºážááŸáá·áº ááœá±áá±ážááœá±áá°áá áºáá¯ááᯠááœáá·áºáá¬ážááŒá®ážááŒá áºáá«á áá¯ááááá¯á¶á·ááŒááºááŸá¯ááᯠáá»á áºáá»á°ááŸá¯ááŒááºážááŒá áºááẠ(ááá¯áá²á·ááá¯á·áá±á¬ ááœá±áá±ážááœá±áá°ááẠááŒá®ážááŒá±á¬ááºáááºááá¯ááºáá«á áá±á¬ááºáááºá áááºáá«ááá²áá² ááŒá¯áá¯ááºáááá·áºáááº)á
á¡áá±á¬ááºážá¡áááºáááºááá¯á¡áá¯ááºáá¯ááºáá²á
áá±á¬ááºáááºáá áºáŠážááẠááá¯ááá¯á·áá±á¬á·ááŸáá·áº á€áá²á·ááá¯á·áá±á¬ á¡ááááá±á¬á·áá«áá±á¬ á¡ááœá²á·á¡á ááºážá¡ááœáẠááœá±áá±ážááœá±áá°áá áºáá¯ááœáá·áºááẠááŸáááŸáá¯ááºážáá±ážááŸá°ážáᶠáá±á¬ááºážááá¯ááŸá¯áá áºáᯠáá±ážááá¯á·áá²á·áááºááá¯ááŒáá«á áá¯á·á ááŸáááŸáá¯ááºážáá±ážááŸá°ážá á€á¡áá¬á¡á¬áž áá±á¬á·áááºááŒá®áž ááŸááºáá¬ááºáá²ááœáẠáá±á¬á·áááºáá¬ážáá±á¬ááá¬ážááœáẠáá¬ážááŸááááºá ááá¯á¡ááºáá«á ááŸáááŸáá¯ááºážáá±ážááŸá°ážááẠá€á¡áá¬á¡á¬áž ááá¯ááŸá±á¬ááºááŸá¯á០áááºááŒááŒá®áž áááŸááá¬áá±á¬ á¡áá»ááºá¡áááºáá»á¬ážááᯠááŸáááŸáá¯ááºážáá±ážááŸá°ážá ááŸááºáá¬ááºááœáẠááœá±áá±ážááœá±áá° á¡ááŒá±á¡áá±áá áºáá¯ááœáẠááááºážáááºážáá¬ážáááºá
áá±á¬ááºáááºáá
áºáŠážááẠááœá±áá±ážááœá±áá°áá
áºáá¯ááœáẠáá±áá¬ááᯠááŒá±á¬ááºážáá²ááá¯áá±á¬á¡áá«á áááºážááẠáá±á«ááºážá
ááºááŸáááŸáá¯ááºážáá±ážááŸá°ážáᶠáá±á¬ááºážááá¯áá»ááºáá
áºáᯠáá±ážááá¯á·ááŒá®áž ááŸáááŸáá¯ááºážáá±ážááŸá°ážááẠáá±áá¬á¡áá
áºááᯠááœá±áá±ážááœá±áá° á¡ááŒá±á¡áá±ááá¬ážááœáẠááŸááºáá¬ááºááœáẠáá¬ážááŸááááºááŒá
áºáááºá áááºážááẠááŸááºáááºážáááºááŒááºážááᯠááŒá®ážááŒá±á¬ááºá
á±ááẠ- ááá¯ááŸá±á¬ááºáááºážááœáẠááŸááºáááºážáááºááŒááºážáááŒá¯áá«á
áá±á¬ááºáááºáá
áºáŠážááẠáááºááŸáááœá±áá±ážáá»á±ááŸá¯áá
áºáá¯á áá
áºá
áááºáá
áºááá¯ááºážá¡ááŒá
Ạáááºážáááá¯ááºááá¯ááºááŒá±á¬ááºážáá²áá¬ážáá±á¬áá±áá¬ááᯠáá±á¬ááºážááá¯áá±á¬á¡áá«á ááŸáááŸáá¯ááºážáá±ážááŸá°ážááẠá¡á±á¬ááºáá«á¡ááá¯ááºáž áá¯ááºáá±á¬ááºáááº-
- ID ááẠááœá±áá±ážáá»á±ááŸá¯ááœáẠááŸááá±áá«áá ááá¯á·áá±á¬áẠáá±áá¬ááᯠmemory á០áá°áá«áááºá
- áááºááá¯áá®ááœáẠID áááŸááá«áá áá»á±á¬ááºáá¯á¶ážáá±áá±á¬áá±áá¬ááᯠááá¯ááŸá±á¬ááºááŸá¯á¡ááŸááºá¡áá¬ážáá»á¬ážá០áááºááŒááŒá®áž áááºááá¯áá®ááŸáááŒá®ážáá¬ážá¡áá¬áá»á¬ážááŸáá·áº áá±á«ááºážá ááºáᬠááááºááᯠáá¯á¶ážá áœá²áá°á¡á¬áž áá±ážáá«áááºá
ááá¯á·ááŒá±á¬áá·áºá áá±á¬ááºáááºááẠáááºážáááá¯ááºááá¯ááºááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠáááºááá¯ááºáá±á¬áºáááºáž á¡ááŒá¬ážáá±á¬ááºáááºáá»á¬ážááẠá¡ááá¯áá«ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠááŸáááŸáá¯ááºážáá±ážááŸá°ážáááŸááºáá¬ááºááœááºáᬠááááºážáááºážáá¬ážáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááᯠCassandra node áá»á¬ážááœáẠáááœá±á·ááŸáááá±ážáá«á
áááá¯ááºážááá·áºá áááááŒá¯áá±ážááá¯á·ááá·áºá¡áá«á áááºáá±á¬ááºááŸá¯áááŸááºáá¬ááºááœááºááŸááá±á¬ á¡ááŒá±á¡áá±ááᯠááŸááºáááºážááŸááºáá¬ážááá·áºá¡áá¯ááºááœáẠááŸáááŸáá¯ááºážáá±ážááŸá°ážá ááááºážáááºážááŒá®áž Cassandra ááá¯ááŸá±á¬ááºááŸá¯ááá¯á· ááŸááºáááºážáááºáá¬ážáá±á¬ á¡ááœá²á¡ááŒá
Ạáá±ážááá¯á·áááºá á
ááá¯ážááá¯ááºáá»á¬ážááẠá€áááºáá±á·áá»áºááᯠá¡ááºááẠ(áá¯á¶ážá) á¡áá¯á¶ážáá»ááŒá±á¬ááºáž áá±áá»á¬á
á±áááºá¡ááœáẠááá¯á¡ááºáá±á¬ á¡áá¬á¡á¬ážáá¯á¶ážááᯠáá¯ááºáá±á¬ááºááŒá®áž áá±á¬á·ááá±á¬ááºáá»á¬ážáá¯ááºááŒá®áž áá±á¬ááºáááºáᶠááœá±áá±ážááœá±áá° á¡á±á¬ááºááŒááºááŒá±á¬ááºáž á¡áááºááŒá¯áá±ážáá±á¬ ááŸáááŸáá¯ááºážáá±ážááŸá°ážáᶠáá¯á¶á·ááŒááºáá»ááºááŒááºáá±ážáá«áááºá
áá±á¬ááºááŒááºááœá²áááºá ááŸáááŸáá¯ááºážáá±ážááŸá°ážááẠááœá±áá±ážááœá±áá°á¡ááŒá±á¡áá±á០ááááºážááá¯ááºáá¬ážáá±á¬ áááºááá¯áá®ááᯠáááºááŸá¬ážáááºáᬠááá¯á¡ááºáááºá
á¡áááºáá±á¬áºááŒáá« ááá¯ážáááºááŸá¯áá»á¬ážá ááááºá¡áá±ááŒáá·áº ACID á¡ááŒá±áá¶áá°áá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáá±á¬ááºááœááºáá²á·áá«áááºá
- ááŒááºáá±á¬áºáá¬. á€áááºááŸá¬ ááœá±áá±ážááœá±áá°á áá áºááœáẠáá áºá áááºáá áºááá¯ááºážááŸááºáááºážáááºáááºááá¯ááºááŒá±á¬ááºáž á¡á¬ááá¶áá»ááºááŒá áºááŒá®áž áááºážááá¯ááºáááºážááœá²áá»á¬ážá¡á¬ážáá¯á¶ážááᯠááŒá®ážááŒá±á¬ááºá á±ááẠááá¯á·ááá¯áẠááŒá®ážááŒá±á¬ááºáááºááá¯ááºááŒá±á¬ááºáž á¡á¬ááá¶áá»ááºááŒá áºáááºá Cassandra ááœáẠlogged batch ááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠá€áá°ááᯠááá¯ááºáá¬áá«áááºá
- ááŸá±á·áá±á¬ááºáá®ááœááºááŸá¯. á¡á±á¬ááºááŒááºáá±á¬ ááœá±áá±ážááœá±áá°áá áºáá¯á á®ááẠá¡áááá¹áá«ááºá¡á¬ážááŒáá·áº ááŸááºáááºáá±á¬ááááºáá»á¬ážááá¯áᬠááŸááºáááºážáááºáá«áááºá ááœá±áá±ážááœá±áá°áá áºáá¯ááœáá·áºááŒá®áž áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá á¡á áááºá¡ááá¯ááºážááᯠáá¯ááºáá±á¬ááºááŒá®ážáá±á¬ááºá ááááºááẠáááŸááºáááºááŒá±á¬ááºáž ááœá±á·ááŸááá«áá ááŒááºááŸáá·áºááŒááºážááᯠáá¯ááºáá±á¬ááºáá«áááºá
- áá®ážááá·áºáá¬ážááŒááºážá ááœá²áá¬ážááŒááºáž. ááœá±áá±ážááœá±áá°ááᯠáá¯ááºáá±á¬ááºáá±á¬á¡áá«á áá áºááŒáá¯ááºáááºáž ááœá±áá±ážááœá±áá°áá»á¬ážááẠáááºážáááááºááᯠáááááá¯ááºá á±ááá·áºáá«á ááŸáááŸáá¯ááºážáá±ážááŸá°ážáá±á«áºááŸá á¡ááá¯ážááŒááºáá±á¬áá±á¬á·ááá±á¬ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á ááŒáá¯ááºááá¯ááºáá±á¬ ááœá±áá±ážááœá±áá°áá»á¬ážááᯠáá®ážááŒá¬ážááœá²áá¬ážáááºá ááœá±áá±ážááœá±áá°ááŒááºáááœááºáááºááŸá¯ááŒááºážá¡ááœááºá áá®ážááŒá¬ážááœá²áá¯ááºááŒááºážáááá¬áááᯠRead Committed á¡ááá·áºááœááºááœá±á·ááŸáááááºá
- áááºááŒáááºááŒááºáž. á¡á±á¬ááºááŒá±á¡ááá·áºááœáẠááŒá¿áá¬áá»á¬ážâá áá áºáá»ááºááŒááºážá áá¬á·ááºáá²áá»áá¯á·ááœááºážááŸá¯âáá¯ááºáááºážáá±á¬ááºááœááºááŸá¯áá»á¬áž ááŒááºáááºá áááºáá±á¬á¡áá«ááœáẠá¡á±á¬ááºááŒááºá áœá¬ááŒá®ážáá¯á¶ážááœá¬ážáá±á¬ á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááááºážááááºážáá¬ážááá·áºáááºá
á¡ááœáŸááºážáá»á¬ážááŒáá·áºáááºááŒááºážá
ááá¯ážááŸááºážáá²á· á á¬ážááœá²ááᯠááŒáá·áºáá¡á±á¬ááºá
CREATE TABLE photos (
id bigint primary key,
owner bigint,
modified timestamp,
âŠ)
áááºážááœáẠID (áááºááá±á¬á·)á ááá¯ááºááŸááºááŸáá·áº ááŒá¯ááŒááºááœááºážáá¶ááá·áºáááºá áœá²áá áºáᯠáá«ááŸááááºá áááºááẠá¡ááœááºááá¯ážááŸááºážáá±á¬ áá±á¬ááºážááá¯ááŸá¯áá áºáᯠááŒá¯áá¯ááºááẠááá¯á¡ááºááẠ- "áá±á¬ááºáá¯á¶ážáá±á·á¡ááœááº" ááŒá±á¬ááºážáá²ááá·áºáááºá áœá²ááŒáá·áº ááá¯ááºááŸááºááŸá áá±áá¬ááᯠááœá±ážáá»ááºáá«á
SELECT *
WHERE owner=?
AND modified>?
ááá¯ááá¯á·áá±á¬áá±ážááœááºážááᯠáá»ááºááŒááºá áœá¬áá¯ááºáá±á¬ááºááá¯ááºáááºá ááá¹áááẠSQL DBMS ááœáẠáá±á¬áºáá¶áá»á¬áž (ááá¯ááºááŸááºá ááŒááºáááºáá¬ážáááº) ááŒáá·áº á¡ááœáŸááºážáá áºáá¯áááºáá±á¬ááºááẠááá¯á¡ááºáááºá ááá¯áá»áœááºá¯ááºááá¯á·á ACID á¡á¬ááá¶áá»ááºááŸááá±á¬ááŒá±á¬áá·áº áááºážááá¯áá»áœááºá¯ááºááá¯á·á¡áá±á¬áºáá±ážááœááºáá°á áœá¬ááŒá¯áá¯ááºááá¯ááºáá«áááºá
C*One ááœáẠá¡ááœáŸááºážáá»á¬áž
ááŸááºáááºáž ID ááẠá¡ááááá±á¬á·áá»ááºááŒá áºááá·áº áá¬ááºáá¯á¶áá»á¬ážáá«ááá·áº á¡áááºážá¡ááŒá áºááá¬ážáá áºáá¯ááŸááááºá
á¡ááœáŸááºážáá
áºáá¯á¡ááœááºá C*One ááẠáá°áááºážáá±á¬áºáá®ááŒá
áºáá±á¬ ááá¬ážá¡áá
áºáá
áºáá¯ááᯠáááºáá®ážáááºá áá±á¬á·ááẠá¡ááœáŸááºážáá±á¬áºááŒáá»ááºááŸáá·áº á¡áá°áá°áááºááŒá
áºááŒá®áž á¡áááºážá¡ááŒá
áºááá¬ážá០ááŸááºáááºážá á¡ááááá±á¬á·áááºáž áá«áááºáááºá
ááᯠ"áá±á¬ááºáá¯á¶ážáá±á·á¡ááœáẠááá¯ááºááŸááº" á¡ááœáẠáá±ážááŒááºážáá»ááºááᯠá¡ááŒá¬ážááá¬ážá០ááœá±ážáá»ááºááŸá¯á¡ááŒá
ẠááŒááºáááºáá±ážáá¬ážááá¯ááºáááº-
SELECT * FROM i1_test
WHERE owner=?
AND modified>?
á¡áááºážá¡ááŒá áºááá¬ážáá¬ááºáá¯á¶áá»á¬ážááŸáá·áº á¡ááœáŸááºážááá¬áž i1 ááŸá áá±áá¬áá»á¬ážá áá®ááœááºááŸá¯ááᯠááŸáááŸáá¯ááºážáá±ážááŸá°ážá០á¡ááá¯á¡áá»á±á¬áẠááááºážááááºážáá¬ážáááºá data schema áá áºáá¯áááºážááá¯á¡ááŒá±áá¶á ááŒá±á¬ááºážáá²ááŸá¯áá áºáá¯áááºáá¶áááŸááá±á¬á¡áá«ááœáẠááŸáááŸáá¯ááºážáá±ážááŸá°ážááẠáááºáááá¬ážááœááºáá¬áá áááá¹áá°áá»á¬ážáá« á¡ááŒá±á¬ááºážá¡áá²áá áºáá¯ááᯠáá¯ááºáá±ážááŒá®áž ááááºážáááºážáá«áááºá á¡ááœáŸááºážááá¬ážáá±á«áºááœáẠáá±á¬ááºáááºáá¯ááºáá±á¬ááºááŸá¯áá»á¬áž áá¯ááºáá±á¬ááºááŒááºážáááŸááá«á ááŸááºáááºážáá»á¬ážááᯠááááºáá áá±á¬á·ááá±á¬ááºáá»á¬ážááᯠá¡áá¯á¶ážáááŒá¯áá«á ááá¯ááá¯áááºááŸá¬á ááœáŸááºážááááºážáá»á¬ážááá·áºááŒááºážááẠá¡áááºážá¡ááŒá áºáá»á¬áž áá®ážáá«ážááᯠá á¬ážáá¯á¶ážááŒá®áž ááŒá¯ááŒááºááœááºážáá¶ááŸá¯ á¡ááŸáááºá¡áá¯ááºááᯠá¡áá¯á¶ážáá»ááŒááºážá¡áá±á«áº áá¯á¶ážááááºáá±á¬ááºááŸá¯ áááŸááá±á
ACID ááᯠá¡áá¯á¶ážááŒá¯á SQL-like indexes áá»á¬ážááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºáá²á·áááºá áááºážááá¯á·ááẠáááááºáááºážá á¡ááœááºáááºááá¯ááºáá±á¬á ááŒááºáááºáááºá áá±á«ááºážá ááºááá¯ááºáá±á¬á CQL query language ááœáẠáááºáá±á¬ááºáá¬ážáááºá á¡ááœáŸááºážáá»á¬ážááᯠáá¶á·ááá¯ážáááºá¡ááœáẠá¡ááá®áá±ážááŸááºážáá¯ááºááᯠááŒá±á¬ááºážáá²ááẠáááá¯á¡ááºáá«á á¡áá¬á¡á¬ážáá¯á¶ážááẠSQL ááœááºáá²á·ááá¯á·ááá¯ážááŸááºážáááºá á¡áá±ážá¡ááŒá®ážáá¯á¶ážááá±á¬á·á á¡ááœáŸááºážááááºážáá»á¬ážááẠáá°áááœá±áá±ážááœá±áá°ááá¬ážááá¯á· ááŒá¯ááŒááºááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážá áá¯ááºáá±á¬ááºááŸá¯á¡ááŒááºááŸá¯ááºážááᯠáááááá¯ááºá á±áá«á
áá¬ááŒá áºááœá¬ážáá¬áá²
áá»áœááºá¯ááºááá¯á·ááẠC*One ááᯠááœááºáá²á·ááá·áº áá¯á¶ážááŸá áºá áá®ááœááºáá²á·ááŒá®áž á á®ážááœá¬ážááŒá áºáááºáááºááŸá¯á¡ááŒá Ạá áááºáá²á·áááºá
á¡áá¯á¶ážááŸá¬ áá«ááá¯á· áá¬ááá²á·áá²á áá°ááŸá¯ááœááºáááºááŸá á¡áá±ážááŒá®ážáá¯á¶ážáá±áá¬á¡áá»áá¯ážá¡á á¬ážáá»á¬ážáá²á០áá áºáá¯ááŒá áºáá±á¬ áá¬ááºáá¯á¶áá¯ááºáá±á¬ááºááŒááºážááŸáá·áº ááá¯ááŸá±á¬ááºááŸá¯á áá áºááœá²á á¥ááá¬ááᯠá¡áá¯á¶ážááŒá¯á áááºážááᯠá¡áá²ááŒááºááŒáá«á áá¯á·á áá»áœááºá¯ááºááá¯á·ááẠáá¬ááºáá¯á¶áá»á¬ážá á¡áá±á¬ááºážáá»á¬ážá¡ááŒá±á¬ááºážááᯠáááŒá±á¬áá² áááºáá¬-á¡áá»ááºá¡ááẠá¡áá»áá¯ážáá»áá¯ážá¡ááŒá±á¬ááºáž ááŒá±á¬áá±áá«áááºá ááá¯á¡áá« Odnoklassniki ááœáẠááá¯áá²á·ááá¯á·áá±á¬ ááŸááºáááºážáá»á¬áž áá®áá®áᶠ20 ááá·áºááŸáááŒá®áž á áá áºááẠáá áºá áá¹ááá·áºáá»áŸáẠ80 read requests 8 á data ááŒá¯ááŒááºááœááºážáá¶ááŸá¯ ááŸáá·áºáááºá ááºáá±á¬ áá áºá áá¹ááá·áºáá»áŸáẠACID ááœá±ááœáŸá²ááŸá¯ XNUMX á¡áá áá¯ááºáá±á¬ááºáá±ážáá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠSQL ááᯠáá¯á¶áá°ááœá¬ážááŸá¯á¡áá»áẠ= 1 ááŒáá·áºá¡áá¯á¶ážááŒá¯áá±á¬á¡áá« (ááá¯á·áá±á¬áº RAID 10 ááœááº)á áá¬ááºáá¯á¶ááá¯ááºáá°ážááŸá¯áá¯á¶á á¶ááᯠMicrosoft SQL Server áááºáááºááá·áº á áẠ32 áá¯á¶ážá á¡á á¯á¡áá±ážááœáẠááááºážáááºážáá¬ážáááºá á¡áááºááááºážáááºážááŒááºážá¡ááœáẠáá¬áᬠáá áá¯ááá¯áááºáž ááœá²áá±áá±ážáá¬ážáááºá á á¯á á¯áá±á«ááºáž áááºááá¯ážááŒá®ážáá¬áž á¡á á®áž á áá áá áºáá»áááºáááºážááŸá¬áááºá á áá áºááẠá¡áá¶ááá«áá² á¡ááá·áºáááºááŸááºáá¬ážáá±á¬áááºááŒáá·áº áá¯ááºáá±á¬ááºáááºá
á áá áºá¡áá áºááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááŒá®ážáá±á¬ááºá áá±áá¬á ááºáá¬áá áºáá¯á á®ááŸá áááá¹áá°áá°ážáá°ááŒááºážá¡áá»áẠ= 3 ááᯠáááŸááá²á·áá«áááºá á áá áºááœáẠCassandra ááá¯ááŸá±á¬ááºááŸá¯á¡ááŸáẠ63 ááŸáá·áº ááŸáááŸáá¯ááºážáá±ážá áẠ6 áᯠáá«áááºááŒá®áž á á¯á á¯áá±á«ááºáž áá¬áᬠ69 áᯠáá«áááºáááºá áá«áá±ááá·áº áá®á ááºááœá±á á¡áá»á¬ážááŒá®ážá á»á±ážáááºáá¬áááºá áá°ááá¯á·áá²á· á á¯á á¯áá±á«ááºážáá¯ááºáá»á ááááºá SQL á áá áºáá áºáá¯áá²á· áá¯ááºáá»á ááááºáá²á· 30% áá±á¬ááºááŸááá«áááºá áá áºáá»áááºáááºážááŸá¬áááº, áááºááᯠ30% ááœááºááááºážááááºážáá¬ážáááºá
C*One ááááá«ááºážááŸáá·áºá¡áá°á latency áááºáž áá»á±á¬á·áá»ááœá¬ážáááº- SQL ááœáẠá á¬áá±ážááŒááºážáá¯ááºáá±á¬ááºáá»ááºááẠ4,5 ms ááá·áºááŒá¬áááºá C*One ááœáẠ- 1,6 ms ááá·áºá ááœá±áá±ážááœá±áá°ááŒá¬áá»áááºááẠáá»áŸááºážáá»áŸ 40 ms áááºáááºážáááºá commit ááᯠ2 ms ááœááºááŒá®ážá á®ážáááºá áááºááŸá¯ááŒá®ážáá±ážááŒá¬áá»áááºááẠáá»ááºážáá»áŸ 2 ms ááŒá áºáááºá 99th percentile - 3-3,1 ms áá¬ááŸáááŒá®ážá á¡áá»áááºáá¯ááºááá·áºá¡áá±á¡ááœááºááẠá¡á 100 áá»á±á¬á·áá»ááœá¬ážááẠ- á¡á¬ážáá¯á¶ážááẠáááºááŒá±ážáá±ážááá·áº áá»ááºáá»ááºááŒáá·áºááŒáá·áºá¡áá¯á¶ážááŒá¯ááŸá¯ááŒá±á¬áá·áºááŒá áºáááºá
ááá¯á¡áá»áááºááœááºá SQL Server node á¡áá»á¬ážá
á¯ááᯠáá»ááºááááºážááá¯ááºáá«ááŒá®á áá¯ááºáá¯ááºá¡áá
áºáá»á¬ážááẠC*One ááᯠá¡áá¯á¶ážááŒá¯ááᬠáá¯ááºáá¯ááºáá»ááºááŸááááºá áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·á cloud ááœáẠá¡áá¯ááºáá¯ááºááẠC*One ááᯠá¡áááºááŒá±á¡á±á¬ááºááŒá¯áá¯ááºáá¬ážáá«áááºá
ááᯠáá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·á á¡ááŒá¬ážáá±á¬ ááá¯ááŸá±á¬ááºáááºážáá»á¬ážááᯠcloud ááá¯á· ááœáŸá²ááŒá±á¬ááºážááẠáá¯ááºáá±á¬ááºáá±ááẠ- ááá¯á·áá±á¬áº áááºážááẠáá¯á¶ážáááœá²ááŒá¬ážááŒá¬ážáá¬ážáá±á¬ áá¬ááºáááºážááŒá
áºáááºá
source: www.habr.com