Vlákno názorů k článku Jak nikdy nespouštět službu, aneb kdo posílá tajemný SIGKILL? od Pichi - To že si v enterprise firmě celá armáda...

  • Článek je starý, nové názory již nelze přidávat.
  • 22. 1. 2018 11:25

    Pichi

    To že si v enterprise firmě celá armáda enterprise vývojářů nepřečte dokumentaci upstartu a neví pořádně jak fungují procesy v *nix systémech nebudu vůbec radši komentovat, ale zaujala mě jiná část článku začínající kouzelnou větou:

    Námi vyvinutý systém pro big data analýzy (v každodenních špičkách řádově 100k událostí/s, nekomprimovaných 100 MB/s) používá na příjmové straně dvě vrstvy oddělených Kafka clusterů.

    Wow, s obtížemi hledám slova. Nevím jestli je to překlep, ale jestli tohle někdo považuje za big data, tak je mi ho upřímě líto. 100 MB/s nekomprimovaných dat je směšně málo. K 100k events/s se dá říct prakticky totéž. Vždyť takový datový tok lze bez zálohování zvládnout na běžném (trochu lepším) dnešním PC.

    Události z Kafky vyčítají Input Filtry, jejichž úkolem je konverze starších formátů na nový, čištění dat, opravy chyb způsobených bugy v historických verzích klientů, obohacení událostí o GeoIP lokace a podobně. Data se zapisují zpět do té samé DC Kafky, ale do topiků s jinými jmény.

    Aha, tady je zakopaný pes. Takových architektur už jsem viděl. To je těžké, když SW architekt neví jak funguje moderní HW. Docela spolehlivý způsob jak vyhazovat peníze lopatou oknem a ohřívat planetu. Těch spálených MWh. Vsadím se, že uhádnu v čem je to napsané.

    Autor článku už několikrát ve čtyř-nodovém clusteru pozoroval datové přenosy stovek MB/s, resp. vyšších stovek tisíc zpráv/s. Limitním faktorem bývá spíše rychlost síťových propojů než disků nebo aplikačního kódu.

    Počkat, nepsal autor, že mu tam teče nekomprimovaných 100 MB/s ve špičce? Kolik mu tam teče komprimovaných MB/s průměrně, že mu saturuje síťové spoje v mnohanodovém clusteru? Není tam něco zásadně špatně v architektuře systému? No když ty data prožene kolečkem disk->pamět->síť->pamět->CPU->pamět->síť->pamět->disk a to několikrát za sebou, tak se není moc čemu divit. Komu není s hůry dáno, v apatice nekoupí. Blahoslavení chudí duchem ... Atd. Jo když je SW architekt nemehlo i takové směšné datové toky mohou být big data. Dnes má big data už úplně každý. Big data do každé rodiny!

  • 22. 1. 2018 13:35

    Filip Jirsák
    Stříbrný podporovatel

    Vždyť takový datový tok lze bez zálohování zvládnout na běžném (trochu lepším) dnešním PC.
    8 TB denně na trochu lepším PC? Řekl bych, že by vám brzy došlo místo na disku.

  • 22. 1. 2018 15:57

    Pichi

    Vždyť píšu, bez zálohování. Dokonce jste to zkopíroval v citaci. Na zálohování vám stačí normální NAS řešení. Kromě toho těch 100MB jsou špičky, průměr klidně může být 10x menší. To v článku není a ani není předmětem mé odpovědi.

  • 22. 1. 2018 17:38

    Filip Jirsák
    Stříbrný podporovatel

    No ale taky bez zpracování, a to už jste nenapsal. Oni těch 8 TB dat denně nesbírají proto, aby je večer smazali a nic po nich nezůstalo.

  • 22. 1. 2018 18:14

    Pichi

    Běžné 4 GHz čtyřjádro. Například komprese zstd 1.1.3 -1 430 MB/s na jednom jádře! Těch 100MB/s je špičková hodnota. Přepokládejme 10x méně celodenní průměr. (I těch 100MB/s musíme brát s rezervou. Stačí se podívat jak se z 100k událostí za s stalo ve skutečnosti ani ne 30k/s viz graf Globální graf počtu zkonzumovaných zpráv přímo v článku!) Pro všechna čtyři jádra to máme nějakých 1600 cyklů na 1B. Na moderním CPU můžu dělat až čtyři instrukce na cyklus, ale klidně počítejme míň. Stejně, co sakra celou tu dobu budu dělat? Jenže to nesmím ty data tahat jak kočka koťata z disku, do paměti, po síti ... Vy jste v životě skutečné Big Data řešení neviděl ani z rychlíku stejně tak jako autor článku, protože to by jste musel začít právě těmito výpočty a začít počítat a ne vyhazovat výkon oknem. Pro rychlou představu: Receiverů a Input Filtrů je 11, Kafka brokerů celkem 14, ... 11 Receiverů a Input Filtrů? To nebudou desktopová čtyřjádra, to budou nejméně osmijádra, každé aspoň 32GB RAM. Bezmála stovka 4GHz CPU jader čekajících na pomalé paměti a IO. Označit tohle za Big Data je k smíchu nebo s píš k pláči.

  • 22. 1. 2018 21:53

    Filip Jirsák
    Stříbrný podporovatel

    Jeden o voze, druhý o koze. Vy pořád předpokládáte, že ta data přijmou, pak je možná zkomprimují, a zahodí je. Já předpokládám, že ta data přijmou a ukládají je, aby s nimi mohli dále pracovat. Všechny ty vaše následující výpočty mohou být správně, problém je ale hned na začátku v předpokladu, že ta data systémem jenom protékají a na konci co nejrychleji mizí v koši. Vy možná říkáte Big Data něčemu jinému, nicméně vaše příspěvky dost diskvalifikuje fakt, že neustále vypočítáváte jenom proplouvání zpráv systémem, ale vůbec nepočítáte s tím, že by se ty zprávy nějak zpracovávaly.

  • 23. 1. 2018 0:31

    Pichi

    Vy jste koukám čtenář myšlenek. Co vy výte co já předpokládám? Vy především nemáte vůbec představu jak vypadají skutečná big data a jak směšný je systém, který spracovává 100kr/s a 100MB/s nekomprimovaných dat rozprostřený přes několik datových center a používající několik desítek serverů. Jak nesmyslně je takový systém navržený. Vy si vůbec neuvědomujete, jak směšné to je a čeho je současný HW schopen a jak je smutné, že někdo je schopen tak směšný systém vydávat za big data. Já počítám s tím, že se budou ty zprávy dále zpracovávat, jenže tady je problém, jak absurdním způsobem se to děje. Jak neskutečně postavené je to celé na hlavu. Ten systém je v první řadě zbytečně nákladné topení.

  • 23. 1. 2018 7:34

    Filip Jirsák
    Stříbrný podporovatel

    Co předpokládáte vím z toho, co píšete. Protože jste o zpracování těch dat nenapsal ani čárku, naopak pořád dokola píšete jenom o jejich přesouvání a tváříte se, že to je všechno, že tím všechno končí. A opakujete to pořád dokola, i v tomto svém komentáři. Píšete, že „spracovává 100kr/s a 100MB/s nekomprimovaných dat“, jenže ve skutečnosti to znamená, že je 100 kr/s a 100 MB/s nekomprimovaných dat na vstupu. A z toho může vzniknout zpracování třeba 110kr/s, nebo 200 kr/s, nebo třeba taky 10 000 kr/s, a to samé platí i pro objem zpracovávaných dat. Ten váš předpoklad, že objem zpracovávaných dat se rovná objemu vstupních dat, je totiž splněn jenom v jediném případě – když ta přijatá data hned mažete. I kdybyste jenom počítal hash dat přijatých za celý den, zpracováním vám vznikne oproti těm příchozím zprávám ještě jedna zpráva navíc (obsahující ten hash), a zpracujete o délku hashe větší objem dat. No a ve skutečnosti v Avastu nad těmi daty nedělají takhle hrubou agregaci, ale ukládají je a pak je různě prohledávají, takže takže objem zpracovaných dat není objem přijatých dat plus nějaké pidikonstanta, ale objem zpracovaných dat jsou spíš nějaké násobky přijatých dat.

    Kdybyste počítal s tím, že se ta data budou dále zpracovávat, nemůžete nikdy napsat, že přírůstek 56 TB dat týdně se dá bez problémů zpracovávat na běžném (trochu lepším) PC. Protože na běžném trochu lepším PC těch 56 TB dat ani neuložíte.

    Jak už jsem vám psal, vy si zřejmě pod Big Data představujete něco jiného, než o čem je článek. Já vám to neberu. Akorát mne vaše „opravdová Big Data“ nezajímají, protože nemám žádné využití pro systém, který „zpracovává“ sebevětší množství dat tím způsobem, že je co nejrychleji maže.

  • 23. 1. 2018 9:37

    Pichi

    Dovolte mi, abych citoval krásnou definici Big Data z wikipedie, se kterou jsem se v mírně jiném znění setkal před více než dekádou, kdy jsem se problematikou Big Data začal prefesionálně zajímat.

    Big data is data sets that are so voluminous and complex that traditional data processing application software are inadequate to deal with them.

    Je to vskutku krásná a elegantní definice a podle této jednoduché definice se o Big Data nejedná. Ten objem je směšný a použit je naprosto běžný software, který dnes na zpracování trochu většího objemu dat používá prakticky každý.

    Čistě z teorie informace, zpracováním dat žádná nová informace nemůže vzniknout. Můžete ty data převracet tisíckrát naruby, ale nezískáte nic nového. Pokud vám při zpracování dat vzrůstá jejich objem, znamená to, že zhoršujete kvalitu kódování obsažené informace. Může to být praktické, třeba z hlediska rychlosti dalšího spracování, například indexace dat. Ale pořád je to jen vaše praktikalita a pokud vám tím objem dat narůstá řádově, tak rozhodně Big Data nemáte, protože, kdyby jste je měl, tak si to nemůžete dovolit.

    Pokud vám zpracováním 100kr/s interně vzniká 10 000 kr/s je to chyba vaší architektury, vašeho designu a je to jádro pudla, co je na tom designu a na té architektuře špatně. A nejste sám, takových naprosto špatných a nesmyslných designů, už jsem za svou kariéru viděl a ještě uvidím.

    Pokud by jste měl skutečná Big Data, tak vaší hlavní a nejdůležitější starostí bude jak snížit objem dat při zachování maximálního množství informace v nich obsažené. To že si můžete dovolit řádově zvýšit objem dat je samo o sobě důkazem, že Big Data nemáte. Už jen tento samotný fakt vás z používání pojmu Big Data diskvalifikuje.

    Je těžké říct co jsou Big Data, ale v některých případech je velmi jednoduché poznat, co Big Data nejsou. Například použití naprosto běžných technologií, plýtvání datovými toky, řádový nárůst datových toků v průběhu zpracování atd. Lidé s tím pojmem žonglují aniž by znali jeho obash. Používají ho jako floskuli, jako marketingový pojem a každý je chce mít jan aby se nimi mohl chlubit. Jenže jako profesionál v oblasti vám řeknu, skutečná Big Data nechcet mít. Věřte mi. Nechcete. Skutečná Big Data jsou PITA.

    Nazávěr se musím ohradit proti tvrzení, že navrhuji systém, který „zpracovává“ sebevětší množství dat tím způsobem, že je co nejrychleji maže. O mazání dat jsem nikde nepsal, to slovo jsem nikde nepoužil. Takže si toho slaměného panáka nechte od cesty. Nepodsouvejte mi své vlastní zcela nesmyslné představy. Samozřejmě, že nemůžete na běžné PC uložit přírůstek 56TB dat týdně. Jenže já sjem psal o zpracování a zpracovat je můžete. Uložit si je samozřejmě musíte do adekvátního úložiště a dokonce jsem to i explicitně napsal. Jenže to by jste si do mě nesměl projektovat své představy. A i k tomu obyčejnému PC jde připojit NAS a vzhledem k tomu datovému toku by bylo možné jak zálohovat vstupní stream ještě by mi spousta volného IO zbyla na výstup do další analytiky. (Mimochodem zrovna teď mám na zcela obyčejném PC uložených 8TB dat a počítám, že se mi tam nějaké 4TB vejdou. Magic. Kdybych tam místo toho jednoho SSD dal pár obyčejných komoditních SATA HD, tak bych tam tam ten směšný vstupní tok mohl klidně pár dní skladovat jako first level backup. Abych předešel nedorozumnění a dalším slaměným panákům, pro skutečné řešení bych doporučil pořádný NAS.)

  • 23. 1. 2018 13:11

    Ondra Satai Nekola
    Zlatý podporovatel

    A teď to děláš rok, dva, na tom NASu máš nějaký ten petabyte... a na tom svém komoditním PC musíš dopočítat nějakou statistiku přes všechna ta data.

    Příjemnou zábavu ;-)

  • 23. 1. 2018 15:14

    Pichi

    Jééé, vykládejte o tom někomu, kdo napsal vlastní speciální realtime on-line in-memory clusterovou analytickou databázi, protože komoditní SW se ani omylem nechytá. O čem mě ještě poučíte? Zkuste mě třeba poučit, že si mám před jídlem umýt ruce.

  • 23. 1. 2018 17:26

    Ondra Satai Nekola
    Zlatý podporovatel

    To je super, ze kdyz jsi napsal vlastni specialni realtime on-line in-memory clusterovou analytickou databazi, ktera nebyla NIH, diky cemuz poznas, ze to jinde delaji blbe, aniz bys vedel, co presne vlastne delaji a jake na to jejich reseni byly pozadavky ;)

  • 23. 1. 2018 18:38

    krauser

    Red herring neni situace, kdy si z tebe nekdo dela legraci, protoze ses ztrapnujes svoji aroganci a neznalosti :)
    Programator ses mozna dobrej, mozna jsi i nejake big data reseni stvoril (popravde, je mi to osobne celkem jedno pro tuhle diskusi), ale tady v diskusi ses projevil jako arogantni blbec, ktery se tu povysuje, aniz vlastne vi, co ten system resi, neresi, jake analyzy provadi, jake jsou na nej vubec pozadavky atd. :-)

  • 23. 1. 2018 17:41

    Filip Jirsák
    Stříbrný podporovatel

    To ta vlastní speciální realtime on-line in-memory clusterová analytická databáze nebyla cloudová, AI a IoT? To je tedy velké zklamání…

  • 23. 1. 2018 13:49

    Filip Jirsák
    Stříbrný podporovatel

    Je to vskutku krásná a elegantní definice a podle této jednoduché definice se o Big Data nejedná. Ten objem je směšný a použit je naprosto běžný software, který dnes na zpracování trochu většího objemu dat používá prakticky každý.
    Ano, používají software, například Hadoop, který se běžně ke zpracování Big Data používá. Operovat tradičním zpracováním je dnes problém, protože dnes už se běžně zpracovávají i takhle velké objemy dat. Je možné, že nejde o Big Data podle nějaké definice, na druhou stranu je to větší objem dat, než kolik můžete zpracovat tradičním způsobem na jednom počítači.

    Pokud vám zpracováním 100kr/s interně vzniká 10 000 kr/s je to chyba vaší architektury, vašeho designu a je to jádro pudla, co je na tom designu a na té architektuře špatně. A nejste sám, takových naprosto špatných a nesmyslných designů, už jsem za svou kariéru viděl a ještě uvidím.
    Já tohle nedělám, vycházím jenom z článku a z pár rozhovorů s několika lidmi z Avastu. Ani kdyby to takhle bylo, nemusí to být špatně – data se nezpracovávají proto, abyste je jen tak převaloval na disku, ale proto, že potřebujete něčeho dosáhnout, a ty data k tomu potřebujete. A pokud pro splnění toho cíle je potřeba ta data 10× nafouknout (třeba aby v nich bylo možné snadno vyhledávat), tak se vám při tom zpracování ta data prostě desetkrát nafouknou. A je to v pořádku, protože to zpracování není cílem, je to jen nástrojem. Představte si to třeba na jednoduchém textu, který zkomprimujete na 1/3 velikosti. Cílem je, aby ho mohl přečíst člověk, takže ten komprimovaný text se vám během zpracování nafoukne na trojnásobek. Ale není to chyba ani architektury ani designu, je to prostě dosažení požadovaného cíle.

    Je těžké říct co jsou Big Data, ale v některých případech je velmi jednoduché poznat, co Big Data nejsou.
    To je možné, ale pro článek to není vůbec podstatné. Pokud vás to nazvání Big Daty v článku tolik irituje, povzneste se nad něj a nazývejte si to klidně Small Data.

    O mazání dat jsem nikde nepsal, to slovo jsem nikde nepoužil.
    To slovo jste nikde nepoužil, ale je to jediný způsob, jak docílit toho, že celkový objem zpracovaných dat se rovná objemu vstupních dat. Už jsem vám to vysvětloval, že když ta data budete chtít jenom někam zapsat, objem zpracovaných dat je dvojnásobkem objemu vstupu – X dat načtete, X dat uložíte, takže jste dohromady zpracoval X+X.

    Jenže já sjem psal o zpracování a zpracovat je můžete.
    Uložení je také zpracování. Zrovna u velkých objemů dat je uložení dost podstatnou částí zpracování.

    Uložit si je samozřejmě musíte do adekvátního úložiště a dokonce jsem to i explicitně napsal. […] A i k tomu obyčejnému PC jde připojit NAS
    Aha, takže to vaše zpracování na běžném PC znamená, že to zpracujete na běžném PC a připojeném NASu. A nebo na běžném PC a připojeném clusteru serverů…

    tak bych tam tam ten směšný vstupní tok mohl klidně pár dní skladovat
    Fajn, takže už jste připustil, že je dobré ta data alespoň někam uložit. Jenže pokud vím, Avast ta data nechce mít jenom někde uložená. Oni s nimi chtějí pracovat, vyhledávat v nich, filtrovat je, agregovat. Ne jak přicházejí, ale dodatečně – někdo si vzpomene, že chce udělat takový a takový výběr nad daty týden zpět (napamatuji si, kolik dat zpětně si nechávají). Aby to bylo možné, nestačí mít ta data co nejefektivněji uložená, ale také zindexovaná – prostě připravená k dalšímu zpracování. Jak už jste sám uznal, tím objem dat narůstá, přestože se tím jejich informační hustota ředí.