menuTicketing
문서search

스냅숏

로그로 따라잡기에 너무 뒤처진 노드(재시작 직후 등)에게는 FullSnapshot RPC로 현재 상태 전체를 보냅니다. snapshot_bytes 내부는 postcard로 직렬화된 다음 구조입니다.

필드내용
last_applied이 스냅숏이 반영한 마지막 로그 위치
last_membership멤버십(노드 구성) 정보
token_seq펜싱 토큰 발급 번호 — 복제되므로 리더가 바뀌어도 토큰 단조성이 유지됨
locks(key, token, remain_ms) 목록 — 보유 중인 락 전부와 각각의 잔여 lease
  • remain_ms스냅숏 생성 시점의 잔여 lease(밀리초) 입니다. 설치하는 노드는 자기 시계 기준 now + remain_ms로 만료 시각을 복원합니다 — 절대 시각을 보내지 않으므로 노드 간 시계 차이의 영향을 받지 않습니다.
  • 정밀도를 위해 여기서만 밀리초 단위를 씁니다(클라이언트 대면 단위는 초).
  • Raft 로그는 인메모리(휘발)입니다. 재시작한 노드는 빈 상태로 부팅한 뒤 피어의 로그 복제 또는 이 스냅숏으로 따라잡고, 커밋된 상태는 과반이 살아 있는 한 유지됩니다.

용어

  • 스냅숏(snapshot) — 특정 시점의 상태 전체를 통째로 찍어 둔 사본. 뒤처진 노드가 그동안 쌓인 로그를 처음부터 재생하는 대신, 스냅숏을 설치하고 그 이후의 로그만 따라가면 되게 해 줍니다.
  • 멤버십(membership) — 클러스터를 구성하는 노드 목록과 그 역할 정보.