Szimmetrikus és aszimmetrikus architektúrák

Befejeződött

A harmadik tervezési szempont a szerevezési struktúra. Az alkalmazásfejlesztők általában elsődleges alárendelt (aszimmetrikus) vagy társközi (szimmetrikus) architektúrában szerveznek elosztott programokat a 12. ábrán látható módon. Más szervezetek, például hibridek, különleges körülményekre is alkalmasak lehetnek.1 Ennek a leckének a alkalmazásában csak az elsődleges-alárendelt és a társközi szervezetekkel foglalkozunk.

Aszimmetrikus elsődleges-alárendelt szervezet

Egy elsődleges-alárendelt szervezetben a főfolyamatnak nevezett központi folyamat kezeli az összes logikát és vezérlőt, az összes többi folyamatot pedig alárendelt folyamatként jelöli. A folyamatok közötti interakció tehát aszimmetrikus: a kétirányú kapcsolatok lehetővé teszik az elsődleges számára az egyes alárendeltekkel való kommunikációt, és nincs engedélyezve összekapcsolás két alárendelt között (lásd a 12. ábrát a)). Ehhez a helyzethez az elsődlegesnek nyomon kell követnie az egyes alárendeltek hálózati helyét egy metaadat-struktúrában, továbbá azt is, hogy minden alárendelt mindig azonosíthassa és megtalálhassa az elsődlegest.

(a) A primary-subordinate organization. (b) A peer-to-peer organization. The primary in such an organization is optional (usually employed for monitoring the system and/or injecting administrative commands).

12. ábra: a) Elsődleges-alárendelt szervezet. (b) Egyenrangú szervezés. Az ilyen szervezetek elsődleges feladata nem kötelező (általában a rendszer monitorozására és/vagy felügyeleti parancsok injektálására használják).

Az aszimmetrikus szervezetekben az elsődleges két alábbi protokoll egyikével oszthatja el a munkát az alárendeltek között:

  • Leküldéses alapú: Ez a stratégia egyoldalúan, kérés nélkül rendeli hozzá a munkát az alárendeltekhez. Nyilvánvaló, hogy ez a helyzet lehetővé teszi az elsődleges számára, hogy méltányossági korlátozásokat alkalmazzon az alárendeltekre a munka egyenlő elosztásával. Ugyanakkor ezzel a megoldással az éppen lassulást vagy hibát tapasztaló alárendelt folyamatok túlterhelődhetnek, ezért nem lesznek képesek lépést tartani a munkával. Ennek következtében a terhelés egyenetlenné válhat, ez pedig általában a teljesítmény romlásával jár. Ennek ellenére az elsődleges képes intelligens stratégiák megvalósítására. Az elsődleges csak akkor és csak akkor rendelhet hozzá munkát, ha az alárendelt készen áll. Ahhoz, hogy ez a taktika működjön, az elsődlegesnek folyamatosan figyelnie kell az összes alárendeltet, és valamilyen logikát kell alkalmaznia (általában összetett) a rendelkezésre álló alárendeltek pontos azonosításához. A méltányosság fenntartása és a teljesítmény javítása érdekében az elsődlegesnek a hozzárendelni kívánt munka mennyiségéről is döntenie kell. Felhőkben a hibás és lassú folyamatok valószínűsége a heterogenitás, a kiszámíthatatlan teljesítmény és a skálázhatóság miatt nagyobb. Ezek a korlátok azt eredményezhetik, hogy a leküldésalapú protokoll nem lesz hatékony a felhőben.
  • Lekéréses alapú: Ez a stratégia viszont megköveteli, hogy a beosztottak munkát kérjenek. Ez a protokoll jelentősen csökkenti a bonyolultságot, és a terhelés egyenetlensége is elkerülhető lehet általa, mivel annak megállapítása, hogy egy adott alárendelt folyamat készen áll vagy sem, magára az alárendelt folyamatra van bízva. Ennek ellenére az elsődlegesnek továbbra is figyelnie kell az alárendelteket, általában nyomon kell követnie a feladatok előrehaladását az alárendelteken, és/vagy hibatűrési mechanizmusokat kell alkalmaznia (például a hibás és lassú feladatok hatékony kezeléséhez, amelyek általában nagy méretű felhőkben fordulnak elő). A Hadoop MapReduce és a Pregel a lekérésalapú protokollt használja.

E célból megjegyezzük, hogy az elsődleges-alárendelt szervezet egyetlen meghibásodási pontot (SPOF) szenved. Pontosabban, ha az elsődleges meghiúsul, a teljes elosztott program őrlési leáll. Emellett előfordulhat, hogy egy központi folyamat (az elsődleges) minden ellenőrzéshez és kezeléshez nem lép túl néhány száz alárendeltet, kivéve, ha hatékony stratégiákat alkalmaznak az elsődlegesen való versengés csökkentésére (pl. metaadatok gyorsítótárazása az alárendelteknél, hogy ne férhessenek hozzá az elsődlegeshez minden egyes kérés esetén). Ezzel szemben az elsődleges-alárendelt szervezet használata leegyszerűsíti a döntéshozatalt (például lehetővé teszi az írási tranzakciókat bizonyos megosztott adatokon). Különösen az elsődleges mindig az egyetlen entitás, amely mindent irányít, és bármilyen döntést önállóan hozhat anélkül, hogy bármi mást zavarna. Ezzel az egyszerűséggel elkerülhető a szavazási mechanizmusok alkalmazása3, 1, 2, amelyekre általában szükség van akkor, ha entitások egy csoportjának (nem pedig egyetlen entitásnak) kell meghoznia a döntéseket. A szavazási mechanizmusok alapelve az, hogy egy tevékenységnek legalább a tevékenységek felétől plusz még egytől (a többségtől) kérnie kell és meg kell kapnia az engedélyt egy adott művelet végrehajtására. A szavazási mechanizmusok általában bonyolultabbá teszik az elosztott programok implementációit.

Szimmetrikus egyenrangú szervezés

Szimmetrikus szervezés esetén minden tevékenység egyenrangú, a logika, a vezérlés és a munka pedig egyenletesen van elosztva közöttük. Konkrétan minden tevékenység közvetlenül kommunikálhat a körülötte lévőkkel anélkül, hogy elsődleges folyamattal kellene kapcsolatba lépnie (lásd a 12. ábra b) pontját). Elsődleges lehet alkalmazni, de csak olyan célokra, mint a rendszer monitorozása és/vagy a felügyeleti parancsok injektálása. Más szóval a társtevékenységek nem igényelnek elsődleges feladatot a helyes működéshez. Emellett, bár a tevékenységek kommunikálnak egymással, teljesen önállóan dolgozhatnak, és a munkájuk nem is feltétlenül függ össze. Az egyenrangú szervezés kizárja a rendszerkritikus meghibásodási pontokat és a sávszélesség szűk keresztmetszeteit, ezért általában jól skálázható és robusztusan ellenáll a hibákkal szemben. Egyenrangú szervezés esetén azonban közösen, általában szavazási mechanizmusokon keresztül kell meghozni a döntéseket. Ez a megoldás többnyire bonyolultabb implementálással, valamint nagyobb kommunikációs többletmunkával és késéssel jár, különösen az olyan nagyméretű rendszerekben, mint a felhő. A későbbi szakaszokban bemutatandó GraphLab egyenrangú szervezést alkalmaz.


Hivatkozások

  1. A. S. Tanenbaum és M. V. Steen (2006. október 12.). Elosztott rendszerek: Principles and Paradigms Prentice Hall, Second Edition
  2. R. H. Thomas (1979). Többségi konszenzusos megközelítés az egyidejűség-vezérléshez több példányos adatbázisok ACM-tranzakcióihoz adatbázisrendszereken (TODS)
  3. D. K. Gifford (1979). Súlyozott szavazás replikált adatokra az operációs rendszerek alapelveiről szóló hetedik ACM-szimpózium eljárásában