İşlemler ve eşzamanlılık
İki oturumu yan yana açarak ACID özelliklerini, yalıtım düzeylerinin izin verdiği anormallikleri, kilitleri, MVCC’yi ve kilitlenmeleri PostgreSQL ve MySQL’de canlı gözlemlersin.
Seviye 301 · 18 ders · 15 pratik lab
Dersler
ACID
- BEGIN, COMMIT ve ROLLBACK
- Kayıt noktaları
- Bölünmezlik ve kalıcılık: bir çökme deneyi
- Tutarlılık ve ertelenmiş kısıtlar
- Kısa görev: güvenli para aktarımı
Yalıtım
- Anormallikler: kirli, tekrarlanamaz ve hayalet okuma
- Yalıtım düzeyleri ve motorlar arasındaki farklar
- MVCC ve anlık görüntüler
- Yazma çarpıklığı ve SERIALIZABLE
- Kayıp güncelleme ve önleme yolları
- Kısa görev: üç senaryo için doğru yalıtım düzeyi
Kilitler
- Satır ve tablo kilitleri
- SELECT … FOR UPDATE ve SKIP LOCKED
- Kilitlenme: oluşturmak, okumak, önlemek
- Bekleyen kilitleri izlemek
- Danışma kilitleri
- İyimser kilitleme: sürüm sütunu
- Bitirme görevi: bilet satışında kapasiteden fazla satışı önle
Pratik lablar
- Hatalı toplu güncellemeyi geri al: Yanlış koşulla binlerce satırı değiştiren bir UPDATE'i işlem içinde fark edip ROLLBACK ile geri al.
- Kısmi hatada savepoint'e dön: Çok adımlı sipariş kaydında yalnızca kupon adımı hata verince işlemin tamamını değil o adımı geri al.
- Ertelenmiş kısıtla döngüsel kayıt ekle: Birbirini gösteren iki kaydı ertelenebilir yabancı anahtarla tek işlemde ekle ve neden gerektiğini göster.
- Tekrarlanamayan okumayı canlandır: İki oturum açıp READ COMMITTED'da aynı sorgunun işlem içinde farklı sonuç verdiğini göster.
- Rapor için doğru yalıtım düzeyini seç: Uzun bir ay sonu raporunun tutarsız toplamlar üretmesini doğru yalıtım düzeyiyle engelle.
- Nöbet çizelgesindeki yazma çarpıklığını önle: İki doktorun aynı anda nöbetten çıkabildiği hatayı canlandır ve SERIALIZABLE ya da kilitle düzelt.
- Kaybolan stok güncellemesini göster: İki oturumun aynı stoğu okuyup yazmasıyla bir satışın kaybolduğunu adım adım göster.
- Sürüm sütunuyla iyimser kilit ekle: Ürün düzenleme ekranına sürüm sütunu ekle ve eski veriyle yapılan kaydı reddet.
- Konser biletinde fazla satışı engelle: Martı Bilet'te eşzamanlı 50 alıcıyla koltuk sayısının aşıldığını kanıtla ve atomik güncellemeyle düzelt.
- FOR UPDATE ile satırı kilitle: Bir hesabı FOR UPDATE ile kilitleyip ikinci oturumun nasıl beklediğini gözlemle.
- SKIP LOCKED ile iş kuyruğu kur: Mavikuş Kargo'nun etiket basım işlerini üç işçinin çakışmadan almasını SKIP LOCKED ile sağla.
- Gece işini danışma kilidiyle tekilleştir: Aynı anda iki kez başlayan faturalama işinin ikinci kopyasını danışma kilidiyle hemen çıkacak hale getir.
- Kilitlenmeyi bilerek oluştur: İki oturumda ters sırayla satır güncelleyerek bir kilitlenme oluştur ve hata mesajını oku.
- Bekleyen kilidin sahibini bul: Takılan bir güncellemenin hangi oturumu beklediğini sistem görünümleriyle bul ve sorunu çöz.
- Sık kilitlenen aktarımı yeniden tasarla: Yoğun saatte kilitlenen hesap aktarım kodunu sabit kilit sırası ve yeniden deneme ile düzelt.
Kurs hakkında
İki oturumu yan yana açarak ACID özelliklerini, yalıtım düzeylerinin izin verdiği anormallikleri, kilitleri, MVCC’yi ve kilitlenmeleri PostgreSQL ve MySQL’de canlı gözlemlersin.
Ne öğreneceksin
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 301 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.