분산 데이터베이스 아키텍처의 가장 중요한 요소 중 하나는 복제입니다. 실제로 데이터베이스 아키텍처를 정의합니다. 데이터의 일관성/사용 가능 여부를 결정합니다.

마스터/슬레이브

쓰기는 마스터 노드에서 실행되고 슬레이브 노드로 복제됩니다. 일관성이 필요한 경우 읽기는 마스터 노드에서 실행됩니다. 그렇지 않은 경우 읽기는 마스터 노드 및/또는 슬레이브 노드에서 실행됩니다.

무엇이 문제인가요?

가) 물리적 서버당 하나의 노드가 있고, 나) 쓰기가 두 개의 슬레이브로 복제된다고 가정해 보겠습니다.

문제는... 노드의 3분의 2는 수동적이고, 3분의 2는 쓰기 요청에 응답하지 않으며, 읽기 요청에 응답하지 않을 수 있다는 것입니다. 문제는... 처리량/지연 시간 요구 사항을 충족하는 데 필요한 노드 수가 3배나 많다는 것입니다.

마스터리스

쓰기는 여러 노드에서 실행됩니다. 일관성이 필요한 경우 읽기는 여러 노드에서 실행됩니다.

무엇이 문제인가요?

가) 물리적 서버당 하나의 노드가 있고, 나) 쓰기가 두 개의 노드에 복제된다고 가정해 보겠습니다.

문제는... 일관된 읽기/쓰기가 여러 노드에서 실행된다는 것입니다. 클라이언트에서 서버로 한 번, 서버에서 다른 두 서버로 두 번 등 여러 번의 요청이 필요합니다. 쓰기 요청을 받은 노드는 다른 두 노드에 쓰기 요청을 보내야 하므로 지연 시간이 길어지고 처리량이 줄어듭니다.

기본 소유자

읽기/쓰기는 기본 소유자에서 실행되고 복제되며, 읽기/쓰기는 모든 노드에서 실행된다는 두 가지 장점이 있습니다. 마스터/슬레이브 설계와 마찬가지로, 기본 노드에서 읽기/쓰기를 실행하여 일관성을 유지합니다. 마스터리스 설계와 마찬가지로 모든 노드가 기본 노드입니다.

이 중 하나는 형편없는 디자인입니다. 이 중 하나는 좋은 디자인입니다. 이 중 하나는 훌륭한 디자인입니다.

어떻게 생각하시나요?

토론하기 해커 뉴스
토론하기 Reddit

작성자

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

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

댓글 남기기