Podle StackOverflow je PostgreSQL nejoblíbenější open-source databází, se kterou chce pracovat stále více vývojářů a správců. PostgreSQL 14, nejnovější verze vydaná v září 2021, má více než 200 vylepšení a nových funkcí, které obecně spadají do tří oblastí:Zabezpečení, Výkon a Monitorování.
Počínaje verzí 1.9.2, vydané začátkem tohoto roku, nyní ClusterControl podporuje nejnovější verzi PostgreSQL 14.
V tomto příspěvku se podíváme na nejpozoruhodnější funkce, hlavní aktualizace a vylepšení dostupná v PostgreSQL 14.
Zabezpečení
Nejvýznamnější bezpečnostní změna v PostgreSQL 14 se přesouvá na SCRAM jako výchozí autentizaci poté, co byla autentizace SCRAM-SHA-256 poprvé představena v PostgreSQL 10. SCRAM poskytuje mnohem jednodušší a výkonnější řešení pro regulaci souladu pro data bezpečnostní. Předchozí výchozí ověřování MD5 mělo v minulosti některé zneužité slabiny.
Spolu s vylepšenou autentizací PostgreSQL 14 zjednodušuje proces přidělování funkcí pouze pro zápis a pouze pro čtení uživatelům v tabulkách, pohledech a schématech zavedením dvou předdefinovaných rolí, pg_write_all_data a pg_read_all_data. První role umožňuje pohodlně vytvářet oprávnění ve stylu superuživatele. Přestože je tento druh účtu vhodný pro aktivity a přístup, je třeba jej používat střídmě. Tato druhá role je užitečná při udělování přístupu pouze pro čtení pro uživatele ke všem tabulkám, schématům a pohledům v databázi. Tato role bude mít standardně přístup pro čtení ke všem nově vytvořeným tabulkám.
Výkon
Korporace zpracovávají stále více dat a rychlost, objem a rozmanitost (tři Vs velkých dat) nevykazují žádné známky zpomalení. PostgreSQL 14 provedl několik velmi významných změn, aby bylo možné škálovat a rozšiřovat, aby podporovalo tyto pracovní zátěže a zlepšilo výkon. To lze nejlépe seskupit do následujících pěti oblastí:
Škálovatelnost a výkon
PostgreSQL 14 přináší obrovské úspěchy ve výkonu odstraňování a aktualizací v tabulkách s vysokým počtem oddílů. To umožňuje mazání a aktualizace dělených tabulek používat prořezávání oddílů během provádění. A co je nejdůležitější, tato verze se může škálovat na více oddílů než dříve, což PostgreSQL umožňuje vypořádat se s mnohem většími databázemi, než bylo možné dříve.
V PostgreSQL verze 14 lze nyní oddíly také oddělovat souběžně, což usnadňuje správu velkých tabulek časových řad dat. To je možné díky nové funkci date_bin(), která uživatelům umožňuje lépe a snadněji sumarizovat data časových řad do rozsahů dat.
PostgreSQL 14 přidal podporu pro kompresi LZ4 pro TOAST. LZ4 využívá nejnovější technologii komprese a zaměřuje se na zlepšení rychlosti dekomprese a komprese dat dokumentu. LZ4 vylepší aplikace o větší dokumenty XML a JSON a tento kompresní algoritmus lze konfigurovat na úrovni systému i sloupců.
Distribuované databáze a pracovní zátěže
PostgreSQL 14 také nabízí vylepšení v horizontálním škálování databáze zavedením dvou hlavních vylepšení v postgres_fdw (zabalení cizích dat), která jsou zásadní pro zlepšení výkonu distribuovaných databází. Tyto změny podporují hromadné vkládání dat a paralelní skenování tabulek v cizích tabulkách (když je nastavena možnost async_capable).
Ukládání připojení do mezipaměti také zlepšuje výkon tím, že umožňuje otevřená připojení napříč transakcemi. Můžeme také zmínit režim Libpd pipeline, který zvyšuje výkon distribuovaných databází tím, že umožňuje přenášet proudy změn bez čekání na potvrzení sítě u každého příkazu.
Spravovatelnost
PostgreSQL 14 také řeší problém nadýmání indexu B-stromu; indexy, které se v průběhu času často aktualizují, kvůli mrtvým n-ticím, které lze odstranit spuštěním vakua.
Vzhledem k tomu může být nevratné rozdělení stránky způsobeno vložením nebo aktualizací, když se stránka mezi vysáváními zaplní. Tato verze vylepšila proces vakua detekcí a odstraněním mrtvých n-tic mezi vakuy (parametr INDEX_CLEANUP nastaven na Auto).
Dalším vylepšením vakuového systému je rychlé odstraňování smazaných stránek. V předchozích verzích trvalo odstranění odstraněných stránek dva vakuové cykly, přičemž nejprve byla stránka označena jako odstraněná a druhý cyklus skutečně uvolnil toto místo.
Ladění výkonu dotazů a indexů
Správa indexů při ladění aplikací je dalším velkým vylepšením PostgreSQL 14. Zejména REINDEX CONCURRENTLY a CREATE INDEX CONCURRENTLY umožňují spouštění více příkazů najednou, aniž by se navzájem rušily. Více o indexech, indexy BRIN se staly flexibilnějšími, protože mohou zaznamenávat četné minimální/maximální hodnoty na rozsah, což je cenné pro skupiny hodnot v každém rozsahu stránek. Indexy BRIN také efektivně pracují s daty, která nejsou dobře lokalizována v hromadě pomocí Bloomových filtrů.
Možnost FREEZE v příkazu COPY byla vylepšena aktualizací bitů viditelnosti stránky při výkonu načítání dat. COPY v binárním režimu je nyní také rychlejší.
PostgreSQL 14 vylepšil paralelismus dotazů tím, že přidal paralelismus dotazů do OBNOVENÍ MATERIALIZOVANÉHO ZOBRAZENÍ a NÁVRATOVÉHO DOTAZU. Tato vylepšení byla zavedena do spojení vnořených smyček a paralelních sekvenčních skenů.
PostgreSQL 14 zvýšil počet míst, kde lze použít rozšířenou statistiku pro výrazy a odhad klauzule OR. Na rozdíl od dříve, kdy byly statistiky pouze u sloupců, je nyní povolena pro skupinu výrazů. Systémový pohled pg_stats_ext_exprs hlásí takové statistiky.
Vylepšená logická replikace
Logická replikace byla vylepšena, aby umožnila streamování dlouhých probíhajících transakcí prostřednictvím rozhraní API nebo předplatitelům. V předchozích verzích byly transakce větší než logical_decoding_work_mem zapisovány na disk, dokud nebyla transakce dokončena, než byla transakce replikována předplatiteli. Díky novým vylepšením zvládá logická replikace velké objemy příkazů DDL efektivněji.
Po každém příkazu zapíše logická replikace zprávy o zrušení platnosti mezipaměti do WAL pro zpracování streamováním probíhajících transakcí. Tento proces přináší významné výhody v oblasti výkonu.
Monitorování
Jedním z největších módních slov roku 2022 je monitorování, protože správci a vývojáři chtějí postupem času získat lepší přehled o výkonu. PostgreSQL 14 zavedl nové funkce, které pomáhají s monitorováním. Nejvýznamnější změnou ze všech je přesun hašovacího systému dotazů z pg_stat_statement do základní databáze. Monitorování dotazů bylo povoleno napříč několika systémy PostgreSQL a funkcemi protokolování pomocí jediného ID.
Tato verze také zavedla následující nové parametry monitorování:
-
Idle_session_timeout
-
REINDEX na podřízené indexy rozdělené tabulky
-
Maintenance_io_concurrency
-
Pg_stat_progress_copy
-
Pg_stat_wal
Upgrade na PostgreSQL 14
Pokud chcete upgradovat svou aktuální verzi PostgreSQL na verzi 14, máte tři hlavní možnosti, jak tento úkol provést:
-
Pg_dumpall:Je to logický nástroj pro zálohování, který vám umožňuje vypsat data a obnovit je v novém PostgreSQL verze. Zde budete mít období výpadku, které se bude lišit podle velikosti vašich dat. Musíte zastavit systém nebo se vyhnout novým datům v primárním uzlu, spustit pg_dumpall, přesunout vygenerovaný výpis do nového databázového uzlu a obnovit jej. Během této doby nemůžete zapisovat do své primární databáze PostgreSQL, abyste se vyhnuli nekonzistenci dat.
-
Pg_upgrade:Je to nástroj PostgreSQL pro upgrade vaší verze PostgreSQL. V produkčním prostředí by to mohlo být nebezpečné a v takovém případě tuto metodu nedoporučujeme. Při použití této metody budete mít prostoje, ale pravděpodobně budou podstatně kratší než při použití předchozí metody pg_dump.
-
Logická replikace:Od PostgreSQL 10 můžete použít tuto metodu replikace, která vám umožní provádět hlavní aktualizace verzí s nulovými (nebo téměř nulovými) prostoji. Tímto způsobem můžete přidat pohotovostní uzel v poslední verzi PostgreSQL, a když je replikace aktuální, můžete provést proces převzetí služeb při selhání pro podporu nového uzlu PostgreSQL.
Podrobnější informace o nových funkcích PostgreSQL 14 najdete v oficiální dokumentaci.
Zabalení
PostgreSQL 14 skutečně zlepšil hru pro uživatele této populární open-source databáze. Nyní mají vývojáři a správci vylepšené možnosti pro zvýšení vysokého výkonu a škálovatelnosti, vylepšení pro distribuované databáze, lepší pozorovatelnost a další.
ClusterControl zjednodušuje a usnadňuje upgrade na nejnovější verze technologií. Pokud ClusterControl ještě nepoužíváte, můžete jej zdarma vyhodnotit po dobu 30 dnů. Další podrobnosti o nejnovější verzi ClusterControl 1.9.2 najdete v úplných poznámkách k vydání.
Sledujte nás na Twitteru a LinkedIn a přihlaste se k odběru našeho zpravodaje. Zůstaňte v obraze se všemi nejnovějšími zprávami a osvědčenými postupy pro nejoblíbenější databáze s otevřeným zdrojovým kódem.