728x90
이번 블로그는 데이터를 메모리 및 디스크에 저장하거나 Network 이동 시 압축을 통해 효율성을 높일 수 있는 기능을 소개합니다. 이 Compression 기능은 Enterprise Edition에서 제공됩니다.
Couchbase는 Compression을 위해 Snappy Open Source 라이브러리를 사용합니다.
다음은 Compression 기능을 사용할 수 있는 시나리오입니다.
- SDK Client와 클러스터 간 데이터 이동
- 클러스터 내 노드 간 데이터 복제
- 클러스터 내 서비스 간 데이터 이동
- 클러스터 외부 서비스(Backup, Connector, Sync Gateway)로 데이터 이동
- 클러스터 간 데이터 복제(XDCR)
- 메모리 내 Document 저장
- 디스크 내 Document 저장, 특히 이 부분은 항상 Compression 적용
Bucket 단위로 Compression Mode를 설정할 수 있습니다. 다음은 설정 가능한 3 종류 Mode 입니다.
- Off : Couchbase 서버는 외부에서 압축된 형태, 비압축 형태와 상관없이 전송받으면 메모리 내에서 비압축 상태로 저장, 압축된 형태로 디스크에만 저장하고 비압축 형태로 외부로 전송합니다.
- Passive(기본값) : Couchbase 서버는 외부에서 압축된 형태로 전송받으면 메모리 및 디스크에 압축된 형태로 디스크에 저장하고 압축된 형태 혹은 비압축된 형태로 외부로 전송합니다.(클라이언트에 따라) 또한 Couchbase 서버는 외부에서 비압축된 형태로 전송받으면 메모리 내에서 비압축 상태로 저장, 압축된 형태로 디스크에 저장하고 비압축된 형태로 외부로 전송합니다.
- Active : Couchbase 서버는 외부에서 압축된 형태, 비압축 형태와 상관없이 전송받으면 메모리 및 디스크에 압축된 형태로 디스크에 저장하고 압축된 형태로 혹은 비압축된 형태로 외부로 전송합니다.(클라이언트에 따라)
Compression Ratio는 1.2입니다. 이는 Compression 적용 시 압축 전 Document 크기가 압축 후 Document 크기의 1.2 배에 미달하면 Compression 효율성이 없다고 판단하여 Compression을 적용하지 않습니다.
참고자료
https://docs.couchbase.com/server/current/learn/buckets-memory-and-storage/compression.html
'Couchbase 아키텍처' 카테고리의 다른 글
[데이터]메모리 관리 : 서비스 메모리 Quota (0) | 2022.08.15 |
---|---|
[데이터]Caching & Persistence (0) | 2022.08.15 |
[데이터]vBucket (0) | 2022.08.15 |
[데이터]Bucket Storage Engine (0) | 2022.08.15 |
[보안]Role Based Access Control(RBAC) (0) | 2022.08.15 |