Birden çok yazma bölgesi kullanılırken çakışma türleri ve çözüm ilkeleri

ŞUNLAR IÇIN GEÇERLIDIR: Nosql MongoDB Cassandra Gremlin Tablo

Azure Cosmos DB hesabınız birden çok yazma bölgesiyle yapılandırılmışsa çakışmalar ve çakışma çözümleme ilkeleri geçerlidir.

Birden çok yazma bölgesiyle yapılandırılmış Azure Cosmos DB hesapları için, yazıcılar aynı öğeyi birden çok bölgede eşzamanlı olarak güncelleştirdiğinde güncelleştirme çakışmaları oluşabilir. Güncelleştirme çakışmaları aşağıdaki üç türde olabilir:

  • Ekleme çakışmaları: Bu çakışmalar, bir uygulama aynı anda iki veya daha fazla bölgede aynı benzersiz dizine sahip iki veya daha fazla öğe eklediğinde ortaya çıkabilir. Örneğin, bu çakışma bir ID özelliğiyle oluşabilir.

  • Değiştirme çakışmaları: Bu çakışmalar, bir uygulama aynı öğeyi iki veya daha fazla bölgede aynı anda güncelleştirdiğinde ortaya çıkabilir.

  • Silme çakışmaları: Bir uygulama aynı anda bir bölgedeki bir öğeyi silip başka bir bölgede güncelleştirdiğinde bu çakışmalar oluşabilir.

Çakışma çözümleme ilkeleri

Azure Cosmos DB, yazma çakışmalarını çözmek için esnek bir ilke temelli mekanizma sunar. Azure Cosmos DB kapsayıcısı üzerindeki iki çakışma çözümleme ilkesi arasından seçim yapabilirsiniz:

  • Son Yazma Kazanma (LWW):Bu çözümleme ilkesi varsayılan olarak sistem tanımlı bir zaman damgası özelliği kullanır. Zaman eşitleme saat protokolüne dayanır. NoSQL için API kullanıyorsanız, çakışma çözümlemesi için kullanılacak başka bir özel sayısal özelliği (örneğin, kendi zaman damgasınız) belirtebilirsiniz. Özel bir sayısal özellik, çakışma çözümleme yolu olarak da adlandırılır.

    Ekleme veya değiştirme işlemlerinde iki veya daha fazla öğe çakışırsa, çakışma çözümleme yolu için en yüksek değere sahip öğe kazanan olur. Sistem, birden çok öğenin çakışma çözümleme yolu için aynı sayısal değere sahip olup olmadığını belirler. Tüm bölgeler tek bir kazanana yakınsanacak ve taahhüt edilen öğenin aynı sürümüyle sonuçlanacaktır. Silme çakışmaları söz konusu olduğunda, silinen sürüm her zaman ekleme veya değiştirme çakışmaları üzerinde kazanır. Çakışma çözümleme yolunun değeri ne olursa olsun bu sonuç ortaya çıkar.

    Not

    Son Yazma Wins varsayılan çakışma çözümleme ilkesidir ve şu API'ler için zaman damgası _ts kullanır: SQL, MongoDB, Cassandra, Gremlin ve Tablo. Özel sayısal özellik yalnızca NoSQL api'sinde kullanılabilir.

    Daha fazla bilgi edinmek için LWW çakışma çözümleme ilkelerini kullanan örneklere bakın.

  • Özel: Bu çözüm ilkesi, çakışmaların mutabakatı için uygulama tanımlı semantikler için tasarlanmıştır. Bu ilkeyi Azure Cosmos DB kapsayıcınızda ayarladığınızda, bir birleştirme saklı yordamı da kaydetmeniz gerekir. Bu yordam, sunucudaki bir veritabanı işlemi altında çakışmalar algılandığında otomatik olarak çağrılır. Sistem, taahhüt protokolünün bir parçası olarak birleştirme yordamının yürütülmesi için tam olarak bir kez garanti sağlar.

    Kapsayıcınızı özel çözümleme seçeneğiyle yapılandırırsanız ve kapsayıcıya bir birleştirme yordamı kaydedemezseniz veya birleştirme yordamı çalışma zamanında bir özel durum oluşturursa, çakışmalar akışına yazılır. Ardından uygulamanızın çakışma akışındaki çakışmaları el ile çözmesi gerekir. Daha fazla bilgi edinmek için özel çözümleme ilkesini kullanma ve çakışmalar akışını kullanma örneklerine bakın.

    Not

    Özel çakışma çözme ilkesi yalnızca NoSQL hesapları için API için kullanılabilir ve yalnızca oluşturma zamanında ayarlanabilir. Mevcut bir kapsayıcıda özel çözüm ilkesi ayarlamak mümkün değildir.

Sonraki adımlar

Çakışma çözümleme ilkelerini yapılandırmayı öğrenin: