přejít na obsah přejít na navigaci

Linux E X P R E S, Peter Eisentraut: Open-source projekty fungují nejlépe, když využívají standardy

Peter Eisentraut: Open-source projekty fungují nejlépe, když využívají standardy

postgresql.png

Druhý z řady rozhovorů o databázovém systému PostgreSQL ku příležitosti konání PostgreSQL Conference Europe 2012 v Praze. Tentokrát jsme vyzpovídali Petera Eisentrauta, který se podílí na vývoji PostgreSQL už více než deset let, nedávno se také podílel na přípravě standardu SQL:2011.


Peter Eisentraut působí od roku 1999 v PostgreSQL Global Development Group a od roku 2004 je zároveň vývojář Debianu. V minulosti pracoval ve firmách F-Secure Corporation, Sun Microsystems a credativ na pozicích úzce spjatých s databázovým systémem PostgreSQL, čerstvě pracuje jako Senior Data Architect v MeetMe – sociální síti kterou možná znáte pod původním názvem myYearbook.com, která již v roce 2009 udávala 1,5 miliardy zobrazených stránek za měsíc. Píše také blog nejen o PostgreSQL.

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:

Sloni, maskoti PostgreSQL Sloni, maskoti PostgreSQL

Co vás přilákalo k PostgreSQL?

Když jsem začínal, PostgreSQL a MySQL byly jediné open-source relační databáze a můj zaměstnavatel si vybral PostgreSQL. Tenkrát jsem o něm nic moc nevěděl. Po čase jsem však potřeboval něco upravit a komunita mě pohltila – a tak jsem tam, kde jsem.

Díky čemu je PostgreSQL jedinečná?

Samotný fakt, že to vůbec funguje a zpracovává komplexní požadavky s relativní lehkostí, mě neustále ohromuje. Coby vývojář žijete přímo v továrně na párky a vidíte, jak je dělají. Občas to není hezký pohled, ale výsledek je docela chutný. Existuje řada dalších databázových systémů, které dobře zvládají jednoduché dotazy nebo přístup ke klíčům a hodnotám nebo datový sklad. Ale PostgreSQL prostě zvládne vše, co jí předhodíte. V poslední době se objevilo mnoho databázových systémů, které se zaměřují jen na jednu z těchto oblastí, ale nikomu se nechce soutěžit s všestranností PostgreSQL.

Peter Eisentraut na PGDay 2008, zdroj andreas.scherbaum.la Peter Eisentraut na PGDay 2008, zdroj andreas.scherbaum.la

Jedním z aspektů, které mám rád, je rozšiřitelnost: procedurální jazyky, psaní vlastních operátorů či agregačních funkcí nebo nové typy. Je to velmi šikovné a může s tím být hodně zábavy.

Co je naopak potřeba zlepšit?

Měli bychom zařídit, aby mohly jednotlivé požadavky využívat více procesorů. Pro mnohé aplikace je to úzké hrdlo. Běžné servery dnes mívají tolik procesorů, že je škoda nemít možnost je plně využít.

Důležitá je také podpora MERGE. Je to jedna z posledních zbývajících oblastí, ve kterých nelze běžné případy adekvátně vyjádřit v SQL.

Tyto dvě vlastnosti ukazují rozsah věcí, na kterých vývojáři PostgreSQL pracují. Potřebujeme lidi, kteří se orientují v nízkoúrovňových detailech poblíž hardwaru, a zároveň lidi, kteří rozumí vysokoúrovňovým komplexním logickým konstruktům. Často jsou to ti samí lidé, což je úžasné.

Jaké slabiny má podle vás PostgreSQL?

Jedním z problémů je to, že mnoho doplňkových nástrojů užitečných pro správu, monitorování, replikaci apod. je rozeseto po internetu, místo aby byly součástí jednoho uceleného balíku. Není to problém pro zkušené uživatele, kteří si mohou dovolit hodně síly a pružnosti. Ale pro někoho, kdo to chce jen rozběhnout, to může být velmi komplikované. Tento problém je vlastní mnoha open-source ekosystémům a neřekl bych, že by šel úplně vyřešit. Ale musíme se neustále snažit to udržovat na takové úrovni, aby bylo možné se s tím vypořádat.

Další průběžná starost je snaha zajistit, aby PostgreSQL fungovala lépe s velmi velkými databázemi. Přičemž velmi velká často znamená, že se vývojáři nevejde na notebook. V organizaci, která stojí na práci dobrovolníků, z nichž mnozí pracují v opravdu malých firmách, může být složité zajistit hardware nutný pro práci na takových výzvách.

Trochu mě trápí, že PostgreSQL a řada dalších součástí jejího ekosystému nemá dostatečné pokrytí automatickým testováním. Mnohé chyby a nezvyklé případy se objeví jenom při skutečném používání. Je obtížné hledat v této věci správnou rovnováhu.

Plánujete účast na pgconf.eu 2012?

Bohužel se nebudu moci zúčastnit, ale slyšel jsem, že vystoupí Joe Celko. Jak se jim to povedlo?

Tomáš Vondra: Uvažovali jsme o dobrém a zajímavém člověku, který by přednesl úvodní řeč, a Magnus Hagander byl zrovna v USA na konferenci v Texasu (pokud si dobře vzpomínám), které se účastnil i Joe Celko. Potěšilo mě, že Joe Celko nejen přijel na tamní konferenci o PostgreSQL, ale také přijal naši nabídku přednést úvodní řeč na pražské konferenci o PostgreSQL. Já v tom vidím určitý znak pokračující akceptace PostgreSQL coby dobré databáze...

...co si myslíte o tom, jak dnes PostgreSQL přijímají vývojáři?

Šlo o velmi postupnou změnu v průběhu řady let. V současné době je PostgreSQL v některých oblastech výchozí volbou. V tomto ohledu se vyplatila vytrvalost, vydávání kvalitních verzí rok po roce a také to, že jsme se příliš nepletli do cizích pletich. Upřímně řečeno, většina relevantních konkurentů se zničila sama a zanechala PostgreSQL coby jasnou volbu. Ale vývojáři si cestu k PostgreSQL nacházejí mnoha různými způsoby. Někteří jsou nespokojení s MySQL, pro jiné je Oracle příliš drahý, další potřebují pokročilé funkce PostgreSQL a někoho přitáhne PostGIS. Každý má svůj příběh.

Můžete srovnat PostgreSQL s jinými relačními databázemi?

Většina mých zkušeností s jinými databázovými systémy pochází z migračních projektů, které jsem řešil coby konzultant. Jedna věc, na kterou jsem neustále narážel zejména u proprietárních produktů, je, jak neohrabané, nepřátelské a bizarní jsou jejich nástroje a rozhraní. PostgreSQL a její nástroje mají také svůj díl zvláštností, ale ty cizí produkty byly prostě děsné. Většina uživatelů, kteří přešli, se na to dívá podobně: PostgreSQL je radost používat.

Jaké hlavní výhody vidíte v tom, že je PostgreSQL svobodný software?

Buďme upřímní: většina uživatelů přijde k PostgreSQL, protože je zadarmo nebo protože věří, že celkové náklady na jejich projekt budou nižší než s proprietárními alternativami. Přinejmenším to tak dlouho bylo, i když teď se to trochu mění. V současnosti přibývá uživatelů, kteří přicházejí kvůli funkcím nebo protože v PostgreSQL vidí nejdůvěryhodnější volbu.

Peter Eisentraut na PGDay 2008, zdroj andreas.scherbaum.la Peter Eisentraut na PGDay 2008, zdroj andreas.scherbaum.la

Bez otevřeného kódu by moc nefungovala rozšiřitelnost, protože lze navázat v podstatě cokoliv kamkoliv. To je přímo součást projektu a nijak jinak by PostgreSQL vyvíjet nešlo.

Spolupracujete nějak při vývoji PostgreSQL s vývojáři Linuxu?

Linuxové jádro musí sloužit mnoha způsobům použití a část jeho úspěchu spočívá v tom, že to zvládá docela dobře. V těch několika případech, kdy musela komunita PostgreSQL něco řešit s vývojáři Linuxu, například výkonnostní záležitosti, se nám dobře věnovali a myslím, že si uvědomují, že PostgreSQL a databáze jsou důležité aplikace. Když do jádra přispívají firmy jako IBM a Oracle, tak jsou si toho určitě vědomy.

Používáte na desktopu Linux?

Jsem v přechodné fázi. Používám Linux na desktopu už více než deset let, ale nelíbí se mi, jak to teď vypadá a kam se věci ubírají. V počátcích bylo používání Linuxu na desktopu šílené, ale pak přišla doba, kdy to byla skvělá volba, protože nabízel lepší funkčnost než dostupné alternativy. Ale teď jsme zase zpátky u šíleností a já už na to nemám čas. Takže mě asi v budoucnu spíše uvidíte s OS X.

Vypadá to, že až na tu první byly všechny vaše pozice úzce svázány s PostgreSQL – počínaje s credativ přes Sun až po F-Secure. Jak k tomu došlo?

Je to tak, byl jsem ve správný čas na správném místě. Zrovna když jsem se začínal zabývat PostgreSQL, končil na vysoké a hledal si stálejší zaměstnání, PostgreSQL začala být v kurzu. A jak jste jednou v této oblasti, není třeba měnit, protože poptávka po expertech na PostgreSQL je vysoká. Pomůže, když jste aktivní v rámci komunity a lidé znají vaše jméno a práci.

Nedávno jste změnil místo. Týká se vaše práce v MeetMe PostgreSQL?

Ano. MeetMe je sociální síť a všechna data této sítě jsou v databázích PostgreSQL. Máme rostoucí tým správců databází, kteří se starají o to, aby tam ta data zůstala. Čtenáři možná znají MeetMe pod dřívějším názvem myYearbook.com. Firma přispívá PostgreSQL a dalším open-source projektům kódem i penězi už řadu let.

Jste také vývojář Debianu – můžete ty komunity srovnat?

Být součástí komunit PostgreSQL i Debianu je výtečná zkušenost. V některých aspektech se výrazně liší, ale mají i společné rysy, které mě k nim pravděpodobně přitáhly. Hlavním společným znakem je to, že jsou to oba projekty, které nejsou vázané na žádnou konkrétní firmu, a proto se komunity skládají z jednotlivců s obrovsky rozdílnými kořeny a cíli. Po technické a organizační stránce se projekty dost liší. V Debianu můžete na některých balíčcích nebo jiných izolovaných věcech pracovat nezávisle a po většinu času se nemusíte bavit s mnoha lidmi. V PostgreSQL musí jít všechno přes skupinu „hackers“ a centrální repozitář zdrojových kódů. Do jisté míry je často osvěžující přepnout mezi těmito dvěma projekty, když vás jeden ze způsobů práce začne unavovat.

Nemyslím si však, že by se ty projekty mohly navzájem něco naučit, protože jsou tak rozdílné v tom, co dělají a jak to dělají. Je však užitečné, když jednotlivci nosí nápady tam a zpět a zlepšují tím to, na čem pracují.

Podílel jste se na přípravě standardu SQL:2011. Jaká byla vaše role a jaké byly provedeny změny?

Vědět, jakou má člověk roli, je komplikované, a to je významnou součástí problému. Vzhledem k tomu, že SQL je standard ISO/IEC, hlasování a další formální procedury probíhají prostřednictvím pracovních skupin v jednotlivých zemích. Takže třeba německá pracovní skupina může podat návrh, nebo může mít naopak problém s návrhem z Japonska. V praxi je však většina zástupců zemí zaměstnaná u výrobce databáze nebo podobně. Jde o hrstku lidí, veteránů z oboru, dalo by se říct, kteří odvádí většinu práce. A většina iniciativ pochází z Oracle nebo IBM. Je velmi obtížné něco prosadit, pokud o to jedna z těchto dvou firem nemá zájem.

Sloni, maskoti PostgreSQL, CC BY epSos.de Sloni, maskoti PostgreSQL, CC BY epSos.de

Vlastní proces není nepodobný vývoji softwaru. Máte existující základ, a chcete-li provést změny, píšete návrhy. A také tam mohou být chyby, které by měly být opraveny. Když mají všichni pocit, že už se toho udělalo dost, prochází celá věc fázemi jako beta a RC, až je nakonec vydána. Až na to, že nemáte systém pro správu verzí a většina procedur je obalená spoustou žargonu z oblasti ISO.

Ve skutečnosti je to však docela přátelské, jakmile se dostanete dovnitř. V tuto chvíli zástupci projektu PostgreSQL spíše přihlíželi, komentovali pár věcí, které se nám zdály důležité, a posílali několik bugreportů. Měl bych podotknout, že v rámci skupiny pro standard SQL toho pro PostgreSQL dělala mnohem více Susanne Ebrecht.

Změny v SQL:2011 oproti SQL:2008 jsou poměrně malé. Je tam pár věcí, které už PostgreSQL podporuje, například výchozí hodnoty pro parametry funkcí a pojmenované parametry funkcí. Další věci, kterými se PostgreSQL možná bude zabývat v budoucnu, jsou nevynucovaná omezení a tabulky číslované systémem. Jde tedy o hrstku poměrně malých věcí, žádný velký zásah. V tuto chvíli neočekávám zásadní předělání SQL.

Řada vašich příspěvků vylepšuje podporu standardů v PostgreSQL. Proč to považujete za tolik potřebné?

Považuji to za tiché vlastnosti. Když něco funguje právě tak, jak jste si mysleli, že to bude fungovat, nebo když je nějaká funkce prostě k dispozici přesně tak, jak jste doufali. Nikdo to většinou nekomentuje, ale kdyby to bylo naopak, bylo by mnohem více povyku a mnohem méně uživatelů. Takže ano, myslím, že stojí za to se věnovat splňování standardů a dalším věcem, například jednotnosti rozhraní nebo dokumentaci.

Kromě toho si myslím, že open-source projekty nejlépe fungují, když využívají veřejné standardy. To se určitě týká spousty úspěšného open-source softwaru, například jde o GNU/Linux, Apache, Sambu, Sendmail a tak dále. Důvodem je to, že je tak snazší dát směr rozmanité skupině vývojářů a uživatelů. Beru to tedy tak, že práce na splňování standardů je nepřímo prací, která pomáhá dávat směr komunitě.

Jakou roli hrají open-source databáze (a lidé, kteří je zastupují) v pracovních skupinách? Mají nějaký reálný vliv, nebo je proces standardizace řízen komerčními výrobci?

Proces řídí komerční výrobci, protože mají prostředky k tomu, aby lidem zaplatili práci na této věci na více než pár dní za rok. Většina nových vlastností v novém standardu bude navržená dvěma hlavními komerčními výrobci. Ale ostatní účastníci, komerční nebo open-source, určitě mají vliv na to, které z těchto návrhů a v jaké podobě se dostanou dovnitř. Nakonec jde o to, kolik času mají jednotlivci na zkoumání návrhů, účast na schůzkách a psaní návrhů. A ne moc lidí ten čas má.

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ý.

Nahoru

Přidat téma diskuse

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz