| | 1 | [[PageOutline]] |
| | 2 | = MariaDB Galera = |
| | 3 | MariaDB 10.1부터 지원. '걸레라'라고 발음하는 듯. |
| | 4 | |
| | 5 | == 장점 == |
| | 6 | |
| | 7 | ["MariaDB 복제"]는 마스터/슬레이브 방식으로 구성한다. 마스터 노드에서 데이터 변경이 이뤄지면 변경 사항이 슬레이브 노드로 전달되는 방식이다. |
| | 8 | |
| | 9 | 마스터/슬레이브 구조에서 데이터 변경 작업은 마스터 노드에서만 가능하다. 슬레이브 노드에서 쓰기 작업을 하면 데이터 동기화가 깨진다. |
| | 10 | |
| | 11 | ["MariaDB 복제"]의 가장 큰 단점은 이와 같은 마스터/슬레이브 구조 때문에 읽기와 쓰기를 하는 노드를 분리해서 코딩해야 한다는 점이다. |
| | 12 | |
| | 13 | 그 외에도 마스터에 장애가 발생하면 슬레이브 노드 중 하나를 마스터로 승격하고 다시 동기화를 해야 하는 번거로움이 있다. MariaDB 10.0부터는 ["MariaDB 복제#globaltransactionIDGTID" Global Transaction ID (GTID)]를 이용한 복제를 지원하기 때문에 동기화를 할 때의 번거로움이 조금 줄어들기는 했다. |
| | 14 | |
| | 15 | 반면에 Galera는 마스터/슬레이브의 구분이 없다. 모든 노드에서 읽기/쓰기가 가능하다. 따라서 |
| | 16 | |
| | 17 | 1. (개발이 간단함) 읽기와 쓰기 노드를 분리해서 코딩할 필요가 없어진다. |
| | 18 | 2. (장애 처리가 간단함) 특정 노드에 장애가 발생하더라도 그 노드를 제외하기만 하면 별 문제 없이 서비스가 돌아간다. |
| | 19 | |
| | 20 | == 단점 == |
| | 21 | |
| | 22 | ["MariaDB 복제"]는 마스터에 변경을 먼저 하고 슬레이브에 변경이 전달되는데 비해 (비동기 방식) |
| | 23 | |
| | 24 | Galera는 어느 노드에 데이터 변경을 요청하면 다른 모든 노드까지 데이터 변경이 이루어져야 데이터 변경이 완료된다. (동기 방식) |
| | 25 | |
| | 26 | 동기 방식이 장점일 수도 있지만 경험상 단점으로 작용하는 경우가 더 많다. |
| | 27 | |
| | 28 | 1. (쓰기 성능 저하) 일단 쓰기 작업이 완료되는 시간이 오래 걸린다. 모든 노드를 다 변경해야하기 때문이다. |
| | 29 | 2. (연쇄적인 장애) 어느 한 노드에 장애가 생겨 동기화하는데 시간이 오래 걸린다면 다른 노드에까지 연쇄적으로 영향을 미칠 수 있다. |
| | 30 | 3. (확장의 한계) 전체적인 노드 수가 늘어나면 늘어날수록 위와 같은 단점이 커지게 된다. 따라서 아주 대규모 환경에서는 적용하기 힘들다. |
| | 31 | |
| | 32 | ---- |
| | 33 | [WikiStart 처음으로] |