Amazon S3: как параллельные запросы PUT к одному и тому же ключу разрешаются в сегментах с поддержкой версий - PullRequest
0 голосов
/ 04 августа 2020

Модель согласованности данных Amazon S3 содержит следующее примечание:

Amazon S3 в настоящее время не поддерживает блокировку объектов для одновременных обновлений. Если два запроса PUT выполняются одновременно к одному и тому же ключу, побеждает запрос с последней меткой времени. Если это проблема, вам нужно будет встроить механизм блокировки объектов в свое приложение.

Для своего приложения я рассматриваю возможность разрешения конфликтов, вызванных одновременной записью , путем анализа всех версий объекта на стороне клиента, чтобы собрать один составной объект, и, надеюсь, согласовать два изменения.

Однако я не могу найти окончательного ответа на вопрос, как часть, выделенная жирным шрифтом , разыгрывается в сегментах с поддержкой версий. В частности, после прочтения того, как работает Object Versioning , кажется, что S3 сразу же создаст новую версию объекта с уникальным идентификатором версии для каждого PUT, после чего я предполагаю, что начнется репликация данных, и S3 должен будет определить, какую из двух одновременных операций записи сохранить. Итак, вопросы, которые у меня есть по этой части:

  • Будет ли S3 отслеживать отдельную версию для каждой из двух одновременных записей для объекта?
  • Увижу ли я обе версии при запросе списка версий объекта с помощью API, причем одна из них произвольно помечена как текущая?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...