Ugrás a főmenüre.
Web 2008.06.05.

Kiegészítő az előzőhöz: sharding

Az előző cikkemben kifelejtettem a sharding-ot, ami pedig egy fontos technika az adatbázis-kezelő erőforrásainak elosztásában. Arról van szó, hogy szétbombázzuk az adatainkat:

Lehet olyat, hogy egy adott tábla megy egy kitüntetett adatbázis-szerverre.

Olyan is működik, hogy a rekordokat valamilyen kitüntetett érték szerint dobáljuk szét, például az egyik szerver a 0-999, a másik pedig az attól fölfelé sorszámú izéket tárolja. Ezt a MySQL elvileg támogatja (partitioning), de nem hallok jókat róla.

Magadnak kell megoldani a sharding miatt felmerülő problémákat, pl. ha a táblákat dobálod szét, akkor nem tudsz olyan lekérdezést írni, amiben ezek a táblák is szerepelnek, külön kell kezelni az ügyet és mondjuk PHP-ben összesíteni. Nyilván a rekordonkénti sharding-nál sem tudsz egyetlen SQL-lel szummát számítani.

Egy életszagú példa: az eBay-nél a sharding miatt a JOIN-t az alkalmazásban oldják meg. A kód így persze nem szép, de eBay méretekben a skálázódás (könnyű plusz alkalmazásszervereket indítani) sokkal fontosabb.

Denormalizálás

A suliban megtanítottak a normalizálásra, azonban nagy méretekben denormalizálni kell, mert nem elég a teljesítmény. Mivel a tárterület árak nagyon alacsonyak, ez nem probléma, de az adatok módosítása és a kód itt is gáz lesz.

A Flickr így tárolja a hozzászólásokat, a shard-jaik között a hozzászólások duplikálva (mit duplikálva, triplikálva, ezerlikálva!) vannak.

Lehet, hogy az egyetemen most magukhoz nyúlnak, de hát ők csak tanítják, mi meg csináljuk.

funny pictures

5 hozzászólás

  1. idézem 2008.06.05. 07:02
    • gami
    szuper ez az oldal! majd megtennéd hogy írsz a Google App Engine-ről is?
  2. idézem 2008.06.05. 07:06
    @gami Köszi. Ha majd lesz elegendő infóm (a sajtóközlemények magyarra fordítása nem infó), igen, írok róla.
  3. idézem 2008.06.05. 08:41
    eBaynél nem PHP-znak :), legalábbis alapvetően biztosan Javat használnak:
    www{pont}ibm{pont}com/developerworks/opensource/library/os-eclipse-ebay2/
    www{pont}ibm{pont}com/developerworks/opensource/library/os-eclipse-ebay1/

    Viszont a témában egy kötelező prezentáció:
    danga{pont}com/words/2007_06_usenix/usenix{pont}pdf .Tőlük van ugye memcache, mogilefs, gearman meg még egy csomó okosság.

    Üdv,
    Felhő
  4. idézem 2008.06.05. 22:58
    @felhő: Kösz, javítottam, nálam a PHP a szkript szinonímája :-).

    A prezi érdekes volt. Lehet a hozzászólásokban linkeket nyugodtan, sima html szintakszissal.
  5. idézem 2008.06.06. 06:59
    • ee
    Hát ha lehet, itt is egy:

    http://cookiesareforclosers.com/blog/2008/06/linkedin-architecture

    A Linked In architektúrájáról: szépen rímel az eddigi bejegyzésekre.
Új hozzászólás
A sortörések automatikusak. Csak az üzenet kitöltése kötelező, a többi mező opcionális. A megadott e-mail címet nem tesszük közzé. Engedélyezett HTML tagek: p, a, strong, em, blockquote, ul, ol, li, dl, dt, dd.

Legutolsó hozzászólások

DJ PLAYER Blue Edition: Gábor: Ja, és természetesen megy iPad-en is, hiszen _minden_ iOS app megy iPad-en.

DJ PLAYER Blue Edition: Gábor: Bug report-okat itt fogadunk: http://djplayer.net/page/bug_report_fixes

DJ PLAYER Blue Edition: hohand: Hello!A dj player mukodik iPad-on is?Tegnap feltettem, wifi-n athuztam ra zeneket,de amikor ranyomtam egy zeneszamra,error-t dobott es valami is!...

Uzsidoboz LED!: zo via Google Reader: vicces dolog, csak nem értem mire való

Uzsidoboz LED!: Gábor: @Benjamin Minek forogjanak? Egy falszínezőnek olyat nem kell tudnia, így is épp elég hatásosak.

iMect means internet, media and other cool things. iMect is a small company near lake Velence, Hungary. We’ve a big footer on every page where you can discover what we do and what happens with us.

Az iMect jelentése: internet, média és egyéb király dolgok. Egy kis cég vagyunk közel a Velencei-tóhoz. Minden oldalon van egy nagy lábléc, ahol felfedezheted, hogy mivel foglalkozunk.