Hai un container Azure Cosmos DB SQL API partizionato per /customerId. Quando viene effettuato un ordine, il tuo servizio deve eseguire atomicamente: (1) la creazione del documento dell'ordine, (2) l'aggiornamento di openOrderCount nel profilo del cliente e (3) l'eliminazione del documento del carrello del cliente. Tutti e tre i documenti condividono lo stesso valore customerId. Vuoi che tutte le operazioni abbiano successo o falliscano insieme senza usare stored procedure lato server. Cosa dovresti fare?
Scegli una risposta
Tocca un'opzione per controllare la tua risposta.
Risposta corretta: Usa il TransactionalBatch dell'SDK di Azure Cosmos DB per eseguire operazioni di creazione, sostituzione ed eliminazione con lo stesso valore PartitionKey uguale a customerId..
Perché questa è la risposta
L'opzione corretta è usare TransactionalBatch dell'SDK di Azure Cosmos DB. Questo perché TransactionalBatch consente di raggruppare più operazioni (creazione, sostituzione, eliminazione) che condividono la stessa chiave di partizione (customerId in questo caso) in una singola transazione atomica. Tutte le operazioni all'interno del batch avranno successo o falliranno insieme, garantendo la coerenza dei dati. Le transazioni tra partizioni non sono supportate da Cosmos DB per le API SQL, quindi l'opzione di abilitare transazioni ACID tra partizioni è errata. L'uso del Change Feed Processor introduce una coerenza finale e non garantisce l'atomicità immediata richiesta. Eseguire richieste separate con ETag non garantisce l'atomicità, poiché un errore in una delle operazioni potrebbe lasciare il sistema in uno stato inconsistente prima che i tentativi abbiano successo.
Supera il tuo esame — senza l'infinita caccia alle risposte
Ottieni ogni domanda e spiegazione verificata per questo esame in un unico posto, e risparmia ore di preparazione. Oltre 1.000 certificazioni · Oltre 20 lingue · Inizia gratuitamente.
Supera il tuo esame più velocemente → Nessuna carta richiesta