데이터 센터 간 복제(XDCR)

카우치베이스 7.0의 범위 및 컬렉션에 대한 XDCR 지원 소개

데이터 센터 간 복제(XDCR) 는 데이터베이스 필수 요소입니다.

XDCR은 데이터베이스 고가용성(HA), 재해 복구 및 지리적 위치를 보장합니다. 함께 카우치베이스 서버 7.0 릴리즈, XDCR 또한 새로운 범위 및 컬렉션이라는 개별 네임스페이스 를 각 데이터베이스 버킷에 추가할 수 있습니다. 범위 및 컬렉션에 대한 지원에는 데이터 센터 간 복제에 대한 주요 아키텍처 개선 사항도 포함되어 있습니다.

이제 범위 및 컬렉션을 통해 특정 마이크로서비스를 위한 데이터 복제 또는 멀티테넌트 애플리케이션을 위한 테넌트별 데이터 복제에 XDCR을 사용할 수 있습니다. 이 문서에서는 새로운 컬렉션 복제 관리 기능을 소개하고 XDCR 아키텍처 개선의 비하인드 스토리를 설명합니다.

이러한 XDCR의 개선으로 완전히 새로운 차원의 복제 사용 사례가 가능해졌습니다. XDCR 위치 카우치베이스 서버 7.0은 현재와 미래에 더 많은 마이크로서비스 또는 멀티테넌트 애플리케이션 사용 사례를 지원할 예정입니다.

자세한 내용을 살펴보기 전에 데이터 센터 간 복제 또는 관련 기능에 익숙하지 않은 분들을 위해 몇 가지 중요한 배경 지식을 알려드리겠습니다:

그럼 자세히 알아보겠습니다.

XDCR을 위한 범위 및 컬렉션 간 데이터 복제 매핑

클러스터가 하나만 있는 경우 범위와 컬렉션을 관리하는 것은 비교적 간단합니다. 하지만 XDCR은 다차원 확장을 포함하므로 이러한 새로운 네임스페이스의 매핑과 관리가 더 복잡해집니다.

소스와 대상 버킷 사이에는 여전히 하나의 고유한 복제가 존재할 수 있습니다. 이 요구 사항은 변경되지 않습니다.

그러나 범위 및 컬렉션이 도입되면서 두 가지 유형의 매핑이 지원됩니다.
버킷 간 복제 내에서 컬렉션을 관리합니다. 이 두 가지 유형은 다음과 같습니다. 암시적 매핑 그리고 명시적 매핑.

매핑은 같은 수준의 두 네임스페이스 사이의 링크로, 버킷 대 버킷 복제의 컨텍스트에 존재합니다. 매핑은 범위 간에 있을 수도 있고 컬렉션 간에 있을 수도 있습니다.

각 버킷 대 버킷 복제는 암시적 또는 명시적 매핑을 사용하여 소스 컬렉션과 대상 컬렉션 간에 복제를 수행합니다. 명시적으로 (말장난으로) 지정하지 않는 한 복제는 암시적 매핑을 사용합니다.

컬렉션 간 암시적 매핑

암시적 매핑은 소스 버킷과 대상 버킷 모두에 동일한 이름의 네임스페이스가 존재하는 경우 연결이 설정되어야 한다는 개념입니다.

소스 및 대상 버킷에 모두 동일하게 이라는 이름의 범위 및/또는 컬렉션이 있으면 암시적으로 매핑됩니다. 예를 들어, 암시적 매핑에서 소스 버킷에 네임스페이스가 포함된 경우 Scope1.Collection1로 설정하면 대상 버킷에 다음이 포함되어 있으면 복제가 수행됩니다. Scope1.Collection1.

Implicit mapping for cross data center replication (XDCR) between two Buckets in Couchbase

그림 1: 암시적 매핑을 고려한 두 버킷 간의 데이터센터 간 복제(XDCR)

위의 그림 1은 암시적 매핑을 사용한 버킷 간 복제를 보여줍니다. 소스 기본 컬렉션과 대상 기본 컬렉션이 함께 매핑되어 있습니다(그림에는 표시되지 않음).

매핑되지 않은 네임스페이스는 not 를 복제합니다. 매핑되지 않은 네임스페이스가 나중에 생성되면 XDCR은 백필 복제를 사용하여 누락된 데이터를 따라잡습니다. (백필 파이프라인은 나중에 설명하겠습니다.)

컬렉션 간 명시적 매핑

데이터 복제를 보다 세밀하게 제어해야 하는 경우 명시적 매핑을 시도해 보세요.

명시적 매핑을 사용하려면 사용자는 다음을 수행해야 합니다. 명시적으로 네임스페이스 관계를 정의합니다. 스코프를 다른 스코프에 매핑하면 해당 스코프 내의 모든 컬렉션이 암시적으로 매핑됩니다. 그러나 한 컬렉션을 다른 컬렉션에 매핑해도 다른 네임스페이스에는 영향을 미치지 않습니다.

명시적 매핑은 다음을 사용하여 수행됩니다. 매핑 규칙 명령줄 인터페이스(CLI)를 통해 사용할 수 있습니다. XDCR 콘솔 UI는 매핑 규칙을 수동으로 입력할 필요가 없도록 추상화 기능을 제공합니다.

Cross Data Center Replication (XDCR) user interface for explicit mapping rules

그림 3: XDCR UI는 명시적 매핑을 설정하는 데 사용하기 쉬운 환경을 제공하며 매핑 규칙을 수동으로 입력할 필요가 없습니다.

카우치베이스 서버 문서에는 다음이 포함됩니다. 매핑 규칙 및 사용 방법에 대한 자세한 설명. 매핑 규칙은 이름별로 네임스페이스를 일치시키는 방법을 프로그래밍 방식으로 XDCR에 알려줍니다.

Explicit mapping between two Buckets in Couchbase using Cross Data Center Replication (XDCR)

그림 2: 범위 간 매핑 규칙과 컬렉션 간 매핑 규칙이라는 두 가지 규칙이 지정된 명시적 매핑을 사용한 두 버킷 간의 복제

명시적 매핑 규칙은 컬렉션을 매핑할 때 새로운 차원의 유연성을 제공합니다. 규칙을 즉시 변경할 수도 있습니다. XDCR은 새로운 규칙을 적용한 다음 모든 데이터가 지능적으로 복제되도록 합니다. 우리는

마이그레이션 모드를 사용하여 컬렉션으로 마이그레이션하기

카우치베이스 서버 7.0으로 업그레이드하면 모든 데이터는 기존 버킷 내의 (새로운) 기본 컬렉션에 저장됩니다.

사용 마이그레이션 모드 XDCR(데이터 센터 간 복제)에서는 데이터를 대상 버킷의 개별 컬렉션으로 마이그레이션할 수 있습니다. 애플리케이션 다운타임 없이. 마이그레이션 모드는 명시적 매핑의 특수 버전입니다. 이 모드는 XDCR 고급 필터링 엔진을 사용해 소스 버킷에서 문서가 스트리밍될 때 스트림 기반 필터링을 수행합니다. 그런 다음 지정한 마이그레이션 규칙에 따라 문서가 지정된 대상 컬렉션으로 복제됩니다.

Migration mode too route documents for data replication in Couchbase

그림 4: 다양한 마이그레이션 규칙을 사용하여 문서를 각 위치로 라우팅하는 마이그레이션 모드

카우치베이스 서버 문서에는 마이그레이션 모드에 대한 자세한 내용 및 예제.

스코프 및 컬렉션을 사용한 XDCR의 비하인드 스토리

주요 파이프라인

복제본이 생성되면 복제본은 복제 사양 를 생성하고 내부에 저장합니다. 그런 다음 XDCR은 복제 사양(및 해당 설정)을 읽고 파이프라인 소스 버킷에서 데이터를 요청합니다. 파이프라인은 각 문서를 대상 버킷에 충실하게 복제합니다(고급 필터링이 적용되지 않은 경우).

위의 프로세스는 카우치베이스 서버 7.0에서도 동일하게 유지됩니다. 따라서 소스 버킷 중 하나에 여러 소스 컬렉션이 포함되어 있는 경우, XDCR은 모든 컬렉션을 요청합니다. 이 동작을 주요 파이프라인. 메인 파이프라인은 암시적 또는 명시적 매핑을 사용하여 소스 문서를 대상에 복제합니다. 대상 클러스터에 매핑된 네임스페이스가 포함되어 있지 않으면 XDCR은 문서를 "바닥에" 떨어뜨립니다. 그런 다음 다음 변형을 계속 복제합니다.

Data replication for all documents in Couchbase

그림 5: 대상 컬렉션이 누락된 소스 버킷에서 모든 문서 복제하기

복제하는 동안 XDCR은 대상 컬렉션이 새로 추가되거나 제거되는지 지속적으로 감시합니다. 새 대상 컬렉션이 감지되면 XDCR은 새 매핑을 설정할 수 있는지 확인합니다. 새 매핑이 가능한 경우, 메인 파이프라인은 데이터를 대상 네임스페이스에 성공적으로 복제합니다.

복제 스트림은 순차적이라는 점을 이해하는 것이 중요합니다. XDCR이 이전에 문서를 삭제한 경우, 시퀀스 스트림은 누락된 문서에 대해 이전 시점으로 '되감기'할 수 없습니다. 그렇지 않으면 데이터가 누락될 수 있으므로 XDCR은 누락된 변이를 복제해야 합니다.

한 가지 참고 사항: 컬렉션 없이 되돌릴 수 없는 이 기능 때문에 Couchbase Server 6.5에서 고급 필터링 표현식을 편집할 때 "복제 저장 및 다시 시작"이라는 옵션이 있습니다. "복제 저장 후 다시 시작"을 사용하면 파이프라인이 다시 시작되고 시퀀스 0부터 스트리밍하여 모든 문서가 복제되도록 합니다. 이 솔루션은 컬렉션에는 작동하지 않습니다.

백필 파이프라인

카우치베이스 서버 7.0에서는 이제 XDCR에 백필 파이프라인이라는 개념이 포함됩니다.

백필 파이프라인의 목적은 주 파이프라인이 이전에 삭제한 데이터를 스트리밍하는 것입니다. 이 접근 방식은 네임스페이스의 모든 데이터가 복제되도록 보장합니다.

새로운 대상 컬렉션이 감지되면 XDCR은 자동으로 백필 파이프라인을 생성하고 누락된 데이터를 스트리밍합니다. 그 동안 메인 파이프라인은 진행 중인 모든 돌연변이를 새 대상 컬렉션으로 스트리밍하는 작업을 계속 담당합니다.

백필 파이프라인은 항상 우선순위가 낮은 모드에서 시작하여 메인 파이프라인에 미치는 성능 영향을 최소화합니다. 백필 파이프라인이 확실한 종료 시퀀스 번호를 기준으로 누락된 데이터 스트리밍을 완료하면 백필 파이프라인은 자동으로 해체됩니다.

전체 백필 복제 구축 및 해체 프로세스는 완전히 자동화되어 있으므로 사용자에게 알리지 않고 백그라운드에서 진행됩니다. 하지만 사용자가 소스 버킷에서 나중에 생성된 일부 문서가 이전 변경 사항보다 먼저 도착하는 것을 알아차릴 수 있으므로 아키텍처를 이해하는 것이 중요합니다.

아래 그림 6은 백필 복제 파이프라인의 작동 방식을 보여줍니다.

Backfill pipeline streaming data replication in Couchbase

그림 6: 다음에 대한 백필 파이프라인 스트리밍 데이터 collectionB 이전에 누락된 시퀀스 번호에 대해서만

위 다이어그램에서 새로운 collectionB 가 대상 버킷에 생성되었습니다. 클러스터 A의 XDCR은 메인 파이프라인이 시퀀스 번호 200에서 돌연변이를 스트리밍할 때 새 컬렉션을 감지했습니다. 그런 다음 다음을 담당하는 백필 파이프라인을 생성했습니다. collectionB 염기서열 번호 0에서 200까지의 돌연변이. 모두 진행 중 collectionB 돌연변이(201+)는 메인 파이프라인을 거치게 됩니다.

요약하면, 메인 파이프라인을 통해 XDCR은 최신 변이를 지속적으로 복제하고, 백필 파이프라인을 통해 우선순위가 낮은 복제 스트림이 이전에 누락된 데이터를 복제할 수 있습니다.

결론

요약하면, XDCR 컬렉션 복제는 소스 및 대상 컬렉션 관리 변경 사항을 모두 지능적으로 모니터링합니다. 동적으로(암시적 매핑을 통해) 또는 프로그래밍 방식으로(명시적 매핑을 통해) 복제할 수 있습니다. XDCR 컬렉션을 사용하면 암시적 매핑과 명시적 매핑 간에 모드를 동적으로 변경하고 시퀀스 0에서 복제를 다시 시작할 필요 없이 명시적 매핑 규칙을 즉시 수정할 수 있습니다.

Couchbase Server 7.0의 범위 및 컬렉션은 Couchbase 사용자와 고객을 위한 완전히 새로운 사용 사례의 세계를 열어줍니다. 범위 및 컬렉션에 대한 XDCR의 지원과 이를 통해 제공되는 유연성을 통해 Couchbase Server는 이전 릴리스보다 훨씬 더 많은 고객의 요구 사항을 해결합니다.

XDCR을 직접 사용해 볼 준비가 되셨나요?

 

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 닐 황, 수석 소프트웨어 엔지니어, Couchbase

닐 황은 Couchbase의 선임 소프트웨어 엔지니어로, 데이터센터 간 복제(XDCR) 개발자입니다. Neil은 엔터프라이즈 소프트웨어 분야에서 10년 이상의 경력을 보유하고 있습니다. Couchbase에 입사하기 전에는 차세대 분산 데이터 플랫폼을 구축하는 데이터 스토리지 스타트업인 HPE-3PAR의 엔터프라이즈 데이터 스토리지 데이터 스택 소프트웨어 팀의 일원이었습니다. Neil은 UCLA에서 전기공학/컴퓨터 공학 학사 학위와 컴퓨터 네트워크 공학 석사 학위를 모두 받았습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.