ScholarGate
Asistan

Eşzamanlılık Kontrol Protokolleri

Eşzamanlılık kontrol protokolleri, eşzamanlı işlemlerin sıralanarak sonucun seri bir yürütmeye eşdeğer olmasını sağlayan kilitleme, zaman damgası sıralaması, iyimser doğrulama ve çoklu sürümleme gibi yöntemlerdir.

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

Tanım

Bir eşzamanlılık kontrol protokolü, eşzamanlı işlemlerin verilere erişimi nasıl edineceğini düzenleyen bir kurallar bütünüdür; bu sayede izin verilen her çizelge serileştirilebilir (veya seçilen daha zayıf bir izolasyon seviyesini karşılar) ve böylece işlemlerin tek tek çalışmaya zorlanmadan izolasyon korunur.

Kapsam

Bu konu, eşzamanlılık altında serileştirilebilirliği sağlayan protokolleri kapsamaktadır: iki fazlı kilitleme ve bunun katı varyantı, kilitlenme tespiti ve önlenmesi; zaman damgası sıralama protokolleri; okuma-doğrulama-yazma fazlarına sahip iyimser eşzamanlılık kontrolü; ve anlık görüntü izolasyonu (snapshot isolation) dahil olmak üzere çoklu sürüm eşzamanlılık kontrolü. Her bir protokolün doğru çizelgeleri nasıl garanti ettiğini ve engelleme, iptaller ve verim arasındaki ödünleşimleri ele almaktadır. Serileştirilebilirliğin tanımını ve eşzamanlılık kontrolünü tamamlayan kurtarma mekanizmalarını içermemektedir.

Temel sorular

  • İki fazlı kilitleme, serileştirilebilir çizelgeleri nasıl garanti etmektedir?
  • Kilitlenmeler nasıl tespit edilmekte, önlenmekte veya çözülmektedir?
  • Zaman damgası sıralaması ve iyimser protokoller, kilitlemeden nasıl farklılaşmaktadır?
  • Çoklu sürüm eşzamanlılık kontrolü, okuyucuların yazıcıları engellemesini nasıl önlemektedir?
  • Kötümser ve iyimser yöntemler arasındaki verim ödünleşimleri nelerdir?

Anahtar kavramlar

  • iki fazlı kilitleme
  • katı ve titiz iki fazlı kilitleme (2PL)
  • paylaşımlı ve özel kilitler
  • kilitlenme tespiti ve önlenmesi
  • zaman damgası sıralaması
  • iyimser eşzamanlılık kontrolü
  • çoklu sürüm eşzamanlılık kontrolü
  • anlık görüntü izolasyonu (snapshot isolation)

Temel kuramlar

İki Fazlı Kilitleme
Eğer her işlem, herhangi bir kilidi serbest bırakmadan önce tüm kilitlerini edinirse (büyüme fazını takiben bir küçülme fazı), ortaya çıkan tüm çizelgeler çakışma-serileştirilebilir olmaktadır; katı iki fazlı kilitleme, kurtarılabilirliği sağlamak için yazma kilitlerini taahhüt (commit) edilene kadar ek olarak tutmaktadır.
İyimser Eşzamanlılık Kontrolü
İşlemler kilitleme olmaksızın yürütülmekte ve taahhüt (commit) zamanında eşzamanlı işlemlere karşı doğrulanmaktadır; çakışan işlemler iptal edilmekte ve yeniden denenmektedir, bu da çekişmenin düşük olduğu durumlarda iyi performans göstermektedir.
Çoklu Sürüm Eşzamanlılık Kontrolü
Her veri öğesinin birden çok sürümünü tutarak, sistem okumaların yazmaları engellemeden tutarlı bir anlık görüntüye erişmesine olanak tanımaktadır; anlık görüntü izolasyonu (snapshot isolation), belirli serileştirilemez anormalliklere izin verebilse de, yaygın olarak kullanılan bir çoklu sürüm şemasıdır.

Klinik önem

Eşzamanlılık kontrol protokolleri, bir veritabanının yük altında nasıl davrandığını belirlemektedir: kilitleme sağlamdır ancak kilitlenmelere ve çekişmeye neden olabilmektedir; iyimser ve çoklu sürüm yöntemleri yüksek okuma eşzamanlılığına olanak tanımaktadır ve protokol seçimi, yüksek trafikli işlem sistemlerinin verimini ve gecikme süresini doğrudan şekillendirmektedir.

Tarihçe

İki fazlı kilitleme ve yüklem kilitleri (predicate locks), 1976'da System R'deki Eswaran ve meslektaşları tarafından resmileştirilmiştir; Kung ve Robinson, 1981'de iyimser eşzamanlılık kontrolünü tanıtmıştır; ve Bernstein, Hadzilacos ve Goodman'ın 1987 tarihli monografisi teoriyi birleştirmiştir. Çoklu sürüm yöntemleri ve anlık görüntü izolasyonu (snapshot isolation), okuma dostu davranışları nedeniyle daha sonra yaygın olarak kullanılan veritabanı sistemlerinde baskın hale gelmiştir.

Tartışmalar

Anlık Görüntü İzolasyonu (Snapshot Isolation) ve Serileştirilebilirlik
Anlık görüntü izolasyonu (snapshot isolation), okuyucuların tutarlı bir anlık görüntü görmesine izin vererek yüksek eşzamanlılık sağlamaktadır, ancak tam serileştirilebilirliğin yasakladığı yazma çarpıklığı (write skew) gibi anormalliklere izin vermektedir; uygulayıcılar, daha zayıf garantisinin ne zaman kabul edilebilir olduğunu ve serileştirilebilir varyantların ne zaman gerekli olduğunu tartışmaktadır.

Öne çıkan isimler

  • Jim Gray
  • Philip Bernstein
  • H. T. Kung

İlgili konular

Temel eserler

  • eswaran1976
  • kung1981
  • bernstein1987

Sıkça sorulan sorular

Kilitlenmeye ne sebep olmaktadır ve nasıl ele alınmaktadır?
Kilitlenme, iki veya daha fazla işlemin her birinin diğerinin ihtiyaç duyduğu bir kilidi tutması ve bu nedenle hiçbirinin ilerleyememesi durumunda meydana gelmektedir. Sistemler bunu ya tespit yoluyla (bir bekleme grafiği oluşturarak, bir döngü bularak ve bir kurban işlemi iptal ederek) ya da kilit edinimi sırasını belirleyen veya hangi işlemin bekleyeceğine veya iptal edileceğine karar vermek için zaman damgalarını kullanan önleme şemalarıyla ele almaktadır.
İyimser eşzamanlılık kontrolü ne zaman iyi bir seçimdir?
İyimser yöntemler, çakışmaların nadir olduğu durumlarda öne çıkmaktadır, çünkü işlemler kilitleme ek yükü olmadan çalışmakta ve yalnızca ara sıra doğrulama başarısız olmakta ve yeniden denenmektedir. Yüksek çekişme altında, iptaller ve yeniden denemeler üzerinde iş gücü israfına neden olmaktadırlar, bu nedenle yazma yoğun, çakışmaya eğilimli iş yükleri için genellikle kötümser kilitleme veya çoklu sürüm yöntemleri tercih edilmektedir.

Bu kavram için yöntemler

İlgili kavramlar