← Neueste Arbeiten
💻 computer science

Benchmarking Real-Time Database Synchronisation Architectures: REST Polling, WebSocket Push, and CockroachDB CDC

Dieses Paper präsentiert einen kontrollierten Benchmark, der REST-Polling, WebSocket-Push und CockroachDB-CDC-Architekturen für die Echtzeit-Datenbanksynchronisation vergleicht und aufzeigt, dass WebSocket-Push zwar die niedrigste mediane Latenz bietet und REST-Polling vorhersehbare, begrenzte Verzögerungen liefert, CDC jedoch kompetitive Mediane erreicht, aber aufgrund von Batching und spezifischen Protokollinkompatibilitäten unter signifikanter Tail-Latenz leidet.

Ursprüngliche Autoren: Kunal Dhanda

Veröffentlicht 2026-08-18
📖 5 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: Kunal Dhanda

Originalarbeit lizenziert unter CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

In der Welt der modernen Software wächst der Wunsch nach Anwendungen, die sich so anfühlen, als würden sie direkt auf dem eigenen Gerät leben, selbst wenn man nicht mit dem Internet verbunden ist. Dieser Ansatz, der oft als „Local-First-Software“ bezeichnet wird, ermöglicht es, ein Dokument zu bearbeiten oder eine Liste zu aktualisieren, während man offline ist, wobei die Änderungen darauf warten, an einen zentralen Server gesendet zu werden, sobald die Verbindung wiederhergestellt ist. Die Herausforderung liegt in dem Moment, in dem die Verbindung wiederhergestellt wird: Wie entscheidet der Computer, welche Version der Daten korrekt ist, und wie schnell kann er den zentralen Server aktualisieren, ohne dass der Benutzer warten muss? Damit dies reibungslos funktioniert, benötigt das System einen zuverlässigen Weg, um auf neue Informationen zu hören und diese sofort zu liefern. Wenn die Aktualisierung zu langsam ist, spürt der Benutzer eine Verzögerung; wenn das System zu komplex ist, verbraucht es viel Akku oder stürzt ab. Die Kernfrage für Ingenieure lautet, wie man diesen Abhörmechanismus baut: Soll das Gerät ständig den Server fragen, ob sich etwas geändert hat, sollte der Server die Änderungen sofort „herausschreien“ oder sollte die Datenbank selbst ein fortlaufendes Protokoll jeder Aktion führen, das später gelesen werden kann?

Ein Forscher am Indian Institute of Technology Kharagpur setzte sich zum Ziel, diese drei gängigen Strategien nebeneinander zu testen, um zu sehen, welche in einer kontrollierten Umgebung tatsächlich am besten abschneidet. Die Studie verglich eine Methode, bei der der Client in festen Zeitintervallen nach Updates sucht, eine Methode, bei der der Server Änderungen über eine permanente Verbindung sofort „pusht“, und eine Methode, bei der die Datenbank ein Protokoll jeder Änderung an Abonnenten streamt. Um einen fairen Test zu gewährleisten, baute der Forscher drei separate Systeme, die für den Benutzer identisch aussah, aber unterschiedliche interne Zahnräder verwendeten. Ein System nutzte eine Standarddatenbank mit einer einfachen „Check-in“-Schleife. Ein anderes nutzte dieselbe Datenbank, fügte jedoch einen Trigger hinzu, der in dem Moment ein Signal auslöste, in dem eine Änderung stattfand. Das dritte System verwendete eine andere, verteilte Datenbank, die darauf ausgelegt war, ihre eigene Historie zu streamen. Das Ziel war es, die exakte Zeit zu messen, die eine vom Benutzer getätigte Änderung benötigte, um durch das System zu reisen und auf dem Bildschirm des Zuhörers zu erscheinen, wobei alles von einem einzelnen Benutzer bis hin zu fünfzig Benutzern, die gleichzeitig schreiben, getestet wurde.

Die Ergebnisse zeichneten ein klares Bild davon, wie sich jede Methode unter Druck verhält. Das System, das darauf vertraute, dass der Server Änderungen über eine permanente Verbindung sofort „herausschreit“, erwies sich als das schnellste. In den besten Fällen erschien eine Änderung in nur zwei Millisekunden auf dem Bildschirm des Zuhörers, und selbst wenn fünfzig Personen gleichzeitig schrieben, überstieg die Verzögerung selten dreiundsechzig Millisekunden. Diese Methode behielt ihre Geschwindigkeit bemerkenswert stabil bei, wobei selbst die langsamsten Updates in weniger als einem Viertelsekunden an kamen. Die Methode, bei der der Client alle hundert Millisekunden nach Updates fragt, war berechenbar, aber langsamer. Da der Client warten musste, bis er an der Reihe war zu fragen, betrug die durchschnittliche Verzögerung etwa sechzig Millisekunden, konnte aber niemals schneller sein als die Zeit zwischen den Abfragen. Wenn viele Benutzer gleichzeitig schrieben, wuchs diese Wartezeit an, was die durchschnittliche Verzögerung auf über einhundert Millisekunden trieb. Das System, das das interne Protokoll der Datenbank nutzte, zeigte eine gemischte Leistung. Während die typische Aktualisierung schnell eintraf, oft in unter einer Sekunde, litt das System unter schweren Verzögerungen bei den langsamsten wenigen Updates. Gelegentlich dauerte es mehr als zwei Sekunden, bis eine Änderung ankam, und in einigen Fällen dehnte sich die Verzögerung auf über drei-einhalb Sekunden aus.

Der Forscher entdeckte, dass die langsamsten Updates im logsbasierten System nicht ein Fehler in der Idee des Protokollierens von Änderungen selbst waren, sondern ein Resultat dessen, wie die spezifische Software verbunden war. Das System nutzte einen Workaround, um das Datenbankprotoll zu lesen, da das Standard-Verbindungstool die Sprache der Datenbank nicht korrekt sprach. Dieser Workaround erforderte das Starten eines neuen Prozesses, jedes Mal wenn die Verbindung unterbrochen wurde, was eine schwere Strafe von einem bis vier Sekunden zur Verzögerung hinzufügte. Ohne diese spezifische technische Hürde hätte die logbasierte Methode viel besser abschneiden können, aber in diesem Test machten die langen Verzögerungen sie ungeeignet für Anwendungen, bei denen Benutzer eine sofortige Rückmeldung erwarten. Die Studie bestätigte auch eine einfache Regel für die Abfragemethode: Je länger man zwischen den Abfragen wartet, desto länger wird die durchschnittliche Verzögerung. Wenn ein System alle fünfzig Millisekunden prüft, beträgt die durchschnittliche Wartezeit etwa sechsunddreißig Millisekunden; wenn es fünfhundert Millisekunden zwischen den Prüfungen wartet, springt die durchschnittliche Wartezeit auf über dreihundert Millisekunden.

Diese Erkenntnisse bieten einen praktischen Leitfaden für den Aufbau von Software, die synchron bleiben muss. Für Anwendungen, bei denen Geschwindigkeit entscheidend ist, wie etwa kollaborative Editierungswerkzeuge, bei denen Benutzer in Echtzeit gemeinsam tippen, ist die Methode, bei der der Server Änderungen sofort pusht, die klare Wahl. Sie bietet die geringste Verzögerung und die konsistenteste Leistung, selbst wenn viele Menschen das System gleichzeitig nutzen. Die Methode, bei der der Client in regelmäßigen Abständen nach Updates fragt, ist eine solide Option für einfachere Anwendungen, bei denen eine Verzögerung von einigen hundert Millisekunden akzeptabel ist oder wo es schwierig ist, die Verbindung offen zu halten, wie etwa bei Mobilgeräten, die versuchen, Akku zu sparen. Die Methode, die das Datenbankprotoll streamt, ist leistungsstark für das Bewegen großer Datenmengen oder das Erstellen von Backups, aber die hier getestte Implementierung war zu langsam und unvorhersehbar für die interaktive Nutzung. Die Studie kommt zu dem Schluss, dass zwar alle drei Methoden funktionieren, die beste Wahl jedoch vollständig davon abhängt, ob die Priorität auf sofortiger Reaktionsfähigkeit oder operativer Einfachheit liegt.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →