- Rust ile yazılmış, gerçek zamanlı işbirlikçi düzenleme için
cola adlı bir metin CRDT’sinin (Conflict-free Replicated Data Type) kuramsal arka planı ve teknik uygulaması açıklanıyor
- CRDT, birden çok sitede aynı anda kopyalanıp değiştirilebilen bir veri yapısıdır; merkezi bir otoritenin koordinasyonu olmadan da yakınsama garanti edilir
- Yazının içeriği, belgenin durumunun temsili ve onu dönüştüren düzenlemeler, bu çerçevenin kod içinde verimli biçimde nasıl uygulanacağı ve
cola ile diğer Rust tabanlı CRDT kütüphaneleri arasındaki benchmark karşılaştırmaları olarak bölümleniyor
- Yazar, metinde
Anchors adlı bir kavram tanıtıyor; bu kavram, eşzamanlılığı mümkün kılacak şekilde hem ekleme hem de silme işlemlerini belirtmek için kullanılıyor
- Makalede, çakışan eklemelerin
Lamport timestamps kullanılarak ve Lamport timestamp’e göre azalan sırada sıralanarak nasıl ele alınacağı tartışılıyor
- Yazar, silmeleri işlemek için
tombstones adlı bir kavram tanıtıyor. Tombstone işaretli karakterler silinmiş olarak işaretleniyor ancak belgede tutulmaya devam ediyor
- Makalede, sistem performansının
G-trees (grow-only trees) kullanımıyla nasıl artırılabileceği ele alınıyor. G-trees iki yönlü dolaşılabildiği için aynı imleç konumunda tekrarlanan düzenlemeler çok hızlı gerçekleşiyor
- Yazar, makaleyi
cola ile Rust ile yazılmış diğer üç CRDT olan diamond-types, automerge ve yrs arasındaki benchmark karşılaştırmasıyla bitiriyor. cola, hem yukarı akış hem de aşağı akış yönlerinde diğer üçünü geride bırakıyor
- Yazar,
cola şu anda bilinen en hızlı metin CRDT uygulaması olsa da üretime hazır hale gelmesi için hâlâ yapılması gereken işler olduğunu belirtiyor; örneğin undo/redo ve diğer özelliklerin desteklenmesi gibi
1 yorum
Hacker News görüşleri
slotmapadlı bir crate kullanılarak, indekslerin taşınması ya da başka değerleri göstermesi konusunda endişe etmeden silme işlemlerinin desteklenmesi öneriliyor