• Facebook
  • 트위터
  • 유튜브
  • 라인드인
  • RSS
  • 기술 문서
  • 비교
  • 블로그
  • 다운로드
  • 문의하기
다운로드
목차 표시/숨기기

Write-through 및 Write-behind 캐싱 개요

쓰기 관통(write-through)과 쓰기 지연(write-behind)은 캐싱 전략으로 사용됩니다. NCache 캐시 데이터의 일관성을 데이터 소스와 유지하기 위해 사용됩니다. 분산 캐시는 기본 데이터 소스와 자동으로 동기화하는 내장 메커니즘을 제공하여 애플리케이션이 워크로드 요구 사항에 따라 동기식 일관성 또는 고성능 비동기 업데이트 중에서 선택할 수 있도록 합니다.

NCache 쓰기 스루 캐싱(Write-through caching)을 지원하여 캐시를 통해 데이터 소스에 직접 쓰기 작업을 수행할 수 있습니다. 이를 통해 캐시와 데이터 소스를 동기화할 수 있습니다. 쓰기 스루 캐싱에서는, NCache 먼저 캐시 저장소를 업데이트한 다음 해당 작업을 데이터 소스에 적용합니다. 예를 들어 클라이언트 애플리케이션이 캐시의 항목을 업데이트하는 경우, NCache 쓰기 관통(Write-through)이 활성화된 경우 데이터 소스도 업데이트됩니다.

애플리케이션에서 Write-through 캐싱을 사용하려면 먼저 다음을 구현해야 합니다. IWriteThruProvider 인터페이스. NCache 내부적으로 이 사용자 지정 공급자를 사용하여 데이터 소스에 대한 쓰기 작업을 수행합니다. NCache 쓰기 작업(추가, 삽입, 제거/삭제) API 호출 시 쓰기 관통(Write-through) 방식을 사용하여 공급자를 호출합니다.

현재 NCache 아래에 제공된 Write-through 캐싱에 대한 두 가지 모드를 제공합니다.

  1. 연속 기입 (데이터 소스를 동기적으로 업데이트합니다)
  2. 후기 쓰기 (데이터 소스를 비동기적으로 업데이트합니다)
주의 사항

NCache 성능 카운터 제공 Write-thru/sec Write-through 작업을 위해.

쓰기 스루 캐싱이란 무엇인가요?

Write-through 캐싱에서는 작업이 먼저 캐시 저장소에 적용된 다음 구성된 데이터 소스에 동기적으로 업데이트됩니다. Write-through를 사용하면 작업이 완료된 후 NCache 데이터 소스에 해당 작업을 적용합니다. 즉각적인 데이터 소스 업데이트가 중요하고 캐시가 업데이트되는 즉시 데이터 소스를 업데이트해야 하는 경우 Write-through 캐싱을 사용할 수 있습니다.

쓰기 지연 캐싱이란 무엇인가요?

Write-through 모드에서는 데이터 소스에 대한 동기 작업으로 인해 작업 속도가 캐시에 대한 사용자 작업 속도와 동일합니다. 사용자 트래픽이 많은 애플리케이션의 경우, 캐시에 대한 사용자 작업 속도가 매우 높아 데이터 소스에 과부하가 걸릴 수 있습니다. 또한, 동기 데이터 소스 작업은 사용자 작업의 응답 시간에 영향을 미칠 수 있습니다.

이러한 문제를 극복하기 위해 Write-through 대신 Write-behind를 사용할 수 있습니다. Write-behind에서 데이터 소스 작업은 비동기적으로 수행됩니다. NCache 캐시 저장소에서 작업을 수행합니다. 캐시 저장소를 업데이트한 후, 이러한 작업은 대기열에 추가되어 나중에 구성된 데이터 소스에 비동기적으로 적용됩니다. 따라서 Write-behind를 사용하면 캐시 작업의 응답 시간이 향상됩니다.

NCache 데이터 소스에서 작업 흐름을 제어하기 위해 Write-behind에서 다양한 구성 설정을 제공합니다. 예를 들어, 속도를 지정할 수 있습니다. NCache Throttling을 통해 데이터 소스에 쓰기 작업을 적용합니다.

스로틀링이 쓰기 지연 성능을 제어하는 ​​방법

초당 데이터 소스에 적용된 작업 수를 나타냅니다. 제한의 기본값은 500 ops/sec입니다. 에서 백업 소스 설정을 통해 이 값을 변경할 수 있습니다. NCache 관리 센터.

주의 사항

NCache 성능 카운터 제공 Write-behind/sec 쓰기 작업의 경우.

쓰기 뒤에 모드

NCache 쓰기 후행 작업을 개별적으로 또는 일괄 처리할 수 있습니다. 쓰기 후행 작업을 위해 쓰기 후행 대기열이 유지됩니다. 모든 쓰기 후행 작업은 이 대기열에 저장되고, 나중에 아래 설명된 대로 구성된 일괄 처리 또는 비일괄 처리 모드에 따라 구성된 데이터 소스에 적용됩니다.

비배치 모드

기본적으로 비배치 모드는 Write-behind 작업에 대해 구성됩니다. 이 모드에서 Write-behind 대기열의 작업은 구성된 제한 속도에 따라 데이터 소스에 하나씩 적용됩니다. 예를 들어 제한 속도가 초당 500개 작업인 경우 NCache 한 번에 하나씩 데이터 소스에 쓰기 작업을 적용하며 초당 500개 작업을 초과하지 않습니다.

배치 모드

배치 모드에서는 배치/대량 작업이 해당 작업에 따라 선택됩니다. operation delay. 구성 할 수 있습니다. operation delay Write-behind 작업의 경우, 각 작업이 데이터 소스에 적용되기 전에 Write-behind 대기열에서 기다려야 하는 시간(밀리초)을 나타냅니다. 기본적으로 값은 0입니다.

배치 간격은 다음에 따라 구성 가능한 간격입니다. NCache Write-behind 대기열에서 작업 지연으로 인해 시간 초과된 작업을 주기적으로 확인합니다. 예를 들어, 작업 지연을 1000ms로 설정하고 배치 간격을 5초로 설정한 경우, NCache 5초마다 Write-behind 대기열에 있는 작업을 확인하고 작업 지연이 만료된 모든 작업(마지막 1000밀리초 동안 대기열에 있는 모든 작업)을 선택합니다.

대량으로 작업을 선택한 후, 구성된 제한 속도에 따라 데이터 소스에 적용됩니다. Write-behind 대기열에서 1000개의 작업의 대량을 선택한 다음, 초당 데이터 소스에 적용되는 최대 작업이 구성된 제한 값을 초과할 수 없으므로 500개의 작업 배치로 데이터 소스에 적용한다고 가정해 보겠습니다(제한 속도가 500ops/초인 경우).

작업 지연 시간을 초에서 일 및 월 범위로 지정할 수 있습니다. 이러한 방식으로 구성 가능한 시간 내에 데이터 소스에 대한 작업을 일시 중지할 수 있습니다. NCache 또한 Write-behind 대기열, 작업 수, 현재 배치 작업 수에 대한 성능 카운터를 제공합니다. Write-behind의 경우 배치가 활성화된 경우 데이터 소스에서 실행할 준비가 된 작업이 Write-behind 대기열에서 제거됩니다.

주의 사항

현재 배치 간격에서 대기열에서 제거된 작업 수는 현재 배치 작업 카운트 카운터.

핫 어플라이 지원

NCache 캐시를 중지하지 않고도 런타임에 Write-behind 구성을 변경할 수 있는 핫 적용 가능한 Write-behind 설정을 지원합니다. Write-behind 구성 가능 속성은 다음을 통해 변경할 수 있습니다. NCache 관리센터 및 NCache 이러한 변경 사항을 동적으로 통합합니다.

핫 적용 지원에서 Write-behind 모드를 일괄 처리에서 비 일괄 처리로 변경할 수 있으며 그 반대도 가능합니다. 예를 들어, 일괄 처리 모드를 비 일괄 처리로 변경한 경우 NCache 작업 지연 값을 무시하고 작업을 개별적으로 실행합니다. 또한, 필요에 따라 런타임에 제한 속도를 변경할 수 있습니다. 마찬가지로, 작업 지연, 배치 간격, 실패한 작업 대기열 한도, 실패한 작업 제거율도 런타임에 변경할 수 있습니다.

경고

실패한 작업 대기열 한도의 값만 늘릴 수 있습니다. 그렇지 않으면, NCache 추가 작업에 기본값을 사용합니다.

클러스터 환경에서의 쓰기-비하인드

Write-behind 대기열은 Write-behind 작업을 위해 유지되므로 별도의 전용 스레드 모니터가 작업을 실행합니다. Write-behind에 대한 토폴로지 수준 세부 정보는 아래와 같습니다.

  • 복제된 토폴로지: Write-behind 큐는 모든 노드에서 유지되지만 Write-behind 비동기 프로세서는 코디네이터 노드에만 존재합니다. 즉, 모든 Write-behind 작업은 이 노드를 통해 수행되고 클러스터 전체의 다른 노드 큐에 복제됩니다. 이런 식으로 노드가 다운되면 다음 코디네이터 노드가 나머지 Write-behind 작업을 모두 수행합니다.

  • 파티션-복제본 토폴로지: Write-behind 큐는 각 활성 노드에서 유지 관리되고 해당 복제본에도 복제됩니다. 각 노드는 데이터 소스에서 Write-behind 작업을 담당합니다.

  • 분할된 토폴로지: 쓰기 뒤 큐는 각 파티션에서 유지 관리되며 각 노드는 데이터 소스에 대한 쓰기 뒤 작업을 담당합니다.

캐싱 작업 결과

NCache 캐시에서 Write-through 작업을 작업 결과에 따라 동기화할 수 있는 유연성을 제공합니다. 데이터 소스에 작업(추가/삽입)을 적용한 후 작업 상태를 지정할 수 있습니다. NCache 캐시 저장소를 동기화합니다. 예를 들어, 데이터 소스 작업이 실패하는 경우 캐시에서 해당 데이터를 제거할지 또는 유지하도록 결정할 수 있습니다. 데이터 원본에서 해당 작업을 다시 시도할 수도 있습니다. 이를 위해 다음을 지정해야 합니다. Success/Failure/FailureRetry/FailureDontRemove as OperationResult.Status of OperationResult이는 Write-through 및 Write-behind 캐싱 모두에서 제공됩니다.

데이터 소스 작업 상태 및 해당 작업 NCache 아래에 설명되어 있습니다.

  • 성공: 이는 데이터 소스 작업이 성공했으며 항목이 데이터 소스에 추가되었음을 의미합니다. NCache 캐시에도 보관됩니다.

  • 고장: 이는 데이터 소스 작업이 실패하고 항목을 데이터 소스에 추가할 수 없음을 의미하므로 NCache 캐시에서도 제거됩니다.

  • 실패 제거하지 않음: 이는 데이터 소스 작업이 실패했고 항목을 데이터 소스에 추가할 수 없었지만 NCache 캐시에 보관합니다.

  • 실패재시도: 이는 데이터 소스 작업이 실패하고 항목을 데이터 소스에 추가할 수 없음을 의미하므로 NCache 항목을 캐시에 보관하고 다시 시도합니다. 다시 시도는 Write-behind 작업으로 수행됩니다.

실패한 작업 재시도

NCache 데이터 소스에서 실패한 경우 Write-through/Write-behind에서 작업을 다시 시도할 수 있습니다. 이를 위해 작업 재시도를 활성화하면 NCache 데이터 소스에서 해당 작업을 다시 시도합니다. Write-through 또는 Write-behind의 경우 모든 재시도 작업이 Write-behind 대기열에 다시 대기합니다. 즉, Write-through 재시도 작업은 Write-behind 작업으로 비동기적으로 재시도됩니다.

주의 사항

NCache 에 대한 성능 카운터도 제공합니다. Datasource failed operations/sec. 데이터 소스 반환에 대해 수행된 쓰기 작업 Failure/FailureRetry/FailureDontRemove as OperationResult.Status of OperationResult 이 카운터에 의해 초당 계산됩니다.

NCache 실패한 작업의 재시도 횟수를 제한할 수 있습니다. 이러한 경우 실패한 작업 대기열 제한을 통해 다음을 언급합니다. NCache 관리 센터에서 해당 제한을 초과하는 경우, 구성 가능한 제거 비율을 통해 실패한 작업을 제거할 수 있습니다. 여기에서, NCache 재시도된 대기열이 가득 차면 재시도된 대부분의 작업을 제거합니다. 각 작업에는 RetryCount 데이터 소스에서 작업을 다시 시도할 때마다 증가하는 연관된 속성입니다.

이를 위해, NCache 에 대한 성능 카운터를 제공합니다. Write-behind failure retry count Write-behind evictions/sec. 그만큼 Write-behind failure retry count 재시도를 위해 대기열에 추가된 작업 수를 보여줍니다. 데이터 소스 쓰기 작업 반환 FailureRetry as Status in OperationResult 재시도를 위해 다시 대기합니다. 반면, Write-behind evictions/sec 카운터는 초당 제거된 재시도 작업 수를 표시합니다.

데이터 소스 작업 후 캐시 업데이트

앞서 언급했듯이, Write-through 캐싱에서 작업은 먼저 캐시 저장소에서 수행된 다음 데이터 소스에서 수행됩니다. 데이터 소스에서 작업을 수행한 후 데이터가 수정되는 시나리오가 있을 수 있습니다. 예를 들어, ID 열의 경우 해당 값이 데이터 소스 작업에 의해 수정될 수 있습니다. 이러한 상황에서는 데이터가 캐시와 데이터 소스에서 일관되지 않을 수 있습니다. 이를 처리하려면 다음을 수행합니다. NCache 데이터 소스 작업 후 캐시의 데이터를 업데이트할지 여부를 지정할 수 있습니다. 활성화할 수 있습니다. UpdateInNCache 데이터 소스와 동기화하기 위해 캐시 저장소에서 작업(추가/삽입)을 다시 수행하는 플래그입니다. 따라서 쓰기를 통해 동기적으로 캐시 저장소의 작업을 업데이트하거나 쓰기 뒤에 캐싱을 통해 비동기적으로 작업을 업데이트합니다.

주의 사항

NCache 성능 카운터도 제공합니다. Datasource updates/sec 데이터 소스 쓰기 작업 후 캐시에서 초당 업데이트 작업 수를 표시합니다.

이 섹션의

쓰기-스루 공급자 구성
Write-through 공급자 인터페이스를 설명하고 인터페이스에 대한 샘플 구현을 제공합니다.

쓰기 기능을 사용하세요
기본 작업을 사용하여 Write-through를 사용하는 샘플을 제공합니다. NCache.

Write-behind를 사용하세요
기본 작업과 함께 Write-behind를 사용하기 위한 샘플을 제공합니다. NCache.

문의하기

전화

+1 214-619-2601   (미국)

+44 20 7993 8327   (UK)

 
이메일

sales@alachisoft.com

support@alachisoft.com

NCache
  • 판 비교
  • NCache 아키텍처
  • 벤치 마크
다운로드
가격
놀이터를 사용해보십시오

배포
  • 클라우드(SaaS 및 소프트웨어)
  • 온 프레미스
  • Kubernetes
  • 도커
기술 사용 사례
  • ASP.NET 세션
  • ASP.NET 코어 세션
  • 게시/구독 메시징
  • 실시간 ASP.NET SignalR
  • 사물의 인터넷 IOT ()
  • NoSQL 데이터베이스
  • 스트림 처리
  • 마이크로 서비스
리소스
  • 잡지 기사
  • 제XNUMX자 기사
  • 기사
  • 비디오
  • 백서
  • 쇼
  • 회담
  • 블로그
  • 기술 문서
고객 사례 연구
  • 환자 후기
  • 고객
고객 지원
  • 데모 예약
  • 포럼(Google 그룹스)
  • Tips
회사
  • Leadership
  • 파트너
  • ​뉴스
  • 이벤트
  • 채용 정보
문의하기

  • 영어중국어 (간체)프랑스어독일 사람이탈리아 사람일본제한국어포르투갈어스페인어

  • 문의하기
  •  
  • 사이트 맵
  •  
  • 이용 약관
  •  
  • 개인정보 처리방침
© 저작권 Alachisoft 2002 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.
맨 위로