- Giải thích nền tảng lý thuyết và cách triển khai kỹ thuật của CRDT văn bản có tên
cola cho chỉnh sửa cộng tác thời gian thực, được viết bằng Rust
- CRDT là cấu trúc dữ liệu có thể được sao chép và chỉnh sửa đồng thời ở nhiều điểm, đồng thời vẫn đảm bảo hội tụ mà không cần sự điều phối của một cơ quan trung tâm
- Nội dung bài viết được chia thành việc biểu diễn trạng thái của tài liệu và các chỉnh sửa biến đổi trạng thái đó, cách triển khai framework một cách hiệu quả trong mã nguồn, và so sánh benchmark giữa cola với các thư viện CRDT khác dựa trên Rust
- Tác giả giới thiệu khái niệm
Anchors trong văn bản, được dùng để chỉ định cả chèn và xóa theo cách cho phép xử lý tính đồng thời
- Bài viết thảo luận cách xử lý các phép chèn xung đột bằng
Lamport timestamps, thông qua việc sắp xếp giảm dần theo Lamport timestamp
- Tác giả giới thiệu khái niệm
tombstones để xử lý xóa. Các ký tự đã bị tombstone sẽ được đánh dấu là đã xóa nhưng vẫn được giữ lại trong tài liệu
- Bài viết cũng bàn về cách cải thiện hiệu năng hệ thống bằng cách sử dụng
G-trees (grow-only trees). G-trees có thể được duyệt theo cả hai hướng, nên các thao tác chỉnh sửa lặp lại tại cùng một vị trí con trỏ rất nhanh
- Tác giả kết thúc bài viết bằng phần benchmark so sánh cola với ba CRDT khác cũng được triển khai bằng Rust là diamond-types, automerge và yrs. Cola vượt trội hơn cả ba ở cả hướng upstream lẫn downstream
- Tác giả chỉ ra rằng dù cola hiện là triển khai CRDT văn bản nhanh nhất được biết đến, vẫn còn những việc cần làm để sẵn sàng cho môi trường production, chẳng hạn như hỗ trợ undo/redo và các tính năng khác
1 bình luận
Ý kiến trên Hacker News
slotmapđể hỗ trợ xóa mà không phải lo chỉ số bị dịch chuyển hoặc trỏ sang các giá trị khác