CMK-43

TitelPrefetching Agent soll Latenzzeiten verringern
KomponenteBase
Datum2018-02-20
StatusDone (Won't Do)
KlasseStory


IDEE: Prefetching agent: Der agent soll die Daten schon berechnen kurz bevor sie abgefragt werden. Das ganze läuft so: Zunächst ermittelt der Agent, wie lange die Datenberechnung im Schnitt dauert (z.B. über schleichenden Mittelwert), sagen wir 5 Sekunden. Über den gleichen Wert ermittelt er, wie oft er abgefragt wird, sagen wir alle 60 Sekunden. Wenn der Agent kontaktiert wird, kann er dann einen günstigen Zeitpunkt ermitteln, zu dem er beginnt, die Daten aufzubereiten. Im Beispiel ist das spätestens 55 Sekunden nach der letzten Anfrage, mit etwas Puffer kann man z.B. 5 Sekunden früher beginnen. Das ganze schützt man über ein Lock, so dass wenn das Prefetch noch nicht begonnen hat oder nicht fertig ist, wenn eine Anfrage kommt, der Anfrager warten muss. Ergebnis: Auf eine Anfrage kommt im Optimalfall immer *sofort* ein Ergebnis. Außerdem kann das Berechnen mit nice laufen. Das könnte man auch in den Windows-Agenten integrieren und so die Probleme beheben, die auftreten, wenn das System unter hoher Last steht.