CRDTs: Der Schlüssel zu starker letztlicher Konsistenz

2025-09-09
CRDTs: Der Schlüssel zu starker letztlicher Konsistenz

CRDTs (konfliktfreie replizierte Datentypen) sind Datenstrukturen, die auf mehreren Knoten repliziert, unabhängig bearbeitet und nahtlos zusammengeführt werden können. Dieser Artikel untersucht, wie CRDTs starke letztliche Konsistenz (SEC) erreichen, ein robusteres Modell als die traditionelle letztliche Konsistenz. SEC garantiert, dass selbst bei unabhängigen Aktualisierungen auf mehreren Knoten Konflikte automatisch und deterministisch gelöst werden, was zu geringer Latenz, hoher Fehlertoleranz und Offline-Funktionalität führt. Der Autor argumentiert, dass CRDTs grundlegende Bausteine für stark letztendlich konsistente Systeme sind, mit Anwendungen, die weit über die kollaborative Bearbeitung und Multiplayer-To-Do-Listen hinausgehen, bis hin zu verteilten Datenbanken und darüber hinaus.

Mehr lesen

NIH ist günstiger als die falsche Abhängigkeit

2025-07-18
NIH ist günstiger als die falsche Abhängigkeit

Dieser Artikel hinterfragt die gängige Annahme, dass Softwareabhängigkeiten immer vorteilhaft sind. Der Autor argumentiert, dass Abhängigkeiten erhebliche Kosten verursachen, darunter Lernkurven, Wartungsaufwand, Sicherheitsrisiken und Komplexität bei der Bereitstellung. Anhand der TigerBeetle-Datenbank werden die Vorteile einer „Null-Abhängigkeits“-Politik hervorgehoben. Ein Rahmen zur Bewertung von Abhängigkeiten wird vorgeschlagen, der Ubiquität, Stabilität, Tiefe, Ergonomie und Dichtheit umfasst. POSIX-Systemaufrufe, ECMA-48-Terminal-Steuercodes und die Webplattform werden verwendet, um die Anwendung des Rahmens zu veranschaulichen. Der Artikel endet mit der Aufforderung an Entwickler, die Kosten und Vorteile von Abhängigkeiten kritisch zu bewerten, bevor sie Entscheidungen treffen.

Mehr lesen
Entwicklung

Wollen Dateien Akteure sein? io_uring und die Konvergenz von Rechenparadigmen

2025-01-04
Wollen Dateien Akteure sein? io_uring und die Konvergenz von Rechenparadigmen

In Hochleistungs-Linux-Anwendungen revolutioniert io_uring die Interaktion mit dem Betriebssystem. Es verwendet Einreichungs- und Abschlussqueues, wodurch asynchrone E/A ohne Wartezeiten auf Systemaufrufe möglich ist. Einfach Operationen in die Queue stellen und die Berechnung fortsetzen. Dies ähnelt bemerkenswert dem Actor-Modell: Objekte senden Nachrichten zur parallelen Berechnung. Das Senden von Operationen an Dateideskriptoren und das asynchrone Empfangen von Antworten in io_uring ist verblüffend ähnlich. Dies deutet auf einen Wandel hin zu einem asynchronen, selbstverwaltenden Betriebssystemverhalten; traditionelle Systemaufrufmethoden könnten eine veraltete Abstraktion sein.

Mehr lesen
Entwicklung