top of page

PostgreSQL Tarihçesi (1986 - 2026+)

  • Yazarın fotoğrafı: Gökhan Dedeoğlu
    Gökhan Dedeoğlu
  • 1 gün önce
  • 6 dakikada okunur

PostgreSQL'in ilişkisel veri tabanı dünyasındaki liderliğe uzanan, akademik bir projeden küresel bir açık kaynak standardına dönüşümünün kronolojik hikayesi, modern teknoloji tarihinin en ilham verici serüvenlerinden biridir. Bugün milyarlarca dolarlık devasa bulut platformlarından en kritik finans sistemlerine kadar dijital altyapının kalbinde yer alan bu sistem, başarısını agresif pazarlama stratejilerine değil; akademik bir vizyona ve otuz yılı aşan kararlı bir topluluk adanmışlığına borçludur.


Bu yazıda, Berkeley’deki bir üniversite laboratuvarında atılan ilk kod satırlarından başlayıp; günümüzün paralel sorgulama güçlerine, asenkron G/Ç (I/O) devrimlerine, bulut entegrasyonlarına ve yapay zeka çağına uzanan bu büyüleyici kronolojik yolculuğunu sürüm bazında kazandığı özellikler ile birlikte inceleyeceğiz.


1. Temel Atma ve İlk Sürümler (1986 - 1995)


1986 | POSTGRES Projesi (Başlangıç)

  • Milat: California Üniversitesi, Berkeley'de (UC Berkeley) Michael Stonebraker liderliğinde tasarlanmaya başlandı.

  • Amaç: İlişkisel veri tabanı modelinin sınırlarını aşarak nesne-ilişkisel (object-relational) yetenekleri sektöre kazandırmak.


1989 | POSTGRES 1

  • İlk sürümler resmi olarak yayımlandı. Nesne-ilişkisel veri tabanı özellikleri ve kurallara dayalı veri işleme motoru sisteme entegre edildi.


1994 | POSTGRES95 (SQL Desteği)

  • Büyük Dönüşüm: Orijinal sorgu dili olan PostQUEL yerine endüstri standardı olan SQL desteği eklendi.

  • Açık Kaynak: Kod tabanı tamamen temizlenerek proje açık kaynaklı bir yapıya kavuşturuldu.


2. PostgreSQL Çağı ve Çekirdek Özellikler (1996 - 2005)


1996 | PostgreSQL 6.0 (Adlandırma Değişikliği)

  • Projenin adı resmi olarak PostgreSQL olarak değiştirildi ve ilk büyük açık kaynak topluluk sürümü yayımlandı.

  • MVCC Desteği: Veri tutarlılığı ve eşzamanlı işlem (concurrency) performansını kökten değiştiren MVCC (Multi-Version Concurrency Control) mimarisi sisteme eklendi.


2001 | PostgreSQL 7.1 (WAL Desteği)

  • Güvenilirlik: Olası çökmelerden sonra veri kurtarmayı ve kararlılığı garanti altına alan WAL (Write-Ahead Logging) mimarisi tanıtıldı.


2003 / 2005 | PostgreSQL 8.0 (PITR ve Windows Desteği)

  • Zaman İçinde Kurtarma: Veriyi geçmişteki belirli bir ana geri döndürmeyi sağlayan PITR (Point-in-Time Recovery) özelliği eklendi.

  • Platform Bağımsızlığı: PostgreSQL, emülatör katmanlarına ihtiyaç duymadan yerel olarak Windows işletim sistemlerinde çalışabilir hale geldi.


3. Replikasyon ve Modern Veri Tipleri (2010 - 2018)


2010 | PostgreSQL 9.0 (Replikasyon & CTE)

  • Yerleşik Akış Replikasyonu (Streaming Replication): Üçüncü parti araçlara gerek kalmadan, ana sunucudan (Primary) yedek sunucuya (Standby) bayt düzeyinde asenkron veri akışı sağlayan yerleşik replikasyon mimarisi tanıtıldı.

  • Hot Standby: Yedek sunucuların sadece veri kopyalamakla kalmayıp, aynı zamanda salt okunur (read-only) sorguları kabul etmesi sağlandı. Bu sayede raporlama yükü yedek sunuculara dağıtılarak ana sunucu rahatlatıldı.

  • CTE (Common Table Expressions): Karmaşık sorguları daha okunabilir hale getiren ve hiyerarşik/özyinelemeli (recursive) sorgular yazmayı sağlayan WITH ifadesi desteği eklendi.


2011 | PostgreSQL 9.1

  • Senkron Replikasyon (Synchronous Replication): Veri güvenliğini en üst düzeye çıkarmak için, yazma işlemlerinin ana sunucunun yanı sıra en az bir yedek sunucuya da başarıyla yazıldığından emin olmayı sağlayan "sıfır veri kaybı" (Zero Data Loss) modu eklendi.

  • Foreign Data Wrappers (FDW): SQL/MED standardına uygun olarak, PostgreSQL içerisinden harici veri tabanlarına veya dosyalara (CSV, uzak PostgreSQL vb.) sanki yerel bir tabloymuş gibi erişim sağlayan altyapı tanıtıldı.

  • Unlogged Tables: Çökme anında veri garantisi istemeyen, geçici performans kazanımları için WAL (Write-Ahead Log) günlüklerine yazılmayan yüksek hızlı tablo tipi getirildi.


2012 | PostgreSQL 9.2

  • Index-Only Scans: Eğer bir sorgunun ihtiyaç duyduğu tüm sütunlar indeksin içindeyse, veri tabanının ana tablo sayfalarına (heap) gitmeden doğrudan indeksten yanıt dönebilmesi sağlandı. Bu durum disk G/Ç (I/O) yükünü muazzam ölçüde azalttı.

  • JSON Desteği: NoSQL dünyasına ilk adım atılarak, metin tabanlı ilk yerleşik JSON veri tipi ve temel doğrulama mekanizmaları sisteme eklendi.

  • Range Types: Belirli veri aralıklarını (örneğin iki tarih veya sayı aralığı) tek bir sütunda saklama ve bu aralıkların çakışıp çakışmadığını indeksler üzerinden hızlıca sorgulama yeteneği getirildi.


2013 | PostgreSQL 9.3 (Materialized View)

  • Materialized Views: Sorgu sonuçlarının fiziksel olarak diske kaydedilmesini ve istendiğinde (REFRESH MATERIALIZED VIEW) güncellenmesini sağlayan, özellikle analitik ve raporlama performansını katlayan yapı tanıtıldı.

  • LATERAL Joins: Bir join işlemi sırasında, sağdaki alt sorgunun soldaki tablonun sütun değerlerine dinamik bir parametre gibi erişebilmesini sağlayan gelişmiş SQL yeteneği eklendi.

  • Yazılabilir FDW (Writeable FDW): Uzaktaki veri kaynaklarına FDW üzerinden sadece okuma değil, INSERT, UPDATE ve DELETE işlemleri yapabilme yeteneği kazandırıldı.


2014 | PostgreSQL 9.4 (JSONB Devrimi)

  • JSONB Devrimi: JSON verilerini metin olarak değil, ayrıştırılmış ikili (binary) formatta saklayan JSONB veri tipi tanıtıldı. JSONB ile veriler üzerinde GIN indeksleri kurulabilir hale geldi ve PostgreSQL, performans olarak saf NoSQL veri tabanlarıyla yarışır konuma ulaştı.

  • Mantıksal Kod Çözme (Logical Decoding): WAL kayıtlarının akışını mantıksal veri değişikliklerine (SQL ifadelerine benzer yapılara) dönüştüren altyapı eklendi. Bu, gelecekteki gelişmiş replikasyon ve CDC (Change Data Capture) sistemlerinin temelini oluşturdu.

  • Replikasyon Yuvaları (Replication Slots): Yedek sunucu çevrimdışı olduğunda, ana sunucunun yedek sunucu geri gelene kadar ihtiyaç duyulan WAL dosyalarını silmesini engelleyen güvenli mimari eklendi.


2016 | PostgreSQL 9.5

  • UPSERT (ON CONFLICT): Geliştiricilerin yıllardır beklediği, bir kayıt eklenirken benzersizlik kısıtlaması (unique constraint) çakışması yaşanırsa hata vermek yerine kaydı güncelleyen (INSERT ... ON CONFLICT DO UPDATE) yapı sisteme eklendi.

  • Satır Düzeyinde Güvenlik (Row-Level Security - RLS): Aynı tablo içerisindeki verilerin, sorguyu çalıştıran kullanıcının yetkilerine göre filtrelenerek sadece izin verilen satırların gösterilmesini sağlayan kurumsal güvenlik mimarisi getirildi.

  • BRIN İndeksleri: Çok büyük ve doğal olarak sıralı (örn. zaman damgası veya sıralı id içeren) tablolarda, blokların minimum ve maksimum değerlerini tutarak megabaytlar yerine kilobaytlar mertebesinde yer kaplayan blok aralığı indeksleri tanıtıldı.


2016 | PostgreSQL 9.6

  • Paralel Sorgu (Parallel Query) Başlangıcı: PostgreSQL'in tek bir sorgu için yalnızca tek bir işlemci çekirdeği kullanma sınırı yıkıldı. SELECT sorgularında sequential scan, join ve agregasyon işlemlerinin birden fazla CPU çekirdeğine dağıtılarak paralel yürütülmesi sağlandı.

  • Phrase Search (Tümce Arama): Tam metin arama (Full-Text Search) özelliğine, kelimelerin sadece metinde geçmesini değil, belirli bir sıra ve yakınlıkla (örn. "veri" kelimesinden hemen sonra "tabanı" gelmesi) aranabilmesini sağlayan yetenek eklendi.


2017 | PostgreSQL 10

  • Yerel Mantıksal Replikasyon (Logical Replication): Tablo veya veri tabanı bazında, hatta satır/sütun filtresi uygulayarak farklı PostgreSQL sürümleri arasında bile seçici veri replikasyonu yapılmasına olanak tanıyan yayınla/abone ol (Publish/Subscribe) mimarisi geldi.

  • Yerel Tablo Bölümleme (Declarative Partitioning): Büyük tabloları listelere veya aralıklara göre alt tablolara bölme işlemi otomatikleştirildi. Tetikleyicilere (trigger) gerek kalmadan temiz bir söz dizimiyle yerel partition mimarisi oluşturuldu.

  • SCRAM-SHA-256 Güvenliği: Eski ve zayıf kalan MD5 şifreleme yöntemi yerine, istemci-sunucu kimlik doğrulamasında çok daha güvenli olan SCRAM-SHA-256 protokolü varsayılan seçeneklerden biri haline getirildi.


2018 | PostgreSQL 11

  • Gelişmiş Bölümleme ve Budama (Partition Pruning): Sorgu planlayıcısı, sorgunun hedeflemediği alt tabloları çok daha hızlı tespit edip eleyerek büyük veri kümelerindeki arama performansını katladı. Ayrıca HASH tabanlı bölümleme desteği eklendi.

  • JIT (Just-In-Time) Derleme: Karmaşık SQL sorgularındaki ifadeleri ve hesaplamaları çalışma zamanında doğrudan makine koduna derleyen LLVM tabanlı JIT mimarisi tanıtıldı; veri ambarı (OLAP) tipi sorgular hızlandırıldı.

  • Stored Procedures (Saklı Yordamlar): İçerisinde aktif olarak transaction yönetimi (COMMIT ve ROLLBACK) yapılabilen, standart fonksiyonlardan ayrışan gerçek PROCEDURE yapısı eklendi.


2018 | PostgreSQL 12

  • Pluggable Table Storage Interface: PostgreSQL'in depolama motorunu esnekleştiren ve gelecekte farklı depolama motorlarının (örn. zedstore gibi sütun tabanlı yapılar) sisteme entegre edilmesine imkan tanıyan yeni bir soyutlama katmanı mimariye eklendi.

  • Generated Columns: Değeri aynı satırdaki diğer sütunların hesaplanmasıyla otomatik olarak belirlenen ve diske yazılan hesaplanmış sütun desteği geldi.

  • REINDEX CONCURRENTLY: Üretim (production) ortamlarında tabloları kilitlemeden, canlı sistem çalışırken indekslerin arka planda yeniden oluşturulabilmesi sağlandı.


4. Küresel Standart ve Performans Çağı (2020 - 2025)


2020 | PostgreSQL 13

  • Performans ve Depolama Optimizasyonu: B-Tree indekslerinde mükerrer verilerin elenmesi (B-Tree Index Deduplication) özelliği getirildi. Bu sayede indeks boyutları ciddi oranda (%30-40) küçüldü ve arama performansları arttı.

  • Gelişmiş Sorgu Planlama: Artımlı sıralama (Incremental Sorting) yeteneği eklendi. Zaten kısmen sıralı olan verilerin tam olarak sıralanması işlemleri büyük ölçüde hızlandı.

  • Paralel Vakumlama (Parallel Vacuum) ve Genişletilmiş İstatistik: vacuumdb komutuna paralel vakumlama yeteneği eklenerek indekslerin daha hızlı temizlenmesi sağlandı. Ayrıca genişletilmiş istatistikler (CREATE STATISTICS) geliştirildi.


2021 | PostgreSQL 14

  • Yüksek Eşzamanlılık (Concurrency): Çok sayıda aktif bağlantının (connection) bulunduğu sistemlerde, kilitlenme (lock) yönetimindeki iyileştirmeler sayesinde genel işlem hacmi artırıldı.

  • JSON ve Veri Tipleri Geliştirmeleri: JSONB veri tipi için alt simge (subscripting) desteği geldi. Artık data['metadata']['id'] şeklinde standart dizi söz dizimiyle JSON verilerine erişmek mümkün hale geldi.

  • Mantıksal Replikasyon: Büyük hacimli işlemlerin mantıksal replikasyon (Logical Replication) sırasında akış halinde (streaming) aktarılabilmesi sağlandı, bu da bellek tüketimini düşürdü.


2022 | PostgreSQL 15

  • Yeni SQL Komutu: Standart SQL komutu olan MERGE desteği eklendi. Böylece tek bir komutla koşula bağlı olarak INSERT, UPDATE veya DELETE işlemlerini yapmak kolaylaştı.

  • Sıkıştırma Seçenekleri: WAL (Write-Ahead Log) kayıtları ve pg_basebackup işlemleri için LZ4 ve Zstandard (zstd) sıkıştırma algoritmaları entegre edildi.

  • Sunucu İçi Geliştirmeler: Sunucu istatistikleri toplama mekanizması tamamen paylaşılan belleğe (Shared Memory) taşındı. Bu sayede disk G/Ç (I/O) yükü azaltıldı ve performans artırıldı.


2023 | PostgreSQL 16

  • Mantıksal Replikasyon Yetkinlikleri: Mantıksal replikasyonun artık yedek (Standby) sunuculardan da başlatılabilmesi sağlandı. Ayrıca replikasyon için çift yönlü (Bi-directional) mantıksal replikasyon yapısı olgunlaştırıldı.

  • Sorgu Paralelleştirme: FULL ve RIGHT join işlemleri ile string_agg() ve array_agg() gibi agregasyon fonksiyonları için paralel sorgu yürütme desteği genişletildi.

  • Gözlemlenebilirlik (Observability): G/Ç istatistiklerini çok daha detaylı analiz etmeyi sağlayan yeni pg_stat_io görünümü (view) sisteme eklendi.


2024 | PostgreSQL 17

  • Bellek ve Vacuum Yönetimi: VACUUM işleminin bellek tüketimini ciddi oranda azaltan ve hızını artıran yeni bir iç bellek yapısı (internal memory structure) tanıtıldı.

  • Mantıksal Replikasyon Kolaylığı: Büyük sürüm yükseltmelerinden (major upgrades) sonra mantıksal replikasyon yuvalarının (slots) korunması sağlandı, böylece replikasyonun yeniden kurulma ihtiyacı ortadan kalktı.

  • JSON ve Arama Geliştirmeleri: JSON verileri içinde JSONPath sorguları yürütülürken performansı artıran geliştirmeler ve EXPLAIN çıktıları için bellek kullanım detayları eklendi.


2025 | PostgreSQL 18

  • Asenkron I/O (G/Ç) Devrimi: Çekirdek düzeyinde Asenkron I/O motoruna geçiş yapıldı. Özellikle NVMe disk kullanan yüksek yüklü sistemlerde disk beklemeleri minimuma indirildi.

  • Ölçeklenebilirlik: WAL sıkıştırma algoritmaları optimize edilerek ağ ve depolama üzerindeki yük hafifletildi. Büyük veri tabanları için dikey ve yatay ölçekleme kabiliyeti artırıldı.

  • Gelişmiş Bölümleme (Partitioning): Çok sayıda partition içeren tablolarda sorgu planlama ve yürütme süreleri optimize edildi.


5. Bugün ve Gelecek (2026+)


Eylül 2026 | PostgreSQL 19

  • SQL/PGQ (Graf Sorguları): SQL standartlarına uygun yerleşik Graf Sorgulama dili entegrasyonu sağlandı.

  • Native REPACK: Tabloları kilitlemeden şişkinliği (bloat) temizleyen yerel tablo yeniden düzenleme aracı eklendi.

  • Paralel Autovacuum: Veri tabanı bakım işlemlerinin eş zamanlı ve çoklu çekirdek desteğiyle yapılması sağlandı.

  • Yüksek Yazma Performansı: Veri ekleme işlemlerinde 2 kat daha hızlı INSERT performansı optimize edildi.


Gelecek Vizyonu | Tamamlanmış Bulut ve Yapay Zeka Entegrasyonu

  • Vektör veri tabanı yetenekleri (pgvector geliştirmeleri), yapay zeka modelleriyle doğrudan entegrasyon ve hibrit bulut mimarilerine tam uyum ile modern veri altyapılarının kalbi olmaya devam ediyor.

Yorumlar


GÖKHAN DEDEOĞLU

bottom of page