İşlem Yönetimi ve Eşzamanlılık
İşlem yönetimi ve eşzamanlılık kontrolü, bir veritabanının birçok eşzamanlı işlemi doğru bir şekilde yürütmesini ve arızalardan sağ çıkmasını sağlayarak atomiklik, tutarlılık, izolasyon ve kalıcılık (ACID) özelliklerini garanti etmektedir.
Tanım
Bir işlem, atomik, tutarlılığı koruyan, eşzamanlı işlemlerden izole edilmiş ve taahhüt edildikten sonra kalıcı olan tek bir mantıksal birim olarak yürütülen bir veritabanı işlemleri dizisidir; işlem yönetimi, eşzamanlılık ve arıza durumunda bu özellikleri uygulayan mekanizmalar bütünüdür.
Kapsam
Bu alan, iş birimi olarak işlemi ve eşzamanlı, hataya açık yürütmeyi doğru kılan mekanizmaları kapsamaktadır: ACID özellikleri; eşzamanlılık için doğruluk kriteri olarak serileştirilebilirlik; bunu uygulayan kilitleme, zaman damgası ve çoklu sürüm protokolleri; tutarlılığı performansla takas eden daha zayıf izolasyon seviyeleri; ve çökmeler sırasında atomiklik ve kalıcılığı sağlayan günlükleme ve kurtarma teknikleri. Birden fazla sitede dağıtılmış taahhüdü hariç tutmaktadır, bu konu dağıtılmış ve paralel veritabanları alanında ele alınmaktadır.
Alt konular
Temel sorular
- ACID özellikleri neyi garanti etmektedir ve neden gereklidir?
- Eşzamanlı bir çizelgeyi doğru, yani serileştirilebilir kılan nedir?
- Kilitleme, zaman damgası ve çoklu sürüm protokolleri serileştirilebilirliği nasıl uygulamaktadır?
- Günlükleme ve kurtarma, bir çökmeden sonra tutarlı bir durumu nasıl geri yüklemektedir?
- Daha zayıf izolasyon seviyeleri tutarlılığı eşzamanlılık için nasıl takas etmektedir?
Anahtar kavramlar
- işlem ve taahhüt/iptal
- ACID özellikleri
- serileştirilebilirlik ve öncelik grafiği
- iki fazlı kilitleme
- zaman damgası sıralaması
- çoklu sürüm eşzamanlılık kontrolü
- kilitlenme tespiti ve önlenmesi
- önceden yazma günlüklemesi
- izolasyon seviyeleri
Temel kuramlar
- ACID özellikleri
- Atomiklik (ya hep ya hiç yürütme), tutarlılık (bütünlük kısıtlamalarının korunması), izolasyon (eşzamanlı işlemlerin tek başına çalışıyormuş gibi görünmesi) ve kalıcılık (taahhüt edilen etkilerin arızalardan sağ çıkması) birlikte doğru işlemsel davranışı tanımlamaktadır.
- Serileştirilebilirlik
- Eşzamanlı bir çizelge, bazı seri yürütmelere eşdeğerse doğrudur; öncelik (serileştirme) grafiği aracılığıyla test edilen çakışma serileştirilebilirliği, eşzamanlılık kontrol protokollerinin uyguladığı pratik kriterdir.
- Eşzamanlılık kontrolü ve kurtarma
- Kilitleme, zaman damgası sıralaması ve çoklu sürüm yöntemleri serileştirilemez araya girmeleri önlerken, önceden yazma günlüklemesi ve kurtarma algoritmaları, doğru işlem işlemenin iki yarısı olan atomiklik ve kalıcılığı garanti etmektedir.
Klinik önem
İşlem yönetimi, veritabanlarını para ve kayıtlar için güvenilir kılan şeydir: bir banka transferinin asla bir hesaptan borçlandırmadan diğerine alacaklandırmamasını, bir havayolunun eşzamanlı istekler altında asla bir koltuğu iki kez rezerve etmemesini ve taahhüt edilen verilerin çökmelerden sağ çıkmasını sağlayarak tüm güvenilir işlemsel sistemlerin temelini oluşturmaktadır.
Tarihçe
İşlem kavramı ve ACID özellikleri 1970'lerde IBM'in System R'ında resmileştirilmiştir; Eswaran ve arkadaşları (1976) tutarlılık ve kilitleme kavramlarını oluşturmuş, Jim Gray işlemleri ve kurtarmayı tanımlamış, Bernstein, Hadzilacos ve Goodman (1987) ise serileştirilebilirlik teorisini sistemleştirmiştir. Gray'in işlem işlemeye yaptığı katkılar ona Turing Ödülü'nü kazandırmıştır.
Öne çıkan isimler
- Jim Gray
- Philip Bernstein
- Andreas Reuter
İlgili konular
Temel eserler
- gray1992
- bernstein1987
- eswaran1976
Sıkça sorulan sorular
- İşlem çizelgesinin serileştirilebilir olması ne anlama gelmektedir?
- Eşzamanlı bir çizelge, genel etkisi aynı işlemlerin belirli bir sırayla art arda çalıştırılmasıyla aynıysa serileştirilebilirdir. Serileştirilebilirlik, altın standart doğruluk kriteridir: işlemler performans için araya girse bile, sonuç sanki seri olarak yürütülmüş gibi olur, böylece hiçbir işlem tutarsız bir ara durum görmez.
- Daha zayıf izolasyon seviyeleri anormallikler üretebiliyorsa neden izin verilmektedir?
- Tam serileştirilebilirliği uygulamak, kilit çekişmesi ve iptaller açısından bir performans maliyetine sahiptir. Birçok uygulama, daha yüksek eşzamanlılık karşılığında belirli anormalliklere tolerans gösterebilmektedir, bu nedenle SQL standardı, geliştiricilerin kasıtlı olarak bazı izolasyonu verimle takas etmelerine olanak tanıyan daha zayıf izolasyon seviyeleri (okuma taahhütlü, tekrarlanabilir okuma vb.) tanımlamaktadır.