Azure Cosmos DB SQL API kapsayıcınız /customerId'ye göre bölümlenmiştir. Bir sipariş verildiğinde, hizmetinizin atomik olarak şunları yapması gerekir: (1) sipariş belgesini oluşturmak, (2) müşteri profilinin openOrderCount değerini güncellemek ve (3) müşterinin sepet belgesini silmek. Her üç belge de aynı customerId değerini paylaşır. Tüm işlemlerin sunucu tarafı saklı yordamlar kullanmadan birlikte başarılı olmasını veya başarısız olmasını istiyorsunuz. Ne yapmalısınız?
Bir cevap seçin
Cevabınızı kontrol etmek için bir seçeneğe dokunun.
Doğru cevap: customerId'ye eşit PartitionKey değeriyle oluşturma, değiştirme ve silme işlemlerini gerçekleştirmek için Azure Cosmos DB SDK'sının TransactionalBatch'ini kullanın..
Neden bu cevap
Doğru cevap, aynı mantıksal bölümde birden çok işlemi atomik olarak gruplandırmak için Azure Cosmos DB SDK'sının TransactionalBatch'ini kullanmaktır. Soruda belirtilen tüm belgeler aynı customerId değerini paylaştığından, bunlar aynı mantıksal bölümde yer alır. TransactionalBatch, bu bölümdeki tüm işlemlerin tek bir atomik birim olarak başarılı olmasını veya başarısız olmasını sağlar, bu da ACID özelliklerini karşılar. Çoklu bölüm işlemleri için hesap düzeyinde bir seçenek yoktur; Cosmos DB'de çoklu bölüm işlemleri doğası gereği atomik değildir. Change Feed Processor, işlemlerin atomikliğini sağlamaz, yalnızca değişiklikleri izler ve nihai tutarlılık için tasarlanmıştır. ETag'ler tarafından korunan ayrı istekler, atomikliği garanti etmez; bir işlem başarısız olursa, diğerleri zaten başarılı olmuş olabilir ve geri alma mekanizması karmaşıktır.
Sonsuz cevap arayışı olmadan sınavınızı geçin
Bu sınav için her doğrulanmış soruyu ve açıklamayı tek bir yerde edinin ve saatlerce süren hazırlıktan tasarruf edin. 1.000'den fazla sertifika · 20'den fazla dil · ücretsiz başlayın.
Sınavınızı daha hızlı geçin → Kart gerekmez