- Penjelasan tentang latar belakang teoretis dan implementasi teknis dari CRDT teks (Conflict-free Replicated Data Type) bernama 'cola' untuk pengeditan kolaboratif real-time, yang ditulis dengan Rust
- CRDT adalah struktur data yang dapat direplikasi dan dimodifikasi secara bersamaan di beberapa situs, dengan jaminan konvergensi bahkan tanpa koordinasi otoritas pusat
- Isi tulisan dibagi menjadi representasi keadaan dokumen dan edit yang mentransformasikannya, cara mengimplementasikan framework secara efisien dalam kode, serta perbandingan benchmark antara cola dan pustaka CRDT berbasis Rust lainnya
- Penulis memperkenalkan konsep 'Anchors' dalam teks, yang digunakan untuk menentukan baik penyisipan maupun penghapusan dengan cara yang memungkinkan konkurensi
- Makalah ini membahas penggunaan 'Lamport timestamps' untuk menangani penyisipan yang bertabrakan dengan mengurutkannya secara menurun berdasarkan Lamport timestamp
- Penulis memperkenalkan konsep 'tombstones' untuk menangani penghapusan. Karakter yang telah ditandai tombstone dianggap terhapus, tetapi tetap dipertahankan dalam dokumen
- Makalah ini membahas cara meningkatkan kinerja sistem melalui penggunaan 'G-trees' (grow-only trees). G-trees dapat ditelusuri dua arah sehingga pengeditan berulang pada posisi kursor yang sama menjadi sangat cepat
- Penulis menutup makalah dengan perbandingan benchmark antara cola dan tiga CRDT lain yang diimplementasikan dengan Rust: diamond-types, automerge, dan yrs. Cola mengungguli ketiganya baik pada arah upstream maupun downstream
- Penulis mencatat bahwa meskipun cola saat ini merupakan implementasi CRDT teks tercepat yang diketahui, masih ada pekerjaan yang perlu dilakukan agar siap diproduksi, misalnya dukungan undo/redo dan fitur lainnya
1 komentar
Opini Hacker News
slotmapagar penghapusan didukung tanpa kekhawatiran indeks berpindah atau menunjuk ke nilai lain