HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

HighLoad ++ Moscoviae 2018, Congressus Hall. Novembris 9, 15:00

Abstracta et praesentatio: http://www.highload.ru/moscow/2018/abstracts/4066

Yuri Nasretdinov (VKontakte): fama loquetur de experientia exsequendae ClickHouse in nostro comitatu - quare opus est, quantum notitias condimus, quomodo scribimus, et cetera.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Additional materiae: per Clickhouse ut tortor ELK, Big Query et TimescaleDB

Yuri Nasretdinov: - Hi omnes! Nomen meum est Yuri Nasretdinov, sicut iam introductum est. VKontakte in lyceo. Loquar quomodo notitias ClickHouse inseremus ex classe nostra server ( decem milia).

Quid tigna et cur ea colligis?

Quid egimus tibi, quid egerimus, cur opus "Clickhouse", respective, cur id elegerimus, quod genus operis proxime consequi possis, nihil speciali figurans. De tabulis quiddam, de quaestionibus quas cum illis habuimus, et de solutionibus nostris, quas ex aperto fonte - KittenHouse et Phari evolvit, dicam tibi.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Cur nobis opus est ad aliquid faciendum (omnia semper bona die VKontakte, recte?). Debug tigna colligere voluimus (et erant centum terabytarum notitiarum ibi), fortasse aliquo modo commodius esset ad statisticam calculare; et habemus classem decem milium ministrantium ex qua haec omnia fieri oportet.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Cur nos statuimus? Verisimiliter habuit solutiones ad acta reponenda. Hic – talis est publica “Backend VK”. tractet subscribens.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Quae sunt acta? Hoc est machinamentum quod vestit inanis redit. Machinae in VK sunt quae alii microservices vocant. Et hic obice ridens (satis multum placet). Quomodo? Age, adhuc audi!

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Quid potest ad congesta? Fieri non potest Hadup. Tum, exempli gratia, Rsyslog (thess in tabulariis recondens). LSD. Quis scit quid sit LSD? Non, non hoc LSd. Copia fasciculorum, respective, etiam. Bene, ClickHouse mirum est optio.

Clickhouse et competitores: necessitates et occasiones

Quid vis? Volumus curare ut non nimium solliciti de operatione, ut ex cista operetur, potius minima cum configuratione. Multa scribere et celeriter scribere volumus. Et volumus custodire illud per omnes menses, annos, hoc est, per longum tempus. Aliquid problema intelligi volumus quod ad nos venerunt et dixerunt, "Aliquid hic non operatur," et hoc erat ante menses tres), et volumus videre quod ante menses tres factum est. Compressio data – patet cur plus esset – quia spatium quod sumit minuit.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Et tale momentum exigentiam habemus: interdum scribimus coactionem mandatorum aliquorum (exempli gratia, acta), potest plus quam 4 chiliocteta esse facile. Et si haec res per UDP operatur, non opus est expendere... " caput" pro connexione non habebit, et pro pluribus servientibus hoc plus erit.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Videamus quid fons apertus nobis offerat. Primum, ipsum machinam habemus - hoc est machina nostra; In principio omnia potest, etiam longas lineas scribere potest. Bene, notitia perspicue non comprimit - possumus ipsi columnas magnas comprimere si velimus ... nos utique non vis (si fieri potest). Sola quaestio est, quod non potest nisi quod congruit memoriae suae dare; Reliqua ut legas, huius machinae binlogum obtinere debes, ideoque satis diu capit.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Quid aliae optiones ibi sunt? For example, "Hadup". Otium operandi... Quis Hadupum facile constituere putat? Donec non volutpat magna. Cum legendo, interdum oriuntur quaestiones. In principio, probabiliter non dixerim, praesertim pro lignis. Diu terminus repono - scilicet, ita, compressio data - ita, longae chordae - manifestum est te scribere posse. Sed ex magno numero servorum... Adhuc aliquid faciendum tibi est!

Rsyslog. Re vera, ea optione tergum usi sumus ut eam sine dumping binlog legere possemus, sed longas lineas scribere non potest, in principio, non plus quam 4 chiliocteta scribere. Compressionem datam facere tibi eodem modo valeas. Lectio lima a veniet.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Inde est progressus "badushka" LSD. Per se idem ac “Rsyslog”: longam chordas sustinet, sed super UDP operari non potest, et re vera, ob hoc, proh dolor, multam supellectilem quae opus est ut revocetur. LSD redesignari debet ut ex decem milibus servientium notari possit.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Heic! Ridiculum optio est ElasticSearch. Quam dicere? Bene facit legendo, id est, cito legit, sed non bene scribendo. Uno modo, si comprimat data, valde debilis est. Verisimile, plena inquisitionis ampliores structuras quam primum volumen requirit. Difficile est operari et problemata saepe cum eo oriuntur. Et rursus in memoria Elasticae - omnia nosmet ipsos facere debemus.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Hic ClickHouse est optio idealis, sane. Sola res est, quae ex decem milibus servientium memorare queritur. Sed una saltem quaestio est, eam aliquo modo solvere conemur. Et reliqua fama est de hoc problemate. Quod genus operis exspectas a ClickHouse?

Quomodo ergo dicemus quod inserere? MergeTree

Quis ex vobis non audivit aut scit de "ClickHouse"? Non ego tibi debeo dicere? Celerrimus. Insertio ibi - 1-2 gigabitarum per secundam, erumpit usque ad 10 gigabitas per secundam, actu huic conformationi resistere potest - sunt duo 6 nuclei Xeons (id est, ne potentissimus quidem), 256 gigabytes rami, 20 terabytes. in INCURSUS (nullus occasus configuratur, default occasus). Alexey Milovidov, Elit ClickHouse, probabiliter sedebat ibi clamantis quia nihil configuramus (omnia sicut nobis operata sunt). Proinde celeritas intuens, inquam, circa 6 miliarda linearum secundarum obtineri potest, si notitia bene compressa est. Si% sicut in filo textu - 100 decies centena millia lineae secundae per- fecerint, id est, satis celeriter videtur.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Quomodo ergo dicemus quod inserere? Bene nosti quod VK utitur PHP. Ab unoquoque laborante PHP per HTTP in "ClickHouse" inseremus, in tabulam MergeTream pro singulis tabulis. Quis quaestionem hanc machinam videt? Quibusdam non omnis soluta. Ait autem amen dico vobis.

Uno modo sunt multum servientes -, proinde multum hospites erunt (mali). Tunc melius est data in MergeTree non saepius quam semel iterum inserere. Et quis scit quare? Bene bene. De hoc paulo plura eloquar. Alia interesting quaestio est quod nos analytica non facimus, notitias locupletare non oportet, intermediis non egere servientibus, directe volumus inserere in "ClickHouse" (potissimum - magis directe, melius).

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Quomodo ergo fit in MergeTree insertio? Cur satius est non saepius quam semel aut iterum inserere? Ita est quod "ClickHouse" est datorum columnarum et genera notitiarum in ascendendo ordine clavis primariae, et cum insertionem facis, plures fasciculi creantur saltem numero columnarum, in quibus data est digestio. in ascendendo ordine clavis primariae (presul separatum creatum est, copia fasciculorum in orbe pro singulis insertis). Deinde proxuma insertio venit, et in curriculo in maiores "partitiones" coniunguntur. Cum data sit sorted, potest "merge" duos ordines digestus sine multa memoria consumente.

Sed, ut coniicere possis, si scripseris 10 fasciculos pro singulis insertis, tunc strepita (vel servo tuo) cito finietur, ita commendatur magnas batches inserere. Itaque primum propositum in productione numquam egimus. Unum statim egimus, quod hic N. 2 habet;

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Hic finge esse circiter mille servos in quos deducimus, iustum PHP. In singulis autem ministris est nostrum localis agens, quod "Kittenhouse" appellavimus, quod unum nexum cum "ClickHouse" conservat et omnibus brevibus secundis notitias interserit. Data inserta non in MergeTree, sed in tabula quiddam quiddam, quod praecise inservit ne statim MergeTree statim inseratur.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Opus est quiddam tables

Quid est? Tabulae quiddam sunt memoriae fragmentum, id est saxum (id est, frequentius inseri potest). Pluribus fragmentis constant, et singula fragmenta quasi quiddam independens, et independenter rubens (si multa frusta in quiddam habes, multae per alterum insertae erunt). Ex his tabulis legere licet - tum legas unionem contentorum quiddam et tabulae parentis, sed hoc momento scribens obsidetur, ut melius inde non legeretur. Et quiddam tabulae QPS valde bonae ostendunt, id est, usque ad 3 milia QPS, problemata omnino inserentes non habebis. Manifestum est enim quod, si amittit potestatem servo, tunc notitia potest amitti, quia solum in memoriam repositum fuit.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Eodem tempore, schema cum quiddam implicat ALTER, quia primum necesse est ut vetus quiddam tabulae cum schemate veteri deponat (notitia non usquam evanescit, quia rubens erit antequam mensa deleta est). Tum tu mensam "alterare" debes et mensam quiddam denuo crea. Proinde, cum tabula quiddam non sit, notitia tua nusquam fluit, sed in orbe saltem localiter habere potes.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Quid Kittenhouse et quomodo operatur?

Quid est KittenHouse? Hoc est procuratorem. Conice qua lingua? Argumenta plurima in mea relatione collegi - "Clickhouse", Vade, fortasse aliquid aliud meminerim. Ita scriptum est in Go, quia non scio quomodo scribere in C, non volo.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Proinde nexum cum quovis servo servat, et memoriam scribere potest. Exempli gratia, si acta errorum scribemus ad Clickhouse, tunc si Clickhouse tempus non habet notitias inserere (post omnes, si nimium scriptum est), tunc memoriam non intumescimus - reliqua simpliciter proiciamus. Quia si plures gigabitos secundo errorum scribimus, tunc probabiliter aliquos ejicere possumus. Kittenhouse hoc facere potest. Plus, certas traditiones conficere potest, hoc est, in machina locali scribens in disco et semel (ibi, semel in duobus secundis) notitias ex hoc documento eripere conatur. Pretio regularis formato, non aliqua forma binaria, forma textu (ut in regulari SQL) usi sumus.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Sed tunc hoc factum est. Certa traditione usi sumus, acta scripsimus, deinde placuit (conditionalis test botrum erat). "Filium connexionis" - proinde in mille nexus insertio activa ducit ad medium sarcinam in servo circiter mille et dimidium. Mire petitiones ministri accepit, sed notitia post aliquod tempus adhuc inserta est; sed difficillimum erat servo serviendi.

Adde nginx

Talis solutio pro exemplorum sequela per nexum est nginx. Instruimus ngincem ante Clickhouse, simul pensantes duas replicationes (nostrae celeritas inserta aucta per 2 tempora, etsi non factum est ut hoc esset) et numerum nexuum ad Clickhouse, ad limitavit. flumine , ideoque magis , quam in 50 affinitatibus , nullum videtur punctum inserendi.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Tunc intelleximus hoc schema generaliter incommoda habere, quod unam tantum nginx hic habemus. Proinde si haec nginx inruerit, non obstante praesentia replicas, notitias amittimus vel alicubi non scribimus. Hinc est quod nostro onere librando fecimus. Intelleximus etiam "Clickhouse" adhuc tigna aptum esse, et "daemonium" etiam ligna sua scribere incepit in "Clickhouse" - commodissimum, honestum esse. Adhuc eo utimur pro aliis “daemoniis”.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Tunc invenimus hanc quaestionem interesting: si methodum SQL inserendi in modum non-commodus uteris, plenam discursatam AST-substructam SQL parser cogit, quae admodum tarda est. Proinde uncinis adiecimus operam ut hoc numquam fiat. Librans oneravimus, valetudo impedit, ut, si quis moritur, notitias adhuc relinquamus. Nunc habemus satis multas tabulas quas opus habemus diversis ligaturas Clickhouse. Nos quoque de aliis usibus cogitare coepimus - exempli gratia, ligna de nginx modulorum scribere voluimus, sed nostro RPC utendo communicare nescimus. Bene, vellem eos docere quomodo saltem aliquo modo mitteret - exempli gratia, res percipere in localhost per UDP et deinde eos ad Clickhouse transmittere.

Unus gradus a solutione

Postrema schema coepit hoc spectare (quarta versio huius schematis): in singulis ministris ante Clickhouse est nginx (in eodem servo) et simpliciter proxies postulare ut localhost cum limite in numero nexuum 50 bovem. Quae res iam satis laborabat, omnia cum eo satis bona erant.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Sic viximus per mensem circiter. Omnes laeti erant, tabulas addiderunt, addiderunt, addiderunt,... In genere evenit ut modo tabulas quiddam addidissemus non admodum optimas esse (sicut modo ponamus). XVI frusta in unaquaque mensa fecimus, et intervallum ictui duorum secundorum; viginti tabulas habuimus, et unaquaeque mensa recepta octo per secundam inserta - et in hoc puncto "Clickhouse" incepit... monumenta retardari coeperunt. Ne quidem per ... Nginx per defaltam rem talem interesting rem habuit ut si coniunctiones in flumine finierint, tunc simpliciter "16" omnibus postulationibus novis reddidit.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Et hic habemus (modo trabes in ipsa Clickhouse vidi) circiter dimidium centesimas petitionum neglexit. Itaque utendo orbis altus erat multum merges erant. Hem, quid ago? Naturaliter non curavi cur exacte nexus et flumine finiantur.

Repositoque nginx cum fortuna procuratoris

Hoc nos ipsi administrare decrevi, non necesse est ut nginx - ngingx relinquas nesciat quas tabulae in Clickhouse sunt, et ngincem reposui cum procuratorio vice versa, quod ego ipse scripsi.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Quid agit? Operatur secundum bibliothecam fasthttp "goshnoy", id est, celeriter, paene quam velocissime nginx. Dolemus, Igor, si hic adestis (nota: Igor Sysoev est programmator Russicus qui nginx interretialem creavit). Intelligere potest quaenam huiusmodi sint - INDO vel SELECT - proinde diversas nexus lacunas pro diversis queriarum generibus tenet.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Proinde, etiamsi petitionibus inserendis non vacat absolvere, "selectae" transibunt, et vice versa. Et notitias in quiddam tabulas dividit - cum parva quiddam: si qui essent errores, syntaxin errores, et sic porro - ut reliquas notitias non magnopere afficerent, quia cum simpliciter tabulae quiddam insereremus, sumus. "bachi" parvas habebant, omnesque errores syntaxi tantum hanc particulam afficiebant; et hic iam magnum quiddam afficient. Parvus est 1 megabyte, id est, non ita parvus.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Synchronisationi interserens et essentialiter reponens nginx, idem essentialiter facit quod ante nginx fecit - non necesse est hoc loci "Kittenhouse" mutare. Et quia celeriter utitur, velocissimum est - potes plus quam 100 milia petitionum secundorum pro singulis per contrarium procuratorem inseruisse. Theoretice unam lineam tempore in catuli repositorium procuratorem inserere potes, sed hoc utique non facimus.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Consilium hoc spectare coepit: "Kittenhouse", ineundo procuratoris coetus multae petitiones in tabulas et vicissim tabulae quiddam eas in praecipuas inserunt.

Interfector est solutio temporalis, Kitten permanens

Hoc est an interesting forsit... Num quis vestrum usus fasthttp? Quis usus est cum fasthttp Post petitiones? Probabiliter, hoc vere factum esse non debet, quia per defaltam corpus petitioni opponit, et magnitudo quiddam in 16 megabytis appositum est. Insertio in aliquo loco observatio cessavit, et 16-chunkae megabytae ab omnibus decem milibus ministrantium pervenire coeperunt, et omnes in memoria obsistentes prius quam ad Clickhouse mittebantur. Itaque memoria excurrit, Occisor Out-Memory venit et occidit procuratorem vicissim (seu "Clickhouse", quod plus quam e contrario "edere" posset theoretice. Cyclus repetitur. Non admodum iucunda quaestio. Etsi in hoc nonnisi post aliquot menses incidimus.

Quid ego feci? Iterum, non plane velim intelligere quid acciderit. Satis manifestum puto te in memoriam non opponere. Non potui fasthttp repeciare, tamen conatus sum. Sed viam inveni ut id efficerem ut nihil opus esset repeciare aliquid, et cum mea methodo accessi in HTTP - CATULUS vocavi. Bene, logice est - "VK", "Kitten"... Quid aliud?

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Si petitio fit servo cum methodo Catena, tunc minister "meow" respondere debet - logice. Si ad hoc respondeat, consideratur quod hoc protocollum intelligat, et deinde nexum intercipiam (velut methodum talem habet), et nexus modus "rudis" ingreditur. Quid opus est? Volo continere quomodo legendi ex TCP hospites fiunt. TCP miram proprietatem habet: si nemo ex altera parte legit, scribere incipit expectare, et memoria non multum impenditur.

Itaque lego ex clientibus circiter 50 ad tempus (a quinquaginta, quia quinquaginta satis esse debent, etiam si ab alio DC enascuntur). , tempus prorsus metiri non potui, quia iam vanum est (iam ad errorem pervenit). Protocollum est binarium, id est, nomen tabulae et notitia continet; http headers nullae sunt, ideo nervum interretialem non utor (Non opus est cum navigatoribus communicare - Protocollum feci ut nostris necessitatibus conveniat). Et omnia bene facta sunt cum eo.

Tristis est quiddam mensam

Nuper invenimus per aliam interesting notam quiddam tabularum. Atque haec quaestio multo iam gravior est quam ceteri. Hanc condicionem cogitemus: iam active usus es Clickhouse, justos habes de servitoribus Clickhouse, et nonnullas petitiones habes quae legere longum tempus habent (dicimus plus quam LX secundis); et venis et alteras hoc momento... Interea "eligit" quae ante "Alter" incepit, in hac tabula non continebitur, "Alter" non incipiet - probabiliter quaedam lineamenta quomodo "Clickhouse" operatur in hunc locum. Forsitan hoc figi potest? an non potest?

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Fere patet hanc rem non tam magnae quaestionis esse, sed tabulis quiddam acerbius fieri. Quia, si dicamus, tuum "Alter" timeouts (et exeat in alia militia - non in tua, sed in imagine, exempli gratia), tunc ... tabulam quiddam delevisti, tuum "Alter" ( vel alius hospes) opportuno, deinde error "Alter" incidit - adhuc opus est ut notitia pergit scribenda: tabulas quiddam retractas (secundum eandem tabulam ac parentem tabulam), deinde "Alter" percurrit, terminatur, et quiddam incipit schema a parente differre. Secundum id quod "Alter" erat, inserta ad tabulam hanc quiddam amplius accedere non possunt - haec tristissima est.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Etiam tale signum est (fortasse quis animadvertit illud) - query_thread_log vocatur in novis versionibus Clickhouse. Defalta in aliqua litera una fuit. Hic DCCCXL decies monumenta congessimus in duobus mensibus (840 gigabytes). Hoc accidit quod ibi "inserta" scripta sunt (fortasse obiter scripta sunt). Ut dixi tibi, parvae sunt nostrae "insertae" - multum "insers" habuimus in tabulis quiddam. Patet hoc debilitari - quod in servo nostro vidi modo tibi dico. Quare? Haec alia ratio est contra tabulas quiddam utendi! Etiam tristique vestibulum arcu.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Quis scivit hoc nomen esse Spotty huic homini? VK conductos manus extulere. OK.

Circa consilia "KitttenHouse"

Solet consilia non communicata, vox? Repente eas non imples nec in aliis oculis valde bona videbis. Sed periculum sumam! Facere volumus: quiddam tabulae, ut mihi videtur, adhuc fusum sunt et opus est nobis insertionem nobis opponere. Sed adhuc nolumus in orbe opponere, ergo insertionem memoriae opponemus.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Proinde, cum "inserta" fiat, iam non erit synchrona - iam ut quiddam tabulae operatur, in tabulam parentem (bene, aliquando postea) inseret, et renuntiabit per alveum separatum, qui interiicit, praeteriisse quaeque. non habere.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Cur non possum synchronum insertum relinquere? Multo commodius praesent. Ita est, quod si ex X milibus exercituum inseras, omnia denique sint, exigua ex utroque exercitu habebis, illico iterum inseres, omnia denique sunt. Sed hoc schema laboro velim, exempli gratia, ex duabus machinis, ut celeritatem altam extrahere possis - fortasse maximam extra e Clickhouse non consequi, sed scribere saltem 10 megabytas per secundam ab una machina per procuratorem contrarium - haec ratio tam magnis quam modicis quantis adscendere debet, ut alterum pro singulis inseri non possit, ut asynchronum sit necesse est. Et eodem modo debent venire confirmationes asynchronae, insertione peracta. Sciemus utrum transierit necne.

Praecipuum est quod in hoc schemate de insertione facta vel non pro certo scimus. Finge hanc condicionem: habes mensam quiddam, aliquid scripsisti in eam, tum, dicamus, mensa abiit in modum solum lecta et ruborem quiddam temptavit. Ubi erit notitia ibimus? Manebit in quiddam. Sed hoc certi esse non possumus - quid si alius error sit, propter quem notitia non remanebit in quiddam ... (Adres Alexey Milovidov, Yandex, ClickHouse elit) An manebit? Semper? Alexey convincit nos omnia bene esse. Non habemus quod non credamus. Sed tamen omnia: si tabulis quiddam non utimur, quaestiones cum illis nullae erunt. Creare bis tot tabulas etiam incommodum est, quamvis in principio magnae difficultates non sint. Hoc est consilium.

Fama Lectio

Nunc de lectione fama est. Nos quoque instrumentum proprium hic scripsimus. Vide- tur, cur hic instrumentum tuum scribat? Aliquanto pauci levaverunt manus... Et quis contentus officio Tabix? Bene, non sumus felices, et non est commodissimum visum notitia. Pulchrum est pro analyticis, sed plane non optimized videndi. Ita scripsi mea, mea interface.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Valde simplex est - tantum notitia legere potest. Nescit ostendere quomodo graphics, quid facere nescit. Sed demonstrare potest quid opus sit: verbi gratia, quot ordines sint in tabula, quantum spatium occupet (sine abrupto in columnas), hoc est, prae- cipuum interface quod nobis opus est.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Et simillimum est Sequel Pro, sed solum factum est in Twitter Bootstrap, et versio secunda. Quaeris: "Yuri, cur in secunda versione?" Quo anno? MMXVIII? In genere hoc satis diu abhinc pro "Musculo" (MySQL) feci et modo duas lineas in quaestionibus ibi mutavi et pro "Clickhouse" operari coepi, pro qua gratias speciales! Quia parser uni "musculi" simillimus est, et interrogationes sunt valde similes - commodissimae, praesertim primo.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Bene tabulas spargere potest, tabulae structuram et contenta monstrare, per columnas percolare te permittit, interrogationem ostendit quae inde evenit, ordines affectos (quot per consequens), id est, in basic res ad viewing data. Satis celeriter.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Est etiam editor. Sincere conatus sum editorem totum de Tabix surripere, sed non potui. sed aliquo modo operatur. In principio, quod omnia.

"Clickhouse" aptum densum

Cupio tibi dicere Clickhouse, quamvis problemata omnia descripta, lignis valde aptum. Maxime, quaestionem nostram solvit - valde velox est et permittit te ligna per columnas eliquare. In principio, quiddam tabulae non bene fecerunt, sed plerumque nemo scit cur ... Fortasse nunc melius nosti ubi habeas quaestiones.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

TCP? Fere in VK uti solet UDP. Et cum ego TCP... Utique nemo mihi dixit: “Yuri, quid dicis! Non potes, debes UDP." Evenit ut TCP non ita FORMIDULOSUS. Restat ut, si decem milia compositorum activarum quae scribis habes, paulo diligentius parare debes; sed potest ac facile.

Pollicitus sum post "Kittenhouse" et "Lighthouse" in HighLoad Siberiae, si omnes nostro publico "VK backend" subscriberent... Et scis, non omnes subscripserunt... Certe non exigo ut nostro subscribas. publicum. Adhuc multi sunt ex vobis, licet aliquis scandalizatus sit, sed tamen subscribo quaeso (et hic habeo oculos sicut felem facere). Id est ad eam per viam. Gratias tibi valde! Github nostrum est hic. Comae tuae cum Clickhouse mollis et sericeus erit.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Moderators: - Amici, nunc pro quaestionibus. Statim post testimonium appreciationis et relationem de VHS exhibemus.

Yuri Nasretdinov (inferius ad YN); – Quomodo potuisti referre meam famam in VHS, si modo finita esset?

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Moderators: – Tu quoque plene determinare non potes quomodo “Clickhouse” laborabit necne! Amici, 5 minuta pro quaestionibus!

quaestiones

Quaeritur ab auditoribus (infra ad Q); - Bona dies. Optime tibi gratias refero. Habeo duas quaestiones. Incipiam aliquid frivolum: num numerus litterarum t nomine "Kittenhouse" in diagrammatibus (3, 4, 7. ...) afficit feles satisfactionem?

YN: - Quantitas quid?

Z: – Epist. Tria t, alicubi circa tria t.

YN: - Nonne id reposui? Bene sane habet! Haec alia producta sunt - Modo te totum hoc tempore decepi. Bene, kidding sum - non refert. Ah hic! Non, idem est, typum feci.

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Z: - Gratias tibi. Secunda quaestio gravis est. Quantum intelligo, in Clica, quiddam tabulae in memoria solum vivunt, non opponuntur disco et proinde non pertinaces sunt.

YN: - Ita.

Z: – Eodemque tempore, cliente tuo buffers ad disci, quod cautionem quandam eorundem lignorum traditionis implicat. Sed hoc apud Clickhouse minime praestatur. Explicate quomodo cautio exerceatur propter quid?... Haec machinatio fusius

YN: – Ita, theoretice contradictiones hic nullae sunt, quia cum Clickhouse cadit, actu deprehendere potes eam in decies centena millia diversis modis. Si Clickhouse fragore (si perperam desinens) aliquantulum stipes tuae duriter loquendo retorquere potes, quem scripsisti et ex quo omnia subtiliter subtiliter incipias. Dicamus te minutam rewind, id est, consideratur te minuto omnia rubuisse.

Z: - Id est, "Kittenhouse" fenestram longiorem tenet et, si casus ferat, agnoscere et rewind?

YN: Sed hoc est in ratione. In praxi, hoc non facimus, et traditio certa est a nulla in infinitum tempora. Sed quis orci ex. Nos contenti sumus quod si Clickhouse ingruat aliqua de causa vel ministri "reboot" tunc paulum amittimus. In reliquis, nihil erit.

Z: - Salve. A principio quidem mihi visum est ab initio relationis UDP utere. Habes http, omnia quae... Et pleraque problemata, quae descripsisti, ut intelligo, causata sunt hac particulari solutione...

YN: - Quid utimur TCP?

Z: - Essentialiter sic.

YN: - Non.

Z: – Cum fasthttp quod problemata habuisti, cum nexus quos habuisti. Si modo UDP usus esses, aliquo tempore te servavisses. Bene, cum longas nuntios vel aliquid aliud problemata essent.

YN: - Cum qua?

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Z: – Longis nuntiis, cum non conveniat in MTU, aliud... Bene potest esse problemata sua. Quaeritur: cur non UDP?

YN: - Auctores credo, qui TCP/IP elaboraverunt, multo plus sapiunt quam me et melius sciunt quam me quomodo fasciculos serialize (ut eant), simul accommodare fenestram mittens, retiaculum non onerare, opiniones de quibus dare non legitur, non computatis in altera parte... Haec omnia problemata, mea sententia, essent in UDP, tantum vellem etiam plura scribere codicem quam iam scripsi ut idem ipse ac verisimilius efficeret. male. Non vere amo scribens in C, nedum ibi...

Z: - Modo opportunum! Missus ok nec quidquam expecta - est omnino asynchronum. Intimatio reversa est omnia denique, eo pacto pervenit; Si non venit, malum est.

YN: – Mihi utrumque opus est – mihi opus est ut utrumque cum cautione traditionis et sine traditionis cautione mittere possim. Hae duae diversae missiones sunt. Necesse est ne ligna aliqua amittere vel in ratione non amittere.

Z: – Non moror tempus. De hoc plura dicenda sunt. Gratias tibi.

Moderators: - Quis habet quaestiones - manus ad caelum?

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

Z: - Salve, Sasha sum. Alicubi in medio relationis apparuit sensus, praeter TCP solutionem aliquam promptam fieri posse Kafka.

YN: – Bene... Dixi tibi me nolle intermediis uti, quia ... in Kafka, evenit ut decem milia exercituum habeamus; etenim plus habemus - decem milia exercituum. Potest etiam cum Kafka sine procuratoribus molestare. Praeterea, praesertim, dat "latentiam", dat extra exercitum quas habere debes. Sed eas habere nolo - volo...

Z: "Sed tandem huc usquam evenit."

YN: – Non, nullae sunt exercitus! Haec omnia operatur in Clickhouse exercituum.

Z: - Bene, et "Kittenhouse", quod est contrarium - ubi habitat?

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

YN: – In exercitu Clickhouse, nihil ad disci non scribit.

Z: — Fingamus.

Moderators: - Esne satiatus? Stipendium vobis dare possumus?

Z: - Etiam potes. Nam multum fusum ad idem obtinendum, et nunc - prior responsio in argumento TCP contradicit, mea sententia, situ. Hoc modo sentit sicut omnia genibus meis fieri potuisse multo minori tempore.

YN: – Et etiam cur Kafka uti nolui, quia satis multae querellae erant in chat quod Telegram Clickhouse quod, exempli gratia, epistulae de Kafka amissae sunt. Non ab ipsa Kafka, sed in integratione Kafka et Clickhaus; aut aliquid non coniungere est. Dure loquendo oporteret tunc Kafka scribere clienti. Non puto simplicius aut certius esse posse solutionem.

Z: – Dic mihi, cur non tentasti quaslibet queues vel aliquas communes negotiationes? Cum dicis asynchrony per queue ligna se mittere posses et responsionem asynchronously per queue accipere?

HighLoad ++, Yuri Nasretdinov (VKontakte): quomodo VK notitias in ClickHouse ex decem milibus servientium inserit

YN: - Quaeso suadeant quid stantibus anteponere posset?

Z: – Quaelibet, etiam sine cautione quod in ordine sunt. Quidam genus Redis, RMQ...

YN: – Sentio me Redis verisimillimum esse non posse tale volumen insertionis trahere etiam in unum exercitum (in sensu plurium ministrantium) qui e Clickhouse extrahit. Hoc nullo argumento possum revocare (hoc non probavi), sed mihi videtur Redis hic non optimam esse solutionem. In principio, haec ratio considerari potest ut nuntius tumultuarius queue, sed quae tantum ad formandam "Clickhouse"

Moderators: - Yuri, gratias tibi valde. Propono hic finire questiones et responsiones, et dicamus quis eorum qui interrogaverint, dabimus librum.

YN: – Librum primo interroganti quaestionem dare vellem.

Moderators: - Mirabile! Magna! Fabulosum! Gratias multas!

Quidam ads

Gratias tibi ago pro manendo nobiscum. Placetne tibi vasa nostra? Vis videre plus interesting contentus? Suscipe nos ponendo ordinem vel commendando amicos; cloud VPS for developers from $4.99, unicum analogum de ingressu servientibus, quod a nobis pro vobis est inventum: Tota veritas de VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps e $19 vel quomodo ministrator communicabit? (praesto cum RAID1 et RAID10, usque ad 24 coros et usque ad 40GB DDR4).

Dell R730xd 2x vilius in Equinix Tier IV centri Amstelodami? Tantum hic 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV from $199 in Belgio! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - from $99! Read about Quomodo aedificare infrastructuras: Ed. classis cum usu Dell R730xd E5-2650 v4 servientibus valet 9000 nummis Europaeis?

Source: www.habr.com

Add a comment