소개
Couchbase Server 4.5가 막 출시되었습니다. 전체 개요는 다음과 같습니다. 여기.
새로운 메모리 최적화 인덱스를 살펴보겠습니다.
이러한 향상된 인덱스를 이해하기 위해 먼저 Couchbase 4.0의 일부로 도입된 글로벌 보조 인덱스(GSI)를 살펴봅시다. GSI는 Couchbase 쿼리 언어인 N1QL('니켈'로 발음)을 지원하도록 구축되었습니다. 이러한 쿼리는 빠른 응답 시간이 필요한 대화형 애플리케이션을 지원하는 데 유용합니다. GSI가 도입되기 전에는 카우치베이스가 제공하는 유일한 쿼리는 주로 미리 계산된 결과를 보여주는 보고에 중점을 둔 맵/축소 보기 형식이었지만 성능과 규모에 제한이 있었습니다. GSI의 카우치베이스는 데이터 서비스를 선형적으로 확장할 수 있을 뿐만 아니라 쿼리도 지원합니다.
예를 들어 다음과 같은 인덱스를 만들 수 있습니다. 여행 샘플 버킷이 제품과 함께 배송됩니다:
|
1 2 |
만들기 INDEX 항공사 켜기 `여행-샘플`(유형) 어디 유형="항공사" 사용 GSI; |
이를 통해 모든 항공사를 빠르게 조회할 수 있습니다.
|
1 2 |
선택 콜사인, 국가 FROM `여행-샘플` 어디 유형 = "항공사"; |
새로운 기능
메모리 최적화된 글로벌 보조 인덱스는 Couchbase Server 클러스터를 위한 추가 스토리지 설정입니다. 메모리 최적화된 글로벌 보조 인덱스(MOI)는 인메모리 속도로 데이터 변경 및 인덱스 유지 관리를 따라잡을 수 있습니다. 성능 특성 외에도, 생성, 배치, 로드 밸런싱, 파티셔닝 및 가용성의 메커니즘은 GSI와 MOI 모두에서 동일합니다.
MOI를 활용하면 성능이 향상되지만 메모리 사용량을 모니터링하는 것이 필수적입니다. MOI는 Couchbase 노드의 관리형 캐시에 상주하도록 제한됩니다. 이러한 유형의 인덱스는 노드가 사용 가능한 메모리를 모두 소진하면 데이터 변이 처리를 중지합니다. 이는 필요에 따라 인덱스 RAM 할당량을 조정하여 다운타임 없이 동적으로 조정할 수 있습니다. 이것은 또한 다차원 스케일(MDS)이 클러스터의 다른 노드보다 더 큰 메모리 공간을 가진 노드를 실행할 수 있는 유연성을 제공하는 영역이기도 합니다. 애플리케이션이 온라인 상태를 유지하고 트래픽이 제공되는 동안에도 이러한 변경을 수행할 수 있습니다.
프로덕션 배포에는 문제를 사전에 모니터링할 수 있는 기능을 제공하는 두 가지 중요한 메트릭이 있습니다. 이러한 메트릭은 Couchbase 관리 콘솔과 REST API에 노출됩니다:
- 최대 인덱스 RAM 사용량 %: 사용된 최대 램 할당량을 백분율(%)로 보고합니다.
- 남은 인덱스 RAM: 클러스터의 사용 가능한 인덱스 RAM 할당량을 보고합니다.
사용 사례
카우치베이스는 JSON 문서에서 배열 요소를 색인하는 기능을 제공합니다. 배열 속성이 포함된 문서는 데이터 변경 시 부하를 증가시키는 경우가 많습니다. 데이터에 대한 대화형 실시간 액세스가 필요한 고객은 애플리케이션 SLA를 충족하기 위해 복잡한 데이터 구조를 유지해야 하는 경우가 많습니다. 메모리 최적화된 글로벌 보조 인덱스(MOI)는 가장 까다로운 애플리케이션의 문제를 해결하도록 설계되었습니다.
- 여행 예약
- 리더 보드
- 사기 탐지
- 대화형 추천
MOI는 표준 GSI 인덱스와 비교했을 때 까다로운 데이터 변이 상황에서 지연 시간과 처리량을 개선합니다. 이를 위해 MOI는 다음과 같은 기능을 제공합니다:
- 인덱싱을 위한 잠금 없는 처리로 들어오는 변이를 유지 관리할 때 대규모 동시성이 가능합니다.
- 스킵리스트 구조의 인메모리 저장소, B+트리와는 반대입니다.
- 인덱스를 메모리 저장소에 강제로 저장하면 MOI가 인덱스를 저장하기 위해 디스크 속도로 실행되지 않습니다.
- 일반 스냅샷은 복구를 위해 디스크에 유지됩니다.
요약
새로운 메모리 최적화 인덱스는 Couchbase 4.5의 새로운 기능 중 하나입니다. 가장 큰 장점은 쿼리 성능을 개선하고 인덱스 유지 관리에 걸리는 시간을 줄여준다는 것입니다.
Couchbase 다운로드
방문 www.couchbase.com/download/ 를 클릭하여 Couchbase 4.5를 다운로드하고 메모리 최적화 인덱스를 사용하세요.