데이터를 효율적이고 일관성 있게 처리하는 것은 현대 시대의 가장 큰 과제 중 하나가 되었습니다. 높은 트랜잭션 데이터를 지속적으로 수용하는 웹 애플리케이션은 성능과 확장성이 부족합니다. 다행스럽게도 이러한 상황을 처리하기 위해 캐싱을 도입하여 빈번한 네트워크 이동으로 인한 상당한 비용을 피할 수 있습니다.
그러나 캐시를 사용하는 동안 애플리케이션은 애플리케이션 코드를 복잡하게 만들고 추가 성능 지연을 유발할 수 있는 두 개의 데이터 소스를 처리해야 합니다. 캐시 누락의 경우와 마찬가지로 필요한 데이터를 가져와서 캐시에 채우려면 데이터베이스로의 네트워크 이동이 필요합니다. 애플리케이션 코드를 단순화하고 네트워크 트립과 관련된 대기 시간을 줄이기 위해 NCache Read-Through라는 맞춤형 데이터 소스 공급자를 제공합니다. 이 공급자는 애플리케이션을 대신하여 데이터베이스와 상호 작용하여 데이터 원본에서 필요한 데이터를 가져오고 현재 및 향후 사용을 위해 단일 작업으로 캐시를 채웁니다.
Read-Through란 무엇입니까?
Read-Through는 데이터베이스에서 데이터를 가져와야 하는 방법과 시기를 캐시에 알려주는 사용자 지정 데이터 소스 공급자입니다. Read-Through는 애플리케이션을 대신하여 데이터 소스와 상호 작용하고 런타임 데이터베이스 이동을 방지하여 애플리케이션의 성능을 향상시킵니다.
Read-Through 사용 NCache
Read-Through Caching에서 캐시 미스가 있을 때, NCache get 호출에서 데이터를 로드하기 위해 공급자를 호출합니다. 여러 서버가 관련된 클러스터 캐시에서 ReadThrough 공급자는 모든 캐시 서버 노드에서 활성화(초기화)합니다. 그러나 Read-Through 작업은 사용된 토폴로지에 따라 수행됩니다.
ReadThrough와 함께, NCache 의 옵션도 제공합니다. 강제 읽기. 강제 Read-Through가 활성화되면 공급자는 캐시의 데이터를 무시하고 데이터 소스에서 데이터를 강제로 가져옵니다. 따라서 데이터는 캐시에서 확인되지 않고 데이터 소스에서 직접 가져옵니다.
NCache 캐시를 최신 상태로 유지하고 데이터 만료 그들 중 하나입니다. 그러나 만료만으로도 성능 지연이 발생할 수 있으며 여기서 전체 읽기 예를 들어, 전자 상거래 상점에서 수백 개의 제품이 캐시되고 그 중 일부는 자주 액세스됩니다. 캐시된 나머지 항목은 그 자리에 앉아서 캐시 메모리를 잡아먹습니다.
만료를 사용하면 지정된 시간 또는 액세스 빈도가 지나면 항목을 무효화할 수 있습니다. 그러나 항목이 결국 만료되었지만 애플리케이션이 바로 해당 항목을 요청할 가능성이 있습니다. 이러한 경우 애플리케이션은 데이터베이스에서 항목을 가져온 다음 캐시에 추가해야 합니다. 이 런타임 데이터베이스 트립으로 인해 특정 지연이 발생할 수 있으므로 애플리케이션의 성능이 저하될 수 있습니다.
이러한 성능 지연을 방지하려면 재동기화 옵션 속성은 캐시에서 만료되는 순간 재동기화 플래그로 구성된 모든 항목을 자동으로 가져옵니다. 이것은 항상 캐시를 최신 상태로 유지하고 캐시 미스를 줄이며 런타임 데이터베이스 트립을 방지합니다.
마찬가지로 종속성도 캐시에서 데이터 일관성을 유지하는 좋은 방법이 될 수 있습니다. 특히 사용자가 데이터를 데이터베이스와 동기화된 상태로 유지하여 데이터베이스의 해당 데이터가 업데이트될 때마다 캐시에 알리고 각 데이터를 자동으로 무효화하려는 시나리오에서 그렇습니다. 이렇게 하면 캐시의 데이터가 최신 상태로 유지되고 모든 작업이 업데이트된 데이터 세트를 활용합니다.
Read-Through의 중요성
특히 다음과 같은 경우 Read-Through 데이터 소스 공급자를 사용하는 것이 좋습니다.
간소화된 애플리케이션 코드
Read-Through는 이러한 단순화를 달성하기 위해 "관심사 분리" 원칙으로 애플리케이션 코드를 구현합니다. Read-Through를 배포한 후 데이터베이스와의 모든 통신은 데이터 액세스 계층을 통해 이루어집니다. 이제 필요한 데이터를 제공하고 캐시를 데이터베이스와 동기화하는 것은 캐시의 책임입니다.
향상된 읽기 확장성
ResyncOptions 속성이 포함된 이 기능은 캐시 항목을 항상 사용 가능하고 업데이트된 상태로 유지하여 읽기 확장성을 향상시킵니다. 많은 상황이 있을 수 있습니다. 캐시 아이템 만료 데이터베이스는 사용자 스레드의 수많은 요청에 직면합니다.
수백만 개의 캐시된 항목 및 수천 개의 병렬 사용자 요청과 결합된 이 상황은 데이터베이스에 눈에 띄게 더 높은 부하를 초래합니다. 다행히 ResyncOptions와 함께 Read-Through는 데이터베이스에서 최신 복사본을 가져오는 동안 캐시에 캐시 항목을 유지하고 캐시 항목을 업데이트합니다. 데이터베이스 부하를 최소화합니다.
캐시의 높은 데이터 가용성 및 일관성
Read-Through는 캐시를 자동으로 새로 고쳐 캐시에서 높은 데이터 가용성과 일관성을 보장합니다. NCache ResyncOptions로 지정된 Read-Through 공급자는 객체가 만료되거나 데이터베이스의 해당 데이터가 변경된 직후 객체를 다시 로드합니다. 이렇게 하면 캐시 데이터가 부실해지는 것을 방지할 수 있습니다.
Read-Through를 사용하여 성능을 최적화하는 방법
Read-Through는 캐시 일관성을 유지할 뿐만 아니라 아이템을 대량으로 캐시, 따라서 비용이 많이 드는 데이터베이스 호출 및 네트워크 이동을 저장합니다.
또한 Read-Through는 캐시를 제외하는 훌륭한 대안이 될 수 있습니다. 캐시를 제외하고 애플리케이션은 데이터 소스에서 데이터를 가져오고 캐시를 업데이트하므로 애플리케이션의 책임이 증가하고 애플리케이션 코드가 복잡해지고 애플리케이션 성능이 저하됩니다.
결론
NCache의 Read-Through 데이터 소스 공급자는 애플리케이션의 성능을 향상시키고 높은 데이터 가용성을 보장합니다. Read-Through는 또한 데이터 소스와 통신하기 위한 코드 청크를 제거하여 애플리케이션 코드를 단순화하고 애플리케이션을 대신하여 데이터베이스와 상호 작용합니다. 따라서 에버그린 캐시 데이터를 원하신다면 주저하지 마시고 NCache의 60일 무료 평가판입니다.