2015-01-22 4 views
0

동시에 여러 csv 파일을 읽고 Azure DocumentDb에 쓰기 위해 Azure 배치 프로세스를 설정했습니다. 나에게 맞는 일관성 수준에 대한 제안이 필요하다.Azure DocumentDb 일관성 수준 제안

일관성 수준 문서 (http://azure.microsoft.com/en-us/documentation/articles/documentdb-consistency-levels/)를 읽었지만 여기에 제공된 옵션에 비즈니스 사례를 관련시킬 수 없습니다.

아이디하여 내 처리 가져 오기 문서
- 만약 다음, 문서의 사본을 끌어 변경을 업데이트하고 그것을 대체 할 것이다 발견했다.
- 찾을 수 없으면, 새 항목을 만드십시오.

+0

우려되는 점은 무엇입니까? 여러 프로세스가 동시에 문서를 작성하는 것에 대해 우려하고 있습니까? (여기서는 성능이 중요합니까?) 쓰기가 수행되는 동안 부실 할 수있는 docdb에서 데이터를 읽는 클라이언트에 대해 우려하십니까? –

답변

4

쓰기와 읽기가 같은 프로세스에서 이루어 지거나 (문서 클라이언트의 인스턴스를 공유 할 수있는 경우) 일관성있는 읽기를 보장하면서 세션 일관성이 최상의 성능을 제공합니다. 이는 각 SDK가 세션 토큰을 관리하여 읽기가 쓰기를 보았던 복제본으로 이동했는지 확인하기 때문입니다. 이 작업을 수행하지 않더라도 같은 문서 ID를 사용하면 쓰기가 실패합니다. 컬렉션 내에서 고유 한 문서 ID가 보장됩니다.

짧은 버전 - 세션 일관성 (기본값)은 아마도 좋은 선택 일 수 있습니다.

+0

내 글쓰기 및 읽기는 동시에 여러 컴퓨터에서 @ 여러 인스턴스로 실행되는 내 콘솔 앱에서 수행됩니다 (Azure 배치 프로세스). 이 경우에도 세션 일관성이 가장 좋습니다. –

+0

이 경우 세션 토큰을 공유하지 않으면 인스턴스간에 일관된 읽기가 발생합니다. 그러나 문서 ID는 컬렉션 내에서 고유합니다. 오래된 읽음을 얻은 다음 계속해서 문서를 삽입하면 충돌이 발생합니다. 그런 다음 문서를 바꾸거나 추가/업데이트를 버리거나 데드 레터 큐에 덤핑하여이 충돌을 처리 할 수 ​​있습니다. 데이터의 성격과 앱의 요구에 따라 다릅니다. 나는 당신이 기본 (세션) 설정으로 훨씬 더 나은 성능을 보일 때 강한 일관성을 유지하는 것을 멀리하고있다. –

관련 문제