Örnek Üzerinden RDBMS’lerde Transaction Isolation Seviyeleri

  1. Read Uncommitted, kirli data okumanın (dirty read) problem oluşturmadığı durumlarda kullanılır. Bir oyundaki aktif kullanıcı sayısını gösterdiğimiz ekranda Read Uncommitted ile toplam oyuncu sayısını okuyabiliriz çünkü 2 eksik 1 fazla sayı vermemiz çok önemli olmayacaktır.
  2. Read Committed, oyuncunun oyuna aynı anda sadece bir cihazdan login olmasını istediğimiz ve login durumunda DB’deki bir kolonu işaretlediğimiz bir senaryoda kullanılamaz. Oyuncu iki farklı cihazdan eş zamanlı olarak login isteklerini gönderdiğinde bu izolasyon seviyesinde ‘Nonrepetable Read’ olabileceği için oyuncunun çift giriş yapamayacağını garanti edemeyiz.
  3. Repetable Read, ‘Nonrepetable Read’i engeller, önceki senaryoda oyuncunun oyuna sadece bir giriş yapabileceği senaryoda kullanılabilir.
  4. Serializable, puan tablosundan bir oyuncunun bütün puanlarını toplamak istediğimiz durumda kullanılabilir. Bu izolasyon seviyesinde ‘Phantom Read’, ‘Nonrepetable Read’ ve ‘Dirty Read’ engellendiği için oyuncunun puanı anlık değişimlerden etkilenmeden doğru bir şekilde hesaplanıp oyuncuya gösterilebilir. Burada RDBMS puan tablosunda ‘Range Lock’ tutarak gerekli tutarlılığı sağlar.

--

--

--

Full stack dad of two and just curious about things. Stories are from my twitter floods @gokhansengun. Main blog is www.gokhansengun.com

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Gökhan Şengün

Gökhan Şengün

Full stack dad of two and just curious about things. Stories are from my twitter floods @gokhansengun. Main blog is www.gokhansengun.com

More from Medium

Role of start() and run() in Multithreading in Java

Event Handling

How to Perform Functional API Testing Correctly

Flatten the 2D Nested List