Backfilling

Backfilling, was übersetzt in etwa „Auffüllung“ bedeutet, kommt aus dem englischsprachigen Raum und beschreibt den Vorgang, wenn ein Angestellter oder Arbeiter von einem Arbeitsbereich in einen anderen versetzt wird, um dort die Aufgaben eines anderen zu übernehmen. Backfilling kommt in vielen unterschiedlichen Bereichen und Branchen vor, so auch in der Informatik. Dort wird mit Backfilling eine Methode beschrieben, die zur maximalen Ausnutzung von Serverclustern verwendet wird. Beispielsweise kann Backfilling dazu genutzt werden, um kleinere Operationen im Hintergrund durchzuführen. Voraussetzung dafür ist jedoch, dass die Aufgaben, die im Vordergrund stattfinden, dadurch nicht beeinträchtigt werden.

Allgemeine Informationen zum Thema

Backfilling kann auch als Ressourcenverwaltung bezeichnet werden. Die Methode kommt zum Einsatz, wenn nicht alle Ressourcen benötigt werden, die für die Verarbeitung einer Serveraufgabe im Vordergrund zur Verfügung stehen. Durch Backfilling können in diesen Fällen kleinere Jobs im Hintergrund ausgeführt werden, die für die prioritäre Aufgabe nicht gebraucht werden. So setzt Backfilling eine Reihenfolge gemäß der Kapazitäten und der Prioritäten fest, alle Aufgaben werden also gleichzeitig abgearbeitet. Dabei wird auch berücksichtigt, welche Jobs wie viele Ressourcen benötigen. Zuerst erledigt wird der Job, für den genau die gebrauchten Ressourcen zur Verfügung stehen, sodass eine optimale Nutzung der vorhandenen Kapazitäten und Ressourcen erfolgt.

Funktionsweise von Backfilling

Je nach Umfang und Größe können mit Hilfe von Backfilling auf einem Server bis zu 100 Jobs gleichzeitig erledigt werden. Mittels eines Schedulers werden für die im Vordergrund laufenden Programme zunächst alle maximal zur Verfügung stehenden Ressourcen ermittelt. Ist das erledigt, werden die verbleibenden Kapazitäten durch Backfilling genutzt, um weitere Aufgaben zu erstellen. Im Zuge dieses Prozesses kann auch die Anzahl der Jobs bestimmt werden, die gleichzeitig ausgeführt werden sollen. Damit die Kapazität des Servers optimal ausgelastet wird, erfasst der Scheduler Aufgaben, die mit den bereits vorhandenen Restressourcen durchgeführt werden können. Unerwünschte Lücken, die sonst entstehen würden, werden so aufgefüllt (daher die freie Übersetzung: Auffüllung), der Server ist also entsprechend seiner Gesamtkapazität nutzbar[1].

Beispiel für Backfilling

Backfilling im Batchsystem-Betrieb lässt sich mit Teilreservierungen zu frühen Startzeiten vergleichen. Batchsystem-Scheduler lassen also niedriger priorisierte Jobs vor den höher priorisierten Aufgaben starten, sofern dabei ansonsten ungenutzte Ressourcen genutzt werden. Auf diese Weise kommt es zu einer optimalen Auslastung, ohne die höher priorisierten Jobs zu vernachlässigen.

Die hier beigefügte Grafik zeigt, wie ein Batchsystem-Schedule die Abläufe verbessern kann. „t_anfrage“ beschreibt dabei die aktuelle Zeit innerhalb eines Batchsystems, innerhalb derer die Statusanfrage des GRS vom LRS bearbeitet wird. Mit „t_ende“ wird die Endzeit der Teilreservierungsvariante beschrieben, während mit „t_sched“ die Zeit des folgenden Schedulingereignisses gemeint ist. Wenn „t_ende“ kleiner als „t_sched“ ist, werden Teilreservierungsvarianten von der Auftragsbestandszeitfilterung ausgeschlossen. Das ermöglicht dem Scheduler, eine Teilreservierung in Form einer Backfill-Reservierung einzuplanen.

Für Teilreservierungsvarianten, die nach dem „t_sched“ starten, greift erneut das Auftragsbestandszeitkriterium. Beim nächsten Scheduling ist es also möglich, dass ein wartender Job die Lücke im Schedule nutzt, da er vor Submit der Teilreservierungsanfrage die Berechtigung dazu hat. Für die präzise Berechnung des Schedulers wird eine genaue Kenntnis über die Konfiguration des Batchsystems vorausgesetzt.

backfilling.jpg

Bild: Jörg Meltzer

Backfilling und Scheduler

Scheduler spielen – wie geschildert - für das Backfilling eine wichtige Rolle. Allerdings sind nicht in allen Schedulern geforderte Algorithmen wie zum Beispiel Backfilling oder FairShare implementiert. Dies lässt sich aber nachträglich mit mehr oder weniger großem Einsatz vornehmen[2].

Bedeutung für das Development

Die Bedeutung von Backfilling kann in die Bereiche IT-fremder Unternehmen und IT-Dienstleister unterteilt werden. Für IT-fremde Unternehmen rückt die IT – zumindest als große Abteilungen aufgebaut – in den letzten Jahren immer mehr in den Hintergrund. Kurze Innovationszeiten und schnelle Entwicklungen neuer Produkte und Dienstleistungen lassen wenig Raum für eine zeitaufwändige IT-Arbeit. IT-fremde Unternehmen müssen sich zudem auf ihre Kernkompetenzen fokussieren, was dazu führt, dass die IT einen relativ kleinen Umfang einnimmt. Dennoch kann sich kaum ein IT-fremdes Unternehmen leisten, gänzlich auf die Betreuung und Arbeit durch IT-Experten zu verzichten.

Für IT-Dienstleister bedeutet das, sich auf die Bedürfnisse und Ressourcen von Unternehmen einzustellen und Leistungen anzubieten, die IT-fremden Unternehmen mit überschaubarem Aufwand Gewinne bzw. Vorteile bringen.

IT-Experten sind daher gut beraten, wenn sie anspruchsvolle Projekte wie etwa Backfilling oder Application Managed Services anbieten[3].

Einzelnachweise

  1. CTR mso-digital.de. Abgerufen am 18.07.2018
  2. Frontdoor Deliver Index publishup.uni-potsdam.de. Abgerufen am 18.07.2018
  3. Das geheimnis erfolgreicher Informatiker timm-funke.de. Abgerufen am 18.07.2018

Weblinks

Kategorie