Ana içeriğe atla

POSTGRESQL 13 SURUMUNUN GETIRDIGI ONEMLI YENILIKLER



  • Parolaları Man-In-The-Middle Saldırılarından Korur

Libpq, istemci uygulamalarının veritabanını sorgulamak için kullandığı varsayılan kitaplık işlevleri kümesidir. Bu bağlantıların güvenli olması önemlidir, aksi takdirde, man-in-the-middle saldırısı olarak da adlandırılan sunucuyu taklit etme fırsatı olabilir. İstemci tarafından gönderilen parolayı kodlamak için birçok farklı güvenlik protokolü kullanılabilir.(Örneğin SCRAM-SHA-256) Yeni geliştirme, SCRAM'ın, sertifikaları kullanmadığınızda bir SSL bağlantısı üzerinden karşılıklı kimlik doğrulamaya izin veren bir özellik olan kanal bağlamayı kullanmasını sağlar.

Güvenliğin kullanımını kolaylaştırmak çok önemlidir çünkü kullanımı zor özellikler çoğu zaman hiçbir güvenlik sağlamaz. Kanal bağlamalı SCRAM, kullanımı kolay ancak çok daha güvenli olan bir parola kimlik doğrulama çeşididir.


  • Üretimdeki hataları azaltır

Veritabanınız "dosya açılamadı" gibi bir hata attığında, bir şeylerin ciddi şekilde yanlış olduğunu bilirsiniz. Çoğu zaman, bir tablo veya dizine erişmeye çalışırken bu tür hatalar meydana gelir. Pg_catcheck, geliştirilen basit bir araçtır. Sistem kataloglarınızın bozuk olduğundan şüpheleniyorsanız, bu araç tam olarak hangi sorunlarınız olduğunu ve ne kadar ciddi olduklarını anlamanıza yardımcı olabilir. Pg_catcheck şimdi her ilişki için ilk dosyaların mevcut olduğunu doğrulayacaktır(tablo veya dizin).

Bu seçenek, bu tür hataları neden aldığınızı size söylemeyecektir. Ayrıca, bunların nasıl düzeltileceği konusunda tavsiyelerde bulunmaz. Bununla birlikte, bu seçenek, üretimde hatalara çarpmak yerine vakaların erken tespit edilmesine yardımcı olacak proaktif bir araç sağlar.


  •  Tam Yedeklemeleri Doğrulamayı Sağlar

Tam fiziksel yedeklemeler oluşturmak için bir iyileştirme kombinasyonu var. Çalışan bir PostgreSQL kümesinin yedeğini alma aracı olan Pg_basebackup artık bir yedekleme bildirimi sağlıyor. Bu bildirim, yedeklemeyle ilgili meta verileri içeren bir JSON dosyasıdır: bir sürüm numarası, dosya listesi, WAL aralığı ve bir sağlama toplamı.

 

Pg_verifybackup, yalnızca yedekteki dosyaların bütünlüğünü değil, aynı zamanda yedeklemeyi kurtarmak için gereken önceden yazma günlük kayıtlarının da geçerli olduğunu doğrulayan yeni bir araçtır. Pg_verifybackup, yedeklerinizin gerçekten iyi olduğunu ve düzgün şekilde geri yüklenebileceğini garanti eder.


  • 3 Kata Kadar Daha Hızlı Vakumlama Sağlar

PostgreSQL'de yeni olanlar için, vakumlama, çoklu eşzamanlılık sisteminin bir parçasıdır ve bir kayıt her değiştirildiğinde veya silindiğinde oluşturulan ölü dizileri veya satırları kaldırır. Otomatik vakum özelliği ölü gizli satırları temizler, böylece şişkinlik olmaz ve Java'nın çöp toplayıcısına benzer. Vakumla ilgili iki iyileştirme vardır: dizinlerin paralel olarak vakumlanması ve yalnızca eklenen verilerin yalnızca dizin taramalarına izin verilmesi.

 

Birincisi, paralel vakumla, Postgres artık vakum işlemlerini daha hızlı gerçekleştirmek için birden fazla işlemci dizisi kullanabilir. Test sonuçlarımız, birden fazla paralel çalışan kullanıldığında vakumun 3 kata kadar daha hızlı olabileceğini göstermektedir. İkincisi, bu sürümden önce, autovacuum yalnızca güncellemeler ve silmelerde vakum işlemlerini tetikliyordu, ancak artık ekler için etkinleştirildi. Sonuç olarak, yalnızca dizin taramaları daha sık gerçekleşecek ve bu özellikle veritabanına sürekli olarak yazı yazan IoT uygulamaları için kullanışlıdır.


  • Bölümlenmiş Tabloları Kolayca Birleştirir

Bölümleme, aralık, liste veya karma anahtarlar kullanarak büyük veri kümelerini bölümlere ayırarak daha duyarlı bir veritabanı oluşturmanıza olanak tanır. Bölümleme, bir tabloyu birden çok tabloya böler ve istemci uygulamaları için şeffaf olacak şekilde yapılır, böylece gerekli verilere daha hızlı erişim sağlanır. Daha önce PostgreSQL, bölümlenmiş tabloları yalnızca eşleşen bölümlenmiş sınırlara sahiplerse verimli bir şekilde birleştirmenize izin veriyordu. PostgreSQL 13'te, bölüm bazlı birleştirmeler, bölüm sınırları tam olarak eşleşmediğinde bile tabloları verimli bir şekilde birleştirmenizi sağlar. Bunun yararı, bölümlenmiş tabloların birleştirilmesinin daha hızlı olmasıdır, bu da bölümlemenin kullanımını ve dolayısıyla daha duyarlı bir veritabanı kullanımını teşvik eder.


  • Bölümlenmiş Tablolar İçin Mantıksal Çoğaltma Sağlar

PostgreSQL'in en önemli özelliklerinden biri, mantıksal çoğaltma yoluyla hangi verileri bir bekleme moduna kopyalayacağınızı seçerek çoğaltma seçeneği sunmasıdır. Bu özellik artık daha da güçlüdür çünkü bölümlenmiş tablolarla kullanılabilir. Önceden, bölümlerin beklemelere ayrı ayrı kopyalanması gerekiyordu. Artık bölümlenmiş bir tablo açıkça yayınlanabilir ve tüm bölümlerinin otomatik olarak yayınlanmasına neden olabilir. Bir bölümün eklenmesi / çıkarılması, aynı şekilde beklemelere eklenmesine veya kaldırılmasına neden olur.

Bu özelliğin yararı, size muazzam miktarda esneklik sağlamasıdır. Ayrıca artık bölümlenmiş bir tablodan bölümlenmemiş bir tabloya, bölümlenmemiş bir tablodan bölümlenmiş bir tabloya ve elbette bölümlenmiş tablodan bölümlenmiş tabloya çoğaltma yapabilirsiniz. Mantıksal çoğaltma artık bölümleme nedeniyle kısıtlanmamaktadır.


  • B-Tree İndekslerinin Tekilleştirilmesi

PostgreSQL'de kullanılan varsayılan ve en yaygın indeksleme türü olan B-Tree indeksleri artık varsayılan olarak tekilleştirilmektedir. Örneğin, Meksika için "Estado Unidos Mexicanos" ve ABD için "Amerika Birleşik Devletleri" kullanan bir dizininiz olduğunu varsayalım. Aynı ülke adına sahip binlerce kayıt varsa, yinelenen dizin anahtarları artık yalnızca bir kez diskte saklanır. İş yükleriniz çok sayıda benzersiz olmayan dizin (düşük kardinalite) kullanıyorsa, bu disk alanında büyük tasarruf ve daha iyi performans anlamına gelebilir.

Burada ilginç olan şey, bunun PostgreSQL 13'te varsayılan olarak etkinleştirilmiş olmasıdır, bu yüzden farkında bile olmadan yararlanabileceksiniz. Pg_upgrade kullanarak yükseltirseniz, önceki indekslerinizin tekilleştirilmesini istiyorsanız yeniden indekslemeniz gerekeceğini unutmayın.


  • Diğer güvenlik geliştirmeleri

PostgreSQL topluluğu, her büyük sürümle birlikte önemli güvenlik özelliklerini geliştirmeye devam ediyor. Önemli bir varsayılan değişti: minimum TLS sürümü daha güvenli olan 1.2'dir. Bunun dışında, size güvenlik ayarlarına göre daha fazla seçenek ve esneklik sağlayan bir dizi başka iyileştirme sağlar. Bunların arasında, Yabancı Veri Sarmalayıcılar, kimlik doğrulama için sertifika kullanma ve süper kullanıcı olmayanların yabancı sunuculara parola olmadan bağlanmasına izin verme gibi birkaç ek kolaylığa sahiptir. Ayrıca, istemci sertifikalarının kilidini açmak için parola kullanma yeteneği de dahil olmak üzere, güvenlik ihtiyaçlarınıza uyacak daha fazla seçenek sunan birçok başka eklenti vardır.

Bu yazımda en önemli gördüğüm geliştirmeleri sizinle paylaşmak istedim. Ancak PostgreSQL 13'te 170'in üzerinde geliştirme vardır. PostgreSQL 13'teki yeniliklerin kapsamlı görmek isterseniz kaynakçada verdiğim sürüm notları linkinden inceleyebilirsiniz.

 

Kaynaklar:

lSürüm Notları: https://www.postgresql.org/docs/13/release-13.html

lhttps://www.postgresql.org/docs/

lhttps://www.postgresql.org/

 

 

Yorumlar

Bu blogdaki popüler yayınlar

İNSAN SİNİR SİSTEMİNİN TAKLİDİ: YAPAY SİNİR AĞLARI

Yapay sinir ağları; beynin bir işlevi yerine getirme yönteminin matematiksel olarak modellenmesi ile tasarlanan sistemlerdir. Yapay sinir ağları, paralel dağıtılmış ağlar, bağlantılı ağlar, nuromorfik ağlar gibi adlarla da tanımlanmaktadır. Yapay sinir ağlarının ortaya çıkışından kısaca bahsetmem gerekirse; ilk yapay sinir ağı modeli 1943 yılında bir sinir hekimi olan Warren McCulloch ve bir matematikçi olan Walter Pitts tarafından “ Sinir Aktivitesinde Düşüncelere Ait Bir Mantıksal Hesap ( A Logical Calculus of Ideas Immanent in Nervous Activity )” başlıklı makale ile ortaya çıkarılmıştır. Öncelikle insanlarda bulunan sinir hücresinin yapısını ele alalım. Dentrites (Dendritler): Dendritler dışarıdan uyartıları alan ve hücre gövdesine ileten yapılardır. Dendritlerin çok sayıda olması, hücrelerin pek çok nörondan sinyal alma kapasitesini arttırır. Nucleus (Çekirdek): Akson boyunca işaretlerin periyodik olarak yeniden üretilmesini sağlayan yapılardır. Axon (Akson): Ak...

Mobil Uygulama Geliştirme: FLUTTER

Son zamanlarda merak sardığım konulardan biri de mobil uygulama geliştirme oldu. Küçücük bir uygulamanın bile verdiği çıktı ile mutlu olduğumu görünce mobil uygulama geliştirmekten zevk aldığımı hissettim. Araştırıp öğrenmeye başladım ve kısa sürede uygulama geliştirip ve bu uygulamayı kullanmak gerçekten güzel bir duyguydu. Şimdi sizlere geliştirdiğim basit bir Todo uygulamasından bahsedeyim. Flutter SDK ve Dart programlama dilini kullanarak çapraz platform çalışan yapılacaklar listesi uygulamasıdır. Bu uygulamada, verileri devamlılığını sağlamak için SQLite3 kullandım. Uygulama hem iOS hem de Android işletim sisteminde çalışmaktadır. Neden Flutter’ı Seçtim? ·  Flutter ile uygulamanızda yaptığınız bir değişikliği hot reload özelliği ile hızlı bir şekilde görebilirsiniz. Yani compile etmek(derlemek) için artık uzun süreler beklemeye gerek yok. Örnek vermek gerekirse Flutter ile varsayılan olarak gelen increment uygulamasını android sdk ile çalıştırmak ortalama 3 dak...

TARIM 4.0

  Tarım 4.0 nedir, nasıl ortaya çıkmıştır? Yüzyıllar boyunca, ülkeleri ve genel olarak dünyayı şekillendiren birçok sanayi devrimi olmuştur. Endüstri 4.0, çalışma biçimlerini değiştiren en son sanayi devrimidir. Otomasyon, yapay zeka (AI) ve robotiğin yükselişinin yanı sıra İnternet ve giderek daha iyi teknoloji ile bağlantılı diğer ilerlemeleri ifade eder. Tarım endüstrisi de teknoloji ve çalışma alanındaki bu önemli değişimi yaşadı ve deneyimlemeye devam ediyor. ‘Tarım 4.0’ olarak anılıyor ve çiftçiliği yenilikçi ve kendine güvenen hale getirmeyi vaat ediyor. İşte son teknolojik gelişmelerin tarımı değiştirmesinin beklendiği üç temel yol şunlardır: Yapay zeka Yapay zeka, süreçleri çok daha verimli hale getirmek için tarım endüstrisi tarafından kullanıldı. AI, çeşitli makinelere ve ekipman parçalarına uygulanarak, sprinkler ve gübre gibi farklı cihazların işlerini daha etkin bir şekilde gerçekleştirmelerine olanak tanır. Bunun iyi bir örneği, karada büyük nesneleri taşımak, çekmek...