HighLoad++ ã¢ã¹ã¯ã¯ 2018ãè°äŒããŒã«ã 9æ15æ¥ 00:XNUMX
èŠçŽãšãã¬ãŒã³ããŒã·ã§ã³:
ãŠãŒãªã»ãã¹ã¬ãã£ãã (VKontakte): ãã®ã¬ããŒãã§ã¯ãåœç€Ÿã§ ClickHouse ãå°å ¥ããçµéšãã€ãŸãããªããããå¿ èŠãªã®ããã©ã®ãããã®ããŒã¿ãä¿åããŠããã®ããã©ã®ããã«æžããŠããã®ããªã©ã«ã€ããŠèª¬æããŸãã
è¿œå ã®è³æ
ãŠãŒãªã»ãã¹ã¬ãã£ããïŒ - ããã«ã¡ã¯ãã¿ããªïŒ ãã§ã«ã玹ä»ããŸãããšãããç§ã®ååã¯ãŠãŒãªã»ãã¹ã¬ãã£ããã§ãã ç§ã¯VKontakteã§åããŠããŸãã ç§ãã¡ã®ãµãŒããŒçŸ€ (æ°äžå°) ãã ClickHouse ã«ããŒã¿ãæ¿å ¥ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
ãã°ãšã¯äœã§ãã?ãªãåéããã®ã§ãã?
ç§ãã¡ããäŒãããå 容: ç§ãã¡ãäœãããã®ãããªããClickHouseããå¿ èŠãªã®ãããªããããéžãã ã®ããç¹å¥ã«äœãèšå®ããã«ããããã©ã®ãããªããã©ãŒãã³ã¹ãåŸãããã®ãã ãããã¡ ããŒãã«ããããã¡ ããŒãã«ã«é¢ããŠç§ãã¡ãæ±ããŠããåé¡ããããŠãªãŒãã³ ãœãŒã¹ããéçºãããœãªã¥ãŒã·ã§ã³ã§ãã KittenHouse ãš Lighthouse ã«ã€ããŠããã«è©³ãã説æããŸãã
ããããããªãäœãããå¿
èŠããã£ãã®ã§ãããã (VKontakte ã§ã¯åžžã«ãã¹ãŠãããŸããããŸããã?)ã ç§ãã¡ã¯ãããã° ãã°ãåéããããšèããŠããŸãã (ãããŠãããã«ã¯æ°çŸãã©ãã€ãã®ããŒã¿ããããŸãã)ãçµ±èšãèšç®ããæ¹ã䟿å©ãããããŸããã ãããŠãç§ãã¡ã¯äœäžãã®ãµãŒããŒãããªãããªãŒããæã£ãŠãããããããã¹ãŠãããããå®è¡ããå¿
èŠããããŸãã
ãªããã決ããã®ã§ããããïŒ ãããããã°ãä¿åããããã®ãœãªã¥ãŒã·ã§ã³ããã£ãã§ãããã ããã«ããã®ãããªãããªãã¯ãªãããã¯ãšã³ã VKãããããŸãã 賌èªããããšã匷ããå§ãããŸãã
ãã°ãšã¯äœã§ãã? ããã¯ç©ºã®é
åãè¿ããšã³ãžã³ã§ãã VK ã®ãšã³ãžã³ã¯ãä»ã®äººããã€ã¯ããµãŒãã¹ãšåŒã¶ãã®ã§ãã ãããŠãã¡ããç¬é¡ã®ã¹ã¿ã³ãã§ãïŒããããããããïŒã ã©ãããŠïŒ ããŠãããã«èããŠãã ããïŒ
ãã°ã®ä¿åã«ã¯äœã䜿çšã§ããŸãã? Hadup ã«ã€ããŠèšåããªãããã«ã¯ãããŸããã 次ã«ãããšãã°ãRsyslog (ãããã®ãã°ããã¡ã€ã«ã«ä¿åããŸã)ã LSDã LSDãäœãªã®ã誰ãç¥ã£ãŠããŸããïŒ ãããããã®LSDã§ã¯ãããŸããã ãã¡ã€ã«ãããããä¿åããŸãã ãŸããClickHouse ã¯å¥åŠãªãªãã·ã§ã³ã§ãã
ã¯ãªãã¯ããŠã¹ãšç«¶åä»ç€Ÿ: èŠä»¶ãšæ©äŒ
ç§éã¯äœã欲ããã®ãïŒ æäœã«ã€ããŠããŸãå¿é ããå¿ èŠããªããã§ããã°æå°éã®æ§æã§ãã®ãŸãŸåäœããããã«ããããšèããŠããŸãã ããããæžãããããæ©ãæžãããã ãããŠç§ãã¡ã¯ãããäœãæãäœå¹Žããã€ãŸãé·æéä¿åããããšèããŠããŸãã ç§ãã¡ã¯ã圌ããç§ãã¡ã«æ¥ãŠãããã§äœããããŸããããªãããšèšã£ãåé¡ãç解ããããšæããããããŸããããã㯠3 ãæåã®ããšã§ããã3 ãæåã«äœãèµ·ãã£ãã®ãã確èªã§ããããã«ããããšèããŠããŸããã ããŒã¿å§çž® â ãªãããããã©ã¹ã«ãªãã®ãã¯æããã§ã â ããã¯å æããã¹ããŒã¹ã®éãæžããããã§ãã
ãããŠãéåžžã«èå³æ·±ãèŠä»¶ããããŸããã³ãã³ãã®åºå (ãã°ãªã©) ãæžã蟌ãããšããããŸããããã®åºåã¯ç°¡åã« 4 ãããã€ããè¶
ããããšããããŸãã ãããŠãããã UDP çµç±ã§æ©èœããå Žåãè²»çšã¯ããããŸãã...æ¥ç¶ã«ããªãŒããŒããããããããããå€æ°ã®ãµãŒããŒã«ãšã£ãŠããã¯ãã©ã¹ã«ãªããŸãã
ãªãŒãã³ãœãŒã¹ãç§ãã¡ã«äœãæäŸããŠãããã®ãèŠãŠã¿ãŸãããã ãŸãããã° ãšã³ãžã³ããããŸãããããç§ãã¡ã®ãšã³ãžã³ã§ãã ååãšããŠã圌ã¯äœã§ãã§ããé·ãã»ãªããæžãããšããã§ããŸãã ããã§ãããééçã«ããŒã¿ãå§çž®ããããã§ã¯ãããŸãããå¿
èŠã«å¿ããŠå€§ããªåãèªåã§å§çž®ããããšãã§ããŸã...ãã¡ããã(å¯èœã§ããã°) å§çž®ããããããŸããã å¯äžã®åé¡ã¯ã圌ãèªåã®èšæ¶ã«é©åãããã®ããæäŸã§ããªãããšã§ãã æ®ããèªã¿åãã«ã¯ããã®ãšã³ãžã³ã® binlog ãååŸããå¿
èŠããããããããªãã®æéãããããŸãã
ä»ã«ã©ã®ãããªãªãã·ã§ã³ããããŸãã? ããšãã°ãããããããã æäœã®ãããã... Hadup ã®ã»ããã¢ãããç°¡åã ãšæã人ã¯ããŸããã? ãã¡ããé²é³ã«ã¯åé¡ãããŸããã èªãã§ãããšæã
çåã湧ããŠããŸãã ååãšããŠãç¹ã«ãã°ã®å Žåã¯ããããããã§ã¯ãªããšæããŸãã é·æä¿å - ãã¡ãããããŒã¿å§çž® - é·ãæåå - èšé²ã§ããããšã¯æããã§ãã ããããå€æ°ã®ãµãŒããŒããé²ç»ããå Žåã¯...ãã¯ãèªåã§äœããããå¿
èŠããããŸãã
Rsyslogã å®éãbinlog ããã³ãããã«èªã¿åãããšãã§ããããã«ããã¯ã¢ãã ãªãã·ã§ã³ãšããŠäœ¿çšããŸããããé·ãè¡ãæžã蟌ãããšã¯ã§ãããååãšã㊠4 ãããã€ããè¶ ããããšã¯ã§ããŸããã åãæ¹æ³ã§ããŒã¿å§çž®ãèªåã§è¡ãå¿ èŠããããŸãã èªã¿åãã¯ãã¡ã€ã«ããè¡ãããŸãã
次ã«ãLSDã®ãããã¥ã·ã¥ã«ãã®éçºããããŸãã åºæ¬çã«ãRsyslogããšåãã§ããé·ãæååããµããŒãããŠããŸãããUDP çµç±ã§ã¯åäœã§ããŸãããå®éããã®ãããæ®å¿µãªããããªãå€ãã®å
容ãæžãçŽãå¿
èŠããããŸãã æ°äžå°ã®ãµãŒããŒããèšé²ã§ããããã« LSD ãåèšèšããå¿
èŠããããŸãã
ãããŠããïŒ é¢çœããªãã·ã§ã³ã¯ ElasticSearch ã§ãã ã©ã®ããã«èšã£ãŠïŒ 圌ã¯èªæžã¯åŸæã§ããã€ãŸãéãèªãããšãã§ããŸãããæžãããšã¯ããŸãåŸæã§ã¯ãããŸããã ãŸããããŒã¿ãå§çž®ãããšéåžžã«åŒ±ãã§ãã ãããããå®å
šãªæ€çŽ¢ã«ã¯ãå
ã®ããªã¥ãŒã ããã倧ããªããŒã¿æ§é ãå¿
èŠã«ãªããŸãã æäœãé£ãããåé¡ãçºçããããšããããããŸãã ãããŠãç¹°ãè¿ãã«ãªããŸãããElastic ã§ã®é²é³ã¯ãã¹ãŠèªåãã¡ã§è¡ãå¿
èŠããããŸãã
ãã¡ãããããã§ã¯ ClickHouse ãçæ³çãªéžæè¢ã§ãã å¯äžã®åé¡ã¯ãæ°äžã®ãµãŒããŒããã®é²ç»ãåé¡ã§ãããšããããšã§ãã ããããå°ãªããšãåé¡ã XNUMX ã€ãããŸããäœããã®æ¹æ³ã§è§£æ±ºããããšãã§ããŸãã ã¬ããŒãã®æ®ãã®éšåã¯ãã®åé¡ã«é¢ãããã®ã§ãã ClickHouse ã«ã¯ã©ã®ãããªããã©ãŒãã³ã¹ãæåŸ
ã§ããŸãã?
ã©ããã£ãŠæ¿å ¥ããã®ã§ããããïŒ ããŒãžããªãŒ
çããã®äžã§ãClickHouseãã«ã€ããŠèããããšããªãããŸãã¯ç¥ããªã人ã¯ããã§ãããã? èšããªãããããªããã§ãããïŒ ãšãŠãæ©ãã ãããžã®æ¿å ¥ - æ¯ç§ 1 ïœ 2 ã®ã¬ããããæ¯ç§æ倧 10 ã®ã¬ãããã®ããŒã¹ãã¯å®éã«ãã®æ§æã«èããããšãã§ããŸã - 6 ã€ã® 256 ã³ã¢ Xeon (ã€ãŸããæã匷åã§ã¯ãããŸãã)ã20 ã®ã¬ãã€ãã® RAMã6 ãã©ãã€ãããããŸãRAID å (誰ãæ§æãããŠããªããããã©ã«ãèšå®)ã ClickHouse éçºè ã® Alexey Milovidov ã¯ãç§ãã¡ãäœãèšå®ããŠããªãããã«ãããããããã«åº§ã£ãŠæ³£ããŠããã§ããã (ç§ãã¡ã«ãšã£ãŠã¯ãã¹ãŠããã®ããã«æ©èœããŸãã)ã ãããã£ãŠãããŒã¿ãååã«å§çž®ãããŠããã°ãäŸãã°æ¯ç§çŽïŒïŒåã©ã€ã³ã®èµ°æ»é床ãåŸãããã ããã¹ãæååã«å¯Ÿã㊠% ãå®è¡ãããšã100 ç§ããã XNUMX åè¡ãã€ãŸãããªãé«éã«èŠããŸãã
ã©ããã£ãŠæ¿å
¥ããã®ã§ããããïŒ VK ã PHP ã䜿çšããŠããããšã¯ãåç¥ã§ãããã å PHP ã¯ãŒã«ãŒãã HTTP çµç±ã§ãClickHouseãã®ã¬ã³ãŒãããšã« MergeTree ããŒãã«ã«æ¿å
¥ããŸãã ãã®èšç»ã«åé¡ããããšèª°ãèããã§ãããã? ãªããå
šå¡ãæãæããªãã£ãã èšã£ãŠãããã©ã
ãŸãããµãŒããŒããããããããŸãããããã£ãŠãæ¥ç¶ãå€ããªããŸã (æªã)ã ãã®å Žåã¯ãMergeTree ãžã®ããŒã¿ã®æ¿å ¥é »åºŠã¯ XNUMX ç§ã« XNUMX å以äžã«ããããšããå§ãããŸãã ãã®çç±ã¯èª°ã«ãåãããŸããã åãã£ããåãã£ãã ããã«ã€ããŠã¯ããå°ã詳ãã説æããŸãã ãã XNUMX ã€ã®èå³æ·±ã質åã¯ãåæãè¡ã£ãŠããã®ã§ã¯ãªããããŒã¿ã匷åããå¿ èŠããªããäžéãµãŒããŒãå¿ èŠãªãããClickHouseãã«çŽæ¥æ¿å ¥ããããšããããšã§ã (ã§ããã°ãçŽæ¥çãªã»ã©è¯ãã§ã)ã
ãããã£ãŠãMergeTree ã§ã¯æ¿å
¥ã¯ã©ã®ããã«è¡ãããã®ã§ãããã? XNUMX ç§ã« XNUMX å以äžã®é »åºŠã§æ¿å
¥ããæ¹ãè¯ãã®ã¯ãªãã§ãã? å®éããClickHouseãã¯ååããŒã¿ããŒã¹ã§ãããäž»ããŒã®æé ã§ããŒã¿ããœãŒãããæ¿å
¥ãå®è¡ãããšãå°ãªããšãããŒã¿ããœãŒããããåã®æ°ãšåãæ°ã®ãã¡ã€ã«ãäœæãããŸããäž»ããŒã®æé 㧠(æ¿å
¥ããšã«å¥ã®ãã£ã¬ã¯ããªããã£ã¹ã¯äžã«äœæãããäžé£ã®ãã¡ã€ã«ãäœæãããŸã)ã ãã®åŸã次ã®æ¿å
¥ãè¡ãããããã¯ã°ã©ãŠã³ãã§ãã倧ããªãããŒãã£ã·ã§ã³ãã«çµåãããŸãã ããŒã¿ã¯ãœãŒããããŠãããããå€ãã®ã¡ã¢ãªãæ¶è²»ããããšãªãããœãŒãããã XNUMX ã€ã®ãã¡ã€ã«ããããŒãžãããããšãã§ããŸãã
ãã ãããæ³åã®ãšãããæ¿å ¥ããšã« 10 åã®ãã¡ã€ã«ãæžã蟌ããšãClickHouse (ãŸãã¯ãµãŒããŒ) ãããã«çµäºããŠããŸãããã倧ããªãããã§æ¿å ¥ããããšããå§ãããŸãã ãããã£ãŠãç§ãã¡ã¯æåã®ã¹ããŒã ãå®éã«éçšããããšã¯ãããŸããã§ããã ç§ãã¡ã¯ããã« 2 ã€ãç«ã¡äžããŸãããããã§ã® No.XNUMX ã¯æ¬¡ã®ãšããã§ãã
ããã§ãèµ·åãããµãŒããŒãçŽ XNUMX å°ãããPHP ã ãããããšæ³åããŠãã ããã ãããŠãåãµãŒããŒã«ã¯ãKittenhouseããšåŒã°ããããŒã«ã« ãšãŒãžã§ã³ããããããClickHouseããšã®æ¥ç¶ã XNUMX ã€ç¶æããæ°ç§ããšã«ããŒã¿ãæ¿å
¥ããŸãã ããŒã¿ã MergeTree ã§ã¯ãªããããã¡ ããŒãã«ã«æ¿å
¥ããŸããããã¯ãMergeTree ã«ããã«çŽæ¥æ¿å
¥ããããšãé¿ããããã«æ£ç¢ºã«æ©èœããŸãã
ãããã¡ããŒãã«ã®æäœ
ããã¯äœã§ããïŒ ãããã¡ ããŒãã«ã¯ãã·ã£ãŒãåãããã¡ã¢ãªã®äžéšã§ã (ã€ãŸããé »ç¹ã«æ¿å ¥ã§ããŸã)ã ãããã¯è€æ°ã®éšåã§æ§æãããåéšåã¯ç¬ç«ãããããã¡ãŒãšããŠæ©èœããç¬ç«ããŠãã©ãã·ã¥ãããŸã (ãããã¡ãŒå ã«å€ãã®éšåãããå Žåã¯ã3 ç§ãããå€ãã®æ¿å ¥ãè¡ãããŸã)ã ãããã®ããŒãã«ããèªã¿åãããšã¯å¯èœã§ãããã®åŸããããã¡ãŒã®å 容ãšèŠªããŒãã«ã®çµåãèªã¿åããŸãããçŸæç¹ã§ã¯æžã蟌ã¿ããããã¯ãããŠãããããããããèªã¿èŸŒãŸãªãæ¹ãããã§ãããã ãŸãããããã¡ ããŒãã«ã¯éåžžã«åªãã QPS ã瀺ããŸããã€ãŸããæ倧 XNUMX QPS ãŸã§ã¯æ¿å ¥æã«ãŸã£ããåé¡ãããŸããã ããŒã¿ã¯ã¡ã¢ãªã«ä¿åãããŠããã ããªã®ã§ããµãŒããŒã®é»æºã倱ããããšãããŒã¿ã倱ãããå¯èœæ§ãããããšã¯æããã§ãã
åæã«ããããã¡ãŒã䜿çšããã¹ããŒã 㯠ALTER ãè€éã«ããŸããããã¯ãå€ãã¹ããŒã ã䜿çšããŠå€ããããã¡ãŒ ããŒãã«ãæåã«åé€ããå¿
èŠãããããã§ã (ããŒãã«ãåé€ãããåã«ãã©ãã·ã¥ããããããããŒã¿ã¯ã©ãã«ãæ¶ããŸãã)ã 次ã«ãå¿
èŠãªããŒãã«ããå€æŽããããããã¡ ããŒãã«ãå床äœæããŸãã ãããã£ãŠããããã¡ ããŒãã«ããªãéã¯ããŒã¿ã¯ã©ãã«ãæµããŸããããå°ãªããšãããŒã«ã«ã®ãã£ã¹ã¯äžã«ããŒã¿ã眮ãããšãã§ããŸãã
Kittenhouse ãšã¯äœã§ãã?ãŸããã®ä»çµã¿ã¯äœã§ãã?
ããã¥ã³ããŠã¹ãšã¯äœã§ããïŒ ããã¯ãããã·ã§ãã äœèªã ãšæããŸããïŒ ç§ã®ã¬ããŒãã§ã¯ãæãèªå€§åºåã®ãããã¯ãéããŸããããã¯ãªãã¯ããŠã¹ãããŽãŒãããããããäœãä»ã®ããšãæãåºããããããŸããã ã¯ãããã㯠Go ã§æžãããŠããŸããç§ã¯ C ã§æžãæ¹æ³ãããããããŸããããæžããããªãããã§ãã
ãããã£ãŠãåãµãŒããŒãšã®æ¥ç¶ãç¶æããã¡ã¢ãªã«æžã蟌ãããšãã§ããŸãã ããšãã°ããšã©ãŒ ãã°ã Clickhouse ã«æžã蟌ãå ŽåãClickhouse ã«ããŒã¿ãæ¿å
¥ããæéããªãå Žå (çµå±ã®ãšãããæžã蟌ãŸããéãå€ãããå Žå)ãã¡ã¢ãªãæ¡åŒµãããæ®ããåã«ç Žæ£ããŸãã ãªããªããXNUMX ç§ãããæ°ã®ã¬ãããã®ãšã©ãŒãæžã蟌ããšãããããäžéšãå»æ£ã§ããããã§ãã ããã¥ã³ããŠã¹ãªããããªäºãåºæ¥ãŸãã ããã«ãä¿¡é Œæ§ã®é«ãé
ä¿¡ãå®è¡ã§ããŸããã€ãŸããããŒã«ã« ãã·ã³äžã®ãã£ã¹ã¯ã«æžã蟌ã¿ãæ¯å (æ°ç§ã« XNUMX å)ããã®ãã¡ã€ã«ããããŒã¿ã®é
ä¿¡ãè©Šã¿ãŸãã ãããŠæåã¯ããã€ããªåœ¢åŒãããã¹ãåœ¢åŒ (éåžžã® SQL ã®ãããª) ã§ã¯ãªããéåžžã®å€åœ¢åŒã䜿çšããŸããã
ãããããã®åŸããããèµ·ãããŸããã ç§ãã¡ã¯ä¿¡é Œæ§ã®é«ãé
ä¿¡ã䜿çšãããã°ãæžã蟌ã¿ããã®åŸæ±ºå®ããŸãã (æ¡ä»¶ä»ããã¹ãã¯ã©ã¹ã¿ãŒã§ãã)...æ°æéåæ¢ããŠããå
ã«æ»ããXNUMX å°ã®ãµãŒããŒããæ¿å
¥ãéå§ãããŸãã - Clickhouse ã«ã¯ãŸã ãæ¥ç¶æã®ã¹ã¬ããã - ãããã£ãŠãXNUMX åã®æ¥ç¶ã§ã¯ãã¢ã¯ãã£ããªæ¿å
¥ã«ããããµãŒããŒäžã®è² è·å¹³åã¯çŽ XNUMX ã«ãªããŸãã é©ããããšã«ããµãŒããŒã¯ãªã¯ãšã¹ããåãå
¥ããŸãããããã°ããããŠããããŒã¿ãæ¿å
¥ããããŸãŸã§ããã ãããããµãŒããŒããããæäŸããã®ã¯éåžžã«å°é£ã§ãã...
nginxãè¿œå ãã
æ¥ç¶ããšã®ã¹ã¬ãã ã¢ãã«ã®ãã®ãããªãœãªã¥ãŒã·ã§ã³ã¯ nginx ã§ãã Clickhouse ã®åã« nginx ãã€ã³ã¹ããŒã«ããåæã« 2 ã€ã®ã¬ããªã«ã®ãã©ã³ã¹ãèšå®ã (ãããå®éã«åœãŠã¯ãŸãããã§ã¯ãããŸããããæ¿å ¥é床ã 50 ååäžããŸãã)ãClickhouse ãžã®æ¥ç¶æ°ãå¶éããŸãããã¢ããã¹ããªãŒã ãããã³ããã«å¿ã㊠XNUMX æ¥ç¶ãè¶ ãããšãæ¿å ¥ããæå³ããªãããã§ãã
次ã«ãããã«ã¯ nginx ã XNUMX ã€ãããªãããããã®ã¹ããŒã ã«ã¯äžè¬çã«æ¬ ç¹ãããããšã«æ°ä»ããŸããã ãããã£ãŠããã® nginx ãã¯ã©ãã·ã¥ãããšãã¬ããªã«ãååšããã«ãããããããããŒã¿ã倱ãããããå°ãªããšãã©ãã«ãæžã蟌ããªããªããŸãã ãã®ãããç§ãã¡ã¯ç¬èªã®è² è·åæ£ãäœæããŸããã ãŸãããã¯ãªãã¯ããŠã¹ããäŸç¶ãšããŠãã°ã«é©ããŠããããšããããããæªéãããã¯ãªãã¯ããŠã¹ãã«ãã°ãæžãå§ããŸãããæ£çŽã«èšããšãéåžžã«äŸ¿å©ã§ããã ç§ãã¡ã¯ä»ã§ãä»ã®ãæªéãã«å¯ŸããŠããã䜿çšããŠããŸãã
次ã«ããã®èå³æ·±ãåé¡ãçºèŠããŸãããSQL ã¢ãŒãã§æ¿å
¥ããéæšæºçãªæ¹æ³ã䜿çšãããšãæ¬æ Œç㪠AST ããŒã¹ã® SQL ããŒãµãŒã匷å¶ãããéåžžã«æéãããããŸãã ãããã£ãŠããã®ãããªããšãèµ·ãããªãããã«èšå®ãè¿œå ããŸããã è² è·åæ£ãšãã«ã¹ãã§ãã¯ãè¡ã£ãã®ã§ãXNUMX ã€ãåæ¢ããŠãããŒã¿ãæ®ãããã«ãªããŸããã ããŸããŸãª Clickhouse ã¯ã©ã¹ã¿ãŒã䜿çšããããã«å¿
èŠãªããŒãã«ãããªãå€ããªããŸããã ãããŠãä»ã®çšéã«ã€ããŠãèãå§ããŸãããããšãã°ãnginx ã¢ãžã¥ãŒã«ãããã°ãæžã蟌ã¿ããã®ã§ãããRPC ã䜿çšããŠéä¿¡ããæ¹æ³ãããããŸããã ããã§ãããå°ãªããšãäœããã®æ¹æ³ã§éä¿¡ããæ¹æ³ãããšãã° UDP çµç±ã§ããŒã«ã«ãã¹ãäžã®ã€ãã³ããåä¿¡ããããã Clickhouse ã«è»¢éããæ¹æ³ãæããããšæããŸãã
解決ãŸã§ããšäžæ©
æçµçãªã¹ããŒã ã¯æ¬¡ã®ããã«ãªããŸã (ãã®ã¹ããŒã ã® 50 çªç®ã®ããŒãžã§ã³): Clickhouse ã®åã®åãµãŒããŒã«ã¯ nginx ããã (åããµãŒããŒäžã«ãããŸã)ãæ¥ç¶æ°ã®å¶éã XNUMX ã§ããããŒã«ã«ãã¹ãã«ãªã¯ãšã¹ãããããã·ããã ãã§ããåã ãããŠããã®èšç»ã¯ãã§ã«ããªãããŸãæ©èœããŠããããã¹ãŠãããŸããããŸããã
ãããªç掻ãäžã¶æã»ã©ç¶ããŸããã 誰ããæºè¶³ããããŒãã«ãè¿œå ããè¿œå ããè¿œå ããŸãã... äžè¬çã«ããããã¡ãŒ ããŒãã«ãè¿œå ããæ¹æ³ã¯ããŸãæé©ã§ã¯ãªãããšãããããŸãã (ãã®ããã«èšãæããŸããã)ã åããŒãã«ã§ 16 åã®ããŒã¹ââãå®è¡ãããã©ãã·ã¥ééã¯æ°ç§ã§ããã 20 ã®ããŒãã«ããããåããŒãã«ã¯ 8 ç§ããã 502 件ã®æ¿å
¥ãåãåããŸããããããŠãã®æç¹ã§ãã¯ãªãã¯ããŠã¹ããå§ãŸããŸãã...ã¬ã³ãŒããé
ããªãå§ããŸããã 圌ãã¯ééããããŸããã§ãã... Nginx ã«ã¯ããã©ã«ãã§éåžžã«èå³æ·±ãæ©èœããããæ¥ç¶ãã¢ããã¹ããªãŒã ã§çµäºããå Žåããã¹ãŠã®æ°ãããªã¯ãšã¹ãã«å¯ŸããŠåçŽã«ãXNUMXããè¿ããŸãã
ãããŠãããã§ã¯ (ã¯ãªãã¯ããŠã¹èªäœã®ãã°ãèŠããšããã§ãã)ããªã¯ãšã¹ãã®çŽ XNUMX ããŒã»ã³ãã倱æããŸããã ãããã£ãŠããã£ã¹ã¯äœ¿çšçãé«ããããŒãžãé »ç¹ã«è¡ãããŸããã ããŠãç§ã¯äœãããŸãããïŒ åœç¶ã®ããšãªãããæ¥ç¶ãšã¢ããã¹ããªãŒã ããªãçµäºããã®ããæ£ç¢ºã«ç解ããæ°ã¯ãããŸããã§ããã
nginx ããªããŒã¹ ãããã·ã«çœ®ãæãã
ããã¯èªåãã¡ã§ç®¡çããå¿ èŠããããnginx ã«ä»»ããå¿ èŠã¯ãªããšå€æããŸãããnginx 㯠Clickhouse ã«ã©ã®ãããªããŒãã«ãããã®ãââç¥ããŸãããããã§ãnginx ããªããŒã¹ ãããã·ã«çœ®ãæããŸããããããèªåã§äœæããŸããã
圌ã¯äœãããŠããã®ïŒ fasthttp ã©ã€ãã©ãªãgoshnoyãã«åºã¥ããŠåäœããŸããã€ãŸããnginx ãšã»ãŒåããããé«éã§ãã ããããªãããIgorãããããã«ãããªã (泚: Igor Sysoev 㯠nginx Web ãµãŒããŒãäœæãããã·ã¢ã®ããã°ã©ããŒã§ã)ã ããããã©ã®ãããªçš®é¡ã®ã¯ãšãª (INSERT ãŸã㯠SELECT) ã§ããããç解ã§ããããã«å¿ããŠãã¯ãšãªã®çš®é¡ããšã«ç°ãªãæ¥ç¶ããŒã«ãä¿æããŸãã
ãããã£ãŠãæ¿å
¥ãªã¯ãšã¹ããå®äºããæéããªãå Žåã§ãããéžæãã¯ééããŸããããã®éãåæ§ã§ãã ãããŠããšã©ãŒãæ§æãšã©ãŒãªã©ããã£ãå Žåã«ãããŒã¿ããããã¡ ããŒãã«ã«ã°ã«ãŒãåããŸãããããã¡ ããŒãã«ã«åçŽã«æ¿å
¥ããå Žåãæ®ãã®ããŒã¿ã«å€§ããªåœ±é¿ãäžããªãããã«ããŸããå°ããªãbachiããããããã¹ãŠã®æ§æãšã©ãŒã¯ãã®å°ããªéšåã«ã®ã¿åœ±é¿ããŸããã ãããŠããã§ã¯ãã§ã«å€§ããªãããã¡ã«åœ±é¿ãäžããŠããŸãã å°ãšã¯ 1 ã¡ã¬ãã€ããã€ãŸãããã»ã©å°ãããããŸããã
åæãæ¿å
¥ããŠåºæ¬çã« nginx ã眮ãæãããšãåºæ¬çã« nginx ã以åã«è¡ã£ãŠããããšãšåãããšãè¡ãããŸãããã®ããã«ããŒã«ã«ã®ãKittenhouseããå€æŽããå¿
èŠã¯ãããŸããã ãŸããfasthttp ã䜿çšãããããéåžžã«é«éã§ãããªããŒã¹ ãããã·çµç±ã§ 100 ã€ã®æ¿å
¥ã«å¯Ÿã㊠XNUMX ç§ããã XNUMX äžä»¶ãè¶
ãããªã¯ãšã¹ããè¡ãããšãã§ããŸãã çè«çã«ã¯ãäžåºŠã« XNUMX è¡ã kittenhouse ãªããŒã¹ ãããã·ã«æ¿å
¥ã§ããŸããããã¡ããããããªããšã¯ããŸããã
ã¹ããŒã ã¯æ¬¡ã®ããã«ãªããŸãããKittenhouseãããªããŒã¹ ãããã·ãå€ãã®ãªã¯ãšã¹ããããŒãã«ã«ã°ã«ãŒãåãã次ã«ãããã¡ ããŒãã«ããªã¯ãšã¹ããã¡ã€ã³ã®ãªã¯ãšã¹ãã«æ¿å
¥ããŸãã
Killer ã¯äžæçãªè§£æ±ºçã§ãããKitten ã¯æ°žç¶çãªè§£æ±ºçã§ã
ããã¯èå³æ·±ãåé¡ã§ã...fasthttp ã䜿çšããããšããããŸãã? POST ãªã¯ãšã¹ã㧠fasthttp ã䜿çšããã®ã¯èª°ã§ãã? ãããããããã©ã«ãã§ãªã¯ãšã¹ãæ¬æããããã¡ãªã³ã°ãããããã¡ ãµã€ãºã 16 ã¡ã¬ãã€ãã«èšå®ãããŠãããããããã¯å®éã«è¡ãã¹ãã§ã¯ãããŸããã§ããã ããæç¹ã§æ¿å ¥ãè¿œãã€ããªããªããæ°äžã®ãµãŒããŒãã¹ãŠãã 16 ã¡ã¬ãã€ãã®ãã£ã³ã¯ãå°çãå§ãããããã¯ãã¹ãŠã¯ãªãã¯ããŠã¹ã«éä¿¡ãããåã«ã¡ã¢ãªã«ãããã¡ãªã³ã°ãããŸããã ãããã£ãŠãã¡ã¢ãªãäžè¶³ããOut-Of-Memory Killer ããã£ãŠæ¥ãŠããªããŒã¹ ãããã· (ãŸãã¯ãã¯ãªãã¯ããŠã¹ããçè«çã«ã¯ãªããŒã¹ ãããã·ãããå€ãã®ãã®ããé£ã¹ããå¯èœæ§ããããŸã) ã殺ããŸããã ãã®ãµã€ã¯ã«ãç¹°ãè¿ãããŸããã ããŸã楜ããåé¡ã§ã¯ãããŸããã ããããç§ãã¡ã¯æ°ãæã®éçšåŸã«åããŠããã«æ°ã¥ããŸããã
ç§ãäœãããŠããŸã£ãã®ãïŒ ç¹°ãè¿ããŸãããæ£ç¢ºã«äœãèµ·ãã£ãã®ããç解ããã®ã¯ããŸã奜ãã§ã¯ãããŸããã ã¡ã¢ãªã«ãããã¡ãªã³ã°ãã¹ãã§ã¯ãªãããšã¯æããã ãšæããŸãã fasthttp ã«ããããåœãŠãŠã¿ãŸããããã§ããŸããã§ããã ããããç§ã¯äœãããããé©çšããå¿ èŠããªãããã«ããæ¹æ³ãèŠã€ããHTTP ã§ç¬èªã®ã¡ãœãããæãã€ããŸãããããã KITTEN ãšåä»ããŸããã ãŸããããã¯è«ççã§ã - ãVKãããKittenã... ä»ã«ã¯äœããããŸãã?...
Kitten ã¡ãœããã䜿çšããŠãªã¯ãšã¹ãããµãŒããŒã«å±ããå ŽåããµãŒããŒã¯è«ççã«ããã£ãŒããšå¿çããå¿
èŠããããŸãã 圌ãããã«å¿çããå Žåã圌ã¯ãã®ãããã³ã«ãç解ããŠãããšèŠãªãããæ¥ç¶ãååãã (fasthttp ã«ã¯ãã®ãããªã¡ãœããããããŸã)ãæ¥ç¶ã¯ãrawãã¢ãŒãã«ãªããŸãã ãªããããå¿
èŠãªã®ã§ãããã? TCP æ¥ç¶ããã®èªã¿åããã©ã®ããã«è¡ãããããå¶åŸ¡ããããšèããŠããŸãã TCP ã«ã¯çŽ æŽãããç¹æ§ããããŸããçžæåŽãã誰ãèªã¿åã£ãŠããªãå Žåãæžã蟌ã¿ã¯åŸ
æ©ãå§ããç¹ã«ã¡ã¢ãªã¯ãã®ããã«æ¶è²»ãããŸããã
ããã§ãç§ã¯äžåºŠã«çŽ50ã®ã¯ã©ã€ã¢ã³ãããèªã¿åããŸããïŒã¬ãŒããå¥ã®DCããæ¥ãŠãããšããŠãã20ã§ééããªãååã§ãããããXNUMXããïŒ...ãã®ã¢ãããŒãã§ã¯æ¶è²»éã¯å°ãªããšãXNUMXåæžå°ããŸããããæ£çŽã«èšããšãç§ã¯, ããæå³ããªãã®ã§æ£ç¢ºã«äœæã枬ãããšã¯ã§ããŸããã§ããïŒãã§ã«èª€å·®ã®ã¬ãã«ã«éããŠããŸãïŒã ãããã³ã«ã¯ãã€ããªã§ããã€ãŸããããŒãã«åãšããŒã¿ãå«ãŸããŸãã http ããããŒããªãã®ã§ãWeb ãœã±ããã¯äœ¿çšããŸããã§ãã (ãã©ãŠã¶ãŒãšéä¿¡ããå¿ èŠã¯ãããŸãããããŒãºã«åã£ããããã³ã«ãäœæããŸãã)ã ãããŠåœŒã«ãšã£ãŠãã¹ãŠãããŸããããŸããã
ãããã¡ããŒãã«ã¯æ²ãã
æè¿ããããã¡ ããŒãã«ã®å¥ã®èå³æ·±ãæ©èœãçºèŠããŸããã ãããŠããã®åé¡ã¯ãã§ã«ä»ã®åé¡ãããã¯ããã«èŠçã§ãã ãã®ç¶æ³ãæ³åããŠã¿ãŸããããããªãã¯ãã§ã« Clickhouse ãç©æ¥µçã«äœ¿çšããŠãããæ°åã® Clickhouse ãµãŒããŒãæã£ãŠãããèªã¿åãã«éåžžã«é·ãæé (ããšãã° 60 ç§ä»¥äž) ããããªã¯ãšã¹ããããã€ããããšããŸãã ãããŠãããªãã¯ãã®ç¬éã« Alter ãå®è¡ãã«æ¥ãŸã... ãã®éããAlterãã®åã«éå§ããããselectãã¯ãã®è¡šã«ã¯å«ãŸããŸããããAlterãã¯éå§ãããŸãããããããããClickhouseããã©ã®ããã«æ©èœãããã®äžéšã®æ©èœã§ãããã®å Žæã ããããããã¯ä¿®æ£ã§ããã§ããããïŒ ãããšãäžå¯èœãªã®ã§ããããïŒ
äžè¬ã«ãå®éã«ã¯ãããããã»ã©å€§ããªåé¡ã§ã¯ãªãããšã¯æããã§ããããããã¡ ããŒãã«ã§ã¯ããã«åé¡ã倧ãããªããŸãã ãªããªããããšãã°ããAlterããã¿ã€ã ã¢ãŠãã«ãªã£ãå Žå (ãããŠãå¥ã®ãã¹ãã§ã¿ã€ã ã¢ãŠãã«ãªãå¯èœæ§ããããŸããããšãã°ãèªåã®ãã¹ãã§ã¯ãªããã¬ããªã«ã§ã¿ã€ã ã¢ãŠãã«ãªãå¯èœæ§ããããŸã)ããã®ãšãã¯... ãããã¡ ããŒãã«ãã€ãŸããAlterã( (ãŸãã¯ä»ã®ãã¹ã) ãã¿ã€ã ã¢ãŠãããå ŽåããAlterããšã©ãŒãçºçããŸãã) - ããŒã¿ã®æžã蟌ã¿ãç¶ç¶ããŠããããšã確èªããå¿
èŠããããŸã: (芪ããŒãã«ãšåãã¹ããŒã ã«åŸã£ãŠ) ãããã¡ãŒ ããŒãã«ãäœæãçŽããŠããã ãAlterãã¯ééããçµå±çµäºããããŒãã«ã®ã¹ããŒãã芪ãšç°ãªããããã¡ãŒã«ãªãå§ããŸãã ãAlterãã®å
容ã«ãã£ãŠã¯ããã®ãããã¡ãŒ ããŒãã«ã«æ¿å
¥ãè¡ãããªããªãå¯èœæ§ããããŸããããã¯éåžžã«æ²ããããšã§ãã
ãã®ãããªå
åããããŸã (ãããã誰ããããã«æ°ã¥ããã§ããã) - Clickhouse ã®æ°ããããŒãžã§ã³ã§ã¯ query_thread_log ãšåŒã°ããŸãã ããã©ã«ãã§ã¯ãäžéšã®ããŒãžã§ã³ã«ã¯ããããããŸããã ããã§ã¯ãæ°ãæ㧠840 å 100 äžä»¶ã®ã¬ã³ãŒã (XNUMX ã®ã¬ãã€ã) ãèç©ãããŸããã ããã¯ãããã«ãæ¿å
¥ããæžãããŠãããšããäºå®ã«ãããã®ã§ãïŒã¡ãªã¿ã«ãä»ã¯æžãããŠããªããããããŸããïŒã å
ã»ã©ãè¿°ã¹ãããã«ãç§ãã¡ã®ãæ¿å
¥ãã¯å°ããã§ã - ãããã¡ãŒããŒãã«ãžã®ãæ¿å
¥ãããããããããŸããã ãããç¡å¹ã«ãªã£ãŠããããšã¯æããã§ããç§ã¯ãµãŒããŒäžã§èŠãããšã話ããŠããã ãã§ãã ãªãïŒ ããã¯ããããã¡ ããŒãã«ã®äœ¿çšã«å¯Ÿãããã XNUMX ã€ã®è°è«ã§ãã ã¹ãããã£ã¯ãšãŠãæ²ããã§ãã
ãã®ç·ã®ååãã¹ãããã£ã ãªããŠèª°ãç¥ã£ãïŒ VK瀟å¡ãæãæããã ããããŸããã
ãKitttenHouseãã®äŒç»ã«ã€ããŠ
èšç»ã¯éåžžå ±æãããŸããããïŒ çªç¶ãããããæºãããªããªããä»ã®äººã®ç®ã«ã¯ããŸãè¯ãèŠããªããªããŸãã ããããç§ã¯ãªã¹ã¯ãè² ããŸãïŒ ç§ãã¡ã¯æ¬¡ã®ããšãè¡ããããšèããŠããŸãããããã¡ ããŒãã«ã¯äŸç¶ãšããŠéèŠãªèŠçŽ ã§ãããæ¿å ¥ãèªåãã¡ã§ãããã¡ããå¿ èŠãããããã«æããŸãã ãã ãããã£ã¹ã¯äžã«ãããã¡ãªã³ã°ããããªããããæ¿å ¥ãã¡ã¢ãªã«ãããã¡ãªã³ã°ããŸãã
ãããã£ãŠããæ¿å
¥ããè¡ããããšãããã¯åæçã§ã¯ãªããªããŸãããã§ã«ãããã¡ãŒ ããŒãã«ãšããŠæ©èœãã芪ããŒãã«ã«æ¿å
¥ãã (ãŸãããã€ãã¯åŸã«ãªããŸãã)ãã©ã®æ¿å
¥ãæž¡ããããããŸãã©ã®æ¿å
¥ãæž¡ãããããå¥ã®ãã£ãã«çµç±ã§å ±åããŸããããŠãªãã
åææ¿å
¥ãçµäºã§ããªãã®ã¯ãªãã§ãã? ã¯ããã«äŸ¿å©ã§ãã å®éã®ãšããã10 ã®ãã¹ãããæ¿å
¥ããå Žåã¯ãã¹ãŠåé¡ãããŸãããåãã¹ãããå°ããã€ååŸããããã« 100 ç§ã« XNUMX åæ¿å
¥ããã°ããã¹ãŠåé¡ãããŸããã ãããããã®ã¹ããŒã ããããšãã° XNUMX å°ã®ãã·ã³ããåäœãããŠãé«éã§ããŠã³ããŒãã§ããããã«ããããšèããŠããŸãããããã Clickhouse ããæ倧å€ãåŒãåºãããšã¯ã§ããŸãããããªããŒã¹ ãããã·ãä»ã㊠XNUMX å°ã®ãã·ã³ãã XNUMX ç§ãããå°ãªããšã XNUMX ã¡ã¬ãã€ããæžã蟌ãããšãã§ããããã«ããããšèããŠããŸãããã®ã¹ããŒã ã¯å€§éãšå°éã®äž¡æ¹ã«å¯Ÿå¿ããå¿
èŠããããããæ¿å
¥ããšã« XNUMX ç§ãåŸ
ã€ããšãã§ããªããããéåæã«ããå¿
èŠããããŸãã ãŸããåæ§ã«ãæ¿å
¥ãå®äºããåŸã«éåæ確èªãè¡ãããå¿
èŠããããŸãã åæ ŒãããåŠãã¯ããããŸãã
æãéèŠãªããšã¯ããã®ã¹ããŒã ã§ã¯æ¿å ¥ãè¡ããããã©ããã確å®ã«ç¥ãããšãã§ãããšããããšã§ãã ãã®ç¶æ³ãæ³åããŠãã ããããããã¡ ããŒãã«ããããããã«äœããæžã蟌ãã åŸãããŒãã«ãèªã¿åãå°çšã¢ãŒãã«ãªãããããã¡ããã©ãã·ã¥ããããšãããšããŸãã ããŒã¿ã¯ã©ãã«è¡ãã®ã§ãããã? ãããã¯ãããã¡å ã«æ®ããŸãã ããããããã確信ããããšã¯ã§ããŸãã - ããŒã¿ããããã¡ã«æ®ããªãä»ã®ãšã©ãŒãçºçããå Žåã¯ã©ããªãã§ãããã... (Alexey MilovidovãYandexãClickHouse éçºè ã«å®ãŠãŠ) ãããšãããŒã¿ã¯æ®ããŸãã? ãã€ãïŒ ã¢ã¬ã¯ã»ã€ã¯ãã¹ãŠãããŸããããšç§ãã¡ã«èª¬åŸããŸãã 圌ãä¿¡ããªãçç±ã¯ãããŸããã ãã ãããããã¡ ããŒãã«ã䜿çšããªãå Žåã¯ãåé¡ã¯çºçããŸããã ååãšããŠå€§ããªåé¡ã¯ãããŸããããXNUMX åã®ããŒãã«ãäœæããããšãäžäŸ¿ã§ãã ãããèšç»ã§ãã
èªæžã«ã€ããŠè©±ããŸããã
ããŠãèªæžã«ã€ããŠè©±ããŸãããã ããã§ã¯ç¬èªã®ããŒã«ãäœæããŸããã ãªãããã«ç¬èªã®æ¥œåšãæžãå¿ èŠãããã®ã§ããã?. ãã㊠Tabix ã䜿çšããã®ã¯èª°ã§ãã? ãªããæãæãã人ãå°ãªãã£ãã§ã...ãããŠãTabix ã®ããã©ãŒãã³ã¹ã«æºè¶³ããŠãã人ã¯èª°ã§ãã? ãŸããããã«ã¯æºè¶³ããŠããŸããããããŒã¿ãèŠãã®ã«ãããŸã䟿å©ã§ã¯ãããŸããã åæã«ã¯åé¡ãããŸãããã衚瀺ããã ãã§ã¯æããã«æé©åãããŠããŸããã ããã§ç§ã¯ç¬èªã®ã€ã³ã¿ãŒãã§ã€ã¹ãäœæããŸããã
ããã¯éåžžã«åçŽã§ã - ããŒã¿ãèªã¿åãã ãã§ãã 圌ã¯ã°ã©ãã£ãã¯ã®è¡šç€ºæ¹æ³ãç¥ããŸããããäœãããããç¥ããŸããã ããããå¿
èŠãªãã®ã¯è¡šç€ºã§ããŸããããšãã°ãããŒãã«ã«è¡ãäœè¡ãããã(åã«åå²ããã«) ããŒãã«ãå ããã¹ããŒã¹ã¯ã©ããããããã€ãŸããéåžžã«åºæ¬çãªã€ã³ã¿ãŒãã§ã€ã¹ãå¿
èŠã§ãã
ãã㯠Sequel Pro ã«éåžžã«ãã䌌ãŠããŸãããTwitter ã® Bootstrap ãš 2018 çªç®ã®ããŒãžã§ã³ã§ã®ã¿äœæãããŠããŸãã ããŠãŒãªããªã XNUMX çªç®ã®ããŒãžã§ã³ã䜿ãã®ã§ãã?ããšå°ããŸãã äœå¹ŽïŒ XNUMXå¹ŽïŒ äžè¬ã«ãç§ã¯ããªãåã«ãMuscleãïŒMySQLïŒã«å¯ŸããŠãããå®è¡ããããã§ã¯ãšãªã®æ°è¡ãå€æŽããã ãã§ããClickhouseãã§ãæ©èœããããã«ãªããŸãããç¹ã«æè¬ããŸãã ãªããªããããŒãµãŒã¯ãçèãã®ããŒãµãŒã«éåžžã«äŒŒãŠãããã¯ãšãªãéåžžã«äŒŒãŠãããããç¹ã«æåã¯éåžžã«äŸ¿å©ã§ãã
ããŒãã«ããã£ã«ã¿ãªã³ã°ããããŒãã«ã®æ§é ãšå
容ã衚瀺ãã䞊ã¹æ¿ããåã«ãããã£ã«ã¿ãªã³ã°ãå¯èœã«ããçµæãšãªã£ãã¯ãšãªã圱é¿ãåããè¡ (çµæãšããŠããã€) ã衚瀺ããŸããããŒã¿ã衚瀺ããããã®åºæ¬çãªäºé
ã ããªãéãã§ãã
ç·šéè
ãããŸãã æ£çŽã«èšã£ãŠãTabix ãããšãã£ã¿å
šäœãçãããšããŸããããã§ããŸããã§ããã ããããã©ããããããæ©èœããŸãã ååçã«ã¯ããã ãã§ãã
巣穎ã«æé©ãªãã¯ãªãã¯ããŠã¹ã
ããã§è¿°ã¹ããã¹ãŠã®åé¡ã«ãããããããClickhouse ã¯ãã°ã«éåžžã«é©ããŠããããšããäŒãããããšæããŸãã æãéèŠãªããšã¯ãããã«ããåé¡ã解決ãããããšã§ããéåžžã«é«éã§ãåããšã«ãã°ããã£ã«ã¿ãªã³ã°ã§ããããã«ãªããŸãã ååãšããŠããããã¡ ããŒãã«ã®ããã©ãŒãã³ã¹ã¯è¯å¥œã§ã¯ãããŸãããããã®çç±ã¯é垞誰ã«ãããããŸãã...ãããããã©ãã«åé¡ãããããããããã£ããããããŸããã
TCP? äžè¬ã«ãVK ã§ã¯ UDP ã䜿çšããã®ãéäŸã§ãã ãããŠãç§ã TCP ã䜿çšãããšã... ãã¡ããã誰ãç§ã«ããã¯èšããŸããã§ããã ããã¯ã§ããŸãããUDP ãå¿
èŠã§ããã TCP ã¯ããã»ã©æããªãããšãããããŸããã å¯äžã®ããšã¯ãäœæãã掻æ§ååç©ãæ°äžããå Žåã¯ãããå°ãæ
éã«æºåããå¿
èŠããããšããããšã§ãã ããããããã¯å¯èœã§ãããéåžžã«ç°¡åã§ãã
誰ããç§ãã¡ã®å
¬éãVK ããã¯ãšã³ããã賌èªãããããKittenhouseããšãLighthouseãã HighLoad Siberia ã«æçš¿ãããšçŽæããŸãã...ãããŠãåç¥ã®ãšããã誰ãã賌èªããããã§ã¯ãããŸãã... ãã¡ãããç§ã¯ããªãã«ç§ãã¡ã®å
¬éã®ãVK ããã¯ãšã³ããã賌èªããããã«èŠæ±ããã€ããã¯ãããŸããå
Œ
±ã ãŸã ãŸã 人æ°ãå€ãããŠãæ°åã害ãã人ããããããããŸããããããã§ã賌èªããŠãã ããïŒãããŠããã§ã¯ç«ã®ãããªç®ãããªããã°ãªããŸããïŒã ããã¯
ã¢ãã¬ãŒã¿ãŒïŒ - çãããããã§ã¯è³ªåãã©ããã æè¬ç¶ãšVHSã¬ããŒããèŽåããçŽåŸã§ãã
ãŠãŒãªã»ãã¹ã¬ãã£ããïŒä»¥äžãYNïŒïŒ â ç§ã®ã¬ããŒããçµäºããã°ããã ã£ãããã©ããã£ãŠ VHS ã«é²ç»ã§ããã®ã§ãã?
ã¢ãã¬ãŒã¿ãŒïŒ â ãŸãããã¯ãªãã¯ããŠã¹ããã©ã®ããã«æ©èœãããã©ãããå®å
šã«å€æããããšã¯ã§ããŸããã çããã質å㯠5 åéã§ãã
質å
äŒå Žããã®è³ªåïŒä»¥äžãQïŒïŒ - ããã«ã¡ã¯ã ãå ±åããããšãããããŸãã 質åã3ã€ãããŸãã 軜èãªããšããå§ããŸããå³ã®ãKittenhouseããšããååã® t ã®æåæ° (4ã7ãXNUMX...) ã¯ç«ã®æºè¶³åºŠã«åœ±é¿ããŸãã?
YN: - ã©ããããã®éã§ããïŒ
Ð: â æçŽ tã t ã XNUMX ã€ãããŸããt ã XNUMX ã€ã»ã©ãããŸãã
YN: - çŽããªãã£ããã§ããïŒ ãŸãããã¡ããããã§ããïŒ ãããã¯å¥ã®è£œåã§ã - ç§ã¯ä»ãŸã§ããªããéšããŠããã ãã§ããã ããããŸãããåè«ã§ã - ããã¯åé¡ã§ã¯ãããŸããã ãããããã§ããïŒ ããããåãã§ããã¿ã€ããã¹ãããŸããã
Ð: - ããããšãã XNUMXçªç®ã®è³ªåã¯æ·±å»ã§ãã ç§ãç解ããŠããéããClickhouse ã§ã¯ããããã¡ãŒ ããŒãã«ã¯ã¡ã¢ãªå
ã«ã®ã¿ååšãããã£ã¹ã¯ã«ãããã¡ãªã³ã°ãããããããã£ãŠæ°žç¶çã§ã¯ãããŸããã
YN: - ã¯ãã
Ð: â åæã«ãã¯ã©ã€ã¢ã³ãã¯ãã£ã¹ã¯ã«ãããã¡ãªã³ã°ããŸããããã¯ããããã®åããã°ã®é ä¿¡ãããçšåºŠä¿èšŒãããããšãæå³ããŸãã ãã ããã¯ãªãã¯ããŠã¹ã§ã¯ãããä¿èšŒãããããã§ã¯ãããŸããã ä¿èšŒãã©ã®ããã«è¡ãããã®ããäœã®ããã«è¡ãããã®ã説æããŠãã ããããã®ä»çµã¿ã«ã€ããŠè©³ãã説æããŸãã
YN: â ã¯ããçè«çã«ã¯ããã«ççŸã¯ãããŸãããã¯ãªãã¯ããŠã¹ã厩å£ãããšããå®éã«ã¯äœçŸäžãã®ç°ãªãæ¹æ³ã§ãããæ€åºã§ããããã§ãã Clickhouse ãã¯ã©ãã·ã¥ããå Žå (æ£ããçµäºããªãã£ãå Žå)ã倧ãŸãã«èšãã°ãæžãçãããã°ãå°ãå·»ãæ»ããŠããã¹ãŠããŸã£ããåé¡ãªãã£ãç¬éããéå§ããããšãã§ããŸãã XNUMX åå·»ãæ»ããšããŸããã€ãŸããXNUMX å以å ã«ãã¹ãŠããã©ãã·ã¥ãããšèŠãªãããŸãã
Ð: â ã€ãŸãããKittenhouseãã¯çªãããé·ãä¿æããèœäžããå Žåã«ã¯ãããèªèããŠå·»ãæ»ãããšãã§ãããšããããšã§ããïŒ
YN: â ããããããã¯çè«äžã®è©±ã§ãã å®éã«ã¯ããã¯è¡ãããä¿¡é Œæ§ã®é«ãé ä¿¡ã¯ãŒãåããç¡éåãŸã§è¡ãããŸãã ããããå¹³åããŠXNUMXã€ã§ãã Clickhouse ãäœããã®çç±ã§ã¯ã©ãã·ã¥ãããããµãŒããŒããåèµ·åããããããå Žåã«ã¯ãå€å°ã®æ倱ãçºçããããšã«æºè¶³ããŠããŸãã ãã以å€ã®å Žåã¯äœãèµ·ãããŸããã
Ð: - ããã«ã¡ã¯ã ã¬ããŒãã®æåãããæ¬åœã« UDP ã䜿çšããŠããããã«æããŸããã ããªã㯠http ãæã£ãŠããŸã...ãããŠãç§ãç解ããŠããããã«ãããªãã説æããåé¡ã®ã»ãšãã©ã¯ããã®ç¹å®ã®è§£æ±ºçã«ãã£ãŠåŒãèµ·ããããŸãã...
YN: â TCP ã¯äœã䜿çšããã®ã§ãããã?
Ð: - åºæ¬çã«ã¯ããã§ãã
YN: ãããã
Ð: â fasthttp ã«åé¡ããããæ¥ç¶ã«ãåé¡ããããŸããã UDP ã䜿çšããŠããã°ãæéãç¯çŽã§ããã¯ãã§ãã ãŸããé·æãšãã¯åé¡ããã ãããã©âŠã
YN: - ãã®ã«ãã£ãŠïŒ
Ð: â é·ãã¡ãã»ãŒãžã®å Žåã¯ãMTU ã«åãŸããªãå¯èœæ§ããããããå¥ã®äœã...ãŸããããèªäœã®åé¡ããããããããŸããã åé¡ã¯ããªã UDP ã§ã¯ãªãã®ããšããããšã§ãã
YN: â TCP/IP ãéçºããäœæè ã¯ç§ãããã¯ããã«è³¢ããŠããã±ãããã·ãªã¢ã«åããæ¹æ³ (éä¿¡ããããã®)ãåæã«éä¿¡ãŠã£ã³ããŠã調æŽããæ¹æ³ããããã¯ãŒã¯ã«éè² è·ããããªãæ¹æ³ããã£ãŒãããã¯ãæäŸããæ¹æ³ãããç¥ã£ãŠãããšä¿¡ããŠããŸããã¯èªã¿åããããå察åŽã§ã¯ã«ãŠã³ããããŸãã...ç§ã®æèŠã§ã¯ãããããã¹ãŠã®åé¡ã¯UDPã«ååšããŸãããåãããšãèªåã§å®è£ ããã«ã¯ããããŸã§ã«æžããã³ãŒããããããã«å€ãã®ã³ãŒããæžããªããã°ãªããŸãããäžå®å šã«ã ç§ã¯ C ã§æžãããšããããŸã奜ãã§ã¯ãããŸããããŸããŠã C ã§æžãããšãã奜ãã§ã¯ãããŸãã...
Ð: - ãšã«ãã䟿å©ïŒ éä¿¡ã¯å®äºããäœãåŸ ã€å¿ èŠã¯ãããŸãããå®å šã«éåæã§ãã ãã¹ãŠé 調ã ãšããéç¥ãæ»ã£ãŠããŸãããã€ãŸããå°çãããšããããšã§ãã ãããæ¥ãªãã£ãããããã¯æªããšããããšã§ãã
YN: â äž¡æ¹å¿ èŠã§ã â é éä¿èšŒä»ããšé éä¿èšŒãªãã®äž¡æ¹ãéä¿¡ã§ããå¿ èŠããããŸãã ããã㯠XNUMX ã€ã®ç°ãªãã·ããªãªã§ãã äžéšã®ãã°ã倱ããªãããã«ããå¿ èŠããããŸãããŸãã¯ãåççãªç¯å²å ã§ãã°ã倱ããªãããã«ããå¿ èŠããããŸãã
Ð: â æéãç¡é§ã«ã¯ããŸããã ããã«ã€ããŠã¯ããã«è°è«ããå¿ èŠãããã ããããšãã
ã¢ãã¬ãŒã¿ãŒïŒ â 質åããã人㯠â 空ã«æãäžããŠãã ãã!
Ð: - ããã«ã¡ã¯ãç§ã¯ãµãŒã·ã£ã§ãã ã¬ããŒãã®éäžã§ãTCP ã«å ããŠãæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãã€ãŸããã皮㮠Kafka ã䜿çšã§ããã®ã§ã¯ãªãããšããæèŠãçŸããŸããã
YN: â ããã§ãã...äžéãµãŒããŒã¯äœ¿ããããªããšèšã£ãã¯ãã§ãããªããªã...Kafka ã«ã¯ XNUMX äžã®ãã¹ããããããšãå€æããããã§ãã å®éã«ã¯ãããã«å€ãã®ãæ°äžã®ãã¹ããååšããŸãã ãŸãããããã·ã䜿çšããã« Kafka ã䜿çšããã®ã¯é¢åãªå ŽåããããŸãã ããã«ãæãéèŠãªããšã¯ãäŸç¶ãšããŠãé 延ããçºçããå¿ èŠãªè¿œå ã®ãã¹ããçºçããããšã§ãã ã§ããç§ã¯ããããæã¡ãããªããç§ã¯æ¬²ãã...
Ð: ãã§ããçµå±ã¯ããããããšã«ãªã£ããã§ãããã
YN: â ãããããã¹ãã¯ããŸãã! ããã¯ãã¹ãŠ Clickhouse ãã¹ãäžã§åäœããŸãã
Ð: - ããã§ããããããŠãåç«ããŠã¹ãã¯ãã®éã§ã - 圌ã¯ã©ãã«äœãã§ããŸããïŒ
YN: â Clickhouse ãã¹ãã§ã¯ããã£ã¹ã¯ã«ã¯äœãæžã蟌ãŸããŸããã
Ð: - ä»®å®ããŠã¿ãŸãããã
ã¢ãã¬ãŒã¿ãŒïŒ - ããªãã¯æºè¶³ããŠããŸããïŒ çµŠæããããŠãããã§ããïŒ
Ð: - ã¯ããã§ããŸãã å®éãåãããšãåŸãã«ã¯å€ãã®æŸèæãå¿ èŠã§ãããç§ã®æèŠã§ã¯ãTCP ã«é¢ãã以åã®åçã¯ãã®ç¶æ³ãšççŸããŠããŸãã ãã¹ãŠãèã®äžã§ãã£ãšçæéã§è¡ãããšãã§ãããããªæ°ãããŸãã
YN: â ãŸãããªã Kafka ã䜿çšããããªãã£ãã®ããšãããšãClickhouse Telegram ãã£ããã§ãããšãã°ãKafka ããã®ã¡ãã»ãŒãžã倱ããããšããèŠæ ãéåžžã«å€ããã£ãããã§ãã Kafka èªäœããã§ã¯ãªããKafka ãš Clickhaus ã®çµ±åã«ãããŠã§ãã ãŸãã¯äœããããã§æ¥ç¶ãããŸããã§ããã 倧ãŸãã«èšããšãKafka çšã®ã¯ã©ã€ã¢ã³ããäœæããå¿ èŠããããŸãã ããããç°¡åã§ä¿¡é Œæ§ã®é«ã解決çã¯ãªããšæããŸãã
Ð: â æããŠãã ããããªãè¡åãå ±éãã¹ã®ãããªãã®ãè©Šããªãã£ãã®ã§ããïŒ éåæã䜿çšãããšããã¥ãŒãä»ããŠãã°èªäœãéä¿¡ãããã¥ãŒãä»ããŠéåæçã«å¿çãåä¿¡ã§ãããšèšã£ãŠããã®ã§ããããïŒ
YN: â ã©ã®ãããªãã¥ãŒã䜿çšã§ããããææ¡ããŠãã ããã
Ð: â ããšãããããæ£åžžã§ãããšããä¿èšŒããªããŠãã ãã皮㮠RedisãRMQ...
YN: â Redis ã¯ãClickhouse ãåŒãåºã XNUMX å°ã®ãã¹ã (è€æ°ã®ãµãŒããŒãšããæå³) äžã§ãããã®ãããªå€§éã®æ¿å ¥ãåŒãåºãããšã¯ããããã§ããªãã®ã§ã¯ãªãããšæããŠããŸãã ããã蚌æ ã§è£ä»ããããšã¯ã§ããŸããã (ãã³ãããŒã¯ãè¡ã£ãŠããŸãã)ãããã§ã¯ Redis ãæé©ãªãœãªã¥ãŒã·ã§ã³ã§ã¯ãªãããã§ãã ååãšããŠããã®ã·ã¹ãã ã¯å³åžã®ã¡ãã»ãŒãž ãã¥ãŒãšèããããšãã§ããŸããããã¯ãªãã¯ããŠã¹ãå°çšã«èª¿æŽãããŠããŸãã
ã¢ãã¬ãŒã¿ãŒïŒ â ãŠãªãããããšãã ããã§è³ªçå¿çãçµäºãã質åè ã®ãã¡èª°ã«ãã®æ¬ãæž¡ãããç³ãäžããããšæããŸãã
YN: â æåã«è³ªåãã人ã«æ¬ããã¬ãŒã³ãããããšæããŸãã
ã¢ãã¬ãŒã¿ãŒïŒ - çŽ æŽãããïŒ çŽ æŽãããïŒ çŽ æŽãããïŒ ã©ããããããšãïŒ
ããã€ãã®åºå ð
ãã€ãã宿æ³ããã ãããããšãããããŸãã ç§ãã¡ã®èšäºãæ°ã«å
¥ã£ãŠããŸãã? ãã£ãšèå³æ·±ãã³ã³ãã³ããèŠããã§ãã? 泚æããããå人ã«å§ãããããŠç§ãã¡ããµããŒãããŠãã ããã
ã¢ã ã¹ãã«ãã ã®ãšã¯ã€ãã¯ã¹ Tier IV ããŒã¿ã»ã³ã¿ãŒã§ã¯ Dell R730xd ã 2 åå®ã? ããã ã
åºæïŒ habr.com