PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Auf Postgres-XL 9.5 hinarbeiten

Es waren einige Monate sehr beschäftigt, während wir daran arbeiteten, Postgres-XL mit der neuesten und besten Version von PostgreSQL zusammenzuführen. Postgres-XL ist ein Open-Source-Fork von PostgreSQL, der eine skalierbare Plattform für OLTP und Business Intelligence bietet. Die aktuelle Version von Postgres-XL basiert auf PostgreSQL 9.2, es fehlen also alle Verbesserungen, die in den letzten drei Jahren an PostgreSQL vorgenommen wurden.

2ndQuadrant und andere Unternehmen arbeiten daran, verteilte Skalierbarkeit in den PostgreSQL-Kern zu bringen sowie Tools und Erweiterungen außerhalb des Kerns zu erstellen. Als Teil davon hat Postgres-XL eine Reihe von Funktionen, die wir gerne wieder in den Kern von PostgreSQL einbringen würden, also hat 2ndQuadrant die Aufgabe übernommen, die Postgres-XL-Codebasis als ersten Schritt auf die neueste PostgreSQL-Version zu aktualisieren. Nach mehr als 3 Monaten Arbeit befindet sich PostgreSQL 9.5 immer noch im Alpha-Stadium, daher wollten wir einen Fortschrittsbericht über den Fortgang der Arbeiten geben. Ich muss auch die magischen Worte sagen:Diese laufenden Arbeiten an Postgres-XL sind Teil des AXLE-Projekts, das von der Europäischen Union im Rahmen der Finanzhilfevereinbarung 318633 finanziert wird.

Vorbereitung der Fusion

Da sowohl PostgreSQL als auch Postgres-XL GIT als Quellcodeverwaltungssystem verwenden, wird der Zusammenführungsprozess viel einfacher, da GIT viele Tools zur Unterstützung des Prozesses bereitstellt. Aber sobald wir die Zusammenführung versuchten, standen wir vor der ersten Hürde.

Wir haben festgestellt, dass das aktuelle Postgres-XL-Repository auf einer älteren Nebenversion 9.2 von PostgreSQL basiert. Das bedeutet, dass es im Master-Branch von Postgres-XL Commits und Änderungen gab, die entweder nie zum Master-Branch von PostgreSQL gemacht wurden oder andere Commit-IDs hatten. Die Zusammenführung mit dem PostgreSQL-Master-Zweig hat also viel mehr Konflikte ausgelöst, als wir von anderen erwartet hätten. Die erste Aufgabe, die wir erfüllen müssen, bestand also darin, das Postgres-XL 9.2-Repository auf einen späteren Commit-Punkt umzubasieren. Dies erforderte natürlich ein vorsichtiges Treten, um sicherzustellen, dass während des Vorgangs nichts kaputt geht. Nachdem wir die grundlegende Rebase durchgeführt hatten, haben wir auch alle Postgres-XL-Bugfixes und -Verbesserungen zusammengeführt, einen stabilen Postgres-XL 9.2-Zweig erstellt und den 9.2-Zweig mit der neuesten verfügbaren PostgreSQL 9.2-Nebenversion zusammengeführt.

Herausforderungen während der Fusion

Auch die eigentliche Zusammenführung mit dem PostgreSQL-Masterbranch war keine leichte Aufgabe. Beachten Sie, dass wir 3 Hauptversionen von PostgreSQL übersprungen haben, was fast 3 Jahre Entwicklungsarbeit ausmachte. Zum Glück ist git-mergetool sehr praktisch für solch umfangreiche Zusammenführungen. Sie können Ihren bevorzugten Editor (in unserem Fall vimdiff) verwenden, um die Merge-Konflikte gut zu sehen und zu lösen. Während einige der Konflikte einfach sind und geringfügige Anpassungen erfordern, erfordern viele ein sorgfältiges Lesen und Verstehen des Codes. Obwohl es nicht trivial ist, alle neuen Funktionen zu unterstützen, haben wir versucht, so viel wie möglich beizubehalten, und wir waren recht erfolgreich.

Die andere große Herausforderung war das Zusammenführen von Dokumentationsänderungen. Da das Postgres-XL-Projekt eine Kopie der vorhandenen SGML-Dokumentation erstellt hatte, ergab die GIT-Zusammenführung mit dem Master-Zweig keine Aktualisierungen der Kopie. Dies erforderte eine manuelle Zusammenführung. Um sicherzustellen, dass dies bei zukünftigen Zusammenführungen nicht erneut erforderlich ist, nehmen wir jetzt die Dokumentationsänderungen vor Ort vor.

Was kommt als Nächstes?

Es gibt viele Dinge, die erledigt werden müssen, bevor wir Postgres-XL 9.5 für die breite Öffentlichkeit freigeben können:

  1. Regressionstestabdeckung für Postgres-XL verbessern
  2. Fehler beheben und Unterstützung für neue Funktionen hinzufügen
  3. Führen Sie systematische Leistungstests und Optimierungen durch
  4. Postgres-XL 9.5-Zweig erstellen und mit dem neuesten stabilen PostgreSQL 9.5-Zweig zusammenführen

Wir sind noch nicht bereit für die Überprüfung von Postgres-XL, aber wir gehen davon aus, dass Postgres-XL 9.5 Beta ungefähr zur gleichen Zeit wie PostgreSQL 9.5 Beta fertig sein wird.

Suchen Sie in etwa einem Monat nach meinem nächsten Blogbeitrag für das nächste Update.