Sobes.tech
Middle+

Eş zamanlı işlemler sırasında hangi anormallikler ortaya çıkabilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Eşzamanlı işlem yürütme sırasında aşağıdaki anomaliler ortaya çıkabilir:

  1. Kayıp Güncelleme (Lost Update): Bir işlem, diğer işlemin değişikliklerini bu değişiklikler onaylanmadan üzerine yazar.

    Zaman İşlem 1 İşlem 2
    t1 Bakiye değerini okur (örneğin, 100)
    t2 Bakiye değerini okur (örneğin, 100)
    t3 Bakiye'yi 10 artırır (Bakiye = 110)
    t4 Bakiye'yi 20 artırır (Bakiye = 120)
    t5 Değişiklikleri onaylar (Bakiye 110 olur)
    t6 Değişiklikleri onaylar (Bakiye 120 olur)

    Sonuç: İki artışa rağmen, Bakiye'nin son değeri 120'dir, 130 değil. İşlem 1'in artışı kaybolmuştur.

  2. Kirlilik Okuma (Dirty Read): Bir işlem, diğer işlemin onaylanmamış değişikliklerini okur. Değişiklikleri yapan işlem geri alınırsa, okunan veriler geçersiz olur.

    Zaman İşlem 1 İşlem 2
    t1 Bakiye'yi değiştirmeye başlar (100 -> 110)
    t2 Bakiye'yi okur (110 alır)
    t3 Değişikliği geri alır (Bakiye 100'e döner)
    t4 Bakiye = 110'u hesaplamalarda kullanır, gerçek değer 100 olmasına rağmen

    Sonuç: İşlem 2, sonunda onaylanmamış verilere dayanır.

  3. Tekrarlanmayan Okuma (Non-Repeatable Read): Aynı işlem sırasında, aynı satır tekrar tekrar okunduğunda farklı değerler alınır çünkü başka bir işlem bu satırda değişiklik yapıp onaylamıştır.

    Zaman İşlem 1 İşlem 2
    t1 Bakiye'yi okur (100 alır)
    t2 Bakiye'yi 110 yapar ve onaylar
    t3 Bakiye'yi tekrar okur (110 alır, 100 yerine)

    Sonuç: Bakiye, aynı işlem içinde değiştiği için, yanlış sonuçlara yol açabilir.

  4. Hayalet Okuma (Phantom Read): Tekrarlanmayan okuma gibi görünür, ancak mevcut satırların eklenmesi veya silinmesiyle ilgilidir ve sorgu sonuçlarını etkiler.

    Zaman İşlem 1 İşlem 2
    t1 SELECT COUNT(*) FROM Orders WHERE Status = 'Pending' sorgusunu çalıştırır (5 sonucu alır)
    t2 Yeni bir 'Pending' durumu olan sipariş ekler ve onaylar
    t3 SELECT COUNT(*) FROM Orders WHERE Status = 'Pending' sorgusunu tekrar çalıştırır (6 sonucu alır)

    Sonuç: Sorgu tekrar çalıştırıldığında, ilk okuma sırasında olmayan "hayalet" satırlar görünür.

Bu anomaliler, farklı izolasyon seviyeleri kullanılarak önlenir.