developer tip

마스터-마스터 대 마스터-슬레이브 데이터베이스 아키텍처?

optionbox 2020. 8. 18. 07:37
반응형

마스터-마스터 대 마스터-슬레이브 데이터베이스 아키텍처?


두 종류의 데이터베이스 아키텍처에 대해 들었습니다.

  • 마스터 마스터

  • 주인 노예

마스터 마스터가 오늘날의 웹에 더 적합하지 않습니까? Git과 같기 때문에 모든 유닛에는 전체 데이터 세트가 있으며 하나가 다운 되더라도 중요하지 않습니다.

마스터-슬레이브는 일을 처리하는 하나의 중앙 장치가있는 SVN (내가 싫어하는)을 상기시킵니다.

질문 :

  1. 각각의 장단점은 무엇입니까?

  2. iPhone과 같은 휴대폰에 로컬 데이터베이스를 갖고 싶다면 어느 것이 더 적합합니까?

  3. 이 중 하나를 선택하는 것이 철저하게 고려해야 할 중요한 요소입니까?


우리는 가용성, 일관성 및 복잡성을 절충합니다. 마지막 질문을 먼저 해결하려면 : 이것이 중요합니까? 예 아주 많이! 데이터 관리 방법에 대한 선택은 절대적으로 기본이며 결정을 피하는 "모범 사례"는 없습니다. 특정 요구 사항을 이해해야합니다.

근본적인 긴장이 있습니다.

하나의 카피 : 일관성은 쉽지만 만약 다운되면 모든 사람들이 물에서 벗어나고 사람들이 멀리 떨어져 있으면 끔찍한 통신 비용을 지불 할 수 있습니다. 연결이 끊어진 상태로 작동해야하는 휴대용 장치를 사진으로 가져 오면 한 장으로도 잘리지 않습니다.

마스터 슬레이브 : 데이터의 각 부분에 정확히 하나의 소유 마스터가 있기 때문에 일관성이 그리 어렵지 않습니다. 하지만 그 주인이 보이지 않으면 어떻게해야하나요? 일종의 연기 된 작업이 필요합니다.

마스터-마스터 : 글쎄요, 만약 당신이 그것을 작동시킬 수 있다면 그것은 모든 것을 제공하는 것 같고, 단일 실패 지점이 없으며, 모두가 항상 일할 수 있습니다. 문제는 절대적인 일관성을 유지 하는 것이 매우 어렵다는 것입니다. 자세한 내용은 wikipedia 기사참조하십시오 .

위키 백과에는 장단점에 대한 멋진 요약이있는 것 같습니다.

장점

  • 한 마스터가 실패하면 다른 마스터가 데이터베이스를 계속 업데이트합니다.

  • 마스터는 여러 물리적 사이트에 위치 할 수 있습니다. 즉, 네트워크를 통해 분산됩니다.

단점

  • 대부분의 다중 마스터 복제 시스템은 느슨하게 일관 적입니다. 즉, 지연 및 비동기 ACID 속성을 위반합니다.

  • Eager 복제 시스템은 복잡하며 통신 지연이 발생합니다.

  • 충돌 해결과 같은 문제는 관련된 노드 수가 증가하고 필요한 지연 시간이 감소함에 따라 다루기 어려울 수 있습니다.


다양한 데이터베이스 아키텍처를 연구하면서. 나는 미래에 연구하는 다른 누군가와 관련이있을 수있는 좋은 정보를 수집했습니다. 나는 만났다

  1. 마스터-슬레이브 복제
  2. 마스터-마스터 복제
  3. MySQL 클러스터

내 사용 사례에 MySQL Cluster를 사용하기로 결정했습니다. 그러나 내가 컴파일 한 다양한 장단점은 아래를 참조하십시오.

1. 마스터-슬레이브 복제

장점

  • 분석 애플리케이션은 마스터에 영향을주지 않고 슬레이브에서 읽을 수 있습니다.
  • 마스터에 상대적으로 영향을 미치지 않는 전체 데이터베이스 백업
  • 슬레이브를 오프라인으로 전환하고 다운 타임없이 마스터와 다시 동기화 할 수 있습니다.

단점

  • 장애가 발생한 경우 슬레이브를 마스터로 승격하여 대신해야합니다. 자동 장애 조치 없음
  • 마스터 장애시 다운 타임 및 데이터 손실 가능성
  • 모든 쓰기는 마스터-슬레이브 설계에서 마스터에 작성되어야합니다.
  • 각 추가 슬레이브는 바이너리 로그를 읽고 각 슬레이브에 데이터를 복사해야하기 때문에 마스터에 약간의 부하를 추가합니다.
  • 응용 프로그램을 다시 시작해야 할 수 있습니다.

2. 마스터-마스터 복제

장점

  • 응용 프로그램은 두 마스터 모두에서 읽을 수 있습니다.
  • 두 마스터 노드에 쓰기로드를 분산합니다.
  • 간단하고 자동이며 빠른 장애 조치

단점

  • 느슨하게 일관성
  • 구성 및 배포가 마스터-슬레이브만큼 간단하지 않음

3. MySQL 클러스터

The new kid in town based on MySQL cluster design. MySQL cluster was developed with high availability and scalability in mind and is the ideal solution to be used for environments that require no downtime, high avalability and horizontal scalability.

See MySQL Cluster 101 for more information

Pros

  • (High Avalability) No single point of failure
  • Very high throughput
  • 99.99% uptime
  • Auto-Sharding
  • Real-Time Responsiveness
  • On-Line Operations (Schema changes etc)
  • Distributed writes

Cons

You can visit for my Blog full breakdown including architecture diagrams that goes into further details about the 3 mentioned architectures.

참고URL : https://stackoverflow.com/questions/3736969/master-master-vs-master-slave-database-architecture

반응형