äŒè°ã¯11æ12æ¥ãšXNUMXæ¥ã«ãµã³ã¯ãããã«ãã«ã¯ã§éå¬ããã ã䞊åããã³åæ£ã·ã¹ãã ã®éçºã«ç¹åããŠããŸãã Hydra ã®ããªãã¯ã¯ãã¯ãŒã«ãªç§åŠè (éåžžã¯æµ·å€ã®ç§åŠäŒè°ã§ããèŠãããªã) ãšæåãªçŸåœ¹ãšã³ãžãã¢ãç§åŠãšå®è·µã亀ãã XNUMX ã€ã®å€§ããªããã°ã©ã ã«çµã³ä»ããããšã§ãã
Hydra ã¯ãããæ°å¹Žã§æãéèŠãªã«ã³ãã¡ã¬ã³ã¹ã® XNUMX ã€ã§ãã ããã«å ç«ã£ãŠãéåžžã«çå£ãªæºåãè¬æŒè ã®éžæãå ±åãè¡ãããŸããã å é±ã¯ããã«ã€ã㊠JUG.ruã°ã«ãŒãã®ãã£ã¬ã¯ã¿ãŒãã¢ã¬ã¯ã»ã€ã»ãã§ãããæ°ãšïŒ).
æã 忣ã·ã¹ãã çè«ã®åµå§è ã§ããã¬ã¹ãªãŒ ã©ã³ããŒããã¢ãŒãªã¹ ããŒãªããŒããã€ã±ã« ã¹ã³ãããšãã XNUMX 人ã®éèŠãªåå è ã«ã€ããŠè©±ããŸãã ä»åºŠã¯ããã°ã©ã å šäœã«ã€ããŠè©³ãã説æããŸãã

åæ©
ããã°ã©ãã³ã°ã«æºãã£ãŠããå Žåã¯ãäœããã®åœ¢ã§ãã«ãã¹ã¬ãããšåæ£ã³ã³ãã¥ãŒãã£ã³ã°ãæ±ã£ãŠããããšã«ãªããŸãã é¢é£åéã®å°éå®¶ã¯ããããšçŽæ¥ååããŸãããæé»ã®ãã¡ã«ã忣ã¯ããããå Žæããç§ãã¡ã«æ³šç®ããŠããŸããã©ã®ãã«ãã³ã¢ ã³ã³ãã¥ãŒã¿ãŒã忣ãµãŒãã¹ã«ãã䞊åèšç®ãå®è¡ãããã®ãååšããŸãã
ã¢ããªã±ãŒã·ã§ã³ ããã°ã©ãã³ã°ã®ããŸããŸãªåŽé¢ãã«ããŒããã«ã³ãã¡ã¬ã³ã¹ã倿°ãããŸãã ãã®å察åŽã«ã¯ãèšå€§ãªéã®è€éãªçè«ãè¬çŸ©åœ¢åŒã§æããã«ããå°éã®ç§åŠåŠæ ¡ããããŸãã ããšãã°ããµã³ã¯ãããã«ãã«ã¯ã®ããã©ãšäžŠè¡ããŠã . ããã©äŒè°ã§ã¯ãç§ãã¡ã¯éé ·ãªå®è·µãç§åŠããããŠãããã®äº€å·®ç¹ã§ãã¹ãŠãçµéããããšããŸããã
èããŠã¿ãŠãã ãããç§ãã¡ã¯ãç§ãã¡ãç ç©¶ããŠããç§åŠãšå·¥åŠã®åéã®åµå§è ã«çŽæ¥äŒãããšãã§ããçŽ æŽãããæä»£ã«çããŠããŸãã ç©çåŠè ã¯ãã¥ãŒãã³ã«ãã¢ã€ã³ã·ã¥ã¿ã€ã³ã«ãäŒããªãã§ããã - åè»ã¯åºçºããŸããã ããããç§ãã¡ã®é£ã«ã¯ã忣ã·ã¹ãã çè«ã®åºç€ãç¯ãã人æ°ã®ããããã°ã©ãã³ã°èšèªãçºæããããããã¹ãŠãåããŠå®çšçãªãããã¿ã€ãã§å ·äœåãã人ã ãä»ãçããŠããŸãã ãããã®äººã ã¯éäžã§ä»äºãèŸããããã§ã¯ãªããçŸåšäžççã«æåãªå€§åŠãäŒæ¥ã§å·®ãè¿«ã£ã課é¡ã«åãçµãã§ããã仿¥ã®æå€§ã®ç¥èãšçµéšã®æºãšãªã£ãŠããŸãã
ãã®äžæ¹ã§ã圌ãã«äŒãæ©äŒã¯éåžžãçŽç²ã«çè«çãªãã®ã«ãšã©ãŸããŸããããã§ã¹ã¿ãŒå€§åŠã®å ¬éã€ãã³ããåžžã«ç£èŠãããã®åŸããã«ç±³åœã«è¡ãããã€ã±ã«ã»ã¹ã³ããã®è¬çŸ©ãåããããã«æ»ã£ãŠããããšãã§ãã人ã¯ã»ãšãã©ããŸããã ããã©ã®ã¡ã³ããŒå šå¡ã蚪ãããšãèšå€§ãªæéã®ç¡é§ãé€ãã°ãå°é¡ã®è²»çšããããã§ããã (è峿·±ãã¯ãšã¹ãã®ããã«æããŸãã)ã
äžæ¹ã§ãçŸåšã忣ã·ã¹ãã ã«ãããå·®ãè¿«ã£ãåé¡ã«åãçµãã§ããããããšã³ãžãã¢ãããããããã圌ãã¯ééããªãäŒãããããšããããããããŸãã ããããããã«åé¡ããããŸã - 圌ã㯠åããããŠåœŒãã®æéã¯è²Žéã§ãã ã¯ããããªãã MicrosoftãGoogleããŸã㯠JetBrains ã®åŸæ¥å¡ã§ããã°ã瀟å ã€ãã³ãã§æåãªè¬æŒè ã®äžäººã«äŒãå¯èœæ§ã¯æ¥æ¿ã«é«ãŸããŸãããäžè¬çã«ã¯ããããããããæ¯æ¥èµ·ããããã§ã¯ãããŸããã
ãã®ããã«ããŠãããã©äŒè°ã¯ãç§ãã¡ã®ã»ãšãã©ãèªåãã¡ã ãã§ã¯å®è¡ã§ããªãéèŠãªä»»åãéæããŸããããã¯ãããªãã®ã¢ã€ãã¢ã亀æµãããªãã®äººçãå€ããå¯èœæ§ã®ãã人ã ãäžåºŠã«äžãæã«éããŸãã 誰ãã忣ã·ã¹ãã ãè€éãªåºæ¬çãªãã®ãå¿ èŠãšããŠããããã§ã¯ãªãããšã¯èªããŸãã PHP ã§ CRUD ãããã°ã©ãã³ã°ããã°ãäžç幞ãã§ããç¶ããããšãã§ããŸãã ãããããããå¿ èŠãšããŠãã人ã«ã¯ãããããã£ã³ã¹ã§ãã
ããã¬ã§ã®ããã©äŒè°ã®æåã®çºè¡šããããªãé·ãæéãçµéããŸããã ãã®éã«å€ãã®äœæ¥ãè¡ãããçŸåšã§ã¯ã»ãŒãã¹ãŠã®ã¬ããŒãã®ãªã¹ãã宿ããŸããã é ãã·ã³ã°ã«ã¹ã¬ãã ã¢ã«ãŽãªãºã ã¯ãªããçŽç²ãªåæ£ããŒãã³ã¢ã ãã§ãã äžè¬çãªèšèã§çµããŠãä»ç§ãã¡ãæã«ããŠãããã®ãèŠãŠã¿ãŸãããã
åºèª¿è¬æŒ
åºèª¿è¬æŒã¯ã«ã³ãã¡ã¬ã³ã¹ã®äžæ¥ã®å§ãŸããšçµããã§ãã éåžžãéäŒåºèª¿è¬æŒã®ç®çã¯ãã«ã³ãã¡ã¬ã³ã¹ã®å šäœçãªç²Ÿç¥ãšæ¹åæ§ãèšå®ããããšã§ãã éäŒã®åºèª¿è¬æŒã§ã¯ããããŸã§ãšã¯äžç·ãç»ããã«ã³ãã¡ã¬ã³ã¹äžã«ç²åŸããç¥èãšã¹ãã«ãã©ã®ããã«æŽ»çšããŠçããŠãããã«ã€ããŠèª¬æããŸãã å§ãŸããšçµãã: æãããèšæ¶ãããäžè¬ã«éèŠæ§ãå¢ãããã®ã
ã¯ãªãã¯ãªãã¯
Cliff 㯠Java çã®ã¬ãžã§ã³ãã§ãã 90 幎代åŸåãåå£«è«æãšããŠåœŒã¯æ¬¡ã®ã¿ã€ãã«ã®è«æãæžããŸããã ãããã¯ãã°ããã㊠HotSpot JVM Server Compiler ã®åºç€ãšãªããŸããã XNUMX 幎åŸã圌ã¯ãã§ã« Sun Microsystems ã§ JVM ã«åãçµãã§ãããJIT ã«ã¯ååšããæš©å©ãããããšãå
šäžçã«ç€ºããŸããã Java ãæãè³¢æã§æéã®æé©åãåããæãé«éãªææ°ã©ã³ã¿ã€ã ã® XNUMX ã€ã§ããããšã«é¢ãããã®å
šæã¯ãCliff Click ããæäŸãããŸããã åœåã¯ãéçã³ã³ãã€ã©ãŒãã¢ã¯ã»ã¹ã§ãããã®ã§ããã°ãjit ããå¿
èŠãããªããšèããããŠããŸããã Cliff ãšããŒã ã®åãã®ãããã§ããã¹ãŠã®æ°ããèšèªã¯ããã©ã«ãã§ JIT ã³ã³ãã€ã«ã®èãã«åºã¥ããŠäœæããå§ããŸããã ãã¡ãããããã¯äžäººã®ä»äºã§ã¯ãããŸããã§ããããã¯ãªãã¯ãã®äžã§éåžžã«éèŠãªåœ¹å²ãæãããŸããã
åé ã®åºèª¿è¬æŒã§ãã¯ãªãã¯åœŒã®ããäžã€ã®åãçµã¿ã«ã€ããŠèªããŸãã ãç£æ¥ã¢ããªã±ãŒã·ã§ã³åãã®åæ£åã§ã¹ã±ãŒã©ãã«ãªæ©æ¢°åŠç¿ã®ããã®ã€ã³ã¡ã¢ãª ãã©ãããã©ãŒã ã§ãã ããæ£ç¢ºã«ã¯ããã®å éšã®ããŒãšå€ã®ãã¢ã®åæ£ã¹ãã¬ãŒãžã«ã€ããŠã§ãã ããã¯ãå€ãã®è峿·±ãããããã£ãåããéåžžã«é«éãªã¹ãã¬ãŒãžã§ã (æ£ç¢ºãªãªã¹ãã¯æ¬¡ã®ãšããã§ã)ã )ãããã° ããŒã¿ ã¹ããªãŒãã³ã°ã®æ°åŠã§åæ§ã®ãœãªã¥ãŒã·ã§ã³ã䜿çšã§ããããã«ãªããŸãã
ã¯ãªããäžããããäžã€ã®å ±å㯠- ã 圌ã®äŒèšã®ããäžã€ã®éšå - XNUMX幎 ããã§åœŒã¯ãJIT ã³ã³ãã€ã©ãŒãã©ã³ã¿ã€ã ãã¹ã¬ãã ã¢ãã«ããšã©ãŒåŠçãã¹ã¿ãã¯åŠçãããŒããŠã§ã¢å²ã蟌ã¿ãã¯ã©ã¹èªã¿èŸŒã¿ãªã©ãAzul ããŒããŠã§ã¢ãšãã¯ãããž ã¹ã¿ãã¯ã®å€ãã®ããšãæŽæ°ããã³æ¹åããŸãããã¢ã€ãã¢ã
æãè峿·±ãéšåã¯ãå€§äŒæ¥åãã®ããŒããŠã§ã¢ãã€ãŸã Java ãå®è¡ããã¹ãŒããŒã³ã³ãã¥ãŒã¿ãäœæãããšãã«å§ãŸããŸããã ããã¯ããªã驿°çãªãã®ã§ãç¹å¥ãªèŠä»¶ãæã€ Java ã«ç¹åããŠèª¿æŽãããŸãããäœäžæåæ¢ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã®ããã®èªã¿åãã¡ã¢ãª ããªã¢ãå¢çãã§ãã¯ã®ããé åãä»®æ³åŒã³åºããªã©ã§ããæãåªãããã¯ãããžã® 1 ã€ã¯ãããŒããŠã§ã¢ ãã©ã³ã¶ã¯ã·ã§ã³ ã¡ã¢ãªã§ãã 864 ã³ã¢ã®ããããã® LXNUMX å šäœããã©ã³ã¶ã¯ã·ã§ã³æžã蟌ã¿ã«åå ã§ããŸããããã¯ãJava ã§ããã¯ãæäœããå Žåã«ç¹ã«éèŠã§ã (å®éã®ã¡ã¢ãªã®ç«¶åããªãéããåæããããããã¯ã¯äžŠè¡ããŠåäœã§ããŸã)ã ãããããã®çŸããã¢ã€ãã¢ã¯å³ããçŸå®ã«ãã£ãŠæã¡ç ãããŸããããããŠãã®è¬æŒã§ãã¯ãªãã¯ãHTM ãš STM ããã«ãã¹ã¬ãã ã³ã³ãã¥ãŒãã£ã³ã°ã®å®éã®ããŒãºã«ããŸãé©ããŠããªãçç±ã説æããŸãã
ãã€ã±ã«ã»ã¹ã³ãã -
- ããã§ã¹ã¿ãŒå€§åŠã®ã³ã³ãã¥ãŒã¿ãŒãµã€ãšã³ã¹ææãéåœã圌ãšã€ãªãã£ã ããããŠèªå®
ã®ãŠã£ã¹ã³ã³ã·ã³å€§åŠããã£ãœã³æ ¡ã§ã¯XNUMX幎éåŠéšé·ãåããŸããã 圌ã¯ã䞊åããã³åæ£ããã°ã©ãã³ã°ãšèšèªèšèšã«ã€ããŠç ç©¶ããåŠçã«æããŠããŸãã
æç§æžã®ãããã§äžçäžããã€ã±ã«ãç¥ã£ãŠããŸã ãææ°çã¯æ¯èŒçæè¿ã2015 幎ã«åºçãããŸããã 圌ã®ä»äº åãåã£ã 忣ã³ã³ãã¥ãŒãã£ã³ã°ã®åéã§æãæåãªãã®ã® XNUMX ã€ãšããŠã ããã§ã¹ã¿ãŒå€§åŠã®ãªã³ã©ã€ã³å³æžé€šã«ãããŸãã ãŸãã圌ã¯ãŸãã« Michael-Scott ã¢ã«ãŽãªãºã ã®äœè ãšããŠç¥ãããŠãããããããŸããã .
Java ã®äžçã«é¢ããŠã¯ãããã¯ç¹æ®ãªã±ãŒã¹ã§ãã圌㯠Doug Lea ãšãšãã«ãJava ã©ã€ãã©ãªãåäœãããã³ããããã³ã° ã¢ã«ãŽãªãºã ãšåæãã¥ãŒãéçºããŸããã ããã¯ãŸãã«ãäºéããŒã¿æ§é ãåºèª¿è¬æŒã®å
容ã§ããJava SE 6 ã§ã®ãããã®æ§é ã®å°å
¥ã«ãããããã©ãŒãã³ã¹ã 10 ååäžããŸããã java.util.concurrent.ThreadPoolExecutorã ãããã®ãäºéããŒã¿æ§é ããäœã§ãããã«ã€ããŠäºåã«ç¥ãããå Žåã¯ãããã«é¢ããæ
å ±ããããŸãã .
ã¢ãŒãªã¹ã»ããŒãªã㌠-
- ãã€ã¯ã¹ãã©è³ãXNUMXååè³ã XNUMXã€ç®ã¯äœæ¥çšã§ã (ãã©ãŠã³å€§åŠ)ããã㊠XNUMX ã€ç®ã¯ãããæè¿ã®ãã®ã§ã - (ããŒãžãã¢å·¥ç§å€§åŠ)ã ãã€ã¯ã¹ãã©è³ã¯ãå°ãªããšã XNUMX 幎éã«ããã£ãŠéèŠæ§ãšåœ±é¿ãç®ã«èŠããŠçŸããŠããç ç©¶ã衚地ãããã®ã§ãã¢ãŒãªã¹ã¯æããã«ãã®åéã§æãæåãªå°éå®¶ã® XNUMX 人ã§ãã 圌ã¯çŸåšãã©ãŠã³å€§åŠã®ææãšããŠåããŠãããæ®µèœã«åã¶æ¥çžŸãªã¹ããæã£ãŠããŸãã
ãã®ç· ããããã®åºèª¿è¬æŒã§ã¯ãã¢ãŒãªã¹æ°ã忣ã³ã³ãã¥ãŒãã£ã³ã°ã®å€å žã®èгç¹ãããããã¯ãã§ãŒã³åæ£ã·ã¹ãã ã®çè«ãšå®è·µããããŠãããå€ãã®é¢é£åé¡ãã©ã®ããã«åçŽåãããã«ã€ããŠè©±ããŸãã ããã¯ã«ã³ãã¡ã¬ã³ã¹ã®ããŒãã®ã¿ãåãäžããã¬ããŒãã§ãããã€ãã³ã°ã®èªå€§å®£äŒã«é¢ãããã®ã§ã¯ãªããããŸããŸãªã¿ã¹ã¯ã«é¢é£ããŠç§ãã¡ã®ç¥èãã©ã®ããã«é©ãã»ã©å¹æçãã€é©åã«äœ¿çšã§ãããã«ã€ããŠã®ãã®ã§ãã
2017 幎 XNUMX æãã¢ãŒãªã¹ãã㯠SPTDC ã®åŠæ ¡ã«éãããã«ãã§ã«ãã·ã¢ã蚪ããJUG.ru ã®ããŒãã¢ããã«åå ããŠããããã®é²ç»ã¯ YouTube ã§èŠãããšãã§ããŸãã

ã¡ã€ã³ããã°ã©ã
次ã«ãããã°ã©ã ã«å«ãŸããã¬ããŒãã®æŠèŠã説æããŸãã ã¬ããŒãã®äžéšã¯ããã§è©³çްã«èª¬æããããã®ä»ã¯ããç°¡åã«èª¬æãããŸãã é·ã説æã¯äž»ã«è±èªã®ã¬ããŒãã§ãç§åŠè«æããŠã£ãããã£ã¢ã®çšèªãªã©ãžã®ãªã³ã¯ãå¿ èŠã§ããã å®å šãªãªã¹ããå©çšå¯èœã§ã ã ãŠã§ããµã€ãäžã®ãªã¹ãã¯æŽæ°ããã远å ãããŸãã
ã¬ã¹ãªãŒã»ã©ã³ããŒã -
Leslie Lamport ã¯ã忣ã³ã³ãã¥ãŒãã£ã³ã°ã«ãããç¬åµçãªèäœã®èè
ã§ãã ãLamport TeXãã®ç¥ã§ãã 1979 幎ã«ãã®æŠå¿µãæåã«å°å
¥ããã®ã¯åœŒã§ããã ããããŠåœŒã®èšäº ãã€ã¯ã¹ãã©è³ãåè³ã
ããã¯ãããã°ã©ã ã®åœ¢åŒã®ç¹ã§æãçããéšåã§ãããã¬ããŒãã§ãããªãã質çå¿çã§ãã èŽè¡ã®ããªãã®éšåããã©ã³ããŒãã®çè«ãã«åºã¥ããããããçš®é¡ã®äœåã圌èªèº«ã®è«æãã¬ããŒãã«ãã§ã«ç²ŸéããŠããïŒãŸãã¯ç²Ÿéããå¯èœæ§ãããïŒå Žåãå©çšå¯èœãªãã¹ãŠã®æéãçŽæ¥ã³ãã¥ãã±ãŒã·ã§ã³ã«è²»ããããšãããéèŠã§ãã
ã¢ã€ãã¢ã¯ã·ã³ãã«ã§ããYouTube ã§ XNUMX ã€ã®ã¬ããŒããèŠèŽããŸãã О å°ãªããšã XNUMX ã€ã®è³ªåãçšæãããšãã¬ã¹ãªãŒãçããŸãã
ãã§ã«å ¬éãããŠãã XNUMX ã€ã®ãããªã®ãã¡ã® XNUMX ã€ç®ã¯ã ã ãããªãèŠãæéã XNUMX æéããªãå Žåã¯ãããã¹ã圢åŒã§ãã¹ãŠãããã«èªãããšãã§ããŸãã
泚: YouTube ã«ã¯ä»ã«ãã¬ã¹ãªãŒ ã©ã³ããŒãã®ãããªããããããããŸãã ããšãã°ãçŽ æŽããããã®ããããŸã ã ãã®ã³ãŒã¹å šäœã®ãªãã©ã€ã³ ããŒãžã§ã³ã¯ã次ã®å Žæããå ¥æã§ããŸãã ãããŠãã¢ãã€ã«ããã€ã¹ã§ç°¡åã«èŠèŽã§ããããã«ãããã YouTube ã«ã¢ããããŒãããŸããã
ãã«ãã£ã³ã»ã¯ã¬ãããã³ -
Martin Kleppmann ã¯ãã±ã³ããªããžå€§åŠã®ç ç©¶è
ã§ãCRDT ãšã¢ã«ãŽãªãºã ã®åœ¢åŒçæ€èšŒã«åãçµãã§ããŸãã ããŒãã£ã³ã®æ¬ 㯠2017 幎ã«åºçãããéåžžã«æåããããšã蚌æãããããŒã¿ ã¹ãã¬ãŒãžãšåŠçã®åéã§ãã¹ãã»ã©ãŒ ãªã¹ãã«ã©ã³ã¯ã€ã³ããŸããã ãã€ã¯ããœãã瀟 CTO ã®ã±ãã³ã»ã¹ã³ããæ°ã¯ã : ããã®æ¬ã¯ãœãããŠã§ã¢ ãšã³ãžãã¢ã«ãšã£ãŠå¿
éåã§ãã ããã¯ãéçºè
ãã€ã³ãã©ã¹ãã©ã¯ãã£ãšããŒã¿ ã·ã¹ãã ãããè³¢ãèšèšããã³å®è£
ã§ãããããçè«ãšå®è·µãçµã¿åããã貎éãªãªãœãŒã¹ã§ããã Kafka ã®äœæè
ã§ãããConfluent ã® CTO ã§ãã Jay Kreps ãåæ§ã®ããšãè¿°ã¹ãŠããŸãã
åŠè¡ç ç©¶ã«ç§»ãåãããŒãã£ã³ã¯ç£æ¥çã§åããæåãåãã XNUMX ã€ã®æ°èäŒæ¥ãå ±åèšç«ããŸããã
- Rapportive ã¯ãé»åã¡ãŒã«ããé£çµ¡å ã®ãœãŒã·ã£ã« ãããã£ãŒã«ã衚瀺ããããšã«ç¹åããŠãããLinkedIn ã 2012 幎ã«è²·åããŸããã
- Go Test It ã¯ãããŸããŸãªãã©ãŠã¶ã§ Web ãµã€ããèªåçã«ãã¹ããããµãŒãã¹ã§ãRedGate ã 2009 幎ã«è²·åããŸããã
äžè¬ã«ãMartin ã¯åºèª¿è¬æŒã»ã©æåã§ã¯ãããŸãããããã§ã«åæ£ã³ã³ãã¥ãŒãã£ã³ã°ã®çºå±ãšæ¥çã«ããçšåºŠã®è²¢ç®ãæãããŠããŸãã
ãã®è¬æŒã§ã¯ãããŒãã£ã³ã¯åŠè¡ç ç©¶ã«è¿ããããã¯ã«ã€ããŠè©±ããŸãã Google ããã¥ã¡ã³ããåæ§ã®ããã¥ã¡ã³ãå ±åç·šéæ©èœã§ã¯ããå ±åç·šéããšã¯è€è£œã¿ã¹ã¯ãæããŸããåãŠãŒã¶ãŒã¯å ±æããã¥ã¡ã³ãã®ç¬èªã®ã¬ããªã«ãæã¡ãããã倿Žãããã¹ãŠã®å€æŽããããã¯ãŒã¯ãä»ããŠæ®ãã®ãŠãŒã¶ãŒã«éä¿¡ãããŸããåå è ã ãªãã©ã€ã³ã§ããã¥ã¡ã³ãã倿Žãããšãä»ã®åå è ãšã®é¢ä¿ã§ããã¥ã¡ã³ãã«äžæçãªäžæŽåãçããååæã«ã¯ç«¶ååŠçãå¿ èŠã«ãªããŸãã ãŸãã«ããã圌ãã®ååšç®çã§ã (CRDT) ã¯å®éãããªãæ°ãããã®ã§ããããã®æ¬è³ªã¯ 2011 幎ã«ã®ã¿çå®ãããŸããã ãã®è¬æŒã§ã¯ãCRDT ã®äžçã§ãã以æ¥äœãèµ·ãã£ãã®ããææ°ã®é²æ©ãšã¯äœããããŒã«ã«ãã¡ãŒã¹ãã®ã¢ããªã±ãŒã·ã§ã³å šè¬ãäœæããã¢ãããŒããšãªãŒãã³ãœãŒã¹ ã©ã€ãã©ãªã®äœ¿çšã«ã€ããŠèª¬æããŸãã ç¹ã«ã
æ¥é±ãããã¬ã«é¢ããããŒãã£ã³ã®ãã³ã°ã€ã³ã¿ãã¥ãŒãæ²èŒããäºå®ã§ãããè峿·±ããã®ã«ãªãã§ãããã
ãããã»ã©ãã«ãã -
Pedro 㯠Cisco ã§åããŠãããéå» XNUMX 幎ã»ã©ã«ããã£ãŠãåæã¡ã«ããºã ãããã¯ããªãŒããã³ãŠã§ã€ãããªãŒã®ããŒã¿æ§é ãããã³ãã®ãããã¯ã«é¢ããŠæ³åã§ãããã¹ãŠã®ãã®ãå«ã䞊åã¢ã«ãŽãªãºã ãéçºããŠããŸããã 圌ã®çŸåšã®ç ç©¶ãšãšã³ãžãã¢ãªã³ã°ã®é¢å¿ã¯ãæ£ç¢ºã§ã¹ã±ãŒã©ãã«ã§ãã©ãŒã«ããã¬ã©ã³ããªã¢ããªã±ãŒã·ã§ã³ãå¯èœã«ãããŠãããŒãµã«æ§é ããœãããŠã§ã¢ ãã©ã³ã¶ã¯ã·ã§ã³ ã¡ã¢ãªãæ°žç¶ã¡ã¢ãªãããã³åæ§ã®ãã¯ãããžã«çŠç¹ãåœãŠãŠããŸãã 圌ã¯çãç¯å²ã§åºãç¥ãããŠããããã°ã®èè
ã§ããããŸã .
çŸåšãã»ãšãã©ã®ãã«ãã¹ã¬ãã ã¢ããªã±ãŒã·ã§ã³ã¯ãã¢ã¯ã¿ãŒéã®ã¡ãã»ãŒãž ãã¥ãŒã®äœ¿çšãããããŒ/å€ã¹ãã¢ã®ã€ã³ããã¯ã¹ä»ãããŒã¿æ§é ã«è³ããŸã§ã䞊åããŒã¿æ§é äžã§å®è¡ãããŸãã ããã㯠Java JDK ã§é·å¹Žã«ããã£ãŠæ£åžžã«åäœããŠãããåŸã ã« C++ ã«ã远å ãããŠããŸãã
䞊åããŒã¿æ§é ãå®è£ ããæãç°¡åãªæ¹æ³ã¯ãã¡ãœããããã¥ãŒããã¯ã¹ã«ãã£ãŠä¿è·ãããã·ãŒã±ã³ã·ã£ã« (ã·ã³ã°ã«ã¹ã¬ãã) å®è£ ã§ãã ããã¯ãã©ã® XNUMX æã§ãã¢ã¯ã»ã¹ã§ããŸãããã¹ã±ãŒãªã³ã°ãšããã©ãŒãã³ã¹ã«æãããªåé¡ããããŸãã åæã«ãããã¯ããªãŒããã³ãŠã§ã€ãããªãŒã®ããŒã¿æ§é ã¯ããšã©ãŒãžã®å¯ŸåŠãåªããŠããã ãã§ãªããããã©ãŒãã³ã¹ ãããã¡ã€ã«ãåªããŠããŸãããã ãããã®éçºã«ã¯æ·±ãå°éç¥èãšç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ãžã®é©å¿ãå¿ èŠã§ãã ã³ãŒãã XNUMX è¡ééããã ãã§ããã¹ãŠãå£ããŠããŸããŸãã
å°éå®¶ã§ãªããŠããã®ãããªããŒã¿æ§é ãèšèšããã³å®è£ ã§ããããã«ããã«ã¯ã©ãããã°ããã§ãããã? ã·ãŒã±ã³ã·ã£ã« ã¢ã«ãŽãªãºã ã¯ã次ã®ããããã䜿çšããŠã¹ã¬ãã ã»ãŒãã«ããããšãã§ããããšãç¥ãããŠããŸãã ããŸãã¯ãã©ã³ã¶ã¯ã·ã§ã³ã¡ã¢ãªã ãŸãããã®åé¡ã解決ããããã®éå£ãäžããããšãã§ããŸãã ãã ããã©ã¡ãã®ãœãªã¥ãŒã·ã§ã³ãéåžžã¯éå¹ççãªå®è£ ã«ãªããŸãã Pedro ã¯ããããã®èšèšãã©ã®ããã«ããŠå¹çåããããšãã§ããã®ãããŸãããããã¢ã«ãŽãªãºã ã«ã©ã®ããã«äœ¿çšã§ããã®ãã«ã€ããŠè©±ããŸãã
ãã€ãžã»ãã¯ãŒã -
ãã€ãã£ã»ãã¯ãŒãã¯ãããŒãã£ã³ãšåæ§ãã±ã³ããªããžå€§åŠã®åæ£ã·ã¹ãã ç ç©¶è
ã§ãã 圌女ã®å°éåéã¯ãäžè²«æ§ãèé害æ§ãããã©ãŒãã³ã¹ã忣åã³ã³ã»ã³ãµã¹ã§ãã 圌女ã¯ãPaxos ã¢ã«ãŽãªãºã ãäžè¬åããããšã§æãããç¥ãããŠããŸãã .
ãããæãåºã㊠ã¯ãã¬ã¹ãªãŒ ã©ã³ããŒãã®ç ç©¶ã«åºã¥ããä¿¡é Œæ§ã®äœãã³ã³ãã¥ãŒã¿ãŒã®ãããã¯ãŒã¯ã«ãããã³ã³ã»ã³ãµã¹ã®åé¡ã解決ããããã®ãããã³ã« ãã¡ããªã§ãã ãããã£ãŠãç§ãã¡ã®è¬æŒè ã®äžã«ã¯ãä»ã®è¬æŒè ãæåã«ææ¡ããåé¡ã«åãçµãã§ãã人ãããŸããããã¯çŽ æŽãããããšã§ãã
ã¢ãã¬ã¹æå®ããªãŒããŒã®éžåºããããã¯ããŸãã¯èª¿æŽã«ã€ããŠãè€æ°ã®ãã¹ãéã§åæãèŠã€ããèœåã¯ãææ°ã®åæ£ã·ã¹ãã ã«ãããåºæ¬çãªåé¡ã§ãã Paxos ã¯çŸåšãã³ã³ã»ã³ãµã¹åé¡ã解決ããããã®äž»ãªæ¹æ³ã§ãããããŸããŸãªå®éã®ããŒãºã«åãããŠã¢ã«ãŽãªãºã ãæ¡åŒµããã³æé©åããããã«ãPaxos ãäžå¿ãšããå€ãã®ç ç©¶ãè¡ãããŠããŸãã
ãã®è¬æŒã§ã¯ãPaxos ã®çè«çåºç€ã忀èšããå ã®èŠä»¶ãç·©åããã¢ã«ãŽãªãºã ãäžè¬åããŸãã Paxos ã¯æ¬è³ªçã«ãèšå€§ãªç¯å²ã®ã³ã³ã»ã³ãµã¹ ã¢ãããŒãã®äžã® XNUMX ã€ã®éžæè¢ã«ããããã¹ãã¯ãã«äžã®ä»ã®ç¹ãåªãã忣ã·ã¹ãã ãæ§ç¯ããã®ã«éåžžã«åœ¹ç«ã€ããšãããããŸãã
ã¢ã¬ãã¯ã¹ã»ãããã â
Alex ã¯ããŒã¿ããŒã¹ãšã¹ãã¬ãŒãž ã·ã¹ãã ã®ã¹ãã·ã£ãªã¹ãã§ãããç§ãã¡ã«ãšã£ãŠããã«éèŠãªããšã«ã ã 圌ã¯çŸåšããªã©ã€ãªãŒãšååããŠæžç±ãDatabase Internalsããå·çäžã§ãã
ãåããã·ã¹ãã ã®å Žå (ãã·ã¢èªã§ã究極ã®äžè²«æ§ã)ãããŒããã¯ã©ãã·ã¥ããããããã¯ãŒã¯ãåè£ããåŸã¯ãäžè²«æ§ãç ç²ã«ããŠãªã¯ãšã¹ãã®å®è¡ãç¶ãããããªã¯ãšã¹ãã®å®è¡ãæåŠããŠå¯çšæ§ãç ç²ã«ããããšãããžã¬ã³ãã解決ããå¿ èŠããããŸãã ãã®ãããªã·ã¹ãã ã§ã¯ãã¯ã©ãŒã©ã ãããŒãã®ãµãã»ããã®éè€ãããã³å°ãªããšã XNUMX ã€ã®ããŒãã«ææ°ã®å€ãå«ãŸããŠããããšãä¿èšŒããããšããåªãããšããž ãœãªã¥ãŒã·ã§ã³ãšãªãå¯èœæ§ããããŸãã é害ãçºçããããäžéšã®ããŒããžã®æ¥ç¶ã倱ãããå Žåã§ããææ°ã®å€ã§å¿çããªããçãæ®ãããšãã§ããŸãã
ãã ããäœäºã«ã代åã¯ã€ããã®ã§ãã ã¯ã©ãŒã©ã ã¬ããªã±ãŒã·ã§ã³ ã¹ããŒã ã¯ã¹ãã¬ãŒãž ã³ã¹ãã®å¢å ãæå³ããŸããåé¡ãçºçãããšãã«äœ¿çšã§ããååãªã³ããŒã確ä¿ããããã«ãåé·ããŒã¿ãè€æ°ã®ããŒãã«äžåºŠã«ä¿åããå¿ èŠããããŸãã ãã¹ãŠã®ããŒã¿ããã¹ãŠã®ã¬ããªã«ã«ä¿åããå¿ èŠã¯ãªãããšãããããŸããã äžéšã®ããŒãã«ã®ã¿ããŒã¿ãä¿åããé害åŠçã·ããªãªã«ç¹å¥ãªããŒã (äžæã¬ããªã«) ã䜿çšãããšãã¹ãã¬ãŒãžã®è² è·ã軜æžã§ããŸãã
ã¬ããŒãã®éçšã§æ€èšããŸã ãã§äœ¿çšãããã¬ããªã±ãŒã·ã§ã³ ã¹ããŒã О ããããŠãã®æŠå¿µã Apache Cassandra ã«å®è£ ãããšã .
ããããªãŒã»ãŽã¥ã³ã -
ããããªãŒã¯Googleã®éçºè
ã§ãC/C++ãšGoã®åçãã¹ãïŒã¢ãã¬ã¹/ã¡ã¢ãª/ã¹ã¬ãããµãã¿ã€ã¶ãŒïŒããåæ§ã®ã«ãŒãã«ããŒã«ã®éçºã«æºãã£ãŠããŸãã Linux圌ã¯ã¹ã±ãŒã©ãã«ãªãŽã«ãŒãã³ã¹ã±ãžã¥ãŒã©ããããã¯ãŒã¯ããŒã©ãŒã䞊åã¬ããŒãžã³ã¬ã¯ã¿ãGoã«è²¢ç®ããã圌ã¯ãã«ãã¹ã¬ããã®å°éå®¶ã§ããã12ã®æ°ããéããããã³ã°ã¢ã«ãŽãªãºã ã®èè
ã§ããã ã€ã³ãã«ã
次ã«ãã¬ããŒãèªäœã«ã€ããŠå°ã説æããŸãã Go èšèªã¯ããŽã«ãŒãã³ (ã©ã€ã ã¹ã¬ãã) ããã³ãã£ãã« (FIFO ãã¥ãŒ) ã®åœ¢åŒã§ãã«ãã¹ã¬ããããã€ãã£ã ãµããŒãããŠããŸãã ãããã®ã¡ã«ããºã ã«ããããŠãŒã¶ãŒã¯ææ°ã®ãã«ãã¹ã¬ãã ã¢ããªã±ãŒã·ã§ã³ãéåžžã«ç°¡åãã€æ¥œããäœæã§ããããã«ãªãããŸãã§éæ³ã®ããã«èŠããŸãã ç§ãã¡ãçè§£ããŠããããã«ãããã«ã¯éæ³ã¯ãããŸããã ãã®è¬æŒã§ã¯ãDmitry ã Go ã¹ã±ãžã¥ãŒã©ã®è€éããæãäžãããã®ãéæ³ããå®è£ ããç§å¯ã瀺ããŸãã ãŸããã¹ã±ãžã¥ãŒã©ã®äž»èŠã³ã³ããŒãã³ãã®æŠèŠã説æãããããã©ã®ããã«æ©èœãããã説æããŸãã æ¬¡ã«ãé§è»/é§è»è§£é€æŠç¥ãããã㯠ã·ã¹ãã ã³ãŒã«ã®åŠçãªã©ã®åå¥ã®åŽé¢ã詳ããèŠãŠãããŸãã æåŸã«ãDmitry ãã¹ã±ãžã¥ãŒã©ãŒã®æ¹åã®å¯èœæ§ã«ã€ããŠå°ã話ããŸãã
ããããªãŒã»ãã¬ã€ãã§ã³ã³ -
ããããªãŒã¯ã倧åŠãç§åŠã³ãã¥ããã£ãšã®ã€ãªããã倱ãããšãªããã»ãŒ 9 幎éã¢ãŠããœãŒã·ã³ã°ã§åããŸããã ãªããã¯ã©ã¹ããã«ãããããã°ããŒã¿åæã¯ã圌ã«ãšã£ãŠãçè«çãã¬ãŒãã³ã°ãšç§åŠçåºç€ãå®éã®éèŠã®é«ã補åã®éçºãšçµã¿åããããŠããŒã¯ãªæ©äŒãšãªããŸããã
忣ã°ã©ãåæã¯ããããŸã§ãããããŠä»ãé£ããäœæ¥ã§ãã飿¥ããé ç¹ã®æ¥ç¶ã«é¢ããæ å ±ãååŸããå¿ èŠãããå Žåãå€ãã®å ŽåãããŒã¿ããã·ã³éã§è»¢éããå¿ èŠãããããããå®è¡æéã®å¢å ãšãããã¯ãŒã¯ ã€ã³ãã©ã¹ãã©ã¯ãã£ãžã®è² è·ã®å¢å ã«ã€ãªãããŸãã ãã®è¬æŒã§ã¯ã確ççãªããŒã¿æ§é ãããœãŒã·ã£ã« ãããã¯ãŒã¯ã«ãããå人é¢ä¿ã°ã©ãã®å¯Ÿç§°æ§ãªã©ã®äºå®ã䜿çšããŠãå€§å¹ ãªåŠçé床ãå®çŸããæ¹æ³ã説æããŸãã ããããã¹ãŠããApache Spark ã®ã³ãŒãäŸã§èª¬æããŸãã
ããã¹ã»ãªã¹ããã©ã -
ããã¹ - éçºè
ãäžè²«æ§ã¢ãã«ãã³ã³ã»ã³ãµã¹ã¢ã«ãŽãªãºã ã忣ãã©ã³ã¶ã¯ã·ã§ã³ããã§ãã¯ããå°éå®¶ã§ãã 圌ã¯çŸåš Microsoft ã§åããŠããããã®å㯠Amazon ãš Yandex ã§åæ£ã·ã¹ãã ã®éçºã«æºãã£ãŠããŸããã
ãã®è¬æŒã§ã¯ãé廿°å¹Žéã«çºæããã忣ãã©ã³ã¶ã¯ã·ã§ã³ ãããã³ã«ã«ã€ããŠèŠãŠãããŸãã忣ãã©ã³ã¶ã¯ã·ã§ã³ ãããã³ã«ã¯ãæ¡ä»¶ä»ãæŽæ° (æ¯èŒãšèšå®) ããµããŒãããããŒã¿ ã¹ãã¢äžã§ã¯ã©ã€ã¢ã³ãåŽã«å®è£ ã§ããŸãã èå¿ãªã®ã¯ã人ç㯠2 ãã§ãŒãº ã³ãããã§çµããããã§ã¯ãªãããã©ã³ã¶ã¯ã·ã§ã³ã¯ã¢ããªã±ãŒã·ã§ã³ ã¬ãã«ã§ããããããŒã¿ããŒã¹ã«è¿œå ã§ããŸãããç°ãªããããã³ã« (XNUMXPCãããŒã³ã¬ãŒã¿ãŒãRAMP) ã«ã¯ç°ãªããã¬ãŒããªãããããç§ãã¡ã«ã¯äžããããªããšããããšã§ããç¡æã§ã
ã¢ã¬ã¯ã»ã€ã»ãžããŽã£ãšã -
ã¢ã¬ã¯ã»ã€ () ã¯ãä»ã®ã«ã³ãã¡ã¬ã³ã¹ã§é·å¹Žè¬æŒè
ããã³ããã°ã©ã å§å¡äŒã®ã¡ã³ããŒãåããŠããŸãã EPAM Systems ã§ãã¬ãŒããŒãåããŠããã2012 幎ãã Hadoop/Spark ããã®ä»ã®ããã°ããŒã¿ã«ç²ŸéããŠããŸãã
ãã®è¬æŒã§ã¯ãAlexey ããApache Spark MLãApache MahoutãApache Flink ML ã䜿çšããçµéšãããã³ Apache Ignite ML ãäœæããçµéšã«åºã¥ããŠã忣ã¢ãŒãã§ã®å®è¡ã«å€å žçãªæ©æ¢°åŠç¿ã¢ã«ãŽãªãºã ãé©å¿ãããéã®åé¡ã«ã€ããŠè©±ããŸãã Alexey ã¯ããããã®ãã¬ãŒã ã¯ãŒã¯ã§ã®åæ£ ML ã¢ã«ãŽãªãºã ã®å®è£ ã«ã€ããŠã話ããŸãã
æåŸã«ãYandex ããŒã¿ããŒã¹ã«é¢ãã Yandex ããã®ã¬ããŒãã XNUMX ã€ãããŸãã
ãŠã©ãžã¹ã©ãã»ã¯ãºããã©ã -
Vladislav ã¯ã忣ãã©ãããã©ãŒã ã°ã«ãŒãã® Yandex ã®éçºè
ã§ãã Yandex Database ã¯ãæ°Žå¹³ã¹ã±ãŒã©ãã«ã§å°ççã«åæ£ããããã©ãŒã«ããã¬ã©ã³ã㪠DBMS ã§ãããäžè²«æ§ã倱ãããšãªããã£ã¹ã¯ããµãŒããŒãã©ãã¯ãããŒã¿ã»ã³ã¿ãŒã®é害ã«èããããšãã§ããŸãã èé害æ§ã確ä¿ããããã«ã忣åã³ã³ã»ã³ãµã¹ãéæããããã®ç¬èªã®ã¢ã«ãŽãªãºã ãšãã¬ããŒãã§è©³ãã説æãããŠããå€ãã®æè¡çãœãªã¥ãŒã·ã§ã³ã䜿çšãããŠããŸãã ãã®ã¬ããŒãã¯ãDBMS éçºè
ãš DBMS ã«åºã¥ãã¢ããªã±ãŒã·ã§ã³ ãœãªã¥ãŒã·ã§ã³ã®éçºè
ã®äž¡æ¹ã«ãšã£ãŠè峿·±ããã®ãšãªãã§ãããã
ã»ãã§ã³ã»ãã§ãã§ãªã³ã -
Semyon ã¯ãYandex ã®åæ£ãã©ãããã©ãŒã ã°ã«ãŒãã®éçºè
ã§ãYDB ã€ã³ã¹ããŒã«ã®ãã«ãããã³ã䜿çšã®å¯èœæ§ã«åãçµãã§ããŸãã
Yandex ããŒã¿ããŒã¹ã¯ OLTP ã¯ãšãªçšã«èšèšãããŠããããã©ã³ã¶ã¯ã·ã§ã³ ã·ã¹ãã ã® ACID èŠä»¶ã«æºæ ããŠããŸãã ãã®ã¬ããŒãã§ã¯ãYDB ãã©ã³ã¶ã¯ã·ã§ã³ ã·ã¹ãã ã®åºç€ãšãªããã©ã³ã¶ã¯ã·ã§ã³ ã¹ã±ãžã¥ãŒãªã³ã° ã¢ã«ãŽãªãºã ã«ã€ããŠèå¯ããŸãã ã©ã®ãšã³ãã£ãã£ããã©ã³ã¶ã¯ã·ã§ã³ã«åå ããã®ãã誰ããã©ã³ã¶ã¯ã·ã§ã³ã«ã°ããŒãã«ãªé åºãå²ãåœãŠãã®ãããã©ã³ã¶ã¯ã·ã§ã³ã®ååæ§ãä¿¡é Œæ§ãããã³å³æ Œãªã¬ãã«ã®åé¢ãã©ã®ããã«éæãããããèŠãŠã¿ãŸãããã äžè¬çãªåé¡ãäŸãšããŠãXNUMX ãã§ãŒãº ã³ããããšç¢ºå®çãã©ã³ã¶ã¯ã·ã§ã³ã䜿çšãããã©ã³ã¶ã¯ã·ã§ã³ã®å®è£ ãèŠãŠã¿ãŸãããã ãããã®éãã«ã€ããŠè©±ãåããŸãããã
次ã¯äœã§ããïŒ
ã«ã³ãã¡ã¬ã³ã¹ã®ããã°ã©ã ã«ã¯åŒãç¶ãæ°ããã¬ããŒããæºèŒã§ãã ç¹ã«ãç§ãã¡ã¯ããã®å ±åãæåŸ ããŠããŸãã ãããŒã¿ã»ã³ãŽã¡ã« () JetBrains ããã³ ãªã¬ã°ã»ã¢ãã¹ã¿ã·ãšã (ïŒOdnoklassniki瀟ããã Nikita 㯠Kotlin ããŒã ã§ã³ã«ãŒãã³ã®ã¢ã«ãŽãªãºã ã«åãçµãã§ãããOleg 㯠Odnoklassniki ãã©ãããã©ãŒã ã§é«è² è·ã·ã¹ãã çšã®ã¢ãŒããã¯ãã£ãšãœãªã¥ãŒã·ã§ã³ãéçºããŠããŸãã ããã«ãæ¡ä»¶ä»ãã®ç©ºãæ ãããš 1 ã€ãããããã°ã©ã å§å¡äŒã¯çŸåšãã®åè£è ãšååããŠããŸãã
ããã©äŒè°ã¯11æ12æ¥ãšXNUMXæ¥ã«ãµã³ã¯ãããã«ãã«ã¯ã§éå¬ãããã ãã±ããã¯å ¥æå¯èœã§ã ã æè¿äœããã®çç±ã§ãµã³ã¯ãããã«ãã«ã¯ã«è¡ããªãå Žåã¯ããªã³ã©ã€ã³ãã±ããã®å ¥æå¯èœç¶æ³ã«ã泚æãã ããã
ããã©ã§ãäŒãããŸãããïŒ
åºæïŒ habr.com
