åé·æ§ã¯æ¬¡ã®ããã«ãªããŸã
åé·ã³ãŒã* ã¯ãããŒã¿ ã¹ãã¬ãŒãžã®ä¿¡é Œæ§ãé«ããããã«ã³ã³ãã¥ãŒã¿ ã·ã¹ãã ã§åºã䜿çšãããŠããŸãã Yandex ã§ã¯ãå€ãã®ãããžã§ã¯ãã§äœ¿çšãããŠããŸãã ããšãã°ãå
éšãªããžã§ã¯ã ã¹ãã¬ãŒãžã§ã¬ããªã±ãŒã·ã§ã³ã®ä»£ããã«åé·ã³ãŒãã䜿çšãããšãä¿¡é Œæ§ãç ç²ã«ããããšãªãæ°çŸäžãã«ãç¯çŽã§ããŸãã ããããåºã䜿çšãããŠããã«ãããããããåé·ã³ãŒããã©ã®ããã«æ©èœãããã«ã€ããŠã®æ確ãªèª¬æã¯éåžžã«ãŸãã§ãã ç解ããã人ã¯ãããã次ã®ãããªåé¡ã«çŽé¢ããŸãïŒ
ç§ã®åå㯠Vadim ã§ããYandex ã§å éšãªããžã§ã¯ã ã¹ãã¬ãŒãž MDS ãéçºããŠããŸãã ãã®èšäºã§ã¯ãåé·ç¬Šå·ïŒãªãŒããœãã¢ã³ç¬Šå·ãšLRC笊å·ïŒã®çè«çåºç€ãç°¡åã«èª¬æããŸãã è€éãªæ°åŠãçããçšèªã䜿ããã«ããããã©ã®ããã«æ©èœãããã説æããŸãã æåŸã«ãYandex ã§ã®åé·ã³ãŒãã®äœ¿çšäŸã瀺ããŸãã
å€ãã®æ°åŠç詳现ã«ã€ããŠã¯è©³ããæ€èšããŸããããããæ·±ãç¥ããã人ã®ããã«ãªã³ã¯ãæäŸããŸãã ãŸãããã®èšäºã¯æ°åŠè ã察象ãšãããã®ã§ã¯ãªããåé¡ã®æ¬è³ªãç解ããããšã³ãžãã¢ã察象ãšããŠãããããäžéšã®æ°åŠçå®çŸ©ã¯å³å¯ã§ã¯ãªãå¯èœæ§ãããããšã«ã泚æããŠãã ããã
* è±èªã®æç®ã§ã¯ãåé·ã³ãŒãã¯ã€ã¬ã€ãžã£ãŒ ã³ãŒããšåŒã°ããããšããããããŸãã
1. åé·ã³ãŒãã®æ¬è³ª
ãã¹ãŠã®åé·ã³ãŒãã®æ¬è³ªã¯éåžžã«åçŽã§ãããšã©ãŒ (ãã£ã¹ã¯é害ãããŒã¿è»¢éãšã©ãŒãªã©) ãçºçãããšãã«ããŒã¿ã倱ãããªãããã«ãããŒã¿ãä¿å (ãŸãã¯éä¿¡) ãããã®ã§ãã
ã»ãšãã©ã®* åé·ã³ãŒãã§ã¯ãããŒã¿ã¯ n ããŒã¿ ãããã¯ã«åå²ããããã®ãã¡ m ãããã¯ã®åé·ã³ãŒããã«ãŠã³ããããåèšã§ n + m ãããã¯ã«ãªããŸãã åé·ã³ãŒãã¯ãn + m ãããã¯ã®äžéšã®ã¿ã䜿çšã㊠n ãããã¯ã®ããŒã¿ã埩å ã§ããããã«æ§ç¯ãããŸãã 次ã«ããããã¯åé·ã³ãŒããã€ãŸãããŒã¿ããããã¯ã«åå²ãããŠããã³ãŒãã®ã¿ãèããŸãã
ããŒã¿ã® n ãããã¯ãã¹ãŠãå埩ããã«ã¯ãn + m ãããã¯ã®ãã¡å°ãªããšã n åãå¿ èŠã§ããn-1 ãããã¯ã ãã§ã¯ n ãããã¯ãååŸã§ããªãããã§ã (ãã®å Žåããèããããã¯ãã 1 ãããã¯ãååŸããå¿ èŠããããŸã)ã空æ°"ïŒã ãã¹ãŠã®ããŒã¿ã埩å ããã«ã¯ãn + m ãããã¯ã® n åã®ã©ã³ãã ãããã¯ã§ååã§ãã? ããã¯åé·ã³ãŒãã®ã¿ã€ãã«ãã£ãŠç°ãªããŸããããšãã°ããªãŒããœãã¢ã³ ã³ãŒãã§ã¯ä»»æã® n ãããã¯ã䜿çšããŠãã¹ãŠã®ããŒã¿ã埩å ã§ããŸãããLRC åé·ã³ãŒãã§ã¯åžžã«ãããšã¯éããŸããã
ããŒã¿ä¿å
ããŒã¿ ã¹ãã¬ãŒãž ã·ã¹ãã ã§ã¯ãååãšããŠãããŒã¿ ãããã¯ãšåé·ã³ãŒã ãããã¯ã®ãããããå¥ã®ãã£ã¹ã¯ã«æžã蟌ãŸããŸãã ããã«ãããä»»æã®ãã£ã¹ã¯ã«é害ãçºçããå Žåã§ããå ã®ããŒã¿ã埩å ããŠèªã¿åãããšãã§ããŸãã è€æ°ã®ãã£ã¹ã¯ãåæã«æ éããå Žåã§ãããŒã¿ã埩æ§ã§ããŸãã
ããŒã¿è»¢é
åé·ã³ãŒãã䜿çšãããšãä¿¡é Œæ§ã®äœããããã¯ãŒã¯äžã§ããŒã¿ã確å®ã«éä¿¡ã§ããŸãã éä¿¡ãããããŒã¿ã¯ãããã¯ã«åå²ããããããã¯ããšã«åé·ç¬Šå·ãèšç®ãããŸãã ããŒã¿ ãããã¯ãšåé·ã³ãŒã ãããã¯ã¯äž¡æ¹ãšããããã¯ãŒã¯çµç±ã§éä¿¡ãããŸãã ä»»æã®ããã㯠(ç¹å®ã®ãããã¯æ°ãŸã§) ã§ãšã©ãŒãçºçããå Žåã§ããããŒã¿ã¯ãšã©ãŒãªããããã¯ãŒã¯äžã«éä¿¡ã§ããŸãã ããšãã°ããªãŒããœãã¢ã³ç¬Šå·ã¯ãå éä¿¡åç·ãè¡æéä¿¡ã§ããŒã¿ãéä¿¡ããããã«äœ¿çšãããŸãã
â»ã€ãŒãµããããããã¯ãŒã¯ã®ããŒã¿äŒéã«åºã䜿ãããŠããããã³ã°ç¬Šå·ãCRC笊å·ãªã©ãããŒã¿ããããã¯ã«åå²ããªãåé·ç¬Šå·ããããŸãã ãããã¯èª€ãèšæ£ç¬Šå·åã®ããã®ç¬Šå·ã§ããã誀ããèšæ£ããã®ã§ã¯ãªãæ€åºããããã«èšèšãããŠããŸãïŒããã³ã°ç¬Šå·ã§ã¯èª€ãã®éšåçãªèšæ£ãå¯èœã§ãïŒã
2. ãªãŒããœãã¢ã³ç¬Šå·
ãªãŒããœãã¢ã³ç¬Šå·ã¯ãæãåºã䜿çšãããŠããåé·ç¬Šå·ã® 1960 ã€ã§ã1980 幎代ã«çºæãããXNUMX 幎代ã«ã³ã³ãã¯ã ãã£ã¹ã¯ã®å€§éçç£ã«åããŠåºã䜿çšãããŸããã
ãªãŒããœãã¢ã³ç¬Šå·ãç解ããã«ã¯ã1 ã€ã®éèŠãªè³ªåããããŸãã2) åé·ç¬Šå·ã®ãããã¯ãäœæããæ¹æ³ã XNUMX) åé·ã³ãŒããããã¯ã䜿çšããŠããŒã¿ãå埩ããæ¹æ³ã ãããã«å¯ŸããçããèŠã€ããŠã¿ãŸãããã
ç°¡åã«ããããã«ãããã« n=6 ããã³ m=4 ãšä»®å®ããŸãã ä»ã®ã¹ããŒã ãåæ§ã«æ€èšãããŸãã
åé·ã³ãŒããããã¯ãäœæããæ¹æ³
åé·ã³ãŒãã®åãããã¯ã¯ãä»ã®ãããã¯ãšã¯ç¬ç«ããŠã«ãŠã³ããããŸãã n åã®ããŒã¿ ãããã¯ãã¹ãŠãåãããã¯ã®ã«ãŠã³ãã«äœ¿çšãããŸãã 以äžã®å³ã§ã¯ãX1 ïœ X6 ã¯ããŒã¿ ãããã¯ãP1 ïœ P4 ã¯åé·ã³ãŒã ãããã¯ã§ãã
ãã¹ãŠã®ããŒã¿ ãããã¯ã¯åããµã€ãºã§ããå¿ èŠããããäœçœ®åããã«ã¯ãŒã ãããã䜿çšã§ããŸãã çµæãšããŠåŸãããåé·ã³ãŒã ãããã¯ã¯ããŒã¿ ãããã¯ãšåããµã€ãºã«ãªããŸãã ãã¹ãŠã®ããŒã¿ ãããã¯ã¯ã¯ãŒã (ããšãã° 16 ããã) ã«åå²ãããŸãã ããŒã¿ ãããã¯ã k åã®ã¯ãŒãã«åå²ãããšããŸãã 次ã«ãåé·ã³ãŒãã®ãã¹ãŠã®ãããã¯ã k ã¯ãŒãã«åå²ãããŸãã
ååé·ãããã¯ã® i çªç®ã®ã¯ãŒããã«ãŠã³ãããã«ã¯ããã¹ãŠã®ããŒã¿ ãããã¯ã® i çªç®ã®ã¯ãŒãã䜿çšãããŸãã ãããã¯æ¬¡ã®åŒã«åŸã£ãŠèšç®ãããŸãã
ããã§ãå€ x ã¯ããŒã¿ ãããã¯ã®ã¯ãŒããp ã¯åé·ã³ãŒã ãããã¯ã®ã¯ãŒãããã¹ãŠã®ã¢ã«ãã¡ãããŒã¿ãã¬ã³ãããã«ã¿ã¯ããã¹ãŠã® i ã§åãã§ããç¹å¥ã«éžæãããæ°å€ã§ãã ãããã®å€ã¯ãã¹ãŠéåžžã®æ°å€ã§ã¯ãªããã¬ãã¢äœã®èŠçŽ ã§ããããšãããã«èšããªããã°ãªããŸãããæŒç® +ã-ã*ã/ ã¯ãç§ãã¡å šå¡ã«éŠŽæã¿ã®ããæŒç®ã§ã¯ãªããã¬ãã¢äœã®èŠçŽ ã«å°å ¥ãããç¹å¥ãªæŒç®ã§ããåéã
ãªãã¬ãã¢äœãå¿ èŠãªã®ã§ãããã?
ãã¹ãŠãåçŽã§ããããã«æããŸããããŒã¿ããããã¯ã«åå²ãããããã¯ãã¯ãŒãã«åå²ããããŒã¿ ãããã¯ã®ã¯ãŒãã䜿çšããŠåé·ã³ãŒã ãããã¯ã®ã¯ãŒããã«ãŠã³ãããŸããåé·ã³ãŒã ãããã¯ãåŸãããŸãã äžè¬çã«ã¯ãã®ããã«åäœããŸãããæªéã¯çŽ°éšã«å®¿ããŸãã
- äžã§è¿°ã¹ãããã«ãã¯ãŒã ãµã€ãºã¯åºå®ãããŠããããã®äŸã§ã¯ 16 ãããã§ãã ãªãŒããœãã¢ã³ ã³ãŒãã®äžèšã®åŒã¯ãéåžžã®æŽæ°ã䜿çšãããšãæå¹ãªãµã€ãºã®ã¯ãŒãã䜿çšã㊠p ãèšç®ããçµæãè¡šçŸã§ããªãå¯èœæ§ããããŸãã
- ããŒã¿ãå埩ããå Žåãäžèšã®åŒã¯ãããŒã¿ãå埩ããããã«è§£ãå¿ èŠãããé£ç«æ¹çšåŒãšããŠèæ ®ãããŸãã 解決ããã»ã¹äžã«ãæŽæ°ãäºãã«é€ç®ããå¿ èŠãããå Žåãããããã®çµæãã³ã³ãã¥ãŒã¿ãŒã®ã¡ã¢ãªå ã§æ£ç¢ºã«è¡šçŸã§ããªãå®æ°ãçæãããŸãã
ãããã®åé¡ã«ããããªãŒããœãã¢ã³ç¬Šå·ã«æŽæ°ã䜿çšã§ããªããªããŸãã ãã®åé¡ã®è§£æ±ºçã¯ãªãªãžãã«ã§ããã次ã®ããã«èª¬æã§ããŸããå¿ èŠãªé·ãã®ã¯ãŒã (ããšãã°ã16 ããã) ã䜿çšããŠè¡šçŸã§ããç¹å¥ãªæ°å€ãèãåºããããã«å¯ŸããŠãã¹ãŠã®æŒç® (å ç®) ãå®è¡ããçµæãèãåºããŸãã ãæžç®ãä¹ç®ãé€ç®ãªã©ïŒããå¿ èŠãªé·ãã®åèªã䜿çšããŠã³ã³ãã¥ãŒã¿ã®ã¡ã¢ãªã«è¡šç€ºãããŸãã
ãã®ãããªãç¹å¥ãªãæ°å€ã¯æ°åŠã§é·ãéç 究ãããŠãããäœãšåŒã°ããŸãã ãã£ãŒã«ãã¯ãå ç®ãæžç®ãä¹ç®ãé€ç®ã®æŒç®ãå®çŸ©ãããèŠçŽ ã®ã»ããã§ãã
ã¬ãã¢* ãã£ãŒã«ãã¯ããã£ãŒã«ãã®ä»»æã® 2 ã€ã®èŠçŽ ã«å¯ŸããåæŒç® (+ã-ãââã/) ã®åºæã®çµæãååšãããã£ãŒã«ãã§ãã ã¬ãã¢äœã¯ã2ã4ã8ã16 ãªã©ã® 2 ã®ã¹ãä¹ã®æ°å€ã«å¯ŸããŠæ§ç¯ã§ããŸã (å®éã«ã¯ä»»æã®çŽ æ° p ã®ã¹ãä¹ã§ãããå®éã«ã¯ 16 ã®ã¹ãä¹ã®ã¿ã«æ³šç®ããŸã)ã ããšãã°ã65 ããã ã¯ãŒãã®å Žåããã㯠536 åã®èŠçŽ ãå«ããã£ãŒã«ãã§ãããåãã¢ã«ã€ããŠä»»æã®æŒç® (+ã-ãââã/) ã®çµæãèŠã€ããããšãã§ããŸãã äžèšã®æ¹çšåŒã® xãpãã¢ã«ãã¡ãããŒã¿ãã¬ã³ãããã«ã¿ã®å€ã¯ãèšç®ã®ã¬ãã¢äœã®èŠçŽ ãšã¿ãªãããŸãã
ãããã£ãŠãé©åãªã³ã³ãã¥ãŒã¿ ããã°ã©ã ãäœæããããšã§ãåé·ã³ãŒãã®ãããã¯ãæ§ç¯ã§ããæ¹çšåŒç³»ãåŸãããŸãã åãæ¹çšåŒç³»ã䜿çšããŠãããŒã¿å埩ãå®è¡ã§ããŸãã
â»ããã¯å³å¯ãªå®çŸ©ã§ã¯ãªãã説æã§ãã
ããŒã¿ãå埩ããæ¹æ³
n + m åã®ãããã¯ã®äžéšãæ¬ èœããŠããå Žåã¯ã埩å ãå¿ èŠã§ãã ãããã¯ãããŒã¿ ãããã¯ãšåé·ã³ãŒã ãããã¯ã®äž¡æ¹ã«ããããšãã§ããŸãã ããŒã¿ ãããã¯ãåé·ã³ãŒã ãããã¯ãååšããªããšããããšã¯ã察å¿ãã x å€æ°ã p å€æ°ãäžèšã®æ¹çšåŒã§äžæã§ããããšãæå³ããŸãã
ãªãŒããœãã¢ã³ ã³ãŒãã®æ¹çšåŒã¯ããã¹ãŠã®ã¢ã«ãã¡ãããŒã¿ãã¬ã³ãããã«ã¿å€ãå®æ°ãå©çšå¯èœãªãããã¯ã«å¯Ÿå¿ãããã¹ãŠã® x ãš p ãæ¢ç¥ã®å€æ°ãæ®ãã® x ãš p ãå«ãŸããæ¹çšåŒç³»ãšããŠèŠãããšãã§ããŸããã¯äžæã§ãã
ããšãã°ãããŒã¿ ããã㯠1ã2ã3 ãšåé·ã³ãŒã ããã㯠2 ãå©çšã§ããªããšãããšãi çªç®ã®åèªã°ã«ãŒãã«ã€ããŠã¯æ¬¡ã®æ¹çšåŒç³»ã«ãªããŸã (æªç¥ã®ãã®ã¯èµ€è²ã§ããŒã¯ãããŸã)ã
4 ã€ã®æªç¥æ°ãå«ã 4 ã€ã®æ¹çšåŒç³»ããããããã解ããŠããŒã¿ã埩å ã§ããããšãæå³ããŸãã
ãã®æ¹çšåŒç³»ããããªãŒããœãã¢ã³ ã³ãŒã (n ããŒã¿ ãããã¯ãm åé·ã³ãŒã ãããã¯) ã®ããŒã¿å埩ã«é¢ããŠå€ãã®çµè«ãåŸãããŸãã
- m å以äžã®ãããã¯ã倱ãããå ŽåãããŒã¿ã埩å ã§ããŸãã m+1 以äžã®ãããã¯ã倱ãããå ŽåãããŒã¿ã¯åŸ©å ã§ããŸãããm + 1 åã®æªç¥æ°ãå«ã m æ¹çšåŒç³»ã解ãããšã¯äžå¯èœã§ãã
- ããŒã¿ ãããã¯ã XNUMX ã€ã§ãå埩ããã«ã¯ãæ®ãã®ãããã¯ã®ãã¡ä»»æã® n åã䜿çšããå¿ èŠããããä»»æã®åé·ã³ãŒãã䜿çšã§ããŸãã
äœãç¥ãå¿ èŠããããŸããïŒ
äžèšã®èª¬æã§ã¯ãæ°åŠãããã«æ·±ãæãäžããŠæ€èšããå¿ èŠãããå€ãã®éèŠãªåé¡ãé¿ããŠããŸãã ç¹ã«ä»¥äžã®ç¹ã«ã€ããŠã¯äœãèšããŸããã
- ãªãŒããœãã¢ã³ç¬Šå·ã®æ¹çšåŒç³»ã¯ãæªç¥æ° (m å以äž) ã®ä»»æã®çµã¿åããã«å¯Ÿãã (äžæã®) 解ãæããªããã°ãªããŸããã ãã®èŠä»¶ã«åºã¥ããŠãã¢ã«ãã¡ãããŒã¿ãã¬ã³ãããã«ã¿ã®å€ãéžæãããŸãã
- æ¹çšåŒç³»ã¯ã(䜿çšã§ããªããããã¯ã«å¿ããŠ) èªåçã«æ§ç¯ããã解決ã§ããªããã°ãªããŸããã
- ã¬ãã¢äœãæ§ç¯ããå¿ èŠããããŸããæå®ãããã¯ãŒã ãµã€ãºã§ãä»»æã® XNUMX ã€ã®èŠçŽ ã«å¯Ÿããä»»æã®æŒç® (+ã-ãââã/) ã®çµæãèŠã€ããããšãã§ããŸãã
èšäºã®æåŸã«ã¯ããããã®éèŠãªåé¡ã«é¢ããæç®ãžã®èšåããããŸãã
nãšmã®éžæ
å®éã« n ãš m ãéžæããã«ã¯ã©ãããã°ããã§ãã? å®éã«ã¯ãããŒã¿ ã¹ãã¬ãŒãž ã·ã¹ãã ã§ã¯ãã¹ããŒã¹ãç¯çŽããããã«åé·ã³ãŒãã䜿çšããããããm ã¯åžžã« n ããå°ããå€ãéžæãããŸãã ãããã®å ·äœçãªå€ã¯ã次ã®ãããªå€ãã®èŠå ã«ãã£ãŠç°ãªããŸãã
- ããŒã¿ã¹ãã¬ãŒãžã®ä¿¡é Œæ§ã mã倧ããã»ã©ããã£ã¹ã¯é害ã«èããããåæ°ãå€ããªããä¿¡é Œæ§ãé«ããªããŸãã
- åé·ã¹ãã¬ãŒãžã m/n æ¯ãé«ããªãã»ã©ãã¹ãã¬ãŒãžã®åé·æ§ãé«ããªããã·ã¹ãã ã®äŸ¡æ Œãé«ããªããŸãã
- ãªã¯ãšã¹ãã®åŠçæéã n + m ã®åèšã倧ããã»ã©ããªã¯ãšã¹ãã«å¯Ÿããå¿çæéã¯é·ããªããŸãã ããŒã¿ã®èªã¿åã (ãªã«ããªäž) ã«ã¯ãn åã®ç°ãªããã£ã¹ã¯ã«ä¿åãããŠãã n åã®ãããã¯ãèªã¿åãå¿ èŠããããããèªã¿åãæéã¯æãé ããã£ã¹ã¯ã«ãã£ãŠæ±ºãŸããŸãã
ããã«ãè€æ°ã® DC ã«ããŒã¿ãä¿åãããšãn ãš m ã®éžæã«è¿œå ã®å¶éã課ããããŸãã1 ã€ã® DC ããªãã«ãªã£ãŠããããŒã¿ã¯åŒãç¶ãèªã¿åãå¯èœã§ãªããã°ãªããŸããã ããšãã°ã3 ã€ã® DC ã«ããŒã¿ãä¿åããå Žåãm >= n/2 ãšããæ¡ä»¶ãæºããå¿ èŠããããŸããããã§ãªããšã1 ã€ã® DC ããªãã«ãªã£ããšãã«ããŒã¿ãèªã¿åããªããªãå¯èœæ§ããããŸãã
3. LRC - å°å埩èã³ãŒã
ãªãŒããœãã¢ã³ç¬Šå·ã䜿çšããŠããŒã¿ãå埩ããã«ã¯ãä»»æã® n åã®ããŒã¿ ãããã¯ã䜿çšããå¿ èŠããããŸãã ããã¯ãåæ£ããŒã¿ ã¹ãã¬ãŒãž ã·ã¹ãã ã«ãšã£ãŠéåžžã«é倧ãªæ¬ ç¹ã§ããXNUMX ã€ã®å£ãããã£ã¹ã¯ã«ããŒã¿ã埩å ããã«ã¯ãä»ã®ã»ãšãã©ã®ãã£ã¹ã¯ããããŒã¿ãèªã¿åãå¿ èŠãããããã£ã¹ã¯ãšãããã¯ãŒã¯ã«å€§ããªè¿œå ã®è² è·ããããããã§ãã
æãäžè¬çãªãšã©ãŒã¯ãXNUMX ã€ã®ãã£ã¹ã¯ã®é害ãŸãã¯éè² è·ã«ãã XNUMX ã€ã®ããŒã¿ ãããã¯ã«ã¢ã¯ã»ã¹ã§ããªããªãããšã§ãã ãã®ïŒæãäžè¬çãªïŒã±ãŒã¹ã§ãããŒã¿å埩ã®ããã®éå°ãªè² è·ãäœããã®åœ¢ã§æžããããšã¯å¯èœã§ãããã? ãã®ç®çå°çšã® LRC åé·ã³ãŒããããããšãããããŸããã
LRC (ããŒã«ã«åæ§ç¯ã³ãŒã) ã¯ãWindows Azure ã¹ãã¬ãŒãžã§äœ¿çšããããã« Microsoft ã«ãã£ãŠçºæãããåé·ã³ãŒãã§ãã LRC ã®èãæ¹ã¯å¯èœãªéãã·ã³ãã«ã§ãããã¹ãŠã®ããŒã¿ ãããã¯ã XNUMX 〠(ãŸãã¯ãã以äž) ã®ã°ã«ãŒãã«åå²ããåã°ã«ãŒãã®åé·ã³ãŒã ãããã¯ã®äžéšãåå¥ã«èªã¿åããŸãã 次ã«ãäžéšã®åé·ã³ãŒã ãããã¯ã¯ãã¹ãŠã®ããŒã¿ ããã㯠(LRC ã§ã¯ã°ããŒãã«åé·ã³ãŒããšåŒã°ããŸã) ã䜿çšããŠã«ãŠã³ããããäžéšã®åé·ã³ãŒã ãããã¯ã¯ XNUMX ã€ã®ããŒã¿ ããã㯠ã°ã«ãŒãã® XNUMX ã€ã䜿çšããŠã«ãŠã³ããããŸã (ããŒã«ã«åé·ã³ãŒããšåŒã°ããŸã)ã
LRC 㯠XNUMX ã€ã®æ°åãnrl ã§è¡šãããŸããn ã¯ããŒã¿ ãããã¯ã®æ°ãr ã¯ã°ããŒãã«åé·ã³ãŒã ãããã¯ã®æ°ãl ã¯ããŒã«ã«åé·ã³ãŒã ãããã¯ã®æ°ã§ãã XNUMX ã€ã®ããŒã¿ ãããã¯ãå©çšã§ããªãå Žåã«ããŒã¿ãèªã¿åãã«ã¯ãn/l ãããââã¯ã®ã¿ãèªã¿åãå¿ èŠããããŸããããã¯ãªãŒããœãã¢ã³ ã³ãŒãã® XNUMX åã® XNUMX ã§ãã
ããšãã°ãLRC 6-2-2 ã¹ããŒã ãèããŠã¿ãŸãããã X1 ïœ X6 â 6 ããŒã¿ ãããã¯ãP1ãP2 â 2 ã€ã®ã°ããŒãã«åé·ãããã¯ãP3ãP4 â 2 ã€ã®ããŒã«ã«åé·ãããã¯ã
åé·ã³ãŒãããã㯠P1ãP2 ã¯ãã¹ãŠã®ããŒã¿ãããã¯ã䜿çšããŠã«ãŠã³ããããŸãã åé·ã³ãŒã ããã㯠P3 - ããŒã¿ ããã㯠X1 ïœ X3 ã䜿çšããåé·ã³ãŒã ããã㯠P4 - ããŒã¿ ããã㯠X4 ïœ X6 ã䜿çšããŸãã
æ®ãã¯ãªãŒããœãã¢ã³ç¬Šå·ãšåæ§ã« LRC ã§è¡ãããŸãã åé·ã³ãŒã ãããã¯ã®ã¯ãŒããæ°ããæ¹çšåŒã¯æ¬¡ã®ããã«ãªããŸãã
æ°å€ã¢ã«ãã¡ãããŒã¿ãã¬ã³ãããã«ã¿ãéžæããã«ã¯ãããŒã¿å埩ã®å¯èœæ§ãä¿èšŒãã (ã€ãŸããæ¹çšåŒç³»ã解ã) ããã®å€ãã®æ¡ä»¶ãæºããããªããã°ãªããŸããã ãããã«ã€ããŠè©³ããã¯ã
ãŸããå®éã«ã¯ãããŒã«ã«åé·ã³ãŒã P3ãP4 ãèšç®ããããã« XOR æŒç®ã䜿çšãããŸãã
LRC ã®æ¹çšåŒç³»ããã¯ã次ã®ãããªå€ãã®çµè«ãåŸãããŸãã
- ä»»æã® 1 ããŒã¿ ãããã¯ãå埩ããã«ã¯ãn/l ãããââ㯠(ãã®äŸã§ã¯ n/2) ãèªã¿åãã ãã§ååã§ãã
- r + l ãããââã¯ã䜿çšã§ããããã¹ãŠã®ãããã¯ã 1 ã€ã®ã°ã«ãŒãã«å«ãŸããŠããå ŽåãããŒã¿ã¯åŸ©å ã§ããŸããã ãããäŸã§èª¬æãããšç°¡åã§ãã ããã㯠X3 ïœ X3 ãš P4 ãå©çšã§ããªããã®ãšããŸãããããã¯åãã°ã«ãŒãã® r + l ãããââã¯ã§ããããã®å Žå㯠3 ã§ãã ãããšã解ããªã 4 ã€ã®æªç¥æ°ãå«ã XNUMX ã€ã®æ¹çšåŒãããªãç³»ãã§ããŸãã
- r + l ãããââã¯ãå©çšã§ããªãä»ã®ãã¹ãŠã®å Žå (åã°ã«ãŒãããå°ãªããšã XNUMX ã€ã®ãããã¯ãå©çšå¯èœãªå Žå)ãLRC å ã®ããŒã¿ã¯åŸ©å ã§ããŸãã
ãããã£ãŠãLRC ã¯åäžãšã©ãŒåŸã®ããŒã¿å埩ã«ãããŠãªãŒããœãã¢ã³ç¬Šå·ãããåªããŠããŸãã ãªãŒããœãã¢ã³ç¬Šå·ã§ã¯ãããŒã¿ã® 2 ãããã¯ãå埩ããããã«ã n ãããã¯ã䜿çšããå¿ èŠããããŸãããLRC ã§ã¯ãããŒã¿ã® 4 ãããã¯ãå埩ããã«ã¯ãn/l ãããââ㯠(ãã®äŸã§ã¯ n/2) ã䜿çšããã ãã§ååã§ãã äžæ¹ãLRC ã¯èš±å®¹ãããæ倧誀ãæ°ã®ç¹ã§ãªãŒããœãã¢ã³ç¬Šå·ã«å£ããŸãã äžèšã®äŸã§ã¯ããªãŒããœãã¢ã³ç¬Šå·ã¯ä»»æã® 4 ã€ã®ãšã©ãŒã«å¯ŸããŠããŒã¿ãå埩ã§ããŸãããLRC ã®å ŽåãããŒã¿ãå埩ã§ããªãå Žåã«ã¯ XNUMX ã€ã®ãšã©ãŒã®çµã¿åããã XNUMX ã€ãããŸãã
äœãããéèŠãã¯ç¹å®ã®ç¶æ³ã«ãã£ãŠç°ãªããŸãããå€ãã®å ŽåãLRC ã«ãã£ãŠæäŸãããéå°ãªè² è·ã®ç¯çŽã¯ãä¿¡é Œæ§ãè¥å¹²å£ãã¹ãã¬ãŒãžãããéèŠã§ãã
4. ãã®ä»ã®åé·ã³ãŒã
ãªãŒããœãã¢ã³ ã³ãŒããš LRC ã³ãŒã以å€ã«ããä»ã«ãå€ãã®åé·ã³ãŒãããããŸãã åé·ã³ãŒããç°ãªãã°ã䜿çšããæ°åŠãç°ãªããŸãã ãã®ä»ã®åé·ã³ãŒãã¯æ¬¡ã®ãšããã§ãã
- XOR æŒç®åã䜿çšããåé·ã³ãŒãã ïœåã®ããŒã¿ãããã¯ã«å¯ŸããŠïŒžïŒ¯ïŒ²æŒç®ãè¡ããïŒãããã¯ã®åé·ã³ãŒããããªãã¡ïœïŒïŒæ¹åŒïŒïœããŒã¿ãããã¯ãïŒåé·ã³ãŒãïŒãåŸãã ã§äœ¿ããã
RAID 5 ãããŒã¿ã®ãããã¯ãšåé·ã³ãŒããã¢ã¬ã€ã®ãã¹ãŠã®ãã£ã¹ã¯ã«åšæçã«æžã蟌ãŸããŸãã - XOR æŒç®ã«åºã¥ãå¶æ°-å¥æ°ã¢ã«ãŽãªãºã ã 2 ãããã¯ã®åé·ã³ãŒããã€ãŸã n+2 ã¹ããŒã ãæ§ç¯ã§ããŸãã
- XOR æŒç®ã«åºã¥ã STAR ã¢ã«ãŽãªãºã ã 3 ãããã¯ã®åé·ã³ãŒããã€ãŸã n+3 ã¹ããŒã ãæ§ç¯ã§ããŸãã
- ãã©ããã ã³ãŒãã¯ãMicrosoft ã®ãã XNUMX ã€ã®åé·ã³ãŒãã§ãã
5.Yandexã§ã®äœ¿çš
å€ãã® Yandex ã€ã³ãã©ã¹ãã©ã¯ã㣠ãããžã§ã¯ãã§ã¯ãä¿¡é Œæ§ã®é«ãããŒã¿ ã¹ãã¬ãŒãžã®ããã«åé·ã³ãŒãã䜿çšãããŠããŸãã ããã§ã¯ããã€ãã®äŸã瀺ããŸãã
- MDS å éšãªããžã§ã¯ã ã¹ãã¬ãŒãžãèšäºã®åé ã§èª¬æããŸããã
YT â Yandex ã® MapReduce ã·ã¹ãã ãYDB (Yandex Database) - æ°ãã SQL åæ£ããŒã¿ããŒã¹ã
MDS ã¯ãLRC åé·ã³ãŒãã8-2-2 æ¹åŒã䜿çšããŸãã åé·ã³ãŒããæã€ããŒã¿ã¯ã12 ã€ã®ç°ãªã DC (å DC ã« 3 ã€ã®ãµãŒããŒ) ã®ç°ãªããµãŒããŒã«ãã 4 ã®ç°ãªããã£ã¹ã¯ã«æžã蟌ãŸããŸãã ããã«ã€ããŠè©³ããã¯ã
YT ã¯ãæåã«å®è£ ããããªãŒããœãã¢ã³ ã³ãŒã (ã¹ããŒã 6-3) ãš LRC åé·ã³ãŒã (ã¹ããŒã 12-2-2) ã®äž¡æ¹ã䜿çšããŠãããLRC ãåªå ãããã¹ãã¬ãŒãžæ¹åŒã§ãã
YDB ã¯å¶æ°-å¥æ°ããŒã¹ã®åé·ã³ãŒãã䜿çšããŸã (å³ 4-2)ã YDBã®åé·ã³ãŒãã«ã€ããŠã¯ãã§ã«
ç°ãªãåé·ã³ãŒã ã¹ããŒã ã䜿çšãããã®ã¯ãã·ã¹ãã ã®èŠä»¶ãç°ãªãããã§ãã ããšãã°ãMDS ã§ã¯ãLRC ã䜿çšããŠä¿åãããããŒã¿ã¯äžåºŠã« 3 ã€ã® DC ã«é 眮ãããŸãã ããããã® DC ã«é害ãçºçããå Žåã§ããããŒã¿ãåŒãç¶ãèªã¿åãå¯èœã§ããããšãéèŠã§ãããã®ãããããããã® DC ãå©çšã§ããªãå Žåã§ããã¢ã¯ã»ã¹ã§ããªããããã¯ã®æ°ã蚱容ç¯å²å ã«ãªãããã«ããããã¯ã DC å šäœã«åæ£ããå¿ èŠããããŸãã 1-8-2 æ¹åŒã§ã¯ãå DC ã« 2 ã€ã®ãããã¯ãé 眮ã§ããããããã® DC ããªãã«ãªããš 4 ã€ã®ãããã¯ã䜿çšã§ããªããªããããŒã¿ãèªã¿åãããšãã§ããŸãã 4 ã€ã® DC ã«é 眮ãããšãã«ã©ã®ãããªã¹ããŒã ãéžæããã«ããŠãããããã®å Žåã (r + l) / n >= 3 ã§ãªããã°ãªããŸãããã€ãŸããã¹ãã¬ãŒãžã®åé·æ§ã¯å°ãªããšã 0,5% ã«ãªããŸãã
YT ã§ã¯ç¶æ³ãç°ãªããŸããå YT ã¯ã©ã¹ã¿ã¯å®å šã« 1 ã€ã® DC å ã«é 眮ãããŠãã (ç°ãªã DC å ã®ç°ãªãã¯ã©ã¹ã¿) ããããã®ãããªå¶éã¯ãããŸããã 12-2-2 ã¹ããŒã 㯠33% ã®åé·æ§ãæäŸããŸããã€ãŸããããŒã¿ã®ä¿åãå®äŸ¡ã§ãããMDS ã¹ããŒã ãšåæ§ã«ãæ倧 4 ã€ã®åæãã£ã¹ã¯åæ¢ã«ãèããããšãã§ããŸãã
ããŒã¿ ã¹ãã¬ãŒãžããã³åŠçã·ã¹ãã ã§ã®åé·ã³ãŒãã®äœ¿çšã«ã¯ãããŒã¿ ãªã«ããªã®åŸ®åŠãªéããã¯ãšãªå®è¡æéã«å¯Ÿãããªã«ããªã®åœ±é¿ãããŒã¿èšé²ã®æ©èœãªã©ãããã«å€ãã®æ©èœããããŸãããããã®æ©èœãšãã®ä»ã®æ©èœã«ã€ããŠã¯ãåå¥ã«èª¬æããã€ããã§ãããããã¯ã«èå³ãããã°ãå®éã®åé·ã³ãŒãã®äœ¿çšã«ã€ããŠèª¬æããŸãã
6. ãªã³ã¯
- ãªãŒããœãã¢ã³ã³ãŒããšã¬ãã¢äœã«é¢ããäžé£ã®èšäº:
https://habr.com/ru/company/yadro/blog/336286/
https://habr.com/ru/company/yadro/blog/341506/
圌ãã¯èŠªãã¿ãããèšèªã§æ°åŠãããæ·±ãèå¯ããŸãã - LRC ã«é¢ãã Microsoft ã®èšäº:
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/LRC12-cheng20webpage.pdf
ã»ã¯ã·ã§ã³ 2 ã§ã¯çè«ãç°¡åã«èª¬æãã次ã«å®éã® LRC ã®çµéšã«ã€ããŠèª¬æããŸãã - å¶æ°-å¥æ°ã¹ããŒã :
https://people.eecs.berkeley.edu/~kubitron/courses/cs262a-F12/handouts/papers/p245-blaum.pdf - STARã¹ããŒã :
https://www.usenix.org/legacy/event/fast05/tech/full_papers/huang/huang.pdf - ãã©ãããã³ãŒã:
https://www.microsoft.com/en-us/research/publication/pyramid-codes-flexible-schemes-to-trade-space-for-access-efficiency-in-reliable-data-storage-systems/ - MDS ã®åé·ã³ãŒã:
https://habr.com/ru/company/yandex/blog/311806 - YT ã®åé·ã³ãŒã:
https://habr.com/ru/company/yandex/blog/311104/ - YDB ã®åé·ã³ãŒã:
https://www.youtube.com/watch?v=dCpfGJ35kK8
åºæïŒ habr.com