Beberapa bulan ini kami sibuk untuk menggabungkan Postgres-XL dengan rilis PostgreSQL terbaru dan terhebat. Postgres-XL adalah fork open source PostgreSQL yang menyediakan platform yang dapat diskalakan untuk OLTP dan Business Intelligence. Rilis Postgres-XL saat ini didasarkan pada PostgreSQL 9.2, sehingga tidak memiliki semua peningkatan yang dilakukan pada PostgreSQL selama tiga tahun terakhir.
2ndQuadrant dan perusahaan lain sedang berupaya menghadirkan skalabilitas terdistribusi ke dalam inti PostgreSQL serta membangun alat dan ekstensi di luar inti. Sebagai bagian dari itu, Postgres-XL memiliki sejumlah fitur yang ingin kami bawa kembali ke dalam inti PostgreSQL, jadi 2ndQuadrant telah mengambil tugas untuk memperbarui basis kode Postgres-XL ke rilis PostgreSQL terbaru sebagai langkah pertama. Setelah lebih dari 3 bulan bekerja, PostgreSQL 9.5 masih dalam tahap alpha, jadi kami ingin memberikan laporan kemajuan tentang bagaimana pekerjaan tersebut berjalan. Saya juga perlu mengucapkan kata-kata ajaib:Pekerjaan yang sedang berlangsung di Postgres-XL ini adalah bagian dari proyek AXLE, yang didanai oleh Uni Eropa berdasarkan perjanjian hibah 318633.
Persiapan Penggabungan
Karena PostgreSQL dan Postgres-XL sama-sama menggunakan GIT sebagai sistem kontrol sumber, proses penggabungan menjadi lebih sederhana karena GIT menyediakan banyak alat untuk membantu proses tersebut. Tapi begitu kami mencoba penggabungan, kami menghadapi rintangan pertama.
Kami menyadari bahwa repositori Postgres-XL saat ini didasarkan pada rilis minor 9.2 PostgreSQL yang lebih lama. Itu berarti ada komit dan perubahan di cabang master Postgres-XL yang tidak pernah dibuat ke cabang master PostgreSQL atau memiliki id komit yang berbeda. Jadi bergabung dengan cabang master PostgreSQL menimbulkan lebih banyak konflik daripada yang kita harapkan. Jadi tugas pertama yang harus kita selesaikan adalah me-rebase repositori Postgres-XL 9.2 pada titik komit selanjutnya. Ini jelas membutuhkan langkah yang hati-hati, memastikan tidak ada yang rusak selama proses. Setelah rebase dasar selesai, kami juga menggabungkan semua perbaikan dan peningkatan bug Postgres-XL, membuat cabang stabil Postgres-XL 9.2 dan menggabungkan cabang 9.2 dengan rilis minor PostgreSQL 9.2 terbaru yang tersedia.
Tantangan yang Dihadapi Selama Penggabungan
Penggabungan yang sebenarnya dengan cabang master PostgreSQL juga bukan tugas yang mudah. Perhatikan bahwa kami melompati 3 rilis utama PostgreSQL, yang hampir mencakup 3 tahun pekerjaan pengembangan. Untungnya, git-mergetool sangat berguna untuk penggabungan skala besar seperti itu. Anda dapat menggunakan editor favorit Anda (vimdiff dalam kasus kami) untuk melihat dengan baik konflik gabungan dan menyelesaikannya. Sementara beberapa konflik bersifat langsung dan memerlukan sedikit penyesuaian, banyak yang memerlukan pembacaan dan pemahaman kode yang cermat. Meskipun mendukung semua fitur baru bukanlah hal yang sepele, kami mencoba untuk mempertahankan sebanyak mungkin dan kami cukup berhasil.
Tantangan utama lainnya adalah menggabungkan perubahan dokumentasi. Karena proyek Postgres-XL telah membuat salinan dokumentasi SGML yang ada, penggabungan GIT dengan cabang master tidak menghasilkan pembaruan apa pun pada salinan tersebut. Penggabungan manual ini diperlukan. Untuk memastikan bahwa ini tidak diperlukan lagi di penggabungan di masa mendatang, sekarang kami membuat perubahan dokumentasi di tempat.
Apa selanjutnya?
Ada banyak hal yang harus diselesaikan sebelum Postgres-XL 9.5 dapat dirilis ke masyarakat umum:
- Meningkatkan cakupan uji regresi untuk Postgres-XL
- Perbaiki bug dan tambahkan dukungan untuk fitur baru
- Lakukan tes kinerja dan penyetelan yang sistematis
- Buat cabang Postgres-XL 9.5 dan gabungkan dengan cabang stabil PostgreSQL 9.5 terbaru
Kami belum siap untuk meninjau Postgres-XL, tetapi kami berharap Postgres-XL 9.5 Beta akan siap pada waktu yang hampir bersamaan dengan PostgreSQL 9.5 Beta.
Nantikan postingan blog saya berikutnya dalam waktu sekitar satu bulan untuk pembaruan berikutnya.