IT pro otrlé

O lidech, o vztazích, o politice, o názorech, o opicích a o ufonech.

Moderátor: Faskal

Odpovědět
Sosacek
Příspěvky: 25732
Registrován: 14. 7. 2004, 19:30

IT pro otrlé

Příspěvek od Sosacek »

Vite nekdo jak funguje mapreduce?
Dokud to ještě bylo příčetné, tak to bylo v rozličném.
F
But nobody came.
Uživatelský avatar
Almad
Příspěvky: 631
Registrován: 12. 9. 2006, 23:19
Kontaktovat uživatele:

Re: IT Poradna

Příspěvek od Almad »

Sosacek píše:Vite nekdo jak funguje mapreduce?
Dobře.

(Co konkrétně na něm? Ten algoritmus je celkem solidně popsaný na wiki, ale jinak je to spíš architektura, takže bez konkrétního použití se na to těžko odpovídá. Distribuce přes Hadoop? Použití v databázích, Mongo/Couch?)
Starý člen http://rpg.church
Sosacek
Příspěvky: 25732
Registrován: 14. 7. 2004, 19:30

Re: IT Poradna

Příspěvek od Sosacek »

Jako nahrada relacnich databazi? V porovnani s relacnima databazema?
But nobody came.
Uživatelský avatar
Almad
Příspěvky: 631
Registrován: 12. 9. 2006, 23:19
Kontaktovat uživatele:

Re: IT Poradna

Příspěvek od Almad »

Sosacek píše:Jako nahrada relacnich databazi? V porovnani s relacnima databazema?
Já nerozumět jazyk tvá kmen. Map/Reduce je způsob distribuce výpočetního výkonu, ne způsob ukládání dat. Mluvíš o NoSQL? Kterém NoSQL konkrétně - dokumentových databázích? Distribuovaných key-value storech? Persistentních/nepersistentních?

Co máš za problém, který chceš vyřešit? ,)
Starý člen http://rpg.church
Sosacek
Příspěvky: 25732
Registrován: 14. 7. 2004, 19:30

Re: IT Poradna

Příspěvek od Sosacek »

Hele, mi nekdo rikal, ze mapreduce je uplne ve vsem horsi nez sql a ze to vymysleli uz pred hroznemoc lety ale ze se to neujalo a proto je to hrozne spatne.

Jsem presvedcenej, ze je to debil. Hledam duvody proc.
But nobody came.
Uživatelský avatar
Almad
Příspěvky: 631
Registrován: 12. 9. 2006, 23:19
Kontaktovat uživatele:

Re: IT Poradna

Příspěvek od Almad »

Sosacek píše:Hele, mi nekdo rikal, ze mapreduce je uplne ve vsem horsi nez sql a ze to vymysleli uz pred hroznemoc lety ale ze se to neujalo a proto je to hrozne spatne.

Jsem presvedcenej, ze je to debil. Hledam duvody proc.
Jo tak. Potom bych se ho zeptal, jak je vyřešená distribuce SQL dotazů v distribuovaném, neshardovaném datovém úložišti. Mám pocit, že tam někde SQL končí a mr začíná ,)

Samozřejmě nemluvě o tom datovym úložišti pod tim. Zeptej se ho jak rozšiřuje schéma tera- až peta- bajtovýho datovýho úložiště bez ztráty dostupnosti. Něco jako alter table add column nad terabajtovou tabulkou, nad kterou máš tisíce req/s (z toho stovky zápisů) a nemůžeš si dovolit ty klienty odříznout.

A pak ať porovná cenu (protože s rdbms afaik nejsou clustery zadarmo, s hadoop jo).
Starý člen http://rpg.church
Sosacek
Příspěvky: 25732
Registrován: 14. 7. 2004, 19:30

Re: IT Poradna

Příspěvek od Sosacek »

Almad píše:neshardovaném datovém úložišti
He?

Jinak, hadoop je ta apachi implementace, co?

Jak se pouzivaji dokumentov databaze? Umim si predstavit jak to snadno pouzivat jako sitovou a perzistentni hashtabulku (ostatne memcached ruluje), ale jak se v tom vyhledava?
But nobody came.
Uživatelský avatar
Almad
Příspěvky: 631
Registrován: 12. 9. 2006, 23:19
Kontaktovat uživatele:

Re: IT Poradna

Příspěvek od Almad »

Sosacek píše:
Almad píše:neshardovaném datovém úložišti
He?
No tak jeden ze standardních způsobů škálování je sharding, tj. že rozdělíš data do různých úložišť podle nějakého parametru (třeba podle lokace...prostě uživatele z Evropy a Ameriky rozdělíš do dvou datacenter. Nebo třeba že tweety budes shardovat podle uživatelských účtů.) a slíbíš si, že je nebudeš kombinovat (shardwalking). V okamžiku kdy si to nemůžeš dovolit, tak máš to datacentrum jedno a nejsi rád.
Sosacek píše:Jinak, hadoop je ta apachi implementace, co?
Yup
Sosacek píše:Jak se pouzivaji dokumentov databaze? Umim si predstavit jak to snadno pouzivat jako sitovou a perzistentni hashtabulku (ostatne memcached ruluje), ale jak se v tom vyhledava?
Bacha, síťová persistentní hashtabulka jsou key-value datastores. V těch se hledá dobře, když znáš klíč, na to jsou dělaný (aby byly kurva rychlý). See třeba http://gist.github.com/86714

Dokumentový databáze jsou trochu jako objektový nebo XML databáze, akorátže fungujou. Ukládaj strukturovaný data, ale jako standard se chytá JSON. Vyhledávání jak v čem, třeba v MongoDB triviálně, protože to podporuje ad-hoc dotazy. Jinde musíš používat ty MR funkce (CouchDB třeba), see http://wiki.apache.org/couchdb/Introduc ... chDB_views

Obecně je to stavěný na to že máš denormalizovaný data a rychlej pohyb v nich. Já teda teď intenzivně používám to Mongo a pro můj účel (ukládání metainformací o buildech z CI) naprostá spokojenost, předevšim asynchronní zápis je přesně to co sem potřeboval a data co dostávám jsou beztak JSON, takže rozklad do relačních struktur je zbytečnej krok navíc.

EDIT: Přestávám prokastrinovat a vracim se k práci ,) Jestli se v tom chceš vrtat, tak klíčová slova jsou NoSQL, redis, hadoop, project voldemort, couchdb, mongodb, hypertable. Každopádně pointa neni nahradit RDBMS, ale být k nim komplementární, vyřešit problémy které mají v určitých oblastech, respektive kde nestačej a/nebo na to potřebuješ kurva drahý enterprise cluster řešení. Takže něco jako skorodatovésklady, high availability, lazy schema update/upgrace nebo přímo schemaless, master-master nebo spíš distribuované node-based replikace, a build-in sharding. Obecně se taky obchází nebo rovnou sere na ACID, klíčové slovo je "eventually consistent".
Naposledy upravil(a) Almad dne 3. 1. 2010, 13:14, celkem upraveno 1 x.
Starý člen http://rpg.church
Sosacek
Příspěvky: 25732
Registrován: 14. 7. 2004, 19:30

Re: IT Poradna

Příspěvek od Sosacek »

No, ja myslel ze ti to na klic vrati dokument.

Jak vypada takovej dotaz? Jak snadno se s tim (prez http v jsonu?) komunikuje v "normalnich" jazycich?

EDIT: za ten json diky bohu. xml je dost tragicka zalezitost, a json se da jakz takz parsovat a tak. Ale takovy ASN1 $D
But nobody came.
Uživatelský avatar
Almad
Příspěvky: 631
Registrován: 12. 9. 2006, 23:19
Kontaktovat uživatele:

Re: IT Poradna

Příspěvek od Almad »

Sosacek píše:No, ja myslel ze ti to na klic vrati dokument.
Jo.
Sosacek píše:Jak vypada takovej dotaz? Jak snadno se s tim (prez http v jsonu?) komunikuje v "normalnich" jazycich?
Easy, bindingy jsou pro všechno. To mongo je třeba úplná trivka, zrovna pod rukama mám

Kód: Vybrat vše

    db = get_database_connection()
    info = db.repository.find().sort([("commiter_date", DESCENDING),])
    changesets = []
    for changeset in info:
        changeset['results'] = [build['result'] for build in db.builds.find({"changeset" : changeset['hash']})]
        changesets.append(changeset)
případně

Kód: Vybrat vše

        build.db_build = {
            'builder' : builder.getName(),
            'slaves' : [name for name in builder.slavenames],
            'number' : build.getNumber(),
            'time_start' : datetime.fromtimestamp(build.getTimes()[0]),
            'time_end' : None,
            'steps' : [],
            'result' : 'unknown',
            'changeset' : changeset
        }
        self.database.builds.insert(build.db_build)

Jinak viz edit výše, jdu pracovat ,)
Starý člen http://rpg.church
Sosacek
Příspěvky: 25732
Registrován: 14. 7. 2004, 19:30

Re: IT Poradna

Příspěvek od Sosacek »

Jaka prokastrace? Me tu osvicujes, osvetlujes a tak.

Takze kdyz mam uplne megajednoduchou databazi kdy mam clanky, uzivatele muzou ke clankum pridavat komentare, jak bude vypadat struktura te databaze?

Umim si predstavit, ze se dobre vyuzije to, ze ruzny druhy clanku (clanek s odkazem, clanek s videem, atd) se daji spojit do jednoho typu, protoze proste necham nebo nenecham danej atribut. Umim si predstavit, ze rozdeleni do kategorii udelam tak, ze kazdej clanek ma vlastnost kategorie a vozbrazeni kategorie znamena ze vyhazim clanky ktere do ni nepatri.

Hm. Jak udelam komentare? Kdyz mam radove desitky tisic clanku, desitky tisic komentaru a ten web chce treba dva tisice lidi soucasne? Dat komentari vlastnost "patrim_k" v zasade odpovida relacnimu pouziti, ale neni nejakej lepsi zpusob?
But nobody came.
Uživatelský avatar
Almad
Příspěvky: 631
Registrován: 12. 9. 2006, 23:19
Kontaktovat uživatele:

Re: IT Poradna

Příspěvek od Almad »

Sosacek píše:Hm. Jak udelam komentare? Kdyz mam radove desitky tisic clanku, desitky tisic komentaru a ten web chce treba dva tisice lidi soucasne? Dat komentari vlastnost "patrim_k" v zasade odpovida relacnimu pouziti, ale neni nejakej lepsi zpusob?
Zalezi na tom jak k tem datum pristupujes. Ale obecne co me napada z hlavy, kdyz mas jako zaklad

Kód: Vybrat vše

clanek = {"text" : dlouhejtext"}
komentar = {"author" : "Jmeno", "text" : "u suck!"}
tak muzes teda "relacne"

Kód: Vybrat vše

komentar = {"patrim_k" : Reference(clanek)}
nebo inverzne, ale porad "relacne"

Kód: Vybrat vše

clanek = {"komentare" : [Reference(komentar)]}
ale osobne bych se zeptal - potrebujes komentar jako samostatnou entitu, nebo ho nejcastejc ukazujes u clanku? Potom bych natvrdo udelal

Kód: Vybrat vše

clanek = {
    "text" : dlouhejtext"
    "komentare" : [
        {"author" : "Jmeno", "text" : "u suck!"},
        {"author" : "Jsem lepsi!", "text" : "PRVNI!!!!!1111!!!"}
    ]
}
Komentar kdyztak naadresujes pres index a/nebo timestampu, imo v pohode staci.

EDIT: Ty moznoti jsou jinak celkem shrnuty na http://www.mongodb.org/display/DOCS/Schema+Design
Naposledy upravil(a) Almad dne 3. 1. 2010, 23:26, celkem upraveno 1 x.
Starý člen http://rpg.church
Sosacek
Příspěvky: 25732
Registrován: 14. 7. 2004, 19:30

Re: IT Poradna

Příspěvek od Sosacek »

Nooo, ale pokud to budu delat tim tretim zpusobem (jak by se mi asi libilo) tak musim vzdycky vzit clanek a vsechny komentare a preulozit, ne? Aspon couchdb se tak tvarila. Coz je otrava, protoze kopiruju sem tam v pameti kdyz delam jenom append. Kdyz jsou tech komentaru stovky ...

Horsi to je, pokud chci u clanku evidovat pocet precteni, hm. Nebo ne?
But nobody came.
Uživatelský avatar
Almad
Příspěvky: 631
Registrován: 12. 9. 2006, 23:19
Kontaktovat uživatele:

Re: IT Poradna

Příspěvek od Almad »

Sosacek píše:Nooo, ale pokud to budu delat tim tretim zpusobem (jak by se mi asi libilo) tak musim vzdycky vzit clanek a vsechny komentare a preulozit, ne? Aspon couchdb se tak tvarila.
Couch po pravdě nevim. Mongo má $push, takže můžeš přidávat unique do listu a krom toho máš update(), který updatuje jenom dané itemy.
Sosacek píše:Horsi to je, pokud chci u clanku evidovat pocet precteni, hm. Nebo ne?
Ne, protože použiješ $inc. Navíc by to mělo být rychlejší než u rdbms, protože zápis hodíš asynchronně.
Starý člen http://rpg.church
Uživatelský avatar
Pieta
sofistikovaný troll
Příspěvky: 15027
Registrován: 6. 9. 2006, 19:08
Bydliště: Praha, ale původem jsem z Hostivaře
Kontaktovat uživatele:

Re: IT Poradna

Příspěvek od Pieta »

O čem se to tu vlastně bavíte?
Cicho żono, deszczyk padał, ja nie słyszał kto to gadał.
Cicho żono, deszczyk rosił, ja nie słyszał kto to prosił.
Odpovědět

Zpět na „Realita a pseudorealita“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 9 hostů