728x90
이번 블로그는 빠른 데이터 처리를 위해 Couchbase가 제공하는 Caching과 Disk I/O 부분을 다루려고 합니다.
Couchbase는 기본적으로 빠른 데이터 접근을 위해 통합된 Caching Layer를 제공하고 최적 성능을 위해 자동으로 관리합니다. 그리고 Couchbase Bucket은 기본적으로 디스크에 저장하므로 관련 작업의 성능을 높일 수 있는 아키텍처를 활용합니다.
특히 Document가 Insert/Update 시 Caching Layer와 Persistence(Disk) Layer 간 적용 메카니즘을 살펴 보겠습니다. 기본적인 메카니즘은 메모리와 디스크 간 비 동기적인 방식의 데이터 처리입니다. 즉 메모리 내 처리를 1차로, 다른 부분 처리를 2차로 구분합니다. 이를 통해 트랜잭션의 성능을 최대화할 수 있습니다.
새로운 Document Insert 시 적용 메카니즘
- Application이 새로운 Document를 생성
- Application이 해당 Document를 저장하면 1차적으로 메모리 내에 저장
- 디스크 저장을 위해 메모리에 저장된 Document의 복사본을 Disk Queue에 전달하고 다른 노드의 Replica Bucket에 저장을 위해 메모리에 저장된 Document의 또다른 복사본을 Replica Queue에 전달
- Disk Queue의 Document가 디스크에 저장 및 Replica Queue의 Document가 해당 노드 메모리에 저장
기존 Document Update 시 적용 메카니즘
- Application이 기존 Document에 대한 수정 내용을 전달
- 해당 Document가 메모리 내에 존재하지 않으면 디스크에서 조회하여 비압축 형태로 메모리로 적재
- 1차적으로 메모리에 적재된 기존 Document에 수정 내용 저장
- 디스크 저장을 위해 메모리에 저장된 Document의 복사본을 Disk Queue에 전달하고 다른 노드의 Replica Bucket에 저장을 위해 메모리에 저장된 Document의 또다른 복사본을 Replica Queue에 전달
- Disk Queue의 Document가 디스크에 저장 및 Replica Queue의 Document가 해당 노드 메모리에 저장
참고자료
https://docs.couchbase.com/server/current/learn/buckets-memory-and-storage/memory-and-storage.html
'Couchbase 아키텍처' 카테고리의 다른 글
[데이터]메모리 Warmup (0) | 2022.08.15 |
---|---|
[데이터]메모리 관리 : 서비스 메모리 Quota (0) | 2022.08.15 |
[데이터]Compression (0) | 2022.08.15 |
[데이터]vBucket (0) | 2022.08.15 |
[데이터]Bucket Storage Engine (0) | 2022.08.15 |