Features83

Z PostgreSQL
Skočit na navigaci Skočit na vyhledávání

PostgreSQL 8.3 Feature List

Tento seznam obsahuje popis většiny, nikoliv všech, nových funkcí verze 8.3. Pro přehlednost je tento popis rozčleněn do několika skupin podle účelu. Podrobnější informace jsou v dokumentaci PostgreSQL a v poznámkách k verzi (Release Notes). Skutečně kompaktní informace najdete v tabulce podporovaných funkcí (feature matrix), která je ovšem pouze v anglickém jazyce.

Výkon

Konzistentní výkon

Tyto funkce zvyšují schopnost PostgreSQL dodržet konzistentní časy odezvy bez ohledu na zatížení serveru.

HOT
Heap Only Tuple (HOT) dramaticky snižuje problémy s údržbou databáze spojené s častými změnami dat, snižuje nutnost spouštění VACUUM a poskytuje znatelně vyšší výkon některých aplikací.
Asynchronní potvrzování
V tomto režimu COMMIT nečeká na potvrzení fyzického zápisu na disk. Za cenu rizika potenciální ztráty posledních transakcí, v případě výpadku systému, získáme lepší dobu odezvy. Přesto je jištěna integrita dat. Tento režim je určen pro operace, které lze bezpečně opakovat .. např. import databáze, import dat a je lokální (vztahuje se pouze na ty uživatele, kteří se do tohoto režimu přepnou).
Vyrovnání zátěže způsobené checkpointy
V případě, že je server silně vytížen, dojde k pozdržení checkpointů a k utlumení jejich frekvence. Tím se snižuje negativní vliv checkpointů na dobu odezvy.
Strategie Just-in-time zápisu na disk
Na základě statistik a aktuální aktivity je dynamicky odhadnuto, kolik čistých paměťových stránek bude potřeba a kolik jich bude nutné vyčistit (zapsat na disk).

Zrychlení

Díky řadě úprav se dosáhlo citelného zrychlení některých operací.

Zkrácení času obnovy
Nutný čas pro obnovu databáze z Write Ahead logu se zkrátil redukcí počtu nutných I/O operací.
Cyklický buffer v meziúložišti řádků
Dramaticky urychluje menší spojení tabulek typu merge join tím, že lépe využívá paměť a nedochází tak k zápisům na disk.
Rychlejší porovnávání v LIKE/ILIKE
Zrychlila se operace částečného porovnání (partial match) zejména v případech, kdy se používá vícebajtové kódování.
Top-N řazení
Dramaticky zrychluje řazení v případě, že výsledek dotazu je omezen klauzulí LIMIT.
Opožděné přidělování XID (Lazy XID Assignment)
Znatelně zvyšuje výkon těch databází, kde výrazně převažuje čtení nad zápisem (případně vůbec nedochází k zápisu) a to tak, že identifikační číslo transakce přiřadí pouze v případě potřeby (dojde k změně dat).
Možnost určení ceny funkce
Nám dovolí připojit ke každé funkci odhad náročnosti funkce (cena) a počtu vrácených řádků, což v důsledku znamená reálnější (lepší) prováděcí plán.

Rozsáhlé databáze

Nasledující funkce dovolí uživatelům provozovat i poměrně velké datové sklady v PostgreSQL.

Synchronizované čtení
V originále tzv. piggybacking table scan, je synchronizované souběžné čtení jedné tabulky více uživateli (jeden přečtený blok se pošle více uživatelům). Tato technika významně redukuje celkovou potřebu IO operací (pozn. překladatele - piggyback se používá spolu se slovem jízda ve smyslu jízdy na nárazníku, rámu (přeneseně jízdy načerno nebo zadarmo). V tomto případě se data načítají z disku pro jednoho uživatele a okamžitě distribuují všem dalším uživatelům, kteří je v tu chvíli také potřebují.
Ochrana L2 Cache
Nově optimalizovaný kód snižuje četnost zahození obsahu cache CPU, které způsobuje zpomalení současně zpracovávaných dotazů.
Zkrácení délky hlavičky typu Varlena
Úpravou formátu datového typu Varlena, který se v PostgreSQL používá pro uložení všech hodnot s proměnnou velikostí, dochází ke snížení velikosti databáze zhruba o 20%.

Výkon ve Windows

Nemůžeme zapomenout na naše uživatele, kteří používají Windows. PostgreSQL 8.3 posouvá Windows do první ligy podporovaných platforem.

Podpora MS Visual C++
PostgreSQL lze přeložit nejen v MinGW (vývojové prostředí umožňující snažší portování aplikací z OS typu Unix), ale i v Microsoft Visual C++. Použití překladače fy. Microsoft by mělo zvýšit výkon a stabilitu na platformách této firmy.
Přepracování startovního kódu serveru
Drasticky snižuje spotřebu paměti procesu postmaster, což umožňuje paralelní běh více obslužných procesů (kteří obslouží více klientů).

Administrace

Administrace PostgreSQL je jednodušší než u proprietárních databází, nicméně vždy je další prostor pro zlepšení. PostgreSQL obsahuje řadu nových funkcí zjednodušujících správu a poskytujících administrátorovi databáze podrobnější a obsáhlejší diagnostiku.

CSV Log Output

Volitelně lze zapisovat do logu v CSV formátu, což zjednodušuje tvorbu nástrojů na analýzu výkonu a ad-hoc auditů.

Podpora SSPI GSSAPI
Podpora autentifikačního systému Kerberos v PostgreSQL byla rozšířena o možnost použít bezpečnostní API: SSPI je průmyslový standard na platformě Windows a GSSAPI je průmyslový standard v prostředí Unix a Linux. Podpora těchto API by měla zjednodušit integraci uvnitř velkých vnitropodnikových sítí.
Lokální nastavení systémových proměnných
Pro každou uživatelskou funkci lze určit specifické nastavení systémových proměnných. Kromě jiného se tím řeší bezpečnostní problém s přenastavením systémové proměnné search_path.
Více procesové autovacuum
Umožňuje paralelní běh servisního procesu, díky čemuž je autovacuum použitelné i v aplikacích s tisíci tabulkami.
pgStandby
Administrativní rutina zjednodušující provoz serveru ve Warm Standby režimu.
ORDER BY Nulls First/Last
Umožňuje vytvářet indexy, kde jsou řádky obsahující NULL umístěny na začátek nebo na konec indexu.

Vývoj

Vývoj aplikací

Díky celé řady úprav se PostgreSQL 8.3 může měřit s nejlepšími proprietárními databázemi v podpoře komplexních více vrstvých databázových aplikací.

Fulltextové vyhledávání
TSearch2 byl plně integrován do kódu jádra. Také došlo k pročištění API. Díky tomu se fulltext jednodušeji používá a snáze rozšiřuje o podporu nových jazyků, slovníků a systémů určujících relevanci.
Odstranění neplatných plánů
Uložené prováděcí plány mohou být odstraněny jak samotnou aplikací, tak automaticky, když jsou tabulky aktualizovány.
Editovatelné kurzory (Updatable Cursors)
Kurzory nyní podporují WHERE CURRENT OF, což umožňuje flexibilnější návrh aplikací postavených na použití kurzorů.

Nové datové typy

Typ XML
Typ XML plně podporuje standard SQL/XML, který je součástí ANSI SQL:2003 včetně kontroly zápisu, typově bezpečných operací, funkcí generujících XML a XPath dotazů. Verze 8.3 obsahuje ještě další funkce umožňující export v XML.
Typ UUID
Typ UUID nese 128 bitovou unifikovaný (globální) jednoznačný identifikátor, který se uplatní zejména v distribuovaných aplikacích.
Pole hodnot kompozitního typu
Pole nyní může být vytvořeno pro kompozitní (složené typy), které obsahují více sloupců v jedné hodnotě, jako je typ tabulka nebo zákaznický typ.
Výčtový typ
Výčtový typ je určen seřazeným seznamem alternativních hodnot. Díky tomuto typu bude snažší migrace z MySQL do PostgreSQL.

Uložené procedury

Tyto dvě nové funkce zvyšují použitelnost PL/pgSQL, což je náš nejpopulárnější jazyk pro tvorbu uložených procedur v PostgreSQL.

RETURN QUERY
Nyní lze v PL/pgSQL ještě jednodušeji vrátit výsledek dotazu v SRF funkci.
Posuvné kurzory (Scrollable Cursors)
PL/pgSQL nyní také podporuje posuvné kurzory, umožňující v PL/pgSQL procedurách dynamický pohyb kurzoru (vpřed i vzad).

Příslušenství

Řada důležitých funkcí není podporována v základním kódu. Důvodem je snaha o udržení co nejmenšího jádra databáze, které se snáze udržuje. Existuje několik stovek volitelných doplňků, s kterými PostgreSQL umožňuje replikace, podporuje vysokou dostupnost, použití dalších programovacích jazyků, integraci aplikací a získává i některé další experimentální možnosti. Většina těchto doplňků je volně ke stažení z archivu pgFoundry. Část aplikací(modulů) z následujícího seznamu je již přepravena pro 8.3. Část modulů s 8.3 spolupracuje, ale ještě nevyužívá všechny možnosti, které jsou v 8.3. Tyto moduly se budou v následujícím období aktualizovat.

pgBouncer
Tento více vláknový connection pooler umožňuje jedné PostgreSQL databázi udržovat až 100,000 spojení mezi aplikacemi a serverem.
PL/Proxy
Interface pro distribuované horizontálně separované tabulky.
pgSNMP
Standardní SNMP ovladač pro PostgreSQL zjednodušující monitorování serverů v síti.
SEpgsql
Bezpečnostní doplněk postavený nad modelem a metodikou SELinuxu, který dovoluje aplikovat unifikovaný postup SELinuxu jak na OS tak na DBMS.
PL/pgSQL Debugger
Nový grafický nástroj podporující interaktivní ladění a krokování PL/pgSQL procedur.
pgPoolII
PgPoolII staví na úspěchu předchozí verze. Pomocí inteligentní replikace dotazů umožňuje datový partitioning.
Bucardo
V případě PostgreSQL první dostupný systém podporující multi-master asynchronní replikaci.
CyberCluster
Nově otevřený open-source projekt integrující a rozšiřující několik stávajících nástrojů pro clustering, jako je pgCluster nebo pgPool.
Slony-I
Druhá verze Slony-I, našeho nejpopulárnějšího replikačního systému, nyní používá nové replikační API v PostgreSQL 8.3.