2010-03-17 4 views
1

변환해야하는 많은 양의 데이터를받는 Windows 서비스가 데이터베이스에 보관됩니다. 우리가 데이터를 잃지 않도록하려면 데이터베이스가 온라인 상태인지 여부에 관계없이 계속 될 데이터에 대해 "쓰기 캐시"를 만들고 싶습니다. 데이터베이스를 다시 사용할 수있게되면 캐시의 내용을 데이터베이스로 다시 플러시해야합니다.C#의 오프라인 데이터베이스 쓰기 캐시

NHibernate에서이 작업을 수행 할 수 있음을 나타내는 몇 가지 기사를 보았지만 결론적으로 찾지 못했습니다. 어떤 옵션이 이것에 대해 존재하며, NHibernate가 적절한 방향인가?

답변

0

나는 Paco와 동의하지만 여전히 데이터베이스가 너무 자주 업데이트되는 경우 몇 가지 시나리오가 있습니다. 그렇다면 요청할 때 구현해야 할 수도 있습니다.

당신이 정말 당신이 NCache 서버 http://www.alachisoft.com/ncache/

를 사용하거나 거기에 수를 필요가 있다고 생각하면 이것은 쓰기 숨김 시나리오의 다음 문서

http://wiki.tangosol.com/display/COH32UG/Read-Through,+Write-Through,+Refresh-Ahead+and+Write-Behind+Caching

에서

봐라고 이러한 상황을 처리 할 수있는 다른 응용 프로그램도 있으며이를 보장하기 위해 응용 프로그램이나 코드를 직접 작성할 수도 있습니다.

감사합니다. 무 바샤

1

쓰기 캐시가 오프라인 상태가되면 어떻게됩니까? 첫번째 writecache를 확보하기 위해서는 또 다른 writecache가 필요합니다. 이는 가짜 (가짜) 사용 가능성을 재귀 적으로 나타냅니다. 가능한 한 작아 질 가능성을 없애기 위해 여러 시스템의 클러스터를 사용하십시오. SQL 데이터베이스의 가용성은 시스템의 다른 구성 요소보다 높습니다.

서비스에서 이러한 종류의 예외를 처리하지 못합니다. 모든 서브 시스템의 중단 시간에 실패 할 경우 원래 입력으로 서비스를 다시 (간접적으로) 호출합니다. 원래 입력은 "writecache"일 수 있습니다.

+0

이것은 거의 대답이 아닙니다. 서비스가 쓰기 캐시로 실행중인 시스템의 HDD를 사용한다고 가정하면 동시에 실패 (즉, 쓰기 캐시가 오프라인이 됨)되고 데이터베이스 서버가 오프라인이 될 확률은 매우 낮습니다. 귀하의 조언은 실제로 유효하지만 질문에 대답하지 않습니다. – snicker

관련 문제