Informazioni sulle scritture in più aree in Azure Cosmos DB

SI APPLICA A: NoSQL MongoDB Cassandra Gremlin Tabella

Il modo migliore per ottenere tempi di inattività quasi zero in uno scenario di interruzione parziale o totale in cui la coerenza delle letture non deve essere garantita, consiste nel configurare l'account per le scritture in più aree. Questo articolo illustra i concetti chiave da tenere presenti durante la configurazione di un account di scrittura in più aree.

Area hub

In un account di database in più aree con due o più aree, la prima area in cui è stato creato l'account è denominata area "hub". Tutte le altre aree che vengono quindi aggiunte all'account sono denominate aree "satellite". Se l'area hub viene rimossa dall'account, l'area successiva, nell'ordine in cui sono state aggiunte, viene scelta automaticamente come area hub.

Tutte le scritture in arrivo nelle aree satellite vengono sottoposte a commit quorum nell'area locale e quindi inviate successivamente all'area hub per la risoluzione dei conflitti in modo asincrono. Una volta che una scrittura passa all'area dell'hub e viene risolto un conflitto, diventa una scrittura "confermata". Fino ad allora, viene chiamato scrittura "provvisoria" o scrittura "non confermata". Qualsiasi scrittura servita dall'area hub diventa immediatamente una scrittura confermata.

Informazioni sui timestamp

Una delle principali differenze in un account di scrittura in più aree è la presenza di due valori di timestamp del server associati a ogni entità. Il primo è il periodo del server in cui l'entità è stata scritta in tale area. Questo timestamp è disponibile sia in account di scrittura in un'area singola che in account di scrittura in più aree. Il secondo valore timestamp del server è associato al periodo in cui è stata confermata l'assenza di un conflitto oppure il conflitto è stato risolto nell'area dell'hub. Una scrittura confermata o risolta in conflitto ha un timestamp di risoluzione dei conflitti (crts) assegnato, mentre una scrittura non confermata o provvisoria non ha crts. Esistono due timestamp in Cosmos DB impostati dal server. La differenza principale è se la configurazione dell'area dell'account è a scrittura singola o a scrittura multipla.

Timestamp: Significato Quando esposto
_ts Periodo del server in cui è stata scritta l'entità. Sempre esposto da tutte le API di lettura e query.
crts Periodo in cui è stato risolto il conflitto multi-scrittura o l'assenza di un conflitto è stata confermata. Per la configurazione di più aree di scrittura, questo timestamp definisce l'ordine delle modifiche per il backup continuo e il feed di modifiche:

  • Usato per trovare l'ora di inizio per le richieste del feed di modifiche
  • Usato come ordinamento per nella risposta del feed di modifiche.
  • Usato per ordinare le scritture per il backup continuo
  • Il backup del log acquisisce solo scritture confermate o in conflitto e quindi il risultato del ripristino di un backup continuo restituisce solo scritture confermate.
Esposto in risposta alle richieste del feed di modifiche e solo quando "Nuovo modello wire" è abilitato dalla richiesta. Questa è l'impostazione predefinita per Tutte le versioni ed elimina la modalità Feed di modifiche.

Passaggi successivi

Successivamente, è possibile leggere gli articoli seguenti: