SimpleDB: гарантированно видеть все атрибуты элемента, если мы видим элемент?(непоследовательное чтение) - PullRequest
1 голос
/ 25 ноября 2011

Я только что обнаружил предположение при использовании SimpleDB.Я подозреваю, что это безопасно, но хотелось бы иметь другие мнения, так как документы, кажется, не покрывают это.

Так, скажем, Процесс 1 хранит элемент с x атрибутами.Когда Процесс 2 пытается получить доступ к указанному элементу (без согласованного чтения) и находит его, гарантированно ли он хранит все атрибуты, сохраненные Процессом 1?

Я исключаю возможность того, что другой процесс мог изменить данные.

Я также знаю, что у Процесса 2 нет гарантии видеть элемент, если не используется последовательное чтение, я просто говорю о том моменте, когда он в конечном итоге его видит.

Я предполагаю, чтовопрос в том, когда я смогу получить предмет и не буду его менять где-либо еще, могу ли я предположить, что у него есть специальная фиксированная схема и доступ ко всем моим ожидаемым атрибутам без проверки их фактического существования?

Я не хочубыть в ситуации, когда мне нужно продолжать запрашивать предметы, пока они не будут иметь все атрибуты, которые мне нужны, чтобы их использовать.

Спасибо.

1 Ответ

2 голосов
/ 18 декабря 2011

Хотя Amazon не дает таких гарантий в документации, текущая реализация их возможной согласованности гарантирует, что вы увидите все свойства, сохраненные в процессе 1, или ни одного из них.

См. эту ветку на форумах AWS и, в частности, этот ответ сотрудника Amazon, подтверждающий поведение (выделено мной).

Я не думаю, что мы даем такую ​​гарантию в документации, но текущая реализация обрабатывает каждый запрос Put как пакет . Не будет разделите запрос и примените операции по частям. Ты получишь либо ответы шага 1, либо ответы шага 2 до возможной согласованности встряхивает и оставляет вас с ответами шаг-2.

Хотя это недокументированное поведение, я подозреваю, что многие пользователи SimpleDB полагаются на него сейчас, и поэтому Amazon вряд ли изменит его в ближайшее время, но это мое предположение.

...