개요

RID는 복제 네트워크에 속한 각 노드가 자신의 데이터 버전을 관리하기 위해 사용하는 식별자입니다. 각 노드는 리소스 당 1 set의 RID를 관리합니다.

RID의 예:

00000000000000000000000000:01DT3V6WF6K5K12JBV8B563TXP:01DT3TREEM05JE0G8NFRACKJ3Y:01DT3TPFFQV48H3D51300DH53S:01DT3P4BTHN2T3QZTR9V78CPV5:1:0:0:0:3

간소화 출력(타임 스탬프만 출력)의 예:

0000000000:01DT3V6WF6:01DT3TREEM:01DT3TPFFQ:01DT3P4BTH:1:0:0:0:3

구조

[ data id list ]:[flags]
[incoming]:[head]:[old1]:[old2]:[base]:[flags]


동작

RID의 기본 값은 다음과 같습니다.

00000000000000000000000000:00000000000000000000000000:00000000000000000000000000:00000000000000000000000000:00000000000000000000000000:0:0:0:0:0

길이가 너무 길어 가독성이 떨어지므로 이 문서에서는 간략하게 표현합니다.

초기상태

복제 네트워크가 연결되어 모든 노드가 secondary로 평형 상태인 경우 각 노드의 ULID는 다음과 같이 기본값으로 유지됩니다.

승격

노드 승격 시 current 값이 설정되어 있지 않으면 초기화 과정이 먼저 수행됩니다.

강등

Primary 플래그를 해제합니다.

동기화

동기화를 진행하는 과정에서의 RID 는 다음과 같이 운용됩니다.

RID Compare

복제 네트워크가 연결되어 connected 상태가 되면 각 노드는 서로의 RID를 전달하여 다음의 순서로 비교합니다.

RID 플래그

복제 데이터가 생성되지 않으면 데이터의 세대가 구분될 필요가 없으므로, 복제가 발생 했는지 여부를 플래그로 두어 운용합니다.

플래그 갱신 시점: