- Rust로 작성된 'cola'라는 실시간 협업 편집을 위한 텍스트 CRDT(Conflict-free Replicated Data Type)의 이론적 배경과 기술적 구현에 대한 설명
- CRDT는 여러 사이트에서 동시에 복제 및 수정할 수 있는 데이터 구조로, 중앙 권한의 조정 없이도 수렴이 보장됨
- 글의 내용은 문서의 상태 표현과 그것을 변형하는 편집, 코드에서 프레임워크를 효율적으로 구현하는 방법, 그리고 cola와 다른 Rust 기반 CRDT 라이브러리와의 벤치마크 비교로 나뉨
- 저자는 텍스트에서 'Anchors'라는 개념을 소개하며, 이는 동시성을 활성화하는 방식으로 삽입과 삭제를 모두 지정하는 데 사용됨
- 논문에서는 'Lamport timestamps'를 사용하여 Lamport timestamp에 따라 내림차순으로 정렬함으로써 충돌하는 삽입을 처리하는 방법에 대해 논의함
- 저자는 삭제를 처리하기 위해 'tombstones'라는 개념을 소개함. tombstoned 문자는 삭제로 표시되지만 문서에는 계속 유지됨
- 논문에서는 'G-trees'(grow-only trees)의 사용을 통해 시스템의 성능을 향상시키는 방법에 대해 논의함. G-trees는 양방향으로 순회할 수 있어 동일한 커서 위치에서 반복적인 편집이 매우 빠름
- 저자는 cola와 Rust로 구현된 다른 세 가지 CRDT인 diamond-types, automerge, yrs와의 벤치마크 비교로 논문을 마무리함. Cola는 상류와 하류 방향 모두에서 다른 세 가지를 능가함
- 저자는 cola가 현재 알려진 가장 빠른 텍스트 CRDT 구현이지만, 아직 제작 준비를 위해 해야 할 작업이 있다고 지적함. 예를 들어 undo/redo 및 기타 기능을 지원하는 것 등