1 puan yazan GN⁺ 2023-10-01 | 1 yorum | WhatsApp'ta paylaş
  • Bu yazı, yaklaşık 50 yıl önce icat edilmiş yaygın bir eşzamanlılık kontrolü olan Two-Phase Locking (2PL) kavramını ele alıyor.
  • 2PL, daha güçlü yalıtım seviyeleri olan Serializability ve Opacity sağlar ve birden fazla veri öğesini kapsayan işlemler için kullanılır.
  • Yazar, 2PL'nin sadeliği ile güçlü yalıtım seviyelerini başlıca avantajları olarak vurguluyor.
  • Ancak 2PL'nin okuma ölçeklenebilirliği zayıftır ve live-lock ilerlemesi gibi bir dezavantajı vardır.
  • Yazar, 2PL'nin sorunlarını çözen yeni bir eşzamanlılık kontrolü olan Two-Phase Locking Starvation-Free'yi (2PLSF) tanıtıyor.
  • 2PLSF, daha iyi bir reader-writer lock kullanır ve en yüksek düzeyde blocking progress olan starvation-free işlemler sunar.
  • 2PLSF, belirli türdeki çakışmaları çözmede etkilidir; bu nedenle bazı çakışmalar ortaya çıksa bile ölçeklenebilir.
  • Yazar, 2PLSF'nin 2PL'ye kıyasla büyük bir iyileşme olduğunu ve bunu bir jackhammer ile kazma arasındaki farka benzeterek sonuca varıyor.
  • Yazıda ayrıca 2PLSF algoritmasına ilişkin makale ve kaynak kod bağlantıları da yer alıyor; bunlar daha fazla öğrenme için başvurulabilir.

1 yorum

 
GN⁺ 2023-10-01
Hacker News görüşleri
  • İki aşamalı kilitleme (2PL) ve ilk geliştirilişinden 50 yıl sonra hâlâ ne kadar ilgili olduğuna dair bir makale.
  • Bir yorumcu, konuya yeni başladığını ve dağıtık mikroservis mimarileri için kolayca dağıtılabilecek bir tutarlılık çözümü aradığını söylüyor.
  • Aynı yorumcu, çok iş parçacıklı çoklu işlem ortamında belirsizliği test eden Python kodunu paylaşıyor.
  • Başka bir yorumcu, önce gerçekten bir kilitleme algoritmasına ihtiyaç olup olmadığının düşünülmesini ve eşzamanlılık ile kilitlemeyi azaltmak için isteklerin toplu işlenmesini öneriyor.
  • Yeni bir yaklaşım olarak 2PL'nin geliştirilmiş sürümü diye tanıtılan serializable snapshot isolation (SSI) ile bunun nasıl karşılaştırıldığına dair bir soru soruluyor.
  • Bir yorumcu, yayımlanan tüm bağlantıların HTTPS olması gerektiğine dair yeni bir Hacker News politikası gerektiğini öneriyor.
  • Yazarın, 2PL'nin aslında olması gereken şeyin bu olduğunu savunduğu 2PLSF hakkındaki makalesine bir bağlantı paylaşılıyor.
  • Atomik işlemlerin ölçeklenebilirliğini artırmak için rastgele kuyruklar eklenmesi öneriliyor.
  • Wait-Or-Die yaklaşımında transaction ID alıp eklemenin gerekli olup olmadığı soruluyor; bunun yerine thread ID veya rastgele sayı kullanılabileceği öne sürülüyor.
  • Bir yorumcu, salt okunur transaction'lar bağlamında gevşetilmiş AVL ağacına ilişkin son şekli anlayamadığını söylüyor.
  • Gevşek bağlı API çağrıları bağlamında 2PL'nin uygulanabilirliğine dair bir soru soruluyor.
  • Yazma transaction'larının çoğunun yoğun rekabet altındaki birçok nesne üzerinde tutarlı okuma gerektirdiği, ancak gerçek yazmanın çoğu zaman yalnızca bir veya iki nesneyle sınırlı olduğu belirtilerek 2PL'nin bunu çözüp çözmediği soruluyor.