2012-04-28 2 views
2

APPFabric 캐싱 또는 SQL Server를 우리의 필요에 맞게 사용해야하는지 (현재 대부분의 경우 SQL 서버를 사용한다는 사실을 고려하여) 어려움을 겪고 있습니다.APPFabric 캐싱 또는 SQL 서버 - 특정 시나리오

우리는 응용 프로그램 서버 (나가는 요청) 중 하나에서 보낸 특정 요청과 관련된 정보에 해당하는 작은 덩어리의 데이터 (~ 16KB) 만 캐시해야합니다.

모든 신청 서버는 초기 발신 요청과 관련된 수신 요청을받을 수 있으며, 우리의 필요에 따라이 발신 요청과 관련된 원래 정보를 다시 찾아야합니다. 그래서 우리는 지역을 유지할 수 없습니다 왜냐하면 우리는 들어오는 요청이 나가는 요청을 보낸 응용 프로그램 서버에 도착할 것인지 확신 할 수 없기 때문입니다.

그러나 우리는 기본적으로 정보의 ~ 16kb 조각을 한 번만 (매우 드물게 업데이트 할 수 있음) 유지하고 모든 적용 가능한 서버에서 다시 액세스 할 수 있어야하지만 광대 한 영역에서 한 번만 액세스해야합니다. 대부분의 경우. 기본적으로 대부분의 경우 응용 프로그램 서버 (캐싱)에서 하나의 쓰기가되고 나중에는 동일하거나 다른 응용 프로그램 서버에서 읽습니다.

이 특정 컨텍스트에서 AppFabric 캐시 클러스터를 직접 거치지 않고 (간단한 삽입/선택문으로 간주 됨) 데이터베이스에 가지 않고 얻을 수있는 이점이 있습니까?

확장 성을 염두에두면 현재 put_data/get_data 작업 (~ 160ops/초)의 처리량이 높지 않지만 가까운 미래에는 1K/s에이를 수 있습니다.

미리 답변 해 주셔서 감사합니다.

답변

1

이득 DB 시간 대 AppFabric Cache는 액세스 시간입니다. AppFabric에 대한 액세스 시간은 메모리 (RAM)에 저장되는 반면 SQL은 디스크에서 데이터를 쿼리해야하므로 더 빨리 액세스 할 수 있습니다.

AppFabric 캐시의 단점은 클러스터에 HA (고 가용성)를 구현하지 않으면 시스템이 실패 할 때 데이터가 손실되지 않도록 데이터를 잃을 수 있다는 것입니다. SQL DB는 데이터베이스 시스템이 실패 할 경우 데이터 복구 가능성 (백업 로그를 통해 - LDF)을 지원하므로 여기에서 승리합니다.

보장 된 메시지 전달이 필요한 경우에는 강력한 데이터 복구 지원으로 인해 AppFabric Cache 클러스터를 사용하지 말고 SQL DB를 임시 지속성으로 사용해야합니다.

관련 문제