2017-11-24 19 views
0

응용 프로그램이 있고이 응용 프로그램이 공용 데이터베이스를 사용하고 있지는 않지만 모든 데이터가 메모리에로드되고 모든 응용 프로그램에서 작동한다고 가정 해 봅니다.실행중인 응용 프로그램의 메모리 데이터 저장소를 대체 할 공통 패턴이 있습니까?

이제는 WS이며 몇 시간마다 메모리 내 데이터베이스를 '업데이트'하려고합니다. 다운 타임의 위험을 감수하고 싶지 않으므로 메모리 내 데이터 스토어를 즉시 대체하려고합니다.

  • 특정 데이터가 더 이상 존재하지 않을 수있는 '오래된'데이터 저장소에서 사용할 수 있었던 누군가가 그 순간에 바로 데이터를 소모하는 경우, 그들은 함께 종료됩니다 :하지만 그와 함께 오는 어떤 위험이있을 수 있습니다 오류.
  • 특정 데이터가 변경 될 수 있으며 이름이 같지 않거나 약간 다를 수 있습니다.

이런 종류의 문제에 대한 특정 접근 방식이나 패턴이 있는지 궁금한가요?

내 접근 방식은 특정 시간에 두 개의 데이터 저장소를 갖는 것입니다. '오래된'과 '새로운'것. 모든 새 세션은 새 데이터 저장소에 의해 제공되며 모든 이전 세션은 이전 데이터 저장소를 사용하며 일부 지점에서 새 세션을 사용하도록 새로 고쳐야 할 수 있습니다. 그 후, 나는 옛 노래를 버리고 다시 같은 노래를 시작했다.

답변

0

"DBMS 방식"은 일반적으로 MVCC (다중 버전 동시성 제어)를 통해 "반복성 읽기"를 구현하는 것입니다. 여러분이 묘사하는 '오래된'및 '새로운'데이터 저장소 개념을 사용하지만 다소 거친 (즉, 세분화되지 않은) 방식으로이를 수행하고 있습니다. DBMS는 SQL 커서 단위로 처리합니다. 그러나 웹 서비스에 대한 사용자 커뮤니티의 잠재적 인 크기에 따라 확장 문제가 발생할 수 있습니다.