æè¿ãŸã§ãOdnoklassniki ã¯ãªã¢ã«ã¿ã€ã ã§åŠçãããçŽ 50 TB ã®ããŒã¿ã SQL Server ã«ä¿åããŠããŸããã ãã®ãããªããªã¥ãŒã ã®å ŽåãSQL DBMS ã䜿çšããŠãé«éã§ä¿¡é Œæ§ãé«ããããã«ã¯ããŒã¿ã»ã³ã¿ãŒã®èé害æ§ã®ããã¢ã¯ã»ã¹ãæäŸããããšã¯ã»ãšãã©äžå¯èœã§ãã éåžžããã®ãããªå Žå㯠NoSQL ã¹ãã¬ãŒãžã® XNUMX ã€ã䜿çšãããŸããããã¹ãŠã NoSQL ã«è»¢éã§ããããã§ã¯ãããŸããããšã³ãã£ãã£ã«ãã£ãŠã¯ ACID ãã©ã³ã¶ã¯ã·ã§ã³ä¿èšŒãå¿
èŠã§ãã
ããã«ãããNewSQL ã¹ãã¬ãŒãžãã€ãŸã NoSQL ã·ã¹ãã ã®ãã©ãŒã«ã ãã¬ã©ã³ã¹ãã¹ã±ãŒã©ããªãã£ãããã©ãŒãã³ã¹ãæäŸããªãããåæã«åŸæ¥ã®ã·ã¹ãã ã§ããªãã¿ã® ACID ä¿èšŒãç¶æãã DBMS ã䜿çšããããã«ãªããŸããã ãã®æ°ããã¯ã©ã¹ã®å®çšçãªç£æ¥ã·ã¹ãã ã¯ã»ãšãã©ãªããããç§ãã¡ã¯ãã®ãããªã·ã¹ãã ãç¬èªã«å®è£ ããåçšéçšãéå§ããŸããã
ãããã©ã®ããã«æ©èœããäœãèµ·ãã£ãã®ã - ã«ããã®äžããèªã¿ãã ããã
çŸåšãOdnoklassniki ã®æéèŠèŽè
æ°ã¯ 70 äžäººãè¶
ããŠããŸãã ç§ãã¡ã¯
ç§ãã¡ã¯ 2010 幎ãã Cassandra ã䜿çšããŠãããããŒãžã§ã³ 0.6 ããå§ããŠããŸãã çŸåšãæ°åã®ã¯ã©ã¹ã¿ãŒã皌åããŠããŸãã æéã®ã¯ã©ã¹ã¿ãŒã¯ 4 ç§ããã 260 äžä»¥äžã®ãªãã¬ãŒã·ã§ã³ãåŠçããæ倧ã®ã¯ã©ã¹ã¿ãŒã¯ XNUMX TB ãä¿åããŸãã
ãã ãããããã¯ãã¹ãŠã¹ãã¬ãŒãžã«äœ¿çšãããéåžžã® NoSQL ã¯ã©ã¹ã¿ãŒã§ãã
SQL Server ããŒãéã§ããŒã¿ãåæ£ããã«ã¯ãåçŽæ¹åãšæ°Žå¹³æ¹åã®äž¡æ¹ã䜿çšããŸããã
ã·ã£ãŒãã£ã³ã°ãš SQL ã®é«éåã®ãããã§:
- ã·ã£ãŒãã£ã³ã°æã«ãšã³ãã£ã㣠ID ãå¥ã®ãµãŒããŒã«é 眮ãããå¯èœæ§ããããããå€éšããŒå¶çŽã¯äœ¿çšããŸããã
- DBMS CPU ã«ãããªãè² è·ãããããããã¹ãã¢ã ããã·ãŒãžã£ãšããªã¬ãŒã¯äœ¿çšããŸããã
- äžèšã®ãã¹ãŠãšãã£ã¹ã¯ããã®ã©ã³ãã ãªèªã¿åããå€ããããJOIN ã¯äœ¿çšããŸããã
- ãã©ã³ã¶ã¯ã·ã§ã³ã®å€ã§ã¯ãRead Uncommitted åé¢ã¬ãã«ã䜿çšããŠãããããã¯ã軜æžããŸãã
- åœç€Ÿã¯çããã©ã³ã¶ã¯ã·ã§ã³ã®ã¿ãå®è¡ããŸã (å¹³åã㊠100 ããªç§æªæº)ã
- ãããããã¯ãå€æ°çºçãããããè€æ°è¡ã® UPDATE ããã³ DELETE ã¯äœ¿çšããŸãããäžåºŠã« XNUMX ã€ã®ã¬ã³ãŒãã®ã¿ãæŽæ°ããŸãã
- ç§ãã¡ã¯åžžã«ã€ã³ããã¯ã¹ã«å¯ŸããŠã®ã¿ã¯ãšãªãå®è¡ããŸããç§ãã¡ã«ãšã£ãŠããã« ããŒãã« ã¹ãã£ã³ ãã©ã³ã䜿çšããã¯ãšãªã¯ãããŒã¿ããŒã¹ã«éè² è·ãããããããŒã¿ããŒã¹ã倱æããããšãæå³ããŸãã
ãããã®æé ã«ãããSQL ãµãŒããŒããã»ãŒæ倧ã®ããã©ãŒãã³ã¹ãåŒãåºãããšãã§ããŸããã ããããåé¡ã¯ãŸããŸãå€ããªããŸããã ããããèŠãŠã¿ãŸãããã
SQL ã«é¢ããåé¡
- èªå·±èšè¿°ã®ã·ã£ãŒãã£ã³ã°ã䜿çšãããããæ°ããã·ã£ãŒãã®è¿œå ã¯ç®¡çè ãæåã§è¡ããŸããã ãã®éãã£ãšãã¹ã±ãŒã©ãã«ãªããŒã¿ ã¬ããªã«ã¯ãªã¯ãšã¹ããåŠçããŠããŸããã§ããã
- ããŒãã«å ã®ã¬ã³ãŒãæ°ãå¢ãããšãæ¿å ¥ãšå€æŽã®é床ãäœäžããŸããæ¢åã®ããŒãã«ã«ã€ã³ããã¯ã¹ãè¿œå ããå Žåãé床ã¯äžå®ã®å²åã§äœäžããŸããã€ã³ããã¯ã¹ã®äœæãšåäœæã«ã¯ããŠã³ã¿ã€ã ãçºçããŸãã
- å®çšŒåç°å¢ã§ SQL Server çšã® Windows ãå°é䜿çšãããšãã€ã³ãã©ã¹ãã©ã¯ãã£ç®¡çãå°é£ã«ãªããŸã
ããããäž»ãªåé¡ã¯
èé害æ§
åŸæ¥ã® SQL ãµãŒããŒã¯ãã©ãŒã«ã ãã¬ã©ã³ã¹ãäžååã§ãã ããŒã¿ããŒã¹ ãµãŒããŒã 20 å°ãããªãã64 幎㫠200 åé害ãçºçãããšããŸãã ãã®éããµã€ã㯠XNUMX åéããŠã³ããŸãããããã¯èš±å®¹ç¯å²ã§ãã ãµãŒããŒã XNUMX å°ããå Žåããµã€ã㯠XNUMX é±éã« XNUMX åããŠã³ããŸãã ãŸãããµãŒããŒã XNUMX å°ããå Žåããµã€ãã¯æ¯é±çšŒåããããã§ã¯ãããŸããã ããã¯åé¡ã§ãã
SQL ãµãŒããŒã®ãã©ãŒã«ã ãã¬ã©ã³ã¹ãåäžãããã«ã¯ã©ãããã°ããã§ãããã? ãŠã£ãããã£ã¢ã¯ç§ãã¡ã«æ§ç¯ãå§ããŠããŸã
ããã«ã¯ãå€æ°ã®éè€ãå ãã¡ã€ããŒãå ±æã¹ãã¬ãŒãžãªã©ã®é«äŸ¡ãªæ©åšãå¿ èŠã§ãããŸããäºåãå«ããŠã確å®ã«æ©èœããŸãããã¹ã€ããã³ã°ã®çŽ 10% ã¯ãã¡ã€ã³ ããŒãã®èåŸã«ããé»è»ã®ããã«ãããã¯ã¢ãã ããŒãã®é害ã§çµäºããŸãã
ãããããã®ãããªé«å¯çšæ§ã¯ã©ã¹ã¿ãŒã®äž»ãªæ¬ ç¹ã¯ãã¯ã©ã¹ã¿ãŒãé 眮ãããŠããããŒã¿ã»ã³ã¿ãŒã«é害ãçºçããå Žåã«å¯çšæ§ããŒãã«ãªãããšã§ãã ãªããã¯ã©ã¹ããã«ã¯ XNUMX ã€ã®ããŒã¿ ã»ã³ã¿ãŒãããããã®ãã¡ã® XNUMX ã€ã§å®å šãªé害ãçºçããå Žåã§ãéçšã確ä¿ããå¿ èŠããããŸãã
ãã®ããã«äœ¿çšã§ããã®ã¯ã
ããããã¹ãŠã®åé¡ã«ã¯ææ¬çãªè§£æ±ºçãå¿ èŠã§ãããç§ãã¡ã¯ãããã詳现ã«åæãå§ããŸããã ããã§ã¯ãSQL Server ãäž»ã«è¡ãããšãã€ãŸããã©ã³ã¶ã¯ã·ã§ã³ã«ã€ããŠç解ããå¿ èŠããããŸãã
ç°¡åãªååŒ
å¿çš SQL ããã°ã©ãã®èŠ³ç¹ãããã¢ã«ãã ã«åçãè¿œå ãããšããæãåçŽãªãã©ã³ã¶ã¯ã·ã§ã³ãèããŠã¿ãŸãããã ã¢ã«ãã ãšåçã¯å¥ã®ãã¬ãŒãã«ä¿ç®¡ãããŸãã ã¢ã«ãã ã«ã¯å ¬éãã©ãã«ãŠã³ã¿ãŒããããŸãã ãã®ãããªãã©ã³ã¶ã¯ã·ã§ã³ã¯æ¬¡ã®ã¹ãããã«åå²ãããŸãã
- ã¢ã«ãã ãããŒã§ããã¯ããŸãã
- åçããŒãã«ã«ãšã³ããªãäœæããŸãã
- åçã«å ¬éã¹ããŒã¿ã¹ãããå Žåã¯ãã¢ã«ãã ã«å ¬éåçã«ãŠã³ã¿ãŒãè¿œå ããã¬ã³ãŒããæŽæ°ããŠãã©ã³ã¶ã¯ã·ã§ã³ãã³ãããããŸãã
ãŸãã¯ç䌌ã³ãŒãã§:
TX.start("Albums", id);
Album album = albums.lock(id);
Photo photo = photos.create(âŠ);
if (photo.status == PUBLIC ) {
album.incPublicPhotosCount();
}
album.update();
TX.commit();
ããžãã¹ ãã©ã³ã¶ã¯ã·ã§ã³ã®æãäžè¬çãªã·ããªãªã¯ãããŒã¿ããŒã¹ããã¢ããªã±ãŒã·ã§ã³ ãµãŒããŒã®ã¡ã¢ãªã«ããŒã¿ãèªã¿åããäœããå€æŽããæ°ããå€ãããŒã¿ããŒã¹ã«ä¿åããããšã§ãã éåžžããã®ãããªãã©ã³ã¶ã¯ã·ã§ã³ã§ã¯ãããã€ãã®ãšã³ãã£ãã£ãããã€ãã®ããŒãã«ãæŽæ°ããŸãã
ãã©ã³ã¶ã¯ã·ã§ã³ã®å®è¡æã«ãå¥ã®ã·ã¹ãã ããã®åãããŒã¿ã®å€æŽãåæã«çºçããå¯èœæ§ããããŸãã ããšãã°ãã¹ãã 察çã¯ããŠãŒã¶ãŒãäœããã®åœ¢ã§çãããããããŠãŒã¶ãŒã®åçã¯ãã¹ãŠå
¬éãã¹ãã§ã¯ãªããã¢ãã¬ãŒãã®ããã«éä¿¡ããå¿
èŠããããšå€æããå ŽåããããŸããããã¯ãphoto.status ãå¥ã®å€ã«å€æŽãã察å¿ããã«ãŠã³ã¿ããªãã«ããããšãæå³ããŸãã æããã«ããã®æäœãã¢ããªã±ãŒã·ã§ã³ã®ã¢ãããã¯æ§ãšç«¶åããå€æŽã®åé¢ã®ä¿èšŒãªãã«è¡ãããå Žåã¯ã次ã®ããã«ãªããŸãã
XNUMX ã€ã®ãã©ã³ã¶ã¯ã·ã§ã³å
ã§ããŸããŸãªããžãã¹ ãšã³ãã£ãã£ãæäœãããåæ§ã®ã³ãŒããå€æ°ãOdnoklassniki ã®ååšå
šäœã«ããã£ãŠèšè¿°ãããŠããŸããã ãã NoSQL ãžã®ç§»è¡ã®çµéšã«åºã¥ã
ãã®ä»ã®ãåæ§ã«éèŠãªèŠä»¶ã¯æ¬¡ã®ãšããã§ãã
- ããŒã¿ã»ã³ã¿ãŒã«é害ãçºçããå Žåãæ°ããã¹ãã¬ãŒãžãžã®èªã¿åããšæžã蟌ã¿ã®äž¡æ¹ãå©çšå¯èœã§ãªããã°ãªããŸããã
- çŸåšã®éçºã¹ããŒããç¶æããŸãã ã€ãŸããæ°ãããªããžããªã䜿çšããå Žåãã³ãŒãã®éã¯ã»ãŒåãã§ããå¿ èŠãããããªããžããªã«äœãè¿œå ãããã競åã解決ããããã»ã«ã³ã㪠ã€ã³ããã¯ã¹ãç¶æãããããããã®ã¢ã«ãŽãªãºã ãéçºããå¿ èŠã¯ãããŸããã
- æ°ããã¹ãã¬ãŒãžã®é床ã¯ãããŒã¿ã®èªã¿åãæãšãã©ã³ã¶ã¯ã·ã§ã³åŠçæã®äž¡æ¹ã§éåžžã«é«éã§ããå¿
èŠããããŸãããã€ãŸããåŠè¡çã«å³å¯ã§æ®éçã§ã¯ããããããšãã°æ¬¡ã®ãããªé
ããœãªã¥ãŒã·ã§ã³ã¯äºå®äžé©çšã§ããŸããã§ããã
XNUMXãã§ãŒãºã³ããã . - èªåãªã³ã¶ãã©ã€ã¹ã±ãŒãªã³ã°ã
- ç¹æ®ãªããŒããŠã§ã¢ãè³Œå ¥ããå¿ èŠããªããéåžžã®å®äŸ¡ãªãµãŒããŒã䜿çšããŸãã
- èªç€Ÿéçºè ã«ããã¹ãã¬ãŒãžéçºã®å¯èœæ§ã èšãæããã°ãç¬èªã®ãœãªã¥ãŒã·ã§ã³ãŸãã¯ãªãŒãã³ãœãŒã¹ã®ãœãªã¥ãŒã·ã§ã³ãã§ããã° Java ãåªå ãããŸããã
決æã決æ
èãããã解決çãåæããçµæã次㮠XNUMX ã€ã®ã¢ãŒããã¯ãã£ã®éžæè¢ãèããããŸããã
XNUMX ã€ç®ã¯ãä»»æã® SQL ãµãŒããŒã䜿çšããŠãå¿ èŠãªãã©ãŒã«ã ãã¬ã©ã³ã¹ãã¹ã±ãŒãªã³ã° ã¡ã«ããºã ããã§ãŒã«ãªãŒã㌠ã¯ã©ã¹ã¿ãŒã競å解決ãããã³ä¿¡é Œæ§ãé«ãé«éãªåæ£å ACID ãã©ã³ã¶ã¯ã·ã§ã³ãå®è£ ããããšã§ãã ç§ãã¡ã¯ããã®ãªãã·ã§ã³ã¯éåžžã«ç°¡åã§ã¯ãªããåŽåéçŽçã§ãããšè©äŸ¡ããŸããã
XNUMX çªç®ã®ãªãã·ã§ã³ã¯ãã¹ã±ãŒãªã³ã°ããã§ãŒã«ãªãŒã㌠ã¯ã©ã¹ã¿ãŒã競å解決ãå®è£
ãããæ¢è£œã® NoSQL ã¹ãã¬ãŒãžã䜿çšãããã©ã³ã¶ã¯ã·ã§ã³ãš SQL ãèªåã§å®è£
ããããšã§ãã äžèŠãããšãACID ãã©ã³ã¶ã¯ã·ã§ã³ã¯ãã¡ããã®ããšãSQL ãå®è£
ããäœæ¥ããããäœå¹Žããããäœæ¥ã®ããã«èŠããŸãã ããããã®åŸãç§ãã¡ãå®éã«äœ¿çšããŠãã SQL æ©èœã»ãã㯠ANSI SQL ãšã¯ããé¢ããŠããããšã«æ°ã¥ããŸããã
ã«ãµã³ãã©ãšCQL
ã§ã¯ãCassandra ã®äœãèå³æ·±ãã®ã§ãããããã©ã®ãããªæ©èœãããã®ã§ãããã?
ãŸããããã§ã¯ããŸããŸãªããŒã¿åããµããŒãããããŒãã«ãäœæã§ããäž»ããŒã«å¯Ÿã㊠SELECT ãŸã㯠UPDATE ãå®è¡ã§ããŸãã
CREATE TABLE photos (id bigint KEY, owner bigint,âŠ);
SELECT * FROM photos WHERE id=?;
UPDATE photos SET ⊠WHERE id=?;
ã¬ããªã«ã®ããŒã¿ã®äžè²«æ§ã確ä¿ããããã«ãCassandra ã¯æ¬¡ã䜿çšããŸãã
XNUMX ã€ã®ããŒãã«æ¥ç¶ããXNUMX ã€ã®ããŒãããå¿çãåãåãã¢ãããŒãã ãšãããŸãã
Cassandra ã®ãã XNUMX ã€ã®å©ç¹ã¯ãããããã°ã§ããããã¯ãè¡ã£ãå€æŽã®ããããå®å šã«é©çšããããããŸã£ããé©çšãããªããã確èªããã¡ã«ããºã ã§ãã ããã«ãããACID ã® A (ååæ§) ãããã«è§£ãããšãã§ããŸãã
Cassandra ã®ãã©ã³ã¶ã¯ã·ã§ã³ã«æãè¿ããã®ã¯ãããããã
ã«ãµã³ãã©ã«æ¬ ããŠãããã®
ãã®ãããå®éã® ACID ãã©ã³ã¶ã¯ã·ã§ã³ã Cassandra ã«å®è£ ããå¿ èŠããããŸããã ããã䜿çšãããšãåŸæ¥ã® DBMS ã®ä»ã® XNUMX ã€ã®äŸ¿å©ãªæ©èœãã€ãŸããäž»ããŒã ãã§ãªãããŒã¿éžæãå®è¡ã§ããäžè²«ããé«éã€ã³ããã¯ã¹ãšãå調èªåã€ã³ã¯ãªã¡ã³ã ID ã®å®æçãªãžã§ãã¬ãŒã¿ãŒãç°¡åã«å®è£ ã§ããŸãã
åé
ããããŠæ°ããDBMSãèªçããŸãã åéã次㮠XNUMX çš®é¡ã®ãµãŒã㌠ããŒãã§æ§æãããŸãã
- ã¹ãã¬ãŒãž â (ã»ãŒ) æšæºç㪠Cassandra ãµãŒããŒã§ãããŒã«ã« ãã£ã¹ã¯ã«ããŒã¿ãä¿åããŸãã ããŒã¿ã®è² è·ãšéãå¢å ãããšããã®éã¯ç°¡åã«æ°åãæ°çŸã«æ¡åŒµã§ããŸãã
- ãã©ã³ã¶ã¯ã·ã§ã³ ã³ãŒãã£ããŒã¿ãŒ - ãã©ã³ã¶ã¯ã·ã§ã³ã®å®è¡ãä¿èšŒããŸãã
- ã¯ã©ã€ã¢ã³ãã¯ãããžãã¹æäœãå®è£ ãããã©ã³ã¶ã¯ã·ã§ã³ãéå§ããã¢ããªã±ãŒã·ã§ã³ ãµãŒããŒã§ãã ãã®ãããªã¯ã©ã€ã¢ã³ãã¯äœåãååšããå¯èœæ§ããããŸãã
ãã¹ãŠã®ã¿ã€ãã®ãµãŒããŒã¯å
±éã¯ã©ã¹ã¿ãŒã®äžéšã§ãããå
éš Cassandra ã¡ãã»ãŒãž ãããã³ã«ã䜿çšããŠçžäºã«éä¿¡ãã
ã¯ã©ã€ã¢ã³ã
æšæºãã©ã€ããŒã®ä»£ããã«ããã¡ãã ã¯ã©ã€ã¢ã³ã ã¢ãŒãã䜿çšãããŸãã ãã®ãããªããŒãã¯ããŒã¿ãä¿åããŸãããããªã¯ãšã¹ãå®è¡ã®ã³ãŒãã£ããŒã¿ãŒãšããŠæ©èœããŸããã€ãŸããã¯ã©ã€ã¢ã³ãèªäœããªã¯ãšã¹ãã®ã³ãŒãã£ããŒã¿ãŒãšããŠæ©èœããã¹ãã¬ãŒãž ã¬ããªã«ã«ã¯ãšãªãå®è¡ãã競åã解決ããŸãã ããã¯ããªã¢ãŒã ã³ãŒãã£ããŒã¿ãŒãšã®éä¿¡ãå¿
èŠãªæšæºãã©ã€ããŒãããä¿¡é Œæ§ãé«ããé«éã§ããã ãã§ãªãããªã¯ãšã¹ãã®éä¿¡ãå¶åŸ¡ããããšãã§ããŸãã ã¯ã©ã€ã¢ã³ãäžã§éãããŠãããã©ã³ã¶ã¯ã·ã§ã³ã®å€åŽã§ããªã¯ãšã¹ãã¯ãªããžããªã«éä¿¡ãããŸãã ã¯ã©ã€ã¢ã³ãããã©ã³ã¶ã¯ã·ã§ã³ããªãŒãã³ããŠããå Žåããã©ã³ã¶ã¯ã·ã§ã³å
ã®ãã¹ãŠã®ãªã¯ãšã¹ãããã©ã³ã¶ã¯ã·ã§ã³ ã³ãŒãã£ããŒã¿ãŒã«éä¿¡ãããŸãã
C*One ãã©ã³ã¶ã¯ã·ã§ã³ ã³ãŒãã£ããŒã¿ãŒ
ã³ãŒãã£ããŒã¿ãŒã¯ãC*One çšã«æåããå®è£ ãããã®ã§ãã ãã©ã³ã¶ã¯ã·ã§ã³ãããã¯ãããã³ãã©ã³ã¶ã¯ã·ã§ã³ãé©çšãããé åºã管çããŸãã
ãµãŒãã¹ããããã©ã³ã¶ã¯ã·ã§ã³ããšã«ãã³ãŒãã£ããŒã¿ãŒã¯ã¿ã€ã ã¹ã¿ã³ããçæããŸããåŸç¶ã®åãã©ã³ã¶ã¯ã·ã§ã³ã¯ãåã®ãã©ã³ã¶ã¯ã·ã§ã³ããã倧ãããªããŸãã Cassandra ã®ç«¶å解決ã·ã¹ãã ã¯ã¿ã€ã ã¹ã¿ã³ã (競åãã XNUMX ã€ã®ã¬ã³ãŒãã®ãã¡ãææ°ã®ã¿ã€ã ã¹ã¿ã³ããæã€æ¹ãææ°ãšã¿ãªãããŸã) ã«åºã¥ããŠããããã競åã¯åžžã«åŸç¶ã®ãã©ã³ã¶ã¯ã·ã§ã³ãåªå
ããŠè§£æ±ºãããŸãã ãããã£ãŠãç§ãã¡ã¯å®è£
ããŸãã
ããã¯
確å®ã«åé¢ããããã«ãæãåçŽãªæ¹æ³ã§ããã¬ã³ãŒãã®äž»ããŒã«åºã¥ãæ²èŠ³çããã¯ã䜿çšããããšã«ããŸããã ã€ãŸãããã©ã³ã¶ã¯ã·ã§ã³ã§ã¯ããŸãã¬ã³ãŒããããã¯ãããã®åŸã§èªã¿åããå€æŽãä¿åããå¿ èŠããããŸãã ã³ããããæåããåŸã§ã®ã¿ãã¬ã³ãŒãã®ããã¯ã解é€ããã競åãããã©ã³ã¶ã¯ã·ã§ã³ããã®ã¬ã³ãŒãã䜿çšã§ããããã«ãªããŸãã
ãã®ãããªããã¯ã®å®è£ ã¯ãéåæ£ç°å¢ã§ã¯ç°¡åã§ãã åæ£ã·ã¹ãã ã«ã¯ã䞻㫠XNUMX ã€ã®ãªãã·ã§ã³ããããŸããã¯ã©ã¹ã¿ã«åæ£ããã¯ãå®è£ ããããåãã¬ã³ãŒãã«é¢ä¿ãããã©ã³ã¶ã¯ã·ã§ã³ãåžžã«åãã³ãŒãã£ããŒã¿ã«ãã£ãŠåŠçãããããã«ãã©ã³ã¶ã¯ã·ã§ã³ãåæ£ãããã®ããããã§ãã
ãã®å ŽåãããŒã¿ã¯æ¢ã« SQL ã®ããŒã«ã« ãã©ã³ã¶ã¯ã·ã§ã³ã®ã°ã«ãŒãã«åæ£ãããŠãããããããŒã«ã« ãã©ã³ã¶ã¯ã·ã§ã³ ã°ã«ãŒããã³ãŒãã£ããŒã¿ãŒã«å²ãåœãŠãããšã決å®ãããŸããã0 ã€ã®ã³ãŒãã£ããŒã¿ãŒã¯ 9 ãã 10 ãŸã§ã®ããŒã¯ã³ã䜿çšããŠãã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ãã19 çªç®ã®ã³ãŒãã£ããŒã¿ãŒã¯ XNUMX ãã XNUMX ãŸã§ã®ããŒã¯ã³ã䜿çšããŠå®è¡ããŸããçã ã ãã®çµæãåã³ãŒãã£ããŒã¿ ã€ã³ã¹ã¿ã³ã¹ããã©ã³ã¶ã¯ã·ã§ã³ ã°ã«ãŒãã®ãã¹ã¿ãŒã«ãªããŸãã
ãã®åŸãã³ãŒãã£ããŒã¿ãŒã®ã¡ã¢ãªå ã«å¹³å¡ãª HashMap ã®åœ¢åŒã§ããã¯ãå®è£ ã§ããŸãã
ã³ãŒãã£ããŒã¿ãŒã®é害
XNUMX ã€ã®ã³ãŒãã£ããŒã¿ãŒããã©ã³ã¶ã¯ã·ã§ã³ã®ã°ã«ãŒãã«æä»çã«ãµãŒãã¹ãæäŸããããããã©ã³ã¶ã¯ã·ã§ã³ã® XNUMX åç®ã®å®è¡è©Šè¡ãã¿ã€ã ã¢ãŠãã«ãªãããã«ãã³ãŒãã£ããŒã¿ãŒã®å€±æã®äºå®ãè¿ éã«å€æããããšãéåžžã«éèŠã§ãã ãããé«éãã€ä¿¡é Œæ§ã®é«ããã®ã«ããããã«ãå®å šã«æ¥ç¶ãããã¯ã©ãŒã©ã ããŒãããŒã ãããã³ã«ã䜿çšããŸããã
åããŒã¿ã»ã³ã¿ãŒã¯å°ãªããšã XNUMX ã€ã®ã³ãŒãã£ããŒã¿ãŒ ããŒãããã¹ãããŸãã åã³ãŒãã£ããŒã¿ãŒã¯å®æçã«ä»ã®ã³ãŒãã£ããŒã¿ãŒã«ããŒãããŒã ã¡ãã»ãŒãžãéä¿¡ãããã®æ©èœãšãã¯ã©ã¹ã¿ãŒå ã®ã©ã®ã³ãŒãã£ããŒã¿ãŒããæåŸã«ã©ã®ããŒãããŒã ã¡ãã»ãŒãžãåä¿¡ããããéç¥ããŸãã
ä»ã®ã³ãŒãã£ããŒã¿ãŒããåæ§ã®æ
å ±ãããŒãããŒã ã¡ãã»ãŒãžã®äžéšãšããŠåä¿¡ãããšãåã³ãŒãã£ããŒã¿ãŒã¯ãã¯ã©ãŒã©ã åçã«åºã¥ããŠãã©ã®ã¯ã©ã¹ã¿ãŒ ããŒããæ©èœããŠããããã©ã®ã¯ã©ã¹ã¿ãŒ ããŒããæ©èœããŠããªãããèªåã§å€æããŸããã€ãŸããããŒã X ãã¯ã©ã¹ã¿ãŒå
ã®éåæ°ã®ããŒãããæ£åžžãªç¶æ
ã«é¢ããæ
å ±ãåä¿¡ããŠââãããã©ãããå€æããŸããããŒã Y ããã¡ãã»ãŒãžãåä¿¡ãããšãY ã¯æ©èœããŸãã éãåæ§ã§ãå€æ°æŽŸãããŒã Y ããã®ã¡ãã»ãŒãžãæ¬ èœããŠãããšå ±åãããšããã«ãY ã¯æåŠããŸãã èå³æ·±ãã®ã¯ãã¯ã©ãŒã©ã ãããŒã X ã«ã¡ãã»ãŒãžãåä¿¡ããªããªã£ãããšãéç¥ããå ŽåãããŒã X èªäœãé害ãçºçãããšã¿ãªãããšã§ãã
ããŒãããŒã ã¡ãã»ãŒãžã¯ã20 ããªç§ã®åšæ㧠50 ç§ãããçŽ 50 åãšããé«é »åºŠã§éä¿¡ãããŸãã Java ã§ã¯ãã¬ããŒãž ã³ã¬ã¯ã¿ãŒã«ãã£ãŠçºçããäžæåæ¢ã®é·ããåçã§ãããããã¢ããªã±ãŒã·ã§ã³ã®å¿çã 1 ããªç§ä»¥å ã«ä¿èšŒããããšã¯å°é£ã§ãã G50 ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã䜿çšããŠãã®å¿çæéãéæããããšãã§ããŸãããããã«ãããGC ã®äžæåæ¢æéã®ã¿ãŒã²ãããæå®ã§ããŸãã ãã ãããããŸãã«ã³ã¬ã¯ã¿ã®äžæåæ¢æéã 200 ããªç§ãè¶ ããããšãããã誀ã£ãé害æ€åºãçºçããå¯èœæ§ããããŸãã ãããé²ãããã«ãã³ãŒãã£ããŒã¿ãŒã¯ããªã¢ãŒã ããŒãããã®æåã®ããŒãããŒã ã¡ãã»ãŒãžãæ¶ããŠãããªã¢ãŒã ããŒãã®é害ãå ±åãããè€æ°ã®ããŒãããŒã ã¡ãã»ãŒãžãé£ç¶ããŠæ¶ããå Žåã«ã®ã¿å ±åããŸããããããXNUMX 幎ã«ã³ãŒãã£ããŒã¿ãŒ ããŒãã®é害ãæ€åºããæ¹æ³ã§ãã MSã
ããããã©ã®ããŒããæ©èœãåæ¢ããããããã«ç解ããã ãã§ã¯ååã§ã¯ãããŸããã ããã«ã€ããŠã¯äœããããå¿ èŠããããŸãã
äºçŽ
å€å
žçãªã¹ããŒã ã«ã¯ããã¹ã¿ãŒã«é害ãçºçããå Žåã«ã次ã®ããããã䜿çšããŠæ°ããéžæãéå§ããããšãå«ãŸããŸãã
ã°ã«ãŒã 50 ã§ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããããšããŸãã代æ¿ã¹ããŒã ãã€ãŸããã¡ã€ã³ ã³ãŒãã£ããŒã¿ãŒã«é害ãçºçããå Žåã«ãã©ã®ããŒããã°ã«ãŒã 50 ã§ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããããäºåã«æ±ºå®ããŠãããŸãããã ç§ãã¡ã®ç®æšã¯ãããŒã¿ã»ã³ã¿ãŒã«é害ãçºçããå Žåã§ãã·ã¹ãã ã®æ©èœãç¶æããããšã§ãã æåã®ãªã¶ãŒãã¯å¥ã®ããŒã¿ ã»ã³ã¿ãŒã®ããŒãã§ãããXNUMX çªç®ã®ãªã¶ãŒã㯠XNUMX çªç®ã®ããŒã¿ ã»ã³ã¿ãŒã®ããŒãã§ãããšæ±ºå®ããŸãããã ãã®ã¹ããŒã ã¯äžåºŠéžæããããšãã¯ã©ã¹ã¿ãŒã®ããããžãŒãå€æŽããããŸã§ãã€ãŸãæ°ããããŒããã¯ã©ã¹ã¿ãŒã«å
¥ããŸã§å€æŽãããŸãã (ããã¯éåžžã«ãŸãã«çºçããŸã)ã å€ããã¹ã¿ãŒã«é害ãçºçããå Žåã«æ°ããã¢ã¯ãã£ã ãã¹ã¿ãŒãéžæããæé ã¯åžžã«æ¬¡ã®ããã«ãªããŸããæåã®ãªã¶ãŒããã¢ã¯ãã£ã ãã¹ã¿ãŒã«ãªããæ©èœãåæ¢ããå Žå㯠XNUMX çªç®ã®ãªã¶ãŒããã¢ã¯ãã£ã ãã¹ã¿ãŒã«ãªããŸãã
æ°ãããã¹ã¿ãŒãã¢ã¯ãã£ãåããã«ã¯å€ããã¹ã¿ãŒã®é害ãå€æããã ãã§ååã§ããããããã®ã¹ããŒã ã¯ãŠãããŒãµã« ã¢ã«ãŽãªãºã ãããä¿¡é Œæ§ãé«ããªããŸãã
ããããã¯ã©ã€ã¢ã³ãã¯ã©ã®ãã¹ã¿ãŒãçŸåšåäœããŠããããã©ããã£ãŠç解ããã®ã§ãããã? 50 ããªç§ä»¥å ã«äœåãã®ã¯ã©ã€ã¢ã³ãã«æ å ±ãéä¿¡ããããšã¯äžå¯èœã§ãã ãã®ãã¹ã¿ãŒãæ©èœããŠããªãããšããŸã èªèããŠããªãã¯ã©ã€ã¢ã³ãããã©ã³ã¶ã¯ã·ã§ã³ãéããªã¯ãšã¹ããéä¿¡ãããšããªã¯ãšã¹ããã¿ã€ã ã¢ãŠãã«ãªãç¶æ³ãçºçããå¯èœæ§ããããŸãã ãããé²ãããã«ãã¯ã©ã€ã¢ã³ãã¯ææ©çã«ãã©ã³ã¶ã¯ã·ã§ã³ãéããªã¯ãšã¹ããã°ã«ãŒã ãã¹ã¿ãŒãšãã®äž¡æ¹ã®ãªã¶ãŒãã«åæã«éä¿¡ããŸããããã®æç¹ã§ã¢ã¯ãã£ããªãã¹ã¿ãŒã§ãããã¹ã¿ãŒã®ã¿ããã®ãªã¯ãšã¹ãã«å¿çããŸãã ã¯ã©ã€ã¢ã³ãã¯ããã©ã³ã¶ã¯ã·ã§ã³å ã®ãã®åŸã®ãã¹ãŠã®éä¿¡ãã¢ã¯ãã£ããªãã¹ã¿ãŒãšã®ã¿è¡ããŸãã
ããã¯ã¢ãã ãã¹ã¿ãŒã¯ãåä¿¡ããèªåã®ãã®ã§ã¯ãªããã©ã³ã¶ã¯ã·ã§ã³ã®ãªã¯ãšã¹ããæªçæã®ãã©ã³ã¶ã¯ã·ã§ã³ã®ãã¥ãŒã«å ¥ãããã°ããã®éä¿åãããŸãã ã¢ã¯ãã£ããªãã¹ã¿ãŒãåæ¢ãããšãæ°ãããã¹ã¿ãŒã¯ãã®ãã¥ãŒãããã©ã³ã¶ã¯ã·ã§ã³ãéããªã¯ãšã¹ããåŠçããã¯ã©ã€ã¢ã³ãã«å¿çããŸãã ã¯ã©ã€ã¢ã³ãããã§ã«å€ããã¹ã¿ãŒãšã®ãã©ã³ã¶ã¯ã·ã§ã³ãéå§ããŠããå ŽåãXNUMX çªç®ã®å¿çã¯ç¡èŠãããŸã (ãããŠåœç¶ã®ããšãªããããã®ãããªãã©ã³ã¶ã¯ã·ã§ã³ã¯å®äºãããã¯ã©ã€ã¢ã³ãã«ãã£ãŠç¹°ãè¿ãããŸã)ã
ãã©ã³ã¶ã¯ã·ã§ã³ã®ä»çµã¿
ã¯ã©ã€ã¢ã³ããã³ãŒãã£ããŒã¿ãŒã«ãããããã®äž»ããŒãæã€ããããã®ãšã³ãã£ãã£ã®ãã©ã³ã¶ã¯ã·ã§ã³ãéããªã¯ãšã¹ããéä¿¡ãããšããŸãã ã³ãŒãã£ããŒã¿ãŒã¯ãã®ãšã³ãã£ãã£ãããã¯ããã¡ã¢ãªå ã®ãã㯠ããŒãã«ã«çœ®ããŸãã å¿ èŠã«å¿ããŠãã³ãŒãã£ããŒã¿ãŒã¯ãã®ãšã³ãã£ãã£ãã¹ãã¬ãŒãžããèªã¿åããçµæã®ããŒã¿ãã³ãŒãã£ããŒã¿ãŒã®ã¡ã¢ãªå ã®ãã©ã³ã¶ã¯ã·ã§ã³ç¶æ ã«ä¿åããŸãã
ã¯ã©ã€ã¢ã³ãããã©ã³ã¶ã¯ã·ã§ã³å
ã®ããŒã¿ãå€æŽãããå Žåããšã³ãã£ãã£ãå€æŽãããªã¯ãšã¹ããã³ãŒãã£ããŒã¿ãŒã«éä¿¡ããã³ãŒãã£ããŒã¿ãŒã¯æ°ããããŒã¿ãã¡ã¢ãªå
ã®ãã©ã³ã¶ã¯ã·ã§ã³ ã¹ããŒã¿ã¹ ããŒãã«ã«é
眮ããŸãã ããã§é²é³ãå®äºããŸããã¹ãã¬ãŒãžãžã®é²é³ã¯è¡ãããŸããã
ã¯ã©ã€ã¢ã³ããã¢ã¯ãã£ããªãã©ã³ã¶ã¯ã·ã§ã³ã®äžéšãšããŠç¬èªã®å€æŽããŒã¿ãèŠæ±ãããšãã³ãŒãã£ããŒã¿ãŒã¯æ¬¡ã®ããã«åäœããŸãã
- ID ããã§ã«ãã©ã³ã¶ã¯ã·ã§ã³å ã«ããå ŽåãããŒã¿ã¯ã¡ã¢ãªããååŸãããŸãã
- ã¡ã¢ãªå ã« ID ããªãå Žåã¯ãæ¬ èœããŠããããŒã¿ãã¹ãã¬ãŒãž ããŒãããèªã¿åãããæ¢ã«ã¡ã¢ãªå ã«ããããŒã¿ãšçµåãããçµæãã¯ã©ã€ã¢ã³ãã«æž¡ãããŸãã
ãããã£ãŠãã¯ã©ã€ã¢ã³ãã¯èªèº«ã®å€æŽãèªã¿åãããšãã§ããŸããããããã®å€æŽã¯ã³ãŒãã£ããŒã¿ãŒã®ã¡ã¢ãªã«ã®ã¿ä¿åããããŸã Cassandra ããŒãã«ã¯ååšããªããããä»ã®ã¯ã©ã€ã¢ã³ãã«ã¯è¡šç€ºãããŸããã
ã¯ã©ã€ã¢ã³ããã³ããããéä¿¡ãããšããµãŒãã¹ã®ã¡ã¢ãªã«ãã£ãç¶æ
ãã³ãŒãã£ããŒã¿ãŒã«ãã£ãŠãã°ã«èšé²ããããããã«ä¿åããããã°ã«èšé²ãããããããšã㊠Cassandra ã¹ãã¬ãŒãžã«éä¿¡ãããŸãã ã¹ãã¢ã¯ããã®ããã±ãŒãžãã¢ãããã¯ã« (å®å
šã«) é©çšãããããšãä¿èšŒããããã«å¿
èŠãªãã¹ãŠãå®è¡ããã³ãŒãã£ããŒã¿ãŒã«å¿çãè¿ããŸããã³ãŒãã£ããŒã¿ãŒã¯ããã¯ã解æŸããã¯ã©ã€ã¢ã³ããžã®ãã©ã³ã¶ã¯ã·ã§ã³ã®æåã確èªããŸãã
ããŒã«ããã¯ããã«ã¯ãã³ãŒãã£ããŒã¿ãŒã¯ãã©ã³ã¶ã¯ã·ã§ã³ç¶æ
ã«ãã£ãŠå æãããŠããã¡ã¢ãªã解æŸããã ãã§æžã¿ãŸãã
äžèšã®æ¹åã®çµæãšããŠãACID ååãå®è£ ããŸããã
- ååæ§ã ããã¯ããã©ã³ã¶ã¯ã·ã§ã³ãã·ã¹ãã ã«éšåçã«èšé²ãããªãããšãã€ãŸããµããªãã¬ãŒã·ã§ã³ããã¹ãŠå®äºããããäœãå®äºããªããã®ã©ã¡ããã§ããããšãä¿èšŒããŸãã ç§ãã¡ã¯ãCassandra ã®ãã°ã«èšé²ãããããããéããŠãã®ååãéµå®ããŠããŸãã
- äžè²«æ§ã å®çŸ©äžãæåããåãã©ã³ã¶ã¯ã·ã§ã³ã¯æå¹ãªçµæã®ã¿ãèšé²ããŸãã ãã©ã³ã¶ã¯ã·ã§ã³ãéããŠæäœã®äžéšãå®è¡ããåŸãçµæãç¡å¹ã§ããããšãå€æããå Žåã¯ãããŒã«ããã¯ãå®è¡ãããŸãã
- åé¢ã ãã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ããããšããåæãã©ã³ã¶ã¯ã·ã§ã³ããã®çµæã«åœ±é¿ãäžããã¹ãã§ã¯ãããŸããã 競åãããã©ã³ã¶ã¯ã·ã§ã³ã¯ãã³ãŒãã£ããŒã¿ãŒã®æ²èŠ³çããã¯ã䜿çšããŠåé¢ãããŸãã ãã©ã³ã¶ã¯ã·ã§ã³å€ã®èªã¿åãã®å Žåãåé¢åå㯠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 ã®ããŒã¿ã®äžè²«æ§ã¯ãã³ãŒãã£ããŒã¿ãŒã«ãã£ãŠèªåçã«ç¶æãããŸãã ããŒã¿ ã¹ããŒãã®ã¿ã«åºã¥ããŠãå€æŽãåä¿¡ãããšãã³ãŒãã£ããŒã¿ãŒã¯å€æŽãçæããã¡ã€ã³ ããŒãã«ã ãã§ãªãã³ããŒã«ãå€æŽãä¿åããŸãã ã€ã³ããã¯ã¹ ããŒãã«ã«å¯ŸããŠè¿œå ã®ã¢ã¯ã·ã§ã³ã¯å®è¡ãããããã°ã¯èªã¿åããããããã¯ã䜿çšãããŸããã ã€ãŸããã€ã³ããã¯ã¹ãè¿œå ããŠããªãœãŒã¹ã¯ã»ãšãã©æ¶è²»ããããå€æŽã®é©çšé床ã«ã¯å®è³ªçã«åœ±é¿ããããŸããã
ACID ã䜿çšãããšãSQL ã®ãããªã€ã³ããã¯ã¹ãå®è£ ã§ããŸããã ãããã¯äžè²«æ§ããããã¹ã±ãŒã©ãã«ã§ãé«éã§ãæ§æå¯èœã§ãããCQL ã¯ãšãªèšèªã«çµã¿èŸŒãŸããŠããŸãã ã€ã³ããã¯ã¹ããµããŒãããããã«ã¢ããªã±ãŒã·ã§ã³ ã³ãŒããå€æŽããå¿ èŠã¯ãããŸããã ãã¹ãŠã¯ SQL ãšåããããç°¡åã§ãã ãããŠæãéèŠãªããšã¯ãã€ã³ããã¯ã¹ã¯å ã®ãã©ã³ã¶ã¯ã·ã§ã³ ããŒãã«ãžã®å€æŽã®å®è¡é床ã«åœ±é¿ãäžããªãããšã§ãã
ã©ãããã®
åœç€Ÿã¯XNUMX幎åã«C*Oneãéçºããåçšéçšãéå§ããŸããã
æçµçã«äœãåŸãããã®ã§ããããïŒ ãœãŒã·ã£ã« ãããã¯ãŒã¯ã§æãéèŠãªçš®é¡ã®ããŒã¿ã® 20 ã€ã§ããåçåŠçããã³ã¹ãã¬ãŒãž ãµãã·ã¹ãã ã®äŸã䜿çšããŠããããè©äŸ¡ããŠã¿ãŸãããã ç§ãã¡ã¯åçã®æ¬äœã«ã€ããŠè©±ããŠããã®ã§ã¯ãªããããããçš®é¡ã®ã¡ã¿æ å ±ã«ã€ããŠè©±ããŠããŸãã çŸåšãOdnoklassniki ã«ã¯ãã®ãããªã¬ã³ãŒããçŽ 80 å件ãããã·ã¹ãã 㯠8 ç§ããã XNUMX äžä»¶ã®èªã¿åããªã¯ãšã¹ããåŠçããããŒã¿å€æŽã«é¢é£ãã XNUMX ç§ãããæ倧 XNUMX 件㮠ACID ãã©ã³ã¶ã¯ã·ã§ã³ãåŠçããŸãã
ã¬ããªã±ãŒã·ã§ã³ä¿æ° = 1 (ãã ã RAID 10) 㧠SQL ã䜿çšããå Žåãåçã®ã¡ã¿æ å ±ã¯ãMicrosoft SQL Server ãå®è¡ãã 32 å°ã®ãã·ã³ (+ 11 åã®ããã¯ã¢ãã) ãããªãé«å¯çšæ§ã¯ã©ã¹ã¿ãŒã«ä¿åãããŸããã ããã¯ã¢ãããä¿åããããã« 10 å°ã®ãµãŒããŒãå²ãåœãŠãããŸããã åèš50å°ã®é«çŽè»ã åæã«ãã·ã¹ãã ã¯äºåãªãã§å®æ Œè² è·ã§åäœããŸããã
æ°ããã·ã¹ãã ã«ç§»è¡ããåŸãã¬ããªã±ãŒã·ã§ã³ä¿æ° = 3ãã€ãŸãåããŒã¿ã»ã³ã¿ãŒã«ã³ããŒãåãåããŸããã ãã®ã·ã¹ãã ã¯ã63 å°ã® Cassandra ã¹ãã¬ãŒãž ããŒããš 6 å°ã®ã³ãŒãã£ããŒã¿ãŒ ãã·ã³ãåèš 69 å°ã®ãµãŒããŒã§æ§æãããŠããŸãã ãã ãããããã®ãã·ã³ã¯ã¯ããã«å®äŸ¡ã§ãç·ã³ã¹ã㯠SQL ã·ã¹ãã ã®ã³ã¹ãã®çŽ 30% ã§ãã åæã«ãè² è·ã¯ 30% ã«ç¶æãããŸãã
C*One ã®å°å ¥ã«ãããã¬ã€ãã³ã·ãŒãæžå°ããŸãããSQL ã§ã¯ãæžã蟌ã¿æäœã«çŽ 4,5 ããªç§ããããŸããã C*One ã®å Žå - çŽ 1,6 ããªç§ã ãã©ã³ã¶ã¯ã·ã§ã³æéã¯å¹³å 40 ããªç§æªæºãã³ããã㯠2 ããªç§ã§å®äºããèªã¿åãããã³æžã蟌ã¿æéã¯å¹³å 2 ããªç§ã§ãã 99 ããŒã»ã³ã¿ã€ã« - ããã 3 ïœ 3,1 ããªç§ãã¿ã€ã ã¢ãŠãæ°ã¯ 100 åã® XNUMX ã«æžå° - ãã¹ãŠã¯æšæž¬ãåºã䜿çšãããããã§ãã
çŸåšãã»ãšãã©ã® SQL Server ããŒãã¯å»æ¢ãããŠãããæ°ãã補å㯠C*One ã®ã¿ã䜿çšããŠéçºãããŠããŸãã C*One ãã¯ã©ãŠãã§åäœããããã«èª¿æŽããŸãã
çŸåšãä»ã®ã¹ãã¬ãŒãžæœèšãã¯ã©ãŠãã«ç§»è¡ããããšã«åãçµãã§ããŸãããããã¯ãŸã£ããå¥ã®è©±ã§ãã
åºæïŒ habr.com