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

구성요소
리더, 팔로워, 후보자라는 세 가지 주요 상태로 구성된 노드들로 운용
기본 원리
Raft의 주 목적은 여러 노드가 동일한 데이터를 유지하도록 보장하는 것입니다. 이를 위해 다음과 같은 주요 컴포넌트를 포함합니다:
- 리더 선출: Raft는 클러스터의 리더를 선출하며, 이 리더가 기록과 업데이트의 조정 역할을 수행합니다. 리더가 실패하면 새로운 리더가 선출됩니다.
- 로그 복제: 리더는 클러스터의 다른 노드에 로그 항목을 복제하여 데이터의 일관성을 유지합니다. 로그 항목은 각 작업 수행을 나타내며, 모든 노드는 이러한 로그를 동일하게 유지해야 합니다.
- 안전성: 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

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

리더 선출 과정
- 모든 노드는 follower 상태에서 시작
- election timeout이 시작하고, election timeout이 지난 노드들의 상태는 candidate 상태가 됨.
- election timeout - 팔로워가 후보자가 될 때까지 기다리는 시간(150ms~ 300ms)
- Candidate 노드는 자신에게 투표하고 RequestVotes RPC를 follower에게 보냅니다.
- Follower가 현재 term내에 투표한 적이 없다면 곧바로 투표 요청을 Candidate에게 응답(Vote)을 합니다.
- 모든 노드는 term당 한번의 투표만 할 수 있습니다.
- 응답을 한 Follower는 election timeout을 초기화합니다.
- 과반수 이상의 투표를 받은 Candidate는 Leader가 됩니다.
https://www.yugabyte.com/tech/raft-consensus-algorithm/
728x90
'04.Database' 카테고리의 다른 글
DB 유형 - 벡터 DB (벡터 데이터베이스) (4) | 2025.03.15 |
---|---|
DB 언어 - AI - Text-to-SQL 변환 (0) | 2025.01.08 |
헬스케어 - DNA 컴퓨팅 (2) | 2024.11.29 |
동시성 제어 (병행수행, Concurrency) (2) | 2024.11.29 |
Migration - 데이터 이관 (1) | 2024.11.27 |