İşlemleri / okuma-yazma kilitlerini çözmede hangi algoritmaları / okuma konusunu önerirsiniz?


10

Basitleştirilmiş bir klasik veritabanı işlemi şu şekilde görülebilir:

  • M öğelerini okuma
  • bu okumalara dayalı bazı hesaplamalar yapmak
  • başlangıçta okunan öğeleri içerebilecek bu hesaplamalara dayanarak bazı N sonuçları yazmak.

Bu işlemleri gerçekleştirirken (aynı anda) ACID özelliklerinin korunması gerekir.

DBMS olmayan eşzamanlı sistemlerde tam olarak aynı gereksinimler (işlemsel olarak M okumalarına dayalı N güncellemeleri) bulunmaktadır.

Bu işlemleri gerçekleştirmek / çözmek için hangi algoritmaların bulunduğunu ve bu algoritmaların göreceli güçlü ve zayıf yönlerini öğrenmekle ilgileniyorum. Biraz okuma tavsiye eder misiniz? Bu kitaplar veya çevrimiçi referanslar / eğiticiler olabilir.

Açıklama:

Örneğin, naif bir algoritma, her bir işlemin tek bir global kilit alarak, aslında tek bir iş parçacığını zorlamak ve eşzamanlılığı kaldırmak olabilir. Biraz daha karmaşık bir algoritma, kilitlenmeyi önlemek için bir sıra ile bireysel öğe okuma / yazma kilitleri olacaktır). Vb, vb. Bu sorunu çözmek için çeşitli algoritmaları belgeleyen iyi bir kaynak var mı? Güçlü ve zayıf yanlarıyla sadece tek bir algoritmaya işaret eden bir cevap bile faydalı olacaktır.


3
Bu soru kesinlikle bu sitenin kapsamına girmektedir. Çalıştığınız bağlam hakkında biraz daha yazmanızı tavsiye ederim. Şu anda oldukça genel ve açık.
Dave Clarke

Tam olarak veritabanı sorusu bu yüzden yeniden ifade etmeye değer olduğunu düşünüyor musunuz? IE gibi bir şey "Ben okunabilir ve yazılabilir bir veritabanı var ve ben ACID özellikleri ile işlemsel olarak okumak ve yazmak istiyorum. Bu özellikleri sağlamak için hangi algoritmalar var"
Nick Fortescue

Soruyu yeniden silmek, aramaya çalıştığınız sorunun daha ayrıntılı bir şekilde verilmesi gibi aradığınız soruya daha yakın yanıtlarla sonuçlanabilir; şu anda sadece ipuçları veriyorsunuz. Her durumda, klasik veritabanı işlem algoritmaları istiyormuşsunuz gibi geliyor.
Dave Clarke

@Dave - teşekkürler, düzenledim. Daha iyi?
Nick Fortescue

1
Ramakrishnan ve Gehrke gibi DBMS ders kitaplarını zaten biliyor musunuz? Ve eğer bir DBMS'nin içindekileri sormuyorsanız, bir DBMS ile ilgilendiğiniz şey arasındaki farkı bize bildirmek için soruyu netleştirebilir misiniz?
Maverick Woo

Yanıtlar:


10

Weikum ve Vossen'in İşlemsel Bilgi Sistemleri kitabı , sadece işlemler değil, hem teorik hem de pratik açıdan birçok alanı kapsıyor. Yaklaşık 1000 sayfa uzunluğunda, bu yüzden sizi bir iki hafta boyunca meşgul edecek. Öte yandan, yaklaşık 10 yaşında, bu yüzden daha güncel bir şey olabilir. Doğrultusunda diğer kitaplar şunlardır Veritabanı Sistemlerinde Eşzamanlılık Kontrolü ve Kurtarma Bernstein, P., Hadzilacos, V., ve Goodman, N, Addison-Wesley, 1987 tarafından, İşleme: Kavramlar ve Teknikler Jim Gray ve Andreas Reuter ve tarafından İlkeleri İşlem SüreciPhilip A. Bernstein ve Eric Newcomer, 2009 tarafından yazılmıştır. Kütüphaneye bir gezi faydalı olabilir.

Bu alanda bir anıtsal metindir Atom İşlemleri Nancy Lynch ve ark. Resmi bir hesap ve ilgilendiğiniz çeşitli algoritmaların kanıtlarını sunar. Oldukça resmi ve sıkıcı, bu yüzden zevkinize uygun olmayabilir.

İşlem fikirlerini çok iş parçacıklı uygulamalara uygulayan Yazılım İşlem Belleğine son zamanlarda birçok çalışma ayrılmıştır . Bu konuda her yıl onlarca yayın var: wikipedia sayfası birçok referans sunuyor.


1
teşekkürler dave, özellikle "Yazılım işlem belleği" ifadesi için, bu isimle karşılaşmamıştım
Nick Fortescue

1
STM bu günlerde programlama dil araştırmalarında çok sıcak bir konudur. STM veya Aktör tabanlı programlama modellerinin gelecekteki eşzamanlı (= tümü) programlama dillerinin temeli olup olmayacağını görmek için bir yarış var.
Dave Clarke

1
STM'nin yanı sıra, bu referansların içinde aranacak belirli bir anahtar kelime MVCC'dir. Çoğu modern DBMS'de kullanılır: en.wikipedia.org/wiki/Multiversion_concurrency_control
Maverick Woo

@supercooldave Bunun bir yarış olduğundan emin değilim: Gelecek dillerin ikisini de bir dereceye kadar desteklemesi gerektiğini düşünüyorum.
Marc Hamann

@Marc Harmann: mecazi anlamda.
Dave Clarke
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.