Hedtke, Moritz (2024)
Optimizing Collaborative Plain Text Editing Algorithms for Decentralized Non-Realtime Text Editing.
Technische Universität Darmstadt
doi: 10.26083/tuprints-00027834
Bachelorarbeit, Erstveröffentlichung, Verlagsversion
Kurzbeschreibung (Abstract)
Text editing is ubiquitous, as it occurs on almost every website, mobile app, and desktop application. Collaborative text editing avoids manual synchronization when working together with others on text. This requires algorithms that can efficiently combine the concurrent edit operations in an intent-preserving way. Additionally, supporting a wide range of network scenarios enables offline work in a decentralized manner with better availability and reliability than with central servers. In this thesis, we first look at prior solutions for plain text editing and their ability to preserve user intentions, as users should not experience unexpected behavior when concurrently editing text. Then, we improve the benchmarking approach of prior research to estimate asymptotic complexity and to measure performance of algorithmic edge cases. Based on that, we propose optimizations for a prior collaborative text editing algorithm called Fugue. Our optimized algorithm can handle character insertion and deletion in logarithmic runtime in relation to the text length and with constant memory usage per character operation. It uses 25 bytes and one microsecond per operation on four Intel Xeon Gold vCPUs for a representative text with 25 million operations. We also develop a local web application as a proof of concept for working on plain text collaboratively using WebRTC. Additionally, we show that the maximally non-interleaving property in the Fugue paper can exhibit interleaving when deletions are involved.
Typ des Eintrags: | Bachelorarbeit |
---|---|
Erschienen: | 2024 |
Autor(en): | Hedtke, Moritz |
Art des Eintrags: | Erstveröffentlichung |
Titel: | Optimizing Collaborative Plain Text Editing Algorithms for Decentralized Non-Realtime Text Editing |
Sprache: | Englisch |
Publikationsjahr: | 19 September 2024 |
Ort: | Darmstadt |
Kollation: | 69 Seiten |
DOI: | 10.26083/tuprints-00027834 |
URL / URN: | https://tuprints.ulb.tu-darmstadt.de/27834 |
Kurzbeschreibung (Abstract): | Text editing is ubiquitous, as it occurs on almost every website, mobile app, and desktop application. Collaborative text editing avoids manual synchronization when working together with others on text. This requires algorithms that can efficiently combine the concurrent edit operations in an intent-preserving way. Additionally, supporting a wide range of network scenarios enables offline work in a decentralized manner with better availability and reliability than with central servers. In this thesis, we first look at prior solutions for plain text editing and their ability to preserve user intentions, as users should not experience unexpected behavior when concurrently editing text. Then, we improve the benchmarking approach of prior research to estimate asymptotic complexity and to measure performance of algorithmic edge cases. Based on that, we propose optimizations for a prior collaborative text editing algorithm called Fugue. Our optimized algorithm can handle character insertion and deletion in logarithmic runtime in relation to the text length and with constant memory usage per character operation. It uses 25 bytes and one microsecond per operation on four Intel Xeon Gold vCPUs for a representative text with 25 million operations. We also develop a local web application as a proof of concept for working on plain text collaboratively using WebRTC. Additionally, we show that the maximally non-interleaving property in the Fugue paper can exhibit interleaving when deletions are involved. |
Status: | Verlagsversion |
URN: | urn:nbn:de:tuda-tuprints-278347 |
Sachgruppe der Dewey Dezimalklassifikatin (DDC): | 000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik |
Fachbereich(e)/-gebiet(e): | 20 Fachbereich Informatik 20 Fachbereich Informatik > Softwaretechnik |
Hinterlegungsdatum: | 19 Sep 2024 08:21 |
Letzte Änderung: | 23 Sep 2024 10:33 |
PPN: | |
Export: | |
Suche nach Titel in: | TUfind oder in Google |
Frage zum Eintrag |
Optionen (nur für Redakteure)
Redaktionelle Details anzeigen |