sql >> Database >  >> RDS >> PostgreSQL

Op weg naar Postgres-XL 9.5

Het is een paar maanden druk geweest terwijl we werken aan het samenvoegen van Postgres-XL met de nieuwste en beste release van PostgreSQL. Postgres-XL is een open source fork van PostgreSQL die een schaalbaar platform biedt voor OLTP en Business Intelligence. De huidige release van Postgres-XL is gebaseerd op PostgreSQL 9.2, dus alle verbeteringen die in de afgelopen drie jaar aan PostgreSQL zijn aangebracht, ontbreken.

2ndQuadrant en andere bedrijven werken eraan om gedistribueerde schaalbaarheid in de PostgreSQL-kern te brengen en tools en uitbreidingen buiten de kern te bouwen. Als onderdeel daarvan heeft Postgres-XL een aantal functies die we graag terug willen brengen in de kern van PostgreSQL, dus 2ndQuadrant heeft als eerste stap de taak op zich genomen om de Postgres-XL-codebasis bij te werken naar de nieuwste PostgreSQL-release. Na meer dan 3 maanden werk, bevindt PostgreSQL 9.5 zich nog steeds in de alpha-fase, dus we wilden een voortgangsrapport geven over hoe het werk vordert. Ik moet ook de magische woorden zeggen:dit lopende werk aan Postgres-XL maakt deel uit van het AXLE-project, gefinancierd door de Europese Unie onder subsidieovereenkomst 318633.

Voorbereiding voor de fusie

Omdat PostgreSQL en Postgres-XL beide GIT gebruiken als broncontrolesysteem, maakt het het samenvoegproces veel eenvoudiger omdat GIT veel hulpmiddelen biedt om het proces te ondersteunen. Maar zodra we de samenvoeging probeerden, stonden we voor de eerste hindernis.

We realiseerden ons dat de huidige Postgres-XL-repository is gebaseerd op een oudere kleine 9.2-release van PostgreSQL. Dat betekent dat er commits en wijzigingen waren in de Postgres-XL master branch die ofwel nooit gemaakt zijn in de master branch van PostgreSQL of andere commit id's hadden. Dus mergen met PostgreSQL master branch veroorzaakte veel meer conflicten dan we hadden verwacht. Dus de eerste taak die we moesten volbrengen was om de Postgres-XL 9.2 repository te rebasen op een later commit-punt. Dit vereiste uiteraard voorzichtig betreden, ervoor zorgen dat er niets kapot gaat tijdens het proces. Nadat we de basisrebase hadden gedaan, hebben we ook alle bugfixes en verbeteringen van Postgres-XL samengevoegd, een stabiele Postgres-XL 9.2-branch gemaakt en de 9.2-branch samengevoegd met de nieuwste beschikbare PostgreSQL 9.2-kleine release.

Uitdagingen tijdens de samenvoeging

De eigenlijke merge met PostgreSQL master branch was ook geen gemakkelijke taak. Merk op dat we 3 grote releases van PostgreSQL aan het springen waren, wat bijna 3 jaar ontwikkelingswerk vertegenwoordigde. Gelukkig is git-mergetool erg handig voor zulke grootschalige merges. Je kunt je favoriete editor (vimdiff in ons geval) gebruiken om de samenvoegconflicten mooi te zien en op te lossen. Hoewel sommige van de conflicten eenvoudig zijn en kleine aanpassingen vereisen, vereisen vele een zorgvuldige lezing en begrip van de code. Hoewel het niet triviaal is om alle nieuwe functies te ondersteunen, hebben we geprobeerd zoveel mogelijk te behouden en zijn we behoorlijk succesvol geweest.

De andere grote uitdaging was het samenvoegen van documentatiewijzigingen. Aangezien het Postgres-XL-project een kopie van de bestaande SGML-documentatie had gemaakt, leverde de GIT-samenvoeging met de master-branch geen updates op voor de kopie. Dit vereiste handmatige samenvoeging. Om ervoor te zorgen dat dit bij toekomstige samenvoegingen niet meer nodig is, brengen we nu de documentatie ter plaatse aan.

Wat nu?

Er zijn veel dingen die moeten worden voltooid voordat we Postgres-XL 9.5 voor het grote publiek kunnen vrijgeven:

  1. De dekking van de regressietest verbeteren voor Postgres-XL
  2. Problemen oplossen en ondersteuning toevoegen voor nieuwe functies
  3. Doe systematische prestatietests en afstemming
  4. Maak Postgres-XL 9.5 branch en voeg samen met de nieuwste PostgreSQL 9.5 stabiele branch

We zijn nog niet klaar om Postgres-XL te beoordelen, maar we verwachten dat Postgres-XL 9.5 Beta rond dezelfde tijd klaar zal zijn als PostgreSQL 9.5 Beta.

Kijk voor mijn volgende blogpost over ongeveer een maand voor de volgende update.


  1. Hoe u Foreign Key Check in MySQL uitschakelt?

  2. Wat is sneller, SELECT DISTINCT of GROUP BY in MySQL?

  3. Groottelimiet van JSON-gegevenstype in PostgreSQL

  4. Stappen voor het installeren van Mysql56 op linux