äŒè°ã¯11æ12æ¥ãšXNUMXæ¥ã«ãµã³ã¯ãããã«ãã«ã¯ã§éå¬ããã
Hydra ã¯ãããæ°å¹Žã§æãéèŠãªã«ã³ãã¡ã¬ã³ã¹ã® XNUMX ã€ã§ãã ããã«å
ç«ã£ãŠãéåžžã«çå£ãªæºåãè¬æŒè
ã®éžæãå ±åãè¡ãããŸããã å
é±ã¯ããã«ã€ããŠ
æã
åæ©
ããã°ã©ãã³ã°ã«æºãã£ãŠããå Žåã¯ãäœããã®åœ¢ã§ãã«ãã¹ã¬ãããšåæ£ã³ã³ãã¥ãŒãã£ã³ã°ãæ±ã£ãŠããããšã«ãªããŸãã é¢é£åéã®å°é家ã¯ããããšçŽæ¥ååããŸãããæé»ã®ãã¡ã«ãåæ£ã¯ããããå Žæããç§ãã¡ã«æ³šç®ããŠããŸããã©ã®ãã«ãã³ã¢ ã³ã³ãã¥ãŒã¿ãŒãåæ£ãµãŒãã¹ã«ãã䞊åèšç®ãå®è¡ãããã®ãååšããŸãã
ã¢ããªã±ãŒã·ã§ã³ ããã°ã©ãã³ã°ã®ããŸããŸãªåŽé¢ãã«ããŒããã«ã³ãã¡ã¬ã³ã¹ãå€æ°ãããŸãã ãã®å察åŽã«ã¯ãèšå€§ãªéã®è€éãªçè«ãè¬çŸ©åœ¢åŒã§æããã«ããå°éã®ç§åŠåŠæ ¡ããããŸãã ããšãã°ããµã³ã¯ãããã«ãã«ã¯ã®ããã©ãšäžŠè¡ããŠã
èããŠã¿ãŠãã ãããç§ãã¡ã¯ãç§ãã¡ãç 究ããŠããç§åŠãšå·¥åŠã®åéã®åµå§è ã«çŽæ¥äŒãããšãã§ããçŽ æŽãããæ代ã«çããŠããŸãã ç©çåŠè ã¯ãã¥ãŒãã³ã«ãã¢ã€ã³ã·ã¥ã¿ã€ã³ã«ãäŒããªãã§ããã - åè»ã¯åºçºããŸããã ããããç§ãã¡ã®é£ã«ã¯ãåæ£ã·ã¹ãã çè«ã®åºç€ãç¯ãã人æ°ã®ããããã°ã©ãã³ã°èšèªãçºæããããããã¹ãŠãåããŠå®çšçãªãããã¿ã€ãã§å ·äœåãã人ã ãä»ãçããŠããŸãã ãããã®äººã ã¯éäžã§ä»äºãèŸããããã§ã¯ãªããçŸåšäžççã«æåãªå€§åŠãäŒæ¥ã§å·®ãè¿«ã£ã課é¡ã«åãçµãã§ãããä»æ¥ã®æ倧ã®ç¥èãšçµéšã®æºãšãªã£ãŠããŸãã
ãã®äžæ¹ã§ã圌ãã«äŒãæ©äŒã¯éåžžãçŽç²ã«çè«çãªãã®ã«ãšã©ãŸããŸããããã§ã¹ã¿ãŒå€§åŠã®å ¬éã€ãã³ããåžžã«ç£èŠãããã®åŸããã«ç±³åœã«è¡ãããã€ã±ã«ã»ã¹ã³ããã®è¬çŸ©ãåããããã«æ»ã£ãŠããããšãã§ãã人ã¯ã»ãšãã©ããŸããã ããã©ã®ã¡ã³ããŒå šå¡ã蚪ãããšãèšå€§ãªæéã®ç¡é§ãé€ãã°ãå°é¡ã®è²»çšããããã§ããã (èå³æ·±ãã¯ãšã¹ãã®ããã«æããŸãã)ã
äžæ¹ã§ãçŸåšãåæ£ã·ã¹ãã ã«ãããå·®ãè¿«ã£ãåé¡ã«åãçµãã§ããããããšã³ãžãã¢ãããããããã圌ãã¯ééããªãäŒãããããšããããããããŸãã ããããããã«åé¡ããããŸã - 圌ã㯠åããããŠåœŒãã®æéã¯è²Žéã§ãã ã¯ããããªãã MicrosoftãGoogleããŸã㯠JetBrains ã®åŸæ¥å¡ã§ããã°ã瀟å ã€ãã³ãã§æåãªè¬æŒè ã®äžäººã«äŒãå¯èœæ§ã¯æ¥æ¿ã«é«ãŸããŸãããäžè¬çã«ã¯ããããããããæ¯æ¥èµ·ããããã§ã¯ãããŸããã
ãã®ããã«ããŠãããã©äŒè°ã¯ãç§ãã¡ã®ã»ãšãã©ãèªåãã¡ã ãã§ã¯å®è¡ã§ããªãéèŠãªä»»åãéæããŸããããã¯ãããªãã®ã¢ã€ãã¢ã亀æµãããªãã®äººçãå€ããå¯èœæ§ã®ãã人ã ãäžåºŠã«äžãæã«éããŸãã 誰ããåæ£ã·ã¹ãã ãè€éãªåºæ¬çãªãã®ãå¿ èŠãšããŠããããã§ã¯ãªãããšã¯èªããŸãã PHP 㧠CRUD ãããã°ã©ãã³ã°ããã°ãäžç幞ãã§ããç¶ããããšãã§ããŸãã ãããããããå¿ èŠãšããŠãã人ã«ã¯ãããããã£ã³ã¹ã§ãã
ããã¬ã§ã®ããã©äŒè°ã®æåã®çºè¡šããããªãé·ãæéãçµéããŸããã ãã®éã«å€ãã®äœæ¥ãè¡ãããçŸåšã§ã¯ã»ãŒãã¹ãŠã®ã¬ããŒãã®ãªã¹ããå®æããŸããã é ãã·ã³ã°ã«ã¹ã¬ãã ã¢ã«ãŽãªãºã ã¯ãªããçŽç²ãªåæ£ããŒãã³ã¢ã ãã§ãã äžè¬çãªèšèã§çµããŠãä»ç§ãã¡ãæã«ããŠãããã®ãèŠãŠã¿ãŸãããã
åºèª¿è¬æŒ
åºèª¿è¬æŒã¯ã«ã³ãã¡ã¬ã³ã¹ã®äžæ¥ã®å§ãŸããšçµããã§ãã éåžžãéäŒåºèª¿è¬æŒã®ç®çã¯ãã«ã³ãã¡ã¬ã³ã¹ã®å šäœçãªç²Ÿç¥ãšæ¹åæ§ãèšå®ããããšã§ãã éäŒã®åºèª¿è¬æŒã§ã¯ããããŸã§ãšã¯äžç·ãç»ããã«ã³ãã¡ã¬ã³ã¹äžã«ç²åŸããç¥èãšã¹ãã«ãã©ã®ããã«æŽ»çšããŠçããŠãããã«ã€ããŠèª¬æããŸãã å§ãŸããšçµãã: æãããèšæ¶ãããäžè¬ã«éèŠæ§ãå¢ãããã®ã
ã¯ãªãã¯ãªã㯠H2O åæ£ K/V ã¢ã«ãŽãªãºã
Cliff 㯠Java çã®ã¬ãžã§ã³ãã§ãã 90 幎代åŸåãå士è«æãšããŠåœŒã¯æ¬¡ã®ã¿ã€ãã«ã®è«æãæžããŸããã
åé ã®åºèª¿è¬æŒã§ãã¯ãªãã¯åœŒã®ããäžã€ã®åãçµã¿ã«ã€ããŠèªããŸãã
ã¯ãªããäžããããäžã€ã®å ±å㯠-
æãèå³æ·±ãéšåã¯ã倧äŒæ¥åãã®ããŒããŠã§ã¢ãã€ãŸã Java ãå®è¡ããã¹ãŒããŒã³ã³ãã¥ãŒã¿ãäœæãããšãã«å§ãŸããŸããã ããã¯ããªãé©æ°çãªãã®ã§ãç¹å¥ãªèŠä»¶ãæ〠Java ã«ç¹åããŠèª¿æŽãããŸãããäœäžæåæ¢ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã®ããã®èªã¿åãã¡ã¢ãª ããªã¢ãå¢çãã§ãã¯ã®ããé åãä»®æ³åŒã³åºããªã©ã§ããæãåªãããã¯ãããžã® 1 ã€ã¯ãããŒããŠã§ã¢ ãã©ã³ã¶ã¯ã·ã§ã³ ã¡ã¢ãªã§ãã 864 ã³ã¢ã®ããããã® LXNUMX å šäœããã©ã³ã¶ã¯ã·ã§ã³æžã蟌ã¿ã«åå ã§ããŸããããã¯ãJava ã§ããã¯ãæäœããå Žåã«ç¹ã«éèŠã§ã (å®éã®ã¡ã¢ãªã®ç«¶åããªãéããåæããããããã¯ã¯äžŠè¡ããŠåäœã§ããŸã)ã ãããããã®çŸããã¢ã€ãã¢ã¯å³ããçŸå®ã«ãã£ãŠæã¡ç ãããŸããããããŠãã®è¬æŒã§ãã¯ãªãã¯ãHTM ãš STM ããã«ãã¹ã¬ãã ã³ã³ãã¥ãŒãã£ã³ã°ã®å®éã®ããŒãºã«ããŸãé©ããŠããªãçç±ã説æããŸãã
ãã€ã±ã«ã»ã¹ã³ãã - äºéããŒã¿æ§é
æç§æžã®ãããã§äžçäžããã€ã±ã«ãç¥ã£ãŠããŸã
Java ã®äžçã«é¢ããŠã¯ãããã¯ç¹æ®ãªã±ãŒã¹ã§ãã圌㯠Doug Lea ãšãšãã«ãJava ã©ã€ãã©ãªãåäœãããã³ããããã³ã° ã¢ã«ãŽãªãºã ãšåæãã¥ãŒãéçºããŸããã ããã¯ãŸãã«ãäºéããŒã¿æ§é ãåºèª¿è¬æŒã®å
容ã§ããJava SE 6 ã§ã®ãããã®æ§é ã®å°å
¥ã«ãããããã©ãŒãã³ã¹ã 10 ååäžããŸããã java.util.concurrent.ThreadPoolExecutor
ã ãããã®ãäºéããŒã¿æ§é ããäœã§ãããã«ã€ããŠäºåã«ç¥ãããå Žåã¯ãããã«é¢ããæ
å ±ããããŸãã
ã¢ãŒãªã¹ã»ããŒãªã㌠- ãããã¯ãã§ãŒã³ãšåæ£ã³ã³ãã¥ãŒãã£ã³ã°ã®æªæ¥
ãã®ç· ããããã®åºèª¿è¬æŒã§ã¯ãã¢ãŒãªã¹æ°ãåæ£ã³ã³ãã¥ãŒãã£ã³ã°ã®å€å žã®èŠ³ç¹ãããããã¯ãã§ãŒã³åæ£ã·ã¹ãã ã®çè«ãšå®è·µããããŠãããå€ãã®é¢é£åé¡ãã©ã®ããã«åçŽåãããã«ã€ããŠè©±ããŸãã ããã¯ã«ã³ãã¡ã¬ã³ã¹ã®ããŒãã®ã¿ãåãäžããã¬ããŒãã§ãããã€ãã³ã°ã®èªå€§å®£äŒã«é¢ãããã®ã§ã¯ãªããããŸããŸãªã¿ã¹ã¯ã«é¢é£ããŠç§ãã¡ã®ç¥èãã©ã®ããã«é©ãã»ã©å¹æçãã€é©åã«äœ¿çšã§ãããã«ã€ããŠã®ãã®ã§ãã
2017 幎 XNUMX æãã¢ãŒãªã¹ãã㯠SPTDC ã®åŠæ ¡ã«éãããã«ãã§ã«ãã·ã¢ã蚪ããJUG.ru ã®ããŒãã¢ããã«åå ããŠããããã®é²ç»ã¯ YouTube ã§èŠãããšãã§ããŸãã
ã¡ã€ã³ããã°ã©ã
次ã«ãããã°ã©ã ã«å«ãŸããã¬ããŒãã®æŠèŠã説æããŸãã ã¬ããŒãã®äžéšã¯ããã§è©³çŽ°ã«èª¬æããããã®ä»ã¯ããç°¡åã«èª¬æãããŸãã é·ã説æã¯äž»ã«è±èªã®ã¬ããŒãã§ãç§åŠè«æããŠã£ãããã£ã¢ã®çšèªãªã©ãžã®ãªã³ã¯ãå¿
èŠã§ããã å®å
šãªãªã¹ããå©çšå¯èœã§ã
ã¬ã¹ãªãŒã»ã©ã³ããŒã - QïŒA
Leslie Lamport ã¯ãåæ£ã³ã³ãã¥ãŒãã£ã³ã°ã«ãããç¬åµçãªèäœã®èè
ã§ãã
ããã¯ãããã°ã©ã ã®åœ¢åŒã®ç¹ã§æãçããéšåã§ãããã¬ããŒãã§ãããªãã質çå¿çã§ãã èŽè¡ã®ããªãã®éšåããã©ã³ããŒãã®çè«ãã«åºã¥ããããããçš®é¡ã®äœåã圌èªèº«ã®è«æãã¬ããŒãã«ãã§ã«ç²ŸéããŠããïŒãŸãã¯ç²Ÿéããå¯èœæ§ãããïŒå Žåãå©çšå¯èœãªãã¹ãŠã®æéãçŽæ¥ã³ãã¥ãã±ãŒã·ã§ã³ã«è²»ããããšãããéèŠã§ãã
ã¢ã€ãã¢ã¯ã·ã³ãã«ã§ããYouTube 㧠XNUMX ã€ã®ã¬ããŒããèŠèŽããŸãã
ãã§ã«å
¬éãããŠãã XNUMX ã€ã®ãããªã®ãã¡ã® XNUMX ã€ç®ã¯ã
泚: YouTube ã«ã¯ä»ã«ãã¬ã¹ãªãŒ ã©ã³ããŒãã®ãããªããããããããŸãã ããšãã°ãçŽ æŽããããã®ããããŸã
ãã«ãã£ã³ã»ã¯ã¬ãããã³ - åæ£ã³ã©ãã¬ãŒã·ã§ã³ã®ããã®ãŠãŒã¶ãŒããã€ã¹éã§ã®ããŒã¿ã®åæ
Martin Kleppmann ã¯ãã±ã³ããªããžå€§åŠã®ç 究è
ã§ãCRDT ãšã¢ã«ãŽãªãºã ã®åœ¢åŒçæ€èšŒã«åãçµãã§ããŸãã ããŒãã£ã³ã®æ¬
åŠè¡ç 究ã«ç§»ãåãããŒãã£ã³ã¯ç£æ¥çã§åããæåãåãã XNUMX ã€ã®æ°èäŒæ¥ãå ±åèšç«ããŸããã
- Rapportive ã¯ãé»åã¡ãŒã«ããé£çµ¡å ã®ãœãŒã·ã£ã« ãããã£ãŒã«ã衚瀺ããããšã«ç¹åããŠãããLinkedIn ã 2012 幎ã«è²·åããŸããã
- Go Test It ã¯ãããŸããŸãªãã©ãŠã¶ã§ Web ãµã€ããèªåçã«ãã¹ããããµãŒãã¹ã§ãRedGate ã 2009 幎ã«è²·åããŸããã
äžè¬ã«ãMartin ã¯åºèª¿è¬æŒã»ã©æåã§ã¯ãããŸãããããã§ã«åæ£ã³ã³ãã¥ãŒãã£ã³ã°ã®çºå±ãšæ¥çã«ããçšåºŠã®è²¢ç®ãæãããŠããŸãã
ãã®è¬æŒã§ã¯ãããŒãã£ã³ã¯åŠè¡ç 究ã«è¿ããããã¯ã«ã€ããŠè©±ããŸãã Google ããã¥ã¡ã³ããåæ§ã®ããã¥ã¡ã³ãå
±åç·šéæ©èœã§ã¯ããå
±åç·šéããšã¯è€è£œã¿ã¹ã¯ãæããŸããåãŠãŒã¶ãŒã¯å
±æããã¥ã¡ã³ãã®ç¬èªã®ã¬ããªã«ãæã¡ããããå€æŽãããã¹ãŠã®å€æŽããããã¯ãŒã¯ãä»ããŠæ®ãã®ãŠãŒã¶ãŒã«éä¿¡ãããŸããåå è
ã ãªãã©ã€ã³ã§ããã¥ã¡ã³ããå€æŽãããšãä»ã®åå è
ãšã®é¢ä¿ã§ããã¥ã¡ã³ãã«äžæçãªäžæŽåãçããååæã«ã¯ç«¶ååŠçãå¿
èŠã«ãªããŸãã ãŸãã«ããã圌ãã®ååšç®çã§ã
æ¥é±ãããã¬ã«é¢ããããŒãã£ã³ã®ãã³ã°ã€ã³ã¿ãã¥ãŒãæ²èŒããäºå®ã§ãããèå³æ·±ããã®ã«ãªãã§ãããã
ãããã»ã©ãã«ãã - åŸ
æ©ãªãã®ããŒã¿æ§é ãšåŸ
æ©ãªãã®ãã©ã³ã¶ã¯ã·ã§ã³
Pedro 㯠Cisco ã§åããŠãããéå» XNUMX 幎ã»ã©ã«ããã£ãŠãåæã¡ã«ããºã ãããã¯ããªãŒããã³ãŠã§ã€ãããªãŒã®ããŒã¿æ§é ãããã³ãã®ãããã¯ã«é¢ããŠæ³åã§ãããã¹ãŠã®ãã®ãå«ã䞊åã¢ã«ãŽãªãºã ãéçºããŠããŸããã 圌ã®çŸåšã®ç 究ãšãšã³ãžãã¢ãªã³ã°ã®é¢å¿ã¯ãæ£ç¢ºã§ã¹ã±ãŒã©ãã«ã§ãã©ãŒã«ããã¬ã©ã³ããªã¢ããªã±ãŒã·ã§ã³ãå¯èœã«ãããŠãããŒãµã«æ§é ããœãããŠã§ã¢ ãã©ã³ã¶ã¯ã·ã§ã³ ã¡ã¢ãªãæ°žç¶ã¡ã¢ãªãããã³åæ§ã®ãã¯ãããžã«çŠç¹ãåœãŠãŠããŸãã 圌ã¯çãç¯å²ã§åºãç¥ãããŠããããã°ã®èè
ã§ããããŸã
çŸåšãã»ãšãã©ã®ãã«ãã¹ã¬ãã ã¢ããªã±ãŒã·ã§ã³ã¯ãã¢ã¯ã¿ãŒéã®ã¡ãã»ãŒãž ãã¥ãŒã®äœ¿çšãããããŒ/å€ã¹ãã¢ã®ã€ã³ããã¯ã¹ä»ãããŒã¿æ§é ã«è³ããŸã§ã䞊åããŒã¿æ§é äžã§å®è¡ãããŸãã ããã㯠Java JDK ã§é·å¹Žã«ããã£ãŠæ£åžžã«åäœããŠãããåŸã ã« C++ ã«ãè¿œå ãããŠããŸãã
䞊åããŒã¿æ§é ãå®è£ ããæãç°¡åãªæ¹æ³ã¯ãã¡ãœããããã¥ãŒããã¯ã¹ã«ãã£ãŠä¿è·ãããã·ãŒã±ã³ã·ã£ã« (ã·ã³ã°ã«ã¹ã¬ãã) å®è£ ã§ãã ããã¯ãã©ã® XNUMX æã§ãã¢ã¯ã»ã¹ã§ããŸãããã¹ã±ãŒãªã³ã°ãšããã©ãŒãã³ã¹ã«æãããªåé¡ããããŸãã åæã«ãããã¯ããªãŒããã³ãŠã§ã€ãããªãŒã®ããŒã¿æ§é ã¯ããšã©ãŒãžã®å¯ŸåŠãåªããŠããã ãã§ãªããããã©ãŒãã³ã¹ ãããã¡ã€ã«ãåªããŠããŸãããã ãããã®éçºã«ã¯æ·±ãå°éç¥èãšç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ãžã®é©å¿ãå¿ èŠã§ãã ã³ãŒãã XNUMX è¡ééããã ãã§ããã¹ãŠãå£ããŠããŸããŸãã
å°é家ã§ãªããŠããã®ãããªããŒã¿æ§é ãèšèšããã³å®è£
ã§ããããã«ããã«ã¯ã©ãããã°ããã§ãããã? ã·ãŒã±ã³ã·ã£ã« ã¢ã«ãŽãªãºã ã¯ã次ã®ããããã䜿çšããŠã¹ã¬ãã ã»ãŒãã«ããããšãã§ããããšãç¥ãããŠããŸãã
ãã€ãžã»ãã¯ãŒã - åæ£åã³ã³ã»ã³ãµã¹ã解æŸãã
ãã€ãã£ã»ãã¯ãŒãã¯ãããŒãã£ã³ãšåæ§ãã±ã³ããªããžå€§åŠã®åæ£ã·ã¹ãã ç 究è
ã§ãã 圌女ã®å°éåéã¯ãäžè²«æ§ãèé害æ§ãããã©ãŒãã³ã¹ãåæ£åã³ã³ã»ã³ãµã¹ã§ãã 圌女ã¯ãPaxos ã¢ã«ãŽãªãºã ãäžè¬åããããšã§æãããç¥ãããŠããŸãã
ãããæãåºããŠ
ã¢ãã¬ã¹æå®ããªãŒããŒã®éžåºããããã¯ããŸãã¯èª¿æŽã«ã€ããŠãè€æ°ã®ãã¹ãéã§åæãèŠã€ããèœåã¯ãææ°ã®åæ£ã·ã¹ãã ã«ãããåºæ¬çãªåé¡ã§ãã Paxos ã¯çŸåšãã³ã³ã»ã³ãµã¹åé¡ã解決ããããã®äž»ãªæ¹æ³ã§ãããããŸããŸãªå®éã®ããŒãºã«åãããŠã¢ã«ãŽãªãºã ãæ¡åŒµããã³æé©åããããã«ãPaxos ãäžå¿ãšããå€ãã®ç 究ãè¡ãããŠããŸãã
ãã®è¬æŒã§ã¯ãPaxos ã®çè«çåºç€ãåæ€èšããå ã®èŠä»¶ãç·©åããã¢ã«ãŽãªãºã ãäžè¬åããŸãã Paxos ã¯æ¬è³ªçã«ãèšå€§ãªç¯å²ã®ã³ã³ã»ã³ãµã¹ ã¢ãããŒãã®äžã® XNUMX ã€ã®éžæè¢ã«ããããã¹ãã¯ãã«äžã®ä»ã®ç¹ãåªããåæ£ã·ã¹ãã ãæ§ç¯ããã®ã«éåžžã«åœ¹ç«ã€ããšãããããŸãã
ã¢ã¬ãã¯ã¹ã»ãããã â äžæçãªã¬ããªã±ãŒã·ã§ã³ãšå®äŸ¡ãªã¯ã©ãŒã©ã ã§ã¹ãã¬ãŒãž ã³ã¹ããåæž
Alex ã¯ããŒã¿ããŒã¹ãšã¹ãã¬ãŒãž ã·ã¹ãã ã®ã¹ãã·ã£ãªã¹ãã§ãããç§ãã¡ã«ãšã£ãŠããã«éèŠãªããšã«ã
ãåããã·ã¹ãã ã®å Žå
ãã ããäœäºã«ã代åã¯ã€ããã®ã§ãã ã¯ã©ãŒã©ã ã¬ããªã±ãŒã·ã§ã³ ã¹ããŒã ã¯ã¹ãã¬ãŒãž ã³ã¹ãã®å¢å ãæå³ããŸããåé¡ãçºçãããšãã«äœ¿çšã§ããååãªã³ããŒã確ä¿ããããã«ãåé·ããŒã¿ãè€æ°ã®ããŒãã«äžåºŠã«ä¿åããå¿ èŠããããŸãã ãã¹ãŠã®ããŒã¿ããã¹ãŠã®ã¬ããªã«ã«ä¿åããå¿ èŠã¯ãªãããšãããããŸããã äžéšã®ããŒãã«ã®ã¿ããŒã¿ãä¿åããé害åŠçã·ããªãªã«ç¹å¥ãªããŒã (äžæã¬ããªã«) ã䜿çšãããšãã¹ãã¬ãŒãžã®è² è·ã軜æžã§ããŸãã
ã¬ããŒãã®éçšã§æ€èšããŸã
ããããªãŒã»ãŽã¥ã³ã - ãŽã«ãŒãã³ãå
¬éããã
Dmitry 㯠Google ã®éçºè
ã§ãC/C++ ãš Go (Address/Memory/ThreadSanitizer) ã®åçãã¹ããããã³ Linux ã«ãŒãã«çšã®åæ§ã®ããŒã«ã«åãçµãã§ããŸãã ã¹ã±ãŒã©ãã«ãª goroutine ã¹ã±ãžã¥ãŒã©ãŒããããã¯ãŒã¯ ããŒã©ãŒã䞊åã¬ããŒãž ã³ã¬ã¯ã¿ãŒãšã㊠Go ã«è²¢ç®ããŸããã 圌ã¯ãã«ãã¹ã¬ããã®å°é家ã§ãããXNUMX åã®æ°ãããã³ããããã³ã° ã¢ã«ãŽãªãºã ã®äœæè
ã§ããã
次ã«ãã¬ããŒãèªäœã«ã€ããŠå°ã説æããŸãã Go èšèªã¯ããŽã«ãŒãã³ (ã©ã€ã ã¹ã¬ãã) ããã³ãã£ãã« (FIFO ãã¥ãŒ) ã®åœ¢åŒã§ãã«ãã¹ã¬ããããã€ãã£ã ãµããŒãããŠããŸãã ãããã®ã¡ã«ããºã ã«ããããŠãŒã¶ãŒã¯ææ°ã®ãã«ãã¹ã¬ãã ã¢ããªã±ãŒã·ã§ã³ãéåžžã«ç°¡åãã€æ¥œããäœæã§ããããã«ãªãããŸãã§éæ³ã®ããã«èŠããŸãã ç§ãã¡ãç解ããŠããããã«ãããã«ã¯éæ³ã¯ãããŸããã ãã®è¬æŒã§ã¯ãDmitry ã Go ã¹ã±ãžã¥ãŒã©ã®è€éããæãäžãããã®ãéæ³ããå®è£ ããç§å¯ã瀺ããŸãã ãŸããã¹ã±ãžã¥ãŒã©ã®äž»èŠã³ã³ããŒãã³ãã®æŠèŠã説æãããããã©ã®ããã«æ©èœãããã説æããŸãã 次ã«ãé§è»/é§è»è§£é€æŠç¥ãããã㯠ã·ã¹ãã ã³ãŒã«ã®åŠçãªã©ã®åå¥ã®åŽé¢ã詳ããèŠãŠãããŸãã æåŸã«ãDmitry ãã¹ã±ãžã¥ãŒã©ãŒã®æ¹åã®å¯èœæ§ã«ã€ããŠå°ã話ããŸãã
ããããªãŒã»ãã¬ã€ãã§ã³ã³ - 確ççã¹ã±ãããªã©ã«ããåæ£ã°ã©ãåæã®é«éå
ããããªãŒã¯ã倧åŠãç§åŠã³ãã¥ããã£ãšã®ã€ãªããã倱ãããšãªããã»ãŒ 9 幎éã¢ãŠããœãŒã·ã³ã°ã§åããŸããã ãªããã¯ã©ã¹ããã«ãããããã°ããŒã¿åæã¯ã圌ã«ãšã£ãŠãçè«çãã¬ãŒãã³ã°ãšç§åŠçåºç€ãå®éã®éèŠã®é«ã補åã®éçºãšçµã¿åããããŠããŒã¯ãªæ©äŒãšãªããŸããã
åæ£ã°ã©ãåæã¯ããããŸã§ãããããŠä»ãé£ããäœæ¥ã§ããé£æ¥ããé ç¹ã®æ¥ç¶ã«é¢ããæ å ±ãååŸããå¿ èŠãããå Žåãå€ãã®å ŽåãããŒã¿ããã·ã³éã§è»¢éããå¿ èŠãããããããå®è¡æéã®å¢å ãšãããã¯ãŒã¯ ã€ã³ãã©ã¹ãã©ã¯ãã£ãžã®è² è·ã®å¢å ã«ã€ãªãããŸãã ãã®è¬æŒã§ã¯ã確ççãªããŒã¿æ§é ãããœãŒã·ã£ã« ãããã¯ãŒã¯ã«ãããå人é¢ä¿ã°ã©ãã®å¯Ÿç§°æ§ãªã©ã®äºå®ã䜿çšããŠãå€§å¹ ãªåŠçé床ãå®çŸããæ¹æ³ã説æããŸãã ããããã¹ãŠããApache Spark ã®ã³ãŒãäŸã§èª¬æããŸãã
ããã¹ã»ãªã¹ããã©ã - äžæçãªã¬ããªã±ãŒã·ã§ã³ãšå®äŸ¡ãªã¯ã©ãŒã©ã ã§ã¹ãã¬ãŒãž ã³ã¹ããåæž
ããã¹ - éçºè
ãã®è¬æŒã§ã¯ãéå»æ°å¹Žéã«çºæãããåæ£ãã©ã³ã¶ã¯ã·ã§ã³ ãããã³ã«ã«ã€ããŠèŠãŠãããŸããåæ£ãã©ã³ã¶ã¯ã·ã§ã³ ãããã³ã«ã¯ãæ¡ä»¶ä»ãæŽæ° (æ¯èŒãšèšå®) ããµããŒãããããŒã¿ ã¹ãã¢äžã§ã¯ã©ã€ã¢ã³ãåŽã«å®è£ ã§ããŸãã èå¿ãªã®ã¯ã人ç㯠2 ãã§ãŒãº ã³ãããã§çµããããã§ã¯ãªãããã©ã³ã¶ã¯ã·ã§ã³ã¯ã¢ããªã±ãŒã·ã§ã³ ã¬ãã«ã§ããããããŒã¿ããŒã¹ã«è¿œå ã§ããŸãããç°ãªããããã³ã« (XNUMXPCãããŒã³ã¬ãŒã¿ãŒãRAMP) ã«ã¯ç°ãªããã¬ãŒããªãããããç§ãã¡ã«ã¯äžããããªããšããããšã§ããç¡æã§ã
ã¢ã¬ã¯ã»ã€ã»ãžããŽã£ãšã - ãã¹ãŠã® ML ã¢ã«ãŽãªãºã ãåæ£å€©åœã«å°éã§ããããã§ã¯ãããŸãã
ã¢ã¬ã¯ã»ã€ (
ãã®è¬æŒã§ã¯ãAlexey ããApache Spark MLãApache MahoutãApache Flink ML ã䜿çšããçµéšãããã³ Apache Ignite ML ãäœæããçµéšã«åºã¥ããŠãåæ£ã¢ãŒãã§ã®å®è¡ã«å€å žçãªæ©æ¢°åŠç¿ã¢ã«ãŽãªãºã ãé©å¿ãããéã®åé¡ã«ã€ããŠè©±ããŸãã Alexey ã¯ããããã®ãã¬ãŒã ã¯ãŒã¯ã§ã®åæ£ ML ã¢ã«ãŽãªãºã ã®å®è£ ã«ã€ããŠã話ããŸãã
æåŸã«ãYandex ããŒã¿ããŒã¹ã«é¢ãã Yandex ããã®ã¬ããŒãã XNUMX ã€ãããŸãã
ãŠã©ãžã¹ã©ãã»ã¯ãºããã©ã - Yandex ããŒã¿ããŒã¹ - èé害æ§ã確ä¿ããæ¹æ³
Vladislav ã¯ãåæ£ãã©ãããã©ãŒã ã°ã«ãŒãã® Yandex ã®éçºè
ã§ãã Yandex Database ã¯ãæ°Žå¹³ã¹ã±ãŒã©ãã«ã§å°ççã«åæ£ããããã©ãŒã«ããã¬ã©ã³ã㪠DBMS ã§ãããäžè²«æ§ã倱ãããšãªããã£ã¹ã¯ããµãŒããŒãã©ãã¯ãããŒã¿ã»ã³ã¿ãŒã®é害ã«èããããšãã§ããŸãã èé害æ§ã確ä¿ããããã«ãåæ£åã³ã³ã»ã³ãµã¹ãéæããããã®ç¬èªã®ã¢ã«ãŽãªãºã ãšãã¬ããŒãã§è©³ãã説æãããŠããå€ãã®æè¡çãœãªã¥ãŒã·ã§ã³ã䜿çšãããŠããŸãã ãã®ã¬ããŒãã¯ãDBMS éçºè
ãš DBMS ã«åºã¥ãã¢ããªã±ãŒã·ã§ã³ ãœãªã¥ãŒã·ã§ã³ã®éçºè
ã®äž¡æ¹ã«ãšã£ãŠèå³æ·±ããã®ãšãªãã§ãããã
ã»ãã§ã³ã»ãã§ãã§ãªã³ã - YDBã®åæ£ãã©ã³ã¶ã¯ã·ã§ã³
Semyon ã¯ãYandex ã®åæ£ãã©ãããã©ãŒã ã°ã«ãŒãã®éçºè ã§ãYDB ã€ã³ã¹ããŒã«ã®ãã«ãããã³ã䜿çšã®å¯èœæ§ã«åãçµãã§ããŸãã
Yandex ããŒã¿ããŒã¹ã¯ OLTP ã¯ãšãªçšã«èšèšãããŠããããã©ã³ã¶ã¯ã·ã§ã³ ã·ã¹ãã ã® ACID èŠä»¶ã«æºæ ããŠããŸãã ãã®ã¬ããŒãã§ã¯ãYDB ãã©ã³ã¶ã¯ã·ã§ã³ ã·ã¹ãã ã®åºç€ãšãªããã©ã³ã¶ã¯ã·ã§ã³ ã¹ã±ãžã¥ãŒãªã³ã° ã¢ã«ãŽãªãºã ã«ã€ããŠèå¯ããŸãã ã©ã®ãšã³ãã£ãã£ããã©ã³ã¶ã¯ã·ã§ã³ã«åå ããã®ãã誰ããã©ã³ã¶ã¯ã·ã§ã³ã«ã°ããŒãã«ãªé åºãå²ãåœãŠãã®ãããã©ã³ã¶ã¯ã·ã§ã³ã®ååæ§ãä¿¡é Œæ§ãããã³å³æ Œãªã¬ãã«ã®åé¢ãã©ã®ããã«éæãããããèŠãŠã¿ãŸãããã äžè¬çãªåé¡ãäŸãšããŠãXNUMX ãã§ãŒãº ã³ããããšç¢ºå®çãã©ã³ã¶ã¯ã·ã§ã³ã䜿çšãããã©ã³ã¶ã¯ã·ã§ã³ã®å®è£ ãèŠãŠã¿ãŸãããã ãããã®éãã«ã€ããŠè©±ãåããŸãããã
次ã¯äœã§ããïŒ
ã«ã³ãã¡ã¬ã³ã¹ã®ããã°ã©ã ã«ã¯åŒãç¶ãæ°ããã¬ããŒããæºèŒã§ãã ç¹ã«ãç§ãã¡ã¯ããã®å ±åãæåŸ
ããŠããŸãã ãããŒã¿ã»ã³ãŽã¡ã« (
ããã©äŒè°ã¯11æ12æ¥ãšXNUMXæ¥ã«ãµã³ã¯ãããã«ãã«ã¯ã§éå¬ãããã ãã±ããã¯å
¥æå¯èœã§ã
ããã©ã§ãäŒãããŸãããïŒ
åºæïŒ habr.com