2015-01-22 1 views
0

Я установил пакетный процесс Azure для одновременного чтения нескольких файлов csv и записи в Azure DocumentDb. Мне нужно предложение о уровне согласованности, который подходит для меня лучше всего.Azure DocumentDb Предположение уровня согласованности

Я прочитал документ уровня согласованности (http://azure.microsoft.com/en-us/documentation/articles/documentdb-consistency-levels/), но не смог связать свой бизнес-код с предоставленными там опциями.

Мой процесс Получить документ по Id
- Если найдено то потянет копию документа, обновить изменения и заменить его.
- Если не найдено, создайте новую запись.

+0

Какова природа вашей озабоченности? Вы беспокоитесь о том, что одновременно выполняете несколько процессов, записывающих документы (что касается производительности здесь), или о клиентах, читающих данные из docdb, которые могут быть устаревшими во время записи? –

ответ

4

Если ваши записи и чтения происходят из одного и того же процесса (или вы можете поделиться экземпляром документаклиента), то согласованность сеанса даст вам лучшую производительность, гарантируя, что вы получите последовательные чтения. Это связано с тем, что каждый SDK управляет токенами сеанса, гарантируя, что чтение переходит к реплике, которая увидела запись. Даже если вы этого не сделаете, в вашем случае запись не удастся, если вы используете один и тот же идентификатор документа. Внутри коллекции идентификаторы документов гарантируют уникальность.

Краткая версия - согласованность сеанса (по умолчанию), вероятно, является хорошим выбором.

+0

Мои записи и чтения поступают из моего консольного приложения, которое одновременно запускает несколько экземпляров на разных машинах (процесс обработки Azure). Даже в этом случае последовательность сеансов является лучшей? –

+0

В этом случае вы увидите, в конце концов, последовательные чтения по всем экземплярам, ​​если они не используют токен сеанса. Однако идентификаторы документов уникальны в коллекции. Если вам случится получить устаревшее чтение, а затем вставьте существующий документ, вы получите конфликт. Затем вы можете обработать этот конфликт, заменив документ, отбросив добавление/обновление или сброс в очередь с мертвой буквой. В зависимости от характера данных и потребностей приложения. Я пытаюсь удержать вас от сильной согласованности, так как вы увидите гораздо лучшую производительность с настройкой по умолчанию (сеанс). –