Hlavní navigace

Firebird Developers' Day 2007

24. 1. 2012 11:46 (aktualizováno) | Pavel Císař

Ve čtvrtek 1. listopadu proběhla v prostorách pražské Přírodovědecké fakulty UK jednodenní konference věnovaná Firebirdu pořádaná portálem Databázový svět, nazvaná příhodně Firebird Developers' Day 2007.

Podzim u nás bývá tradičně docela hektický, takže kdyby nešlo o akci Databázového světa se kterým tradičně udržujeme přátelské vztahy, a kdyby se Marek Kocan soustavně nepřipomínal (ahoj Marku!), asi bych se z důvodu enormní zaneprázdněnosti této akce neúčastnil. Obzvláště když mám plné ruce práce s přípravou našeho vlastního semináře který se bude konat v pátek 9. listopadu. Protože jsem ale Markovi slíbil přispět svou troškou do programu, nezbylo mi než si přeorganizovat rozvrh. A protože se nic nemá dělat polovičatě, vyhradil jsem si celý den a ne jen pár hodin na vlastní příspěvek. Nakonec jsem rád, že to tak dopadlo.

Přírodovědecká fakulta se nachází na pražském Albertově (kousek od botanické zahrady a Karlova náměstí). Ač Pražák, nikdy jsem tam nebyl. Protože jsem ale do protější budovy docházel na rehabilitace se zády, nebyl problém ji najít. Díky dobrému značení nebyl problém ani najít sál Věž, který bych asi jinak hledal dost dlouho (po schodech do druhého patra, doleva, doleva, po schodech nahoru, doprava a až na konec chodby která je ve skutečnosti spojením několika různorodých navazujících chodeb). Cestu do Věže lemují vitríny s geologickými vzorky, takže si člověk připadá jak v Národním muzeu, a několik skříní s papírovými modely různorodých krystalických struktur mi připomněly dávno časem zavátá léta na základní škole. Samotná posluchárna Věž je poměrně malá, a cca 70 návštěvníků konference ji naplnilo k prasknutí (někteří museli vzít zavděk místem na schodech mezi lavicemi nebo postávat u věšáků).

Začátek akce byl příhodně stanoven na jedenáctou hodinu dopolední, aby mimopražští účastníci nemuseli tak brzo vstávat (a my pražáci unikli ranní špičce). Po krátkém úvodním slově nastoupil Jirka Činčura (jeden z vývojářů Firebird .NET Provideru, ahoj Jirko!) s přehledem novinek okolo Firebirdu, kde zúročil svou účast na letošní mezinárodní konferenci v Hamburku (na zprávu o této akci se chystám v následujících dnech). Vzhledem k tomu, že na toto téma bude na našem semináři mluvit hlavní vývojář Firebirdu Dmitry Yemanov, nebudu spoilovat.

Druhý příspěvek měl Ivan Přenosil na téma „Optimalizace počítání řádků“. Jak známo, příkaz SELECT COUNT(*) FROM TABLE nepatří u Firebirdu k nejrychlejším, protože Firebird musí poctivě přečíst všechny řádky a spočítat je. Jde o technologické omezení dané MGA a způsobem implementace indexů. Nicméně pokud potřebujete rychle znát počet řádků v tabulce, existuje pár triků ja toho s trochou úsilí efektivně dosáhnout (Ivan přislíbil svůj příspěvek zveřejnit na webu a všechny prezentace by se měly rovněž objevit k stažení na Databázovém světě).

Slávek Skopalík z Elekt Labs je dlouholetým uživatelem Firebirdu a zkušeností má na rozdávání, jak často dokazuje na různých seminářích a konferencích. Protože se převážně zabývá aplikacemi ve výrobě, jeho oblíbenými tématy jsou spolehlivost a optimalizace. Není tedy divu, že jeho příspěvek pro Developers' Day měl téma „Základy instalace a optimalizace“. Jako už tradičně šlo o praxí prověřené tipy a triky s názornými příklady.

Po přestávce pohovořil Jirka Činčura na téma „.NET Framework a Firebird“, a pak už přišla řada na můj příspěvek o „Optimalizátoru Firebirdu“.

Po další přestávce odpověděl Lukáš Brůha z KAGK na otázku „Jak realizovat prostorová data nad Firebirdem?“. Jak známo, Firebird nemá standardně žádnou podporu pro práci s prostorovými daty, ani nenabízí příhodné datové typy a typy indexů vhodné pro taková data. Lukášův příspěvek ukázal, jak lze s trochou práce prostorová data do Firebirdu nejen ukládat, ale i zpracovávat. Nicméně pokud nemáte obzvláště dobrý důvod proč se do takového dobrodružství pouštět, použijte raději nějaký jiný systém (např. PostgreSQL). Podpora pro prostorová data se ve Firebirdu jen tak rychle neobjeví (rozhodně se o ní zatím neuvažuje a ani není nijak prioritní, ale u open source nikdy předem nevíte kdo s čím přijde), nicméně v poměrně blízké době by se v enginu měla objevit podpora pro dotazy do jiných databází (prototyp je již privátně implementován), takže byl neměl být problém zkombinovat data uložená ve Firebirdu s prostorovými daty uloženými v lépe vybaveném systému (např. právě PostgreSQL) pomocí těchto dotazů v rámci uložených procedur nebo konstrukce EXECUTE BLOCK.

Na úplný závěr byl zařazen (mírně provokativní) příspěvek Zdenka Kotaly (Sun Microsystems) porovnávající Firebird, PostgreSQL a Derby, příhodně nazvaný „Slon nebo pták ohnivák?“. Na příspěvku bylo znát, že u Sun Microsystems znají dobře PostgreSQL i Derby (konec konců se podílejí na vývoji obou databází), ale o Firebirdu toho mnoho nevědí. Například se jim nechtělo věřit, že pro spolehlivé fungování není zapotřebí Write-ahead Log. Srovnání vlastností všech tří produktů bylo sice férové, a jasně ukázalo rozdílnosti v prioritách, zaměření a charakteru jednotlivých databází, ale následná prezentace výsledků benchmarku všech tří databází již rozhodně férová nebyla (jeden prohřešek za druhým včetně porovnávání hrušek s jablky, testování betaverzí a nevhodně zvolené metodologii). Čehož se s nadšením chytil Marek Kocan v naději na pořádně divokou (a pro pozorovatele tudíž zábavnou) konfrontaci (dokonce několikrát navrhl, že nám nechá přinést bedýnku s rajčaty). K žádnému dramatickému střetu ale nedošlo, neb to mezi open source projekty není zvykem (až na takové to přátelské škádlení). Naopak jsme se předběžně domluvili na spolupráci a společném férovém srovnávacím benchmarku PostgreSQL a Firebirdu. Nakonec jsme si dobře popovídali a vyměnili informace o našich produktech i projektech.

Po skončení programu jsem se s malou skupinkou lidí (mimo jiné ze Sun, Elekt Labs, SuSE) přesunul do nedalekého pohostinství na pár a dokončení nakousnutých diskuzí. Bohužel se už připozdívalo a měl jsem ještě nějaké povinnosti, takže jsem se musel zhruba po půl hodině rozloučit a nechat některé věci nedořešené (naštěstí bude ještě příležitost příští týden).