참조로 다음 pdf을 사용하고 있습니다. 서버의 휘발성 상태에 대한 뗏목 프로토콜의 lastApplied 및 matchIndex는 무엇입니까?
그것은 lastApplied
은 상태 머신에 적용되는 가장 높은 로그 항목이지만, 어떻게 commitIndex
이상의 그 어떤 차이가 있다고?
팔로어의 커밋 인덱스 뿐인 리더의 matchIndex
입니까? 차이가 없다면 무엇입니까?
참조로 다음 pdf을 사용하고 있습니다. 서버의 휘발성 상태에 대한 뗏목 프로토콜의 lastApplied 및 matchIndex는 무엇입니까?
그것은 lastApplied
은 상태 머신에 적용되는 가장 높은 로그 항목이지만, 어떻게 commitIndex
이상의 그 어떤 차이가 있다고?
팔로어의 커밋 인덱스 뿐인 리더의 matchIndex
입니까? 차이가 없다면 무엇입니까?
...
lastApplied
는 상태 머신에 적용되는 가장 높은 로그 항목이 있지만, 어떻게commitIndex
이상의 그 어떤 다른가요?
로그의 데이터를 커밋하는 구성 요소는 일반적으로 복제 된 상태 시스템 또는 데이터베이스에 적용되는 구성 요소와 별개이기 때문에 실제 시스템에서는 이러한 차이점이 있습니다. commitIndex
은 일반적으로 단지 나노 초이거나 lastApplied
보다 몇 밀리 초 더 최신입니다.
리더의
matchIndex
은 팔로어의commitIndex
입니까? 차이가 없다면 무엇입니까?
이들은 다릅니다. 데이터가 서버에 있고 복제 자체와 같이 아직 커밋되지 않은 시간이 있습니다.
리더는 각 피어에서 최신 커밋되지 않은 데이터를 추적하며 전체 로그 대신 각 피어에 log[matchIndex[peer], ...]
만 보내면됩니다. 피어가 리더보다 상당히 뒤처진 경우 특히 유용합니다. 리더는 일련의 작은 AppendEntries
호출로 피어를 업데이트 할 수 있기 때문에 점차적으로 피어를 최신 상태로 유지할 수 있습니다.
답변을 주셔서 감사합니다. 또 다른 빠른 질문은'nextIndex'에서 이미 캡처 된'matchIndex'의 정보입니까? 'nextIndex - 1'은'matchIndex'이어야합니다. – Jal