2017-09-23 2 views

답변

1

... lastApplied는 상태 머신에 적용되는 가장 높은 로그 항목이 있지만, 어떻게 commitIndex 이상의 그 어떤 다른가요?

로그의 데이터를 커밋하는 구성 요소는 일반적으로 복제 된 상태 시스템 또는 데이터베이스에 적용되는 구성 요소와 별개이기 때문에 실제 시스템에서는 이러한 차이점이 있습니다. commitIndex은 일반적으로 단지 나노 초이거나 lastApplied보다 몇 밀리 초 더 최신입니다.

리더의 matchIndex은 팔로어의 commitIndex입니까? 차이가 없다면 무엇입니까?

이들은 다릅니다. 데이터가 서버에 있고 복제 자체와 같이 아직 커밋되지 않은 시간이 있습니다.

리더는 각 피어에서 최신 커밋되지 않은 데이터를 추적하며 전체 로그 대신 각 피어에 log[matchIndex[peer], ...] 만 보내면됩니다. 피어가 리더보다 상당히 뒤처진 경우 특히 유용합니다. 리더는 일련의 작은 AppendEntries 호출로 피어를 업데이트 할 수 있기 때문에 점차적으로 피어를 최신 상태로 유지할 수 있습니다.

+0

답변을 주셔서 감사합니다. 또 다른 빠른 질문은'nextIndex'에서 이미 캡처 된'matchIndex'의 정보입니까? 'nextIndex - 1'은'matchIndex'이어야합니다. – Jal

관련 문제