Dağıtılmış DBMS - Çoğaltma Kontrolü

Bu bölüm, tüm sitelerde tutarlı verileri korumak için gerekli olan çoğaltma denetimini inceler. Replikasyon kontrol tekniklerini ve replikasyon kontrolü için gerekli algoritmaları inceleyeceğiz.

Daha önce tartışıldığı gibi, replicationfarklı yerlerde bir veri tablosunun birden çok kopyasını depolamak için dağıtılmış veritabanlarında kullanılan bir tekniktir. Birden çok sitede birden çok kopyaya sahip olmanın sorunu, özellikle güncelleme işlemleri sırasında veri tutarlılığını korumanın ek yüküdür.

Tüm sitelerde karşılıklı olarak tutarlı verileri korumak için, çoğaltma kontrol tekniklerinin benimsenmesi gerekir. Çoğaltma kontrolü için iki yaklaşım vardır:

  • Eşzamanlı Çoğaltma Kontrolü
  • Eşzamansız Çoğaltma Denetimi

Eşzamanlı Çoğaltma Kontrolü

Eşzamanlı çoğaltma yaklaşımında, veritabanı eşitlenir, böylece tüm çoğaltmalar her zaman aynı değere sahip olur. Bir veri öğesini talep eden bir işlem, tüm sitelerde aynı değere erişime sahip olacaktır. Bu tekdüzelik sağlamak için, bir veri öğesini güncelleyen bir işlem, veri öğesinin tüm kopyalarında güncelleme yapacak şekilde genişletilir. Genel olarak, amaç için iki aşamalı kesinleştirme protokolü kullanılır.

Örneğin, PROJECT (PId, PName, PLocation) veri tablosunu ele alalım. PLocation 'Bombay' ise, PLocation'ı 'Mumbai' olarak güncelleyen bir T1 işlemi çalıştırmamız gerekiyor. Çoğaltma yoksa, T1 işlemindeki işlemler -

Begin T1: 
   Update PROJECT Set PLocation = 'Mumbai' 
   Where PLocation = 'Bombay'; 
End T1;

Veri tablosunun Site A ve Site B'de iki kopyası varsa, T1'in iki bölgeye karşılık gelen iki çocuk T1A ve T1B oluşturması gerekir. Genişletilmiş T1 işlemi -

Begin T1: 
   Begin T1A : 
      Update PROJECT Set PLocation = 'Mumbai' 
      Where PLocation = 'Bombay'; 
   End T1A;  
	
   Begin T2A : 
      Update PROJECT Set PLocation = 'Mumbai'
      Where PLocation = 'Bombay'; 
   End T2A; 
	
End T1;

Eşzamansız Çoğaltma Denetimi

Eşzamansız çoğaltma yaklaşımında, çoğaltmalar her zaman aynı değeri korumaz. Bir veya daha fazla kopya, güncel olmayan bir değeri depolayabilir ve bir işlem farklı değerleri görebilir. Tüm kopyaları mevcut değere getirme işlemi denirsynchronization.

Popüler bir senkronizasyon yöntemi, kaydet ve ilet yöntemidir. Bu yöntemde, bir site birincil site olarak belirlenir ve diğer siteler ikincil sitelerdir. Birincil site her zaman güncel değerleri içerir. Tüm işlemler önce birincil siteye girer. Bu işlemler daha sonra ikincil sitelerde uygulama için sıraya alınır. İkincil siteler, yalnızca üzerinde yürütülmek üzere bir işlem planlandığında kullanıma sunma yöntemi kullanılarak güncellenir.

Çoğaltma Kontrol Algoritmaları

Çoğaltma kontrol algoritmalarından bazıları -

  • Master-slave çoğaltma kontrol algoritması.
  • Dağıtılmış oylama algoritması.
  • Çoğunluk fikir birliği algoritması.
  • Dolaşımdaki belirteç algoritması.

Master-Slave Çoğaltma Kontrol Algoritması

Bir ana site ve 'N' köle siteleri vardır. Çatışmaları tespit etmek için ana sitede bir ana algoritma çalışır. Her slave sitesinde bir slave algoritmasının bir kopyası çalışır. Genel algoritma aşağıdaki iki aşamada yürütülür -

  • Transaction acceptance/rejection phase- Bir işlem, bir bağımlı sitenin işlem monitörüne girdiğinde, bağımlı site ana siteye bir istek gönderir. Ana site çakışmaları kontrol eder. Herhangi bir çakışma yoksa, ana birim bağımlı siteye bir "ACK +" mesajı gönderir ve ardından işlem uygulama aşamasını başlatır. Aksi takdirde, master, slave'e bir “ACK-” mesajı gönderir ve ardından işlemi reddeder.

  • Transaction application phase- Bu aşamaya girildiğinde, işlemin girdiği slave sitesi, işlemin yürütülmesi için tüm slave'lere bir talep yayınlar. Talepleri aldıktan sonra, eş bağımlı birimler işlemi yürütür ve tamamlandığında talep eden köleye bir "ACK" gönderir. Talep eden slave, tüm eşlerinden “ACK” mesajlarını aldıktan sonra, ana siteye “TAMAMLANDI” mesajı gönderir. Ana kişi, işlemin tamamlandığını anlar ve bekleyen kuyruktan kaldırır.

Dağıtık Oylama Algoritması

Bu, "N" eş siteden oluşur ve bunların tümü, yürütülmeye başlamadan önce bir işlemi "TAMAMLAMAK" zorundadır. Bu algoritmanın iki aşaması aşağıdadır -

  • Distributed transaction acceptance phase- Bir işlem, bir sitenin işlem yöneticisine girdiğinde, diğer tüm sitelere bir işlem talebi gönderir. Bir eş site, bir talep alındığında öncelik tabanlı oylama kurallarını kullanarak çakışmaları çözer. Tüm eş siteler işlemde "tamam" ise, talep eden site uygulama aşamasına başlar. Eş sitelerden herhangi biri bir işlemi "tamamlamaz" ise, talepte bulunan site işlemi reddeder.

  • Distributed transaction application phase- Bu aşamaya girildiğinde işlemin girildiği site, işlemin gerçekleştirilmesi için tüm slave'lere bir talep yayınlar. Taleplerin alınması üzerine, eş bağımlı birimler işlemi yürütür ve tamamlandığında talep eden köleye bir "ACK" mesajı gönderir. İstekte bulunan slave, tüm eşlerinden "ACK" mesajlarını aldıktan sonra, işlem yöneticisine işlemin tamamlandığını bildirir.

Çoğunluk Mutabakat Algoritması

Bu, eşlerin çoğunluğu bir işlemi "OK" ettiğinde işlemin yürütülmesine izin verilen dağıtılmış oylama algoritmasının bir varyasyonudur. Bu üç aşamaya ayrılmıştır -

  • Voting phase- Bir işlem, bir sitenin işlem yöneticisine girdiğinde, diğer tüm sitelere bir işlem talebi gönderir. Bir istek alındığında, bir eş site, oylama kurallarını kullanarak çakışmaları test eder ve varsa çakışan işlemleri bekleyen sırada tutar. Ardından, bir "TAMAM" veya "TAMAM DEĞİL" mesajı gönderir.

  • Transaction acceptance/rejection phase- Talep eden site işlemde çoğunluk "TAMAM" alırsa işlemi kabul eder ve tüm sitelere "KABUL" yayınlar. Aksi takdirde tüm sitelere "REJECT" yayınlar ve işlemi reddeder.

  • Transaction application phase- Bir eş site bir "RED" mesajı aldığında, bu işlemi bekleme listesinden kaldırır ve tüm ertelenmiş işlemleri yeniden değerlendirir. Bir eş site bir “KABUL ET” mesajı aldığında, işlemi uygular ve bu işlemle çelişen bekleyen sıradaki tüm ertelenmiş işlemleri reddeder. Tamamlandığında talep eden slave'e bir "ACK" gönderir.

Dolaşan Token Algoritması

Bu yaklaşımda, sistemdeki işlemler dolaşımdaki bir belirteç kullanılarak serileştirilir ve veritabanının her kopyasına göre buna göre yürütülür. Böylece tüm işlemler kabul edilir, yani hiçbiri reddedilmez. Bunun iki aşaması var -

  • Transaction serialization phase- Bu aşamada, tüm işlemler bir serileştirme sırasına göre çalışacak şekilde planlanır. Her sitedeki her işleme, işlem sırasını gösteren sıralı bir diziden benzersiz bir bilet atanır. Bir işleme bir bilet atandıktan sonra, tüm sitelere yayınlanır.

  • Transaction application phase- Site, biletiyle birlikte bir işlem aldığında, işlemin gerçekleştirilmesi için biletine göre yerleştirir. İşlemin yürütülmesi bittikten sonra bu site uygun bir mesaj yayınlar. Bir işlem, tüm sitelerde yürütmeyi tamamladığında sona erer.