Návrat k únorovému termínu
Po loňském květnovém termínu se odborná konference PostgreSQL Prague Developers Day (P2D2) vrátila zpět k tomu pravidelnému únorovému. Loňský rok byl v tomto ohledu specifický, posun byl dán tím, že se v Praze na podzim 2014 konala mnohem větší konference PostgreSQL Conference Europe, a nebylo by tedy dost času na kvalitní přípravu P2D2 pro únor.
Konference P2D2, již pořádá uživatelské sdružení CSPUG, se už stala tradiční součástí kalendáře českých akcí zaměřených na open source a pravidelně je o účast velký zájem. Koná se na půdě Matematicko-fyzikální fakulty Univerzity Karlovy v Praze, konkrétně v bývalém Profesním domě řádu Jezuitů. Účastníky čeká celodenní program nabitý zajímavými přednáškami.
Ranní workshop
Program standardně začíná ranním workshopem od osmi hodin. Workshop je ještě před prezencí, na jeho začátku je (vzhledem k časné ranní době) účast poměrně malá, účastníci přicházejí postupně již během workshopu, někteří až po něm.
Workshop byl tentokrát zaměřen na řešení problémů s výkonem u vytížených aplikací, zejména e-shopů. Pavel Stěhule vycházel z reálných zkušeností z praxe a popisoval problémy, které se objevovaly. Řešily se potíže typu nadměrného a zbytečného provádění dotazů (je dobré je eliminovat), pomalých dotazů (lze odhalit měřením a následně řešit příčinu pomalosti) či využití EAV (v PostgreSQL lze využít typ HSTORE).
Na „přetřes“ přišly také transakce a checkpointy (problematika vyvažování provozního výkonu a rychlosti obnovy po havárii) či požadavky na systém, kde databáze běží (I/O, CPU, paměť...).
Chytré řešení: na druhé straně visačky je program kdykoli dostupný
Prezence a zahájení
Každý účastník obdržel visačku se jménem na jedné straně a programem konference na straně druhé (mohl se tedy do programu kdykoli rychle podívat) a potom tašku se suvenýry a s letáky sponzorů.
Sada suvenýrů Prague PostgreSQL Developers Day 2014
Konferenci oficiálně zahájil Tomáš Vondra. Zahájení se neslo v obvyklém duchu, tedy přivítání, organizační záležitosti a představení sponzorů. Specialitou letošního ročníku byla jakási „burza práce“, zkrátka každý účastník měl oficiálně podpořenou možnost se u zástupců zúčastněných firem zajímat o pracovní místa, protože prakticky všechny tyto firmy shánějí schopné odborníky.
Tomáš Vondra zahajuje konferenci
Dopolední přednášky
What's new in PostgreSQL 9.3
S první přednáškou vystoupil Magnus Hagander, jeden ze zahraničních hostů. Kdo navštívil loňský ročník P2D2, mohl si tehdy vyslechnout, jaké novinky můžeme očekávat v připravované verzi PostgreSQL 9.3. Mezitím se tato verze stala skutečností, a přednáška tedy popisovala to, co již můžeme využívat.
Magnus Hagander představuje novinky v PostgreSQL 9.3
Nemá smysl vypočítávat, co všechno je v 9.3 nového, to si každý může najít v poznámkách k vydání. Řada změn je ale hodně významných a výrazně zlepšují možnosti využití PostgreSQL. Patří k nim například nové funkce v oblasti pohledů (aktualizovatelné pohledy, materializované pohledy apod.), více možností u přístupu do cizích databází (FDW; nově podporuje i databáze PostgreSQL a lze nejen číst, ale i zapisovat) nebo rozšíření u datového typu HSTORE (vnořování, přímá podpora JSON).
Poolování spojení – PgBouncer jednoduše
Při potřebě přistupovat k databázi z řady aplikací současně (ať už na webu nebo jinde) vyvstává problém s počtem otevřených spojení. Je-li příliš velký, přesáhnou alokované prostředky možnosti serveru a výkon rapidně klesá. Proto je často nezbytné spojení mezi aplikacemi a databází aktivně spravovat – Pavel Stěhule při své přednášce představil především řešení PgBouncer, i když stručně zmínil i PgPool a jiná řešení (včetně „vlastnoručních“, která bývají jednoduchá, ale často nepříliš efektivní).
Účastníci konference sledují přednášku Pavla Stěhuleho o poolingu spojení
PgBouncer může pracovat ve dvou hlavních režimech: session mode (správa na úrovni relací) a transaction mode (na úrovni transakcí; agresivnější řešení, nepodporuje všechny funkce PostgreSQL). Kromě toho, že udržuje počet spojení s databázovým serverem v rozumných mezích, může také například pozdržovat připojení (aby nebyl klient hned odmítnut, pokud se nelze připojit) a ověřovat uživatele ještě před připojením k databázi.
Právě to ověřování uživatelů přináší určitý bezpečnostní problém, protože je potřeba zkopírovat uživatele (jména a heše hesel) do souboru používaného programem. Mohou být tedy problémy s ochranou přístupu k tomuto souboru, nehledě na nutnost ho při každé změně uživatelů aktualizovat.
Slony vs. nativní streaming replikace v praktickém provozu
Kdo navštívil například podzimní konferenci IT13.2, bude vědět, o čem je řeč. Adam Mikulič popisoval zmíněná dvě řešení replikace databází, porovnával výhody a nevýhody, toto vše navíc zasadil do kontextu reálného nasazení v rámci sdružení CZ.NIC.
Adam Mikulič při přednášce o replikaci databází
V minulosti (před verzí 9.0) neexistovala nativní replikace, a musela se tedy využívat různá externí řešení, z nichž nejvýznamnější pozici má právě Slony. Trpí ovšem některými zásadními nevýhodami – tou největší je nekompatibilita se změnami ve schématu databáze. Jakmile je potřeba například jen přidat do některé tabulky sloupec, znamená to projít poměrně složitý proces a nedopustit se při něm žádné chyby. Nativní replikace zase například neumí replikovat mezi různými verzemi PostgreSQL.
Konec dopolední části
Tím dopolední část konference skončila a účastníky čekal oběd ve formě švédských stolů. Řádně se posilnit (ale zase ne až k usínání) bylo potřeba, odpolední program byl totiž více než bohatý. Dostaneme se k němu příště.