캐시 로더 및 리프레셔 NCache

NCache 매우 빠르고 확장 가능한 .NET용 메모리 내 분산 캐시이며 값비싼 데이터베이스 여행을 줄이기 위해 애플리케이션 데이터를 캐시합니다. 사용 NCache 데이터 스토리지 및 데이터베이스와 관련된 성능 병목 현상을 제거합니다.

캐시 크기가 커지고 참조/조회 데이터를 점점 더 캐싱함에 따라 시작 시 빈 캐시를 채워야 하는 문제에 직면하게 됩니다. 그런 다음 이 캐시된 데이터를 최신 상태로 유지하고 전체 데이터 세트를 캐시에 유지하기 위해 정기적으로 더 많은 데이터를 추가하는 문제가 있습니다. 그리고 이 모든 작업을 수행하려면 사용자 지정 응용 프로그램을 개발해야 할 뿐만 아니라 어딘가에 호스팅해야 하며 항상 캐시 시작 시와 예약된 간격으로 실행되도록 해야 합니다.

이것은 많은 추가 관리 및 두통입니다. NCache 강력한 캐시 로더/리프레셔 기능을 통해 귀하를 대신합니다. NCache 사용자 정의 서버 측 코드를 개발하고 캐시 로더 및 리프레셔에 등록할 수 있습니다.

NCache 다음을 제공합니다.

  1. 캐시 로더(분산 및 병렬): 클러스터의 모든 캐시 서버에서 배포되고 실행되는 서버 측 코드로 캐시 로더를 개발할 수 있습니다. 그런 다음 캐시가 시작되면 NCache 각 캐시 서버에서 이 캐시 로더를 병렬로 호출하여 데이터베이스/데이터 소스에서 데이터(데이터세트라고 함)의 해당 부분을 읽고 캐시에 로드합니다. 캐시 로더는 모든 캐시 서버에서 병렬로 실행되어 데이터를 여러 병렬 데이터 세트에 로드하는 작업을 분산합니다.
  2. 캐시 리프레셔(분산 및 병렬): 클러스터의 모든 캐시 서버에서 배포되고 실행되는 서버 측 코드로 캐시 리프레셔를 개발할 수 있습니다. 그 다음에, NCache 정기적으로(스케줄) 캐시 리프레셔를 호출하여 데이터베이스/데이터 소스에서 업데이트 또는 새로운 데이터를 가져와 캐시에 넣습니다. 요청 시 캐시 새로 고침을 호출할 수도 있습니다. Cache Refresher는 모든 캐시 서버에서 병렬로 실행되어 여러 병렬 데이터 세트에 데이터를 로드하는 작업을 분산합니다.
캐시 로더 및 리프레셔 NCache

캐시 로더/리프레셔의 장점

다음은 캐시 로더/리프레셔 기능을 사용하여 얻을 수 있는 몇 가지 이점입니다. NCache.

  1. 데이터 세트의 병렬 로드/새로고침: 캐시가 큰 경우 로드하거나 새로 고치는 데 시간이 걸릴 수 있습니다. 그리고 이 목적을 위해 직접 코드를 작성하는 경우 단일 컴퓨터에서 실행할 가능성이 높으므로 모든 데이터를 순차적으로 로드합니다. 하지만, NCache 모든 캐시 서버에 캐시 로더/리프레셔를 배포 및 실행합니다. 결과적으로 데이터 로드가 병렬로 훨씬 빨라집니다.
  2. 캐시 로더/리프레셔의 고가용성: NCache 모든 캐시 서버에 캐시 로더/리프레셔를 배포합니다. 즉, 캐시 서버가 다운되더라도 다른 캐시 서버에서 실행 중이기 때문에 로딩/새로고침이 멈추지 않습니다. 그리고 클러스터에 새 캐시 서버를 추가하면 NCache 캐시 로더/리프레셔를 사용할 수 있도록 하여 고가용성을 추가합니다. 이것은 이 코드를 작성하고 직접 실행하면 달성할 수 없는 것입니다.
  3. NCache 당신을 위해 호스팅: 이 코드를 직접 개발하고 실행해야 하는 경우 해당 코드를 실행 중인 서버가 다운되더라도 항상 실행되도록 해야 합니다. 이는 캐시가 신선하고 완전한 상태를 유지하기 위해 이 코드에 의존하기 때문입니다. 그리고 프로덕션에서 이러한 것을 관리하려면 많은 작업이 필요합니다. 다행스럽게도, NCache 귀하에 대한 이 책임을 인수하고 모든 캐시 서버에서 귀하를 위해 캐시 로더/리프레셔를 호스팅합니다. NCache 또한 위에서 설명한 대로 고가용성을 위해 이 코드가 여러 서버에서 실행되도록 합니다.
  4. 로더/리프레셔는 캐시에 매우 가깝게 실행됩니다. 아시다시피, NCache 클러스터의 모든 캐시 서버에 캐시 로더/리프레셔를 배포하고 실행합니다. 이것은 캐시 로더/리프레셔 코드가 캐시 자체에 매우 가깝게 실행되고 있음을 의미합니다. 또한 대용량 데이터 세트의 경우 데이터 로드/새로고침 속도도 빨라집니다.

주요 특징

다음은 Read-through, Write-through 및 Write-behind 기능의 몇 가지 주요 사항입니다. NCache.

  1. 서버측 코드(.NET): .NET에서 캐시 로더/리프레셔를 개발합니다. 클러스터의 모든 캐시 서버에 코드를 개발하고 배포하는 Loader 및 Refresher용 인터페이스가 있습니다. NCache 그러면 캐시 시작 시 또는 나중에 Refresher를 위해 호출할 수 있습니다. 귀하의 코드는 .NET에서 개발되었으며 기본적으로 NCache .NET에서도 개발되었기 때문입니다.
  2. 로더/리프레셔는 별도의 프로세스로 실행: NCache Cache Loader / Refresher는 캐시 데이터가 있는 프로세스와 다른 각 캐시 서버의 별도 프로세스에서 실행됩니다. 즉, 캐시 로더/리프레셔 코드의 프로세스가 NCache 동일한 캐시 서버의 관리 서비스.
  3. 여러 명명된 데이터 세트: 여러 명명된 데이터세트를 정의하여 데이터 로드/새로고침을 병렬 데이터 청크로 나눌 수 있습니다. 구성에서 데이터 세트의 이름을 지정하면 명명된 데이터 세트를 로드/새로 고치는 역할을 하는 캐시 로더/리프레셔 코드가 데이터 세트가 무엇인지 알고 해당 데이터만 가져오는 데 적절한 코드를 사용할 수 있습니다.
  4. 런타임 시 캐시 서버에 배포된 데이터 세트: NCache 라운드 로빈 알고리즘을 사용하여 클러스터의 모든 캐시 서버에 데이터 세트를 배포하여 병렬로 로드/새로 고침합니다. 클러스터에 항상 2개 이상의 캐시 서버가 있고 2개 이상일 가능성이 높기 때문에 로드/새로고침 속도가 상당히 빨라집니다.
  5. 데이터 세트 수준 스케줄링(매월, 매주, 매일 시간, 매일 간격): NCache 각 데이터세트가 고유한 일정을 가질 수 있도록 데이터세트 수준에서 로드/새로고침 일정을 정의할 수 있습니다. 일정은 월간, 주간, 일일 시간 및 일일 간격이 될 수 있습니다. Daily Time은 매일 지정된 시간을 의미하는 반면 Daily Interval은 매일 여러 번 실행하지만 마지막 실행에서 특정 간격을 기다린 후 실행하는 것을 의미합니다.
  6. 주문형 데이터 세트 새로 고침: 데이터세트 수준 일정을 제공하는 것 외에도 NCache 또한 요청 시 특정 데이터 집합 새로 고침을 호출할 수 있는 PowerShell Cmdlet도 제공합니다. 이렇게 하면 데이터 세트 데이터가 변경되었지만 예정된 시간이 오지 않았다고 느끼면 다음을 호출할 수 있습니다. NCache 새로 고침. 데이터베이스/데이터 소스의 데이터 상태에 대해 더 잘 이해할 수 있는 애플리케이션에서 이 호출을 통합할 수 있습니다. 애플리케이션이 요청 시 새로 고침 여부를 호출할 수 있습니다.

캐시 로더/리프레셔 인터페이스

캐시 로더/리프레셔 코드를 개발하는 것은 매우 간단합니다. 아래는 이에 대한 인터페이스의 예입니다.

캐시 로더/리프레셔 인터페이스

public interface ICacheLoader : IDisposable {
	void Init(IDictionary<string, string> parameters, string cacheName);
	object LoadDatasetOnStartup(string dataset);
	object RefreshDataset(string dataset, object userContext);
	IDictionary<string, RefreshPreference> 
GetDatasetsToRefresh(IDictionary<string, object> userContexts);
}
© 저작권 Alachisoft 2002 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.