Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents


개요

...

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]

  • incoming

    • 동기화가 진행 중일 때 타겟에 지정되는 ULID.

    • 동기화 소스의 current와 같은 값.

  • head

    • 현재 데이터의 ULID.

  • old1, old2

    • 과거 데이터 ULID. current → old1 → old2의 순서로 순환됩니다.

    • 노드 간 동기화 방향을 결정하는데 사용됩니다.

  • base

    • 복제 네트워크의 고유 ULID. 순환되지 않습니다.

    • 노드가 연결되지 않은 동안 RID가 3번 이상 순환되어 SB로 판단되는 경우, 같은 복제 네트워크의 노드가 맞다는 것을 증명하기 위해 추가되었습니다.

  • flags

    • ULID 이외의 추가 정보를 담기 위한 영역. file_lock이외의 플래그는 0 또는 1의 두 가지 값만 사용 할 수 있습니다.

      • consistency

        • 데이터의 일관성을 나타내는 플래그.

      • outdated

        • Primary와의 복제가 중단되면 Secondary에 설정되는 플래그.

      • primary

        • 노드가 승격 될 때 설정되며, 강등시에만 해제됩니다.

      • crashed_primary

        • primary 상태에서 정사적으로 종료되지 않은 경우 설정되며 동기화에 의해 해제됩니다.

      • file_lock

        • 파일 잠금 상태

        • 0: 알 수 없음, 1: 잠금 해제, 2: 읽기 허용, 3: 잠금