HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

HighLoad++ Moscow 2018, Talla na Còmhdhalach. 9 Samhain, 15:00

Geàrr-chunntasan agus taisbeanadh: http://www.highload.ru/moscow/2018/abstracts/4066

Yuri Nasretdinov (VKontakte): bruidhnidh an aithisg mun eòlas air a bhith a 'cur an gnìomh ClickHouse anns a' chompanaidh againn - carson a tha feum againn air, dè an ìre de dhàta a bhios sinn a 'stòradh, mar a sgrìobhas sinn e, agus mar sin air adhart.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Stuthan a bharrachd: a’ cleachdadh Clickhouse an àite ELK, Ceist Mhòr agus Raon-amaDB

Yuri Nasretdinov: - Hi uile! Is e m ’ainm Yuri Nasretdinov, mar a chaidh a thoirt a-steach mu thràth. Tha mi ag obair aig VKontakte. Bruidhnidh mi mu mar a chuireas sinn dàta a-steach gu ClickHouse bhon chabhlach frithealaiche againn (deichean mhìltean).

Dè a th 'ann an logaichean agus carson a tha iad gan cruinneachadh?

Na dh’innseas sinn dhut: na rinn sinn, carson a bha feum againn air “ClickHouse”, fa leth, carson a thagh sinn e, dè an seòrsa coileanaidh a gheibh thu timcheall air gun a bhith a’ rèiteachadh dad sònraichte. Innsidh mi dhut tuilleadh mu chlàran bufair, mu na duilgheadasan a bh’ againn leotha agus mu na fuasglaidhean againn a leasaich sinn bho thùs fosgailte - KittenHouse agus Lighthouse.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Carson a dh'fheumadh sinn rud sam bith a dhèanamh (tha a h-uile dad an-còmhnaidh math air VKontakte, ceart?). Bha sinn airson clàran deasbaid a chruinneachadh (agus bha ceudan de terabytes de dhàta ann), is dòcha dòigh air choireigin gum biodh e na b’ fhasa staitistig obrachadh a-mach; agus tha cabhlach de dheich mhiltean de sheirbhisich againn as am feum so uile dheanamh.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Carson a rinn sinn co-dhùnadh? Is dòcha gu robh fuasglaidhean againn airson logaichean a stòradh. An seo - tha a leithid de poblach "Backend VK". Tha mi gu mòr a’ moladh fo-sgrìobhadh dha.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Dè th' ann an logaichean? Is e seo einnsean a thilleas arrays falamh. Is e einnseanan ann an VK na tha daoine eile a’ gairm microservices. Agus seo stiogair gàire (gu math dèidheil air). Ciamar? Uill, èist nas fhaide!

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Dè a ghabhas cleachdadh airson logaichean a stòradh? Tha e do-dhèanta gun a bhith a 'toirt iomradh air Hadup. An uairsin, mar eisimpleir, Rsyslog (a 'stòradh nan logaichean sin ann am faidhlichean). LSD. Cò aig tha fios dè a th’ ann an LSD? Chan e, chan e an LSD seo. Sàbhail faidhlichean, fa leth, cuideachd. Uill, tha ClickHouse na roghainn neònach.

Clickhouse agus farpaisich: riatanasan agus cothroman

Dè tha sinn ag iarraidh? Tha sinn airson dèanamh cinnteach nach fheum sinn cus dragh a ghabhail mun obair, gus an obraich e a-mach às a’ bhogsa, le glè bheag de rèiteachadh mas fheàrr. Tha sinn airson tòrr a sgrìobhadh, agus sgrìobhadh gu sgiobalta. Agus tha sinn airson a chumail airson a h-uile seòrsa de mhìosan, bliadhnaichean, is e sin, airson ùine mhòr. Is dòcha gum bi sinn airson duilgheadas air choireigin a thuigsinn leis an tàinig iad thugainn agus ag ràdh, “Chan eil rudeigin ag obair an seo,” agus bha sin 3 mìosan air ais), agus tha sinn airson a bhith comasach air faicinn dè thachair 3 mìosan air ais " Dùmhlachadh dàta - tha e soilleir carson a bhiodh e na bhuannachd - leis gu bheil e a’ lughdachadh na tha de rùm ann.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Agus tha riatanas cho inntinneach againn: uaireannan bidh sinn a 'sgrìobhadh toradh cuid de dh' òrduighean (mar eisimpleir, logaichean), faodaidh e a bhith nas fhaide na 4 kilobytes gu math furasta. Agus ma dh’ obraicheas an rud seo thairis air UDP, chan fheum e a chosg... cha bhith “barrachd” sam bith aige airson a’ cheangail, agus airson àireamh mhòr de luchd-frithealaidh bidh seo na bhuannachd.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Chì sinn dè tha stòr fosgailte a’ tabhann dhuinn. An toiseach, tha an Inneal Logaichean againn - is e seo an einnsean againn; Ann am prionnsapal, is urrainn dha a h-uile càil a dhèanamh, is urrainn dha eadhon loidhnichean fada a sgrìobhadh. Uill, chan eil e gu follaiseach a’ teannachadh dàta - is urrainn dhuinn colbhan mòra a dhlùthadh sinn fhìn ma tha sinn ag iarraidh ... chan eil sinn, gu dearbh, ag iarraidh (ma tha sin comasach). Is e an aon dhuilgheadas nach urrainn dha a thoirt seachad ach na tha iomchaidh na chuimhne; Gus an còrr a leughadh, feumaidh tu binlog an einnsean seo fhaighinn agus, mar sin, bheir e ùine mhòr.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Dè na roghainnean eile a tha ann? Mar eisimpleir, "Hadup". Furasta obrachadh... Cò a tha den bheachd gu bheil Hadup furasta a stèidheachadh? Gu dearbh, chan eil duilgheadasan ann leis a’ chlàradh. Nuair a bhios tu a’ leughadh, bidh ceistean uaireannan ag èirigh. Ann am prionnsapal, chanainn is dòcha nach eil, gu sònraichte airson logaichean. Stòradh fad-ùine - gu dearbh, tha, teannachadh dàta - tha, sreangan fada - tha e soilleir gun urrainn dhut clàradh. Ach a' clàradh bho àireamh mhòr de luchd-frithealaidh... Feumaidh tu rudeigin a dhèanamh thu fhèin fhathast!

Rsyslog. Gu dearbh, chleachd sinn e mar roghainn cùl-taic gus am b’ urrainn dhuinn a leughadh gun a bhith a’ dumpadh a’ bhiona, ach chan urrainn dha loidhnichean fada a sgrìobhadh; ann am prionnsapal, chan urrainn dha barrachd air 4 kilobytes a sgrìobhadh. Feumaidh tu teannachadh dàta a dhèanamh san aon dòigh thu fhèin. Thig leughadh bho fhaidhlichean.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

An uairsin tha leasachadh "badushka" de LSD. Gu bunaiteach an aon rud ri “Rsyslog”: tha e a ’toirt taic do shreathan fada, ach chan urrainn dha obrachadh tro UDP agus, gu dearbh, air sgàth seo, gu mì-fhortanach, feumar tòrr rudan ath-sgrìobhadh an sin. Feumaidh LSD a bhith air ath-dhealbhadh gus a bhith comasach air clàradh bho na deichean mhìltean de luchd-frithealaidh.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Agus an seo! Is e roghainn èibhinn ElasticSearch. Ciamar a chanas tu? Tha e a’ dèanamh gu math le leughadh, is e sin, bidh e a’ leughadh gu sgiobalta, ach chan eil e glè mhath le sgrìobhadh. An toiseach, ma dhlùthaicheas e dàta, tha e gu math lag. Nas coltaiche, feumaidh làn sgrùdadh structaran dàta nas motha na an tomhas tùsail. Tha e duilich obrachadh agus bidh duilgheadasan ag èirigh leis gu tric. Agus, a-rithist, clàradh ann an Elastic - feumaidh sinn a h-uile càil a dhèanamh sinn fhìn.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

An seo tha ClickHouse na dheagh roghainn, gu dearbh. Is e an aon rud gu bheil clàradh bho dheich mìltean de luchd-frithealaidh na dhuilgheadas. Ach co-dhiù tha aon duilgheadas ann, is urrainn dhuinn feuchainn ri fuasgladh fhaighinn air dòigh air choireigin. Agus tha an còrr den aithisg mun duilgheadas seo. Dè an seòrsa coileanaidh ris am faod dùil a bhith agad bho ClickHouse?

Ciamar a chuireas sinn a-steach e? MergeTree

Cò nur measg nach cuala no aig a bheil fios mu “ClickHouse”? Feumaidh mi innse dhut, nach eil? Gu math luath. Faodaidh an cuir a-steach an sin - 1-2 gigabits gach diog, spreadhaidhean suas ri 10 gigabits gach diog seasamh ris an rèiteachadh seo - tha dà Xeons 6-cridhe (is e sin, chan e eadhon an fheadhainn as cumhachdaiche), 256 gigabytes de RAM, 20 terabytes ann an RAID (chan eil duine air a rèiteachadh, roghainnean bunaiteach). Is dòcha gu bheil Alexey Milovidov, leasaiche ClickHouse, na shuidhe an sin a’ caoineadh leis nach do shuidhich sinn dad (dh’ obraich a h-uile dad mar sin dhuinn). A rèir sin, gheibhear astar sganaidh de, can, timcheall air 6 billean loidhne gach diog ma tha an dàta air a dhlùthadh gu math. Ma thogras tu % air sreang teacsa - 100 millean loidhne gach diog, is e sin, tha e coltach gu math luath.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Ciamar a chuireas sinn a-steach e? Uill, tha fios agad gu bheil VK a’ cleachdadh PHP. Cuiridh sinn a-steach bho gach neach-obrach PHP tro HTTP gu “ClickHouse”, a-steach don chlàr MergeTree airson gach clàr. Cò a tha a’ faicinn duilgheadas leis an sgeama seo? Airson adhbhar air choireigin, cha do thog a h-uile duine an làmhan. Leig leam innse dhut.

An toiseach, tha tòrr luchd-frithealaidh ann - a rèir sin, bidh tòrr cheanglaichean (dona). An uairsin tha e nas fheàrr dàta a chuir a-steach gu MergeTree gun a bhith nas trice na aon uair san diog. Agus cò aig tha fios carson? Ceart gu leòr, ceart gu leòr. Innsidh mi beagan a bharrachd dhut mu dheidhinn seo. Is e ceist inntinneach eile nach eil sinn a’ dèanamh anailis, chan fheum sinn an dàta a shaidhbhreachadh, chan eil feum againn air frithealaichean eadar-mheadhanach, tha sinn airson cuir a-steach gu dìreach ann an “ClickHouse” (mas fheàrr - mar as dìriche, ’s ann as fheàrr).

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Mar sin, ciamar a tha cuir a-steach air a dhèanamh ann am MergeTree? Carson a tha e nas fheàrr a chuir a-steach ann nas trice na aon uair san diog no nas lugha gu tric? Is e an fhìrinn gur e stòr-dàta colbh a th’ ann an “ClickHouse” agus a ’rèiteach an dàta ann an òrdugh dìreadh na prìomh iuchair, agus nuair a nì thu cuir a-steach, thèid grunn fhaidhlichean a chruthachadh co-dhiù co-ionann ris an àireamh de cholbhan anns a bheil an dàta air a sheòrsachadh. ann an òrdugh dìreadh na prìomh iuchair (tha eòlaire air leth air a chruthachadh, seata de fhaidhlichean air diosc airson gach cuir a-steach). An uairsin thig an ath chuir a-steach, agus air a’ chùl tha iad air an cur còmhla ann an “partitions” nas motha. Leis gu bheil an dàta air a sheòrsachadh, tha e comasach dà fhaidhle a chuir còmhla “a chur còmhla” gun a bhith a’ caitheamh mòran cuimhne.

Ach, mar a shaoileadh tu, ma sgrìobhas tu 10 faidhlichean airson gach cuir a-steach, an uairsin thig ClickHouse (no an frithealaiche agad) gu crìch gu sgiobalta, agus mar sin thathas a’ moladh cuir a-steach ann an baidsean mòra. Mar sin, cha do chuir sinn a-riamh a’ chiad sgeama air bhog gu cinneasachadh. Chuir sinn fear air bhog sa bhad, aig a bheil Àir. 2 an seo:

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

An seo smaoinich gu bheil timcheall air mìle frithealaiche air an do chuir sinn air bhog, chan eil ann ach PHP. Agus air gach frithealaiche tha an neach-ionaid ionadail againn, ris an can sinn “Kittenhouse”, a chumas aon cheangal ri “ClickHouse” agus a chuireas a-steach dàta a h-uile diog. Cuir a-steach dàta chan ann a-steach do MergeTree, ach a-steach do bhòrd bufair, a bhios gu cinnteach a’ seachnadh cuir a-steach gu dìreach ann am MergeTree sa bhad.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Ag obair le bùird bufair

Dè th' ann? Is e pìos cuimhne a th’ ann am bùird bufair a tha air a shèideadh (is e sin, faodar a chuir a-steach gu tric). Tha iad air an dèanamh suas de ghrunn phìosan, agus tha gach aon de na pìosan ag obair mar bufair neo-eisimeileach, agus tha iad air an sruthadh gu neo-eisimeileach (ma tha mòran pìosan anns a 'bhufair, bidh mòran cuir a-steach gach diog). Tha e comasach leughadh bho na clàran seo - an uairsin leugh thu aonadh susbaint a ’bhufair agus am bòrd phàrant, ach aig an àm seo tha an sgrìobhadh air a bhacadh, agus mar sin tha e nas fheàrr gun a bhith a’ leughadh às an sin. Agus tha clàran bufair a’ nochdadh QPS fìor mhath, is e sin, suas ri 3 mìle QPS cha bhith duilgheadas sam bith agad nuair a chuireas tu a-steach e. Tha e soilleir ma chailleas an frithealaiche cumhachd, faodar an dàta a chall, oir cha deach a stòradh ach mar chuimhneachan.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Aig an aon àm, tha an sgeama le bufair a 'dèanamh iom-fhillte air ALTER, oir feumaidh tu an seann bhòrd bufair a leigeil sìos leis an t-seann sgeama (cha tèid an dàta à sealladh an àite sam bith, oir thèid a sguabadh às mus tèid an clàr a dhubhadh às). An uairsin bidh thu “ag atharrachadh” am bòrd a tha a dhìth ort agus a’ cruthachadh a’ bhòrd bufair a-rithist. Mar sin, ged nach eil clàr bufair ann, cha bhith an dàta agad a’ sruthadh an àite sam bith, ach faodaidh tu a bhith agad air diosc co-dhiù gu h-ionadail.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Dè a th’ ann an Kittenhouse agus ciamar a tha e ag obair?

Dè th' ann an KittenHouse? Is e neach-ionaid a tha seo. Tomhais dè an cànan? Chruinnich mi na cuspairean as hype san aithisg agam - “Clickhouse”, Rach, is dòcha gum bi cuimhne agam air rudeigin eile. Tha, tha seo sgrìobhte ann an Go, oir chan eil fìor fhios agam ciamar a sgrìobhas mi ann an C, chan eil mi ag iarraidh.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Mar sin, bidh e a 'cumail ceangal ri gach frithealaiche agus faodaidh e sgrìobhadh gu cuimhne. Mar eisimpleir, ma sgrìobhas sinn logaichean mearachd gu Clickhouse, an uairsin mura h-eil ùine aig Clickhouse dàta a chuir a-steach (às deidh a h-uile càil, ma tha cus air a sgrìobhadh), cha bhith sinn a’ lughdachadh na cuimhne - bidh sinn dìreach a ’tilgeil a-mach an còrr. Oir ma sgrìobhas sinn grunn gigabits gach diog de mhearachdan, is dòcha gun tilg sinn cuid a-mach. Faodaidh Kittenhouse seo a dhèanamh. A bharrachd air an sin, faodaidh e lìbhrigeadh earbsach a dhèanamh, is e sin, sgrìobhadh gu diosc air an inneal ionadail agus aon uair gach uair (an sin, aon uair gach diog no dhà) bidh e a ’feuchainn ri dàta bhon fhaidhle seo a lìbhrigeadh. Agus an toiseach chleachd sinn an cruth Luachan cunbhalach - chan e cruth binary, cruth teacsa (mar ann an SQL àbhaisteach).

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Ach an uairsin thachair seo. Chleachd sinn lìbhrigeadh earbsach, sgrìobh sinn logaichean, an uairsin cho-dhùin sinn (b ’e cruinneachadh deuchainn le cumhachan a bh’ ann)... Chaidh a chuir a-mach airson grunn uairean a thìde agus a thoirt air ais, agus thòisich cuir a-steach bho mhìle frithealaiche - thionndaidh e a-mach gu robh taigh-bathair fhathast aig Clickhouse. “Snàithlean air ceangal” - a rèir sin, ann am mìle ceangal, bidh cuir a-steach gnìomhach a’ leantainn gu cuibheasachd luchdan air an fhrithealaiche timcheall air mìle gu leth. Gu h-iongantach, ghabh am frithealaiche ri iarrtasan, ach chaidh an dàta a chuir a-steach fhathast às deidh beagan ùine; ach bha e gu math duilich don fhrithealaiche a bhith ga fhrithealadh ...

Cuir nginx ris

Is e fuasgladh mar seo airson modal Thread per ceangail nginx. Chuir sinn a-steach nginx air beulaibh Clickhouse, aig an aon àm stèidhich sinn cothromachadh airson dà mhac-samhail (chaidh an astar cuir a-steach againn suas 2 uair, ged nach eil e na fhìrinn gum bu chòir seo a bhith) agus chuir sinn casg air an àireamh de cheanglaichean ri Clickhouse, chun an suas an abhainn agus, a rèir sin, barrachd , na ann an 50 ceanglaichean, tha e coltach nach eil feum sam bith a chuir a-steach.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

An uairsin thuig sinn gu bheil eas-bhuannachdan aig an sgeama seo san fharsaingeachd, leis nach eil againn ach aon nginx an seo. Mar sin, ma thuiteas an nginx seo, a dh’ aindeoin gu bheil mac-samhail ann, bidh sinn a’ call dàta no, co-dhiù, cha bhith sinn a’ sgrìobhadh àite sam bith. Sin as coireach gun do rinn sinn ar cothromachadh luchdan fhèin. Thuig sinn cuideachd gu bheil “Clickhouse” fhathast freagarrach airson logaichean, agus thòisich an “deamhan” cuideachd air na logaichean aige a sgrìobhadh ann an “Clickhouse” - gu math goireasach, a bhith onarach. Bidh sinn fhathast ga chleachdadh airson “deamhain” eile.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

An uairsin lorg sinn an duilgheadas inntinneach seo: ma chleachdas tu dòigh neo-àbhaisteach airson cuir a-steach ann am modh SQL, bidh e a’ sparradh parser SQL làn-chuimseach stèidhichte air AST, a tha gu math slaodach. Mar sin, tha sinn air roghainnean a chuir ris gus dèanamh cinnteach nach tachair seo gu bràth. Rinn sinn cothromachadh, sgrùdaidhean slàinte, gus am fàg sinn an dàta ma gheibh sinn bàs. Tha tòrr chlàran againn a-nis a dh’ fheumas sinn airson diofar chlàran Clickhouse a bhith againn. Agus thòisich sinn cuideachd a’ smaoineachadh mu chleachdaidhean eile - mar eisimpleir, bha sinn airson logaichean a sgrìobhadh bho mhodalan nginx, ach chan eil fios aca ciamar a nì iad conaltradh a’ cleachdadh ar RPC. Uill, bu mhath leam a theagasg dhaibh mar a chuireas tu co-dhiù dòigh air choireigin - mar eisimpleir, gus tachartasan fhaighinn air localhost tro UDP agus an uairsin a chuir air adhart gu Clickhouse.

Aon cheum air falbh bho fuasgladh

Thòisich an sgeama mu dheireadh a’ coimhead mar seo (an ceathramh dreach den sgeama seo): air gach frithealaiche air beulaibh Clickhouse tha nginx (air an aon fhrithealaiche) agus bidh e dìreach a’ cur iarrtasan gu localhost le crìoch air an àireamh de cheanglaichean de 50 pìosan. Agus bha an sgeama seo gu math ag obair mar-thà, bha a h-uile dad gu math leis.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Bha sinn a’ fuireach mar seo airson timcheall air mìos. Bha a h-uile duine toilichte, chuir iad bùird ris, chuir iad ris, chuir iad ris... San fharsaingeachd, thionndaidh e a-mach nach robh an dòigh anns an do chuir sinn bùird bufair ris an ìre as fheàrr (cuireamaid e mar sin). Rinn sinn 16 pìosan anns gach clàr agus eadar-ama de dhiog no dhà; bha 20 clàr againn agus fhuair gach clàr 8 cuir a-steach gach diog - agus aig an ìre seo thòisich “Clickhouse”… thòisich na clàran a’ fàs nas slaodaiche. Cha deach iad eadhon tro... Bha rud cho inntinneach aig Nginx gu gnàthach is nan tigeadh ceanglaichean gu crìch aig an ìre as àirde, gun tilleadh e “502” gu gach iarrtas ùr.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Agus an seo tha sinn (tha mi dìreach air sùil a thoirt air na logaichean ann an Clickhouse fhèin) mu leth sa cheud de dh'iarrtasan air fàiligeadh. Mar sin, bha cleachdadh diosc àrd, bha tòrr aonaidhean ann. Uill, dè rinn mi? Gu nàdarra, cha do chuir mi dragh orm faighinn a-mach carson a thàinig an ceangal agus an abhainn gu crìch.

A’ cur neach-ionaid cùil an àite nginx

Cho-dhùin mi gum feum sinn seo a riaghladh sinn fhìn, chan fheum sinn a fàgail gu nginx - chan eil fios aig nginx dè na clàran a th’ ann an Clickhouse, agus chuir mi neach-ionaid cùil an àite nginx, a sgrìobh mi fhìn cuideachd.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Dè tha e a' dèanamh? Bidh e ag obair stèidhichte air an leabharlann fasthttp “goshnoy”, is e sin, luath, cha mhòr cho luath ri nginx. Duilich, Igor, ma tha thu an làthair an seo (nota: tha Igor Sysoev na phrògramadair Ruiseanach a chruthaich frithealaiche lìn nginx). Tuigidh e dè an seòrsa cheistean a th’ annta - INSERT no SELECT - a rèir sin, bidh e a’ cumail diofar amaran ceangail airson diofar sheòrsaichean cheistean.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

A rèir sin, eadhon mura h-eil ùine againn na h-iarrtasan cuir a-steach a chrìochnachadh, thèid na “taghaidh” seachad, agus a chaochladh. Agus bidh e a’ cruinneachadh an dàta ann an clàran bufair - le bufair beag: nam biodh mearachdan ann, mearachdan co-chòrdalachd, agus mar sin air adhart - gus nach toireadh iad buaidh mhòr air a’ chòrr den dàta, oir nuair a chuir sinn a-steach sinn gu clàran bufair, bidh sinn bha "bachi" beag aige, agus cha robh buaidh aig a h-uile mearachd co-chòrdadh air a' phìos bheag seo; agus an seo bheir iad buaidh mu thràth air bufair mòr. Tha beag 1 megabyte, is e sin, chan eil e cho beag.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Le bhith a’ cuir a-steach sioncronadh agus gu ìre mhòr ag ath-nuadhachadh nginx, bidh e gu ìre mhòr a’ dèanamh an aon rud a rinn nginx roimhe - cha leig thu leas an “Kittenhouse” ionadail atharrachadh airson seo. Agus leis gu bheil e a’ cleachdadh fasthttp, tha e gu math luath - faodaidh tu barrachd air 100 mìle iarrtas a dhèanamh gach diog airson cuir a-steach singilte tro neach-ionaid cùil. Gu teòiridheach, faodaidh tu aon loidhne a chuir a-steach aig aon àm a-steach do neach-ionaid cùl an taigh-chiseag, ach gu dearbh cha bhith sinn a’ dèanamh sin.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Thòisich an sgeama a 'coimhead mar seo: "Kittenhouse", bidh an neach-ionaid cùil a' cruinneachadh mòran iarrtasan a-steach do bhùird agus, an uair sin, bidh na clàran bufair gan cuir a-steach do na prìomh fheadhainn.

Is e fuasgladh sealach a th’ ann an Killer, tha Kitten maireannach

'S e duilgheadas inntinneach a tha seo... An do chleachd duine agaibh fasthttp? Cò a chleachd fasthttp le iarrtasan POST? Is dòcha, cha bu chòir seo a bhith air a dhèanamh, oir tha e a’ bufair a’ bhuidheann iarrtas gu bunaiteach, agus chaidh am meud bufair againn a shuidheachadh gu 16 megabytes. Sguir an cuir a-steach a ’cumail suas aig àm air choreigin, agus thòisich pìosan 16-megabyte a’ ruighinn bho na deichean mhìltean de luchd-frithealaidh, agus bha iad uile air am buffer mar chuimhneachan mus deach an cur gu Clickhouse. A rèir sin, ruith a’ chuimhne a-mach, thàinig am Killer Out-of-Memory Killer agus mharbh e an neach-ionaid cùil (no “Clickhouse”, a dh’ fhaodadh gu teòiridheach “ithe” barrachd na an neach-ionaid cùil). Chaidh an cearcall ath-aithris fhèin. Chan e duilgheadas gu math tlachdmhor. Ged a thàinig sinn tarsainn air seo dìreach às deidh grunn mhìosan de dh’ obair.

Dè a rinn mi? A-rithist, cha toil leam a bhith a’ tuigsinn dè dìreach a thachair. Tha mi a’ smaoineachadh gu bheil e gu math follaiseach nach bu chòir dhut a dhol nad chuimhne. Cha b' urrainn dhomh fasthttp a ghleusadh, ged a dh'fheuch mi. Ach lorg mi dòigh air a dhèanamh gus nach robh feum air dad a ghlacadh, agus thàinig mi suas leis an dòigh agam fhìn ann an HTTP - thug mi KITTEN air. Uill, tha e loidsigeach - "VK", "Kitten"... Dè eile?..

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Ma thig iarrtas chun t-seirbheisiche leis an dòigh Kitten, bu chòir don fhrithealaiche freagairt “meow” - gu loidsigeach. Ma fhreagras e seo, thathas den bheachd gu bheil e a ’tuigsinn a’ phròtacal seo, agus an uairsin bidh mi a ’toirt a-steach a’ cheangal (tha an leithid de dhòigh aig fasthttp), agus thèid an ceangal a-steach don mhodh “amh”. Carson a tha feum agam air? Tha mi airson smachd a chumail air mar a bhios leughadh bho cheanglaichean TCP a’ tachairt. Tha seilbh iongantach aig TCP: mura h-eil duine a 'leughadh bhon taobh eile, bidh an sgrìobhadh a' tòiseachadh a 'feitheamh, agus chan eil cuimhne air a chosg gu sònraichte air seo.

Agus mar sin leugh mi bho timcheall air 50 neach-dèiligidh aig an aon àm (bho leth-cheud oir bu chòir leth-cheud a bhith gu leòr, eadhon ged a tha an ìre a’ tighinn bho DC eile)... Tha caitheamh air a dhol sìos leis an dòigh-obrach seo co-dhiù 20 uair, ach tha mi, a bhith onarach , Cha b 'urrainn dhomh tomhas dìreach dè an ùine, oir tha e mar-thà gun fheum (tha e mar-thà air an ìre mearachd a ruighinn). Tha am protocol dà-chànanach, is e sin, tha ainm a’ chlàir agus dàta ann; chan eil bann-cinn http ann, agus mar sin cha do chleachd mi socaid lìn (chan fheum mi conaltradh le brobhsairean - rinn mi protocol a fhreagras ar feumalachdan). Agus dh’fhàs a h-uile càil gu math leis.

Tha am bòrd bufair brònach

O chionn ghoirid thàinig sinn tarsainn air feart inntinneach eile de chlàran bufair. Agus tha an duilgheadas seo mar-thà tòrr nas dorra na feadhainn eile. Smaoinich sinn air an t-suidheachadh seo: tha thu mu thràth a’ cleachdadh Clickhouse gu gnìomhach, tha dusanan de luchd-frithealaidh Clickhouse agad, agus tha cuid de dh’ iarrtasan agad a bheir ùine gu math fada airson leughadh (canaidh sinn, barrachd air 60 diog); agus thig thu agus nì thu Alter an-dràsta... Anns an eadar-ama, cha tèid “taghaidhean” a thòisich ro “Alter” a thoirt a-steach don chlàr seo, cha tòisich “Alter” - is dòcha cuid de fheartan air mar a tha “Clickhouse” ag obair ann an àite so. Is dòcha gun gabh seo a rèiteachadh? No nach eil e comasach?

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Anns an fharsaingeachd, tha e soilleir gu bheil ann an da-rìribh nach eil seo na dhuilgheadas mòr, ach le bùird bufair bidh e nas dorra. Air sgàth, ma chanas sinn, an ùine-ama “Alter” agad (agus is dòcha gun tig ùine a-mach air òstair eile - chan ann leatsa, ach air mac-samhail, mar eisimpleir), an uairsin... Chuir thu às don chlàr bufair, an “Alter” agad ( no neach-aoigheachd eile) ùine a-mach. an uairsin tha mearachd “Alter” air tachairt) - feumaidh tu fhathast dèanamh cinnteach gu bheil an dàta fhathast air a sgrìobhadh: bidh thu a ’cruthachadh na clàran bufair air ais (a rèir an aon sgeama ris a’ bhòrd phàrant), an uairsin Bidh "Alter" a 'dol troimhe, a' crìochnachadh às deidh a h-uile càil, agus tha am bufair a 'tòiseachadh air a' bhòrd a bhith eadar-dhealaichte bhon phàrant ann an sgeama. A rèir dè an “Alter” a bh’ ann, is dòcha nach tèid an cuir a-steach chun bhòrd bufair seo tuilleadh - tha seo gu math brònach.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Tha soidhne mar sin ann cuideachd (is dòcha gun do mhothaich cuideigin e) - canar query_thread_log ris ann an dreachan ùra de Clickhouse. Gu gnàthach, ann an dreach air choreigin bha aon ann. An seo tha sinn air 840 millean clàr a chruinneachadh ann am mìos no dhà (100 gigabytes). Tha seo air sgàth gu bheil “cuir a-steach” air an sgrìobhadh an sin (is dòcha a-nis, leis an t-slighe, chan eil iad sgrìobhte). Mar a dh’ innis mi dhut, tha na “cuir a-steach” againn beag - bha tòrr “cuir a-steach” againn anns na bùird bufair. Tha e soilleir gu bheil seo ciorramach - tha mi dìreach ag innse dhut na chunnaic mi air an t-seirbheisiche againn. Carson? Seo argamaid eile an aghaidh a bhith a’ cleachdadh chlàran bufair! Tha Spotty gu math brònach.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Cò aig an robh fios gur e Spotty an t-ainm a bha air an duine seo? Thog luchd-obrach VK an làmhan. ceart gu leòr.

Mu na planaichean airson "KitttenHouse"

Mar as trice chan eil planaichean air an roinn, ceart? Gu h-obann cha bhith thu gan coileanadh agus cha bhith thu a’ coimhead glè mhath ann an sùilean dhaoine eile. Ach gabhaidh mi an cunnart! Tha sinn airson na leanas a dhèanamh: tha bùird bufair, tha e coltach riumsa, fhathast nan crutch agus feumaidh sinn am bufair a chuir a-steach sinn fhìn. Ach chan eil sinn fhathast airson a bufair air diosc, agus mar sin bufair sinn an cuir a-steach mar chuimhneachan.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Mar sin, nuair a thèid “cuir a-steach” a dhèanamh, cha bhith e sioncronaich tuilleadh - obraichidh e mar bhòrd bufair mu thràth, cuiridh e a-steach don bhòrd phàrant (uill, beagan latha às deidh sin) agus bheir e cunntas tro sheanal air leth a tha cuir a-steach air a dhol seachad agus a tha nach eil.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Carson nach urrainn dhomh an cuir a-steach sioncronaich fhàgail? Tha e tòrr nas goireasaiche. Is e an fhìrinn ma chuireas tu a-steach bho 10 mìle neach-aoigheachd, bidh a h-uile dad gu math - gheibh thu beagan bho gach aoigh, cuiridh tu a-steach an sin aon uair san diog, tha a h-uile dad gu math. Ach bu mhath leam gum biodh an sgeama seo ag obair, mar eisimpleir, bho dhà inneal, gus an urrainn dhut luchdachadh sìos aig astar àrd - is dòcha nach fhaigh thu a’ char as àirde a-mach à Clickhouse, ach sgrìobh co-dhiù 100 megabytes gach diog bho aon inneal tro neach-ionaid cùil - feumaidh seo an sgeama sgèile gu meudan mòra agus beaga, agus mar sin chan urrainn dhuinn feitheamh diog airson gach cuir a-steach, agus mar sin feumaidh e a bhith asyncronach. Agus san aon dòigh, bu chòir dearbhaidhean asyncronach a thighinn às deidh an cuir a-steach a chrìochnachadh. Bidh fios againn an deach e seachad no nach deach.

Is e an rud as cudromaiche gu bheil fios againn gu cinnteach san sgeama seo an do thachair an cuir a-steach no nach do thachair. Smaoinich air an t-suidheachadh seo: tha clàr bufair agad, sgrìobh thu rudeigin a-steach dha, agus an uairsin, canaidh sinn, chaidh am bòrd a-steach do mhodh leughaidh a-mhàin agus dh’ fheuch e ris a’ bhufair a shruthladh. Càite an tèid an dàta? Fuirichidh iad anns a’ bhufair. Ach chan urrainn dhuinn a bhith cinnteach mu dheidhinn seo - dè ma tha mearachd eile ann, air sgàth 's nach bi an dàta a' fuireach anns a 'bhufair ... (Seòlaidhean Alexey Milovidov, Yandex, leasaiche ClickHouse) No am fuirich e? An-còmhnaidh? Tha Alexei a’ toirt a chreidsinn gum bi a h-uile dad gu math. Chan eil adhbhar againn gun a chreidsinn. Ach a h-uile h-aon: mura cleachd sinn bùird bufair, cha bhi duilgheadas sam bith ann leotha. Tha e mì-ghoireasach a bhith a 'cruthachadh dà uiread de chlàran, ged ann am prionnsabal chan eil duilgheadasan mòra ann. Seo am plana.

Bruidhnidh sinn mu dheidhinn leughadh

A-nis leigidh sinn bruidhinn mu dheidhinn leughadh. Sgrìobh sinn an inneal againn fhèin an seo cuideachd. Bhiodh e coltach, uill, carson a sgrìobhas tu an ionnstramaid agad fhèin an seo?.. Agus cò chleachd Tabix? Is e glè bheag de dhaoine a thog an làmhan... Agus cò a tha riaraichte le coileanadh Tabix? Uill, chan eil sinn toilichte leis, agus chan eil e gu math goireasach airson coimhead air dàta. Tha e ceart gu leòr airson anailisean, ach dìreach airson coimhead tha e soilleir nach eil e air a mheudachadh. Mar sin sgrìobh mi mo chuid fhèin, an eadar-aghaidh agam fhìn.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Tha e gu math sìmplidh - chan urrainn dha ach dàta a leughadh. Chan eil fios aige ciamar a sheallas e grafaigean, chan eil fios aige ciamar a nì e dad. Ach faodaidh e sealltainn na tha a dhìth oirnn: mar eisimpleir, cia mheud sreath a tha sa chlàr, cia mheud àite a bheir e (gun a bhith a’ briseadh sìos gu colbhan), is e sin, is e eadar-aghaidh gu math bunaiteach a tha a dhìth oirnn.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Agus tha e a’ coimhead glè choltach ri Sequel Pro, ach air a dhèanamh a-mhàin air Bootstrap Twitter, agus an dàrna dreach. Bidh thu a’ faighneachd: “Yuri, carson air an dàrna dreach?” Dè a' bhliadhna? 2018? San fharsaingeachd, rinn mi seo o chionn fhada airson “Muscle” (MySQL) agus dìreach dh’ atharraich loidhne no dhà anns na ceistean an sin, agus thòisich e ag obair airson “Clickhouse”, airson sin taing shònraichte! Leis gu bheil am parser glè choltach ris an fhear “fèithean”, agus tha na ceistean glè choltach - gu math goireasach, gu sònraichte an toiseach.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Uill, is urrainn dha clàran a shìoladh, is urrainn dha structar agus susbaint a’ chlàir a nochdadh, leigidh e leat a sheòrsachadh, sìoladh a rèir colbhan, sealltainn a’ cheist a dh’ adhbhraich an toradh, na sreathan air an tug e buaidh (cia mheud mar thoradh), is e sin, an rudan bunaiteach airson coimhead air dàta. Gu math luath.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Tha neach-deasachaidh ann cuideachd. Gu h-onarach dh’ fheuch mi ris an deasaiche gu lèir a ghoid bho Tabix, ach cha b’ urrainn dhomh. Ach dòigh air choireigin tha e ag obair. Ann am prionnsabal, tha sin uile.

Tha "Clickhouse" freagarrach airson dùn

Tha mi airson innse dhut gu bheil Clickhouse, a dh'aindeoin na duilgheadasan a chaidh a mhìneachadh, gu math freagarrach airson logaichean. Nas cudromaiche, bidh e a’ fuasgladh ar duilgheadas - tha e gu math luath agus leigidh e leat logaichean a shìoladh le colbhan. Ann am prionnsabal, chan eil clàran bufair air coileanadh gu math, ach mar as trice chan eil fios aig duine carson... Is dòcha a-nis gu bheil fios agad nas fheàrr càite am bi duilgheadasan agad.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

TCP? San fharsaingeachd, ann an VK tha e àbhaisteach a bhith a 'cleachdadh UDP. Agus nuair a chleachd mi TCP… Gu dearbh, cha do dh’ innis duine dhomh: “Yuri, cò mu dheidhinn a tha thu a’ bruidhinn! Chan urrainn dhut, feumaidh tu UDP." Thionndaidh e a-mach nach eil TCP cho eagallach. Is e an aon rud, ma tha deichean de mhìltean de choimeasgaidhean gnìomhach agad a sgrìobhas tu, feumaidh tu a dheasachadh beagan nas faiceallach; ach tha e comasach, agus gu math furasta.

Gheall mi "Kittenhouse" agus "Lighthouse" a phostadh air HighLoad Siberia nam biodh a h-uile duine a 'fo-sgrìobhadh don "backend VK" poblach againn ... Agus fhios agad, chan eil a h-uile duine a' gabhail pàirt ... poblach. Tha cus dhibh ann fhathast, is dòcha gu bheil cuideigin eadhon oilbheumach, ach fhathast, feuch an dèan thu fo-sgrìobhadh (agus an seo feumaidh mi sùilean a dhèanamh mar an fheadhainn aig cat). Tha sin ceangal ris an t-slighe. Mòran taing dhut! Is ann le Github a tha sinne dhan taobh dheas. Le Clickhouse bidh do fhalt bog agus silidh.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Lead: - A charaidean, a-nis airson ceistean. Dìreach às deidh dhuinn an teisteanas meas agus an aithisg agad air VHS a thaisbeanadh.

Yuri Nasretdinov (air an ainmeachadh an-seo mar YN): – Ciamar a b’ urrainn dhut an aithisg agam air VHS a chlàradh nam biodh e dìreach a’ tighinn gu crìch?

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Lead: - Chan urrainn dhut cuideachd làn cho-dhùnadh ciamar a dh’ obraicheas “Clickhouse” no nach obraich! Caraidean, 5 mionaidean airson ceistean!

Do cheistean

Ceist bhon luchd-èisteachd (air an ainmeachadh an-seo mar Q): - Feasgar math. Mòran taing airson an aithisg. Tha dà cheist agam. Tòisichidh mi le rudeigin suarach: a bheil an àireamh de litrichean t anns an ainm “Kittenhouse” anns na diagraman (3, 4, 7...) a’ toirt buaidh air sàsachadh nan cait?

YN: - Meud dè?

Z: — Litir t. Tha trì t ann, an àiteigin timcheall air trì t.

YN: - Nach do shocraich mi e? Uill, gu dearbh tha! Tha iad sin nan diofar thoraidhean - bha mi dìreach gad mhealladh fad na h-ùine seo. Ceart gu leòr, tha mi a’ magadh - chan eil e gu diofar. Ah, an seo! Chan e, is e an aon rud a th’ ann, rinn mi typo.

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Z: - Tapadh leat. Tha an dàrna ceist trom. Cho fad ‘s a tha mi a’ tuigsinn, ann an Clickhouse, tha clàran bufair beò mar chuimhneachan a-mhàin, chan eil iad air am bufair gu diosc agus, mar sin, chan eil iad seasmhach.

YN: - Tha.

Z: - Agus aig an aon àm, bidh an neach-dèiligidh agad a’ buffers gu diosc, a tha a’ ciallachadh beagan gealltanas gun tèid na h-aon logaichean sin a lìbhrigeadh. Ach chan eil seo idir cinnteach aig Clickhouse. Mìnich mar a tha an gealltanas air a choileanadh, air sgàth dè?.. Seo an dòigh seo nas mionaidiche

YN: - Tha, gu teòiridheach chan eil contrarrachdan an seo, oir nuair a thuiteas Clickhouse, is urrainn dhut a lorg ann am millean dòigh eadar-dhealaichte. Ma thuiteas Clickhouse (ma thig e gu crìch gu ceàrr), faodaidh tu, gu ìre mhòr a’ bruidhinn, beagan den log agad a sgrìobh thu a thoirt air ais agus tòiseachadh bhon mhionaid nuair a bha a h-uile dad ceart gu leòr. Canaidh sinn gun toir thu air ais mionaid, is e sin, thathas den bheachd gu bheil thu air a h-uile càil a shruthladh ann am mionaid.

Z: - Is e sin, tha "Kittenhouse" a 'cumail na h-uinneige nas fhaide agus, air eagal tuiteam, an aithnich e i agus a thoirt air ais?

YN: - Ach tha seo ann an teòiridh. Ann an cleachdadh, cha bhith sinn a’ dèanamh seo, agus tha lìbhrigeadh earbsach bho neoni gu amannan neo-chrìochnach. Ach gu cuibheasach aon. Tha sinn riaraichte ma thuiteas Clickhouse airson adhbhar air choireigin no ma bhios na frithealaichean “ath-thòiseachadh,” gun caill sinn beagan. Anns a h-uile cùis eile, cha tachair dad.

Z: - Halò. Bhon fhìor thoiseach bha e coltach riumsa gum biodh tu gu dearbh a’ cleachdadh UDP bho fhìor thoiseach na h-aithisg. Tha http agad, a h-uile rud ...

YN: - Dè a bhios sinn a’ cleachdadh TCP?

Z: - Gu bunaiteach tha.

YN: - Chan eil.

Z: - B’ ann le fasthttp a bha duilgheadasan agad, leis a’ cheangal a bha duilgheadasan agad. Nam biodh tu dìreach air UDP a chleachdadh bhiodh tu air beagan ùine a shàbhaladh dhut fhèin. Uill, bhiodh trioblaidean ann le teachdaireachdan fada neo rudeigin eile...

YN: - Dè leis?

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Z: – Le teachdaireachdan fada, leis gur dòcha nach eil e a’ freagairt air an MTU, rudeigin eile... Uill, dh’ fhaodadh gum bi duilgheadasan aca fhèin. Is e a’ cheist: carson nach dèan thu UDP?

YN: - Tha mi a’ creidsinn gu bheil na h-ùghdaran a leasaich TCP/IP tòrr nas buige na mise agus gu bheil fios aca nas fheàrr na mise mar a nì iad sreath de phasganan (gus an tèid iad), aig an aon àm atharraich an uinneag cur, gun a bhith a’ luchdachadh cus air an lìonra, a’ toirt seachad fios air ais air dè chan eil e air a leughadh, gun a bhith a’ cunntadh air an taobh eile... Bhiodh na duilgheadasan sin uile, nam bheachd-sa, ann an UDP, dìreach dh’ fheumadh mi eadhon barrachd còd a sgrìobhadh na sgrìobh mi mu thràth airson an aon rud a chuir an gnìomh mi-fhìn agus is dòcha truagh. Cha toil leam sgrìobhadh ann an C idir idir, gun luaidh air an sin...

Z: - Dìreach goireasach! Air a chuir ceart gu leòr agus na bi feitheamh airson dad - tha e gu tur asyncronach. Thàinig fios air ais gun robh a h-uile dad gu math - tha sin a 'ciallachadh gun do ràinig e; Mura tig e, tha e a’ ciallachadh gu bheil e dona.

YN: - Feumaidh mi an dà chuid - feumaidh mi a bhith comasach air an dà chuid a chuir le gealltanas lìbhrigidh agus às aonais gealltanas lìbhrigidh. Is e seo dà shuidheachadh eadar-dhealaichte. Chan fheum mi cuid de logaichean a chall no an call taobh a-staigh adhbhar.

Z: - Cha bhith mi a’ caitheamh ùine. Feumar seo a dheasbad tuilleadh. Tapadh leat.

Lead: - Cò aig a bheil ceistean - làmhan dha na speuran!

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

Z: - Halo, is mise Sasha. An àiteigin ann am meadhan na h-aithisg, nochd faireachdainn, a bharrachd air TCP, gun robh e comasach fuasgladh deiseil a chleachdadh - seòrsa de Kafka.

YN: - Uill... dh’innis mi dhut nach eil mi airson frithealaichean eadar-mheadhanach a chleachdadh, oir... ann an Kafka, tha e coltach gu bheil deich mìle neach-aoigheachd againn; gu dearbh, tha barrachd againn - deichean de mhìltean de luchd-aoigheachd. Faodaidh e a bhith goirt cuideachd a dhèanamh le Kafka gun neach-ionaid sam bith. A bharrachd air an sin, nas cudromaiche, tha e fhathast a’ toirt seachad “latency”, tha e a’ toirt aoigheachd a bharrachd a dh’ fheumas a bhith agad. Ach chan eil mi ag iarraidh gum bi iad - tha mi ag iarraidh...

Z: “Ach aig a’ cheann thall thionndaidh e a-mach mar sin co-dhiù. ”

YN: - Chan e, chan eil luchd-aoigheachd ann! Bidh seo uile ag obair air luchd-aoigheachd Clickhouse.

Z: - Uill, agus "Kittenhouse", a tha air a 'chùl - càit a bheil e a' fuireach?

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

YN: - Air an aoigh Clickhouse, cha bhith e a’ sgrìobhadh dad chun diosc.

Z: — Deanamaid creidsinn.

Lead: - A bheil thu riaraichte? An urrainn dhuinn tuarastal a thoirt dhut?

Z: - Faodaidh, faodaidh tu. Gu dearbh, tha tòrr crutches ann gus an aon rud fhaighinn, agus a-nis - tha am freagairt roimhe air cuspair TCP a 'dol an-aghaidh, nam bheachd-sa, an suidheachadh seo. Tha e dìreach a’ faireachdainn gum faodadh a h-uile càil a bhith air a dhèanamh air mo ghlùinean ann an ùine nas lugha.

YN: - Agus cuideachd carson nach robh mi airson Kafka a chleachdadh, oir bha tòrr ghearanan ann an còmhradh Clickhouse Telegram gun deach, mar eisimpleir, teachdaireachdan bho Kafka a chall. Chan ann bho Kafka fhèin, ach ann an aonachadh Kafka agus Clickhaus; no rudeigin nach do cheangail an sin. Gu ìre mhòr, bhiodh e riatanach teachdaiche a sgrìobhadh airson Kafka an uairsin. Chan eil mi a’ smaoineachadh gum faodadh fuasgladh nas sìmplidhe no nas earbsaiche a bhith ann.

Z: - Inns dhomh, carson nach do dh'fheuch thu ciudha no seòrsa de bhus cumanta? Leis gu bheil thu ag ràdh sin le asyncronaidh dh’ fhaodadh tu na logaichean a chuir tron ​​​​chiudha agus am freagairt fhaighinn gu neo-chunbhalach tron ​​​​chiudha?

HighLoad ++, Yuri Nasretdinov (VKontakte): mar a chuireas VK dàta a-steach do ClickHouse bho dheichean de mhìltean de luchd-frithealaidh

YN: - Feuch an toir thu moladh dè na ciudhaichean a dh’ fhaodadh a bhith air an cleachdadh?

Z: - Sam bith, eadhon às aonais gealltanas gu bheil iad ann an òrdugh. Seòrsa de Redis, RMQ ...

YN: - Tha faireachdainn agam nach bi e comasach dha Redis an leithid de chuir a-steach a tharraing eadhon air aon aoigh (a rèir grunn luchd-frithealaidh) a tharraingeas a-mach Clickhouse. Chan urrainn dhomh seo a chuir air ais le fianais sam bith (chan eil mi air a shlat-tomhais), ach tha e coltach riumsa nach e Redis am fuasgladh as fheàrr an seo. Ann am prionnsapal, faodar beachdachadh air an t-siostam seo mar chiudha teachdaireachd gun ullachadh, ach a tha air a dhealbhadh a-mhàin airson “Clickhouse”

Lead: - Yuri, mòran taing. Tha mi a’ moladh crìoch a chuir air na ceistean agus na freagairtean an seo agus a ràdh cò den fheadhainn a chuir a’ cheist air an toir sinn an leabhar.

YN: - Bu mhath leam leabhar a thoirt don chiad neach a chuir ceist.

Lead: - Sgoinneil! Sgoinneil! Sgoinneil! Taing mhòr!

Cuid de shanasan 🙂

Tapadh leibh airson fuireach còmhla rinn. An toil leat na h-artaigilean againn? A bheil thu airson susbaint nas inntinniche fhaicinn? Thoir taic dhuinn le bhith a’ cur òrdugh no a’ moladh do charaidean, sgòth VPS airson luchd-leasachaidh bho $4.99, analog sònraichte de luchd-frithealaidh ìre inntrigidh, a chaidh a chruthachadh leinn dhut: An fhìrinn gu lèir mu VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps bho $ 19 no ciamar a roinn thu frithealaiche? (ri fhaighinn le RAID1 agus RAID10, suas ri 24 cores agus suas ri 40GB DDR4).

Dell R730xd 2x nas saoire ann an ionad dàta Equinix Tier IV ann an Amsterdam? A-mhàin an seo 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV bho $199 anns an Òlaind! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - bho $99! Leugh mu dheidhinn Ciamar a thogail bun-structair Corp. clas le bhith a’ cleachdadh frithealaichean Dell R730xd E5-2650 v4 luach 9000 iùro airson sgillinn?

Source: www.habr.com

Cuir beachd ann