PostgreSQL iç yapısı ve uzantı geliştirme
Yığın sayfalarını, satır başlıklarını, MVCC görünürlüğünü, WAL kayıtlarını ve planlayıcıyı araçlarla inceler; C ile küçük bir uzantı yazarak PostgreSQL’in içini kavrarsın.
Seviye 501 · 13 ders · 12 pratik lab
Dersler
Depolama
- Yığın sayfaları ve satır sürümleri
- xmin, xmax ve görünürlük kuralları
- TOAST: büyük değerlerin saklanması
- Boş alan ve görünürlük haritaları
- Kısa görev: bir UPDATE’in sayfadaki izini sür
Günlük ve işlem
- pg_waldump ile WAL kayıtları
- İşlem kimliği taşması ve dondurma
- HOT güncellemeleri
- Kısa görev: taşma uyarısı veren veritabanını kurtar
Planlayıcı ve uzantılar
- Planlayıcının içi: yollar ve maliyet
- Kancalar ve uzantı yapısı
- C ile bir fonksiyon uzantısı yazmak
- Bitirme görevi: kendi ölçüm uzantını yaz
Pratik lablar
- Bir UPDATE'i sayfada izle: Bir satırı güncelleyip pageinspect ile eski ve yeni sürümün sayfadaki yerini ve işaretlerini göster.
- HOT güncellemenin oranını artır: fillfactor ve indeks seçimini değiştirerek bir tabloda HOT güncelleme oranını yükselt ve istatistikten ölç.
- Görünürlük kuralını elle uygula: Verilen xmin, xmax ve anlık görüntü değerleriyle hangi sürümlerin görüneceğini hesapla ve gerçek sorguyla doğrula.
- Büyük değerin TOAST'a gittiğini gör: Uzun bir metin ekleyip TOAST tablosunu bul ve ana tablo ile TOAST boyutlarını karşılaştır.
- Sıkıştırma yöntemini değiştir: Bir JSONB sütununun sıkıştırma yöntemini değiştirip yer ve okuma hızı farkını ölç.
- Boş alan haritasını yorumla: Silmeler sonrası boş alan ve görünürlük haritalarını uzantılarla okuyup yeni satırların nereye gideceğini öngör.
- WAL kayıtlarını pg_waldump ile oku: Bir tabloya ekleme yapıp ilgili WAL kayıtlarını pg_waldump ile bul ve türlerini açıkla.
- Dondurma yaşını izle: Veritabanı ve tablo bazında işlem kimliği yaşını hesaplayıp en riskli tabloları sırala.
- Sarma uyarısı veren veritabanını kurtar: Sarma uyarısı veren laboratuvar veritabanında engelleyen işlemi bul ve dondurma VACUUM'u ile güvenli bölgeye getir.
- Planın yol maliyetlerini karşılaştır: Maliyet ayarlarını değiştirip planlayıcının indeks ve sıralı tarama arasındaki seçimini nasıl değiştirdiğini göster.
- C ile basit bir fonksiyon eklentisi yaz: İki sayının en büyük ortak bölenini hesaplayan C fonksiyonunu eklenti olarak derle ve yükle.
- Sorgu sayan kanca eklentisi yaz: Yürütücü kancasıyla sorgu sayısını ve süresini toplayan, bir görünümle sunan küçük bir eklenti yaz.
Kurs hakkında
Yığın sayfalarını, satır başlıklarını, MVCC görünürlüğünü, WAL kayıtlarını ve planlayıcıyı araçlarla inceler; C ile küçük bir uzantı yazarak PostgreSQL’in içini kavrarsın.
Ne öğreneceksin
- Depolama
- Günlük ve işlem
- Planlayıcı ve uzantılar
Ö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.