HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

HighLoad++ Moskau 2018, Congress Hall. 9. November, 15:00

Abstracts a Presentatioun: http://www.highload.ru/moscow/2018/abstracts/4066

Yuri Nasretdinov (VKontakte): de Bericht wäert iwwer d'Erfahrung vun der Ëmsetzung vun ClickHouse an eiser Gesellschaft schwätzen - firwat mir et brauchen, wéi vill Daten mir späicheren, wéi mir et schreiwen, an sou weider.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Zousätzlech Material: benotzt Clickhouse als Ersatz fir ELK, Big Query an TimescaleDB

Yuri Nasretdinov: - Moien alleguer! Mäin Numm ass Yuri Nasretdinov, wéi ech scho virgestallt ginn. Ech schaffen op VKontakte. Ech wäert schwätzen iwwer wéi mir Daten an ClickHouse vun eiser Serverflott aginn (Zéngdausende).

Wat sinn Logbicher a firwat se sammelen?

Wat mir Iech soen: wat mir gemaach hunn, firwat mir "ClickHouse" gebraucht hunn, respektiv firwat mir et gewielt hunn, wéi eng Leeschtung Dir ongeféier kritt ouni eppes speziell ze konfiguréieren. Ech soen Iech weider iwwer Puffertabellen, iwwer d'Problemer déi mir mat hinnen haten an iwwer eis Léisungen déi mir aus Open Source entwéckelt hunn - KittenHouse a Lighthouse.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Firwat musse mir iwwerhaapt eppes maachen (alles ass ëmmer gutt op VKontakte, richteg?). Mir wollten Debug Logbicher sammelen (an et waren Honnerte vun Terabytes vun Daten do), vläicht wier et iergendwéi méi bequem fir Statistiken ze berechnen; a mir hunn eng Flott vun zéngdausende Serveren aus deenen all dat muss gemaach ginn.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Firwat hu mir decidéiert? Mir hu wahrscheinlech Léisunge fir Logbicher ze späicheren. Hei - et gëtt esou eng ëffentlech "Backend VK". Ech recommandéieren Iech drop ze abonnéieren.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Wat sinn Logbicher? Dëst ass e Motor deen eidel Arrays zréckkënnt. Motoren am VK sinn wat anerer Mikroservicer nennen. An hei ass e laache Sticker (zimmlech vill Likes). Wéi dann? Ma, lauschter weider!

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Wat kann benotzt ginn fir Logbicher ze späicheren? Et ass onméiglech net Hadup ze ernimmen. Dann, zum Beispill, Rsyslog (dës Logbicher an Dateien späicheren). LSD. Wien weess wat LSD ass? Nee, net dës LSD. Store Fichieren, respektiv och. Gutt, ClickHouse ass eng komesch Optioun.

Clickhouse a Konkurrenten: Ufuerderungen a Méiglechkeeten

Wat wëlle mir? Mir wëllen dofir suergen, datt mir net ze vill iwwer d'Operatioun këmmeren mussen, sou datt et aus der Këscht funktionnéiert, am léifsten mat minimaler Konfiguratioun. Mir wëllen vill schreiwen, a séier schreiwen. A mir wëllen et fir all Zorte vu Méint, Joeren, also fir eng laang Zäit halen. Mir wëllen vläicht e Problem verstoen, mat deem se bei eis komm sinn a gesot hunn: "Eppes funktionnéiert net hei," an dat war virun 3 Méint), a mir wëllen fäeg sinn ze gesinn wat virun 3 Méint geschitt ass " Datekompressioun - et ass kloer firwat et e Plus wier - well et d'Quantitéit u Plaz reduzéiert déi se ophëlt.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

A mir hunn esou eng interessant Fuerderung: mir schreiwen heiansdo d'Ausgab vun e puer Kommandoen (zum Beispill Logbicher), et ka méi wéi 4 Kilobyte ganz einfach sinn. A wann dës Saach iwwer UDP funktionnéiert, da brauch et net ze verbréngen ... et wäert keng "Overhead" fir d'Verbindung hunn, a fir eng grouss Zuel vu Serveren wäert dëst e Plus sinn.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Loosst eis kucken wat Open Source eis bitt. Als éischt hu mir de Logs Engine - dëst ass eise Motor; Am Prinzip kann hien alles maachen, hie ka souguer laang Zeilen schreiwen. Gutt, et kompriméiert net transparent Daten - mir kënne grouss Sailen selwer kompriméieren wa mir wëllen ... mir wëllen natierlech net (wa méiglech). Deen eenzege Problem ass, datt hie weess nëmmen ze ginn, wat a senger Erënnerung passt; Fir de Rescht ze liesen, musst Dir de Binlog vun dësem Motor kréien an deementspriechend dauert et zimlech laang.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Wéi eng aner Optioune ginn et? Zum Beispill, "Hadup". Einfach Operatioun ... Wien mengt datt Hadup einfach ass opzestellen? Natierlech ginn et keng Problemer mat der Opnam. Beim Liesen stelle sech heiansdo Froen op. Am Prinzip géif ech soen wahrscheinlech net, besonnesch fir Logbicher. Laangfristeg Lagerung - natierlech, jo, Datekompressioun - jo, laang Saiten - et ass kloer datt Dir ophuelen kann. Mee opzehuelen vun enger grousser Zuel vun Serveren ... Dir musst nach eppes selwer maachen!

Rsyslog. Tatsächlech hu mir et als Backup-Optioun benotzt fir datt mir et kënne liesen ouni de Binlog ze dumpen, awer et kann net laang Zeilen schreiwen; am Prinzip kann et net méi wéi 4 Kilobytes schreiwen. Dir musst Datekompressioun op déiselwecht Manéier selwer maachen. D'Liesen kommen aus Dateien.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Da gëtt et d'"badushka" Entwécklung vun LSD. Am Wesentlechen d'selwecht wéi "Rsyslog": et ënnerstëtzt laang Saiten, awer et kann net iwwer UDP funktionnéieren an, tatsächlech, wéinst dësem, leider, ass et zimlech vill Saachen déi nei geschriwwe musse ginn. LSD muss nei designt ginn fir vun Zéngdausende vu Serveren opzehuelen.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

An hei! Eng witzeg Optioun ass ElasticSearch. Wéi ze soen? Hie geet gutt mam Liesen, dat heescht, hie liest séier, awer net ganz gutt mam Schreiwen. Als éischt, wann et Daten kompriméiert, ass et ganz schwaach. Wahrscheinlech erfuerdert eng voll Sich méi grouss Datestrukture wéi dat ursprénglecht Volumen. Et ass schwéier ze bedreiwen a Problemer entstinn dacks domat. An nach eng Kéier, op Elastic opzehuelen - mir mussen alles selwer maachen.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Hei ass ClickHouse natierlech eng ideal Optioun. Déi eenzeg Saach ass datt d'Opname vun zéngdausende Serveren e Problem ass. Mee op d'mannst gëtt et ee Problem, mir kënnen probéieren et iergendwéi ze léisen. An de Rescht vum Bericht geet iwwer dëse Problem. Wéi eng Leeschtung kënnt Dir vu ClickHouse erwaarden?

Wéi wäerte mir et asetzen? MergeTree

Wien vun iech huet net héieren oder weess iwwer "ClickHouse"? Ech muss Iech soen, oder? Ganz séier. D'Insertioun do - 1-2 Gigabits pro Sekonn, Bursts vu bis zu 10 Gigabits pro Sekonn kann dës Konfiguratioun tatsächlech widderstoen - et ginn zwee 6-Kär Xeons (dat ass, net emol déi mächtegst), 256 Gigabyte RAM, 20 Terabytes an RAID (keen konfiguréiert, Standardastellungen). Den Alexey Milovidov, ClickHouse Entwéckler, sëtzt wahrscheinlech do ze kräischen, well mir näischt konfiguréiert hunn (alles huet esou fir eis geschafft). Deementspriechend kann eng Scannergeschwindegkeet vun z.B. ongeféier 6 Milliarde Linnen pro Sekonn kritt ginn, wann d'Daten gutt kompriméiert sinn. Wann Dir % op engem Textstring gär hutt - 100 Millioune Linnen pro Sekonn, dat heescht, et schéngt zimlech séier.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Wéi wäerte mir et asetzen? Gutt, Dir wësst datt VK PHP benotzt. Mir setzen vun all PHP Aarbechter iwwer HTTP an "ClickHouse", an d'MergeTree Tabelle fir all Rekord. Wien gesäit e Problem mat dësem Schema? Aus e puer Grënn huet net jiddereen d'Hänn opgehuewen. Loosst mech Iech soen.

Als éischt ginn et vill Serveren - deementspriechend ginn et vill Verbindungen (schlecht). Dann ass et besser Daten an MergeTree net méi dacks wéi eemol pro Sekonn anzeginn. A wie weess firwat? Ok, ok. Ech wäert Iech e bësse méi doriwwer soen. Eng aner interessant Fro ass datt mir keng Analyse maachen, mir brauchen d'Donnéeën net ze beräicheren, mir brauche keng Zwëschenserver, mir wëllen direkt an "ClickHouse" asetzen (am léifsten - wat méi direkt, wat besser).

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Deementspriechend, wéi gëtt d'Insertion am MergeTree gemaach? Firwat ass et besser net méi dacks wéi eemol d'Sekonn oder manner dacks anzeginn? D'Tatsaach ass datt "ClickHouse" eng spalten Datebank ass an d'Donnéeën an opsteigend Uerdnung vum primäre Schlëssel sortéiert, a wann Dir en Insert maacht, ginn eng Zuel vu Dateien op d'mannst gläich wéi d'Zuel vun de Spalten erstallt an deenen d'Donnéeën zortéiert sinn. an opsteigend Uerdnung vum primäre Schlëssel (e separaten Verzeechnes gëtt erstallt, eng Rei vu Dateien op der Disk fir all Insert). Da kënnt déi nächst Insertion, an am Hannergrond si se a méi grouss "Partitionen" kombinéiert. Well d'Donnéeën zortéiert sinn, ass et méiglech zwee zortéiert Dateien ze "fusionéieren" ouni vill Erënnerung ze konsuméieren.

Awer, wéi Dir kéint roden, wann Dir 10 Dateien fir all Insert schreift, da wäert ClickHouse (oder Äre Server) séier ophalen, also ass et recommandéiert a grousse Chargen ze setzen. Deementspriechend hu mir ni den éischte Schema an d'Produktioun lancéiert. Mir hunn direkt eng lancéiert, déi hei Nummer 2 huet:

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Hei stellt Iech vir datt et ongeféier dausend Serveren sinn op deenen mir lancéiert hunn, et gëtt just PHP. An op all Server gëtt et eise lokalen Agent, dee mir "Kittenhouse" genannt hunn, deen eng Verbindung mat "ClickHouse" ënnerhält an all puer Sekonnen Daten asetzt. Setzt Daten net an MergeTree, mee an eng Puffertabell, déi präzis déngt fir direkt direkt an MergeTree ze setzen.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Schafft mat Puffer Dëscher

Wat ass et? Buffer Dëscher sinn e Stéck Erënnerung dat sharded ass (dat ass, et kann dacks an et agesat ginn). Si besteet aus e puer Stécker, an all eenzel vun de Stécker funktionéiert als onofhängeg Puffer, a si sinn onofhängeg gespullt (wann Dir vill Stécker am Puffer hutt, da gëtt et vill Inserts pro Sekonn). Et ass méiglech aus dësen Dëscher ze liesen - da liest Dir d'Gewerkschaft vum Inhalt vum Puffer an der Elterendësch, awer am Moment ass d'Schreiwen blockéiert, also ass et besser net vun do ze liesen. A Puffer Dëscher weisen ganz gutt QPS, dat ass, bis zu 3 dausend QPS Dir wäert guer keng Problemer hunn beim Asetzen. Et ass kloer datt wann de Server Kraaft verléiert, da kënnen d'Donnéeë verluer ginn, well se nëmmen an der Erënnerung gespäichert goufen.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Zur selwechter Zäit komplizéiert de Schema mat engem Puffer ALTER, well Dir musst als éischt déi al Puffertabelle mam alen Schema erofhuelen (d'Donnéeë verschwannen néierens, well se gespullt ginn ier den Dësch geläscht gëtt). Da "ännert" Dir den Dësch deen Dir braucht an erstellt de Puffer Dësch erëm. Deementspriechend, wärend et kee Puffertabel ass, fléissen Är Donnéeën net iwwerall, awer Dir kënnt et op d'mannst lokal op der Disk hunn.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Wat ass Kittenhouse a wéi funktionnéiert et?

Wat ass KittenHouse? Dëst ass e Proxy. Guess wat Sprooch? Ech hunn déi meescht Hype Themen a mengem Bericht gesammelt - "Clickhouse", Go, vläicht erënnere mech un eppes anescht. Jo, dëst ass am Go geschriwwen, well ech weess net wierklech wéi ech am C schreiwen, ech wëll net.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Deementspriechend hält et eng Verbindung mat all Server a kann an d'Erënnerung schreiwen. Zum Beispill, wa mir Feeler Logbicher op Clickhouse schreiwen, dann wann Clickhouse keng Zäit huet fir Daten anzeginn (schliisslech, wann zevill geschriwwe gëtt), da schwelle mir d'Erënnerung net - mir werfen einfach de Rescht eraus. Well wa mir e puer Gigabits pro Sekonn vu Feeler schreiwen, da kënne mir wahrscheinlech e puer erauswerfen. Kittenhouse kann dat maachen. Plus, et kann zouverlässeg Liwwerung Leeschtunge, dat ass, Schreiwen op Disk op der lokal Maschinn an eemol all Kéier (do, eemol all puer Sekonnen) et probéiert Daten aus dëser Datei ze liwweren. An am Ufank hu mir de reguläre Wäerterformat benotzt - net e binäre Format, en Textformat (wéi a reguläre SQL).

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Awer dunn ass dëst geschitt. Mir hunn zouverlässeg Liwwerung benotzt, Logbicher geschriwwen, dunn decidéiert (et war e bedingt Testcluster) ... Et gouf fir e puer Stonnen erausgesat an zréck bruecht, an eng Insertioun ugefaang vun dausend Serveren - et huet sech erausgestallt datt Clickhouse nach ëmmer e "Thread on Connection" - deementspriechend, an dausend Verbindungen, féiert eng aktiv Insertion zu engem Laaschtduerchschnëtt op de Server vun ongeféier annerhallef Tausend. Iwwerraschend huet de Server Ufroe akzeptéiert, awer d'Donnéeën goufen nach no enger Zäit agebaut; mee et war ganz schwéier fir de Server et ze servéieren ...

Füügt nginx

Sou eng Léisung fir den Thread pro Verbindungsmodell ass nginx. Mir hunn nginx virum Clickhouse installéiert, gläichzäiteg Balance fir zwee Repliken opgestallt (eis Insertiounsgeschwindegkeet ass ëm 2 Mol eropgaang, obwuel et net e Fakt ass datt dëst de Fall sollt sinn) an d'Zuel vun de Verbindungen op Clickhouse limitéiert, op de upstream an deementspriechend méi , wéi a 50 Verbindungen, schéngt et kee Sënn ze setzen.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Dunn hu mir gemierkt datt dëst Schema allgemeng Nodeeler huet, well mir hei nëmmen een nginx hunn. Deementspriechend, wann dësen nginx crasht, trotz der Präsenz vu Repliken, verléiere mir Daten oder schreiwen op d'mannst néierens. Dofir hu mir eis eege Last Balance gemaach. Mir hunn och gemierkt datt "Clickhouse" nach ëmmer gëeegent ass fir Logbicher, an den "Dämon" huet och ugefaang seng Logbicher an "Clickhouse" ze schreiwen - ganz bequem, fir éierlech ze sinn. Mir benotzen et nach ëmmer fir aner "Dämonen".

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Dunn hu mir dësen interessanten Problem entdeckt: wann Dir eng net-Standard-Methode benotzt fir am SQL Modus ze setzen, zwéngt et e vollwäertege AST-baséiert SQL Parser, deen zimlech lues ass. Deementspriechend hu mir Astellunge bäigefüügt fir sécherzestellen datt dëst ni geschitt. Mir hunn Laaschtbalancéierung, Gesondheetskontrolle gemaach, sou datt wann ee stierft, mir d'Donnéeën nach ëmmer verloossen. Mir hunn elo zimlech vill Dëscher déi mir brauchen fir verschidde Clickhouse Cluster ze hunn. A mir hunn och ugefaang iwwer aner Benotzung ze denken - zum Beispill, mir wollte Logbicher aus nginx Moduler schreiwen, awer si wësse net wéi se mat eisem RPC kommunizéieren. Gutt, ech wéilt se léieren wéi se op d'mannst iergendwéi schécken - zum Beispill, Eventer op localhost iwwer UDP ze kréien an se dann op Clickhouse weiderginn.

Ee Schrëtt ewech vun der Léisung

De finalen Schema huet ugefaang esou ze kucken (déi véiert Versioun vun dësem Schema): op all Server virum Clickhouse gëtt et nginx (op deemselwechte Server) an et proxéiert einfach Ufroe fir de localhost mat enger Limit op d'Zuel vun de Verbindungen vun 50 Stécker. An dëst Schema war scho ganz funktionnéiert, alles war zimlech gutt mat derbäi.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Mir gelieft esou fir ongeféier engem Mount. Jidderee war frou, si hunn Dëscher bäigefüügt, sie bäigefüügt, si bäigefüügt ... Am Allgemengen huet sech erausgestallt datt d'Art a Weis wéi mir Pufferdëscher bäigesat hunn, net ganz optimal war (loosse mer et esou soen). Mir hunn 16 Stécker an all Dësch gemaach an e Blëtzintervall vun e puer Sekonnen; mir haten 20 Dëscher an all Dësch krut 8 Inserts pro Sekonn - an op dësem Punkt "Clickhouse" ugefaang ... d'Records ugefaang ze luesen. Si sinn net emol duerchgaang ... Nginx huet par défaut sou eng interessant Saach, datt wann d'Verbindungen am Upstream ofgeschloss sinn, dann huet et einfach "502" op all nei Ufroen zréckginn.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

An hei hu mir (ech hunn just d'Logbicher am Clickhouse selwer gekuckt) ongeféier en halleft Prozent vun Ufroe gescheitert. Deementspriechend war d'Disknutzung héich, et goufe vill Fusioune. Gutt, wat hunn ech gemaach? Natierlech hunn ech mech net gestéiert fir erauszefannen firwat genau d'Verbindung an Upstream opgehalen ass.

Ersetzen nginx mat engem Reverse Proxy

Ech hunn décidéiert datt mir dëst selwer musse verwalten, mir brauchen et net un nginx ze loossen - nginx weess net wéi eng Dëscher et am Clickhouse sinn, an ech hunn nginx mat engem ëmgedréint Proxy ersat, deen ech och selwer geschriwwen hunn.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Wat mecht hien? Et funktionnéiert baséiert op der fasthttp Bibliothéik "goshnoy", dat ass, séier, bal sou séier wéi nginx. Entschëllegt, Igor, wann Dir hei präsent sidd (Notiz: Igor Sysoev ass e russesche Programméierer deen den nginx Webserver erstallt huet). Et kann verstoen wat fir eng Ufroen dës sinn - INSERT oder SELECT - deementspriechend hält et verschidde Verbindungspooler fir verschidden Aarte vu Ufroen.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Deementspriechend, och wa mir keng Zäit hunn fir d'Insertiounsufroen ofzeschléissen, wäerten d'"Auswielen" passéieren, a vice versa. An et gruppéiert d'Donnéeën a Puffertabellen - mat engem klenge Puffer: wann et Fehler, Syntaxfehler, asw. - sou datt se de Rescht vun den Donnéeën net vill beaflossen, well wa mir einfach a Puffertabellen agefouert hunn, hu mir hat kleng "bachi", an all d'Syntaxfehler hunn nëmmen dat klengt Stéck beaflosst; an hei wäerten se schonn e grousse Puffer beaflossen. Kleng ass 1 Megabyte, dat heescht net sou kleng.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Eng Synchroniséierung asetzen an am Wesentlechen nginx ersetzen, mécht am Wesentlechen datselwecht wat nginx virdru gemaach huet - Dir braucht net dat lokalt "Kittenhouse" fir dëst z'änneren. A well et Fasthttp benotzt, ass et ganz séier - Dir kënnt méi wéi 100 Tausend Ufroe pro Sekonn fir eenzel Inserts duerch e Reverse Proxy maachen. Theoretesch kënnt Dir eng Zeil gläichzäiteg an de Kittenhouse Reverse Proxy aginn, awer natierlech maache mir dat net.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

De Schema huet ugefaang esou ze kucken: "Kittenhouse", de Reverse Proxy gruppéiert vill Ufroen an Dëscher an, am Tour, setzen d'Puffertabellen se an d'Haapt.

Killer ass eng temporär Léisung, Kitten ass permanent

Dëst ass en interessante Problem ... Huet ee vun iech fasthttp benotzt? Wien benotzt fasthttp mat POST Ufroen? Wahrscheinlech sollt dëst wierklech net gemaach ginn, well et d'Ufro Kierper als Standard buffert, an eis Puffergréisst war op 16 Megabytes gesat. D'Insertioun huet iergendwann opgehalen, a 16-Megabyte Stécker hunn ugefaang vun all Zéngdausende vu Serveren ze kommen, a si goufen all an der Erënnerung gebuffert ier se op Clickhouse geschéckt goufen. Deementspriechend ass d'Erënnerung ausgaang, den Out-Of-Memory Killer ass komm an huet de Reverse Proxy ëmbruecht (oder "Clickhouse", wat theoretesch méi kéint "iessen" wéi de Reverse Proxy). Den Zyklus huet sech widderholl. Net eng ganz agreabel Problem. Obwuel mir op dëser getrollt nëmmen no puer Méint vun Operatioun.

Wat hunn ech gemaach? Nach eng Kéier, ech verstinn net wierklech wat genee geschitt ass. Ech mengen et ass zimlech offensichtlech datt Dir net an d'Erënnerung sollt bufferen. Ech konnt net séier http Patch, obwuel ech probéiert. Awer ech hunn e Wee fonnt fir et sou ze maachen datt et net néideg war eppes ze patchen, an ech sinn mat menger eegener Method an HTTP komm - ech hunn et KITTEN genannt. Gutt, et ass logesch - "VK", "Kitten" ... Wat soss?

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Wann eng Ufro un de Server mat der Kitten-Methode kënnt, da sollt de Server "meow" reagéieren - logesch. Wann hien op dëst reagéiert, da gëtt ugeholl datt hien dëse Protokoll versteet, an dann interceptéieren ech d'Verbindung (fasthttp huet sou eng Method), an d'Verbindung geet an de "raw" Modus. Firwat brauch ech et? Ech wëll kontrolléieren wéi d'Liesen vun TCP Verbindungen geschitt. TCP huet eng wonnerbar Eegeschaft: wann keen vun der anerer Säit liest, da fänkt d'Schreiwen un ze waarden, an d'Erënnerung gëtt net besonnesch dorop verbruecht.

An dofir liesen ech vu ronn 50 Clienten gläichzäiteg (vu fofzeg, well fofzeg sollten definitiv duergoen, och wann den Taux vun engem aneren DC kënnt)... De Verbrauch ass mat dëser Approche op d'mannst 20 Mol erofgaang, awer ech, fir éierlech ze sinn , Ech konnt net genau moossen wéi eng Auerzäit, well et scho Sënnlos ass (et ass schonn de Feelerniveau erreecht). De Protokoll ass binär, dat ass, et enthält den Dësch Numm an Daten; et gi keng http Header, also hunn ech kee Web Socket benotzt (Ech brauch net mat Browser ze kommunizéieren - ech hunn e Protokoll gemaach deen eis Bedierfnesser passt). An alles gouf gutt mat him.

De Puffer Dësch ass traureg

Viru kuerzem hu mir eng aner interessant Feature vu Puffertabellen begéint. An dëse Problem ass scho vill méi ustrengend wéi déi aner. Loosst eis dës Situatioun virstellen: Dir benotzt schonn aktiv Clickhouse, Dir hutt Dosende vu Clickhouse Serveren, an Dir hutt e puer Ufroen, déi ganz laang daueren fir ze liesen (loosst eis soen, méi wéi 60 Sekonnen); an Dir kommt a maacht Alter zu dësem Moment ... An der Tëschenzäit sinn "selects", déi virum "Alter" ugefaang hunn, net an dëser Tabell abegraff, "Alter" fänkt net un - wahrscheinlech e puer Features wéi "Clickhouse" funktionnéiert dëser Plaz. Vläicht kann dat fixéiert ginn? Oder ass et onméiglech?

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Am Allgemengen ass et kloer datt dëst an der Realitéit net sou e grousse Problem ass, awer mat Puffertabellen gëtt et méi schmerzhaf. Well wann, loosst eis soen, Är "Alter" Timeouts (an et kann op engem aneren Host e Timeout - net op Ärem, mee op enger Replika, zum Beispill), dann ... Dir hutt de Puffertabel geläscht, Ären "Alter" ( oder en aneren Host) Zäit ofgeschloss. dann ass en "Alter" Feeler geschitt) - Dir musst nach ëmmer sécherstellen datt d'Donnéeën weider geschriwwe ginn: Dir erstellt d'Puffertabellen zréck (no deemselwechte Schema wéi d'Elterentabelle), dann "Alter" geet duerch, endt no all, an de Puffer den Dësch fänkt am Schema vum Elterendeel ze ënnerscheeden. Ofhängeg vu wat den "Alter" war, kann den Insert net méi op dës Puffertabelle goen - dat ass ganz traureg.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Et gëtt och sou en Zeechen (vläicht huet een et gemierkt) - et gëtt query_thread_log an neie Versioune vum Clickhouse genannt. Par défaut gouf et an enger Versioun eng. Hei hu mir 840 Millioune Rekorder an e puer Méint (100 Gigabytes) gesammelt. Dëst ass wéinst der Tatsaach, datt do "Inserts" geschriwwe goufen (vläicht elo, iwwregens, si sinn net geschriwwe). Wéi ech Iech gesot hunn, sinn eis "Inserts" kleng - mir haten vill "Inserts" an de Puffertabellen. Et ass kloer datt dëst behënnert ass - ech soen Iech just wat ech op eisem Server gesinn hunn. Firwat? Dëst ass en anert Argument géint d'Benotzung vu Puffertabellen! Spotty ass ganz traureg.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Wien wousst datt dësen Typ Spotty heescht? VK Mataarbechter hunn hir Hänn opgehuewen. OK.

Iwwer d'Pläng fir "KittenHouse"

Pläng ginn normalerweis net gedeelt, richteg? Op eemol wäert Dir se net erfëllen a wäert net ganz gutt an aneren Aen kucken. Mee ech huelen de Risiko! Mir wëllen déi folgend maachen: Puffertabellen, et schéngt mir, sinn nach ëmmer eng Krut a mir mussen d'Insertion selwer pufferen. Awer mir wëllen et nach ëmmer net op der Disk bufferen, sou datt mir d'Insertioun an d'Erënnerung bufferen.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Deementspriechend, wann en "Insert" gemaach gëtt, ass et net méi synchron - et funktionnéiert schonn als Puffertabel, setzt an d'Elterentabelle (gutt, enges Daags méi spéit) a mellt iwwer e separaten Kanal wéi eng Inserts passéiert sinn an déi net hunn.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Firwat kann ech de Synchron-Insert net verloossen? Et ass vill méi bequem. D'Tatsaach ass datt wann Dir vun 10 Tausend Hosten asetzt, dann ass alles gutt - Dir kritt e bësse vun all Host, Dir setzt eemol an der Sekonn do an, alles ass gutt. Awer ech hätt gär datt dëst Schema funktionnéiert, zum Beispill, vun zwou Maschinnen, sou datt Dir mat héijer Geschwindegkeet eroflueden kënnt - vläicht net de Maximum aus Clickhouse kréien, awer op d'mannst 100 Megabytes pro Sekonn vun enger Maschinn duerch e Reverse Proxy schreiwen - Dëst muss de Schema op grouss a kleng Quantitéiten skala, sou datt mir keng Sekonn fir all Insertioun waarden, also muss et asynchron sinn. An déiselwecht Aart a Weis sollen asynchrone Bestätegunge kommen nodeems d'Insertioun ofgeschloss ass. Mir wäerte wëssen ob et passéiert ass oder net.

Déi wichtegst Saach ass datt mir an dësem Schema sécher wësse ob d'Insertioun stattfonnt huet oder net. Stellt Iech dës Situatioun vir: Dir hutt e Puffer Dësch, Dir hutt eppes dran geschriwwen, an dann, loosst eis soen, den Dësch ass an de Liesmodus gaang a probéiert de Puffer ze spülen. Wou ginn d'Daten hin? Si bleiwen am Puffer. Awer mir kënnen net sécher sinn - wat wann et en anere Feeler ass, wéinst deem d'Donnéeën net am Puffer bleiwen ... (Adressen Alexey Milovidov, Yandex, ClickHouse Entwéckler) Oder wäert et bleiwen? Ëmmer? Alexey iwwerzeegt eis datt alles gutt wäert sinn. Mir hu kee Grond him net ze gleewen. Awer all d'selwecht: wa mir keng Puffertabellen benotzen, da gëtt et keng Probleemer mat hinnen. Zweemol esou vill Dëscher erstellen ass och onbequem, obwuel et am Prinzip keng grouss Problemer gëtt. Dëst ass de Plang.

Loosst eis iwwer d'Liesen schwätzen

Loosst eis elo iwwer d'Liesen schwätzen. Mir hunn och eisen eegenen Tool hei geschriwwen. Et géif schéngen, gutt, firwat schreift Ären eegenen Instrument hei? .. A wien huet Tabix benotzt? Iergendwéi hunn wéineg Leit d'Hand opgehuewen... A wien ass zefridden mat der Leeschtung vum Tabix? Gutt, mir sinn net zefridden mat et, an et ass net ganz bequem fir Daten ze gesinn. Et ass gutt fir Analyse, awer just fir ze kucken ass et kloer net optimiséiert. Also hunn ech meng eegen geschriwwen, meng eegen Interface.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Et ass ganz einfach - et kann nëmmen Daten liesen. Hie weess net wéi Grafiken ze weisen, hie weess net wéi eppes ze maachen. Mä et kann weisen wat mir brauchen: zum Beispill, wéi vill Zeile sinn an der Tabell, wéi vill Plaz et hëlt (ouni et an Spalten opzedeelen), dat ass, eng ganz Basis Interface ass wat mir brauchen.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

An et gesäit ganz ähnlech wéi Sequel Pro, awer nëmmen op Twitter's Bootstrap gemaach, an déi zweet Versioun. Dir frot: "Yuri, firwat op der zweeter Versioun?" Wéi ee Joer? 2018? Am Allgemengen hunn ech dat viru laanger Zäit fir "Muscle" (MySQL) gemaach a just e puer Zeilen an den Ufroen do geännert, an et huet ugefaang fir "Clickhouse" ze schaffen, fir dee spezielle Merci! Well de Parser ganz ähnlech mam "Muskel" ass, an d'Ufroen si ganz ähnlech - ganz bequem, besonnesch am Ufank.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Gutt, et kann Dëscher filteren, kann d'Struktur an d'Inhalter vun der Tabell weisen, erlaabt Iech ze sortéieren, filteren no Kolonnen, weist d'Ufro, déi zum Resultat gefouert huet, déi betraff Zeilen (wéi vill als Resultat), dat heescht Basis Saache fir Donnéeën ze gesinn. Zimlech séier.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Et gëtt och en Editeur. Ech hu éierlech probéiert de ganzen Editeur vum Tabix ze klauen, awer ech konnt net. Awer iergendwéi funktionnéiert et. Am Prinzip ass dat alles.

"Clickhouse" ass gëeegent fir Hënn

Ech wëll Iech soen datt Clickhouse, trotz all de beschriwwene Probleemer, ganz gutt fir Logbicher gëeegent ass. Virun allem, et léist eise Problem - et ass ganz séier an erlaabt Iech Logbicher no Kolonnen ze filteren. Am Prinzip hu Puffertabellen net gutt geschafft, mee normalerweis weess keen firwat ... Vläicht wësst Dir elo besser wou Dir Problemer wäert hunn.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

TCP? Am Allgemengen, am VK ass et üblech fir UDP ze benotzen. A wann ech TCP benotzt hunn ... Natierlech huet keen mir gesot: "Yuri, vu wat schwätzt Dir! Dir kënnt net, Dir braucht UDP. Et huet sech erausgestallt datt TCP net sou grujeleg ass. Déi eenzeg Saach ass, wann Dir Zéngdausende vun aktive Verbindungen hutt, déi Dir schreift, musst Dir et e bësse méi suergfälteg virbereeden; awer et ass méiglech, a ganz einfach.

Ech hu versprach "Kittenhouse" an "Lighthouse" op HighLoad Siberia ze posten, wa jidderee sech op eisem ëffentlechen "VK Backend" abonnéiert ... An Dir wësst, net jiddereen huet sech abonnéiert ... Natierlech wäert ech net verlaangen datt Dir Iech op eis abonnéiert ëffentlech. Et sinn nach ze vill vun iech, een kann souguer beleidegt ginn, awer trotzdem, abonnéiert w.e.g. (an hei muss ech Aen maachen wéi déi vun enger Kaz). Dat ass verlinkt iwwregens. Villmools Merci! Github ass eis hei riets. Mat Clickhouse wäert Är Hoer mëll a seideg sinn.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Bläi: - Frënn, elo fir Froen. Direkt nodeems mir de Certificat vun der Unerkennung an Äre Bericht iwwer VHS presentéieren.

Yuri Nasretdinov (nach YN bezeechent): - Wéi konnt Dir mäi Bericht iwwer VHS ophuelen wann et just eriwwer ass?

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Bläi: - Och Dir kënnt net ganz bestëmmen wéi "Clickhouse" funktionnéiert oder net! Frënn, 5 Minutte fir Froen!

Är Froen

Fro vum Publikum (nodréiglech Q bezeechent): - Gudde Mëtteg. Villmools Merci fir de Rapport. Ech hunn zwou Froen. Ech fänke mat eppes frivoles un: beaflosst d'Zuel vun de Buschtawen t am Numm "Kittenhaus" an den Diagrammen (3, 4, 7 ...) d'Zefriddenheet vun de Kazen?

YN: - Quantitéit vu wat?

Z: - Buchstaben t. Et ginn dräi T'en, iergendwou ëm dräi T'en.

YN: - Hunn ech et net fixéiert? Gutt, natierlech mécht et! Dëst si verschidde Produkter - ech hunn dech just all dës Kéier täuscht. Okay, ech maachen de Geck - et ass egal. Ah, hei! Nee, et ass d'selwecht, ech hunn en Tippfeeler gemaach.

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Z: - Merci. Déi zweet Fro ass eescht. Sou wäit wéi ech verstinn, am Clickhouse, liewen Puffertabellen exklusiv an der Erënnerung, ginn net op Disk gebuffert an deementspriechend net persistent.

YN: - Jo.

Z: - A gläichzäiteg bufféiert Äre Client op Disk, wat eng Garantie fir d'Liwwerung vun deene selwechte Logbicher implizéiert. Awer dëst ass op kee Fall garantéiert bei Clickhouse. Erklärt wéi d'Garantie duerchgefouert gëtt, wéinst wat? .. Hei ass dëse Mechanismus méi am Detail

YN: - Jo, theoretesch gëtt et hei keng Widdersproch, well wann Clickhouse fällt, kënnt Dir et tatsächlech op eng Millioun verschidde Weeër erkennen. Wann Clickhouse klappt (wann et falsch ophält), kënnt Dir, ongeféier geschwat, e bësse vun Ärem Logbuch, deen Dir opgeschriwwen hutt, zréckspullen a vun deem Moment un ufänken, wou alles genau gutt war. Loosst eis soen datt Dir eng Minutt zréckspullt, dat heescht, et gëtt ugesinn datt Dir alles an enger Minutt gespullt hutt.

Z: - Dat heescht, "Kittenhouse" hält d'Fënster méi laang a kann se am Fall vun engem Fall erkennen an zréckzéien?

YN: - Awer dëst ass an der Theorie. An der Praxis maachen mir dat net, an zouverlässeg Liwwerung ass vun null bis onendlech mol. Awer am Duerchschnëtt een. Mir sinn zefridden datt wann Clickhouse aus irgendege Grënn ofstëmmt oder d'Serveren "neistarten", da verléieren mir e bëssen. An all anere Fäll wäert näischt geschéien.

Z: - Hallo. Vun Ufank un huet et mir geschéngt, datt Dir wierklech vun Ufank vum Bericht un UDP géift benotzen. Dir hutt http, alles dat... An déi meescht vun de Problemer, déi Dir beschriwwen hutt, wéi ech et verstinn, goufen duerch dës speziell Léisung verursaacht...

YN: - Wat benotze mir TCP?

Z: - Wesentlech jo.

YN: - Nee.

Z: - Et war mat fasthttp, datt Dir Problemer haten, mat der Verbindung Dir Problemer haten. Wann Dir just UDP benotzt hätt, hätt Dir Iech Zäit gespuert. Gutt, et gi Problemer mat laange Messagen oder soss eppes ...

YN: - Mat wat?

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Z: - Mat laange Messagen, well et vläicht net an d'MTU passt, soss eppes ... Ma, et kann hir eege Problemer ginn. D'Fro ass: Firwat net UDP?

YN: - Ech gleewen datt d'Auteuren, déi TCP / IP entwéckelt hunn, vill méi schlau wéi ech sinn a besser wësse wéi ech Pakete serialiséieren (sou datt se goen), gläichzäiteg d'Sendfenster upassen, d'Netzwierk net iwwerlaascht, Feedback ginn iwwer wat gëtt net gelies, zielt net op där anerer Säit... All dës Problemer, menger Meenung no, géifen an der UDP existéieren, nëmmen ech misst nach méi Code schreiwen wéi ech scho geschriwwen hunn fir datselwecht selwer ëmzesetzen an héchstwahrscheinlech schlecht. Ech schreiwen net emol wierklech gär am C, loosst et do ...

Z: - Einfach bequem! Geschéckt ok a waart net op eppes - et ass komplett asynchron. Eng Notifikatioun koum zréck datt alles gutt war - dat heescht datt et ukomm ass; Wann et net kënnt, heescht et datt et schlecht ass.

YN: – Ech brauch béides – Ech muss souwuel mat enger Liwwerungsgarantie an ouni Liwwerungsgarantie kënnen schécken. Dëst sinn zwee verschidde Szenarie. Ech muss e puer Logbicher net verléieren oder se net bannent Grond verléieren.

Z: - Ech wäert keng Zäit verschwenden. Dëst muss méi diskutéiert ginn. Merci.

Bläi: - Wien huet Froen - Hänn an den Himmel!

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

Z: - Moien, ech sinn d'Sasha. Iergendwou an der Mëtt vum Bericht erschéngt d'Gefill datt nieft TCP et méiglech wier eng fäerdeg Léisung ze benotzen - eng Aart Kafka.

YN: - Gutt ... Ech hunn Iech gesot datt ech keng Zwëschenserver benotze wëll, well ... am Kafka stellt sech eraus datt mir zéngdausend Hosten hunn; tatsächlech, mir hu méi - zéngdausende vun Gäscht. Et kann och schmerzhaf sinn mat Kafka ouni Proxy ze maachen. Zousätzlech, am wichtegsten, gëtt et ëmmer nach "Latency", et gëtt extra Hosten déi Dir braucht. Awer ech wëll se net hunn - ech wëll ...

Z: "Awer um Enn ass et souwisou sou erausgaang."

YN: - Nee, et gi keng Hosten! Dëst funktionnéiert alles op Clickhouse Hosten.

Z: - Gutt, an "Kittenhouse", wat ass de Géigendeel - wou wunnt hien?

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

YN: - Am Clickhouse Host schreift et näischt op den Disk.

Z: - Loosst eis ugeholl.

Bläi: – Sidd Dir zefridden? Kënne mir Iech eng Pai ginn?

Z: - Jo du kanns. Tatsächlech ginn et vill Krutchen fir datselwecht ze kréien, an elo - déi viregt Äntwert zum Thema TCP widdersprécht, menger Meenung no, dës Situatioun. Et fillt just wéi wann alles op meng Knéien a vill manner Zäit gemaach hätt.

YN: - An och firwat ech Kafka net benotze wollt, well et am Clickhouse Telegram Chat zimlech vill Reklamatiounen waren, datt zum Beispill Messagen vum Kafka verluer sinn. Net vum Kafka selwer, mä an der Integratioun vu Kafka a Clickhaus; oder eppes huet do net verbonnen. Grof gesi wier et dann néideg, e Client fir de Kafka ze schreiwen. Ech denken net datt et eng méi einfach oder méi zouverlässeg Léisung kéint ginn.

Z: - Sot mir, firwat hutt Dir keng Schlaangen oder eng Zort gemeinsame Bus probéiert? Well Dir seet, datt mat Asynchronie Dir d'Logbicher selwer duerch d'Schlaang schécken an d'Äntwert asynchron duerch d'Schlaang kréien?

HighLoad++, Yuri Nasretdinov (VKontakte): wéi VK Daten an ClickHouse vun Zéngdausende vu Serveren asetzt

YN: - Proposéiert w.e.g. wéi eng Schlaangen kënne benotzt ginn?

Z: - All, och ouni Garantie, datt se an Uerdnung sinn. Eng Aart vu Redis, RMQ ...

YN: - Ech hunn d'Gefill datt Redis héchstwahrscheinlech net esou e Volumen vun der Insertion och op engem Host (am Sënn vu verschiddene Serveren) zéien, deen Clickhouse erauskënnt. Ech kann dëst net mat Beweiser ënnerstëtzen (ech hunn et net benchmarkéiert), awer et schéngt mir datt Redis net déi bescht Léisung hei ass. Prinzipiell kann dëse System als improviséierter Messageschlaang ugesi ginn, awer deen nëmme fir "Clickhouse" ugepasst ass.

Bläi: - Yuri, villmools Merci. Ech proposéieren d'Froen an d'Äntwerten hei ofzeschléissen a soen, wiem vun deenen, déi d'Fro gestallt hunn, mir d'Buch ginn.

YN: – Ech géif gären e Buch un déi éischt Persoun ginn, déi eng Fro gestallt huet.

Bläi: - Wonnerbar! Super! Fantastesch! Villmols merci!

Puer Annoncen 🙂

Merci datt Dir bei eis bleift. Hutt Dir eis Artikelen gär? Wëllt Dir méi interessant Inhalt gesinn? Ënnerstëtzt eis andeems Dir eng Bestellung maacht oder Frënn empfeelt, Cloud VPS fir Entwéckler vun $ 4.99, en eenzegaartegen Analog vun Entry-Level Serveren, dee vun eis fir Iech erfonnt gouf: Déi ganz Wourecht iwwer VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps vun $19 oder wéi een e Server deelt? (verfügbar mat RAID1 an RAID10, bis zu 24 Kären a bis zu 40GB DDR4).

Dell R730xd 2 Mol méi bëlleg an Equinix Tier IV Daten Zentrum zu Amsterdam? Nëmmen hei 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV vun $199 an Holland! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - vun $99! Liest iwwer Wéi bauen ech Infrastructure Corp. Klass mat der Benotzung vun Dell R730xd E5-2650 v4 Serveren Wäert 9000 Euro fir e Penny?

Source: will.com

Setzt e Commentaire