Aracılığıyla paylaş


Azure Cosmos DB'deki tutarlılık düzeyleri

ŞUNLAR IÇIN GEÇERLIDIR: NoSQL MongoDB Cassandra Gremlin Masa

Yüksek kullanılabilirlik, düşük gecikme süresi veya her ikisi için çoğaltmayı kullanan dağıtılmış veritabanlarının PACELC teoremi tarafından tanımlanan okuma tutarlılığı, kullanılabilirlik, gecikme süresi ve aktarım hızı arasında temel bir denge oluşturması gerekir. Güçlü tutarlılık modelinin doğrusallaşabilirliği, veri programlamanın altın standardıdır. Ancak verilerin büyük mesafelerde çoğaltılması ve işlenmesi nedeniyle daha yüksek yazma gecikme sürelerinden yüksek bir fiyat ekler. Güçlü tutarlılık, veriler her bölgede çoğaltılamadığı ve işlenemediği için (hatalar sırasında) kullanılabilirliği azaltabilir. Nihai tutarlılık daha yüksek kullanılabilirlik ve daha iyi performans sunar, ancak tüm bölgelerde veriler tutarlı olmayabileceği için uygulamaları programlamak daha zordur.

Günümüzde piyasada mevcut olan en ticari dağıtılmış NoSQL veritabanları yalnızca güçlü ve nihai tutarlılık sağlar. Azure Cosmos DB iyi tanımlanmış beş düzey sunar. En güçlüden en zayıfa düzeyler şunlardır:

Varsayılan tutarlılık düzeyi hakkında daha fazla bilgi için bkz . Varsayılan tutarlılık düzeyini yapılandırma veya varsayılan tutarlılık düzeyini geçersiz kılma.

Her düzey kullanılabilirlik ve performans dengelemeleri sağlar. Aşağıdaki görüntüde spektrum olarak farklı tutarlılık düzeyleri gösterilmektedir.

Güçlü ile başlayan ve daha yüksek kullanılabilirliğe ve aktarım hızına giden bir spektrum olarak tutarlılık diyagramı ve Nihai ile daha düşük gecikme süresi.

Tutarlılık düzeyleri ve Azure Cosmos DB API’leri

Azure Cosmos DB, popüler veritabanları için kablo protokolü uyumlu API'ler için yerel destek sağlar. Bunlar MongoDB, Apache Cassandra, Apache Gremlin ve Azure Tablo Depolama'dır. Gremlin veya Tablo için API'de, Azure Cosmos DB hesabında yapılandırılan varsayılan tutarlılık düzeyi kullanılır. Apache Cassandra ile Azure Cosmos DB arasındaki tutarlılık düzeyi eşlemesi hakkında ayrıntılı bilgi için bkz . Cassandra tutarlılık eşlemesi için API. MongoDB ile Azure Cosmos DB arasında tutarlılık düzeyi eşlemesi hakkında ayrıntılı bilgi için bkz . MongoDB tutarlılık eşlemesi için API.

Okuma tutarlılığının kapsamı

Okuma tutarlılığı, mantıksal bölüm kapsamındaki tek bir okuma işlemi için geçerlidir. Uzak istemci, saklı yordam veya tetikleyici okuma işlemini verebilir.

Varsayılan tutarlılık düzeyini yapılandırma

Azure Cosmos DB hesabınızda istediğiniz zaman varsayılan tutarlılık düzeyini yapılandırabilirsiniz. Hesabınızda yapılandırılan varsayılan tutarlılık düzeyi, bu hesabın altındaki tüm Azure Cosmos DB veritabanları ve kapsayıcıları için geçerlidir. Bir kapsayıcı veya veritabanında verilen tüm okumalar ve sorgular varsayılan olarak belirtilen tutarlılık düzeyini kullanır. Hesap düzeyi tutarlılığınızı değiştirirken, uygulamalarınızı yeniden dağıtıp bu değişiklikleri uygulamak için gerekli kod değişikliklerini yaptığınızdan emin olun. Daha fazla bilgi edinmek için bkz . Varsayılan tutarlılık düzeyini yapılandırma. Ayrıca belirli bir isteğin varsayılan tutarlılık düzeyini geçersiz kılabilirsiniz. Daha fazla bilgi edinmek için Varsayılan tutarlılık düzeyi makalesini geçersiz kılma konusuna bakın.

İpucu

Varsayılan tutarlılık düzeyini geçersiz kılma yalnızca SDK istemcisi içindeki okuma işlemleri için geçerlidir. Varsayılan olarak güçlü tutarlılık için yapılandırılmış bir hesap, hesaptaki her bölgeye zaman uyumlu olarak veri yazmaya ve çoğaltmaya devam eder. SDK istemci örneği veya isteği bunu Oturum veya daha zayıf tutarlılık ile geçersiz kıldığında, okuma işlemleri tek bir çoğaltma kullanılarak gerçekleştirilir. Daha fazla bilgi için bkz . Tutarlılık düzeyleri ve aktarım hızı.

Önemli

Varsayılan tutarlılık düzeyini değiştirdikten sonra herhangi bir SDK örneğinin yeniden oluşturulması gerekir. Bu, uygulamayı yeniden başlatarak yapılabilir. Bu, SDK'nın yeni varsayılan tutarlılık düzeyini kullanmasını sağlar.

Tutarlılık düzeyleriyle ilişkili garantiler

Azure Cosmos DB, okuma isteklerinin yüzde 100'ünün seçilen tutarlılık düzeyi için tutarlılık garantisini karşılamasını garanti eder. TLA+ belirtim dili kullanılarak Azure Cosmos DB'deki beş tutarlılık düzeyinin tam tanımları azure-cosmos-tla GitHub deposunda sağlanır.

Beş tutarlılık düzeyinin semantiği aşağıdaki bölümlerde açıklanmıştır.

Güçlü tutarlılık

Güçlü tutarlılık, doğrusallaştırma garantisi sunar. Doğrusal hale getirilebilirlik, isteklerin eşzamanlı olarak sunulmasını ifade eder. Okumaların bir öğenin en son işlenen sürümünü döndürmesi garanti edilir. İstemci hiçbir zaman kaydedilmemiş veya kısmi yazma görmez. Kullanıcıların her zaman en son işlenen yazma işlemini okuması garanti edilir.

Aşağıdaki grafikte, müzik notalarıyla güçlü tutarlılık gösterilmektedir. Veriler "Batı ABD 2" bölgesine yazıldıktan sonra, diğer bölgelerdeki verileri okuduğunuzda en son değeri alırsınız:

Her zaman eşitlenen müzik notalarını kullanarak güçlü tutarlılık düzeyinin animasyonu.

Dinamik çekirdek

Normal koşullarda, güçlü tutarlılığı olan bir hesap için, tüm bölgeler kaydın bu hesaba çoğaltıldığını kabul ettiğinde yazma işlemi kabul edilir. Ancak, 3 bölge veya daha fazla (yazma bölgesi dahil) olan hesaplar için sistem, bazı bölgelerin yanıt vermediği veya yavaş yanıt verdiği durumlarda bölgelerin çekirdeğini genel bir çoğunluğa "düşürebilir". Bu noktada, güçlü tutarlılığı korumak için yanıt vermeyen bölgeler çekirdek bölge kümesinden çıkarılır. Bunlar yalnızca diğer bölgelerle tutarlı oldukları ve beklendiği gibi performans gösterdikleri zaman geri eklenir. Çekirdek kümesinden çıkarılabilecek bölge sayısı, toplam bölge sayısına bağlıdır. Örneğin, 3 veya 4 bölge hesabında çoğunluğu sırasıyla 2 veya 3 bölgedir, bu nedenle her iki durumda da yalnızca 1 bölge kaldırılabilir. 5 bölge hesabı için çoğunluk 3'dür, bu nedenle en fazla 2 yanıt vermeyen bölge kaldırılabilir. Bu özellik "dinamik çekirdek" olarak bilinir ve 3 veya daha fazla bölgeye sahip hesaplar için hem yazma kullanılabilirliğini hem de çoğaltma gecikmesini iyileştirebilir.

Not

Bölgeler, dinamik çekirdeğin bir parçası olarak çekirdek kümesinden kaldırıldığında, bu bölgeler çekirdek içine yeniden eklenene kadar artık okuma hizmeti sağlayamaz.

Sınırlanmış eskime durumu tutarlılığı

İki veya daha fazla bölgeye sahip tek bölgeli yazma hesapları için veriler birincil bölgeden tüm ikincil (salt okunur) bölgelere çoğaltılır. İki veya daha fazla bölgeye sahip çok bölgeli yazma hesapları için veriler, başlangıçta yazıldığı bölgeden diğer tüm yazılabilir bölgelere çoğaltılır. Her iki senaryoda da yaygın olmasa da bazen bir bölgeden diğerine çoğaltma gecikmesi olabilir.

Sınırlanmış eskime tutarlılığında, herhangi bir iki bölge arasındaki veri gecikmesi her zaman belirtilen miktardan azdır. Miktar, bir öğenin "K" sürümleri ("güncelleştirmeler") veya "T" zaman aralıkları (hangisi önce ulaşılırsa) olabilir. Başka bir deyişle, sınırlanmış eskime durumunu seçtiğinizde, herhangi bir bölgedeki verilerin en fazla "eskime durumu" iki şekilde yapılandırılabilir:

  • Öğenin sürüm sayısı (K)
  • Zaman aralığı (T) okumaları yazmaların gerisinde kalabilir

Sınırlanmış Eskime, öncelikli olarak iki veya daha fazla bölgeye sahip tek bölgeli yazma hesapları için faydalıdır. Bir bölgedeki veri gecikmesi (fiziksel bölüm başına belirlenir) yapılandırılan eskime değerini aşarsa, eskime durumu yapılandırılan üst sınıra geri dönene kadar bu bölüm için yazma işlemleri kısıtlanır.

Tek bölgeli bir hesap için Sınırlanmış Eskime Durumu, Oturum ve Nihai Tutarlılık ile aynı yazma tutarlılığı garantilerini sağlar. Sınırlanmış Eskime durumuyla, veriler tek bir bölgedeki yerel bir çoğunluğa (dört çoğaltma kümesindeki üç çoğaltma) çoğaltılır.

Önemli

Sınırlanmış Eskime tutarlılığı ile eskime denetimi yalnızca bölgeler arasında yapılır ve bir bölge içinde yapılmaz. Belirli bir bölge içinde veriler tutarlılık düzeyi ne olursa olsun her zaman yerel bir çoğunluğa (dört çoğaltma kümesindeki üç çoğaltma) çoğaltılır.

Sınırlanmış Eskime kullanılırken okuma, o bölgedeki kullanılabilir iki çoğaltmadan okuyarak bu bölgede kullanılabilir olan en son verileri döndürür. Bir bölgedeki yazma işlemleri her zaman yerel bir çoğunluğa çoğaltılır (dört çoğaltmadan üçü), iki çoğaltmaya danışmak, bu bölgede kullanılabilen en güncel verileri döndürür.

Önemli

Sınırlanmış Eskime tutarlılığı ile, birincil olmayan bir bölgede verilen okumalar, verilerin genel olarak en son sürümünü döndürmeyebilir, ancak bu bölgedeki verilerin en son sürümünü döndüreceği garanti edilir ve bu da genel olarak en yüksek eskime sınırı içinde olur.

Sınırlanmış Eskime durumu, bölgeler arasında neredeyse güçlü tutarlılığın istendiği iki veya daha fazla bölgeye sahip tek bölgeli yazma hesapları kullanan genel olarak dağıtılmış uygulamalar için en iyi şekilde çalışır. İki veya daha fazla bölgeye sahip çok bölgeli yazma hesapları için, uygulama sunucuları okumaları ve yazmaları uygulama sunucularının barındırıldığı bölgeye yönlendirmelidir. Çoklu yazma hesabındaki Sınırlanmış Eskime durumu bir anti-desendir. Bu düzey, bölgeler arasındaki çoğaltma gecikmesine bağımlılık gerektirir ve bu, verilerin yazıldığı bölgeden okunup okunmaması önemli değildir.

Aşağıdaki grafikte, müzik notalarıyla sınırlanmış eskime tutarlılığı gösterilmektedir. Veriler "Batı ABD 2" bölgesine yazıldıktan sonra , "Doğu ABD 2" ve "Doğu Avustralya" bölgeleri, yapılandırılan en uzun gecikme süresine veya maksimum işlemlere göre yazılan değeri okur:

Önceden tanımlanmış bir gecikme süresi veya sürümler içinde eşitlenen müzik notlarını kullanarak sınırlanmış eskime tutarlılığı düzeyinin animasyonu.

Oturum tutarlılığı

Oturum tutarlılığında, tek bir istemci oturumunda, okumaların yazmalarınızı okuma ve yazma-takip-okuma garantilerini yerine getirmek için garanti edilir. Bu garanti, tek bir "yazıcı" oturumu olduğunu veya birden çok yazar için oturum belirtecini paylaştığını varsayar.

Tüm tutarlılık düzeyleri Güçlü'den daha zayıf olduğu gibi, yazma işlemleri de yerel bölgedeki en az üç çoğaltmaya (dört çoğaltma kümesinde) çoğaltılır ve diğer tüm bölgelere zaman uyumsuz çoğaltma yapılır.

Her yazma işleminden sonra istemci sunucudan güncelleştirilmiş bir Oturum Belirteci alır. İstemci belirteçleri önbelleğe alır ve belirtilen bölgedeki okuma işlemleri için sunucuya gönderir. Okuma işleminin verildiği çoğaltma belirtilen belirtecin (veya daha yeni bir belirtecin) verilerini içeriyorsa, istenen veriler döndürülür. Çoğaltma bu oturum için veri içermiyorsa, istemci isteği bölgedeki başka bir çoğaltmaya karşı yeniden denenir. Gerekirse istemci, belirtilen oturum belirtecinin verileri alınana kadar okuma işlemini ek kullanılabilir bölgelerde yeniden denenir.

Önemli

Oturum Tutarlılığı'nda istemcinin oturum belirteci kullanımı, eski bir oturuma karşılık gelen verilerin hiçbir zaman okunmamasını garanti eder. Ancak, istemci eski bir oturum belirteci kullanıyorsa ve veritabanında daha yeni güncelleştirmeler yapıldıysa, eski bir oturum belirteci kullanılmasına rağmen verilerin daha yeni sürümü döndürülür. Oturum Belirteci en düşük sürüm engeli olarak kullanılır, ancak veritabanından alınacak verilerin belirli (muhtemelen geçmiş) bir sürümü olarak kullanılmaz.

Azure Cosmos DB'deki Oturum Belirteçleri bölüme bağlıdır, yani yalnızca bir bölümle ilişkilendirilir. Yazmalarınızı okuyabildiğinizden emin olmak için, ilgili öğeler için en son oluşturulan oturum belirtecini kullanın.

İstemci fiziksel bir bölüme yazma işlemi başlatmadıysa, istemci önbelleğinde bir oturum belirteci içermez ve bu fiziksel bölüme okur, Nihai Tutarlılık ile okunmuş gibi davranır. Benzer şekilde, istemci yeniden oluşturulursa, oturum belirteçleri önbelleği de yeniden oluşturulur. Burada da okuma işlemleri, sonraki yazma işlemleri istemcinin oturum belirteçleri önbelleğini yeniden derleyene kadar Nihai Tutarlılık ile aynı davranışı izler.

Önemli

Oturum Belirteçleri bir istemci örneğinden diğerine geçiriliyorsa, belirtecin içeriği değiştirilmemelidir.

Oturum tutarlılığı, hem tek bölge hem de genel olarak dağıtılmış uygulamalar için en yaygın kullanılan tutarlılık düzeyidir. Son tutarlılık ile karşılaştırılabilir yazma gecikme süreleri, kullanılabilirlik ve okuma aktarım hızı sağlar. Oturum tutarlılığı, bir kullanıcı bağlamında çalışmak üzere yazılmış uygulamaların gereksinimlerine uygun tutarlılık garantileri de sağlar. Aşağıdaki grafikte, müzik notlarıyla oturum tutarlılığı gösterilmektedir. "Batı ABD 2 yazarı" ve "Doğu ABD 2 okuyucusu" aynı oturumu (A Oturumu) kullandığından, ikisi de aynı verileri aynı anda okur. "Doğu Avustralya" bölgesi "Oturum B"yi kullanırken, verileri daha sonra ancak yazma işlemleriyle aynı sırada alır.

Tek bir istemci oturumunda eşitlenen müzik notlarını kullanarak oturum tutarlılığı düzeyinin animasyonu.

Tutarlı ön ek tutarlılığı

Tüm tutarlılık düzeyleri Güçlü'den daha zayıf olduğu gibi yazma işlemleri de yerel bölgedeki en az üç çoğaltmaya (dört çoğaltmalı bir kümede) çoğaltılır ve diğer tüm bölgelere zaman uyumsuz çoğaltma yapılır.

Tutarlı ön ekte, tek belge yazma işlemi olarak yapılan güncelleştirmeler nihai tutarlılığı görür.

Bir işlem içinde toplu iş olarak yapılan güncelleştirmeler, işlendikleri işlemle tutarlı olarak döndürülür. Birden çok belgenin işlemi içindeki yazma işlemleri her zaman birlikte görünür.

belge Doc1'de işlem yoluyla (tümü veya hiç işlemi) ve ardından T1 ve T2 işlemleri içinde Belge2 belgesinde iki yazma işleminin gerçekleştirildiğini varsayalım. İstemci herhangi bir çoğaltmada okuma işlemi yaparken, kullanıcı "Doc1 v1 ve Doc2 v1" veya "Doc1 v2 ve Doc2 v2" ya da çoğaltma gecikiyorsa hiçbir belgeyi görmez, ancak aynı okuma veya sorgu işlemi için asla "Doc1 v1 ve Doc2 v2" veya "Doc1 v2 ve Doc2 v1" ifadesini görmez.

Aşağıdaki grafikte, müzik notlarıyla tutarlılık ön eki tutarlılığı gösterilmektedir. Tüm bölgelerde, okuma işlemleri hiçbir zaman işlemsel bir yazma toplu işlemi için sıra dışı yazmaları görmez:

Sonunda eşitlenen ancak sıra dışı olmayan bir işlem olarak eşitlenen müzik notlarını kullanarak tutarlı ön ek düzeyinin animasyonu.

Nihai tutarlılık

Tüm tutarlılık düzeyleri Güçlü'den daha zayıf olduğu gibi, yazma işlemleri de yerel bölgedeki en az üç çoğaltmaya (dört çoğaltma kümesinde) çoğaltılır ve diğer tüm bölgelere zaman uyumsuz çoğaltma yapılır.

Nihai tutarlılık bölümünde istemci, belirtilen bölgedeki dört çoğaltmadan herhangi birine yönelik okuma isteklerinde bulunur. Bu çoğaltma gecikmeli olabilir ve eski veri döndürebilir veya veri döndürmeyebilir.

İstemci geçmişte okuduğu değerlerden daha eski değerleri okuyabileceğinden nihai tutarlılık en zayıf tutarlılık biçimidir. Uygulamanın sıralama garantileri gerektirmediği durumlarda son tutarlılık ideal bir özelliktir. Örnek olarak Retweets, Beğeniler veya iş parçacığı olmayan açıklamaların sayısı verilebilir. Aşağıdaki grafikte, müzik notalarıyla nihai tutarlılık gösterilmektedir.

Belirli bir sınır içinde değil, sonunda eşitlenen müzik notalarını kullanarak nihai tutarlılık düzeyinin animasyonu.

Uygulamada tutarlılık garantileri

Uygulamada genellikle daha güçlü tutarlılık garantileri alabilirsiniz. Okuma işlemi için tutarlılık garantileri, istediğiniz veritabanı durumunun güncelliğine ve sıralamasına karşılık gelir. Okuma tutarlılığı, yazma/güncelleştirme işlemlerinin sıralanması ve yayılmasına bağlıdır.

Veritabanında yazma işlemi yoksa, nihai, oturum veya tutarlı ön ek tutarlılığı düzeylerine sahip bir okuma işlemi, güçlü tutarlılık düzeyine sahip bir okuma işlemiyle aynı sonuçları verir.

Hesabınız güçlü tutarlılık dışında bir tutarlılık düzeyiyle yapılandırılmışsa, istemcilerinizin iş yükleriniz için güçlü ve tutarlı okumalar alma olasılığını öğrenebilirsiniz. Olasılıksal Sınırlanmış Eskime (PBS) ölçümüne bakarak bu olasılığı anlayabilirsiniz. Bu ölçüm Azure portalında kullanıma sunulur. Daha fazla bilgi edinmek için bkz . Olasılıksal Sınırlanmış Eskime (PBS) ölçümünü izleme.

Olasılıksal olarak sınırlanmış eskime durumu nihai tutarlılığınızın ne kadar nihai olduğunu gösterir. Bu ölçüm, Azure Cosmos DB hesabınızda yapılandırdığınız tutarlılık düzeyinden ne sıklıkta daha güçlü bir tutarlılık elde ettiğinize ilişkin bir içgörü sağlar. Başka bir deyişle, yazma ve okuma bölgelerinin birleşimi için tutarlı okumalar alma olasılığını (milisaniye cinsinden ölçülür) görebilirsiniz.

Tutarlılık düzeyleri ve gecikme süresi

Tüm tutarlılık düzeyleri için okuma gecikme süresinin her zaman 99. yüzdebirlik dilimde 10 milisaniyeden az olacağı garanti edilir. 50. yüzdebirlik dilimde ortalama okuma gecikmesi genellikle 4 milisaniye veya daha azdır.

Tüm tutarlılık düzeyleri için yazma gecikme süresinin her zaman 99. yüzdebirlik dilimde 10 milisaniyeden az olacağı garanti edilir. 50. yüzdebirlik dilimde ortalama yazma gecikmesi genellikle 5 milisaniye veya daha azdır. Çeşitli bölgelere yayılan ve güçlü tutarlılık ile yapılandırılan Azure Cosmos DB hesapları bu garanti için özel durum oluşturur.

Yazma gecikme süresi ve Güçlü tutarlılık

Birden fazla bölgeyle güçlü tutarlılık ile yapılandırılmış Azure Cosmos DB hesaplarında yazma gecikme süresi, en uzak iki bölgeden herhangi biri arasında iki kez gidiş dönüş süresine (RTT) eşittir ve 99. yüzdebirlik dilimde 10 milisaniyedir. Güçlü tutarlılık yalnızca bir hesaptaki tüm bölgelere işlendikten sonra bir işlemi tamamladıktan sonra bölgeler arasındaki yüksek ağ RTT'leri Azure Cosmos DB istekleri için daha yüksek gecikme süresine çevrilir.

RtT gecikme süresi, ışık hızı uzaklığı ve Azure ağ topolojisinin bir işlevidir. Azure ağı iki Azure bölgesi arasında RTT için herhangi bir gecikme süresi SLA'sı sağlamaz, ancak Azure ağ gidiş dönüş gecikmesi istatistikleri yayımlar. Azure Cosmos DB hesabınız için çoğaltma gecikme süreleri Azure portalında görüntülenir. Ölçümler bölümüne gidip Tutarlılık seçeneğini belirleyerek Azure portalını kullanabilirsiniz. Azure portalını kullanarak, Azure Cosmos DB hesabınızla ilişkili çeşitli bölgeler arasındaki çoğaltma gecikme sürelerini izleyebilirsiniz.

Önemli

5000 milden (8000 kilometre) fazla bölge içeren hesaplar için güçlü tutarlılık, yüksek yazma gecikme süresi nedeniyle varsayılan olarak engellenir. Bu özelliği etkinleştirmek için lütfen desteğe başvurun.

Tutarlılık düzeyleri ve aktarım hızı

  • Güçlü ve sınırlanmış eskime durumu için okumalar, tutarlılık garantileri sağlamak üzere dört çoğaltma kümesindeki (azınlık çekirdeği) iki çoğaltmaya karşı yapılır. Oturum, tutarlı ön ek ve son olarak tek çoğaltma okumaları yapın. Sonuç, aynı sayıda istek birimi için güçlü ve sınırlanmış eskime için okuma aktarım hızının diğer tutarlılık düzeylerinin yarısı olmasıdır.

  • Ekleme, değiştirme, yukarı ekleme ve silme gibi belirli bir yazma işlemi türü için, istek birimleri için yazma aktarım hızı tüm tutarlılık düzeyleri için aynıdır. Güçlü tutarlılık için değişikliklerin diğer tüm tutarlılık düzeyleri için yerel çoğunluğun (dört çoğaltma kümesindeki üç çoğaltma) kullanıldığı her bölgede (genel çoğunluk) işlenmesi gerekir.

Tutarlılık Düzeyi Çekirdek Okumaları Çekirdek Yazmaları
Kuvvetli Yerel Azınlık Genel Çoğunluk
Sınırlanmış Eskime Durumu Yerel Azınlık Yerel Çoğunluk
Oturum Tek Çoğaltma (oturum belirtecini kullanarak) Yerel Çoğunluk
Tutarlı Ön Ek Tek Çoğaltma Yerel Çoğunluk
Nihai Tek Çoğaltma Yerel Çoğunluk

Not

Yerel Azınlık okumalarının RU maliyeti, Güçlü ve Sınırlanmış Eskime tutarlılığı düzeyleri için tutarlılık garantileri sağlamak üzere iki çoğaltmadan okuma yapıldığından daha zayıf tutarlılık düzeylerinin iki katıdır.

Tutarlılık düzeyleri ve veri dayanıklılığı

Genel olarak dağıtılmış bir veritabanı ortamında, bölge genelinde kesinti olması halinde tutarlılık düzeyi ile veri dayanıklılığı arasında doğrudan bir ilişki vardır. İş sürekliliği planınızı geliştirirken, kesintiye neden olan bir olaydan sonra kurtarma sırasında uygulamanın kaybetmeye dayanabileceği en son veri güncelleştirmeleri süresini anlamanız gerekir. Kaybetmeyi göze alabileceğiniz güncelleştirmelerin zaman aralığı kurtarma noktası hedefi (RPO) olarak bilinir.

Bu tablo, bölge genelinde kesinti olması halinde tutarlılık modeli ile veri dayanıklılığı arasındaki ilişkiyi tanımlar.

Bölgeler Çoğaltma modu Tutarlılık düzeyi RPO
1 Tek veya Birden çok yazma bölgesi Herhangi bir Tutarlılık Düzeyi < 240 Dakika
>1 Tek yazma bölgesi Oturum, Tutarlı Ön Ek, Son < 15 dakika
>1 Tek yazma bölgesi Sınırlanmış Eskime Durumu K & T
>1 Tek yazma bölgesi Güçlü 0
>1 Birden çok yazma bölgesi Oturum, Tutarlı Ön Ek, Son < 15 dakika
>1 Birden çok yazma bölgesi Sınırlanmış Eskime Durumu K & T

K = Bir öğenin "K" sürümlerinin (yani güncelleştirmelerin) sayısı.

T = Son güncelleştirmeden bu yana "T" zaman aralığı.

Tek bir bölge hesabı için en düşük K ve T değeri 10 yazma işlemi veya 5 saniyedir. Çok bölgeli hesaplar için en düşük K ve T değeri 100.000 yazma işlemi veya 300 saniyedir. Bu değer Sınırlanmış Eskime Durumu kullanılırken veriler için en düşük RPO'yu tanımlar.

Güçlü tutarlılık ve birden çok yazma bölgesi

Birden çok yazma bölgesiyle yapılandırılan Azure Cosmos DB hesapları, dağıtılmış bir sistemin sıfır RPO ve sıfır RTO'yu sağlaması mümkün olmadığından güçlü tutarlılık için yapılandırılamaz. Ayrıca, herhangi bir bölgeye yazma işleminin hesaptaki yapılandırılmış tüm bölgelere çoğaltılması ve işlenmesi gerektiğinden, birden çok yazma bölgesiyle güçlü tutarlılık kullanmanın yazma gecikmesi avantajları yoktur. Bu senaryo, tek bir yazma bölgesi hesabıyla aynı yazma gecikmesine neden olur.

Ek kaynaklar

Tutarlılık kavramları hakkında daha fazla bilgi edinmek için aşağıdaki makaleleri okuyun: