HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

HighLoad++ Moscow 2018, Majalisa Hall. Nuwamba 9, 15:00

Abstracts da gabatarwa: http://www.highload.ru/moscow/2018/abstracts/4066

Yuri Nasretdinov (VKontakte): rahoton zai yi magana game da kwarewar aiwatar da ClickHouse a cikin kamfaninmu - dalilin da yasa muke buƙatar shi, yawan bayanan da muke adanawa, yadda muke rubuta shi, da sauransu.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Materialsarin kayan: ta amfani da Clickhouse azaman maye gurbin ELK, Big Query da TimecaleDB

Yuri Nasretdinov: - Sannu duka! Sunana Yuri Nasretdinov, kamar yadda aka riga aka gabatar da ni. Ina aiki a VKontakte. Zan yi magana game da yadda muke saka bayanai a cikin ClickHouse daga rundunar sabar mu (dubun dubbai).

Menene katako kuma me yasa ake tattara su?

Abin da za mu gaya muku: abin da muka yi, dalilin da ya sa muke bukatar "ClickHouse", bi da bi, dalilin da ya sa muka zabi shi, wani irin aiki za ka iya kusan samu ba tare da saita wani abu musamman. Zan kara ba ku labarin tebur mai buffer, game da matsalolin da muka samu tare da su da kuma game da hanyoyinmu da muka haɓaka daga buɗaɗɗen tushe - KittenHouse da Lighthouse.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Me yasa muke buƙatar yin komai kwata-kwata (komai yana da kyau koyaushe akan VKontakte, daidai?). Mun so mu tattara rajistan ayyukan gyara kuskure (kuma akwai daruruwan terabyte na bayanai a can), watakila ko ta yaya zai fi dacewa don ƙididdige ƙididdiga; kuma muna da tarin dubun-dubatar sabobin da duk abin da ake buƙatar yin hakan.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Me yasa muka yanke shawara? Wataƙila mun sami mafita don adana gundumomi. Anan - akwai irin wannan jama'a "Backend VK". Ina ba da shawarar sosai don yin rajista da shi.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Menene katako? Wannan injin ne wanda ke dawo da tsararrun fanko. Injuna a cikin VK sune abin da wasu ke kira microservices. Kuma ga alamar murmushi (sosai masu yawa). Ta yaya haka? To, kara saurare!

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Menene za'a iya amfani dashi don adana logs? Ba shi yiwuwa a ambaci Hadup. Sannan, alal misali, Rsyslog (ajiya waɗannan rajistan ayyukan cikin fayiloli). LSD. Wanene ya san menene LSD? A'a, ba wannan LSD ba. Ajiye fayiloli, bi da bi, kuma. To, ClickHouse wani bakon zaɓi ne.

Clickhouse da masu fafatawa: buƙatu da dama

Me muke so? Muna so mu tabbatar da cewa ba za mu damu da yawa game da aikin ba, domin ya yi aiki daga cikin akwatin, zai fi dacewa tare da ƙananan tsari. Muna so mu rubuta da yawa, kuma mu rubuta da sauri. Kuma muna so mu ajiye shi na kowane irin watanni, shekaru, wato, na dogon lokaci. Wataƙila muna so mu fahimci wasu matsalolin da suka zo mana da su kuma suka ce, "Wani abu baya aiki a nan," kuma watanni 3 da suka wuce kenan), kuma muna so mu iya ganin abin da ya faru watanni 3 da suka wuce. Matsakaicin bayanai - a bayyane yake dalilin da yasa zai zama ƙari - saboda yana rage yawan sararin da yake ɗauka.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Kuma muna da irin wannan buƙatu mai ban sha'awa: wani lokaci muna rubuta fitar da wasu umarni (misali, rajistan ayyukan), yana iya zama fiye da 4 kilobytes cikin sauƙi. Kuma idan wannan abu yana aiki akan UDP, to, ba ya buƙatar kashewa ... ba zai sami "sama" don haɗin kai ba, kuma ga yawan adadin sabobin wannan zai zama ƙari.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Bari mu ga abin da bude tushen ke ba mu. Na farko, muna da Injin Logs - wannan injin namu ne; A ka'ida, zai iya yin komai, har ma yana iya rubuta dogon layi. Da kyau, ba ya damfara bayanai a bayyane - za mu iya damfara manyan ginshiƙai idan muna so ... mu, ba shakka, ba ma so (idan zai yiwu). Matsala ɗaya ita ce kawai zai iya ba da abin da ya dace a cikin ƙwaƙwalwarsa; Don karanta sauran, kuna buƙatar samun binlog na wannan injin kuma, saboda haka, yana ɗaukar lokaci mai tsawo.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Wadanne zaɓuɓɓuka kuma akwai? Alal misali, "Hadup". Sauƙin aiki ... Wanene yake tunanin cewa Hadup yana da sauƙin kafa? Tabbas, babu matsaloli tare da rikodi. Lokacin karatu, wasu lokuta tambayoyi suna tasowa. A ka'ida, zan ce mai yiwuwa ba, musamman ga gungumen azaba. Adana na dogon lokaci - ba shakka, i, matsawar bayanai - i, dogon igiyoyi - a bayyane yake cewa zaku iya yin rikodin. Amma rikodi daga babban adadin sabobin ... Har yanzu dole ne ku yi wani abu da kanku!

Rsyslog. A gaskiya ma, mun yi amfani da shi azaman madadin zaɓi don mu iya karanta shi ba tare da zubar da binlog ba, amma ba zai iya rubuta dogon layi ba, bisa manufa, ba zai iya rubuta fiye da kilobytes 4 ba. Dole ne ku yi matsawar bayanai ta hanyar da kanku. Karatu zai fito daga fayiloli.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Sa'an nan kuma akwai ci gaban "badushka" na LSD. Mahimmanci iri ɗaya da "Rsyslog": yana goyan bayan dogon kirtani, amma ba zai iya aiki ta hanyar UDP ba kuma, a gaskiya, saboda wannan, rashin alheri, abubuwa da yawa suna buƙatar sake rubutawa a can. LSD yana buƙatar sake fasalin don samun damar yin rikodi daga dubun-dubatar sabar.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Kuma a nan! Wani zaɓi mai ban dariya shine ElasticSearch. Yadda za a ce? Yana da kyau a cikin karatu, wato yana karantawa da sauri, amma ba sosai da rubutu ba. Na farko, idan ya matsa bayanai, yana da rauni sosai. Mafi mahimmanci, cikakken bincike yana buƙatar mafi girman tsarin bayanai fiye da ƙarar asali. Yana da wuya a yi aiki kuma sau da yawa matsaloli suna tasowa tare da shi. Kuma, sake, rikodi a cikin Elastic - dole ne mu yi duk abin da kanmu.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Anan ClickHouse shine ingantaccen zaɓi, ba shakka. Abinda kawai shine yin rikodin daga dubun dubatar sabar matsala ce. Amma aƙalla akwai matsala ɗaya, za mu iya ƙoƙarin magance ta ko ta yaya. Kuma sauran rahoton na kan wannan matsala. Wane irin aiki za ku iya tsammanin daga ClickHouse?

Ta yaya za mu saka shi? MergeTree

Wanene a cikinku bai ji ko ya san game da "ClickHouse" ba? Ina bukata in gaya muku, ko ba haka ba? Da sauri sosai. Shigarwa a wurin - 1-2 gigabits a sakan daya, fashe har zuwa 10 gigabits a sakan daya na iya jure wa wannan tsari - akwai Xeon mai 6-core guda biyu (wato, ba ma mafi ƙarfi ba), 256 gigabytes na RAM, terabyte 20. a cikin RAID (babu wanda aka saita, saitunan tsoho). Alexey Milovidov, mai haɓaka ClickHouse, mai yiwuwa yana zaune a can yana kuka saboda ba mu saita komai ba (duk abin da ke aiki kamar haka a gare mu). Saboda haka, ana iya samun saurin dubawa na, a ce, kusan layukan biliyan 6 a cikin daƙiƙa guda idan bayanan sun natsu sosai. Idan kuna son % akan layin rubutu - layukan miliyan 100 a sakan daya, wato, yana da sauri sosai.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Ta yaya za mu saka shi? To, kun san cewa VK yana amfani da PHP. Za mu saka daga kowane ma'aikacin PHP ta hanyar HTTP cikin "ClickHouse", a cikin tebur na MergeTree don kowane rikodin. Wanene yake ganin matsala da wannan makirci? Don wasu dalilai, ba kowa ya ɗaga hannu ba. Bari in gaya muku.

Da fari dai, akwai sabobin da yawa - saboda haka, za a sami alaƙa da yawa (mara kyau). Sa'an nan yana da kyau a saka bayanai a cikin MergeTree ba sau da yawa fiye da sau ɗaya a cikin dakika ba. Kuma wa ya san dalilin? Lafiya, lafiya. Zan yi muku bayani kadan game da wannan. Wani tambaya mai ban sha'awa shine cewa ba mu yin nazari ba, ba ma buƙatar wadatar da bayanai, ba mu buƙatar sabar matsakaici, muna so mu saka kai tsaye a cikin "ClickHouse" (zai fi dacewa - mafi kai tsaye, mafi kyau).

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Saboda haka, ta yaya ake sakawa a cikin MergeTree? Me yasa zai fi kyau a saka a ciki ba sau da yawa fiye da sau ɗaya a cikin daƙiƙa ko ƙasa da yawa ba? Gaskiyar ita ce, "ClickHouse" wani rumbun adana bayanai ne kuma yana jera bayanan a tsarin hawan farko na maɓalli na farko, kuma idan kun yi abin da aka saka, ana ƙirƙiri adadin fayiloli aƙalla daidai da adadin ginshiƙan da aka jera bayanan a ciki. a cikin tsari mai hawa na maɓalli na farko (an ƙirƙiri wani kundin adireshi daban, saitin fayiloli akan faifai don kowane sakawa). Sa'an nan shigarwa na gaba ya zo, kuma a baya an haɗa su zuwa manyan "bangare". Tun da an jera bayanan, yana yiwuwa a “haɗa” fayiloli guda biyu da aka jera ba tare da cinye ƙwaƙwalwar ajiya da yawa ba.

Amma, kamar yadda zaku iya tsammani, idan kun rubuta fayiloli 10 don kowane sakawa, to ClickHouse (ko uwar garken ku) zai ƙare da sauri, don haka ana ba da shawarar saka a cikin manyan batches. Saboda haka, ba mu taɓa ƙaddamar da tsarin farko don samarwa ba. Nan take muka kaddamar da daya, wanda a nan lamba 2 ke da:

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Anan tunanin cewa akwai kusan sabobin dubu da muka kaddamar a kansu, akwai PHP kawai. Kuma akan kowace uwar garken akwai wakilin mu na gida, wanda muke kira "Kittenhouse", wanda ke kula da haɗin gwiwa guda ɗaya tare da "ClickHouse" kuma yana saka bayanai kowane 'yan daƙiƙa. Saka bayanai ba cikin MergeTree ba, amma a cikin tebur mai ɗaukar hoto, wanda ke aiki daidai don guje wa saka kai tsaye cikin MergeTree nan take.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Aiki tare da buffer tables

Menene shi? Teburan buffer wani yanki ne na ƙwaƙwalwar ajiya da aka shaƙe (wato ana iya saka shi akai-akai). Sun ƙunshi nau'i-nau'i da yawa, kuma kowane ɗayan yana aiki a matsayin mai zaman kansa mai zaman kansa, kuma an wanke su da kansa (idan kuna da nau'i-nau'i masu yawa a cikin buffer, to, za a sami yawancin shigarwa a cikin dakika). Yana yiwuwa a karanta daga waɗannan tebur - sannan ku karanta ƙungiyar abubuwan da ke ciki na buffer da tebur na iyaye, amma a wannan lokacin an katange rubutun, don haka yana da kyau kada ku karanta daga can. Kuma tebur na buffer yana nuna QPS mai kyau sosai, wato, har zuwa QPS dubu 3 ba za ku sami matsala kwata-kwata yayin sakawa ba. A bayyane yake cewa idan uwar garken ya rasa iko, to za a iya rasa bayanan, saboda an adana shi ne kawai a cikin ƙwaƙwalwar ajiya.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

A lokaci guda, makirci tare da buffer yana rikitarwa ALTER, saboda da farko kuna buƙatar sauke tsohon buffer tebur tare da tsohon makirci (bayanan ba za su ɓace a ko'ina ba, saboda za a zubar da shi kafin a share teburin). Sa'an nan kuma ku "canza" teburin da kuke buƙata kuma ku sake ƙirƙiri teburin buffer. Saboda haka, yayin da babu tebur mai ɗaukar hoto, bayanan ku ba za su gudana a ko'ina ba, amma kuna iya samun su akan faifai aƙalla a cikin gida.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Menene Kittenhouse kuma ta yaya yake aiki?

Menene KittenHouse? Wannan wakili ne. Yi tsammani wane harshe? Na tattara mafi yawan jigogi a cikin rahotona - "Clickhouse", Go, watakila zan tuna wani abu dabam. Ee, an rubuta wannan a cikin Go, saboda ban san ainihin yadda ake rubutu a C ba, ba na so.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Saboda haka, yana kiyaye haɗi tare da kowane uwar garken kuma yana iya rubuta zuwa ƙwaƙwalwar ajiya. Alal misali, idan muka rubuta kuskure rajistan ayyukan zuwa Clickhouse, to, idan Clickhouse ba shi da lokaci don saka bayanai (bayan, idan da yawa da aka rubuta), sa'an nan ba mu kara da memory - mu kawai jefa fitar da sauran. Domin idan muka rubuta gigabits da yawa a cikin dakika na kurakurai, to tabbas za mu iya jefa wasu daga waje. Kittenhouse na iya yin wannan. Bugu da ƙari, yana iya yin isar da abin dogaro, wato, rubutawa zuwa faifai akan injin gida kuma sau ɗaya kowane lokaci (a can, sau ɗaya kowane daƙiƙa biyu) yana ƙoƙarin isar da bayanai daga wannan fayil ɗin. Kuma da farko mun yi amfani da tsarin dabi'u na yau da kullun - ba wasu tsarin binary ba, tsarin rubutu (kamar yadda yake cikin SQL na yau da kullun).

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Amma sai wannan ya faru. Mun yi amfani da ingantaccen bayarwa, rubuta rajistan ayyukan, sa'an nan yanke shawarar (yana da wani sharadi gwargwado cluster) ... An fitar da shi na sa'o'i da yawa da kuma dawo da baya, da kuma shigar da aka fara daga dubu sabobin - shi ya zama cewa Clickhouse har yanzu yana da "Thread on Connection" - saboda haka, a cikin dubunnan haɗin gwiwa, shigarwa mai aiki yana kaiwa ga matsakaicin nauyi akan uwar garken kusan dubu ɗaya da rabi. Abin mamaki, uwar garken ya karɓi buƙatun, amma har yanzu an saka bayanan bayan ɗan lokaci; amma yana da matukar wahala uwar garken ta yi masa hidima...

Ƙara nginx

Irin wannan mafita don Zaren kowane samfurin haɗin kai shine nginx. Mun shigar da nginx a gaban Clickhouse, a lokaci guda kuma saita daidaitawa don kwafi biyu (saurin saurin mu ya karu da sau 2, kodayake ba gaskiya bane cewa ya kamata hakan ya kasance) kuma yana iyakance adadin haɗin kai zuwa Clickhouse, zuwa sama kuma, bisa ga haka, fiye da , fiye da a cikin haɗin kai 50, da alama babu ma'ana a sakawa.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Sa'an nan kuma muka gane cewa wannan makirci gabaɗaya yana da rashin amfani, saboda muna da nginx ɗaya kawai a nan. Saboda haka, idan wannan nginx ya fadi, duk da kasancewar kwafi, muna rasa bayanai ko, aƙalla, ba mu rubuta ko'ina ba. Shi ya sa muka yi namu daidaita lodi. Mun kuma gane cewa "Clickhouse" ne har yanzu dace da rajistan ayyukan, da kuma "aljani" kuma ya fara rubuta rajistan ayyukan a "Clickhouse" - sosai dace, gaskiya. Har yanzu muna amfani da shi don wasu "aljanu".

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Sa'an nan kuma mun gano wannan matsala mai ban sha'awa: idan kun yi amfani da hanyar da ba daidai ba ta hanyar sakawa a cikin yanayin SQL, yana tilasta cikakken SQL na tushen AST, wanda ke da hankali. Saboda haka, mun ƙara saituna don tabbatar da cewa hakan bai taɓa faruwa ba. Mun yi nauyin daidaitawa, duba lafiyar jiki, ta yadda idan mutum ya mutu, har yanzu muna barin bayanan. Yanzu muna da tebur da yawa waɗanda muke buƙatar samun gungu na Clickhouse daban-daban. Kuma mun fara tunanin wasu amfani - alal misali, muna so mu rubuta rajistan ayyukan daga nginx modules, amma ba su san yadda ake sadarwa ta amfani da RPC ɗinmu ba. Da kyau, Ina so in koya musu yadda ake aika aƙalla ko ta yaya - alal misali, don karɓar abubuwan da suka faru akan localhost ta UDP sannan a tura su zuwa Clickhouse.

Mataki daya nesa da mafita

Tsarin ƙarshe ya fara kama da wannan (nau'i na huɗu na wannan makirci): akan kowane uwar garken da ke gaban Clickhouse akwai nginx (a kan sabar guda ɗaya) kuma kawai yana ba da buƙatun buƙatun zuwa localhost tare da iyaka akan adadin haɗin 50. guda. Kuma wannan makirci ya riga ya yi aiki sosai, komai yana da kyau tare da shi.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Mun yi rayuwa kamar haka tsawon wata guda. Kowa ya yi farin ciki, sun kara teburi, sun kara, sun kara ... Gabaɗaya, ya zama cewa hanyar da muka ƙara buffer tables ba shi da kyau sosai (bari mu sanya shi haka). Mun yi guda 16 a kowane tebur da tazarar filasha na daƙiƙa biyu; muna da teburi 20 kuma kowane tebur ya karɓi abubuwan sakawa 8 a sakan daya - kuma a wannan lokacin “Clickhouse” ya fara ... bayanan sun fara raguwa. Ba su ma shiga ba ... Nginx ta tsohuwa yana da irin wannan abu mai ban sha'awa wanda idan haɗin ya ƙare a sama, to kawai ya mayar da "502" zuwa duk sababbin buƙatun.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Kuma a nan muna da (Na kalli rajistan ayyukan a Clickhouse kanta) kusan rabin kashi na buƙatun sun kasa. Sabili da haka, amfani da faifai ya yi girma, akwai haɗuwa da yawa. To, me na yi? A dabi'a, ban damu ba don gano dalilin da yasa ainihin haɗin gwiwa da haɓakawa ya ƙare.

Maye gurbin nginx tare da wakili na baya

Na yanke shawarar cewa muna buƙatar sarrafa wannan da kanmu, ba ma buƙatar barin shi zuwa nginx - nginx bai san menene tebur ɗin da ke cikin Clickhouse ba, kuma na maye gurbin nginx tare da wakili na baya, wanda ni ma na rubuta kaina.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Me yake yi? Yana aiki akan ɗakin karatu na fasthttp "goshnoy", wato, sauri, kusan da sauri kamar nginx. Yi haƙuri, Igor, idan kuna nan (bayanin kula: Igor Sysoev masanin shirye-shirye ne na Rasha wanda ya ƙirƙiri sabar gidan yanar gizo na nginx). Zai iya fahimtar waɗanne irin tambayoyin waɗannan su ne - INSERT ko SELECT - don haka, yana riƙe da wuraren haɗawa daban-daban don nau'ikan tambayoyi daban-daban.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Saboda haka, ko da ba mu da lokaci don kammala buƙatun shigarwa, "zaɓi" za su wuce, kuma akasin haka. Kuma yana tattara bayanan cikin teburan buffer - tare da ƙaramin buffer: idan akwai wasu kurakurai, kurakuran syntax, da sauransu - ta yadda ba za su yi tasiri sosai ga sauran bayanan ba, saboda lokacin da kawai muka shigar da su cikin tebur ɗin buffer, mu yana da ƙananan "bachi", kuma duk kurakuran syntax sun shafi wannan ƙaramin yanki ne kawai; kuma a nan za su riga sun shafi babban buffer. Karami shine megabyte 1, wato, ba karami ba.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Shigar da aiki tare da ainihin maye gurbin nginx, yana yin ainihin abin da nginx yayi a baya - ba kwa buƙatar canza "Kittenhouse" na gida don wannan. Kuma tunda yana amfani da fasthttp, yana da sauri sosai - zaku iya yin buƙatun sama da dubu 100 a sakan daya don shigarwa guda ɗaya ta hanyar wakili na baya. A ka'ida, zaku iya shigar da layi ɗaya a lokaci ɗaya cikin wakili na baya na kittenhouse, amma ba shakka ba ma yin hakan.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Makircin ya fara kama da haka: "Kittenhouse", ƙungiyoyin wakilai da yawa suna buƙatar buƙatun a cikin tebur kuma, bi da bi, teburin buffer sun saka su cikin manyan.

Killer mafita ce ta wucin gadi, Kitten na dindindin

Wannan matsala ce mai ban sha'awa... Shin ɗayanku ya yi amfani da fasthttp? Wanene yayi amfani da fasthttp tare da buƙatun POST? Wataƙila, da gaske bai kamata a yi wannan ba, saboda yana adana jikin buƙatun ta tsohuwa, kuma an saita girman buffer ɗin mu zuwa megabyte 16. Shigar ya daina kiyayewa a wani lokaci, kuma chunks 16-megabyte sun fara isowa daga duk dubun-dubatar sabobin, kuma duk an adana su cikin ƙwaƙwalwar ajiya kafin a tura su zuwa Clickhouse. Saboda haka, ƙwaƙwalwar ajiyar ta ƙare, Killer Out-Of-Memory ya zo ya kashe wakili na baya (ko "Clickhouse", wanda zai iya "ci" fiye da wakili na baya). Zagayowar ta maimaita kanta. Ba matsala mai dadi sosai. Ko da yake mun yi tuntuɓe a kan hakan ne kawai bayan watanni da yawa na aiki.

Me na yi? Har ila yau, ba na son fahimtar ainihin abin da ya faru. Ina tsammanin yana da kyau a bayyane cewa bai kamata ku sanya ƙwaƙwalwar ajiya ba. Ba zan iya facin fasthttp ba, kodayake na yi kokari. Amma na sami hanyar yin shi ta yadda ba a buƙatar facin wani abu, kuma na fito da hanyara ta HTTP - na kira shi KITTEN. To, yana da ma'ana - "VK", "Kitten" ... Menene kuma?

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Idan bukata ta zo ga uwar garken tare da hanyar Kitten, sabar ya kamata ya amsa "meow" - a hankali. Idan ya amsa wannan, ana la'akari da cewa ya fahimci wannan ka'ida, sa'an nan kuma na shiga cikin haɗin (fasthttp yana da irin wannan hanya), kuma haɗin yana shiga cikin yanayin "raw". Me yasa nake bukata? Ina so in sarrafa yadda karatu daga haɗin TCP ke faruwa. TCP yana da dukiya mai ban sha'awa: idan babu wanda ke karantawa daga wancan gefe, to rubutun ya fara jira, kuma ba a kashe ƙwaƙwalwar musamman akan wannan ba.

Sabili da haka na karanta daga kusan abokan ciniki 50 a lokaci guda (daga hamsin saboda hamsin ya kamata ya isa ya isa, koda kuwa adadin ya zo daga wani DC) ... Amfani ya ragu tare da wannan tsarin akalla sau 20, amma ni, a gaskiya. , Ba zan iya auna daidai lokacin ba, saboda ya riga ya zama marar amfani (ya riga ya kai matakin kuskure). Ka'idar binary ce, wato, tana ɗauke da sunan tebur da bayanai; babu masu rubutun http, don haka ban yi amfani da soket ɗin gidan yanar gizo ba (bana buƙatar sadarwa tare da masu bincike - na yi yarjejeniya da ta dace da bukatunmu). Kuma komai ya zama lafiya tare da shi.

Teburin buffer yana bakin ciki

Kwanan nan mun ci karo da wani fasali mai ban sha'awa na tebur mai buffer. Kuma wannan matsalar ta riga ta fi sauran zafi. Bari mu yi tunanin wannan halin da ake ciki: kun riga kun fara amfani da Clickhouse, kuna da yawancin sabobin Clickhouse, kuma kuna da wasu buƙatun da suke ɗaukar lokaci mai tsawo don karantawa (bari mu ce, fiye da 60 seconds); Kuma ka zo ka yi Alter a wannan lokacin... A halin yanzu, "zaɓi" da aka fara kafin "Alter" ba za a saka shi a cikin wannan tebur ba, "Alter" ba zai fara ba - watakila wasu siffofi na yadda "Clickhouse" ke aiki a ciki. wannan wuri. Wataƙila wannan za a iya gyarawa? Ko kuwa ba zai yiwu ba?

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Gabaɗaya, a bayyane yake cewa a gaskiya wannan ba babbar matsala ba ce, amma tare da tebur mai ɗaukar hoto ya zama mai raɗaɗi. Domin, idan, bari mu ce, “Alter” ɗinku ya ƙare (kuma yana iya ƙarewa akan wani mai masaukin baki - ba akan naku ba, amma akan kwafi, alal misali), to... Kun goge teburin buffer, “Alter” naku ( ko wani mai masaukin baki) ya ƙare, sannan an sami kuskuren “Alter”) - har yanzu kuna buƙatar tabbatar da cewa an ci gaba da rubuta bayanan: kun ƙirƙiri tebur ɗin buffer baya (bisa ga makirci ɗaya da tebur na iyaye), sannan "Canjin" yana wucewa, ya ƙare bayan duk, kuma madaidaicin tebur ya fara bambanta da tsari daga iyaye. Ya danganta da abin da “Alter” yake, abin da aka saka zai iya daina zuwa wannan tebur mai ɗaukar hoto - wannan abin bakin ciki ne.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Hakanan akwai irin wannan alamar (wataƙila wani ya lura da ita) - ana kiranta query_thread_log a cikin sabbin nau'ikan Clickhouse. Ta hanyar tsoho, a wasu sigar akwai ɗaya. A nan mun tara bayanan miliyan 840 a cikin watanni biyu (gigabytes 100). Wannan shi ne saboda gaskiyar cewa an rubuta "saka" a can (watakila yanzu, ta hanyar, ba a rubuta su ba). Kamar yadda na gaya muku, “mafifi” ɗinmu ƙanana ne – muna da “saka” da yawa a cikin teburan buffer. A bayyane yake cewa wannan naƙasasshe ne - Ina gaya muku abin da na gani akan sabar mu. Me yasa? Wannan wata hujja ce ta yin amfani da teburin buffer! Spotty yana baƙin ciki sosai.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Wanene ya san cewa sunan wannan mutumin Spotty? Ma'aikatan VK sun daga hannu. KO.

Game da tsare-tsaren "KitttenHouse"

Yawancin tsare-tsare ba a raba su, daidai? Nan da nan ba za ku cika su ba kuma ba za ku yi kyau sosai a idanun sauran mutane ba. Amma zan dauki kasada! Muna son yin abubuwa masu zuwa: Teburan buffer, ga alama a gare ni, har yanzu sun kasance maƙasudi kuma muna buƙatar musanya shigar da kanmu. Amma har yanzu ba ma so mu ajiye shi akan faifai, don haka za mu ajiye abin da aka saka a ƙwaƙwalwar ajiya.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Saboda haka, lokacin da aka yi "saka", ba za ta kasance tare da juna ba - zai riga ya yi aiki a matsayin tebur mai buffer, za a saka shi a cikin tebur na iyaye (da kyau, wata rana daga baya) kuma ya ba da rahoto ta hanyar tashar daban wanda abubuwan da aka shigar sun wuce kuma wanda ya wuce. ba su.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Me ya sa ba zan iya barin abin da aka saka ba? Ya fi dacewa. Gaskiyar ita ce, idan kun saka daga runduna dubu 10, to komai yana da kyau - za ku sami ɗan kaɗan daga kowane mai masaukin baki, kun saka a can sau ɗaya a cikin daƙiƙa, komai yana da kyau. Amma ina son wannan makirci ya yi aiki, misali, daga inji guda biyu, don ku iya saukewa da sauri - watakila ba za ku sami matsakaicin daga Clickhouse ba, amma rubuta akalla megabyte 100 a sakan daya daga na'ura guda ta hanyar wakili na baya - wannan dole ne tsarin ya daidaita zuwa babba da ƙanana, don haka ba za mu iya jira na daƙiƙa don kowace shigarwa ba, don haka dole ne ya kasance asynchronous. Hakanan kuma, tabbatar da asynchronous yakamata ya zo bayan an gama shigarwa. Za mu sani ko ya wuce ko a'a.

Abu mafi mahimmanci shi ne cewa a cikin wannan makirci mun san tabbas ko shigarwar ta faru ko a'a. Ka yi tunanin wannan halin da ake ciki: kana da tebur mai buffer, ka rubuta wani abu a ciki, sa'an nan kuma, bari mu ce, tebur ya shiga cikin yanayin karantawa kawai kuma yayi ƙoƙari ya zubar da buffer. Ina bayanan za su je? Za su kasance a cikin buffer. Amma ba za mu iya tabbatar da wannan ba - menene idan akwai wasu kuskure, saboda abin da bayanan ba zai kasance a cikin buffer ba ... Koyaushe? Alexey ya tabbatar mana cewa komai zai yi kyau. Ba mu da dalilin da zai hana mu gaskata shi. Amma duk iri ɗaya: idan ba mu yi amfani da tebur na buffer ba, to ba za a sami matsala tare da su ba. Ƙirƙirar tebur mai yawa sau biyu kuma ba shi da kyau, kodayake a ka'ida babu manyan matsaloli. Wannan shi ne shirin.

Mu yi maganar karatu

Yanzu bari muyi magana game da karatu. Mun kuma rubuta namu kayan aikin a nan. Zai yi kama, da kyau, me yasa za ku rubuta kayan aikin ku a nan?.. Kuma wa ya yi amfani da Tabix? Ko ta yaya mutane kaɗan ne suka ɗaga hannayensu... Kuma wa ya gamsu da aikin Tabix? To, ba mu yi farin ciki da shi ba, kuma bai dace sosai don duba bayanai ba. Yana da kyau don nazari, amma don kallo kawai ba a inganta shi ba. Don haka na rubuta nawa, abin dubawa na.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Abu ne mai sauqi qwarai - yana iya karanta bayanai kawai. Bai san yadda ake nuna hotuna ba, bai san yadda ake yin komai ba. Amma yana iya nuna abin da muke bukata: alal misali, layuka nawa ne a cikin tebur, nawa sararin samaniya yake ɗauka (ba tare da karya shi cikin ginshiƙai ba), wato, ainihin mahimmin hanyar sadarwa shine abin da muke bukata.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Kuma yayi kama da Sequel Pro, amma an yi shi akan Bootstrap na Twitter, da sigar ta biyu. Kuna tambaya: "Yuri, me yasa akan sigar ta biyu?" Wace shekara? 2018? Gabaɗaya, na yi wannan da daɗewa don "Muscle" (MySQL) kuma kawai canza layi biyu a cikin tambayoyin da ke can, kuma ya fara aiki don "Clickhouse", wanda godiya ta musamman! Domin parser yayi kama da na "tsoka", kuma tambayoyin suna kama da juna - dacewa sosai, musamman a farkon.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Da kyau, yana iya tace tebur, yana iya nuna tsari da abubuwan da ke cikin tebur, yana ba ku damar tsarawa, tace ta ginshiƙai, yana nuna tambayar da ta haifar da sakamakon, layuka nawa da ya shafa (a sakamakon haka), wato, muhimman abubuwa don duba bayanai. Da sauri sosai.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Akwai kuma edita. A gaskiya na yi ƙoƙarin sata dukan editan daga Tabix, amma na kasa. Amma ko ta yaya yana aiki. A ka'ida, shi ke nan.

"Clickhouse" ya dace da ramummuka

Ina so in gaya muku cewa Clickhouse, duk da matsalolin da aka bayyana, ya dace sosai don rajistan ayyukan. Mafi mahimmanci, yana magance matsalarmu - yana da sauri sosai kuma yana ba ku damar tace rajistan ayyukan ta ginshiƙai. A ka'ida, tebur buffer ba su yi kyau ba, amma yawanci ba wanda ya san dalilin da yasa ... Wataƙila yanzu kun san mafi kyau inda za ku sami matsala.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

TCP? Gabaɗaya, a cikin VK al'ada ce don amfani da UDP. Kuma lokacin da na yi amfani da TCP ... Tabbas, babu wanda ya gaya mani: "Yuri, me kake magana akai! Ba za ku iya ba, kuna buƙatar UDP. " Ya juya cewa TCP ba shi da ban tsoro. Abinda kawai shine, idan kuna da dubun dubatar abubuwan da kuka rubuta, kuna buƙatar shirya shi kaɗan a hankali; amma yana yiwuwa, kuma quite sauki.

Na yi alkawarin buga "Kittenhouse" da "Lighthouse" a kan HighLoad Siberiya idan kowa ya yi rajista zuwa ga jama'a "VK backend" jama'a. Har yanzu akwai da yawa daga cikinku, wani ma yana iya jin haushi, amma duk da haka, don Allah ku yi rajista (kuma a nan dole ne in sanya idanu kamar na cat). Shi ke nan danganta shi ta hanyar. Na gode sosai! Github namu ne dama a nan. Tare da Clickhouse gashin ku zai kasance mai laushi da siliki.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Jagora: - Abokai, yanzu don tambayoyi. Nan da nan bayan mun gabatar da takardar shaidar godiya da rahoton ku akan VHS.

Yuri Nasretdinov (wanda ake kira YN): - Ta yaya kuka sami damar yin rikodin rahotona akan VHS idan ya ƙare?

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Jagora: - Hakanan ba za ku iya cikakken tantance yadda "Clickhouse" zai yi aiki ko a'a ba! Abokai, mintuna 5 don tambayoyi!

Tambayoyi

Tambaya daga masu sauraro (nan gaba ana kiranta Q): - Barka da yamma. Na gode sosai da rahoton. Ina da tambayoyi guda biyu. Zan fara da wani abu mai banƙyama: shin adadin haruffa t a cikin sunan "Kittenhouse" a cikin zane-zane (3, 4, 7 ...) yana shafar gamsuwar kuliyoyi?

YN: - Yawan me?

Z: – Harafi t. Akwai t's uku, wani wuri kusa da t's uku.

YN: - Ban gyara ba? To, ba shakka yana yi! Waɗannan samfuran daban-daban - yaudarar ku kawai nake yi duk tsawon wannan lokacin. To, ina wasa - ba kome. Ah, a nan! A'a, abu ɗaya ne, na yi typo.

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Z: - Na gode. Tambaya ta biyu mai tsanani ce. Kamar yadda na fahimta, a cikin Clickhouse, tebur na buffer suna rayuwa ne kawai a cikin ƙwaƙwalwar ajiya, ba a ɓoye su zuwa faifai kuma, saboda haka, ba su dagewa.

YN: - Da.

Z: - Kuma a lokaci guda, abokin ciniki yana buffer zuwa diski, wanda ke nuna wasu garantin isar da waɗannan rajistan ayyukan. Amma wannan ba tabbas ba ne a Clickhouse. Bayyana yadda ake aiwatar da garantin, saboda menene?... Ga wannan tsarin dalla-dalla

YN: - Ee, a ka'idar babu sabani a nan, saboda lokacin da Clickhouse ya faɗi, zaku iya gano shi ta hanyoyi daban-daban miliyan. Idan Clickhouse ya fado (idan ya ƙare ba daidai ba), zaku iya, kusan magana, mayar da ɗan log ɗin ku da kuka rubuta kuma fara daga lokacin da komai yayi daidai. Bari mu ce ka mayar da minti daya, wato, ana ganin cewa ka zubar da komai a cikin minti daya.

Z: - Wato "Kittenhouse" yana riƙe da taga tsawon lokaci kuma, idan ya fadi, zai iya gane shi kuma ya mayar da shi?

YN: - Amma wannan yana cikin ka'idar. A aikace, ba ma yin wannan, kuma isar da abin dogara yana daga sifili zuwa lokuta marasa iyaka. Amma a matsakaita daya. Mun gamsu cewa idan Clickhouse ya fadi saboda wasu dalilai ko sabobin "sake yi," to mun rasa kadan. A duk sauran lokuta, babu abin da zai faru.

Z: - Sannu. Tun da farko na ga kamar za ku yi amfani da UDP tun farkon rahoton. Kuna da http, duk waɗannan ... Kuma yawancin matsalolin da kuka bayyana, kamar yadda na fahimta, sun samo asali ne ta hanyar wannan maganin musamman ...

YN: - Menene muke amfani da TCP?

Z: - Mahimmanci eh.

YN: - A'a.

Z: – Ya kasance tare da fasthttp cewa kuna da matsaloli, tare da haɗin gwiwa kuna da matsaloli. Idan da yanzu kuna amfani da UDP da kun ceci kanku na ɗan lokaci. To, za a sami matsaloli tare da dogayen saƙonni ko wani abu dabam...

YN: - Da me?

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Z: - Tare da dogayen saƙonni, tun da bazai dace da MTU ba, wani abu dabam ... To, za'a iya samun matsalolin nasu. Tambayar ita ce: me yasa ba UDP ba?

YN: - Na yi imani cewa marubutan da suka haɓaka TCP / IP sun fi ni hankali kuma sun fi ni sanin yadda ake tsara fakiti (domin su tafi), a lokaci guda daidaita taga aikawa, ba yin obalodi na hanyar sadarwa ba, ba da amsa akan abin da ba a karanta ba, ba a lissafta a gefe guda ba ... Duk waɗannan matsalolin, a ganina, za su kasance a cikin UDP, kawai zan rubuta har ma fiye da lambar da na riga na rubuta don aiwatar da abu ɗaya da kaina kuma mafi mahimmanci. rashin kyau. Ba na ma son rubutu a C, balle a can...

Z: - Kawai dace! An aika ok kuma kar a jira wani abu - gaba daya asynchronous. Sanarwar ta dawo cewa komai yana da kyau - ma'ana ya isa; Idan bai zo ba, yana nufin yana da kyau.

YN: - Ina buƙatar duka biyu - Ina buƙatar samun damar aika duka biyu tare da garantin bayarwa kuma ba tare da garantin bayarwa ba. Waɗannan yanayi ne daban-daban guda biyu. Ina bukatan kada in rasa wasu rajistan ayyukan ko kar in rasa su cikin dalili.

Z: – Ba zan ɓata lokaci ba. Wannan yana buƙatar ƙarin tattaunawa. Na gode.

Jagora: - Wanene yana da tambayoyi - hannu zuwa sama!

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

Z: - Sannu, Ni Sasha. Wani wuri a tsakiyar rahoton, jin dadi ya bayyana cewa, ban da TCP, yana yiwuwa a yi amfani da shirye-shiryen da aka shirya - wani nau'i na Kafka.

YN: - To ... Na gaya muku cewa ba na so in yi amfani da sabar matsakaici, saboda ... a cikin Kafka, ya zama cewa muna da runduna dubu goma; a gaskiya, muna da ƙarin - dubun dubatar runduna. Hakanan yana iya zama mai raɗaɗi a yi da Kafka ba tare da wani wakili ba. Bugu da ƙari, mafi mahimmanci, har yanzu yana ba da "latency", yana ba da ƙarin runduna da kuke buƙatar samun. Amma ba na son samun su - ina so ...

Z: "Amma a ƙarshe ya zama haka."

YN: – A’a, babu runduna! Wannan duk yana aiki akan runduna Clickhouse.

Z: - To, da kuma "Kittenhouse", wanda shine baya - a ina yake rayuwa?

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

YN: - A kan mai watsa shiri na Clickhouse, ba ya rubuta wani abu zuwa faifai.

Z: - Bari mu dauka.

Jagora: – Kun gamsu? Za mu iya ba ku albashi?

Z: - E, za ka iya. A gaskiya ma, akwai nau'i-nau'i masu yawa don samun abu ɗaya, kuma yanzu - amsar da ta gabata game da batun TCP ya saba wa, a ganina, wannan halin. Ina jin kamar an yi komai a kan gwiwoyi na cikin ɗan lokaci kaɗan.

YN: - Har ila yau, dalilin da ya sa ba na so in yi amfani da Kafka, saboda akwai korafe-korafe da yawa a cikin taɗi na Clickhouse Telegram cewa, alal misali, saƙonni daga Kafka sun ɓace. Ba daga Kafka kanta ba, amma a cikin haɗin kai na Kafka da Clickhaus; ko wani abu bai haɗa a can ba. Kusan magana, zai zama dole a rubuta abokin ciniki don Kafka sannan. Ba na tsammanin za a iya samun mafita mafi sauƙi ko abin dogaro.

Z: – Faɗa mini, me ya sa ba ku gwada kowane layi ko wani nau'in bas na gama gari ba? Tun da ka ce tare da asynchrony za ka iya aika rajistan ayyukan da kansu ta cikin jerin gwano da karɓar amsa asynchronously ta cikin jerin gwano?

HighLoad ++, Yuri Nasretdinov (VKontakte): yadda VK ke saka bayanai a cikin ClickHouse daga dubun dubatar sabar

YN: – Da fatan za a ba da shawarar wadanne layukan da za a iya amfani da su?

Z: - Duk, ko da ba tare da garantin cewa suna cikin tsari ba. Wani irin Redis, RMQ...

YN: - Ina jin cewa Redis mai yiwuwa ba zai iya cire irin wannan ƙarar shigarwa ba ko da a kan runduna ɗaya (a cikin ma'anar sabobin da yawa) wanda ke fitar da Clickhouse. Ba zan iya goyan bayan wannan tare da kowace shaida ba (ban ƙididdige shi ba), amma da alama a gare ni cewa Redis ba shine mafi kyawun mafita a nan ba. A ka'ida, ana iya ɗaukar wannan tsarin azaman ingantacciyar layin saƙo, amma wanda aka keɓance kawai don "Clickhouse"

Jagora: – Yuri, na gode sosai. Ina ba da shawara a kawo karshen tambayoyi da amsoshi a nan kuma in ce a cikin wadanda suka yi tambaya za mu ba wa littafin.

YN: – Ina so in ba da littafi ga mutum na farko da ya yi tambaya.

Jagora: - Abin al'ajabi! Mai girma! Abin ban mamaki! Godiya da yawa!

Wasu tallace-tallace 🙂

Na gode da kasancewa tare da mu. Kuna son labaran mu? Kuna son ganin ƙarin abun ciki mai ban sha'awa? Goyon bayan mu ta hanyar ba da oda ko ba da shawara ga abokai, girgije VPS don masu haɓakawa daga $ 4.99, analog na musamman na sabar matakin shigarwa, wanda mu muka ƙirƙira muku: Duk gaskiyar game da VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps daga $19 ko yadda ake raba sabar? (akwai tare da RAID1 da RAID10, har zuwa 24 cores kuma har zuwa 40GB DDR4).

Dell R730xd 2x mai rahusa a cibiyar bayanan Equinix Tier IV a Amsterdam? Nan kawai 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV daga $199 a cikin Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - daga $99! Karanta game da Yadda ake gina Infrastructure Corp. aji tare da amfani da sabar Dell R730xd E5-2650 v4 masu darajan Yuro 9000 akan dinari?

source: www.habr.com

Add a comment