다음을 통해 공유


데이터 분류(Windows Server AppFabric 캐싱)

응용 프로그램에 캐시할 적절한 데이터 형식을 선택하면 Windows Server AppFabric의 캐싱 기능을 최대한 이용할 수 있습니다. 데이터는 여러 형식을 사용하고 여러 응용 프로그램 계층에 상주할 수 있습니다. 분산 캐싱을 사용하면 서비스 경계 제한과 의미 체계의 차이에 관계없이 다양한 데이터 형식을 쉽게 저장 및 검색할 수 있습니다.

대부분의 응용 프로그램은 모든 데이터 인스턴스에 대해 단일 원본을 사용합니다. 예를 들어, 응용 프로그램의 주 데이터베이스에 저장된 데이터에는 높은 수준의 데이터 일관성과 무결성이 필요하며 각 데이터 부분이 고유한지 확인하는 단계가 수행됩니다. 중간 계층에 있고 비즈니스 논리로 작동하는 데이터는 일반적으로 원본 데이터의 복사본이며 프레젠테이션 계층에서 유용하기 위해 다른 데이터 부분과 함께 구성될 수 있습니다. 캐싱에 적합한 것은 이러한 중간 계층 복사본입니다.

다양한 데이터 형식을 이해하면 가능한 캐싱 수준을 정의하는 데 도움이 됩니다. 다음 표에서 볼 수 있듯이 분산 캐싱에 적합한 세 가지 데이터 형식은 참조, 활동 및 리소스입니다.

데이터 형식 액세스 패턴

참조

공유 읽기

활동

단독 쓰기

리소스

다수의 트랜잭션이 공유, 동시에 읽기 및 쓰기, 액세스

참조 데이터

참조 데이터는 자주 변경되지 않는 원본 데이터의 한 버전입니다. 원본 데이터의 직접 복사본이거나 여러 데이터 원본에서 집계 및 변환됩니다. 참조 데이터는 정기적으로, 대개 구성된 간격마다 또는 데이터 변경 시 새로 고쳐집니다.

참조 데이터는 자주 변경되지 않으므로 캐싱에 적합합니다. 계산 리소스를 사용하여 요청될 때마다 참조 데이터를 다시 집계하고 변환하는 대신 참조 데이터를 캐시에 저장하고 이후 요청에 다시 사용할 수 있습니다. 이런 방식으로 여러 응용 프로그램이나 사용자의 참조 데이터를 캐싱하면 응용 프로그램 크기와 성능을 늘리는 데 도움이 될 수 있습니다.

참조 데이터의 예로 비행 일정과 카탈로그가 있습니다. 예를 들어, 여러 응용 프로그램과 데이터 원본의 제품 정보를 집계하는 카탈로그 응용 프로그램을 고려해 보십시오. 카탈로그 데이터에서 가장 일반적인 작업은 공유 읽기: 검색입니다. 카탈로그 검색 작업은 많은 제품 데이터에 대해 반복되며 필터링하고 개인 설정한 다음 선택한 데이터를 다수의 사용자에게 제공합니다.

검색 작업에 많은 리소스가 필요할 수 있으므로 이러한 종류의 카탈로그 데이터는 캐싱에 적합합니다. 캐시되지 않은 경우 이러한 작업은 불필요하게 데이터 원본에 부담을 줄 수 있으며 응용 프로그램의 응답 시간과 처리량에 큰 영향을 줄 수 있습니다.

응용 프로그램에 더 가깝게 데이터를 캐싱하면 성능과 확장성이 훨씬 향상될 수 있습니다. 이런 이유로 AppFabric에서는 로컬 캐시 기능을 제공합니다. 자세한 내용은 캐시 클라이언트 및 로컬 캐시(Windows Server AppFabric 캐싱)를 참조하십시오.

활동 데이터

활동 데이터는 실행 중인 작업에 의해 비즈니스 트랜잭션의 일부로 생성됩니다. 비즈니스 트랜잭션의 일부로 데이터가 시작된 다음 비즈니스 트랜잭션을 닫을 때 데이터 원본에 기록 또는 로그 정보로 회수됩니다.

활동 데이터의 예로 구매 주문, 응용 프로그램 세션 상태 또는 온라인 쇼핑 카트가 있습니다. 온라인 구매 응용 프로그램의 쇼핑 카트 데이터를 고려해 보십시오. 각 쇼핑 카트는 각 온라인 구매 세션별로 단독으로 사용되며 그 자체로 개별 데이터 컬렉션입니다. 구매 세션 중에 쇼핑 카트가 캐시되고 선택한 제품으로 업데이트됩니다. 쇼핑 카트는 구매 트랜잭션에만 표시되고 사용할 수 있습니다. 체크 아웃하면 결제를 적용하는 즉시 쇼핑 카트가 추가 처리를 위해 캐시에서 데이터 원본 응용 프로그램으로 회수됩니다. 데이터 원본 응용 프로그램이 비즈니스 트랜잭션을 처리한 후 감사 및 기록을 위해 쇼핑 카트 정보가 로깅됩니다.

구매 세션이 활성화된 동안 쇼핑 카트는 읽기 및 쓰기 작업을 위해 액세스되지만 공유되지는 않습니다. 활동 데이터에 대한 단독 액세스 권한 때문에 활동 데이터는 분산 캐싱에 적합합니다.

활동 데이터를 저장하는 분산 캐시에 대한 크기 요구 사항은 많은 개별 데이터 컬렉션을 처리하고 이러한 컬렉션에 영향을 주는 작업을 지원할 수 있어야 합니다. 응용 프로그램의 큰 확장성을 지원하려면 이러한 데이터 컬렉션을 캐시 클러스터에 배포해야 합니다.

데이터 컬렉션은 공유되지 않으므로 분산 캐시에 개별 데이터 컬렉션을 배포하고 별도의 캐시 호스트에 저장할 수 있습니다. 캐시 호스트를 추가하여 분산 캐시를 동적으로 확장하면 응용 프로그램이 수요 증가에 맞게 확장될 수 있습니다.

AppFabric 캐싱 기능을 통해 각각의 개별 데이터 컬렉션에 대한 영역을 만들 수 있습니다. 영역은 데이터 컬렉션 작업을 위해 다양한 태그 기반 작업을 제공합니다. 자세한 내용은 태그 기반 메서드(Windows Server AppFabric 캐싱)를 참조하십시오.

AppFabric을 통해 ASP.NET 웹 응용 프로그램에 대한 세션 상태를 관리할 수도 있습니다. 자세한 내용은 ASP.NET 세션 상태 공급자 구성(Windows Server AppFabric 캐싱)을 참조하십시오.

리소스 데이터

참조(공유 읽기) 및 작업(단독 쓰기) 데이터는 모두 캐싱에 적합합니다. 그러나 모든 응용 프로그램 데이터가 이러한 두 범주에 해당하지는 않습니다. 다수의 트랜잭션이 공유하고 동시에 읽고 쓰며 액세스하는 데이터도 있습니다. 이러한 데이터를 리소스 데이터라고 합니다.

리소스 데이터의 예로 사용자 계정과 경매 항목이 있습니다. 예를 들어, 경매 항목을 고려해 보십시오. 경매 항목에는 항목 설명과 현재 입찰 정보(예: 현재 입찰, 입찰자 등)가 포함됩니다. 입찰 정보는 불안정하고 각 입찰에 고유하며 읽기 및 쓰기 작업을 위해 다수의 사용자가 동시에 액세스합니다. 비즈니스 논리는 리소스 데이터에 가깝게 캐시됩니다.

추적 목적으로 리소스 데이터는 대체로 OLTP(온라인 트랜잭션 처리) 데이터 원본에 저장되며 응용 프로그램 계층에 캐시되어 성능을 향상시키고 데이터 원본에 대해 계산 리소스를 해제합니다. 경매 예에서 단일 컴퓨터에 입찰 데이터를 캐싱하면 성능이 약간 향상될 수 있지만 대규모 경매의 경우 단일 캐시로는 필요한 크기나 사용 가능성을 제공할 수 없습니다. 이런 목적으로 일부 데이터 형식은 분할하여 분산 캐시의 여러 캐시에 복제할 수 있습니다. 그러나 특정 데이터 형식은 공유되고 동시에 업데이트되므로 클러스터에서 캐시 일관성을 유지해야 합니다.

확장성을 최적화하려면 최대한 많이 원본 데이터를 확산하고 영역 사용을 제한합니다. 영역을 사용하는 경우 여러 영역에 데이터를 넣어 캐시 클러스터에 데이터를 배포할 수 있도록 합니다.

AppFabric에서는 낙관적 및 비관적 동시성 작업을 모두 지원합니다. 자세한 내용은 동시성 모델(Windows Server AppFabric 캐싱)을 참조하십시오.

참고 항목

개념

Windows Server AppFabric 캐싱 실제 아키텍처 다이어그램
Windows Server AppFabric 캐싱 논리 아키텍처 다이어그램

  2011-12-05