가십 프로토콜 (gossip protocol)
쉽게 풀면
중앙 서버가 모두에게 공지하는 대신, 각 노드가 주기적으로 아무 노드나 몇 개 골라 자기가 아는 정보를 알려 주는 방식입니다. 소문이 퍼지듯 정보가 기하급수적으로 번져서, 수천 대 규모에서도 짧은 시간 안에 모두가 알게 됩니다. 몇몇 노드가 죽거나 메시지가 유실되어도 다른 경로로 전달되므로 견고합니다.
왜 중요한가
중앙 조정자 없이도 클러스터 구성원 목록, 장애 감지, 설정 변경 같은 정보를 확산시킬 수 있어 대규모 분산 시스템의 기반 통신 계층으로 널리 쓰입니다. 노드 수가 늘어도 각 노드의 부담이 거의 늘지 않는 확장성이 큰 장점입니다. 여러 대규모 분산 데이터베이스와 서비스 메시가 구성원 관리에 이 방식을 채택하고 있습니다.
논문에서는 이렇게 쓰입니다
중앙 감시 서버 없이도 노드 고장을 빠르게 알아챌 수 있었다는 뜻입니다.
조금 더 깊게 보면
전파 방식은 정보를 가진 쪽이 밀어 주는 푸시, 받는 쪽이 요청하는 풀, 둘을 결합한 푸시-풀로 나뉘며, 푸시-풀이 수렴이 가장 빠릅니다. 노드 수 n에 대해 모든 노드가 정보를 얻기까지 대략 log n 회의 라운드가 필요하다는 것이 전염병 확산 모형으로 분석됩니다. 장애 감지에는 의심 상태를 두어 오탐을 줄이는 SWIM 계열 설계가 널리 쓰이며, 상태를 합치기 쉽게 하려고 충돌 없는 복제 자료형과 함께 구성되기도 합니다.
주의할 점
정보가 언젠가 모두에게 도달한다는 확률적 보장일 뿐 언제 도달하는지는 정해지지 않으므로, 즉각적인 일관성이 필요한 용도에는 맞지 않습니다. 발행-구독 패턴이 브로커를 통해 메시지를 중계하는 구조인 반면, 가십은 노드끼리 직접 무작위로 주고받는 분산 확산 방식입니다.