1 puan yazan GN⁺ 2023-09-04 | 1 yorum | WhatsApp'ta paylaş
  • 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

 
GN⁺ 2023-09-04
Hacker News görüşleri
  • Bir yorumda, G-tree'nin temelde ebeveyn işaretçileri eklenmiş bir B-tree olduğu ve bunu bir dizide saklasanız bile yapının özünde değişmediği öne sürülüyor
  • Cola'nın kalın, italik gibi zengin metin biçimlendirme aralıklarını desteklemeyebileceğine dair endişeler var; yorum yazarı, zengin metin CRDT algoritmalarında güncel durum için Peritext'i öneriyor
  • Cola ile Automerge veya Y.js/Yrs gibi benzer teknolojiler arasında performans ya da özellik karşılaştırmasına dair sorular var
  • Dinamik dizilerde düğüm sahipliği sorununa yönelik bir çözüm tartışılmış; burada tüm düğümler dinamik dizide tutuluyor ve diğer düğümlere başvurmak için indeksler kullanılıyor
  • slotmap adlı bir crate kullanılarak, indekslerin taşınması ya da başka değerleri göstermesi konusunda endişe etmeden silme işlemlerinin desteklenmesi öneriliyor
  • Bazı kullanıcılar, Etherpad ve Word gibi diğer araçların başarısız olduğu projelerde Cola'yı denemeye ilgi duyduklarını ifade ediyor
  • Kullanılan benchmark'ların adilliğine yönelik eleştiriler dile getiriliyor; çünkü bunlar işlemleri veya gerçek metni fiilen hesaplayıp saklamıyor
  • Bu Cola'nın, Ian Piumarta'nın aynı adlı çalışmasıyla karıştırılmaması gerektiği de belirtiliyor
  • Metin CRDT kullanarak tarayıcıda formların işbirlikçi düzenlenmesini mümkün kılmaya dair sorular da var
  • "CRDT" kısaltmasının belgede tanımlanması öneriliyor; çünkü çok yaygın değil ve okurlarda kafa karışıklığı yaratabilir
  • Cola'nın tiptap/prosemirror veya diğer metin editörleriyle birlikte kullanılarak CRDT tabanlı işbirlikçi düzenleme eklenip eklenemeyeceğine dair sorular da gündeme geliyor