Terheléselosztás

A terheléselosztás széles értelemben a futtatókörnyezet egyik alappillére Orleans . A Orleans futtatókörnyezet igyekszik mindent egyensúlyban tartani, mivel a kiegyensúlyozás maximalizálja az erőforrás-használatot, elkerüli a hotspotokat, jobb teljesítményt eredményez, és segít a rugalmasságban. A terheléselosztás Orleans több helyen is alkalmazható. Az alábbiakban egy nem teljes lista található azokról a helyekről, ahol a futási idő kiegyensúlyozást végez.

  1. Az alapértelmezett aktor-elhelyezési stratégia véletlenszerű; az új aktiválások silók között véletlenszerűen oszlanak el. Ez kiegyensúlyozott elhelyezést eredményez, és megakadályozza a legtöbb forgatókönyv esetében a hotspotok használatát.
  2. Egy fejlettebb ActivationCountBasedPlacement stratégia megpróbálja kiegyenlíteni az összes siló aktiválásainak számát, ami egyenletesebb eloszlást eredményez a silók között. Ez különösen fontos a rugalmasság szempontjából.
  3. A grain directory szolgáltatás egy elosztott kivonattáblára épül, amely eredendően kiegyensúlyozott. A címtárszolgáltatás a szemcséket az aktiválásokhoz rendeli. Minden siló a globális térképezési tábla egy részét birtokolja, és ezt a táblát globálisan kiegyensúlyozott módon van particionálva az összes siló között, virtuális rekeszekkel való konzisztens kivonatolással.
  4. Az ügyfelek minden átjáróhoz csatlakoznak, és kiegyensúlyozott módon terjesztik a kéréseiket.
  5. Az emlékeztető szolgáltatás egy elosztott, particionált futtatókörnyezeti szolgáltatás. Az, hogy melyik siló felelős a melyik emlékeztető kiszolgálásáért, minden siló között kiegyensúlyozott módon van elosztva konzisztens kivonatolással, akárcsak a gabona könyvtár.
  6. A silóban a teljesítmény szempontjából kritikus összetevők particionálva vannak, és az egész munka helyileg kiegyensúlyozott. Ez lehetővé teszi, hogy a siló futtatókörnyezet optimálisan kihasználja az összes rendelkezésre álló CPU-magot, és elkerülje a silón belüli szűk keresztmetszeteket. Ez az összes helyi erőforrásra vonatkozik: a munka kiosztása szálakra, szoftvercsatornákra, küldési feladatokra, üzenetsorokra stb.
  7. A QueueBalancerBase rendszer kiegyensúlyozza az események lekérésének felelősségét a fürt perzisztencia üzenetsoraiból a silók között.

A kiegyensúlyozás nem feltétlenül jelenti a hely elvesztését. Az egyensúlyt úgy érheti el, hogy továbbra is fenntartja a jó lokalitást. Ha például a kiegyensúlyozás horizontális felosztással/particionálással jár, eloszthatja a felelősséget egy adott logikai feladatért, miközben biztosítja a helyi viszonyok fenntartását az egyes partíciókban. Ez a helyi és az elosztott kiegyensúlyozásra is vonatkozik.