Personal details
| Title | Konzeption und Evaluation persistenter Queue-Implementierungen für das Recovery in Odysseus |
| Description | Hintergrund Odysseus ist ein an der Universität Oldenburg entwickeltes Datenstrommanagementsystem, das die kontinuierliche Verarbeitung potenziell unendlicher Datenströme ermöglicht. Weitere Informationen zum System sind unter https://odysseus.uni-oldenburg.de verfügbar. Eine kontinuierliche Anfrage in Odysseus besteht aus miteinander verbundenen Operatoren. Einige dieser Operatoren besitzen einen internen Zustand. Ein Aggregationsoperator muss beispielsweise bisher empfangene Werte verwalten, während ein Join-Operator Daten aus mehreren Eingabeströmen zwischenspeichert. In vorangegangenen Arbeiten wurden bereits Verfahren entwickelt, um die Zustände ausgewählter Operatoren persistent zu speichern und nach einem Systemausfall wiederherzustellen. Die Wiederherstellung der Operatorzustände allein reicht für ein korrektes Recovery jedoch nicht aus. Ereignisse können zum Zeitpunkt eines Fehlers bereits vom System empfangen worden sein, ohne vollständig verarbeitet oder Bestandteil eines gespeicherten Operatorzustands zu sein. Dies betrifft insbesondere:
Diese Ereignisse werden bisher typischerweise in hauptspeicherbasierten Queues verwaltet und gehen bei einem Absturz verloren. Ziel der Arbeit Ziel der Bachelorarbeit ist die Konzeption, prototypische Implementierung und Evaluation eines persistenten Queue- beziehungsweise Replay-Mechanismus für Odysseus. Der Mechanismus soll empfangene, aber noch nicht dauerhaft verarbeitete Ereignisse so verwalten, dass sie nach einem Systemausfall erneut bereitgestellt werden können. Gleichzeitig soll untersucht werden, zu welchem Zeitpunkt ein Ereignis als erfolgreich verarbeitet gelten und aus dem persistenten Puffer entfernt beziehungsweise als bestätigt markiert werden darf. Die zentrale Forschungsfrage lautet: Wie kann ein Datenstromverarbeitungssystem nach einem Fehler genau diejenigen Ereignisse erneut verarbeiten, die bereits empfangen, aber noch nicht erfolgreich und dauerhaft verarbeitet wurden? Dabei sollen insbesondere die Auswirkungen unterschiedlicher Persistenzstrategien auf Verarbeitungslatenz, Durchsatz, Speicherbedarf und Wiederherstellungszeit untersucht werden. Grundidee Anstelle einer rein hauptspeicherbasierten Queue kann ein persistentes, fortlaufendes Eingabeprotokoll verwendet werden. Ein möglicher Ablauf ist:
Als konzeptionelle Vorbilder können unter anderem Kafka sowie aus Datenbanksystemen bekannte Write-Ahead-Logging-Verfahren betrachtet werden. Ziel ist jedoch nicht zwingend die Integration eines externen Brokers. Untersucht werden sollen insbesondere leichtgewichtige, eingebettete Lösungen, die direkt innerhalb von Odysseus eingesetzt werden können. |
| Home institution | Department of Computing Science |
| Associated institutions |
|
| Type of work | practical / application-focused |
| Type of thesis | Bachelor's |
| Author | Dr. Marco Grawunder |
| Status | available |
| Problem statement | Aufgabenstellung Im Rahmen der Arbeit sollen insbesondere die folgenden Aufgaben bearbeitet werden:
Als mögliche technische Grundlagen können beispielsweise Chronicle Queue, RocksDB, MapDB oder H2 MVStore untersucht werden. Zusätzlich kann eine eigene einfache dateibasierte Write-Ahead-Log-Implementierung als Vergleich dienen. Die Auswahl und Begründung der untersuchten Ansätze ist Bestandteil der Arbeit. Konsistenz und Verarbeitungssemantik Ein besonderer Schwerpunkt liegt auf der Frage, wann ein Ereignis aus dem persistenten Puffer als verarbeitet markiert werden darf. Wird ein Ereignis zu früh bestätigt, kann es nach einem Fehler verloren gehen. Wird es zu spät bestätigt, kann es während des Recoverys erneut verarbeitet werden. Die persistente Queue muss daher mit den gespeicherten Operatorzuständen beziehungsweise den Checkpoints von Odysseus abgestimmt werden. Im Rahmen der Arbeit soll untersucht werden, welche Garantien mit dem entwickelten Ansatz erreicht werden können, beispielsweise:
Eine vollständige End-to-End-Exactly-once-Garantie für beliebige externe Quellen und Senken ist nicht zwingend Bestandteil der Arbeit. Die erreichbaren Garantien und ihre Voraussetzungen sollen jedoch eindeutig beschrieben und experimentell überprüft werden. Fragestellungen Die Arbeit soll unter anderem folgende Fragen untersuchen:
Evaluation Die entwickelten Ansätze sollen mit einer bestehenden hauptspeicherbasierten Queue als Referenz verglichen werden. Mögliche Bewertungskriterien sind:
Für die Evaluation sollen reproduzierbare Fehlerszenarien entwickelt werden, bei denen Odysseus zu unterschiedlichen Zeitpunkten während der Verarbeitung beendet und anschließend wiederhergestellt wird. Abgrenzung Im Mittelpunkt der Arbeit steht die persistente Verwaltung von Ereignissen, die bereits empfangen, aber noch nicht durch einen konsistent gespeicherten Verarbeitungsstand abgesichert wurden. Nicht erforderlich sind:
Die Integration kann zunächst exemplarisch für einen ausgewählten Zugriffsoperator oder einen klar abgegrenzten Verarbeitungspfad erfolgen. Die Übertragbarkeit auf weitere Stellen innerhalb von Odysseus soll konzeptionell untersucht werden. Erwartete Ergebnisse Am Ende der Arbeit sollen vorliegen:
|
| Requirement | Voraussetzungen Hilfreich sind Kenntnisse oder Interesse in folgenden Bereichen:
Kenntnisse über Odysseus werden nicht vorausgesetzt und können im Rahmen der Arbeit erworben werden. |
| Created | 16/09/26 |