2016-07-15 1 views
0

현장의 지원 데스크 사용자가 사용자 계정을 관리하는 데 사용하는 웹 응용 프로그램이 있습니다. 응용 프로그램은 LINQ 쿼리를 사용하여 데이터베이스에서 프로그래밍 방식으로 데이터를 가져옵니다. 최근 패치를 적용하는 동안 데이터베이스는 몇 시간 동안 오프라인 상태가되어 응용 프로그램이 책상 사용자를 지원하지 못하게되었습니다.고 가용성 데이터베이스 또는 데이터로 웹 응용 프로그램을 설정 하시겠습니까?

데이터를 응용 프로그램에 사용할 수있는 방법을 구현하여 가동 중지 시간이 발생해도 쿼리가 결과를 반환 할 수 있습니다. 지금까지 발견 한 가장 성공적인 방법은 EntityFramework.Plus을 이용하는 것입니다. 이 기능은 일반적인 캐싱에 효과적이지만, 데이터베이스가 만료되어 최신 데이터를 갖기 위해 캐시를 만료하고 다시 만들면 다운 타임이 발생할 수 있습니다. 두 번째 데이터베이스를 설정하는 것 이외의 옵션에 관심이 있습니다.

응용 프로그램 :

  • 엔티티 프레임 워크 6
  • MVC 하루 4
  • ~ 20 사용자
  • 하나의 데이터베이스 6-8 테이블과 각 테이블에서 데이터의 10 ~ 20 행.
  • 데이터베이스가 다운 된 경우 데이터를 쓸 필요가 없으며 읽기만 가능합니다.

내 응용 프로그램을 사용할 때 데이터 가용성이 높고 데이터베이스 작동 중지 시간의 경우 최신 권장 사항은 무엇입니까? 두 번째 수준의 캐시가 나아갈 길입니까? 더 좋은 방법이 있습니까?

+0

데이터베이스 크기는 무엇입니까? 기억에 맞게 작게 보인다. 왜 데이터베이스를 같은 머신에 두는 것이 좋을까요? – lstern

답변

0

데이터베이스가 작 으면 모든 것을 캐시에 저장하고 캐시를 데이터베이스 장애 조치로 사용하거나 데이터베이스를 동일한 시스템에 넣을 수 있습니다.

데이터베이스가 큰 경우이 정책을 구현하거나 스스로를 구현 인기 캐싱 시스템을 검색 할 수 있습니다 다음 응용 프로그램 에 대한 best cache policy을 무엇에 대해 생각할 필요가 있도록 모든 캐시 할 수 없을 것입니다. 만료 정책을 구현할 필요가 없거나 데이터가 너무 오래된 경우 경고를 발행해야하는지 다시 한 번 확인하는 것이 좋습니다.

캐시를 페일 오버와 빠른 응답을 제공하는 방법으로 사용하려는 경우 데이터를 가져 오기 전에 캐시를 확인해야하므로 각 캐시 항목의 타임 스탬프를 추적해야합니다. 데이터베이스 (캐시가 더이상 신선하지 않으면 데이터베이스에 힙니다.)