분류

일관성: 될 수도, 되지 않을 수도

바로 그 질문입니다.

이는 파티션 및/또는 장애 조치가 없는 클라이언트의 관점에서 볼 때입니다.

MongoDB

MongoDB의 데이터는 일관성이 있나요?

MongoDB는 기본 노드에서 읽기 및 쓰기 작업을 실행하며 데이터는 일관성을 유지합니다. 그러나 클라이언트가 보조 노드를 활용하지 않기 때문에 성능이 제한됩니다. 첫 번째 대안은 기본 노드와 보조 노드를 포함한 모든 노드에서 읽기 작업을 실행하는 것입니다. 읽기 성능은 더 좋지만 기본적으로 복제가 비동기식으로 이루어지기 때문에 데이터가 더 이상 일관되지 않습니다. 두 번째 대안은 동기식 복제입니다. 데이터는 일관성이 유지되지만 쓰기 성능이 저하됩니다.

  • 기본
    • 중간 읽기 성능, 중간 쓰기 성능
    • 일관된 데이터
  • 기본 + 보조(비동기)
    • 높은 읽기 성능, 중간 수준의 쓰기 성능
    • 결국 일관된 데이터
  • 기본 + 보조(동기식)
    • 높은 읽기 성능, 낮은 쓰기 성능
    • 일관된 데이터

데이터는 일관성이 있을 수도 있고 없을 수도 있습니다.

카우치베이스 서버

Couchbase Server의 데이터는 일관성이 있나요?

카우치베이스 서버는 모든 읽기 및 쓰기 작업을 기본 노드에서 실행하며 데이터는 일관성을 유지합니다. 클라이언트가 모든 노드를 활용하기 때문에 성능이 높습니다. 모든 노드가 기본 노드이기 때문입니다.

  • 기본값
    • 높은 읽기 성능, 높은 쓰기 성능
    • 일관된 데이터

데이터는 일관성이 있습니다.

파티셔닝과 복제

카우치베이스 서버와 몽고DB는 모두 파티셔닝과 복제를 구현합니다. 그러나 구현 방식은 다릅니다.

MongoDB에서 파티션은 복제본 세트 내에 저장됩니다. 복제본 세트는 기본 노드와 여러 개의 보조 노드로 구성됩니다. 노드가 9개인 경우 3개의 복제본 세트가 있고 3개의 기본 노드에 쓰기 작업이 분산됩니다. 카우치베이스 서버에서 모든 노드는 활성 기본 노드인 동시에 수동 보조 노드이기도 합니다. 노드가 9개라면 모든 노드에 쓰기 작업이 분산된 9개의 기본 노드가 있습니다(9개). 이것은 카우치베이스 서버 내에서 데이터가 파티션되고 복제되는 방식에 대한 높은 수준의 설명입니다. 낮은 수준의 설명은 vBuckets의 설명서(링크).

데이터가 복제되는 경우, 몽고DB는 9개의 노드에 쓰기 작업을 분산하기 위해 27개의 노드가 필요합니다.

참고

몽고DB는 노드당 데이터베이스당 단일 잠금을 사용합니다(링크 & 링크). 카우치베이스 서버는 문서 잠금에 의존합니다(더 보기). 카우치베이스 서버는 더 많은 노드를 활용하여 쓰기를 실행할 뿐만 아니라 노드당 더 많은 쓰기를 실행합니다.

토론

Reddit

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

작성자

게시자 Shane Johnson, 제품 마케팅 담당 이사, Couchbase

셰인 K 존슨은 Couchbase의 제품 마케팅 디렉터였습니다. Couchbase에 입사하기 전에는 Java 및 분산 시스템에 대한 배경 지식을 바탕으로 개발 및 전도 분야에서 다양한 역할을 수행했습니다. 그는 금융, 소매, 통신 및 미디어 업계의 조직과 컨설팅을 통해 데이터 및 분석을 위해 분산 시스템에 의존하는 아키텍처의 초안을 작성하고 구현했습니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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