Sharding
Sharding áttekintése az adatbázis-kezelő rendszerek optimalizálásának gyakorlata egy nagyobb adatbázis-tábla sorainak vagy oszlopainak több kisebb táblára történő elválasztásával. Az új táblákat “szilánkok” – nak (vagy partícióknak) nevezik, és minden új táblának ugyanaz a sémája, de egyedi sorai vannak (mint a “vízszintes élesítés” esetében), vagy van egy sémája, amely az eredeti táblázat sémájának megfelelő részhalmaza (mint a “függőleges élesítés”esetében).
miért használják a Sharding-ot?
Sharding egy közös fogalom skálázható adatbázis architektúrák. Egy nagyobb tábla megosztásával több csomóponton keresztül tárolhatja az új adatdarabokat, úgynevezett logikai szilánkok, a vízszintes skálázhatóság és a jobb teljesítmény elérése érdekében. Miután a logikai szilánkot egy másik csomóponton tárolják, fizikai szilánknak nevezik.
Ha egy adatbázist egyetlen gépen futtat, akkor előbb – utóbb eléri azt a számítási erőforrást, amelyet bármilyen lekérdezésre alkalmazhat, és nyilvánvalóan eléri azt a maximális adatmennyiséget, amellyel hatékonyan tud dolgozni. A vízszintes méretezés ki, akkor lehetővé teszi a rugalmas adatbázis kialakítása, amely növeli a teljesítményt két fő módja van:
- masszívan párhuzamos feldolgozás, akkor kihasználják az összes számítási erőforrások egész klaszter minden lekérdezés.
- mivel az egyes szilánkok kisebbek, mint a logikai táblázat egésze, minden gépnek kevesebb sort kell beolvasnia, amikor válaszol egy lekérdezésre.
a vízszintes élesítés akkor hatékony, ha a lekérdezések gyakran csoportosított sorok egy részhalmazát adják vissza. Például a rövid dátumtartományokon alapuló adatokat szűrő lekérdezések ideálisak a vízszintes megosztáshoz, mivel a dátumtartomány szükségszerűen korlátozza a lekérdezést a kiszolgálók csak egy részhalmazára.
a függőleges élesítés akkor hatékony, ha a lekérdezések általában csak az adatok oszlopainak egy részét adják vissza. Ha például egyes lekérdezések csak neveket kérnek, mások csak címeket, akkor a nevek és címek külön szerverekre oszthatók.
a megosztott adatbázisok magasabb szintű rendelkezésre állást is kínálhatnak. Abban az esetben, kiesés egy unsharded adatbázis, a teljes alkalmazás használhatatlan. Sharded adatbázissal csak az alkalmazás azon részei használhatatlanok, amelyek a hiányzó adatdarabokra támaszkodtak. A gyakorlatban a megosztott adatbázisok gyakran tovább enyhítik az ilyen kimaradások hatását azáltal, hogy a biztonsági mentési szilánkokat további csomópontokra replikálják.
mi a különbség a megosztottság és a particionálás között?
a Sharing és a particionálás egyaránt egy nagy adathalmaznak a kisebb részhalmazokra való felosztásáról szól. A különbség az, hogy a sharding azt jelenti, hogy az adatok több számítógépen terjednek, míg a particionálás nem. A particionálás az adatok részhalmazainak egyetlen adatbázispéldányon belüli csoportosításáról szól. Sok esetben a sharding és particionálás kifejezéseket még szinonimaként is használják, különösen akkor, ha azt a “vízszintes” és a “függőleges” kifejezések előzik meg.”Így a ” vízszintes felosztás” és a “vízszintes felosztás” ugyanazt jelentheti.
kapcsolódó témák
memória számítás
Edge Computing
Grid Computing
további olvasás
Hazelcast IMDG 3.12 bemutatja a CP alrendszert