HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

HighLoad++ Moscow 2018, Ụlọ Nzukọ Congress. Nọvemba 9, 15:00

Abstracts na ngosi: http://www.highload.ru/moscow/2018/abstracts/4066

Yuri Nasretdinov (VKontakte): akụkọ ahụ ga-ekwu banyere ahụmịhe nke imejuputa ClickHouse na ụlọ ọrụ anyị - ihe mere anyị ji chọọ ya, ole data anyị na-echekwa, otu anyị si ede ya, na ihe ndị ọzọ.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Ihe ndi ozo: iji Clickhouse dị ka nnọchi maka ELK, Big Query na TimescaleDB

Yuri Nasretdinov: - Ndewo, unu niile! Aha m bụ Yuri Nasretdinov, dị ka ewebatala m. M na-arụ ọrụ na VKontakte. M ga-ekwu maka otu anyị si etinye data n'ime ClickHouse si na ihe nkesa anyị (iri puku kwuru iri puku).

Gịnị bụ ndekọ na ihe mere na-anakọta ha?

Ihe anyị ga-agwa gị: ihe anyị mere, ihe mere anyị ji chọọ "ClickHouse", otu ọ bụla, ihe mere anyị ji họrọ ya, ụdị ọrụ ị nwere ike nweta na-enweghị configuring ihe ọ bụla pụrụ iche. Aga m agwa gị ọzọ maka tebụl nchekwa, maka nsogbu anyị nwere na ha yana maka azịza anyị nke anyị mepụtara site na ebe mepere emepe - KittenHouse na Lighthouse.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Gịnị mere anyị kwesịrị ime ihe ọ bụla (ihe niile na-adị mma mgbe niile na VKontakte, nri?). Anyị chọrọ ịnakọta ndekọ debug (na e nwere ọtụtụ narị terabytes nke data n'ebe ahụ), ma eleghị anya, n'ụzọ ụfọdụ ọ ga-adaba adaba iji gbakọọ ọnụ ọgụgụ; na anyị nwere ọtụtụ iri puku kwuru iri puku sava nke ihe a niile kwesịrị ime.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Gịnị mere anyị ji kpebie? Ikekwe anyị nwere ihe ngwọta maka ịchekwa ndekọ. Ebe a - e nwere ndị dị otú ahụ a ọha "Backend VK". Ana m akwado ịdebanye aha na ya.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Gịnị bụ ndekọ? Nke a bụ injin na-eweghachi usoro efu. Injin na VK bụ ihe ndị ọzọ na-akpọ microservices. Na ebe a bụ ihe mmado na-amụmụ ọnụ ọchị (ọtụtụ mmasị). Kedu otu ọ bụ? Ọfọn, geekwa ntị!

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Kedu ihe enwere ike iji chekwaa ndekọ? Ọ gaghị ekwe omume ịghara ịkọ Hadup. Mgbe ahụ, dịka ọmụmaatụ, Rsyslog (na-echekwa ndekọ ndị a na faịlụ). LSD Kedu onye maara ihe LSD bụ? Mba, ọ bụghị LSD a. Chekwaa faịlụ, n'otu n'otu, kwa. Ọfọn, ClickHouse bụ nhọrọ dị ịtụnanya.

Clickhouse na ndị asọmpi: chọrọ na ohere

Kedu ihe anyị chọrọ? Anyị chọrọ ijide n'aka na anyị ekwesịghị ichegbu onwe anyị banyere ọrụ ahụ, nke mere na ọ na-arụ ọrụ na igbe ahụ, ọkacha mma na nhazi ntakịrị. Anyị chọrọ ide ọtụtụ ihe, ma dee ngwa ngwa. Na anyị chọrọ idobe ya maka ụdị ọnwa niile, afọ, ya bụ, ogologo oge. Anyị nwere ike chọọ ịghọta ụfọdụ nsogbu ha bịakwutere anyị wee sị, "Ihe anaghị arụ ọrụ ebe a," na nke ahụ bụ ọnwa 3 gara aga), anyị chọkwara ka anyị hụ ihe mere ọnwa 3 gara aga " Mkpakọ data - o doro anya ihe mere ọ ga-eji bụrụ mgbakwunye - n'ihi na ọ na-ebelata ohere ọ na-ewe.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Na anyị nwere ndị dị otú ahụ na-akpali chọrọ: mgbe ụfọdụ anyị na-ede mmepụta nke ụfọdụ iwu (dịka ọmụmaatụ, ndekọ), ọ pụrụ ịbụ ihe karịrị 4 kilobytes nnọọ mfe. Ma ọ bụrụ na ihe a na-arụ ọrụ n'elu UDP, mgbe ahụ ọ dịghị mkpa ka ọ na-emefu ... ọ gaghị enwe "n'elu" maka njikọ, na maka ọnụ ọgụgụ buru ibu nke sava nke a ga-abụ ihe mgbakwunye.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Ka anyị hụ ihe mepere emepe na-enye anyị. Mbụ, anyị nwere Logs Engine - nke a bụ engine anyị; Na ụkpụrụ, ọ nwere ike ime ihe niile, ọ pụkwara ọbụna dee ogologo ahịrị. Ọfọn, ọ dịghị mkpakọ data transparently - anyị nwere ike mpikota onu nnukwu ogidi onwe anyị ma ọ bụrụ na anyị chọrọ ... anyị, n'ezie, achọghị (ọ bụrụ na o kwere omume). Nanị nsogbu bụ na ọ pụrụ inye nanị ihe dabara na ncheta ya; Iji gụọ ndị ọzọ, ịkwesịrị ịnweta binlog nke injin a, yabụ, ọ na-ewe ogologo oge.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Kedu nhọrọ ndị ọzọ enwere? Dịka ọmụmaatụ, "Hadup". Ọ dị mfe ịrụ ọrụ ... Ònye na-eche na Hadup dị mfe ịtọlite? N'ezie, ọ dịghị nsogbu na ndekọ. Mgbe a na-agụ akwụkwọ, ajụjụ na-ebilite mgbe ụfọdụ. Na ụkpụrụ, m ga-ekwu eleghị anya ọ bụghị, karịsịa maka ndekọ. Nchekwa ogologo oge - n'ezie, ee, mkpakọ data - ee, ogologo eriri - o doro anya na ị nwere ike ịdekọ. Ma ndekọ site na ọnụ ọgụgụ buru ibu nke sava ... Ị ka ga-eme ihe n'onwe gị!

Rsyslog. N'ezie, anyị na-eji ya dị ka nhọrọ ndabere ka anyị nwee ike ịgụ ya na-enweghị atụfu binlog, ma ọ nweghị ike ide ogologo ahịrị; na ụkpụrụ, ọ nweghị ike ide ihe karịrị 4 kilobytes. Ị ga-eme mkpakọ data n'otu ụzọ ahụ onwe gị. Ọgụgụ ga-esi na faịlụ.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Mgbe ahụ, e nwere mmepe nke "badushka" nke LSD. N'ezie otu ihe ahụ dị ka "Rsyslog": ọ na-akwado ogologo eriri ogologo, ma ọ nweghị ike na-arụ ọrụ site UDP na, n'ezie, n'ihi na nke a, ọ dị mwute ikwu na a ga-edegharị ọtụtụ ihe n'ebe ahụ. LSD kwesịrị ka emegharịa ka ọ nwee ike ịdekọ site na iri puku kwuru iri puku sava.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Na ebe a! Nhọrọ na-atọ ọchị bụ ElasticSearch. Kedu ka esi ekwu? Ọ na-eme nke ọma n'ịgụ ihe, ya bụ, ọ na-agụ ngwa ngwa, ma ọ bụghị nke ọma na ide. Nke mbụ, ọ bụrụ na ọ na-akpakọ data, ọ na-esighi ike. O yikarịrị, nchọta zuru ezu chọrọ nhazi data buru ibu karịa olu mbụ. O siri ike ịrụ ọrụ na nsogbu na-ebilite na ya. Na, ọzọ, ịdekọ na Elastic - anyị ga-eme ihe niile n'onwe anyị.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Ebe a ClickHouse bụ ezigbo nhọrọ, n'ezie. Naanị ihe bụ na ndekọ site na iri puku kwuru iri puku sava bụ nsogbu. Mana opekata mpe enwere otu nsogbu, anyị nwere ike ịgbalị idozi ya n'ụzọ ụfọdụ. Na akụkọ ndị ọzọ gbasara nsogbu a. Kedu ụdị arụmọrụ ị nwere ike ịtụ anya site na ClickHouse?

Kedu ka anyị ga-esi tinye ya? MergeTree

Ònye n'ime unu na-anụbeghị ma ọ bụ mara maka "ClickHouse"? Achọrọ m ịgwa gị, ọ bụghị m? Ngwa ngwa ngwa. Ntinye n'ebe ahụ - 1-2 gigabits kwa nkeji, mgbawa ruru 10 gigabits kwa nkeji nwere ike iguzogide nhazi a - enwere Xeons 6-core (ya bụ, ọ bụghị ọbụna ike), 256 gigabytes nke RAM, 20 terabytes. na RAID (ọ dịghị onye ahazi, ntọala ndabara). Alexey Milovidov, onye nrụpụta ClickHouse, nwere ike ịnọdụ ala na-ebe akwa n'ihi na anyị ahazighị ihe ọ bụla (ihe niile na-arụ ọrụ dị ka nke ahụ maka anyị). N'ihi ya, a ga-enweta ọsọ nyocha nke, sịnụ, ihe dị ka ahịrị ijeri isii kwa nkeji ma ọ bụrụ na ejiri data ahụ nke ọma. Ọ bụrụ na-amasị gị % na eriri ederede - ahịrị 6 nde kwa sekọnd, ya bụ, ọ dị ka ngwa ngwa.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Kedu ka anyị ga-esi tinye ya? Ọfọn, ị maara na VK na-eji PHP. Anyị ga-etinye n'aka onye ọrụ PHP ọ bụla site na HTTP n'ime "ClickHouse", na tebụl MergeTree maka ndekọ ọ bụla. Kedu onye na-ahụ nsogbu na atụmatụ a? N’ihi ihe ụfọdụ, ọ bụghị mmadụ nile weliri aka elu. Ka m gwa gị.

Mbụ, enwere ọtụtụ sava - ya mere, a ga-enwe ọtụtụ njikọ (ọjọọ). Mgbe ahụ, ọ ka mma itinye data n'ime MergeTree ugboro ugboro karịa otu ugboro kwa sekọnd. Ma ònye ma ihe kpatara ya? Ọ dị mma, dịkwa mma. Aga m agwa gị ntakịrị maka nke a. Ajụjụ ọzọ na-adọrọ mmasị bụ na anyị anaghị eme nyocha, ọ dịghị mkpa ka anyị mee ka data ahụ dịkwuo mma, anyị achọghị ihe nkesa etiti, anyị chọrọ itinye ozugbo na "ClickHouse" (ọkacha mma - karịa kpọmkwem, ka mma).

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

N'ihi ya, kedu ka esi eme ntinye na MergeTree? Kedu ihe kpatara na ọ ka mma itinye n'ime ya ugboro ugboro karịa otu ugboro n'otu sekọnd ma ọ bụ obere oge? Nke bụ eziokwu bụ na "ClickHouse" bụ nchekwa data columnar ma na-ahazi data ahụ n'usoro nrịgo nke isi isi, na mgbe ị na-eme ntinye, a na-emepụta ọtụtụ faịlụ ma ọ dịkarịa ala hà na ọnụ ọgụgụ nke ogidi nke a na-ahazi data ahụ. n'usoro nrịgo nke isi igodo (a na-emepụta ndekọ dị iche iche, otu faịlụ na diski maka ntinye ọ bụla). Mgbe ahụ ntinye na-esote na-abịa, na n'azụ ha na-ejikọta n'ime "nkebi" buru ibu. Ebe ọ bụ na a na-ahazi data ahụ, ọ ga-ekwe omume "jikọta" faịlụ abụọ ahazi na-erighị ọtụtụ ebe nchekwa.

Ma, dị ka ị nwere ike iche, ọ bụrụ na ị dee faịlụ 10 maka ntinye ọ bụla, mgbe ahụ ClickHouse (ma ọ bụ ihe nkesa gị) ga-akwụsị ngwa ngwa, ya mere a na-atụ aro ka ịtinye na nnukwu batches. N'ihi ya, ọ dịghị mgbe anyị malitere atụmatụ mbụ n'ime mmepụta. Anyị malitere ozugbo otu, nke ebe a Nke 2 nwere:

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

N'ebe a, were ya na enwere ihe dị ka puku sava nke anyị kwalitere, enwere naanị PHP. Na nke ọ bụla nkesa, e nwere onye ọrụ mpaghara anyị, nke anyị na-akpọ "Kittenhouse", nke na-ejigide otu njikọ na "ClickHouse" ma na-etinye data ọ bụla sekọnd ole na ole. Na-etinye data ọ bụghị na MergeTree, kama n'ime tebụl nchekwa, nke na-arụ ọrụ nke ọma iji zere itinye ozugbo na MergeTree ozugbo.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Na-arụ ọrụ na tebụl nchekwa

Kedu ihe ọ bụ? Tebụl echekwabara bụ akụkụ ebe nchekwa a na-agbaji (ya bụ, enwere ike itinye ya na ya ugboro ugboro). Ha nwere ọtụtụ iberibe, nke ọ bụla n'ime akụkụ ahụ na-arụ ọrụ dị ka onye na-echekwa onwe ya, a na-awụpụkwa ya n'onwe ya (ọ bụrụ na ị nwere ọtụtụ iberibe na nchekwa, mgbe ahụ, a ga-enwe ọtụtụ ntinye kwa nkeji). Ọ ga-ekwe omume ịgụ site na tebụl ndị a - mgbe ahụ ị na-agụ njikọ nke ọdịnaya nke ihe nchekwa na tebụl nne na nna, ma n'oge a, a na-egbochi ide ihe, n'ihi ya, ọ ka mma ka ị ghara ịgụ ebe ahụ. Na tebụl nchekwa na-egosi ezigbo QPS, ya bụ, ruo 3 puku QPS ị gaghị enwe nsogbu ọ bụla mgbe ịtinye. O doro anya na ọ bụrụ na ihe nkesa na-efunahụ ike, mgbe ahụ, data nwere ike ịla n'iyi, n'ihi na echekwara ya naanị na ebe nchekwa.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

N'otu oge ahụ, atụmatụ ahụ nwere ihe nchekwa na-eme ka ALTER dị mgbagwoju anya, n'ihi na ị ga-ebu ụzọ dobe tebụl nchekwa ochie na atụmatụ ochie (data agaghị apụ n'ebe ọ bụla, n'ihi na a ga-ehichapụ ya tupu ehichapụ tebụl). Mgbe ahụ ị "gbanwee" tebụl ị chọrọ wee mepụta tebụl nchekwa ọzọ. N'ihi ya, ọ bụ ezie na enweghị tebụl nchekwa, data gị agaghị aga ebe ọ bụla, mana ị nwere ike ịnweta ya na diski ọbụlagodi na mpaghara.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Kedu ihe bụ Kittenhouse na kedu ka ọ si arụ ọrụ?

Kedu ihe bụ KittenHouse? Nke a bụ proxy. Chee ụdị asụsụ? Anakọtara m isiokwu ndị kacha agba egwu na akụkọ m - "Clickhouse", Gaa, ikekwe m ga-echeta ihe ọzọ. Ee, nke a ka edere na Go, n'ihi na amachaghị m ka esi ede na C, achọghị m.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

N'ihi ya, ọ na-ejigide njikọ na nkesa ọ bụla ma nwee ike ide na ebe nchekwa. Dị ka ihe atụ, ọ bụrụ na anyị dee njehie ndekọ na Clickhouse, mgbe ahụ ọ bụrụ na Clickhouse enweghị oge itinye data (mgbe niile, ọ bụrụ na ukwuu e dere), mgbe ahụ, anyị adịghị aza ebe nchekwa - anyị na-atụfu ndị ọzọ. N'ihi na ọ bụrụ na anyị dee ọtụtụ gigabits kwa nkeji nke njehie, mgbe ahụ anyị nwere ike ịtụfu ụfọdụ. Kittenhouse nwere ike ime nke a. Na mgbakwunye, ọ nwere ike ịrụ nnyefe a pụrụ ịdabere na ya, ya bụ, idegara diski na igwe mpaghara na otu oge (ebe ahụ, otu ugboro n'ime sekọnd ole na ole) ọ na-anwa ịnapụta data sitere na faịlụ a. Na mbụ anyị na-eji usoro bara uru mgbe niile - ọ bụghị usoro ọnụọgụ abụọ, usoro ederede (dị ka ọ dị na SQL mgbe niile).

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Ma nke a meziri. Anyị na-eji nnyefe a pụrụ ịdabere na ya, dee ndekọ, wee kpebie (ọ bụ ụyọkọ ule nyocha) ... A na-ewepụta ya ruo ọtụtụ awa wee weghachi ya, na ntinye malitere site na otu puku sava - ọ tụgharịrị na Clickhouse ka nwere. "Eriri na njikọ" - ya mere, n'ime otu puku njikọ, ntinye na-arụ ọrụ na-eduga na nkezi ibu na ihe nkesa nke ihe dị ka otu puku na ọkara. N'ụzọ dị ịtụnanya, ihe nkesa na-anabata arịrịọ, mana data ka etinyere mgbe oge ụfọdụ gasịrị; mana ọ siri ezigbo ike maka sava ahụ ijere ya ozi...

Tinye nginx

Ihe ngwọta dị otú ahụ maka eriri kwa ụdị njikọ bụ nginx. Anyị etinyere nginx n'ihu Clickhouse, n'otu oge ahụ guzobe nhazi maka oyiri abụọ (ọsọ ntinye anyị na-abawanye site na ugboro 2, ọ bụ ezie na ọ bụghị eziokwu na nke a kwesịrị ịbụ ikpe) ma kpachie ọnụ ọgụgụ njikọ na Clickhouse, na elu na, ya mere, karịa , karịa na njikọ 50, ọ dị ka ọ nweghị uru ịtinye.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Mgbe ahụ, anyị chọpụtara na atụmatụ a n'ozuzu nwere adịghị ike, n'ihi na anyị nwere naanị otu nginx ebe a. N'ihi ya, ọ bụrụ na nginx a daa, n'agbanyeghị ọnụnọ nke oyiri, anyị na-atụfu data ma ọ bụ, opekata mpe, edeghị ebe ọ bụla. Ọ bụ ya mere anyị ji mee ka ibu anyị na-edozi ibu anyị. Anyị chọpụtakwara na "Clickhouse" ka kwesịrị ekwesị maka osisi, na "mmụọ ọjọọ" malitekwara ide akwụkwọ ndekọ ya na "Clickhouse" - dị mma, n'eziokwu. Anyị ka na-eji ya maka "ndị mmụọ ọjọọ" ndị ọzọ.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Mgbe ahụ, anyị chọpụtara nsogbu a na-adọrọ mmasị: ọ bụrụ na ị na-eji usoro ntinye na-abụghị ọkọlọtọ nke ntinye na ọnọdụ SQL, ọ na-amanye nyocha SQL nke AST zuru oke, nke na-adị ngwa ngwa. N'ihi ya, anyị atụkwasịla ntọala iji hụ na nke a agaghị eme. Anyị mere nha nha, nyocha ahụike, nke mere na ọ bụrụ na mmadụ anwụọ, anyị ka na-ahapụ data ahụ. Ugbu a, anyị nwere ọtụtụ tebụl nke anyị kwesịrị inwe ụyọkọ Clickhouse dị iche iche. Ma anyị malitekwara iche echiche maka ojiji ndị ọzọ - dịka ọmụmaatụ, anyị chọrọ ide ndekọ site na nginx modul, mana ha amaghị ka esi eji RPC anyị na-ekwurịta okwu. Ọ dị mma, ọ ga-amasị m ịkụziri ha otu esi ezipụ opekata mpe otu - dịka ọmụmaatụ, ịnata mmemme na localhost site na UDP wee ziga ha na Clickhouse.

Otu nzọụkwụ dịpụrụ na ngwọta

Atụmatụ ikpeazụ malitere ịdị ka nke a (ụdị nke anọ nke atụmatụ a): na nkesa ọ bụla dị n'ihu Clickhouse enwere nginx (n'otu ihe nkesa ahụ) na ọ na-akwado arịrịọ localhost na njedebe na ọnụ ọgụgụ njikọ nke 50. iberibe. Na atụmatụ a na-arụ ọrụ nke ọma, ihe niile mara mma na ya.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Anyị biri otú a ihe dị ka otu ọnwa. Onye ọ bụla nwere obi ụtọ, ha gbakwunyere tebụl, ha gbakwunyere, ha gbakwunyere ... N'ozuzu, ọ bịara bụrụ na ụzọ anyị si gbakwunye tebụl nchekwa adịghị mma (ka anyị tinye ya otú ahụ). Anyị mere iberibe iri na isii na tebụl nke ọ bụla na oge ọkụ nke sekọnd ole na ole; anyị nwere tebụl 16 na tebụl ọ bụla natara ntinye 20 kwa nkeji - ma n'oge a "Clickhouse" malitere ... ihe ndekọ ahụ malitere iji nwayọọ. Ọ bụghị naanị na ha agafeghị ... Site na ndabara, nginx nwere ihe na-adọrọ mmasị na ọ bụrụ na njikọ akwụsị na elu, mgbe ahụ ọ na-eweghachite "8" na arịrịọ ọhụrụ niile.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Na ebe a anyị nwere (m lere ndekọ na Clickhouse n'onwe ya) ihe dị ka ọkara pasent nke arịrịọ dara. N'ihi ya, ojiji diski dị elu, enwere ọtụtụ njikọ. Ọfọn, gịnị ka m mere? Dị ka o kwesịrị ịdị, anaghị m echegbu onwe m iji chọpụta ihe kpatara njikọ ahụ na mgbago elu kwụsịrị.

Dochie nginx na ntụgharị proxy

Ekpebiri m na anyị kwesịrị ijikwa nke a n'onwe anyị, ọ dịghị mkpa ka anyị hapụ ya na nginx - nginx amaghị ihe tebụl dị na Clickhouse, ma dochie nginx na proxy reverse, nke m dekwara onwe m.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Gịnị ka ọ na-eme? Ọ na-arụ ọrụ dabere na ọbá akwụkwọ fasthttp “goshnoy”, ya bụ, ngwa ngwa, ọ fọrọ nke nta ka ọ bụrụ ngwa ngwa nginx. Ndo, Igor, ọ bụrụ na ịnọ ebe a (mara: Igor Sysoev bụ onye mmemme Rọshịa mepụtara sava weebụ nginx). Ọ nwere ike ịghọta ụdị ajụjụ ndị a bụ - INSERT ma ọ bụ Họrọ - yabụ, ọ na-ejide ọdọ mmiri njikọ dị iche iche maka ụdị ajụjụ dị iche iche.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

N'ihi ya, ọ bụrụgodị na anyị enweghị oge iji mezue arịrịọ ntinye, "nhọrọ" ga-agafe, na ntụgharị. Ọ na-achịkọta data ahụ n'ime tebụl nchekwa - na obere ihe nchekwa: ọ bụrụ na enwere njehie ọ bụla, njehie syntax na ihe ndị ọzọ - ka ha wee ghara imetụta data ndị ọzọ nke ukwuu, n'ihi na mgbe anyị na-etinye naanị na tebụl nchekwa, anyị nwere obere "bachi", na njehie syntax niile na-emetụta obere mpempe a; na ebe a, ha ga-emetụtalarị nnukwu nchekwa. Obere bụ 1 megabyte, ya bụ, ọ bụghị obere.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Ịtinye mmekọrịta na n'ezie dochie nginx, na-eme otu ihe ahụ nginx mere na mbụ - ịkwesighi ịgbanwe "Kittenhouse" mpaghara maka nke a. Ma ebe ọ na-eji fasthttp, ọ na-adị ngwa ngwa - ị nwere ike ime ihe karịrị 100 puku arịrịọ kwa sekọnd maka otu ntinye site na proxy reverse. N'usoro iwu, ị nwere ike itinye otu ahịrị n'otu oge n'ime proxy reverse kittenhouse, mana n'ezie anyị anaghị eme nke ahụ.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Atụmatụ ahụ malitere ịdị ka nke a: "Kittenhouse", ndị nnọchiteanya proxy dị iche iche na-arịọ ọtụtụ arịrịọ n'ime tebụl na, n'aka nke ya, tebụl nchekwa na-etinye ha n'ime ndị bụ isi.

Killer bụ ihe ngwọta nwa oge, Kitten na-adịgide adịgide

Nke a bụ nsogbu na-adọrọ mmasị... Ọ nwere onye ọ bụla n'ime unu ejirila fasthttp? Onye jiri fasthttp nwere arịrịọ POST? Eleghị anya, nke a ekwesịghị ime n'ezie, n'ihi na ọ na-edobe anụ ahụ arịrịọ na ndabara, yana nha nchekwa anyị ka edobere megabyte 16. Ntinye ahụ kwụsịrị idobe n'oge ụfọdụ, 16-megabyte chunks malitere ịbịarute site na iri puku kwuru iri puku sava, a na-echekwa ha niile na ebe nchekwa tupu ezipụ ha na Clickhouse. N'ihi ya, ebe nchekwa ahụ kwụsịrị, Onye na-egbu ihe na-apụ apụ bịara gbuo proxy (ma ọ bụ "Clickhouse", nke nwere ike "rie" karịa proxy). okirikiri ahụ kwughachiri onwe ya. Ọ bụghị ezigbo nsogbu. Ọ bụ ezie na anyị sụrụ ngọngọ na nke a nanị mgbe ọtụtụ ọnwa nke ọrụ.

Kedu ihe m mere? Ọzọkwa, anaghị m amasị n'ezie ịghọta kpọmkwem ihe merenụ. Echere m na ọ bụ ihe doro anya na ị gaghị etinye aka na ebe nchekwa. Enweghị m ike ịmachi fasthttp, n'agbanyeghị na m gbalịrị. Mana achọtara m ụzọ m ga-esi mee ya ka ọ bụrụ na ọ dịghị mkpa ịmechi ihe ọ bụla, wee wepụta usoro nke m na HTTP - akpọrọ m ya KITTEN. Ọfọn, ọ bụ ihe ezi uche dị na ya - "VK", "Kitten" ... Gịnị ọzọ?

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Ọ bụrụ na arịrịọ na-abịa na ihe nkesa na usoro Kitten, mgbe ahụ ihe nkesa kwesịrị ịza "meow" - ezi uche. Ọ bụrụ na ọ zara nke a, mgbe ahụ, a na-ewere ya na ọ ghọtara usoro a, mgbe ahụ, m na-egbochi njikọ ahụ (fasthttp nwere usoro dị otú ahụ), njikọ ahụ na-abanyekwa na ọnọdụ "raw". Gịnị mere m ji chọọ ya? Achọrọ m ijikwa ka ọgụgụ si na njikọ TCP si eme. TCP nwere ihe onwunwe magburu onwe ya: ọ bụrụ na ọ dịghị onye na-agụ site n'akụkụ nke ọzọ, mgbe ahụ, ihe odide ahụ na-amalite ichere, na ebe nchekwa anaghị etinye aka na nke a.

Ya mere, m na-agụ ihe dị ka 50 ahịa n'otu oge (site na iri ise n'ihi na iri ise kwesịrị maa ezuru, ọ bụrụgodị na ọnụego na-abịa site ọzọ DC) ... Oriri ebelatawo na nke a obibia dịkarịa ala 20 ugboro, ma m, na-eme ihe n'eziokwu. , Enweghị m ike ịlele kpọmkwem oge oge, n'ihi na ọ dịlarị enweghị isi (ọ eruola ọkwa nke njehie). Usoro bụ ọnụọgụ abụọ, ya bụ, ọ nwere aha tebụl na data; enweghị nkụnye eji isi mee http, yabụ anaghị m eji oghere webụ (Achọghị m ka mụ na ihe nchọgharị na-ekwurịta okwu - emere m protocol dabara na mkpa anyị). Ihe niile wee dịrị ya mma.

Tebụl nchekwa dị mwute

Na nso nso a, anyị hụrụ akụkụ ọzọ na-atọ ụtọ nke tebụl nchekwa. Ma nsogbu a adịlarị na-egbu mgbu karịa ndị ọzọ. Ka anyị were ọnọdụ a: ị na-eji Clickhouse na-arụsi ọrụ ike, ị nwere ọtụtụ sava Clickhouse, ma ị nwere arịrịọ ụfọdụ na-ewe ogologo oge iji gụọ (ka anyị kwuo, karịa 60 sekọnd); i bia me Alter n'oge a. ebe a. Enwere ike idozi nke a? Ma ọ bụ na ọ gaghị ekwe omume?

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

N'ozuzu, o doro anya na n'eziokwu nke a abụghị nnukwu nsogbu, ma na tebụl nchekwa ọ na-aghọwanye ihe mgbu. N'ihi na, ọ bụrụ na, ka anyị kwuo, oge "Alter" gị akwụsịla (ma ọ nwere ike ịnwụ na onye ọbịa ọzọ - ọ bụghị nke gị, kama na oyiri, dịka ọmụmaatụ), mgbe ahụ ... Ị ehichapụrụ tebụl nchekwa, "Alter" gị ( ma ọ bụ ụfọdụ ndị ọbịa ọzọ) agwụla, mgbe ahụ, njehie “Mgbanwe” emeela) - ị ka kwesịrị ijide n'aka na a na-ede data ahụ: ị na-emepụta tebụl nchekwa azụ (dị ka otu atụmatụ dị na tebụl nne na nna), mgbe ahụ. "Mgbanwe" na-agafe, mechie mgbe niile, na ihe nchekwa tebụl na-amalite ịdị iche na schema na nne na nna. Dabere n'ihe "Mgbanwe" bụ, ntinye nwere ike ghara ịgakwa na tebụl nchekwa a - nke a dị nnọọ mwute.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Enwekwara akara dị otú ahụ (ikekwe mmadụ hụrụ ya) - a na-akpọ ya query_thread_log na ụdị Clickhouse ọhụrụ. Site na ndabara, na ụdị ụfọdụ enwere otu. N'ebe a, anyị achịkọtala ndekọ nde 840 n'ime ọnwa ole na ole (100 gigabytes). Nke a bụ n'ihi n'eziokwu na e dere "ịtinye" n'ebe ahụ (ma eleghị anya ugbu a, n'agbanyeghị, edeghị ha). Dị ka m gwara gị, "ihe ntinye" anyị dị ntakịrị - anyị nwere ọtụtụ "ịtinye" na tebụl nchekwa. O doro anya na nke a nwere nkwarụ - naanị m na-agwa gị ihe m hụrụ na sava anyị. Gịnị kpatara? Nke a bụ arụmụka ọzọ megide iji tebụl nchekwa! Spotty na-ewute nke ukwuu.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Ònye maara na aha nwoke a bụ Spotty? Ndị ọrụ VK weliri aka ha. Ọ DỊ MMA.

Banyere atụmatụ maka "KitttenHouse"

A naghị ekewakarị atụmatụ, nri? Na mberede, ị gaghị emezu ha ma ghara ịdị mma nke ukwuu n'anya ndị ọzọ. Ma m ga-etinye ihe ize ndụ ahụ! Anyị chọrọ ime ihe ndị a: tebụl nchekwa, ọ dị m ka ọ ka bụ crutch na anyị kwesịrị idobe ntinye ahụ n'onwe anyị. Mana anyị achọghị idobe ya na diski, yabụ anyị ga-echekwa ntinye na ebe nchekwa.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

N'ihi ya, mgbe a na-eme "ntinye", ọ gaghị abụ mmekọrịta - ọ ga-arụ ọrụ dị ka tebụl nchekwa, tinye n'ime tebụl nne na nna (nke ọma, otu ụbọchị mgbe e mesịrị) ma kọọ akụkọ site na ọwa dị iche iche nke ntinye gafeworo na nke. enwebeghị.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Kedu ihe kpatara na enweghị m ike ịhapụ ntinye mmekọrịta? Ọ ka mma karịa. Nke bụ eziokwu bụ na ọ bụrụ na ịtinye site na 10 puku ndị agha, mgbe ahụ ihe niile dị mma - ị ga-enweta ntakịrị ihe site na onye ọ bụla ọbịa, ị na-etinye ebe ahụ otu ugboro na nke abụọ, ihe niile dị mma. Ma ọ ga-amasị m ka atụmatụ a rụọ ọrụ, dịka ọmụmaatụ, site na igwe abụọ, ka ị nwee ike ibudata na oke ọsọ - ma eleghị anya ị gaghị enweta ihe kachasị na Clickhouse, ma dee ma ọ dịkarịa ala 100 megabyte kwa nkeji site na otu igwe site na proxy reverse - nke a atụmatụ a ga-agbarịrị ma nnukwu ma obere, yabụ anyị enweghị ike ichere nkeji maka ntinye nke ọ bụla, yabụ na ọ ga-abụrịrị asynchronous. Ma n'otu ụzọ ahụ, nkwenye asynchronous kwesịrị ịbịa mgbe etinyechara ya. Anyị ga-ama ma ọ gafeela ma ọ bụ na ọ gafere.

Ihe kachasị mkpa bụ na na atụmatụ a, anyị maara nke ọma ma ntinye ahụ mere ma ọ bụ na ọ bụghị. Cheedị banyere ọnọdụ a: ị nwere tebụl nchekwa, ịdere ihe n'ime ya, mgbe ahụ, ka anyị kwuo, tebụl ahụ wee banye na-agụ naanị mode ma gbalịa ịkwanye ihe nchekwa ahụ. Ebee ka data ga-aga? Ha ga-anọ na nchekwa. Mana anyị enweghị ike ijide n'aka na nke a - gịnị ma ọ bụrụ na enwere njehie ọzọ, n'ihi nke data agaghị adịgide na nchekwa ... Mgbe niile? Alexei na-eme ka anyị kwenye na ihe niile ga-adị mma. Anyị enweghị ihe mere anyị ga-eji kwere na ya. Ma otu ihe ahụ niile: ọ bụrụ na anyị anaghị eji tebụl nchekwa, mgbe ahụ, a gaghị enwe nsogbu ọ bụla na ha. Ịmepụta tebụl okpukpu abụọ ka ọ dịkwa adịghị mma, ọ bụ ezie na ụkpụrụ enweghị nnukwu nsogbu. Nke a bụ atụmatụ.

Ka anyị kwuo gbasara ịgụ ihe

Ugbu a, ka anyị kwuo banyere ịgụ ihe. Anyị dekwara ngwa nke anyị ebe a. Ọ ga-adị ka, nke ọma, gịnị kpatara dee ngwá ọrụ nke gị ebe a?... Ma onye ji Tabix? N'ụzọ ụfọdụ, mmadụ ole na ole weliri aka ha... Na onye nwere afọ ojuju na arụmọrụ nke Tabix? Ọfọn, anyị enweghị obi ụtọ na ya, ọ dịghịkwa mma maka ikiri data. Ọ dị mma maka nyocha, mana naanị maka ikiri, o doro anya na ahazibeghị ya. M wee dee nke m, interface nke m.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Ọ dị nnọọ mfe - ọ nwere ike ịgụ naanị data. Ọ maghị ka esi egosi eserese, ọ maghị ka esi eme ihe ọ bụla. Ma ọ nwere ike igosi ihe dị anyị mkpa: dịka ọmụmaatụ, ahịrị ole dị na tebụl, ole ohere ọ na-ewe (na-agbajighị ya n'ime ogidi), ya bụ, interface dị nnọọ mkpa bụ ihe anyị chọrọ.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Ọ dịkwa ka Sequel Pro, mana emere naanị na Bootstrap Twitter, yana ụdị nke abụọ. Ị jụrụ: "Yuri, gịnị kpatara na ụdị nke abụọ?" Kedu afọ? 2018? N'ozuzu, emere m nke a ogologo oge gara aga maka "Muscle" (MySQL) wee gbanwee ahịrị ole na ole n'ime ajụjụ ndị ahụ, ọ malitere ịrụ ọrụ maka "Clickhouse", nke ekele pụrụ iche! N'ihi na parser yiri nke ahụ "anụ ahụ", na ajụjụ ndị ahụ yiri nnọọ - dị nnọọ mma, karịsịa na mbụ.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Ọfọn, ọ nwere ike nzacha tebụl, nwere ike igosi nhazi na ọdịnaya nke tebụl ahụ, na-enye gị ohere ịhazi, nyochaa site na ogidi, na-egosi ajụjụ nke mere ka ọ pụta ìhè, ahịrị ndị emetụtara (ole ole n'ihi ya), ya bụ, na ihe ndị bụ isi maka ikiri data. Mara mma ngwa ngwa.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Enwekwara onye nchịkọta akụkọ. Agbalịrị m n'eziokwu izu onye nchịkọta akụkọ niile na Tabix, mana enweghị m ike. Ma n'ụzọ ụfọdụ ọ na-arụ ọrụ. Na ụkpụrụ, nke ahụ bụ ihe niile.

"Clickhouse" dabara maka ọgba aghara

Achọrọ m ịgwa gị na Clickhouse, n'agbanyeghị nsogbu niile akọwara, dabara nke ọma maka ndekọ. Nke kachasị mkpa, ọ na-edozi nsogbu anyị - ọ na-adị ngwa ngwa ma na-enye gị ohere nyochaa ndekọ site na ogidi. N'ụkpụrụ, tebụl nchekwa adịghị arụ ọrụ nke ọma, ma ọ dịghị onye maara ihe kpatara ya ... Ma eleghị anya ugbu a ị maara nke ọma ebe ị ga-enwe nsogbu.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

TCP? N'ozuzu, na VK ọ bụ omenala iji UDP. Na mgbe m na-eji TCP ... N'ezie, ọ dịghị onye gwara m: "Yuri, gịnị ka ị na-ekwu! Ị nweghị ike, ị chọrọ UDP. " Ọ tụgharịrị na TCP adịghị atụ egwu. Naanị ihe bụ, ọ bụrụ na ị nwere iri puku kwuru iri puku ogige ndị na-arụ ọrụ nke ị na-ede, ịkwesịrị ịkwadebe ya nke ọma karị; ma o kwere omume, na nnọọ mfe.

Ekwere m nkwa na m ga-ebipụta "Kittenhouse" na "Lighthouse" na HighLoad Siberia ma ọ bụrụ na onye ọ bụla debanyere aha ọha anyị "VK backend" ... Ma ị maara, ọ bụghị onye ọ bụla debanyere aha ... N'ezie, agaghị m achọ ka ị denye aha anyị ọha. A ka nwere ọtụtụ n'ime gị, onye nwere ike ọbụna iwe iwe, ma ka, biko denye aha (na ebe a ka m ga-eme ka anya dị ka nke a pusi). Nke ahụ bụ jikọta ya n'ụzọ. Daalụ nke ukwuu! Github bụ nke anyị ebe a. Na Clickhouse ntutu gị ga-adị nro na silky.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Na-edu: - Enyi, ugbu a maka ajụjụ. Ozugbo anyị wetachara asambodo ekele na akụkọ gị na VHS.

Yuri Nasretdinov (nke a na-akpọ YN): – Kedu ka ị siri nwee ike ịdekọ akụkọ m na VHS ma ọ bụrụ na ọ kwụsịrị?

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Na-edu: - Ịnweghịkwa ike ikpebi etu "Clickhouse" ga-esi arụ ọrụ ma ọ bụ na ọ gaghị arụ ọrụ! Ndị enyi, nkeji 5 maka ajụjụ!

Ajụjụ gị

Ajụjụ sitere n'aka ndị na-ege ntị (nke a na-akpọkwa Q): - Ehihie ọma. Daalụ nke ukwuu maka akụkọ ahụ. Enwere m ajụjụ abụọ. M ga-amalite na ihe frivolous: ọnụ ọgụgụ nke akwụkwọ ozi t na aha "Kittenhouse" na eserese (3, 4, 7 ...) emetụta afọ ojuju nke nwamba?

YN: - Ọnụ ọgụgụ nke gịnị?

Z: – Akwụkwọ ozi t. Enwere t's atọ, ebe gburugburu atọ t's.

YN: - Ọ bụ na m edozighị ya? Ọfọn, n'ezie ọ na-eme! Ndị a bụ ngwaahịa dị iche iche - naanị m na-eduhie gị n'oge a niile. Ọ dị mma, m na-egwu egwu - ọ dịghị mkpa. Ah, ebe a! Mba, ọ bụ otu ihe ahụ, emere m typo.

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Z: - Daalụ. Ajụjụ nke abụọ dị njọ. Dị ka m ghọtara, na Clickhouse, tebụl nchekwa na-ebi naanị na ebe nchekwa, anaghị echekwa ya na diski ma, ya mere, anaghị adịgide adịgide.

YN: - Ee.

Z: - Ma n'otu oge ahụ, onye ahịa gị na-ebufe diski, nke pụtara ụfọdụ nkwa nke nnyefe nke otu ndekọ ndị a. Mana nke a anaghị ekwe nkwa na Clickhouse. Kọwaa otú e si eme nkwa ahụ, n'ihi gịnị?... Nke a bụ usoro a n'ụzọ zuru ezu karị

YN: - Ee, usoro iwu enweghị esemokwu ebe a, n'ihi na mgbe Clickhouse dara, ị nwere ike ịchọpụta ya n'ụzọ dị iche iche nde. Ọ bụrụ na Clickhouse daa (ọ bụrụ na ọ kwụsịrị na-ezighi ezi), ị nwere ike, n'ikwu okwu n'ụzọ siri ike, weghachite ntakịrị ndekọ gị nke ịdere wee malite site na mgbe ihe niile dị mma. Ka anyị kwuo na ị weghachite otu nkeji, ya bụ, a na-ewere ya na ị kpochapụrụ ihe niile n'otu nkeji.

Z: - Ya bụ, "Kittenhouse" na-ejide windo ogologo oge ma, ọ bụrụ na ọ daa, ọ nwere ike ịmata ya ma weghachite ya?

YN: – Ma nke a bụ tiori. Na omume, anyị anaghị eme nke a, na nnyefe a pụrụ ịdabere na ya sitere na efu ruo na njedebe. Ma na nkezi otu. Anyị nwere afọ ojuju na ọ bụrụ na Clickhouse daa n'ihi ihe ụfọdụ ma ọ bụ ihe nkesa "reboot," mgbe ahụ anyị na-atụfu ntakịrị. N'okwu ndị ọzọ niile, ọ dịghị ihe ga-eme.

Z: - Nnọọ. Site na mmalite ọ dị m ka ị ga-eji UDP n'ezie site na mmalite nke akụkọ ahụ. Ị nwere http, ihe niile ... na ọtụtụ nsogbu ndị ị kọwara, dịka m ghọtara ya, bụ ihe ngwọta a kpatara ...

YN: - Kedu ihe anyị na-eji TCP?

Z: - N'ezie ee.

YN: - Ọ bụghị.

Z: - Ọ bụ na fasthttp ka ị nwere nsogbu, na njikọ ị nwere nsogbu. Ọ bụrụ na ị na-ejibu UDP naanị ị ga-echekwara onwe gị oge. Ọfọn, a ga-enwe nsogbu na ogologo ozi ma ọ bụ ihe ọzọ ...

YN: - Gịnị?

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Z: - Na ogologo ozi, ebe ọ bụ na ọ nwere ike ọ gaghị adaba na MTU, ihe ọzọ ... Ọfọn, enwere ike inwe nsogbu nke onwe ha. Ajụjụ bụ: gịnị kpatara na ọ bụghị UDP?

YN: - Ekwenyere m na ndị edemede ndị mepụtara TCP / IP nwere ọgụgụ isi karịa m ma mara m karịa ka m ga-esi serialize ngwugwu (ka ha na-aga), n'otu oge ahụ gbanwee windo izipu, ọ bụghị ibufe netwọkụ, nye nzaghachi na ihe. A naghị agụ ya, ọ bụghị na-agụta n'akụkụ nke ọzọ ... Nsogbu ndị a niile, n'echiche m, ga-adị na UDP, naanị m ga-ederịrị ọbụna koodu karịa ka m dere iji mejuputa otu ihe ahụ n'onwe m ma eleghị anya. adịghị mma. Enweghị m mmasị na ide na C, hapụ ya ebe ahụ ...

Z: - Dị nnọọ adaba! Ezitere mma ma echerela ihe ọ bụla - ọ nweghị ihe ọ bụla. A ngosi laghachiri na ihe niile dị mma - nke ahụ pụtara na ọ bịarutere; Ọ bụrụ na ọ pụtaghị, ọ pụtara na ọ dị njọ.

YN: - Achọrọ m abụọ - Achọrọ m inwe ike izipu ma na nkwa nke nnyefe na enweghị nkwa nke nnyefe. Ndị a bụ ọnọdụ abụọ dị iche iche. Achọrọ m ka m ghara ida ụfọdụ ndekọ ma ọ bụ ghara ida ha n'ime ihe kpatara ya.

Z: - Agaghị m egbu oge. Ọ dị mkpa ka a tụlekwuo nke a. Daalụ.

Na-edu: - Onye nwere ajụjụ - aka na mbara igwe!

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

Z: - Ndewo, a bụ m Sasha. N'ebe dị n'etiti akụkọ ahụ, mmetụta pụtara na, na mgbakwunye na TCP, ọ ga-ekwe omume iji ngwọta dị njikere - ụdị ụfọdụ nke Kafka.

YN: - Ọfọn ... Agwara m gị na achọghị m iji sava etiti, n'ihi na ... na Kafka, ọ na-apụta na anyị nwere puku ndị ọbịa iri; n'ezie, anyị nwere karịa - iri puku kwuru iri puku ndị ọbịa. Ọ nwekwara ike na-egbu mgbu ime Kafka na-enweghị proxies ọ bụla. Na mgbakwunye, nke kachasị mkpa, ọ ka na-enye "latency", ọ na-enye ndị ọbịa ndị ọzọ ịchọrọ inwe. Ma achọghị m ịnweta ha - achọrọ m ...

Z: "Ma n'ikpeazụ ọ bịara otú ahụ."

YN: – Mba, enweghị ndị ọbịa! Ihe a niile na-arụ ọrụ na ndị ọbịa Clickhouse.

Z: - Ọfọn, na "Kittenhouse", nke bụ nke ọzọ - ebee ka o bi?

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

YN: - Na onye ọbịa Clickhouse, ọ naghị ede ihe ọ bụla na diski ahụ.

Z: - Ka anyị were ya.

Na-edu: – afọ juru gị afọ? Anyị nwere ike ịnye gị ụgwọ ọnwa?

Z: - Ee, ị nwere ike. N'ezie, e nwere ọtụtụ crutches iji nweta otu ihe ahụ, ma ugbu a - azịza gara aga na isiokwu nke TCP na-emegide, n'echiche m, ọnọdụ a. Ọ dị m ka ihe niile gaara eme na ikpere m obere oge.

YN: - Nakwa ihe kpatara na achọghị m iji Kafka, n'ihi na enwere ọtụtụ mkpesa na mkparịta ụka Clickhouse Telegram na, dịka ọmụmaatụ, ozi sitere na Kafka furu efu. Ọ bụghị site na Kafka n'onwe ya, ma na ntinye nke Kafka na Clickhaus; ma ọ bụ ihe ejikọtaghị ebe ahụ. N'ikwu okwu nke ọma, ọ ga-adị mkpa idegara Kafka onye ahịa mgbe ahụ. Echeghị m na enwere ike ịnwe ngwọta dị mfe ma ọ bụ nke a pụrụ ịdabere na ya.

Z: – Gwa m, gịnị kpatara na ị nwaraghị kwụ n'ahịrị ma ọ bụ ụdị ụgbọ ala nkịtị? Ebe ị na-ekwu na asynchrony ị nwere ike izipu ndekọ onwe ha site kwụ n'ahịrị na-enweta nzaghachi asynchronously site kwụ n'ahịrị?

HighLoad ++, Yuri Nasretdinov (VKontakte): ka VK si tinye data n'ime ClickHouse site na iri puku kwuru iri puku sava.

YN: – Biko tụọ aro kedu kwụ n'ahịrị enwere ike iji?

Z: – Ọ bụla, ọbụna na-enweghị nkwa na ha na-n'usoro. Ụfọdụ ụdị Redis, RMQ...

YN: - Enwere m mmetụta na Redis nwere ike ọ gaghị enwe ike ịdọrọ ụda ntinye dị otú ahụ ọbụna na otu onye ọbịa (n'echiche nke ọtụtụ sava) nke na-ewepụ Clickhouse. Enweghị m ike iji ihe akaebe ọ bụla kwado nke a (Enwebeghị m ya), mana ọ dị m ka Redis abụghị ngwọta kacha mma ebe a. Na ụkpụrụ, usoro a nwere ike na-ewere dị ka a improvised ozi kwụ n'ahịrị, ma nke ahaziri naanị maka "Clickhouse"

Na-edu: – Yuri, daalụ nke ukwuu. M na-atụ aro ka ịkwụsị ajụjụ na azịza ebe a ma kwuo onye n'ime ndị jụrụ ajụjụ anyị ga-enye akwụkwọ ahụ.

YN: – Ọ ga-amasị m inye onye mbụ jụrụ ajụjụ akwụkwọ.

Na-edu: - magburu onwe ya! Nnukwu! mara mma! Daalụ nke ukwuu!

Ụfọdụ mgbasa ozi 🙂

Daalụ maka ịnọnyere anyị. Akụkọ anyị ọ masịrị gị? Chọrọ ịhụ ọdịnaya na-adọrọ mmasị karị? Kwado anyị site n'itinye iwu ma ọ bụ ịkwado ndị enyi, igwe ojii VPS maka ndị mmepe sitere na $ 4.99, analog pụrụ iche nke sava ọkwa ntinye, nke anyị chepụtara maka gị: Eziokwu niile gbasara VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps site na $19 ma ọ bụ otu esi ekekọrịta ihe nkesa? (dị na RAID1 na RAID10, ruo 24 cores na ruo 40GB DDR4).

Dell R730xd 2x dị ọnụ ala na etiti data Equinix Tier IV na Amsterdam? Naanị ebe a 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV sitere na $199 na Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - sitere na $99! Gụkwuo banyere ya Kedu otu esi emepụta Infrastructure Corp. klas na iji Dell R730xd E5-2650 v4 sava kwesịrị 9000 euro maka otu penny?

isi: www.habr.com

Tinye a comment