Virtlab:Řídící server/Systém kvót
Z VirtlabWiki
Verze z 17:42, 29. 3. 2007 Vav166 (Diskuse | příspěvky) ← Předchozí porovnání |
Verze z 18:07, 29. 3. 2007 Vav166 (Diskuse | příspěvky) Následující porovnání → |
||
Řádka 4: | Řádka 4: | ||
Uživatelům, jsme chtěli umožnit si úlohu rezervovat na libovolnou dobu - i několik měsícu dopředu. Pokud bychom výše popsaný systém aplikovali teď, znamenalo by to identifikovat, do kterého kalendářního týdne (nebo jiného odbobí) konkrétní rezervace spadá, jestli nezasahuje i do týdne vedlejšího. Pokud si uvědomíme všechny detaily tohoto řešení, zjistíme že by implementace byla poměrně komplikovaná. Proto byl vymyšlen systém nový. | Uživatelům, jsme chtěli umožnit si úlohu rezervovat na libovolnou dobu - i několik měsícu dopředu. Pokud bychom výše popsaný systém aplikovali teď, znamenalo by to identifikovat, do kterého kalendářního týdne (nebo jiného odbobí) konkrétní rezervace spadá, jestli nezasahuje i do týdne vedlejšího. Pokud si uvědomíme všechny detaily tohoto řešení, zjistíme že by implementace byla poměrně komplikovaná. Proto byl vymyšlen systém nový. | ||
+ | |||
+ | === Systém klouzavého okna === | ||
+ | ; nastavení systému a uživatele : v systému je definován časový úsek (označme ho jako '''A'''), který systém prohledává. Dále je definováno množství času, které uživatel může použít na rezervace úloh (označme ho jako '''B'''). Aby celý systém mohl fungovat, je potřeba, aby '''A'''>'''B'''. V reálném provozu si můžeme pod těmito proměnými představit hodnoty, jako týden (chápan jako 7 dní, 168 hodin, ...) a 10 hodin. | ||
+ | |||
+ | Během rezervace úlohy na konkrétní čas, dochazí ke kontrole, zda-li uživatel může rezervaci provést, nebo už má množství času vyčerpáno. <br/> | ||
+ | Kontrola probíhá následovně:<br/> | ||
+ | * čas začátku i konce rezervace se převede na ''Unix timestamp'', jelikož tato veličina je definována jako počet sekund od 1.1.1970 0:00, jedná se o vlastně o prostor přirozených čísel. Proto operace s čase (např.: doba mezi dvěma daty), lze provádět triviálními aritmetickými operacemi. |
Verze z 18:07, 29. 3. 2007
Stejně, jako značná část systému Virtlab, bylo potřeba navrhnout systém kvót. Kvótou rozumíme množství času, které může uživatel použít v definovaném časovém období.
V předchozí verzi Virtlabu měl uživatel přidělen určitý počet timeslotů, které mohl vypotřebovat na úlohy během jednoho kalendářního týdne. V novém týdnu mu byla kvóta opět navýšena na určenou hodnotu.
Uživatelům, jsme chtěli umožnit si úlohu rezervovat na libovolnou dobu - i několik měsícu dopředu. Pokud bychom výše popsaný systém aplikovali teď, znamenalo by to identifikovat, do kterého kalendářního týdne (nebo jiného odbobí) konkrétní rezervace spadá, jestli nezasahuje i do týdne vedlejšího. Pokud si uvědomíme všechny detaily tohoto řešení, zjistíme že by implementace byla poměrně komplikovaná. Proto byl vymyšlen systém nový.
Systém klouzavého okna
- nastavení systému a uživatele
- v systému je definován časový úsek (označme ho jako A), který systém prohledává. Dále je definováno množství času, které uživatel může použít na rezervace úloh (označme ho jako B). Aby celý systém mohl fungovat, je potřeba, aby A>B. V reálném provozu si můžeme pod těmito proměnými představit hodnoty, jako týden (chápan jako 7 dní, 168 hodin, ...) a 10 hodin.
Během rezervace úlohy na konkrétní čas, dochazí ke kontrole, zda-li uživatel může rezervaci provést, nebo už má množství času vyčerpáno.
Kontrola probíhá následovně:
- čas začátku i konce rezervace se převede na Unix timestamp, jelikož tato veličina je definována jako počet sekund od 1.1.1970 0:00, jedná se o vlastně o prostor přirozených čísel. Proto operace s čase (např.: doba mezi dvěma daty), lze provádět triviálními aritmetickými operacemi.