합의 프로토콜의 아키텍처
MySQL Group Replication의 핵심은 XCom이라는 Paxos 변형 통신 엔진입니다. 기본적으로 모든 그룹 멤버가 합의 리더로 동작하지만, 단일 기본 모드에서는 단일 합의 리더를 사용하여 성능을 향상시킬 수 있습니다. 읽기/쓰기 트랜잭션은 원본 서버에서 실행된 후, 커밋 시점에 쓰기 세트(변경된 행의 고유 식별자)를 모든 그룹 멤버에게 원자적 브로드캐스트로 전송합니다.
트랜잭션 처리 및 인증 프로세스
모든 서버는 동일 순서로 동일한 트랜잭션 집합을 수신하며, 전역 총 순서가 수립됩니다. 인증(Certification) 단계에서는 동시 실행된 트랜잭션들의 쓰기 세트를 비교하여 행 수준의 충돌을 감지합니다. 충돌 발생 시 먼저 정렬된 트랜잭션이 모든 서버에서 커밋되고 나중 트랜잭션은 롤백됩니다. 쿼럼 필요 요건으로 인해 2개 노드 손실 시에도 3개 멤버 그룹은 정상 작동합니다.
실무 운영 주의사항
단일 기본 모드에서 단일 합의 리더를 사용하려면 group_replication_paxos_single_leader를 ON으로 설정하고 통신 프로토콜 버전 8.0.27 이상이 필요합니다. 이벤트 호라이즌(최대 병렬 실행 합의 인스턴스)의 기본값은 10이나, WAN 환경에서는 이를 증가시켜 성능을 개선할 수 있습니다. 같은 행을 자주 갱신하는 트랜잭션들은 충돌로 인한 롤백을 피하기 위해 같은 서버에서 시작하는 것이 권장됩니다.