728x90
반응형

(개념) (Paxos의 대안으로) 분산 시스템에서 데이터의 일관성을 보장하고 고가용성을 유지하기 위해 설계된 합의 알고리즘

 

구성요소

리더, 팔로워, 후보자라는 세 가지 주요 상태로 구성된 노드들로 운용

 

기본 원리

Raft의 주 목적은 여러 노드가 동일한 데이터를 유지하도록 보장하는 것입니다. 이를 위해 다음과 같은 주요 컴포넌트를 포함합니다:

  1. 리더 선출: Raft는 클러스터의 리더를 선출하며, 이 리더가 기록과 업데이트의 조정 역할을 수행합니다. 리더가 실패하면 새로운 리더가 선출됩니다.
  2. 로그 복제: 리더는 클러스터의 다른 노드에 로그 항목을 복제하여 데이터의 일관성을 유지합니다. 로그 항목은 각 작업 수행을 나타내며, 모든 노드는 이러한 로그를 동일하게 유지해야 합니다.
  3. 안전성: Raft는 로그의 안전성을 보장하기 위해, 새로운 로그 항목이 커밋될 때까지 리더가 다수의 응답을 받아야 합니다. 이 과정을 통해 **파르티션 내 존재 노드(delegate)**로부터의 합의를 통해 새로운 세션이 형성됩니다.23
 

Raft Consensus Algorithm - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

 

리더 선출과정

리더, 팔로워, 후보자라는 세 가지 주요 상태로 구성된 노드들로 운용

 

https://whiteman97.tistory.com/170

 

리더 선출 과정

  1. 모든 노드는 follower 상태에서 시작
  2. election timeout이 시작하고, election timeout이 지난 노드들의 상태는 candidate 상태가 됨. 
    • election timeout - 팔로워가 후보자가 될 때까지 기다리는 시간(150ms~ 300ms)
  3. Candidate 노드는 자신에게 투표하고 RequestVotes RPC를 follower에게 보냅니다.
  4. Follower가 현재 term내에 투표한 적이 없다면 곧바로 투표 요청을 Candidate에게 응답(Vote)을 합니다.
    • 모든 노드는 term당 한번의 투표만 할 수 있습니다.
    • 응답을 한 Follower는 election timeout을 초기화합니다.
  5. 과반수 이상의 투표를 받은 Candidate는 Leader가 됩니다.

 

https://www.yugabyte.com/tech/raft-consensus-algorithm/

 

https://velog.io/@junho100/Raft-%ED%95%A9%EC%9D%98-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98%EC%9D%B4%EB%9E%80

https://whiteman97.tistory.com/170

728x90
Posted by Mr. Slumber
,