728x90
이전 블로그에서 Couchbase의 기본 데이터 저장 단위인 Bucket에 대해 다루었습니다. 이번 블로그는 Bucket에 대한 물리적 분산 저장 단위인 vBucket(Shard로도 표현)에 대한 내용입니다.
Bucket에 저장되는 Document를 Key 값에 따라 자동으로 1024 개의 vBucket으로 나누어 저장하고 이 vBucket들을 클러스터를 구성하는 노드에 균일하게 분산합니다. 분산에 참여하는 노드는 Data Service가 구동되어 있어야 합니다. 이를 통해 Workload를 균등하게 분산할 수 있습니다.
vBucket은 다음의 2 종류로 나눌 수 있습니다.
- Active : Document의 read/write가 발생합니다.
- Replica : 변경된 Document에 대한 복제가 발생합니다.
Document와 vBucket 매칭 방법
- Document의 Key 값에 대한 CRC32 Hash 알고리즘 결과 값을 기준으로 vBucket No.를 선정
- vBucket은 Cluster Manager에 의해 특정 Data Service 노드에 할당
- 이러한 vBucket 정보는 Cluster Map 형태로 SDK 클라이언트에 자동 Update
노드 추가/삭제, Rebalanc, Fail-over 등으로 클러스터 구성의 변경으로 vBucket의 위치가 변경되면 Cluster Manager가 Cluster Map을 수정하고 SDK 클라이언트에 자동 Update합니다.
참고자료
https://docs.couchbase.com/server/current/learn/buckets-memory-and-storage/vbuckets.html
'Couchbase 아키텍처' 카테고리의 다른 글
[데이터]Caching & Persistence (0) | 2022.08.15 |
---|---|
[데이터]Compression (0) | 2022.08.15 |
[데이터]Bucket Storage Engine (0) | 2022.08.15 |
[보안]Role Based Access Control(RBAC) (0) | 2022.08.15 |
[데이터]Bucket의 보안 (0) | 2022.08.15 |