Effiziente kollaborative Textbearbeitung: Eine CRDT-Implementierung
Dieser Artikel beschreibt einen Algorithmus zur kollaborativen Textbearbeitung, der auf CRDTs basiert und ähnlichen Ansätzen in beliebten Bibliotheken wie Yjs und Automerge folgt. Jedes Zeichen erhält eine eindeutige Kennung (Site-ID und Uhr), und ein baumbasierter Index mit Zählern sortiert die Zeichen. Das Löschen fügt die Kennung des Zeichens zu einer Menge gelöschter Zeichen hinzu (Tombstones). Die Effizienz wird durch Optimierungen wie das Zusammenführen aufeinanderfolgender Einfügungen, die zusammenhängende Speicherung von Blöcken und die Verwendung einer rangbasierten Darstellung für die Menge gelöschter Zeichen gesteigert. Dies gewährleistet eine effiziente Verarbeitung großer Textblöcke und gleichzeitiger Bearbeitungen.