DBMS Eş Zamanlılık Kontrolü: Zaman Damgası & Kilit Tabanlı Protokoller

İçindekiler:

Anonim

Eş Zamanlılık Kontrolü nedir?

Veritabanı Yönetim Sisteminde Eşzamanlılık Kontrolü , birbiriyle çakışmadan eşzamanlı işlemleri yönetme prosedürüdür. İlgili Veritabanının veri bütünlüğünü ihlal etmeden doğru sonuçlar üretmek için Veritabanı işlemlerinin eşzamanlı ve doğru bir şekilde yapılmasını sağlar.

Tüm kullanıcılar sadece verileri okuyorsa eşzamanlı erişim oldukça kolaydır. Birbirlerine müdahale etmelerinin hiçbir yolu yok. Herhangi bir pratik Veritabanı için, READ ve WRITE işlemlerinin bir karışımına sahip olsa da, eşzamanlılık bir zorluktur.

DBMS Eş Zamanlılık Kontrolü, çoğunlukla çok kullanıcılı bir sistemde ortaya çıkan bu tür çatışmaları gidermek için kullanılır. Bu nedenle Eşzamanlılık Kontrolü, aynı verilere erişim gerektiren iki veya daha fazla veritabanı işleminin aynı anda yürütüldüğü bir Veritabanı Yönetim Sisteminin düzgün çalışması için en önemli unsurdur.

Bu eğitimde öğreneceksiniz

  • Eş Zamanlılık Kontrolü nedir?
  • Eşzamanlılığın olası sorunları
  • Neden Eşzamanlılık yöntemini kullanmalı?
  • Eş Zamanlılık Kontrol Protokolleri
  • Kilit tabanlı Protokoller
  • İki Fazlı Kilitleme (2PL) Protokolü
  • Zaman damgası tabanlı Protokoller
  • Doğrulamaya Dayalı Protokol
  • İyi Eş Zamanlılık Protokolünün Özellikleri

Eşzamanlılığın olası sorunları

DBMS Eş Zamanlılık Kontrolü yöntemini kullanırken karşılaşmanız muhtemel bazı sorunlar şunlardır:

  • Kayıp Güncellemeler , birden çok işlem aynı satırı seçtiğinde ve seçilen değere göre satırı güncellediğinde gerçekleşir
  • Taahhüt edilmeyen bağımlılık sorunları, ikinci işlem başka bir işlem tarafından güncellenen bir satırı seçtiğinde ortaya çıkar ( kirli okuma )
  • Tekrarlanamayan Okuma , ikinci bir işlem aynı satıra birkaç kez erişmeye çalıştığında ve her seferinde farklı verileri okuduğunda gerçekleşir.
  • Yanlış Özet sorunu , bir işlem, yinelenen bir veri öğesinin tüm örneklerinin değerinin özetini aldığında ve ikinci işlem, bu belirli veri öğesinin birkaç örneğini güncellediğinde ortaya çıkar. Bu durumda, ortaya çıkan özet doğru bir sonucu yansıtmaz.

Neden Eşzamanlılık yöntemini kullanmalı?

Eşzamanlılık kontrol yöntemini kullanmanın nedenleri DBMS'dir:

  • Çakışan işlemler arasında karşılıklı dışlama yoluyla İzolasyon uygulamak
  • Okuma-yazma ve yazma-yazma çakışması sorunlarını çözmek için
  • Yürütme engellerini sürekli olarak koruyarak veritabanı tutarlılığını korumak için
  • Sistemin eşzamanlı işlemler arasındaki etkileşimi kontrol etmesi gerekir. Bu kontrol, eşzamanlı kontrol şemaları kullanılarak elde edilir.
  • Eşzamanlılık kontrolü, serileştirilebilirliğin sağlanmasına yardımcı olur

Misal

Diyelim ki elektronik kiosklara aynı anda giden iki kişinin aynı film ve aynı gösteri zamanı için sinema bileti almak için.

Bununla birlikte, o tiyatroda film şovu için yalnızca bir koltuk kaldı. DBMS'de eşzamanlılık kontrolü olmadan, her iki sinemaseverin de bir bilet satın alması mümkündür. Ancak, eşzamanlılık kontrol yöntemi bunun olmasına izin vermez. Her iki sinemasever de film koltuğu veritabanında yazılı bilgilere erişebilir. Ancak eşzamanlılık kontrolü, yalnızca işlem sürecini ilk tamamlayan alıcıya bir bilet sağlar.

Eş Zamanlılık Kontrol Protokolleri

Farklı eşzamanlılık kontrol protokolleri, izin verdikleri eşzamanlılık miktarı ile uyguladıkları ek yük miktarı arasında farklı faydalar sunar. DBMS'deki Eş Zamanlılık Kontrolü teknikleri aşağıdadır:

  • Kilit Tabanlı Protokoller
  • İki Fazlı Kilitleme Protokolü
  • Zaman Damgası Tabanlı Protokoller
  • Doğrulama Tabanlı Protokoller

Kilit tabanlı Protokoller

DBMS'deki Kilit Tabanlı Protokoller , bir işlemin uygun bir kilit elde edene kadar verileri Okuyamadığı veya Yazamadığı bir mekanizmadır. Kilit tabanlı protokoller, belirli bir işlemi tek bir kullanıcıya kilitleyerek veya izole ederek eşzamanlı işlemler için DBMS'deki eşzamanlılık sorununu ortadan kaldırmaya yardımcı olur.

Kilit, bir veri öğesi ile ilişkili bir veri değişkenidir. Bu kilit, veri öğesi üzerinde gerçekleştirilebilecek işlemleri belirtir. DBMS'deki kilitler, eşzamanlı işlemlerle veritabanı öğelerine erişimi senkronize etmeye yardımcı olur.

Tüm kilit talepleri eşzamanlılık kontrol yöneticisine yapılır. İşlemler, yalnızca kilit isteği kabul edildiğinde devam eder.

İkili Kilitler: Bir veri öğesindeki İkili kilit, kilitli veya kilitsiz durumda olabilir.

Paylaşılan / özel: Bu tür bir kilitleme mekanizması, kullanımlarına göre DBMS'deki kilitleri ayırır. Bir yazma işlemini gerçekleştirmek için bir veri maddesinde bir kilit elde edilirse, buna özel kilit denir.

1. Paylaşımlı Kilit (L):

Paylaşılan kilit, Salt okunur kilit olarak da adlandırılır. Paylaşılan kilit ile veri öğesi işlemler arasında paylaşılabilir. Bunun nedeni, veri öğesindeki verileri güncelleme izniniz olmayacak olmasıdır.

Örneğin, iki işlemin bir kişinin hesap bakiyesini okuduğu bir durumu düşünün. Veritabanı, paylaşılan bir kilit yerleştirerek okumalarına izin verecektir. Ancak, başka bir işlem o hesabın bakiyesini güncellemek isterse, paylaşılan kilit okuma işlemi bitene kadar bunu engeller.

2. Özel Kilit (X):

Exclusive Lock ile, bir veri öğesi yazılabileceği gibi okunabilir de. Bu münhasırdır ve aynı veri öğesi üzerinde aynı anda tutulamaz. X kilidi, x kilidi komutu kullanılarak istenir. 'Yazma' işlemini bitirdikten sonra işlemler veri maddesinin kilidini açabilir.

Örneğin, bir işlemin bir kişinin hesap bakiyesini güncellemesi gerektiğinde. Bu işleme X kilidi koyarak izin verebilirsiniz. Bu nedenle, ikinci işlem okumak veya yazmak istediğinde, özel kilit bu işlemi engeller.

3. Basit Kilit Protokolü

Bu tür kilit tabanlı protokoller, işlemlerin işleme başlamadan önce her nesne üzerinde bir kilit elde etmesini sağlar. 'Yazma' işlemini bitirdikten sonra işlemler veri maddesinin kilidini açabilir.

4. Ön Talep Kilitleme

Ön talep kilitleme protokolü, işlemleri değerlendirmeye ve bir yürütme sürecini başlatmak için gerekli olan gerekli veri öğelerinin bir listesini oluşturmaya yardımcı olur. Tüm kilitlerin verildiği durumda işlem yürütülür. Bundan sonra, tüm işlemleri bittiğinde tüm kilitler serbest kalır.

Açlık

Açlık, bir işlemin bir kilit elde etmek için belirsiz bir süre beklemesi gerektiği durumdur.

Starvation'ın nedenleri şunlardır:

  • Kilitli öğeler için bekleme düzeni düzgün yönetilmediğinde
  • Kaynak sızıntısı durumunda
  • Aynı işlem tekrar tekrar kurban olarak seçiliyor

Kilitlenme

Kilitlenme, iki veya daha fazla işlemin bir kaynağı serbest bırakmak için birbirini beklediği veya ikiden fazla işlemin kaynağı döngüsel bir zincirde beklediği belirli bir durumu ifade eder.

İki Fazlı Kilitleme Protokolü

2PL protokolü olarak da bilinen İki Aşamalı Kilitleme Protokolü , diğer işlemlerin aynı verilere aynı anda erişmesini engelleyen işlem verilerine bir kilit uygulayarak seri hale getirilebilirliği sağlayan DBMS'de bir eşzamanlılık kontrolü yöntemidir. İki Aşamalı Kilitleme protokolü, DBMS'deki eşzamanlılık sorununu ortadan kaldırmaya yardımcı olur.

Bu kilitleme protokolü, bir işlemin yürütme aşamasını üç farklı bölüme ayırır.

  • İlk aşamada işlem gerçekleşmeye başladığında ihtiyaç duyduğu kilitler için izin gerektirir.
  • İkinci bölüm, işlemin tüm kilitleri aldığı yerdir. Bir işlem ilk kilidini serbest bıraktığında, üçüncü aşama başlar.
  • Bu üçüncü aşamada, işlem yeni kilit talep edemez. Bunun yerine, yalnızca edinilen kilitleri serbest bırakır.

İki Aşamalı Kilitleme protokolü, her işlemin iki adımda bir kilitleme veya kilit açma isteği yapmasına izin verir:

  • Büyüme Aşaması : Bu aşamada işlem kilitler elde edebilir ancak herhangi bir kilidi açmayabilir.
  • Küçülme Aşaması : Bu aşamada, bir işlem kilitleri serbest bırakabilir ancak yeni bir kilit elde edemez

2PL protokolünün serileştirilebilirlik sağladığı doğrudur. Ancak, kilitlenmelerin olmamasını garanti etmez.

Yukarıda verilen diyagramda, yerel ve küresel kilitlenme dedektörlerinin kilitlenmeleri aradığını ve işlemleri ilk durumlarına devam ettirerek çözdüklerini görebilirsiniz.

Sıkı İki Fazlı Kilitleme Yöntemi

Sıkı-İki fazlı kilitleme sistemi neredeyse 2PL'ye benzer. Tek fark, Strict-2PL'nin kullanıldıktan sonra bir kilidi asla bırakmamasıdır. Taahhüt noktasına kadar tüm kilitleri tutar ve işlem bittiğinde tek seferde tüm kilitleri serbest bırakır.

Merkezi 2PL

Centralized 2 PL'de, kilit yönetimi sürecinden tek bir site sorumludur. Tüm DBMS için tek bir kilit yöneticisi vardır.

Birincil kopya 2PL

Birincil kopya 2PL mekanizması, birçok kilit yöneticisi farklı sitelere dağıtılır. Bundan sonra, belirli bir kilit yöneticisi, bir dizi veri öğesi için kilidi yönetmekten sorumludur. Birincil kopya güncellendiğinde, değişiklik ikincil cihazlara yayılır.

Dağıtılmış 2PL

Bu tür iki aşamalı kilitleme mekanizmasında, Kilit yöneticileri tüm sitelere dağıtılır. Bu sitedeki veriler için kilitleri yönetmekten sorumludurlar. Hiçbir veri çoğaltılmazsa, birincil kopya 2PL'ye eşdeğerdir. Dağıtılmış 2PL'nin iletişim maliyetleri birincil kopya 2PL'den oldukça yüksektir

Zaman damgası tabanlı Protokoller

DBMS'deki zaman damgası tabanlı Protokol , eşzamanlı işlemlerin yürütülmesini seri hale getirmek için bir zaman damgası olarak Sistem Zamanını veya Mantıksal Sayacı kullanan bir algoritmadır. Zaman damgası tabanlı protokol, çakışan her okuma ve yazma işleminin bir zaman damgası sırasıyla yürütülmesini sağlar.

Bu yöntemde eski işleme her zaman öncelik verilir. İşlemin zaman damgasını belirlemek için sistem saatini kullanır. Bu, en yaygın kullanılan eşzamanlılık protokolüdür.

Kilit tabanlı protokoller, yürütülecekleri çakışan işlemler arasındaki sırayı yönetmenize yardımcı olur. Zaman damgası tabanlı protokoller, bir işlem oluşturulur oluşturulmaz çakışmaları yönetir.

Misal:

Suppose there are there transactions T1, T2, and T3.T1 has entered the system at time 0010T2 has entered the system at 0020T3 has entered the system at 0030Priority will be given to transaction T1, then transaction T2 and lastly Transaction T3.

Avantajlar :

  • Çizelgeler, tıpkı 2PL protokolleri gibi serileştirilebilir
  • Kilitlenme olasılığını ortadan kaldıran işlem için beklemek yok!

Dezavantajları:

Aynı işlem yeniden başlatılırsa ve sürekli olarak iptal edilirse aç bırakma mümkündür

Doğrulamaya Dayalı Protokol

İyimser Eş Zamanlılık Kontrol Tekniği olarak da bilinen DBMS'deki doğrulama tabanlı Protokol , işlemlerde eşzamanlılığı önlemek için bir yöntemdir. Bu protokolde, verilerin kendisi yerine işlem verilerinin yerel kopyaları güncellenir, bu da işlemin yürütülmesi sırasında daha az müdahale ile sonuçlanır.

Doğrulamaya dayalı Protokol aşağıdaki üç aşamada gerçekleştirilir:

  1. Aşamayı Oku
  2. Doğrulama Aşaması
  3. Yazma Aşaması

Aşamayı Oku

Okuma Aşamasında, veri tabanından veri değerleri bir işlem tarafından okunabilir, ancak yazma işlemi veya güncellemeler gerçek veri tabanına değil, sadece yerel veri kopyalarına uygulanır.

Doğrulama Aşaması

Doğrulama Aşamasında, işlem güncellemelerini veritabanına uygularken serileştirilebilirlik ihlali olmadığından emin olmak için veriler kontrol edilir.

Yazma Aşaması

Yazma Aşamasında, doğrulama başarılı olursa güncellemeler veritabanına uygulanır, aksi takdirde; güncellemeler uygulanmaz ve işlem geri alınır.

İyi Eş Zamanlılık Protokolünün Özellikleri

İdeal bir eşzamanlılık kontrolü DBMS mekanizması aşağıdaki hedeflere sahiptir:

  • Site ve iletişim hatalarına karşı dayanıklı olmalıdır.
  • Maksimum eşzamanlılık elde etmek için işlemlerin paralel yürütülmesine izin verir.
  • Depolama mekanizmaları ve hesaplama yöntemleri, ek yükü en aza indirmek için mütevazı olmalıdır.
  • İşlemlerin atomik eylemlerinin yapısı üzerinde bazı kısıtlamalar getirmelidir.

Özet

  • Eşzamanlılık kontrolü, birbiriyle çelişmeden eşzamanlı işlemleri yönetmek için DBMS'deki prosedürdür.
  • Kayıp Güncellemeler, kirli okuma, Tekrarlanamayan Okuma ve Yanlış Özet Sorunu, eşzamanlılık kontrolünün olmaması nedeniyle karşılaşılan sorunlardır.
  • Kilit Tabanlı, İki Aşamalı, Zaman Damgası Tabanlı, Doğrulama Tabanlı Eşzamanlılık işleme protokolü türleridir
  • Kilit, Paylaşılan (S) veya Özel (X) olabilir
  • Bir 2PL protokolü gerektiren işlem olarak da bilinen İki Fazlı kilitleme protokolü, kilitlerinden birini serbest bıraktıktan sonra bir kilit almalıdır. Büyüyen ve küçülen 2 evredir.
  • Zaman damgası tabanlı algoritma, eşzamanlı işlemlerin yürütülmesini serileştirmek için bir zaman damgası kullanır. Protokol, Sistem Zamanını veya Mantıksal Sayımı bir Zaman Damgası olarak kullanır .