Kamis, 15 Oktober 2009

History PostgreSQL



PostgreSQL memiliki sejarah yang lebih panjang dan berliku. Pertama memulai hidupnya dalam wujud bernama Ingres (“Interactive Graphics and Retrieval System”), yang dikembangkan di Universitas Berkeley mulai tahun 1977 hingga 1985. Pemimpin proyek Ingres adalah Profesor Michael Stonebraker dan Eugene Wong. Ingres mula-mula dikembangkan di atas platform komputer mini PDP-11. Pada waktu itu belum ada SQL, dan Ingres memiliki bahasa query tersendiri yang disebut QUEL.

Kode Ingres kemudian dikomersilkan sehingga berdirilah Relational Technologies (yang lalu berganti nama menjadi Ingres Corporation, dan kini berada di bawah perusahaan Computer Associates). Sementara itu, dari universitas yang sama, didirikan pulalah perusahaan Sybase dan Illustra (yang lalu bernama Informix, dan kini telah dibeli oleh IBM) oleh para alumninya. Profesor Stonebraker sempat terlibat di ketiga perusahaan ini. Salah satu pendiri Ingres juga merupakan pendiri Illustra. Jadi dari Ingres lahir berbagai produk database: Ingres sendiri, Sybase, dan Informix. Database komersial Ingres (yang mengalami berbagai metamorfosis nama, mulai dari Ingres II, Ingres NET, CA-Ingres, CA-OpenIngres, CA Advantage Ingres) masih ada dan dijual hingga kini.

Dari proyek Ingres juga lahirlah proyek penerusnya, Postgres (1986–1994). Dipimpin juga oleh Stonebraker, proyek ini bertujuan membuat Ingres agar menjadi lebih berorientasi objek. Kode Postgres inilah yang diambil menjadi Illustra dan Informix.

Tahun 1995 dua mahasiswa S2 di universitas yang sama, Jolly Chen dan Andrew Yu, menambahkan SQL pada Postgres untuk menggantikan QUEL. Hasilnya adalah Postgres95. Akhirnya kedua mahasiswa pun lulus dan meninggalkan Berkeley, namun Chen masih terus memaintain Postgres95. Produk ini memiliki komunitas yang aktif berdiskusi di mailing list. Setahun berikutnya, Postgres95 jadi bertambah popular. Anggota mailing list telah mencapai 1000 orang. Seseorang bernama Marc G. Fournier dari Kanada menawarkan sebuah server untuk dipakai menjadi host mailing list dan CVS. Hingga saat itu, ada empat orang yang menjadi pengembang utama Postgres95: Chen, Fournier, dan dua orang lain yaitu Thomas Lockhart di California, AS dan Vadim Mikheev di Rusia. Namun Postgres95 dikembangkan bersama-sama lewat Internet dan sumbangan patch dan berbagai orang di seluruh pelosok dunia.

Sayangnya, proyek ini belum terkelola secara baik, apalagi profesional. Semua pengembang utamanya punya karir masing-masing. Mereka hanya mengembangkan Postgres95 sebagai kerja hobi atau sampingan. Padahal jumlah pemakai sudah cukup banyak. Laporan-laporan bug banyak yang tidak tertangani dengan baik. Menurut Chen, keluarga Postgres secara tradisional dikembangkan dalam suasana akademik, dan belum siap untuk menerima sumbangan kode dan laporan bug yang begitu banyak. Lagipula, kode turun-temurun dari Ingres dan Postgres ini belum sepenuhnya dimengerti, bahkan oleh Chen. Untungnya, para pengembang Postgres95 berdedikasi untuk berbenah diri.

Pertengahan 1996, nama Postgres95 sepakat dianggap sudah basi, maka lahirlah PostgreSQL (baca: post-grés-kju-él), dengan label versi dimulai dari angka 6.0 (versi terakhir dari Postgres/Berkeley adalah 4.2, dan Postgres95 dianggap versi 5.x). Di sinilah, dan juga berlanjut di keluarga 7.0–7.1, banyak terjadi peningkatan dalam hal skalabilitas, fitur, dan kecepatan.

Meskipun demikian, perbaikan berlangsung tidak secara tiba-tiba, melainkan berangsur-angsur. Para pengembangnya perlu terlebih dulu masih perlu membenahi kode-kode lama dan kode yang belum sepenuhnya dimengerti. Hingga versi 6.4 (1998) misalnya—di mana banyak ditambahkan fitur baru seperti dukungan karakter internasional, bahasa stored procedure baru, view, dan beberapa sintaks SQL tambahan—banyak terjadi masalah stabilitas. Beberapa pemakai melaporkan menjalankan proses server PostgreSQL yang lalu secara misterius tiba-tiba mati tanpa laporan apa-apa di log—alias crash. Sebagian yang lain melaporkan diskonek secara acak. Dan sebagian lagi mengeluhkan kurang memuaskannya kinerja PostgreSQL. Bahkan ada pemakai yang membelot ke MySQL. Periode ini merupakan saat-saat yang cukup mengkhawatirkan bagi popularitas PostgreSQL. Contohnya, lihat www.phpbuilder.com/columns/tim20000705.php3 di mana Tim Perdue menceritakan bahwa di tahun 1999, ia terpaksa beralih ke MySQL dalam membangun SourceForge. Kinerja PostgreSQL terlalu berbeda dengan MySQL sehingga mau tak mau pengguna setia PostgreSQL ini harus berganti database.

Versi 6.5 menurut pengembang PostgreSQL merupakan babak baru pemahaman mereka terhadap keseluruhan source code PostgreSQL. Versi ini juga merupakan versi perbaikan bug yang penting; ada banyak bug seperti berbagai kasus crash, kebocoran memori, dan kejanggalan/kekurangan pada sintaks SQL-nya diperbaiki. Selain itu, di versi 6.5 ditambahkan MVCC oleh Vadim, yang berpotensi meningkatkan kinerja PostgreSQL secara signifikan. MVCC, atau Multi Version Concurrency Control, serupa dengan InnoDB pada MySQL dalam hal memberikan kemampuan PostgreSQL memperlihatkan lebih dari satu versi tampilan data bagi klien. Perubahan data yang dibuat oleh klien yang sedang melakukan transaksi tidak akan terlihat dulu oleh klien lain sebelum transaksi dicommit. Ini menghindari locking yang tidak perlu.

Versi 6.5.x (1999, seri terakhir dari 6.x) cukup berhasil dan memuaskan bagi para pemakainya. Namun masih ada beberapa kekurangan PostgreSQL yang dirasakan mengganjal bagi banyak orang. Kekurangan-kekurangan ini lambat laun diperbaiki di seri 7.x, dan menurut Bruce Momjian, di seri 7.3 ia berharap PostgreSQL akan sepenuhnya layak dan sebanding dengan database komersial dalam hal fitur penting. Satu keterbatasan yang paling menyebalkan yaitu ukuran data maksimum sebuah field hanya 8–32KB. Ini menyebabkan orang sulit menyimpan teks panjang atau gambar di dalam database. Keterbatasan ini akhirnya dihapuskan di 7.1. Penambahan penting lainnya antara lain foreign key constraint (ditambahkan di 7.0), write-ahead logging untuk peningkatan keamanan dan kinerja (7.1), serta OUTER JOIN. Masih ada lagi fitur seperti replikasi yang rencananya akan ditambahkan setelah 7.2.

Pengguna setia PostgreSQL boleh berbangga dengan seri 7.x. Di seri ini PostgreSQL mulai menantang dan bahkan mengungguli MySQL dalam hal kecepatan, terutama di query-query kompleks dan pada kondisi load tinggi. Dalam artikelnya Tim Perdue melaporkan hasil benchmark MySQL 3.23 dan PostgreSQL 7.0 dan kesimpulannya adalah: PostgreSQL memang telah menjadi semakin baik. Dan kecepatannya cukup mengagumkan. Stabil pula.

Setelah PostgreSQL berkembang menjadi yaitu 7.2 PostgreSQL dikembangkan dengan siklus rilis sekitar 4 bulan,. di antara pengembang inti PostgreSQL yang paling aktif antara lain Thomas, Vadim, Tom Lane (AS), Tatsuo Ishii (Jepang), Hiroshi Inoue (Jepang), Philip Warner (Australia), dan Bruce Momjian (AS).


Tidak ada komentar:

Posting Komentar