동시 편집 - OT,CRDT
| topics | 706 시스템 설계 |
| types | 이론 |
CRDT vs OT
문서편집기에서 CRDT와 OT를 예시로 비교
"ABC"
index 순서대로 0,1,2
ACTION
- 민지 : B뒤에 X > ABXC
- 정빈 : B뒤에 지움 > AC
OT
연산을 보정하면서 진행
- insert("X",position=2)
- delete(position=2)
- delete(position=3)으로 보정
why? 본인 수정할 위치 이하가 추가되었기 때문
CRDT
각각에 id를 붙여 뒤에 오는 것을 정의
A : id1
B : id2
C : id3
id1 > id2 > id3
- x = id4 id1 > id2 > id4 > id3
- delete id2 id1 > id3
- 1,2 merge id1 > id4 > id3
생각
개인적으론 CRDT와 GIT과 비슷하게 느꼇다. 한 단위에 원자성이 있고 각 단위에 ID가 있다. 그리고 머지를 진행한다. 물론 GIT은 이 과정에서의 사람이 개입하지만 CRDT는 알고리즘에 의해 원자성을가지고 머지된다.