Prioritizácia: Rozdiel medzi revíziami

Z DWFC3
Prejsť na: navigácia, hľadanie
Riadok 12: Riadok 12:
 
Toto dedenie priorít prebieha len na úrovni úloh. Tzn. ak je zadefinovaná skupinová závislosť, úlohy skupiny nededia prioritu žiadnej úlohy zo závislých skupín.
 
Toto dedenie priorít prebieha len na úrovni úloh. Tzn. ak je zadefinovaná skupinová závislosť, úlohy skupiny nededia prioritu žiadnej úlohy zo závislých skupín.
  
−
[[File:prio_interit.svg|Dedenie priorít]]
+
 
 +
[[File:prio_interit.png|Dedenie priorít]]

Verzia zo dňa a času 13:52, 16. august 2017

V rámci spracovania sa nachádza množstvo úloh, ktoré majú byť vykonané v určitom poradí. Toto poradie nie je náhodné, ale takisto nie je ani určené. V každom momente spracovania môže byť vykonávaných niekoľko úloh súčasne. Počet vykonávaných úloh môže byť okrem závislostí obmedzených aj veľkosťou záťaže, ktorú tieto úlohy znamenajú vzhľadom ku zdrojom DB servera. Typicky pri spracovaní DWH je možné prevažnú väčšinu úloh v stage vrstve spustiť bez čakania na závislosti. To by pri strednej veľkosti DWH mohlo znamenať rádovo stovky úloh spustených v jednom čase. Také množstvo úloh spôsobuje významné nároky na pamäť a iné zdroje servera, preto je žiadúce obmedziť počet úloh bežiacich v jednom čase na takú úroveň, aby nedošlo k neúmernému vyčerpaniu zdrojov. Ak dôjde k dosiahnutiu litimu spracovaných úloh, nebudú spúšťané ďalšie úlohy, ktoré by nastavené limity presahovali. Ďalšia úloha bude spustená až v čase, keď dôjde k dokončeniu bežiacej úlohy a vytvorí sa tak priestor pre spustenie novej. Pri výbere novej úlohy je často možné vybrať z niekoľkých úloh so splnenými všetkými závislosťami. Ak je na serveri spustených viacero spracovaní, potom je vybraná úloha z najstaršieho spracovania, tzn. s najnižším dátumom spracovania a najmenším kódom iterácie. Ak sú tieto hodnoty rovnaké, alebo ak je spustené len jedno spracovanie, potom je vybraná úloha s najnižšou číselnou hodnotou atribútu Priority. V prípade viacerých úloh s rovnakou prioritou je spustená úloha s vyššou číselnou hodnotou atribútu Load. Pokiaľ existuje viacero spustiteľných úloh s rovnakou prioritou aj záťažou, potom je vybraná úloha s nižším identifikátorom (tzn. staršia - založená skôr v čase).

Dedenie priorít

Pri typickom spracovaní sú často prioritizované až úlohy, ktorých výstupy sú predmetom reportovania alebo inej interakcie s používateľom. Takéto úlohy sa ale dostané na rad až po vykonaní úloh, od ktorých sú závislé. Takýchto úloh môže byť viacero a môžu byť spracovávané v kaskáde. V takomto prípade je nastavenie priority koncovej úlohy nedostatočné, pokiaľ nemajú zvýšenú prioritu aj všetky úlohy od ktorých je daná úloha závislá. Z tohto dôvodu je implementované dedenie priorít. To znamená, že každá úloha dedí prioritu úlohy, ktorá je od nej závislá, pokiaľ je táto priorita vyššia (tzn. nižšia číselná hodnota) ako je priorita danej úlohy.

Príklad: Ak má úloha A nastavenú priority 20, úloha B nastavenú prioritu 10 a zároveň je úloha B závislá od úlohy A. V takomto prípade má úoha A efektívnu prioritu 10, rovnako ako úloha B. Toto dedenie priorít prebieha len na úrovni úloh. Tzn. ak je zadefinovaná skupinová závislosť, úlohy skupiny nededia prioritu žiadnej úlohy zo závislých skupín.


Dedenie priorít