Hlavní navigace

Názor k článku Erlang: struktury a ETS tabulky od Miroslav Prýmek - Lojzo, díky za pokračování seriálu. Dovolím si drobné...

  • 17. 12. 2014 9:04

    M. Prýmek

    Lojzo, díky za pokračování seriálu. Dovolím si drobné poznámky:

    Je fakt škoda, že se takhle jedinečnému seriálu korektor víc nevěnuje. Tento díl obsahuje spoustu překlepů a stylistických chyb (např. větu "Mnesia za nutnost replikací umí dostat data přímo do aplikace." jsem musel přečíst několikrát, abych vůbec pochopil, co říká :) O Erlangu je toho v češtině málo, takže, Roote, tady by to stálo za to trochu na korekci máknout! ;)

    K tomuhle dílu:

    Zmínil jsi, že ETS tabulky umírají spolu s procesem a že je jde mezi procesy trasportovat. Myslím, že by stálo aspoň za jednu větu, že jde použít heir process, který tabulku v případě smrti vlastníka automaticky převezme. To je docela klíčová vlastnost pro spolehlivost, která imho za zmínku stojí, aby bylo jasné, že ETS tabulky nejsou jenom obdoba lokálního asociativního pole, ale spíš obdoba globální proměnné/databáze, která u Erlangu nahrazuje sdílený stav.

    Trochu jsem se taky nemohl ubránit dojmu, že v článku vzniká trochu zmatek v pojmech synchronní zprávy vs. serializace - jakoby každá věc, která je "důležitá" musela být udělána "synchronně", což nutně není pravda. "Důležité" věci by primárně měly být udělány serializovaně (aby byly na jednom místě, v jednom procesu, dala se kontrolovat konzistence apod.). A serializované akce můžu klidně vyvolávat i asynchronními (cast) zprávami. Synchronní jsou nutné jenom tehdy, kdy chci mít navíc i jistotu, že se zpráva nemůže ztratit v případě smrti procesu nebo chci čekat na výsledek. Pokud mám posílající a přijímající procesy slinkované, pak můžu klidně použít asynchronní zprávu, protože při pádu volaného stejně umře i volající. A asynchronní zprávy mají tu podstatnou výhodu, že nevytváří deadlocky. Je to trochu nuance, ale pro začátečníka myslím celkem důležitá, protože by mohl nabýt dojem, že má všude používat cally a můžou ho pak zbytečně začít trápit deadlocky a timeouty...

    Jsou to jenom drobný připomínky, jinak je seriál super a díky moc za něj, Lojzo :)