Meer informatie over schrijfbewerkingen in meerdere regio's in Azure Cosmos DB
VAN TOEPASSING OP: NoSQL MongoDB Cassandra Gremlin Tafel
De beste manier om bijna nul downtime te bereiken in een gedeeltelijk of totaal storingsscenario waarbij consistentie van leesbewerkingen niet hoeft te worden gegarandeerd, is om uw account te configureren voor schrijfbewerkingen in meerdere regio's. In dit artikel worden de belangrijkste concepten besproken waarmee u rekening moet houden bij het configureren van een schrijfaccount voor meerdere regio's.
Hub-regio
In een databaseaccount voor meerdere regio's met twee of meer regio's wordt de eerste regio waarin uw account is gemaakt de hubregio genoemd. Alle andere regio's die vervolgens aan het account worden toegevoegd, worden satellietregio's genoemd. Als de hubregio wordt verwijderd uit het account, wordt de volgende regio, in de volgorde waarin ze zijn toegevoegd, automatisch gekozen als de hubregio.
Schrijfbewerkingen die in satellietregio's binnenkomen, zijn quorum vastgelegd in de lokale regio en vervolgens later verzonden naar de Hub-regio voor conflictoplossing, asynchroon. Zodra een schrijfbewerking naar de hubregio gaat en het conflict wordt opgelost, wordt het een 'bevestigde' schrijfbewerking. Tot die tijd wordt het een 'voorlopig' schrijven of een niet-bevestigd schrijfbewerking genoemd. Elke schrijfbewerking die vanuit de hubregio wordt geleverd, wordt onmiddellijk een bevestigde schrijfbewerking.
Informatie over tijdstempels
Een van de belangrijkste verschillen in een account met meerdere regio's is de aanwezigheid van twee servertijdstempelwaarden die aan elke entiteit zijn gekoppeld. De eerste is het servertijdperk waarop de entiteit in die regio is geschreven. Deze tijdstempel is beschikbaar in zowel schrijf- als schrijfaccounts voor meerdere regio's. De tweede tijdstempelwaarde van de server is gekoppeld aan het tijdstip waarop het ontbreken van een conflict is bevestigd, of het conflict is opgelost in de hubregio. Aan een bevestigd of conflict opgeloste schrijfbewerking is een tijdstempel voor conflictoplossing (crts
) toegewezen, terwijl er geen niet-bevestigde of voorlopig schrijfbewerkingen zijn.crts
Er zijn twee tijdstempels in Cosmos DB ingesteld door de server. Het belangrijkste verschil is of de regioconfiguratie van het account single-write of multi-write is.
Tijdstempel | Betekenis | Wanneer deze beschikbaar wordt gesteld |
---|---|---|
_ts |
De tijdsperiode van de server waarop de entiteit is geschreven. | Altijd beschikbaar gesteld door alle lees- en query-API's. |
crts |
Het tijdstip waarop het conflict met meerdere schrijfbewerkingen is opgelost of het ontbreken van een conflict is bevestigd. Voor de configuratie van meerdere schrijfregio's definieert deze tijdstempel de volgorde van wijzigingen voor wijzigingenfeed:
|
Weergegeven als reactie op wijzigingenfeedaanvragen en alleen wanneer 'Nieuw wire model' is ingeschakeld door de aanvraag. Dit is de standaardinstelling voor alle versies en verwijdert de modus Wijzigingenfeed. |
Volgende stappen
Vervolgens kunt u de volgende artikelen lezen: