오늘은 MySQL MSR, MariaDB Galera Cluster 에 대해서 차이점을 살펴보려 한다.
MariaDB Galera Cluster
- MySQL은 기본적으로 Master/Slave 구조만 지원
- MariaDB의 Galera Cluster는 동기식 Multi-Master 복제 기술
- 여러 노드 간에 데이터를 동기식으로 복제하여
어떤 노드에서든지 읽기/쓰기 작업을 처리할 수 있음
- Self-Healing 기능을 통해 노드의 장애가 발생해도 자동 복구 가능
- 장애가 해결되면 다시 합류시켜서 최신 데이터 동기화하여 복구 가능
- Global Transaction ID (GTID)를 사용하여 데이터 충돌 방지 제공
- 각 노드에서 트랜잭션 순서를 조율하여 충돌을 방지함

MySQL MSR vs MariaDB Galera Cluster

MariaDB Galera Cluster 단점
- 쓰기 성능 저하
- 트랜잭션이 모든 노드에 복제되기 전에 commit이 완료되지 않음
- 노드 수가 많거나 네트워크 지연이 발생하면 더욱 저하됨
- 충돌 해결의 한계
- 기본적으로 첫번째 commit된 트랜잭션이 우선처리
- 충돌된 트랜잭션은 롤백되어 중요한 트랜잭션이 실패할 수 있음
- 노드 동기화
- 새로운 노드나 기존 노드가 복구될때 대량의 데이터를 동기화해야하여 성능에 악영향을 미침
MySQL MSR vs MariaDB Galera Cluster
- MySQL MSR = MSA
- 독립된 다수의 DB의 데이터 통합
- 성능과 유연성이 더 중요할때 사용(비동기)
- 충돌 위험이 낮은 경우(다른 데이터를 다루거나 데이터 충돌 가능성 낮음)
- MariaDB Galera Cluster = SaaS, Solution, Platform
- 쓰기 작업에 대해서 고가용성(HA)이 필요한 환경
- 트랜잭션 데이터의 무결성 보장이 필요한 경우
- 데이터 충돌 관리가 필요한 경우