카우치베이스 서버 및 N1QL로 만료가 발생하기 전에 감지하기

문서 자동 만료 기능이 완벽하게 작동하는 사용 사례는 많습니다. 세션 상태, 장바구니, 여행 가격 견적 등을 유지 관리합니다. 이러한 모든 경우에 Couchbase Server를 사용하는 애플리케이션은 만료 시간을 초, 분 또는 시간으로 설정하여 사용자 행동을 관리합니다.

데이터베이스에 만료일이 있는 항목의 경우, Couchbase Server에는 지정된 만료 시간에 데이터가 사라지도록 하는 인텔리전스가 내장되어 있습니다. 다음에 대한 모든 정보를 찾을 수 있습니다. TTL 및 만료는 Couchbase Server 문서에서 확인할 수 있습니다.

만료가 있는 대부분의 시스템에는 만료되는 데이터를 갱신하거나 일련의 문서가 곧 만료될 것임을 다운스트림 시스템에 알리려는 사용 사례도 함께 제공됩니다. 만료되는 데이터의 갱신 또는 알림에는 일반적으로 예정된 문서 만료를 확인하는 프로세스가 포함됩니다. 글로벌 인덱스와 N1QL이 추가되면서 이 정보를 쿼리하는 속도가 훨씬 빨라졌습니다.

과거에는 이 정보를 맵/축소 보기에서 인덱싱할 수 있었습니다. 맵/축소 보기가 강력한 인덱싱을 제공할 수 있지만, 분산 수집으로 인해 글로벌 인덱스가 유리합니다.

그 이유는 다음과 같습니다: 글로벌 인덱스는 데이터와 독립적으로 파티션을 분할합니다. 예를 들어, 데이터가 20개의 노드에 분산되어 있더라도 인덱스가 단일 노드에 맞는다면 글로벌 인덱스는 단일 노드에 상주할 수 있습니다. 또한 카우치베이스 서버에서 인덱스와 데이터 노드에 동일한 HW를 선택할 필요도 없습니다. 즉, 인덱스에 맞도록 충분히 "키가 큰" 인덱스 노드를 얻을 수 있습니다. 맵/축소 보기와 글로벌 보조 인덱스의 차이점에 대해 자세히 알아보세요. 여기.

만료 정보를 색인하고 쿼리하여 만료되는 데이터를 감지하는 방법은 다음과 같습니다: 샘플에서는 .Net을 사용하겠습니다.

1단계- 문서 본문에 만료일 포함: 앞으로는 이 작업을 수행할 필요가 없지만 현재 META()는 아직 만료일을 노출하지 않습니다. 아래 코드에서 문서가 만료될 대략적인 시간을 계산하는 exp_datetime 속성을 JSON에 추가합니다. (이것은 분산 시스템이며 중앙 시간이 없다는 점을 기억하세요. 클라이언트 및 서버 노드마다 시계가 약간씩 다르므로 정확한 만료 시간을 감지하기 어렵습니다.)

2단계 - 만료 시간에 대한 인덱스를 만듭니다.

3단계 - 다음 30초 후에 만료되는 데이터를 쿼리합니다. 다음 쿼리는 문서 ID와 전체 문서 값을 반환합니다.

출력에는 향후 30초 내에 만료되는 모든 문서가 포함됩니다.

행복한 해킹

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 Cihan Biyikoglu, 제품 관리 이사, Couchbase

Cihan Biyikoglu는 Couchbase의 제품 관리 디렉터로, Couchbase Server 제품을 담당하고 있습니다. Cihan은 빅 데이터 애호가로서 20년 이상의 경험을 Redis Labs의 제품 팀에 제공하고 있습니다. Cihan은 C/C++ 개발자로 경력을 시작했습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.