Eşzamanlılık kontrolü - Concurrency control

İçinde Bilişim teknolojisi ve bilgisayar Bilimi özellikle alanlarında bilgisayar Programlama, işletim sistemleri, çoklu işlemciler, ve veritabanları, eşzamanlılık kontrolü doğru sonuçların alınmasını sağlar eşzamanlı bu sonuçları olabildiğince çabuk alırken operasyonlar oluşturulur.

Bilgisayar sistemleri, ikisi de yazılım ve donanım modüllerden veya bileşenlerden oluşur. Her bileşen, doğru şekilde çalışacak, yani belirli tutarlılık kurallarına uyacak veya bunları karşılayacak şekilde tasarlanmıştır. Eşzamanlı olarak çalışan bileşenler mesajlaşma yoluyla veya erişilen verileri paylaşarak etkileşimde bulunduğunda ( hafıza veya depolama ), belirli bir bileşenin tutarlılığı başka bir bileşen tarafından ihlal edilebilir. Genel eşzamanlılık kontrolü alanı, kurallar, yöntemler, tasarım metodolojileri ve teoriler etkileşim halindeyken eşzamanlı olarak çalışan bileşenlerin tutarlılığını ve dolayısıyla tüm sistemin tutarlılığını ve doğruluğunu korumak. Bir sisteme eşzamanlılık kontrolünün dahil edilmesi, genellikle performansın bir miktar düşmesine neden olan işlem kısıtlamalarının uygulanması anlamına gelir. Operasyon tutarlılığı ve doğruluğu, performansı makul seviyelerin altına düşürmeden, mümkün olduğunca iyi bir verimlilikle elde edilmelidir. Eşzamanlılık kontrolü, önemli bir ek karmaşıklık ve bir eşzamanlı algoritma basit olana kıyasla sıralı algoritma.

Örneğin, eşzamanlılık kontrolündeki bir başarısızlık, veri bozulması itibaren yırtık okuma veya yazma işlemleri.

Veritabanlarında eşzamanlılık kontrolü

Yorumlar:

  1. Bu bölüm, tüm işlem sistemlerine, yani kullanan tüm sistemler için geçerlidir. veritabanı işlemleri (atomik işlemler; ör. işlem nesneleri Sistem yönetimi ve ağlarda akıllı telefonlar (genellikle özel, özel veritabanı sistemlerini uygulayan), yalnızca genel amaçlı değil Veritabanı Yönetim Sistemleri (DBMS'ler).
  2. DBMS'lerin aynı zamanda sadece veritabanı işlemlerine özgü değil, genel olarak işletim sistemlerine özgü eşzamanlılık kontrol sorunlarıyla da ilgilenmesi gerekir. Bu sorunlar (ör. Bkz. İşletim sistemlerinde eşzamanlılık kontrolü aşağıda) bu bölümün kapsamı dışındadır.

Eşzamanlılık kontrolü Veritabanı Yönetim Sistemleri (DBMS; ör. Bernstein vd. 1987, Weikum ve Vossen 2001 ), diğer işlemsel nesneler ve ilgili dağıtılmış uygulamalar (ör. Şebeke bilişim ve Bulut bilişim ) onu garantiler veritabanı işlemleri gerçekleştirilir aynı anda ihlal etmeden veri bütünlüğü ilgili veritabanları. Bu nedenle eşzamanlılık kontrolü, iki veya daha fazla veri tabanı işleminin zaman çakışmasıyla gerçekleştirilen aynı verilere, örneğin neredeyse herhangi bir genel amaçlı veri tabanı sisteminde erişebildiği herhangi bir sistemde doğruluk için gerekli bir unsurdur. Sonuç olarak, veritabanı sistemleri 1970'lerin başlarında ortaya çıktığından beri çok sayıda ilgili araştırma birikmiştir. İyi kurulmuş bir eşzamanlılık kontrolü teori veritabanı sistemleri için yukarıda belirtilen referanslarda özetlenmiştir: serileştirilebilirlik teorisi, eşzamanlılık kontrol yöntemlerini ve mekanizmalarını etkili bir şekilde tasarlamaya ve analiz etmeye izin verir. Atomik işlemlerin eşzamanlılık kontrolü için alternatif bir teori soyut veri türleri (Lynch vd. 1993 ) ve aşağıda kullanılmamaktadır. Bu teori daha rafine, karmaşık ve daha geniş bir kapsamdadır ve Veritabanı literatüründe yukarıdaki klasik teoriye göre daha az kullanılmıştır. Her teorinin artıları ve eksileri, vurguları ve içgörü. Bir dereceye kadar tamamlayıcıdırlar ve birleştirilmeleri faydalı olabilir.

Doğruluğu sağlamak için, bir DBMS genellikle yalnızca şunları garanti eder: serileştirilebilir işlem programları üretilmediği sürece serileştirilebilirlik dır-dir kasıtlı olarak rahatlamış performansı artırmak için, ancak yalnızca uygulama doğruluğunun zarar görmediği durumlarda. Başarısız (iptal edilmiş) işlemlerde (birçok nedenden dolayı her zaman meydana gelebilir) doğruluğu korumak için, programların da kurtarılabilirlik (iptalden) özelliği. Bir DBMS ayrıca hiçbir etkisinin olmadığını garanti eder. kararlı işlemler kaybolur ve etkisi yoktur iptal edildi (geri alındı ) işlemler ilgili veri tabanında kalır. Genel işlem karakterizasyonu genellikle şu şekilde özetlenir: ASİT aşağıdaki kurallar. Veritabanları haline geldikçe dağıtılmış veya dağıtılmış ortamlarda işbirliği yapması gerekiyor (ör. Federasyon veritabanları 1990'ın başlarında ve Bulut bilişim şu anda), eşzamanlılık kontrol mekanizmalarının etkin dağıtımı özel ilgi gördü.

Veritabanı işlemi ve ACID kuralları

A kavramı veritabanı işlemi (veya atomik işlem) hem çökmelerin her an olabileceği hatalı bir ortamda iyi anlaşılmış bir veritabanı sistemi davranışını mümkün kılmak için geliştirilmiştir hem de kurtarma bir çökmeden iyi anlaşılmış bir veritabanı durumuna. Bir veri tabanı işlemi, tipik olarak bir veri tabanı üzerinde bir dizi işlemi (örneğin, bir veri tabanı nesnesini okumak, yazmak, kilit almak, vb.), Veri tabanında desteklenen bir soyutlamayı ve ayrıca diğer sistemleri kapsayan bir iş birimidir. Her işlem, hangi program / kod yürütmelerinin o işleme dahil edildiği açısından iyi tanımlanmış sınırlara sahiptir (işlemin programcısı tarafından özel işlem komutları aracılığıyla belirlenir). Her veritabanı işlemi aşağıdaki kurallara uyar (veritabanı sistemi desteği ile; yani, çalıştırdığı işlemler için bunları garanti etmek üzere bir veritabanı sistemi tasarlanmıştır):

  • Atomiklik - İşlemlerinin tamamının veya hiçbirinin etkileri ("tümü veya hiçbiri" semantiği) kalır. işlem tamamlandı (kararlı veya iptal edildi sırasıyla). Başka bir deyişle, dış dünyada taahhüt edilmiş bir işlem (veri tabanı üzerindeki etkilerine göre) bölünmez (atomik) görünür ve iptal edilen bir işlem veri tabanını hiç etkilemez. Ya tüm işlemler yapılır ya da hiçbiri yapılmaz.
  • Tutarlılık - Her işlem, veritabanını tutarlı (doğru) bir durumda bırakmalıdır, yani veritabanının önceden belirlenmiş bütünlük kurallarını (veritabanı nesneleri üzerindeki ve bunların arasındaki kısıtlamalar) sürdürmelidir. Bir işlem, bir veritabanını tutarlı bir durumdan başka bir tutarlı duruma dönüştürmelidir (ancak, işlemin kendisinin doğru olduğundan, yani gerçekleştirmeyi planladığı şeyi doğru şekilde gerçekleştirdiğinden emin olmak işlemin programcısının sorumluluğundadır (uygulamanın bakış açısından view) önceden tanımlanmış bütünlük kuralları DBMS tarafından uygulanırken). Bu nedenle, bir veritabanı normalde yalnızca işlemlerle değiştirilebildiğinden, veritabanının tüm durumları tutarlıdır.
  • İzolasyon - İşlemler birbirine müdahale edemez (infazlarının bir sonucu olarak). Ayrıca, genellikle (eşzamanlılık kontrol yöntemine bağlı olarak) tamamlanmamış bir işlemin etkileri başka bir işlem tarafından görülemez. İzolasyon sağlamak, eşzamanlılık kontrolünün ana hedefidir.
  • Dayanıklılık - Başarılı (taahhüt edilen) işlemlerin etkileri devam etmelidir çöküyor (genellikle işlemin etkilerini ve commit olayını bir uçucu olmayan bellek ).

Atomik işlem kavramı yıllar içinde ne hale geldi Ticari işlemler aslında türlerini uygulayan İş akışı ve atomik değildir. Bununla birlikte, bu tür geliştirilmiş işlemler, tipik olarak, bileşenler olarak atomik işlemleri kullanır.

Eşzamanlılık denetimi neden gereklidir?

İşlemler yapılırsa seri olarakyani, zaman içinde çakışmadan sıralı olarak, işlem eşzamanlılığı mevcut değildir. Ancak, serpiştirme işlemleriyle eşzamanlı işlemlere kontrolsüz bir şekilde izin verilirse, aşağıdakiler gibi bazı beklenmedik, istenmeyen sonuçlar ortaya çıkabilir:

  1. Kayıp güncelleme sorunu: İkinci bir işlem, bir birinci eşzamanlı işlem tarafından yazılan bir birinci değerin üzerine bir veri öğesinin (datum) ikinci bir değerini yazar ve birinci değer, önceliğine göre, eşzamanlı olarak çalışan diğer işlemlere kaybedilir. , ilk değeri okumak için. Yanlış değeri okuyan işlemler yanlış sonuçlarla sonuçlanır.
  2. Kirli okuma sorunu: İşlemler, daha sonra iptal edilen bir işlem tarafından yazılan bir değeri okur. Bu değer, iptal edildikten sonra veritabanından kaybolur ve herhangi bir işlem tarafından okunmaması gerekir ("kirli okuma"). Okuma işlemleri yanlış sonuçlarla sonuçlanır.
  3. Yanlış özet problemi: Bir işlem, tekrarlanan bir veri öğesinin tüm örneklerinin değerlerinin bir özetini alırken, ikinci bir işlem bu veri öğesinin bazı örneklerini günceller. Ortaya çıkan özet, iki işlem arasındaki herhangi bir (genellikle doğruluk için gereklidir) öncelik sırası için doğru bir sonucu yansıtmaz (biri diğerinden önce yürütülüyorsa), bunun yerine güncellemelerin zamanlamasına ve belirli olup olmadığına bağlı olarak rastgele bir sonucu yansıtır. güncelleme sonuçları özete dahil edilmiş veya edilmemiştir.

Yüksek performanslı işlem sistemlerinin çoğu, performans gereksinimlerini karşılamak için işlemleri eşzamanlı olarak yürütmek zorundadır. Bu nedenle, eşzamanlılık kontrolü olmadan bu tür sistemler ne doğru sonuçlar verebilir ne de veritabanlarını tutarlı bir şekilde koruyabilir.

Eşzamanlılık kontrol mekanizmaları

Kategoriler

Eşzamanlılık kontrol mekanizmalarının ana kategorileri şunlardır:

  • İyimser - Bir işlemin izolasyon ve diğer bütünlük kurallarını karşılayıp karşılamadığının kontrolünü geciktirin (ör. serileştirilebilirlik ve kurtarılabilirlik ) (okuma, yazma) işlemlerinin hiçbirini engellemeden sonuna kadar ("... ve karşılanan kurallar konusunda iyimser olun ...") ve ardından istenen kurallar geçerliyse ihlali önlemek için işlemi iptal edin taahhüdü üzerine ihlal edilmek. Durdurulan bir işlem hemen yeniden başlatılır ve yeniden yürütülür, bu da bariz bir ek yüke neden olur (yalnızca bir kez sonuna kadar yürütmeye kıyasla). Çok fazla işlem iptal edilmezse, iyimser olmak genellikle iyi bir stratejidir.
  • Kötümser - Kuralların ihlaline neden olabilecekse, ihlal olasılığı ortadan kalkana kadar bir işlemin gerçekleştirilmesini engelleyin. Engelleme işlemleri tipik olarak performans azaltma ile ilgilidir.
  • Yarı iyimser - İyimser bir şekilde yapıldığı gibi, bazı durumlarda, bazı durumlarda, bazı kuralların ihlaline neden olabilecek işlemleri engelleyin ve diğer durumlarda, kuralları kontrol etmeyi (gerekirse) işlemin sonuna kadar geciktirmeyin.

Farklı kategoriler farklı performans sağlar, yani farklı ortalama işlem tamamlama oranları (çıktı), işlem türlerinin karışımına, paralellik hesaplama düzeyine ve diğer faktörlere bağlı olarak. Ödünleşimler hakkında seçim ve bilgi mevcutsa, en yüksek performansı sağlayacak kategori ve yöntem seçilmelidir.

İki işlem (her birinin diğerini engellediği) veya daha fazlası arasındaki karşılıklı engelleme, bir kilitlenme, ilgili işlemlerin durduğu ve tamamlanamadığı durumlarda. İyimser olmayan mekanizmaların çoğu (engelleme ile), durdurulmuş bir işlemin kasıtlı olarak iptal edilmesi (bu kilitlenmedeki diğer işlemleri serbest bırakan) ve hemen yeniden başlatılması ve yeniden yürütülmesi ile çözülen kilitlenmelere eğilimlidir. Bir kilitlenme olasılığı genellikle düşüktür.

Engelleme, kilitlenme ve iptallerin tümü performans düşüşüne ve dolayısıyla kategoriler arasındaki değiş tokuşlara neden olur.

Yöntemler

Eşzamanlılık kontrolü için birçok yöntem mevcuttur. Çoğu, yukarıdaki ana kategorilerden birinde uygulanabilir. Başlıca yöntemler,[1] her biri birçok çeşide sahip olan ve bazı durumlarda üst üste gelebilen veya birleştirilebilenler şunlardır:

  1. Kilitleme (ör. İki fazlı kilitleme - 2PL) - Verilere erişimi kontrol etme kilitler verilere atanmış. Bir işlemin başka bir işlem tarafından kilitlenen bir veri öğesine (veritabanı nesnesi) erişimi, kilit serbest bırakılıncaya kadar bloke edilebilir (kilit tipine ve erişim işlem tipine bağlı olarak).
  2. Serileştirme grafik kontrolü (Seri hale getirilebilirlik veya Çakışma veya Öncelik grafiği denetimi olarak da adlandırılır) - döngüleri programda grafik ve onları yarıda bırakarak.
  3. Zaman damgası sıralaması (TO) - İşlemlere zaman damgaları atama ve zaman damgası sırasına göre verilere erişimi kontrol etme veya kontrol etme.
  4. Taahhüt siparişi (veya Commit ordering; CO) - İşlemlerin işlemlerin kronolojik sırasını, ilgili işlemlerle uyumlu olacak şekilde kontrol etme veya kontrol etme öncelik sırası.

Yukarıdaki yöntemlerle birlikte kullanılan diğer önemli eşzamanlılık kontrol türleri şunları içerir:

  • Multiversion eşzamanlılık kontrolü (MVCC) - Nesne her yazıldığında bir veritabanı nesnesinin yeni bir sürümünü oluşturarak ve zamanlama yöntemine bağlı olarak işlemlerin son ilgili birkaç sürümünün (her nesnenin) okunmasına izin vererek eşzamanlılığı ve performansı artırma.
  • Dizin eşzamanlılık kontrolü - Erişim işlemlerini senkronize etme dizinler, kullanıcı verileri yerine. Özel yöntemler, önemli performans kazanımları sağlar.
  • Özel çalışma alanı modeli (Ertelenmiş güncelleme) - Her işlem, erişilen verileri için özel bir çalışma alanı sağlar ve değiştirilen verileri, yalnızca taahhüt üzerine işlemin dışında görünür hale gelir (örn. Weikum ve Vossen 2001 ). Bu model, birçok durumda faydaları olan farklı bir eşzamanlılık kontrol davranışı sağlar.

1970'lerdeki ilk günlerinden beri veritabanı sistemlerinde en yaygın mekanizma türü, Güçlü sıkı İki fazlı kilitleme (SS2PL; ayrıca Titiz planlama veya Titiz 2PL) bu her ikisinin de özel bir durumu (varyantı) İki fazlı kilitleme (2PL) ve Taahhüt siparişi (CO). Kötümserdir. Uzun adına rağmen (tarihsel nedenlerden dolayı) SS2PL mekanizma basittir: "Bir işlem tarafından uygulanan tüm kilitleri ancak işlem bittikten sonra serbest bırakın." SS2PL (veya Titizlik) aynı zamanda bu mekanizma tarafından oluşturulabilen tüm programlar kümesinin adıdır, yani bunlar SS2PL (veya Titizlik) programlarıdır, SS2PL (veya Titizlik) özelliğine sahiptir.

Eşzamanlılık kontrol mekanizmalarının ana hedefleri

Eşzamanlılık kontrol mekanizmalarının öncelikle doğru şekilde çalışması gerekir, yani işlemler eşzamanlı olarak çalışırken her bir işlemin bütünlük kurallarını (eşzamanlılıkla ilgili olarak; uygulamaya özgü bütünlük kuralı burada kapsam dışıdır) ve dolayısıyla tüm işlem sisteminin bütünlüğünü korumak için . Doğruluğun mümkün olduğunca iyi bir performansla elde edilmesi gerekir. Ek olarak, işlemler yapılırken etkin bir şekilde çalışma ihtiyacı giderek artmaktadır. dağıtılmış bitmiş süreçler, bilgisayarlar, ve bilgisayar ağları. Eşzamanlılık kontrolünü etkileyebilecek diğer konular şunlardır: kurtarma ve çoğaltma.

Doğruluk

Seri hale getirilebilirlik

Doğruluk açısından, çoğu eşzamanlılık kontrol mekanizmasının ortak ana hedefi, programları ile Seri hale getirilebilirlik Emlak. Seri hale getirilebilirlik olmadan istenmeyen olaylar ortaya çıkabilir, örneğin para hesaplardan kaybolabilir veya hiçbir yerden oluşturulmayabilir. Seri hale getirilebilirlik bir programın bazılarına denklik (elde edilen veritabanı değerlerinde) seri aynı işlemlerle zamanlama yapın (yani, işlemlerin zaman içinde çakışmadan sıralı olduğu ve dolayısıyla birbirinden tamamen izole edildiği: Aynı verilere herhangi iki işlemle eşzamanlı erişim mümkün değildir). Serileştirilebilirlik en yüksek seviye olarak kabul edilir izolasyon arasında veritabanı işlemleri ve eşzamanlı işlemler için ana doğruluk kriteri. Bazı durumlarda tehlikeye atılır, rahat formlar daha iyi performans için serileştirilebilirliğe izin verilir (ör. popüler Anlık görüntü izolasyonu mekanizma) veya buluşmak kullanılabilirlik yüksek oranda dağıtılmış sistemlerde gereksinimler Nihai tutarlılık ), ancak yalnızca uygulamanın doğruluğu gevşetme tarafından ihlal edilmiyorsa (örneğin, gevşemeye izin verilmez) para işlem, çünkü gevşeme yoluyla para kaybolabilir veya hiçbir yerden görünmeyebilir).

Uygulanan hemen hemen tüm eşzamanlılık kontrol mekanizmaları, Çakışma serileştirilebilirlik, verimli bir şekilde uygulanabilen geniş bir özel serileştirilebilirlik durumu (yani, çoğu serileştirilebilir programı kapsar, önemli ek gecikmeye neden olan kısıtlamalar getirmez).

Kurtarılabilirlik
Görmek Kurtarılabilirlik içinde Seri hale getirilebilirlik

Yorum Yap: Sistemlerin genel alanında "kurtarılabilirlik" terimi, bir sistemin arızadan veya yanlış / yasak bir durumdan kurtulma yeteneğini ifade edebilirken, veritabanı sistemlerinin eşzamanlılık kontrolü dahilinde bu terim belirli bir anlam kazanmıştır.

Eşzamanlılık kontrolü tipik olarak aynı zamanda Kurtarılabilirlik iptal edilen işlem durumlarında doğruluğun sürdürülmesine yönelik programların özelliği (birçok nedenden dolayı her zaman gerçekleşebilir). Kurtarılabilirlik (durdurmadan), bir çizelgedeki taahhüt edilen hiçbir işlemin durdurulan bir işlem tarafından yazılan verileri okumadığı anlamına gelir. Bu tür veriler veritabanından kaybolur (iptal edildikten sonra) ve yanlış veritabanı durumunun parçalarıdır. Bu tür verileri okumak ACID'nin tutarlılık kuralını ihlal eder. Serileştirilebilirlikten farklı olarak, Kurtarılabilirlik hiçbir durumda tehlikeye atılamaz, gevşetilemez, çünkü herhangi bir gevşetme, iptallerde hızlı veritabanı bütünlüğü ihlaline neden olur. Yukarıda listelenen başlıca yöntemler, serileştirilebilirlik mekanizmaları sağlar. Bunların hiçbiri genel haliyle otomatik olarak kurtarılabilirlik sağlamaz ve kurtarılabilirliği desteklemek için özel hususlar ve mekanizma geliştirmeleri gerekir. Yaygın olarak kullanılan özel bir kurtarılabilirlik durumu Sıkılık Başarısızlıktan verimli veritabanı kurtarmaya izin veren (ancak iyimser uygulamaları hariç tutan; ör. Katı CO (SCO) iyimser bir uygulamaya sahip olamaz, ancak yarı iyimser olanlar var ).

Yorum Yap: Unutmayın ki Kurtarılabilirlik veritabanı hatası oluşmasa ve veritabanı olmasa bile özellik gereklidir kurtarma başarısızlıktan gereklidir. Daha ziyade, veritabanı arızası ve ondan kurtarma ile ilgisi olmayan işlem iptallerini doğru bir şekilde otomatik olarak ele almak gerekir.

Dağıtım

Hesaplamanın hızlı teknolojik gelişimi ile, düşük gecikme süresi üzerinden yerel ve dağıtılmış bilgi işlem arasındaki fark ağlar veya otobüsler bulanıklaşıyor. Bu nedenle, bu tür dağınık ortamlarda yerel tekniklerin oldukça etkili kullanımı yaygındır, örn. bilgisayar kümeleri ve çok çekirdekli işlemciler. Ancak yerel tekniklerin kendi sınırlamaları vardır ve ölçeklemek için çoklu işlemciler (veya çoklu çekirdekler) tarafından desteklenen çoklu süreçler (veya iş parçacıkları) kullanırlar. Bu, eğer kendileri çoklu süreçleri kapsamaları gerekiyorsa, işlemleri genellikle dağıtılmış işlemlere dönüştürür. Bu durumlarda çoğu yerel eşzamanlılık kontrol tekniği iyi ölçeklenmez.

Dağıtılmış serileştirilebilirlik ve taahhüt sıralaması
Görmek Dağıtılmış serileştirilebilirlik içinde Seri hale getirilebilirlik

Veritabanı sistemleri haline geldikçe dağıtılmış veya dağıtılmış ortamlarda işbirliği yapmaya başladı (ör. Federasyon veritabanları 1990'ların başında ve bugünlerde Şebeke bilişim, Bulut bilişim ve ile ağlar akıllı telefonlar ), bazı işlemler dağıtıldı. Bir dağıtılmış işlem işlemin sürdüğü anlamına gelir süreçler ve uzayabilir bilgisayarlar ve coğrafi siteler. Bu, etkili bir ihtiyaç yaratır dağıtılmış eşzamanlılık denetimi mekanizmalar. Dağıtılmış bir sistemin zamanlamasının Serileştirilebilirlik özelliğini elde etme (bkz. Dağıtılmış serileştirilebilirlik ve Global serileştirilebilirlik (Modüler serileştirilebilirlik)) etkili bir şekilde, orijinal olarak yerel olarak çalışmak üzere tasarlanmış, normal serileştirilebilirlik mekanizmalarının çoğu tarafından karşılanmayan özel zorluklar ortaya çıkarır. Bu, özellikle iletişim ve bilgisayar arasında eşzamanlılık kontrol bilgilerinin maliyetli dağıtımına duyulan ihtiyaçtan kaynaklanmaktadır. gecikme. Dağıtım için bilinen tek genel etkili teknik, 1991 yılında kamuya açıklanan Taahhüt Siparişi'dir. patentli ). Taahhüt siparişi (Taahhüt siparişi, CO; Raz 1992 ) işlemlerin kronolojik commit olayları sırasının kendi ilgili öncelik sırası. CO, eşzamanlılık kontrol bilgilerinin dağıtımını gerektirmez ve genel etkili bir çözüm sunar (dürüst, yüksek performanslı ve ölçeklenebilir ) hem dağıtılmış hem de küresel serileştirilebilirlik için, ayrıca farklı (herhangi) eşzamanlılık kontrol mekanizmalarına sahip veritabanı sistemleri (veya diğer işlem nesneleri) içeren heterojen bir ortamda.[1] CO, hangi mekanizmanın kullanıldığına kayıtsızdır, çünkü herhangi bir işlem operasyon planlamasına müdahale etmez (çoğu mekanizmanın kontrol ettiği) ve yalnızca commit olaylarının sırasını belirler. Böylelikle CO, dağıtılmış ve küresel serileştirilebilirlik elde etmek için diğer tüm mekanizmaların verimli dağıtımını ve ayrıca farklı (herhangi) yerel mekanizmaların bir karışımının dağıtımını sağlar. Böyle bir çözümün varlığı, 1991 yılına kadar ve daha sonra da birçok uzman tarafından yanlış anlaşılma nedeniyle "olasılık dışı" olarak kabul edildi. CO çözümü (görmek Alıntılar içinde Global serileştirilebilirlik ). CO'nun önemli bir yan faydası, otomatik dağıtılmış kilitlenme çözümü. CO'nun aksine, hemen hemen tüm diğer teknikler (CO ile birleştirilmediğinde), dağıtılmış kilitlenmeler (küresel kilitlenme olarak da adlandırılır) özel işlem gerektiren. CO aynı zamanda sonuçta ortaya çıkan zamanlama özelliğinin adıdır: Bir çizelge, işlemlerinin kronolojik sıralaması ilgili işlemlerle uyumluysa CO özelliğine sahiptir. öncelik (kısmi) sipariş.

SS2PL yukarıda bahsedilen bir CO varyantıdır (özel durum) ve bu nedenle dağıtılmış ve global serileştirilebilirlik elde etmek için de etkilidir. Aynı zamanda otomatik dağıtılmış kilitlenme çözümü (CO'nun yayınlanmasından sonra bile araştırma literatüründe gözden kaçan bir gerçek) ve Katılık ve dolayısıyla Kurtarılabilirlik sağlar. Bilinen verimli kilitleme tabanlı uygulamalarla birlikte bu istenen özelliklere sahip olmak, SS2PL'nin popülerliğini açıklamaktadır. SS2PL, 1980'den beri Dağıtılmış ve Küresel serileştirilebilirliği verimli bir şekilde elde etmek için kullanıldı ve de facto standardı onun için. Bununla birlikte, SS2PL engelleyici ve kısıtlayıcıdır (kötümser) ve geleneksel veritabanı sistemlerinden farklı sistemlerin dağıtımının ve kullanımının yaygınlaşmasıyla (örn. Bulut bilişim ), daha az kısıtlayıcı CO türleri (ör. İyimser CO ) daha iyi performans için gerekli olabilir.

Yorumlar:

  1. Dağıtılmış çakışma serileştirilebilirliği genel haliyle mülkün verimli bir şekilde elde edilmesi zordur, ancak özel durumu sayesinde verimli bir şekilde elde edilir. Dağıtılmış CO: Her yerel bileşenin (ör. Yerel bir DBMS) hem bir tür CO sağlaması hem de özel bir oy sıralama stratejisi için İki aşamalı kesinleştirme protokolü (2PC: işlemek için kullanılır dağıtılmış işlemler ). Genel Dağıtılmış CO'dan farklı olarak, Dağıtılmış SS2PL tüm yerel bileşenler SS2PL tabanlı olduğunda otomatik olarak bulunur (her bileşende CO vardır, ima edilir ve oy sıralaması stratejisi artık otomatik olarak karşılanmaktadır). Bu gerçek 1980'lerden beri (yani SS2PL'nin CO hakkında bilgi sahibi olmadan küresel olarak var olduğu), Dağıtılmış serileştirilebilirlik ve katılık anlamına gelen verimli Dağıtılmış SS2PL için bilinmekte ve kullanılmaktadır (ör., Bkz. Raz 1992, sayfa 293; aynı zamanda ima edilmektedir Bernstein vd. 1987, sayfa 78). Daha az kısıtlı Dağıtılmış serileştirilebilirlik ve katılık, Dağıtılmış ile verimli bir şekilde elde edilebilir Katı CO (SCO) veya SS2PL tabanlı ve SCO tabanlı yerel bileşenlerin bir karışımı ile.
  2. Referanslar ve Taahhüt sıralaması hakkında: (Bernstein vd. 1987 ), CO'nun keşfedilmesinden önce 1990'da yayınlandı. CO program özelliği olarak adlandırılır. Dinamik atomisite içinde (Lynch vd. 1993, sayfa 201). CO, (Weikum ve Vossen 2001, sayfa 102, 700), ancak açıklama kısmi ve eksik CO'nun özü. (Raz 1992 ) CO algoritmalarıyla ilgili ilk hakemli ve yayın makalesi kabul edildi (ancak, eşdeğer bir Dinamik atomiklik özelliği hakkındaki yayınlar 1988'e kadar izlenebilir). Diğer CO makaleleri takip etti. (Bernstein ve Yeni Gelen 2009)[1] CO'nun dört ana eşzamanlılık kontrol yönteminden biri olduğunu ve CO'nun diğer yöntemler arasında birlikte çalışabilirlik sağlama yeteneğini not edin.
Dağıtılmış kurtarılabilirlik

Serileştirilebilirliğin aksine, Dağıtılmış kurtarılabilirlik ve Dağıtılmış katılık Dağıtılmış CO'nun elde edilme şekline benzer şekilde basit bir şekilde verimli bir şekilde elde edilebilir: Her bir veritabanı sisteminde yerel olarak uygulanmaları ve bir oy sıralaması stratejisi kullanmaları gerekir. İki aşamalı kesinleştirme protokolü (2PC; Raz 1992, sayfa 307).

Yukarıda belirtildiği gibi, Dağıtılmış SS2PL Dağıtılmış katılık (kurtarılabilirlik) ve Dağıtılmış dahil taahhüt siparişi (serileştirilebilirlik), gerekli oy sıralama stratejisini otomatik olarak kullanır ve her (yerel) veritabanı sisteminde yerel olarak kullanıldığında (küresel olarak) elde edilir (bilindiği ve uzun yıllardır kullanıldığı gibi; aslında yerellik sınır tarafından tanımlanır) 2PC katılımcısının (Raz 1992 ) ).

Dikkat edilmesi gereken diğer önemli konular

Eşzamanlılık kontrol mekanizmalarının tasarımı genellikle aşağıdaki konulardan etkilenir:

Kurtarma

Tüm sistemler arızalara ve işleme eğilimlidir kurtarma başarısızlıktan bir zorunluluktur. Eşzamanlılık kontrol mekanizması tarafından dikte edilen oluşturulan programların özellikleri, kurtarmanın etkinliğini ve verimliliğini etkileyebilir. Örneğin, Katılık özelliği (bu bölümde bahsedilmiştir) Kurtarılabilirlik yukarıda), genellikle verimli bir kurtarma için arzu edilir.

Çoğaltma

Yüksek kullanılabilirlik için veritabanı nesneleri genellikle çoğaltılmış. Aynı veritabanı nesnesinin replikalarının güncellemelerinin senkronize tutulması gerekir. Bu, eşzamanlılık kontrolünün yapılma şeklini etkileyebilir (örneğin, Gray ve diğerleri, 1996[2]).

Ayrıca bakınız

Referanslar

  • Philip A. Bernstein, Vassos Hadzilacos, Nathan Goodman (1987): Veritabanı Sistemlerinde Eşzamanlılık Kontrolü ve Kurtarma (ücretsiz PDF indirme), Addison Wesley Publishing Company, 1987, ISBN  0-201-10715-5
  • Gerhard Weikum Gottfried Vossen (2001): İşlem Bilgi Sistemleri, Elsevier, ISBN  1-55860-508-8
  • Nancy Lynch Michael Merritt, William Weihl, Alan Fekete (1993): Eşzamanlı ve Dağıtık Sistemlerde Atomik İşlemler , Morgan Kaufmann (Elsevier), Ağustos 1993, ISBN  978-1-55860-104-8, ISBN  1-55860-104-X
  • Yoav Raz (1992): "Atomik Taahhüt Kullanan Birden Çok Otonom Kaynak Yöneticisinin Heterojen Ortamında Taahhüt Sıralaması veya Serileştirilebilirliğini Garanti Etme Prensibi." (PDF ), Çok Büyük Veri Tabanlarına İlişkin Onsekizinci Uluslararası Konferans Bildirileri (VLDB), s. 292-312, Vancouver, Kanada, Ağustos 1992. (ayrıca DEC-TR 841, Digital Equipment Corporation, Kasım 1990)

Alıntılar

İşletim sistemlerinde eşzamanlılık kontrolü

Çoklu görev işletim sistemleri, özellikle gerçek zamanlı işletim sistemleri İşletim sisteminin üzerinde çalıştığı donanımın sınırlamaları nedeniyle herhangi bir anda yalnızca bir veya birkaç görev çalışıyor olsa bile, üzerinde çalışan tüm görevlerin hepsinin aynı anda çalıştığı yanılsamasını sürdürmek gerekir. . Bu tür çoklu görev, tüm görevler birbirinden bağımsız olduğunda oldukça basittir. Bununla birlikte, birkaç görev aynı kaynağı kullanmaya çalıştığında veya görevler bilgi paylaşmaya çalıştığında, karışıklığa ve tutarsızlığa yol açabilir. Görevi eşzamanlı hesaplama bu sorunu çözmektir. Bazı çözümler, veritabanlarında kullanılan kilitlere benzer "kilitler" içerir, ancak kendi başlarına sorunlara neden olma riski taşır. kilitlenme. Diğer çözümler Engellemeyen algoritmalar ve Oku-kopyala-güncelle.

Ayrıca bakınız

Referanslar

  • Andrew S. Tanenbaum, Albert S Woodhull (2006): İşletim Sistemleri Tasarımı ve Uygulaması, 3. Baskı, Prentice Hall, ISBN  0-13-142938-8
  • Silberschatz, Avi; Galvin, Peter; Gagne, Greg (2008). İşletim Sistemleri Kavramları, 8. baskı. John Wiley & Sons. ISBN  978-0-470-12872-5.