INTEGRITY Документация

Модель согласованности

Эта страница описывает модель согласованности R2, включая случаи строгой глобальной согласованности и операции, к которым это применяется.

R2 можно назвать «строго согласованным» хранилищем, особенно в сравнении с другими распределёнными системами объектного хранения. Эта строгая согласованность гарантирует, что операции в R2 отражают самое актуальное (точное) состояние: клиенты должны видеть результат любой операции записи, обновления и/или удаления сразу и повсеместно.

Терминология

В контексте R2 строгая согласованность и итоговая согласованность имеют следующие значения:

Операции и согласованность

Операции с бакетами и объектами R2 соответствуют следующим гарантиям согласованности:

Действие Согласованность
Чтение после записи: сначала запишите (загрузите) объект, затем прочитайте его Строгая согласованность: пользователи сразу увидят актуальный объект по всему миру
Метаданные: обновление метаданных объекта Строгая согласованность: пользователи сразу увидят обновлённые метаданные по всему миру
Удаление: удаление объекта Строгая согласованность: чтение этого объекта сразу вернёт ошибку «does not exist»
Список объектов: получение списка объектов в бакете Строгая согласованность: операция List вернёт все объекты, существовавшие на тот момент
IAM: добавление и удаление разрешений R2 Storage Согласованность в конечном счёте: новый или обновлённый ключ API может занять до минуты, прежде чем разрешения вступят в силу глобально

Дополнительные примечания:

Кеширование

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

В частности, ожидайте следующего:

Кеш не влияет на доступ через Привязки Worker API или S3 API, поскольку эти операции выполняются напрямую с бакетом и не проходят через кеш.