Coerenza

Questa pagina spiega quali operazioni di Cloud Storage sono a elevata coerenza e quali alla fine sono coerenti. Nel caso di oggetti memorizzabili nella cache e pubblicamente leggibili, puoi controllare la coerenza delle operazioni sugli oggetti.

Operazioni a elevata coerenza

Cloud Storage offre un'elevata coerenza globale per le seguenti operazioni:

  • Read-after-write
  • Read-after-metadata-update
  • Read-after-delete
  • Elenco dei bucket
  • Elenco degli oggetti

Quando scrivi un oggetto in Cloud Storage, ad esempio quando carichi, componi o copi un oggetto, l'oggetto è immediatamente disponibile per le operazioni di lettura e metadati non appena ricevi una risposta positiva alla richiesta di scrittura. Questo vale per tutte le località dei bucket e per tutte le classi di archiviazione, sia per la creazione di nuovi oggetti sia per la sostituzione di oggetti esistenti. Poiché le operazioni di scrittura sono a elevata coerenza, non riceverai mai una risposta 404 Not Found o dati inattivi per un'operazione read-after-write o read-after-metadata-update.

La coerenza globale elevata si estende anche alle operazioni di eliminazione degli oggetti. Se una richiesta di eliminazione ha esito positivo, un tentativo immediato di scaricare l'oggetto o i relativi metadati genera un codice di stato 404 Not Found. Ricevi l'errore 404 perché l'oggetto non esiste più una volta completata l'operazione di eliminazione.

L'elenco dei bucket e dell'oggetto sono a elevata coerenza: quando crei un bucket o un oggetto e poi esegui immediatamente l'operazione list pertinente, il bucket o l'oggetto appena creato viene visualizzato nell'elenco restituito.

Per i bucket, mentre gli aggiornamenti dei metadati sono a elevata coerenza per le operazioni read-after-metadata-update, la propagazione delle modifiche alla configurazione potrebbe richiedere tempo. Ad esempio, se abiliti il controllo delle versioni degli oggetti in un bucket, devi attendere almeno 30 secondi prima di eliminare o sostituire gli oggetti.

Analogamente, per le chiavi HMAC, si verifica un ritardo fino a 3 minuti tra il momento in cui richiedi la modifica dello stato della chiave e il momento in cui la modifica viene applicata. Ad esempio, se disattivi una chiave HMAC, devi attendere almeno tre minuti prima di richiedere l'eliminazione della chiave, perché i tentativi di eseguirla nei primi tre minuti potrebbero non riuscire.

Operazioni a coerenza finale

Le seguenti operazioni sono a coerenza finale:

  • Concessione dell'accesso alle risorse o revoca dell'accesso.

L'applicazione di queste operazioni richiede in genere circa un minuto. In alcuni casi, l'operazione potrebbe richiedere diversi minuti in più.

Come esempio di comportamento che può derivare dalla coerenza finale, se rimuovi l'accesso di un utente a un bucket, questa modifica si riflette immediatamente nei metadati del bucket; tuttavia, l'utente potrebbe avere ancora accesso al bucket per un breve periodo di tempo.

Controllo e coerenza nella cache

Gli oggetti memorizzati nella cache che sono leggibili pubblicamente potrebbero non mostrare un'elevata coerenza. Se consenti la memorizzazione nella cache di un oggetto quando viene aggiornato o eliminato, l'oggetto memorizzato nella cache non viene aggiornato o eliminato fino alla scadenza della sua durata.

La durata della cache di un oggetto è definita dai metadati Cache-Control associati all'oggetto. I metadati Cache-Control possono essere impostati utilizzando un'intestazione della richiesta Cache-Control inclusa nel caricamento iniziale dell'oggetto o in un successivo aggiornamento dei metadati dell'oggetto. Poiché sei tu a controllare i metadati Cache-Control, puoi anche controllare la coerenza degli oggetti memorizzati nella cache. Inoltre, sebbene le richieste per l'oggetto possano includere la propria intestazione Cache-Control, queste intestazioni vengono ignorate da Cloud Storage se sono impostate per evitare i contenuti memorizzati nella cache.

Operazioni atomiche

Cloud Storage offre garanzie di atomicità per la maggior parte delle operazioni che coinvolgono singoli oggetti, come il caricamento di un oggetto, l'aggiornamento dei metadati di un oggetto e l'eliminazione di un oggetto. Le operazioni che coinvolgono più oggetti contemporaneamente, come la copia o la ridenominazione di più oggetti, non sono atomiche.

Passaggi successivi