Bylo několik měsíců rušných, protože pracujeme na sloučení Postgres-XL s nejnovější a nejlepší verzí PostgreSQL. Postgres-XL je open source fork PostgreSQL, který poskytuje škálovatelnou platformu pro OLTP a Business Intelligence. Aktuální verze Postgres-XL je založena na PostgreSQL 9.2, takže postrádá všechna vylepšení PostgreSQL za poslední tři roky.
2ndQuadrant a další společnosti pracují na zavedení distribuované škálovatelnosti do jádra PostgreSQL a také na vytváření nástrojů a rozšíření mimo jádro. V rámci toho má Postgres-XL řadu funkcí, které bychom rádi vrátili zpět do jádra PostgreSQL, takže 2ndQuadrant si jako první krok vzal za úkol aktualizovat základnu kódu Postgres-XL na nejnovější verzi PostgreSQL. Po více než 3 měsících práce je PostgreSQL 9.5 stále ve fázi alfa, takže jsme chtěli podat zprávu o pokroku, jak práce pokračují. Musím také říci kouzelná slova:Tato pokračující práce na Postgres-XL je součástí projektu AXLE, financovaného Evropskou unií na základě grantové dohody 318633.
Příprava na sloučení
Vzhledem k tomu, že PostgreSQL i Postgres-XL používají GIT jako systém řízení zdrojů, značně zjednodušuje proces slučování, protože GIT poskytuje mnoho nástrojů, které tomuto procesu pomáhají. Ale jakmile jsme zkusili sloučení, narazili jsme na první překážku.
Uvědomili jsme si, že aktuální úložiště Postgres-XL je založeno na starší menší verzi 9.2 PostgreSQL. To znamená, že došlo k odevzdání a změnám v hlavní větvi Postgres-XL, které se buď nikdy neprovedly do hlavní větve PostgreSQL, nebo měly jiná ID potvrzení. Takže sloučení s hlavní větví PostgreSQL vyvolalo mnohem více konfliktů, než bychom očekávali jinak. Takže prvním úkolem, který musíme splnit, bylo předělat repozitář Postgres-XL 9.2 na pozdější bod potvrzení. To samozřejmě vyžadovalo opatrné našlapování, aby se během procesu nic nezlomilo. Jakmile jsme provedli základní rebase, sloučili jsme také všechny opravy a vylepšení Postgres-XL, vytvořili stabilní větev Postgres-XL 9.2 a sloučili větev 9.2 s nejnovější dostupnou vedlejší verzí PostgreSQL 9.2.
Výzvy, kterým čelíme během sloučení
Samotné sloučení s hlavní větví PostgreSQL také nebylo snadným úkolem. Všimněte si, že jsme přeskočili 3 hlavní verze PostgreSQL, což téměř představovalo 3 roky vývojové práce. Naštěstí je git-mergetool velmi užitečný pro tak rozsáhlé sloučení. Můžete použít svůj oblíbený editor (v našem případě vimdiff), abyste pěkně viděli konflikty sloučení a vyřešili je. Zatímco některé konflikty jsou přímočaré a vyžadují drobné úpravy, mnohé vyžadují pečlivé čtení a pochopení kódu. I když není triviální podporovat všechny nové funkce, snažili jsme se zachovat co nejvíce a byli jsme docela úspěšní.
Dalším velkým problémem bylo sloučení změn dokumentace. Protože projekt Postgres-XL vytvořil kopii stávající dokumentace SGML, sloučení GIT s hlavní větví nepřineslo žádné aktualizace kopie. Toto vyžadovalo ruční sloučení. Abychom zajistili, že to nebude znovu vyžadováno při budoucích sloučeních, nyní provádíme změny dokumentace na místě.
Co bude dál?
Než budeme moci vydat Postgres-XL 9.5 široké veřejnosti, je třeba dokončit mnoho věcí:
- Vylepšete pokrytí regresními testy pro Postgres-XL
- Opravte chyby a přidejte podporu pro nové funkce
- Proveďte systematické testy výkonu a ladění
- Vytvoření větve Postgres-XL 9.5 a sloučení s nejnovější stabilní větví PostgreSQL 9.5
Ještě nejsme připraveni na recenzi Postgres-XL, ale očekáváme, že Postgres-XL 9.5 Beta bude připraven přibližně ve stejnou dobu jako PostgreSQL 9.5 Beta.
Vyhledejte můj další příspěvek na blogu asi za měsíc, kde najdete další aktualizaci.