Было бы очень глупо, если бы Amazon гарантировал упорядочение записи, если целью является масштабная масштабируемость.Рассмотрим следующий случай:
- Значение X, связанное с ключом K, существует в S3.
- Клиент 1 (Гонконг): записывает значение A в ключ K, обслуживаемый сервером A
- Клиент 2 (Канзас-Сити): записывает значение B в ключ K, обслуживаемый сервером B
Окончательная согласованность гарантирует, что все читатели в любой точке мира увидят значение Aили значение B или значение X, и, в конце концов, все читатели увидят либо значение A, либо B, но не сочетание.
Если клиенты 1 и 2 выпустили свои записи одновременно, то единственный способ гарантировать записьпорядок состоит в том, чтобы связывать записи друг с другом по временной шкале.Тем не менее, трансатлантические часы не будут идеально синхронизированы.Настоящий вопрос здесь заключается в том, что вы подразумеваете под порядком записи, когда два клиента на противоположных концах света выдают запись близко друг к другу во времени.
Обновление
То же самое относится и к одному клиенту.Предположим, что значение подается из 2 местоположений, и один клиент выдает 2 последовательных обновления.Если обе записи обслуживаются одной и той же конечной точкой, то, скорее всего, ваш порядок будет сохранен.Однако ничто не препятствует выполнению чтения из второго местоположения (маршрутизация, разделение сети и т. Д.).