Veritabanı motorunun içi: depolama, indeks, günlük
Sayfaları, tampon havuzunu, B+ağacını, önceden yazma günlüğünü ve MVCC’yi inceler; Python ile küçük bir anahtar-değer deposu yazarak veritabanlarının içini kavrarsın.
Seviye 501 · 15 ders · 12 pratik lab
Dersler
Depolama
- Diskte sayfalar ve dosyalar
- Satır düzeni ve sayfa içi yapı
- Tampon havuzu ve sayfa değiştirme
- pageinspect ile gerçek bir sayfaya bakmak
- Kısa görev: sabit boyutlu sayfalarla yığın dosyası
İndeks yapıları
- B+ağacı: arama, ekleme, bölünme
- LSM ağaçları ve sıkıştırma
- Hash indeksleri
- Kısa görev: Python’da küçük bir B+ağacı
Kurtarma ve eşzamanlılık
- Önceden yazma günlüğü ilkesi
- Denetim noktaları ve çökme sonrası kurtarma
- MVCC nasıl gerçeklenir
- İki aşamalı kilitleme
- Sorgu yürütücü: yineleyici modeli
- Bitirme görevi: günlük tutan ve çökmeye dayanıklı anahtar-değer deposu
Pratik lablar
- Bir sayfanın içini pageinspect ile oku: Küçük bir tabloya satır ekleyip pageinspect ile sayfadaki satır işaretçilerini ve boş alanı incele.
- Satır boyutunun sayfa sayısına etkisini ölç: Aynı veriyi farklı sütun sıralarıyla sakla ve hizalama boşluğunun kapladığı alanı hesapla.
- Python'da LRU tampon havuzu yaz: Sabit sayfa dosyası üzerinde çalışan, isabet oranını raporlayan küçük bir LRU tampon havuzu yaz.
- B+ ağacında bir anahtarın yolunu izle: Verilen bir B+ ağacı çiziminde bir anahtarı aramak için okunan sayfaları sırayla yaz ve indeks derinliğini gerçek tabloda ölç.
- Sayfa bölünmesini canlandır: Küçük kapasiteli bir B+ ağacına sıralı ve rastgele anahtarlar ekleyerek bölünme sayılarını karşılaştır.
- Mini LSM ağacında sıkıştırma uygula: Bellek tablosunu diske döken ve iki dosyayı birleştirip silinmiş anahtarları temizleyen bir LSM taslağı yaz.
- WAL kaydını işlem sırasıyla eşle: Bir INSERT ve UPDATE sonrası üretilen WAL kayıtlarını bul ve hangi işleme ait olduklarını eşle.
- Denetim noktası sıklığının etkisini ölç: Denetim noktası aralığını değiştirip yazma miktarını ve çökme sonrası kurtarma süresini karşılaştır.
- Günlüklü anahtar-değer deposuna kurtarma ekle: Önce günlüğe yazan küçük bir anahtar-değer deposu yaz, süreci yarıda öldür ve yeniden açılışta günlükten toparla.
- Satır sürümlerini gizli sütunlarla gör: Bir satırı üç kez güncelleyip xmin ve xmax değerleriyle hangi sürümün kime göründüğünü açıkla.
- İki aşamalı kilitlemeyi çizelgeyle göster: Verilen üç işlem çizelgesinden hangisinin iki aşamalı kilitlemeye uyduğunu belirle ve veritabanında dene.
- Yineleyici modelle mini yürütücü yaz: Tarama, süzme ve birleştirme işleçlerini open-next-close arayüzüyle Python'da yazıp bir sorgu planı çalıştır.
Kurs hakkında
Sayfaları, tampon havuzunu, B+ağacını, önceden yazma günlüğünü ve MVCC’yi inceler; Python ile küçük bir anahtar-değer deposu yazarak veritabanlarının içini kavrarsın.
Ne öğreneceksin
- Depolama
- İndeks yapıları
- Kurtarma ve eşzamanlılık
Ön koşullar
Aynı yolun 401 düzeyine kadar olan konularında deneyimli 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 501 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.