Proses Mimarisi

Postgresql, multi-process mimarisine sahip istemci-sunucu tipli ilişkisel veritabanı yönetim sistemidir ve tek bir sunucuda çalışır. İstemci, PostgreSQL sunucusuna bir istek gönderir ve PostgreSQL sunucusu istemci isteğine bir yanıt verir. İstemci ve sunucu genelde farklı sunucularda çalışırken aralarındaki bağlantı TCP/IP ağ bağlantısı üzerinden olur. PostgreSQL sunucusu, istemciden gelen birden çok sessionları eşzamanlı  yönetir, bunu her session için bir proses başlatarak sağlar.

Sunucu prosesi olan postgres prosesi veritabanı dosyalarını yönetir, istemci uygulamalarından gelen bağlantıları kabul eder ve istemci adına eylemler gerçekleştirir. Ana sunucu prosesi olan postgres prosesinin, her yeni bağlantı için yeni bir proses açtığını zaten yukarıda söylemiştik. Bu nedenle istemci ve sunucu prosesleri, ana sunucu prosesinin müdahalesi olmadan birbirleriyle iletişim kurar.  PostgreSQL sunucusu aşağıdaki gibi kabaca dört alt sisteme bölünebilir:

  • Process manager
  • Query processor
  • Utilities
  • Storage manager

Process manager

PostgreSQL’i başlattığımızda başlatılan ilk proses /usr/pgsql-12/bin/postgres daemon prosesidir. Bu prosesin recovery, shared data structures/memory  alanlarını başlatmak, zorunlu ve isteğe bağlı prosesleri başlatmak gibi pek çok sorumluluğu vardır. Bu prosesler aynı zamanda utility prosesler olarak da adlandırılır ve bgwriter, checkpointer, autovacuum launcher, log writer, stats collector prosesleri gibi prosesleri içerir. Ayrıca, daemon prosesi bağlantı isteklerini dinler, istemcilerden bağlantı istekleri alır ve istemci için sunucuda backend prosesi oluşturur. (continue reading…)

Loading