BigData

YugabyteDB가 멀티마스터 복제를 처리하는 방법

IT오이시이 2025. 4. 21. 07:45
728x90

YugabyteDB가 멀티마스터 복제를 처리하는 방법

 

YugabyteDB가 멀티 마스터 복제를 처리하는 방법

YugabyteDB는 서로 다른 지역에서 독립적인 클러스터를 실행하여 멀티마스터(액티브-액티브) 복제를 구현합니다. 각 클러스터는 로컬 읽기와 쓰기를 처리할 수 있습니다. 데이터는 xCluster 복제를 사용하여 클러스터 간에 비동기적으로 복제됩니다[1][2][3].

  • 복제 모드: 클러스터 간의 복제는 비동기식이므로 데이터 변경이 지역 간에 즉시 보이지 않습니다. 이는 낮은 지연 시간의 로컬 작업을 보장하지만 궁극적인 일관성을 제공합니다[1][2].
  • 충돌 해결: 동일한 데이터가 복제되기 전에 여러 클러스터에서 업데이트될 경우, "마지막 작성자가 승리" 전략을 사용하여 충돌을 해결합니다. 이 전략에서는 마지막에 도착하는 쓰기가 [1][2]로 유지됩니다.
  • 일관성: 클러스터 간의 트랜잭션 일관성은 보장되지 않습니다. 각 클러스터는 고유한 트랜잭션 무결성을 유지하지만, 클러스터 간 일관성은 즉각적인 것이 아니라 궁극적인 것입니다 [1][2].
  • 페일오버: 한 클러스터가 실패하면 다른 클러스터가 읽기와 쓰기를 대신할 수 있지만, 최근 복제되지 않은 변경 사항은 복제의 비동기적 특성으로 인해 손실될 수 있습니다[1].

이 접근 방식을 통해 YugabyteDB는 다중 지역, 다중 마스터 환경에서 높은 가용성과 낮은 지연 시간을 제공하며, 궁극적인 일관성과 잠재적인 데이터 충돌의 균형을 맞출 수 있습니다.

 

 

 

Yugabyte 핵심 기능

  • 강력한 RDBMS 기능 Yugabyte SQL( 약칭 YSQL )은 PostgreSQL 쿼리 계층(Amazon Aurora PostgreSQL과 유사)을 재사용하여 대부분의 기능(데이터 유형, 쿼리, 표현식, 연산자 및 함수, 저장 프로시저, 트리거, 확장 기능 등)을 지원합니다.
  • 분산 트랜잭션 트랜잭션 설계는 Google Spanner 아키텍처를 기반으로 합니다. 복제를 위한 Raft 합의 및 하이브리드 논리 클럭을 사용하는 클러스터 전체 분산 ACID 트랜잭션을 통해 쓰기의 강력한 일관성을 확보합니다 . 스냅샷 , 직렬화 가능  읽기 커밋 격리 수준이 지원됩니다. 읽기(쿼리)는 기본적으로 강력한 일관성을 갖지만, 팔로워 및 읽기 복제본에서 읽도록 동적으로 조정할 수 있습니다.
  • 지속적인 가용성 YugabyteDB는 기본 장애 조치 및 복구 기능을 통해 일반적인 장애 발생 시 매우 뛰어난 복원력을 제공합니다. YugabyteDB는 디스크, 랙, 노드, 영역, 리전 및 클라우드 장애를 자동으로 허용하도록 구성할 수 있습니다. 퍼블릭 클라우드의 여러 영역에 걸쳐 하나의 리전에 YugabyteDB 클러스터가 배포되는 일반적인 배포의 경우, RPO는 0(장애 발생 시 데이터 손실 없음)이고 RTO는 3초(장애 발생 노드에서 제공되는 데이터가 3초 이내에 사용 가능함)입니다.
  • 수평적 확장성 YugabyteDB 클러스터를 확장하여 IOPS나 데이터 저장 용량을 늘리는 것은 클러스터에 노드를 추가하는 것만큼 간단합니다.
  • 지리적으로 분산된 멀티 클라우드 YugabyteDB는 퍼블릭 클라우드와 쿠버네티스 내부에 기본적으로 배포할 수 있습니다. 다중 영역, 다중 랙, 다중 리전 및 다중 클라우드 배포와 같이 세 개 이상의 장애 도메인에 걸친 배포를 지원합니다. 또한 두 리전 배포에서 단방향 마스터-슬레이브 및 양방향 멀티 마스터 구성을 사용하는 xCluster 비동기 복제를 지원합니다. 읽기 복제본은 낮은 지연 시간으로 (오래된) 데이터를 제공하기 위해 지원됩니다.
  • 다중 API 설계 YugabyteDB 쿼리 계층은 확장 가능하도록 설계되었습니다. 현재 YugabyteDB는 두 가지 분산 SQL API를 지원합니다. 하나는PostgreSQL 쿼리 계층을 재사용하는 완전 관계형 API인 Yugabyte SQL(YSQL) 이고, 다른 하나는 Apache Cassandra QL 루트를 기반으로 문서/인덱싱을 지원하는 준관계형 SQL 유사 API인 Yugabyte Cloud QL(YCQL) 입니다.
  • 100% 오픈 소스 YugabyteDB는 Apache 2.0 라이선스 에 따라 완전히 오픈 소스로 제공됩니다. 오픈 소스 버전은 분산 백업, 저장 데이터 암호화, TLS 암호화, 변경 데이터 캡처, 읽기 복제본 등 강력한 엔터프라이즈 기능을 제공합니다.

 

인용:
[1] 글로벌 애플리케이션을 위한 액티브-액티브 멀티마스터 디자인 패턴 https://docs.yugabyte.com/preview/develop/build-global-apps/active-active-multi-master/
[2] YugabyteDB의 데이터 복제 | Yugabyte https://www.yugabyte.com/blog/data-replication/
[3] YugabyteDB의 멀티 마스터 복제 - 스택 오버플로 https://stackoverflow.com/questions/73702993/multi-master-replication-in-yugabytedb
[4] YugabyteDB 클러스터에 여러 리더가 있는 이유는 무엇입니까? https://www.yugabyte.com/blog/multiple-leaders-yugabyte-database-cluster/
[5] YugabyteDB 읽기로 지역 간 데이터 복제 최적화 ... https://www.mydbops.com/blog/optimize-cross-region-data-replication-with-yugabytedb-read-replicas
[6] 유가바이트DB 아키텍처 - 블라드 미할체아 https://vladmihalcea.com/yugabytedb-architecture/
[7] YugabyteDB가 다중 지역 내 지역 간 충돌을 처리하는 방법 ... https://stackoverflow.com/questions/77912252/how-yugabytedb-handles-conflict-between-regions-in-multi-region-replication
[8] 항상 켜져 있습니다: 브로드리프 및 유가바이트DB와 함께하는 멀티마스터 이커머스 https://broadleafcommerce.com/always-on-multi-master-ecommerce-with-broadleaf-and-yugabytedb/

728x90
반응형