Yönetici Özeti ve Mimari Önem
pg_vault_tde 1.7.2 sürümünün yayınlanması, PostgreSQL ekosistemindeki Şeffaf Veri Şifreleme (TDE) araçlarının olgunlaşmasında kritik bir dönüm noktasına işaret etmektedir. Kuruluşlar hassas iş yüklerini giderek daha fazla PostgreSQL'e taşırken, depolama katmanında güçlü kriptografik izolasyon vazgeçilmezdir. Sürüm 1.7.2; kurumsal düzeydeki dağıtımları tehlikeye atabilecek şiddetli kararlılık gerilemelerini, bellek muhasebesi kaymalarını ve kriptografik uç durumları ele almak için tasarlanmış odaklanmış bir ikili yama sürümü olarak gelir. Çekirdek eklenti sürümü 1.7'de sabit kalırken, çalışma zamanı denetim yardımcı programı pg_vault_tde_build_version()'ın entegrasyonu, veritabanı yöneticilerinin üretim ortamlarında dağıtılan ikili dosyaları net bir şekilde doğrulayabilmesini sağlar.
Mimari açıdan bu sürüm, yoğun yazma eşzamanlılığı ve karmaşık sorgu planlaması altında ortaya çıkan temel veri yerleşimi ve indeksleme açıklarını ele almaktadır. Yazma Öncesi Günlük (WAL) kaynak yönetimindeki uç durumlarla, TOAST (Aşırı Boyutlu Öznitelik Depolama Tekniği) yönetimiyle ve anahtar döndürme yaşam döngüleriyle doğrudan yüzleşerek mühendislik ekibi, PostgreSQL'in temel dayanıklılık garantilerini güçlendirmiştir. Şifrelenmiş iş yüklerini çalıştıran işletmeler artık TDE'yi pasif bir katman olarak göremez; v1.7.2, özellikle değişken uzunluklu verilerin ve eşzamanlı çevrimiçi anahtar döndürmelerinin temel PostgreSQL tampon havuzu ve kurtarma mekanizmalarıyla nasıl etkileşime girdiğine dair titiz bir mimari uyum gerektirir.
Temel Geliştirmeler ve Geliştirici Ergonomisi
v1.7.2'deki en önemli mimari değişim, yeni Disk Üzerinde Demet Yerleşimi (v5)'nin tanıtılmasıdır. Daha önce, indekslenmiş değişken uzunluklu sütunlar içeren tablolar, demet yönlendirmesindeki belirsizlikler nedeniyle UPDATE işlemleri sırasında kritik segmentasyon hatalarına açıktı. v5 yerleşimi, PSQLE-165'i tamamen etkisiz hale getirerek değişken uzunluklu özniteliklerin güvenli bir şekilde geçilmesini sağlayan tamamen yürünebilir bir yapısal paradigma sunar. Bunu tamamlayacak şekilde, TOAST ile ilgili çökmeler kapsamlı bir şekilde çözülmüştür. Sütun değerleri kesinlikle kriptografik dönüşümden sonra TOAST_TUPLE_THRESHOLD sınırını aştığında sistemler sıklıkla segmentasyon hatalarıyla karşılaşıyordu. Ayrıca, tamamen NULL değerine sahip bir satırın üst tablosunu tamamen okunamaz hale getirdiği şiddetli bir kullanılabilirlik hatası giderilmiştir.
İndeksleme ve sorgu yürütme açısından tde_btree sıkı bir sertleştirme sürecinden geçmiştir. İndeks uygulaması artık desteklenmeyen operatörlerle ilgili olarak sıfır tolerans politikası uygulamakta ve yalnızca eşitlik sorgularına kesin olarak yanıt vermektedir. Bu, sorgu planlayıcıları aralık operatörlerini, ORDER BY yan tümcelerini veya şifrelenmiş b-tree indekslerine karşı birleştirme birleşimlerini (merge joins) optimize etmeye çalıştığında sessiz veri bozulmasını ve yanlış satır döndürmelerini önler (PSQLE-173). Paralel olarak, anahtar yönetimi ve güvenilirlik önemli ölçüde yükseltilmiştir. rotate_online() eşzamanlı erişimi (PSQLE-184), yerel cüzdan Anahtar Şifreleme Anahtarı (KEK) döndürmeleri (PSQLE-185) ve kasa-cüzdan geçişleri (PSQLE-188) sırasında veri kaybı ve yarış durumlarına bağlı açıklar sistematik olarak ortadan kaldırılmıştır. Son olarak, mantıksal kod çözme bellek muhasebesi kayması istikrara kavuşturulmuş ve Özel WAL kaynak yöneticisi kimliği atanmamış bir alandan resmi olarak kayıtlı 161 kimliğine taşınmıştır (PSQLE-172).
Mimari Karşılaştırma Matrisi
| Mimari Vektör | Önceki Temel Çizgi (v1.7.1 ve öncesi) | PostgreSQL Haberleri v1.7.2 | Üretim Operasyonlarına Etkisi |
|---|---|---|---|
| Demet Yerleşimi (Tuple Layout) | v4 (Değişken uzunluklu indekslenmiş sütunlarda UPDATE segmentasyon hatalarına açık) |
v5 (Güvenli geçişi ve kararlılığı garanti eden yürünebilir yapı) | Segmentasyon hatalarını ortadan kaldırır; yükseltme sonrasında zorunlu bir VACUUM FULL gerektirir. |
| WAL Kaynak Yöneticisi Kimliği | Kayıtlı olmayan Kimlik 128 (Diğer eklentilerle kimlik çakışması riski) | Resmi olarak kayıtlı Kimlik 161 | Temiz kapanış ve eşzamanlı birincil/bekleme (standby) yükseltmeleri gerektirir. |
İndeks Anlambilimi (tde_btree) |
Aralık operatörlerinin ve sıralama yan tümcelerinin esnek işlenmesi | Yalnızca eşitlik sorgularının katı bir şekilde uygulanması | Aralık taramaları ve birleştirme birleşimleri sırasında sessiz veri bozulmasını önler. |
| Anahtar Yönetimi Eşzamanlılığı | rotate_online() ve cüzdan geçişleri sırasında yarış durumları |
Sertleştirilmiş kilitleme ve atomik durum geçişleri | Yüksek eşzamanlılığa sahip anahtar yaşam döngüsü operasyonları sırasında veri kaybı vektörlerini ortadan kaldırır. |
Kritik Değişiklikler ve Geçiş Uyarıları
Sürüm 1.7.2, standart kademeli yükseltmeleri engelleyen derinlemesine kritik değişiklikler sunar. Özel WAL kaynak yöneticisi kimliğinin 128'den 161'e taşınması nedeniyle, veritabanının temiz bir şekilde kapatılması zorunludur. toast_custom_rmgr özelliği etkinse, WAL akışı uyumsuzluğu nedeniyle birincil ve bekleme (standby) örnekleri aynı anda yükseltilmelidir; çoğaltma sınırları ötesinde kademeli yükseltmeler yapısal olarak imkansızdır.
Ayrıca, v5 disk üzerindeki demet yerleşimine geçiş, açık veritabanı yönetimi müdahalesi gerektirir. v4 formatında saklanan eski satırlar yükseltme sonrasında okunabilir kalmaya devam etse de, bu satırları hedefleyen sonraki herhangi bir UPDATE işlemi, tablo yerleşimi yenilenene kadar bir segmentasyon hatasını tetikleyecektir. Yöneticilerin, eski demetleri yürünebilir v5 formatına yeniden yazmak için her şifrelenmiş tabloda VACUUM FULL çalıştırması kesinlikle gereklidir.
Adım Adım Yükseltme Kılavuzu
Veri bozulması veya replika sapması riski olmaksızın pg_vault_tde v1.7.2 sürümüne güvenli bir şekilde yükseltme yapmak için yöneticilerin aşağıdaki protokolü uygulaması gerekir:
- Temiz Kapanış ve İkili Dosya Güncellemesi Gerçekleştirin:
Tüm kirli tamponları boşaltmak için PostgreSQL hizmetini temiz bir şekilde durdurun, eklenti ikili dosyalarını birincil ve bekleme düğümlerinde aynı anda güncelleyin ve örnekleri yeniden başlatın.
# Birincil ve bekleme düğümlerini temiz bir şekilde durdurun pg_ctl -D /var/lib/postgresql/data stop -m smart # Paket yöneticiniz aracılığıyla pg_vault_tde eklenti ikili dosyalarını güncelleyin apt-get update && apt-get install --only-upgrade postgresql-16-pg-vault-tde
