Skip to content

[동시편집] CRDT ID 부여방식

wi-seong-cheol edited this page Dec 12, 2023 · 1 revision

CRDT에서 삽입과 삭제 등의 작업들을 할 때 위치를 파악해야 한다.

이 때 사용하는 것이 Identifier(ID)다.

ID는 상대적인 위치를 가리켜 노드를 탐색하여 위치를 찾는다.

다양한 CRDT 알고리즘이 존재하고, 이 중에서 성능과 구현 난이도를 비교하여 RGASplitTree 방식을 채택하였다.

우리는 ID를 다음과 같이 정의하여 사용하였다.

// RGA identifier
struct RGASS3Vector: Codable {
	/// upstream peer ID
	var sid: Int
	
	/// sum of the upstream vector clock value during insertion
	/// 식별자 A가 B를 선행한다고 말하면`(A < B)`, `sumA < sumB` 또는 `sumA = sumB ∧ sidA < sidB`이다.
	var sum: Int
	
	/// 최초로 삽입된 노드 내에서 오프셋
	/// 기본 값은 0
	var offset: Int

	```
}

출처

오리들의 애자일한 개발 여정

📜 기획

💢 규칙

🐥 1주차 회의록, 회고

데일리 스크럼

회의록

회고

🐥 2주차 회의록, 회고

데일리 스크럼

회의록

회고

🐥 3주차 회의록, 회고

데일리 스크럼

회고

🐥 4주차 회의록, 회고

데일리 스크럼

회고

🐥 5주차 회의록, 회고

데일리 스크럼

회고

🐥 6주차 회의록, 회고

데일리 스크럼

회고

🍎 iOS

아키텍처 의사 결정 기록

Clone this wiki locally