728x90

이번 블로그는 빠른 데이터 처리를 위해 Couchbase가 제공하는 Caching과 Disk I/O 부분을 다루려고 합니다.

 

Couchbase는 기본적으로 빠른 데이터 접근을 위해 통합된 Caching Layer를 제공하고 최적 성능을 위해 자동으로 관리합니다. 그리고 Couchbase Bucket은 기본적으로 디스크에 저장하므로 관련 작업의 성능을 높일 수 있는 아키텍처를 활용합니다.

 

특히 Document가 Insert/Update 시 Caching Layer와 Persistence(Disk) Layer 간 적용 메카니즘을 살펴 보겠습니다. 기본적인 메카니즘은 메모리와 디스크 간 비 동기적인 방식의 데이터 처리입니다. 즉 메모리 내 처리를 1차로, 다른 부분 처리를 2차로 구분합니다. 이를 통해 트랜잭션의 성능을 최대화할 수 있습니다.

 

새로운 Document Insert 시 적용 메카니즘

  1. Application이 새로운 Document를 생성
  2. Application이 해당 Document를 저장하면 1차적으로 메모리 내에 저장
  3. 디스크 저장을 위해 메모리에 저장된 Document의 복사본을 Disk Queue에 전달하고 다른 노드의 Replica Bucket에 저장을 위해 메모리에 저장된 Document의 또다른 복사본을 Replica Queue에 전달
  4. Disk Queue의 Document가 디스크에 저장 및 Replica Queue의 Document가 해당 노드 메모리에 저장

 

기존 Document Update 시 적용 메카니즘

  1. Application이 기존 Document에 대한 수정 내용을 전달
  2. 해당 Document가 메모리 내에 존재하지 않으면 디스크에서 조회하여 비압축 형태로 메모리로 적재
  3. 1차적으로 메모리에 적재된 기존 Document에 수정 내용 저장
  4. 디스크 저장을 위해 메모리에 저장된 Document의 복사본을 Disk Queue에 전달하고 다른 노드의 Replica Bucket에 저장을 위해 메모리에 저장된 Document의 또다른 복사본을 Replica Queue에 전달
  5. 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

+ Recent posts