동시성 메서드(Windows Server AppFabric 캐싱)

Windows Server AppFabric 캐싱은 낙관적 및 비관적 동시성 모델을 지원합니다. 다음 섹션에서는 캐시 클라이언트 메서드를 이러한 모델에 맞추는 방법에 대해 설명합니다. 동시성에 대한 자세한 내용은 동시성 모델(Windows Server AppFabric 캐싱)을 참조하십시오.

낙관적 동시성 모델

낙관적 동시성 모델에서 캐시된 개체에 대한 업데이트는 잠기지 않습니다. 대신 캐시 클라이언트가 먼저 업데이트할 개체 버전을 읽고 해당 버전 정보를 업데이트된 개체와 함께 보냅니다. 전송된 버전이 개체의 현재 버전과 일치하는 경우에만 개체가 업데이트됩니다. 개체가 업데이트될 때마다 버전 번호가 변경됩니다. 따라서 업데이트가 다른 사용자의 변경 내용을 덮어쓰지 않습니다.

메서드 설명

Get

설계 특성상 잠기지 않습니다. 항목이 있는 경우 Get은 항상 성공합니다. 개체가 업데이트되는 경우 Get 메서드는 대기하지 않으며 개체의 현재 버전만 반환됩니다.

GetCacheItem

모든 DataCacheItem 개체를 반환합니다. 캐시된 개체와 태그 등의 기타 정보 이외에 개체에 대한 버전 정보도 반환됩니다.

GetIfNewer

캐시된 개체가 데이터 원본에서 변경되었는지 확인하는 데 사용할 수 있습니다. 네트워크 트래픽을 최소화하기 위해 새로운 버전을 사용할 수 있는 경우에만 캐시된 개체가 반환됩니다.

Add

낙관적 동시성 관련 오버로드가 없습니다. Add는 성공하거나 실패합니다.

Put

버전 정보를 선택적 매개 변수로 사용하여 낙관적 동시성을 지원합니다. Put은 바꿀 개체의 버전이 동일한 경우에만 성공합니다.

Remove

버전 정보를 선택적 매개 변수로 사용하여 낙관적 동시성을 지원합니다. Remove는 삭제할 개체의 버전이 동일한 경우에만 성공합니다.

비관적 동시성 모델

비관적 동시성 모델에서 클라이언트는 작업을 수행하기 위해 개체를 명시적으로 잠급니다. 잠금을 요청하는 다른 작업은 잠금이 해제될 때까지 거부됩니다(시스템이 요청을 차단하지 않음). 개체가 잠기면 잠금 핸들이 출력 매개 변수로 반환됩니다. 개체를 잠금 해제하려면 잠금 핸들이 필요합니다. 잠긴 개체가 해제되기 전에 클라이언트가 실패할 경우 잠금을 해제하기 위해 시간 제한이 제공됩니다. 잠김 개체는 만료되지 않지만 만료 시간이 경과된 경우 잠금 해제된 직후에 만료될 수 있습니다.

참고

작업을 포괄하는 트랜잭션은 지원되지 않습니다. 캐시를 사용하는 응용 프로그램은 잠금 순서를 결정하고 교착 상태(있는 경우)를 검색합니다.

경고

캐시의 잠긴 개체는 캐시 클라이언트에서 Put 메서드를 통해 바꿀 수 있습니다. 캐시 사용 응용 프로그램은 비관적 동시성 모델을 사용하는 항목에 대해 일관되게 PutAndUnlock을 사용합니다.

다음 표에서는 개체를 잠금 및 잠금 해제하는 데 사용할 수 있는 메서드를 보여 줍니다.

메서드 설명

GetAndLock

캐시된 개체(있는 경우)를 반환하고 잠급니다. 잠금이 유효한 상태에서는 동일한 개체에 대한 다른 GetAndLock 메서드 호출도 실패합니다. 일반 Get 메서드 호출은 차단되지 않으며 항상 최신 버전의 캐시된 개체에 액세스합니다.

PutAndUnlock

잠긴 개체를 업데이트하고 잠금을 해제합니다. GetAndLock에서 가져온 잠금 핸들은 필수 매개 변수이며 성공하려면 잠긴 개체의 잠금 핸들과 일치해야 합니다.

Unlock

잠금 핸들 매개 변수가 잠긴 개체의 잠금 핸들 매개 변수와 일치하는 경우 캐시된 개체를 명시적으로 잠금 해제합니다. Unlock은 또한 현재 항목이 만료 시간을 지나서 잠금 해제된 경우 즉시 만료되지 않도록 현재 항목의 만료 연장을 지원합니다.

참고 항목

개념

클래스 개요(Windows Server AppFabric 캐싱)
기본 캐시 메서드(Windows Server AppFabric 캐싱)
태그 기반 메서드(Windows Server AppFabric 캐싱)
구성 메서드(Windows Server AppFabric 캐싱)
기본 캐시 메서드 사용(Windows Server AppFabric 캐싱)
Windows Server AppFabric 캐싱 개념

  2011-12-05