Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
PostgreSQL Nedir? SQL Server Geliştiricisi için Mimari: Process'ler, Shared Buffers, WAL ve MVCC
PostgreSQL her bağlantı için ayrı bir işletim sistemi process'i başlatır, belleğin çoğunu işletim sisteminin cache'ine bırakır ve bir satırın eski sürümünü ayrı bir version store'da değil tablonun içinde tutar; SQL Server bilen biri için farkların çoğu buradan çıkar. Gerçek çıktılarla postmaster ve backend'ler, 97. bağlantıdaki 53300 hatası, connection pool, shared_buffers, WAL ve checkpoint, xmin/xmax ile MVCC, kavram eşlemesi, lisans ve sürüm takvimi.
MVCC, VACUUM ve Autovacuum: Dead Tuple, Bloat, HOT Update ve Transaction ID Wraparound
PostgreSQL'de UPDATE satırı yerinde değiştirmez, yeni sürüm yazar; eski sürümü VACUUM temizler ama dosyayı küçültmez, alanı yeniden kullanıma açar. 40.000 satırlık tabloyu iki katına çıkaran tek UPDATE, VACUUM FULL'un okumayı da durduran kilidi, fillfactor 80 ile %100 HOT update, tablo bazında autovacuum eşiği, açık kalan bir transaction'ın VACUUM'u durdurması ve transaction ID wraparound'a karşı freeze.