SWIM과 BadgerDB를 사용한 분산 데이터베이스 복제
2025-05-14
이 글에서는 SWIM 프로토콜과 BadgerDB의 증분 백업 기능을 활용한 분산 데이터베이스 복제 방식을 설명합니다. Hashicorp의 memberlist 패키지와 TCP Push/Pull 메커니즘을 사용하여 노드는 주기적으로 로컬 상태를 계산하고 다른 노드에 전송합니다. 원격 노드는 원격 상태와 로컬 상태를 병합하여 복제 프로세스를 시작합니다. 노드 상태는 다른 노드의 마지막으로 알려진 버전 집합으로 정의됩니다. 상태를 수신하면 노드는 원격 노드에 HTTP 요청을 보내고 auth, config, log 데이터베이스의 증분 백업을 동시에 동기화하여 실제 복제를 달성합니다.
개발
SWIM 프로토콜