ScholarGate
Asistan

CAP Teoremi ve Tutarlılık Modelleri

CAP teoremi, bir ağ bölümlemesiyle (network partition) karşı karşıya kalan dağıtılmış bir veri deposunun ya tutarlılıktan (consistency) ya da erişilebilirlikten (availability) feragat etmesi gerektiğini belirtmektedir; tutarlılık modelleri ise bir sistemin güncellemelerin görünürlüğü ve sıralaması hakkında tam olarak hangi garantileri sağladığını belirlemektedir.

PaperMind ile konu bulYakındaMakale ve konu bul
Tools & resources
Slaytları indir
Learn & explore
VideoYakında

Tanım

CAP teoremi, ağa bağlı paylaşımlı bir veri sisteminin tutarlılık, erişilebilirlik ve bölümleme toleransından en fazla ikisini aynı anda garanti edebileceğini ileri sürmektedir; bir tutarlılık modeli ise bir uygulamanın çoğaltmalar (replicas) genelindeki okuma ve yazma işlemlerinin sırası ve görünürlüğü hakkında ne gözlemleyebileceğini belirten bir sözleşmedir.

Kapsam

Bu konu, CAP teoremini ve onun formülasyonunu, gerçek ödünleşimin (trade-off) yalnızca ağ bölümlemeleri sırasında ortaya çıktığı pratik yorumunu ve bunun sonucunda ortaya çıkan PACELC iyileştirmesini kapsamaktadır. Güçlü (doğrusallaştırılabilir) tutarlılıktan nedensel tutarlılığa ve nihai tutarlılığa kadar uzanan tutarlılık modelleri yelpazesini ve ACID ile tezat oluşturan BASE stilini ele almaktadır. Bu modellerin çoğaltılmış veri depolarının tasarımına nasıl rehberlik ettiğini incelemektedir. Güçlü tutarlılığı uygulamak için kullanılan ve dağıtılmış veritabanları başlığı altında ele alınan konsensüs ve onay protokollerini kapsamamaktadır.

Temel sorular

  • CAP'te tutarlılık, erişilebilirlik ve bölümleme toleransı tam olarak ne anlama gelmektedir?
  • Tutarlılık ve erişilebilirlik arasındaki gerçek seçimin yalnızca bir bölümleme sırasında zorunlu hale gelmesinin nedeni nedir?
  • Güçlü, nedensel ve nihai tutarlılık, sağladıkları garantiler açısından nasıl farklılık göstermektedir?
  • Nihai tutarlılık neyi vaat etmektedir ve neyi vaat etmemektedir?
  • BASE felsefesi ACID ile nasıl tezat oluşturmaktadır?

Anahtar kavramlar

  • tutarlılık, erişilebilirlik, bölümleme toleransı
  • ağ bölümlemesi
  • doğrusallaştırılabilirlik / güçlü tutarlılık
  • nedensel tutarlılık
  • nihai tutarlılık
  • PACELC
  • BASE ve ACID
  • çatışma çözümü

Temel kuramlar

CAP teoremi
Gilbert ve Lynch tarafından formüle edilen CAP, ağ bölündüğünde, çoğaltılmış bir depolama sisteminin potansiyel olarak eski verileri döndürme (erişilebilirlik) ile tek bir tutarlı değeri korumak için hizmeti reddetme (tutarlılık) arasında seçim yapması gerektiğini göstermektedir; gerçek ağlarda bölümleme toleransı isteğe bağlı değildir.
Tutarlılık spektrumu
Tutarlılık modelleri, okumaların her zaman en son yazmayı gördüğü güçlü (doğrusallaştırılabilir) tutarlılıktan, neden-sonuç sırasını koruyan nedensel tutarlılığa ve yeni yazma işlemleri olmadığında çoğaltmaların zamanla yakınsadığı nihai tutarlılığa kadar uzanmaktadır.
BASE ve ACID
Yüksek düzeyde erişilebilir sistemler genellikle BASE stilini (temelde erişilebilir, yumuşak durum, nihai olarak tutarlı) benimsemektedir; bu, bölümlemeler altında ve ölçekte yanıt verebilir kalmak için güçlü ACID garantilerini bilerek gevşetmektedir.

Klinik önem

CAP ve tutarlılık modelleri, dağıtılmış veri sistemlerindeki merkezi tasarım seçimini çerçevelemektedir: bir depolama sisteminin ağ arızalandığında her zaman yanıt vermeyi (erişilebilirlik) mi yoksa her zaman doğru yanıt vermeyi (tutarlılık) mi önceliklendireceği; bu karar, her küresel olarak dağıtılmış uygulamanın davranışını ve garantilerini şekillendirmektedir.

Tarihçe

Eric Brewer, CAP ödünleşimini 2000 yılı civarında ortaya atmıştır; Gilbert ve Lynch bunu 2002'de resmi olarak kanıtlamıştır. Amazon'un Dynamo'su (2007) ve Vogels'in 2009 tarihli makalesi, nihai tutarlılığı pratikte yaygınlaştırmıştır. Brewer'ın 2012'deki retrospektifi, CAP'in mükemmel tutarlılık ve erişilebilirliği yalnızca bölümlemeler sırasında yasakladığını açıklığa kavuşturmuştur ve PACELC formülasyonu daha sonra bölümleme olmayan durumda gecikme-tutarlılık ödünleşimini eklemiştir.

Tartışmalar

Tutarlılık-erişilebilirlik ödünleşiminin ne kadar temel olduğu
Erken yorumlar, CAP'i tutarlılık ve erişilebilirlik arasında kalıcı bir seçim yapmaya zorlayan bir durum olarak ele almıştır; Brewer'ın retrospektifi de dahil olmak üzere sonraki analizler, ödünleşimin yalnızca bölümlemeler sırasında ortaya çıktığını ve sistemlerin aksi takdirde büyük ölçüde tutarlı ve erişilebilir olabileceğini savunarak, CAP'in tasarımı ne kadar katı bir şekilde kısıtladığını yeniden çerçevelemiştir.

Öne çıkan isimler

  • Eric Brewer
  • Seth Gilbert
  • Nancy Lynch
  • Werner Vogels

İlgili konular

Temel eserler

  • gilbert2002
  • brewer2012
  • vogels2009

Sıkça sorulan sorular

CAP, üç özellikten yalnızca ikisine sahip olabileceğim anlamına mı gelmektedir?
Popüler 'ikisini seç' ifadesi yanıltıcıdır. Dağıtılmış bir sistemde bölümleme toleransı aslında isteğe bağlı değildir, bu nedenle gerçek seçim tutarlılık ve erişilebilirlik arasındadır ve bu seçim yalnızca bir bölümleme gerçekten meydana gelirken yapılmak zorundadır. Ağ sağlıklı olduğunda, bir sistem hem tutarlılık hem de erişilebilirlik sağlayabilmektedir.
Nihai tutarlılık aslında neyi garanti etmektedir?
Bir veri öğesine yeni güncelleme yapılmazsa, tüm çoğaltmaların sonunda aynı değere yakınsayacağını garanti etmektedir. Ne zaman yakınsayacağını veya bir okumanın en son yazmayı yansıtacağını garanti etmemektedir, bu nedenle nihai tutarlılık kullanan uygulamaların geçici olarak eski veya çakışan okumalara tolerans göstermesi ve genellikle çatışma çözümünü kendilerinin halletmesi gerekmektedir.

Bu kavram için yöntemler

İlgili kavramlar