Dave Page alias „pgsnake“ je člen rady ředitelů PostgreSQL Europe, sekretář PostgreSQL Community Association of Canada, vedoucí architekt nástrojů a instalátorů v EnterpriseDB, člen PostgreSQL týmů Developer a Core v rámci PostgreSQL Global Development Group a vedoucí vývojář projektu pgAdmin. Dříve pracoval jako vedoucí IT v The Vale Housing Association, jako technik elektroniky v Institutu částicové a jaderné fyziky při University of Oxford a jako učeň elektroniky v Oxford Lasers Ltd. Píše blog zaměřený na PostgreSQL a také tweetuje.
Konference pgconf.eu, nebo dlouze PostgreSQL Conference Europe 2012 proběhne 23. až 26. října v Praze v hotelu Corinthia. LinuxEXPRES je mediálním partnerem konference. Všechny rozhovory u příležitosti konání pgconf.eu 2012:
- Jean-Paul Argudo: Poptávka po PostgreSQL ve Francii každým rokem roste
- Peter van Hardenberg: Spravujeme stovky tisíc databází, data měříme na petabajty a děláme to v pěti lidech
- Pavel Stěhule: Mezi uživateli a vývojáři PostgreSQL nejsou žádné bariéry
- Vincent Picavet: Děláme svobodný software a věříme, že je to správná volba
- Tomáš Vondra: Nemám rád přístup „nemůžeme vám ukázat kód, je to naše tajemství“
- Simon Riggs: Lidi překvapuje, že je PostgreSQL zadarmo a zároveň zatraceně kvalitní
- Peter Eisentraut: Open-source projekty fungují nejlépe, když využívají standardy
- Dave Page, ředitel PostgreSQL Europe, nejen o nadcházející konferenci pgconf.eu
Co vás přilákalo k PostgreSQL?
Původně to byla licence. Kolem roku 1997 jsem pracoval na vývoji nějakých webových aplikací pro vnitřní použití ve firmě The Vale Housing Association v Británii a potřeboval jsem databázi. Měli jsme ve firmě jak Informix SE, tak Pick, ale ani jedna nebyla moc vhodná – za potřebné licence Informixu bychom museli utratit spoustu peněz a Pick (kterou jsem moc rád používal) neměla funkce, jež jsem potřeboval. PostgreSQL měla pěknou, liberální licenci a aktivní komunitu, která měla zájem pomáhat s řešením problémů.
Kdybyste měl jmenovat jednu nebo dvě funkce PostgreSQL, které opravdu stojí za to, co by to bylo?
Mám rád transakční DDL. Díky tomu se aktualizace aplikací nasazují jako nic, aniž by bylo nutné mít obavy, že by se aktualizace databáze pokazily, protože je lze snadno vrátit. Je překvapivé, že tak málo DBMS podporuje transakční DDL.
Také se mi líbí ta nabídka technologií, které lze s PostgreSQL snadno používat. Pracoval jsem na aplikacích, které se připojují například pomocí ovladačů JDBC, ODBC, .NET a OLEDB, stejně jako s pomocí méně standardních (nebo specifičtějších pro konkrétní jazyk, podle toho, jak se na to díváte) rozhraní jako libpq (C), psycopg2 (Python) a DBI::Pg (Perl). Možností je spousta a zajišťují pružnost a volnost výběru technologií, které pro vývoj daného úkolu dávají největší smysl.
Můžete naopak jmenovat funkce, které je potřeba v brzké budoucnosti implementovat?
Stále je co přidávat – je to nekonečný seznam. Nejde jen o doplňování populárních funkcí, které mají jiné DBMS, ale přidávání originálních funkcí a vylepšování Postgresu, aby podporovala nové a právě vznikající technologie. Myslím, že nejzajímavější novou funkcí, na které se nyní dělá, je (z mého pohledu – každý má své oblíbence) nativní obousměrná replikace (native bi-directional replication), na které pracují Simon Riggs, Andres Freund a další. To je technologie, kterou jsem si přál mít jako nativní možnost (tj. ne jako doplňkový balíček) v minulosti už mnohokrát. A i když to vlastně není jednotlivá funkce, tak mám také velkou radost z práce, kterou Robert Haas odvedl při přípravě verze 9.2, jež vyjde v září, půjde-li vše podle plánu. V různých částech kódu věnoval hodně úsilí škálovatelnosti a odstraňování úzkých hrdel, což vyústilo v dost působivé zlepšení výkonu, které pravděpodobně pocítí řada uživatelů.
Každý software má své nevýhody a nedostatky, včetně PostgreSQL. Jaké slabiny má PostgreSQL podle vás?
Na takovou otázku se těžko odpovídá, protože se komunita snaží řešit všechny slabiny hned, jak se na ně přijde. Z technického hlediska bych řekl, že většině lidí vadí absence vestavěné replikace. Původně šlo o vědomé rozhodnutí, ke kterému jsme se přiklonili, protože bylo k dispozici mnoho různých replikačních řešení a bylo lepší nechat projekty jako Slony, pl/proxy a Bucardo vyvíjet a nabízet našim uživatelům možnost výběru. V 9.0 jsme však (po mnoha stížnostech kvůli absenci vestavěné replikace a po příjemné italské večeři core týmu) přidali streaming replikaci a pak ji vylepšili pomocí synchronního režimu a zjednodušili její používání. V současné době probíhá projekt pro přidání obousměrné replikace a jemnějších replikačních voleb (dnes je nutné replikovat celý databázový cluster).
Z netechnického hlediska je to domněnka, že je velmi obtížné stát se uživatelem PostgreSQL, že je to jakýsi elitářský spolek. Takový problém se řeší těžko – dlouhé roky se snažíme připravovat pro PostgreSQL instalátory, pečlivě navrhovat funkce a psát podrobnou dokumentaci, aby bylo snadné systém instalovat, používat a porozumět mu. To však nemá vliv na naši snahu dělat věci správně – a odtud myslím ta představa částečně pochází. Neděláme kompromisy, když jde o integritu dat, a vydáváme jen vysoce kvalitní kód implementující dobře navržené funkce. A to si možná někteří lidé vykládají tak, že je to od vyzkoušení PostgreSQL odradí.
S jakými dalšími databázemi máte zkušenost?
Jak jsem zmínil dříve, používal jsem Pick (a některé související produkty jako Unidata) a Informix. Pick není relační databáze, takže je těžké srovnávat s PostgreSQL – mělo to však několik pěkných nástrojů 4GL pro tvorbu aplikací (i když z dnešního pohledu se zdají prastaré). Informix se ve skutečnosti používal jen pro jedinou aplikaci – strávil jsem více času prací na produktu Informix 4GL než se samotnou databází. Později (i když je to pořád více než pět let zpátky) jsem používal Microsoft SQL Server – je k tomu už roky výborná sada nástrojů, což je jedna z oblastí, na kterou se zaměřuji, abych ji vylepšil pro uživatele PostgreSQL.
Jaké hlavní výhody vidíte v tom, že je PostgreSQL svobodný software?
Myslím, že hlavním přínosem pro uživatele je transparentnost projektu. Lidé mohou sledovat, jak je řízen vývoj a vydávání nových verzí, a mohou nahlédnout do kódu (a samozřejmě ho upravit, pokud chtějí). Takovou průhlednost nemůže uzavřený nebo proprietární software ani zdaleka nabídnout. Velkou výhodou je také přímý přístup k vedoucím vývojářům. V případě mnoha komerčních firem jste jako uživatel zazděn za dvěma až třemi úrovněmi technické podpory, často s pramalou nadějí, že byste mohli mluvit s někým, kdo skutečně viděl ten kód, k němuž poskytuje podporu. V případě PostgreSQL může do mailové konference kdokoliv poslat hlášení o chybě, což často dopadne tak, že to probere přímo s člověkem, který danou funkci původně vyvinul. Samozřejmě, není to garantovaná technická podpora – většina členů komunity jsou přeci jen dobrovolníci –, ale je to místo, kde přicházejí na řadu firmy jako EnterpriseDB. Mohou nabídnout další úroveň podpory, která je často požadována pro klidnější spánek v podnikových prostředích.
PostgreSQL začala na Unixu, nyní je převážně používána s Linuxem. Je to podle vás výhoda?
Neřekl bych, že se používá hlavně na Linuxu – existuje řada velmi populárních aplikací pro Windows, které pro ukládání svých dat používají PostgreSQL. Konkrétně například dva programy pro sledování rozdaných karet v pokeru jsou extrémně populární a vedly k tomu, že se PostgreSQL široce používá na desktopech koncových uživatelů, stejně jako na unixových strojích v datových centrech.
Používáte na desktopu Linux?
Ano, ale bohužel pouze pro testování a vývoj na linuxových virtuálních strojích. Mé hlavní pracovní prostředí je Mac OS X, i když pro větší vývojové úkoly dávám přednost Visual Studiu (které provozuji ve virtuálním stroji Windows 7). Na svých serverech však dávám Linuxu přednost – pro systémy v EnterpriseDB používáme CentOS a pro komunitní infrastrukturu PostgreSQL Debian.
Kde se vzala přezdívka „pgsnake“?
Kdysi dávno, když jsem se začínal podílet na projektu (asi 1998 nebo 1999), jsem rychle potřeboval přezdívku pro IRC kvůli chatu ohledně Postgres. PG je samozřejmě z PostgreSQL a Snake z postavy v Simpsonech.
Jste jedním z adminů komunitní infrastruktury PostgreSQL (servery s komunitními weby, servery pro stahování atd.). Jaká je vaše role v tomto týmu? Kolik serverů spravujete a jaké služby na nich běží?
O velkou většinu infrastruktury projektu se stará základní tým čtyř sysadminů. Používáme naši vlastní platformu pro správu virtuálních strojů, která nám usnadňuje spouštění a spravování virtuálních strojů s Debianem, automaticky řeší věci jako monitorování (trendy a dostupnost) a konfiguraci zálohování a umožňuje nám lehce nasazovat nové balíčky a aktualizace pro celou infrastrukturu. V současnosti máme 9 fyzických strojů, na kterých neběží nic jiného než virtuální stroje postavené na KVM – těch máme teď 40. Máme také několik dedikovaných serverů, například zálohovací a monitorovací, a také pár na sestavování RPM a instalátorů pro Windows. Náš monitorovací server s Nagiosem aktuálně sleduje 60 serverů a 657 služeb počínaje zátěžemi procesorů a disků v každém stroji, přes databáze a webové servery pro naše různé stránky až po náš poštovní systém, servery FTP, servery pro správu verzí, vývojářské stroje atd.
Můžete popsat, o které nástroje se staráte v EnterpriseDB?
Většinu času trávím s Postgres Enterprise Manager, což je komplexní nástroj pro monitorování a správu velkých a malých nasazení PostgreSQL a Postgres Plus Advanced Server. Zajišťuje monitorování databází, databázových serverů a operačního systému a nabízí nástěnky pro rychlé přehledy, upozorňování přes SMTP a SNMP, prediktivní hlášení a nástroj „DBA v kostce“, který poradí s konfigurací vašich systémů. Máme také nástroj SQL Profiler pro vytváření profilů zátěže na vašich serverech, abyste lépe rozpoznali, kde jsou výkonnostní úzká hrdla.
Starám se také o různé menší nástroje, například aplikaci StackBuilder, která je dodávána s instalátory PostgreSQL a která vám umožní snadno stáhnout a nainstalovat ovladače, nástroje a aplikace pro práci s PostgreSQL.
Programujete ještě dnes některé z těch nástrojů?
Snažím se, ale většinu času dnes trávím řízením lidí a projektů jak technického, tak netechnického rázu. A když mám čas psát kód, bývá to na počátku projektů – často dělám hodně práce v rámci R&D (pozn. red.: výzkum a vývoj) a vyvíjím základní architekturu a infrastrukturu pro nové funkce. Pak to nechám našemu vývojovému týmu, aby to skutečně zprovoznil.
Plánujete účast na pgconf.eu 2012?
Určitě tam budu, protože jsem jedním z organizátorů. To však bohužel znamená, že skoro celou dobu strávím pobíháním sem a tam, protože se budu starat o to, aby vše probíhalo hladce. Tentokrát tedy nebudu přednášet. Prezentace pro tento ročník jsme ještě nevybrali, ale sešlo se dost nabídek o širokém spektru témat jak od známých členů komunity, tak od lidí, kteří (zatím) příliš známí nejsou. Školení, které bych opravdu rád viděl, pokud to půjde, je „A day of SQL with Joe Celko“ (Den plný SQL s Joe Celkem) – byla by škoda nechat si ujít příležitost učit se od jednoho z autorů standardu SQL.
Poznámka redakce: Prezentace již jsou vybrané, připravuje se už jen časový rozvrh.
Už minulý rok jste na pgconf.eu 2011 přednášel. Co se vám líbilo, a co ne? Chtěl byste letos vidět něco nového?
Loňská konference byl veliký úspěch. Měli jsme skvělé prostředí, vynikající přednášky a spoustu účastníků – nejen z Evropy, ale z celého světa. Myslím, že jediná věc, kterou bych změnil, je umístění konference. Vždy se snažíme být blízko centra, aby lidé mohli večer jít ven a do společnosti. Ačkoliv minulý rok byla konference od centra Amsterodamu ve vzdálenosti, kterou šlo ujít pěšky, nebyla to žádná krátká procházka!
Těžko říct, jestli bude letošní konference ještě lepší, ale rozhodně se snažíme. Úvodní řeč přednese Joe Celko – světová autorita na SQL. Dostali jsme opravdu dobré návrhy na přednášky, místo vypadá moc hezky a s některými klíčovými sponzory připravujeme různé společenské akce na večer. Byl bych rád, kdyby se účastníci letos registrovali spíše dříve než později (abychom před akcí nepanikařili, protože bychom si mysleli, že se neregistruje dost lidí) a kdyby se počet účastníků zvýšil na 250–300.
Jste již od počátku součástí týmu pgconf.eu. Předpokládám, že je to těžká práce. Proč v tom i nadále pokračujete, co z toho máte?
Ano, nebývá to snadné, ale když se to dá vše dohromady, tak mě to také velmi těší. Seznámím se se všemi účastníky, vidím, jak si konferenci užívají, jak jsou pro ně užitečné přednášky, jak se seznamují s novými kolegy z celého světa. Řekl bych, že to je pro mě to hlavní – mohu strávit nějaký čas s kolegy z celého světa, se kterými denně pracuji na PostgreSQL – nadšenci podle mého gusta!
Otázky sestavili Tomáš Vondra s dalšími členy organizačního týmu konference pgconf.eu a redakce LinuxEXPRESu. Rozhovor přeložil Robert Krátký.