Database

Bagaimana MVCC bekerja di PostgreSQL

Create: Sat, 07/28/2012 - 11:21
Author: nurhidayat

PostgreSQL | Setiap row di PostgreSQL memiliki dua ID transaksi: creation transaction ID yang menunjukkan ID transaksi yang membuat row tersebut, serta expiration transaction ID yang menunjukkan transaksi yang membuat row tersebut kedaluwarsa. Ketika UPDATE dilakukan, PostgreSQL menciptakan row baru dan meng-expire row lama. Ini row yang sama -- hanya saja berbeda versi. PostgreSQL menciptakan row versi baru hasil perubahannya tapi juga mempertahankan row versi lama yang sudah kedaluwarsa.

Jelas kan sekarang..... kenapa namanya Multi-Versioning.... Pada sistem database yang menggunakan row-level locking tidak mempertahankan versi lama dari data yang diubah, sehingga kebutuhan untuk mengkunci data muncul untuk menjaga konsistensi data. Setelah sekarang Anda tahu bagaimana PostgreSQL menciptakan versi data, Anda mungkin bertanya-tanya bagaimana PostgreSQL bisa tahu versi yang mana untuk ditampilkan....

Makanan Apa Sih MVCC?

Create: Sat, 07/28/2012 - 10:36
Author: nurhidayat

Setiap programmer yang pernah membuat aplikasi multi-user pasti pernah dibuat  frustrasi gara-gara lock bisa menyebabkan  pengguna menunggu atau bahkan sampai deadlock dan aplikasi hang. walaupun database yang digunakan sudah menggunakan table-levelpage-levelcolumn-level, atau row-level locking, masalah yang sama tetap muncul: SELECT oleh satu user nge-block UPDATE oleh user lain sampai transaksi user pertama selesai, dan juga sebaliknya UPDATE satu user nge-block SELECT oleh user lainnya sampai transaksi user pertama selesai. eSQL

Namun bagi Anda yang sudah menggunakan PostgreSQL pasti tahu bahwa problem seperti di atas tidak akan terjadi karena di PostgreSQL ada fitur canggih yang disebut Multi-Versioning Concurrency Control (MVCC) sehingga SELECT tidak pernah nge-block UPDATE, dan UPDATE tidak pernah nge-block SELECT. 

Dynamic CrossTab di MySQL

Create: Thu, 07/05/2012 - 15:19
Author: nurhidayat

Membuat report adalah salah satu pekerjaan yang cukup rumit, lebih lagi jika harus membuat report crosstab dengan jumlah kolom yang dinamis dijamin pusing tujuh keliling. Mencoba menjawab sejumlah pertanyaan tentang crosstab dinamis yang muncul di Facebook grup PHP Indonesia dan MySQL Indonesia, akhirnya saya penasaran juga....

Misalkan kita punya data di tabel stok seperti ini:

Data Access Component di Windows - Part 1

Create: Mon, 06/09/2008 - 15:32
Author: nurhidayat

Pelajaran sejarah adalah salah pelajaran favoritku di sekolah, kecuali PSPB :-). Dalam artikel ini saya akan mencoba membahas sejarah perkembangan model komponen data akses (Data Access Component) di lingkungan Windows dan bagaimana evolusinya sampai sekarang... eh... evolusi kan pelajaran biologi ya? bukan sejarah... halah...

Mengkonfigurasikan Oracle XE

Create: Fri, 06/06/2008 - 14:50
Author: nurhidayat

Banyak sekali setting dan konfigurasi yang dapat diubah untuk Oracle Database XE, bahkan sama banyaknya dengan edisi Enterprise-nya. Namun untuk memudahkan pengguna, kebanyakan setting dan konfigurasi tersebut sudah ditentukan sebelumnya (pre-configured), namun ada sejumlah hal yang konfigurasi umum yang akan kita bahas di sini.

Oracle Database XE

Create: Fri, 05/30/2008 - 14:50
Author: nurhidayat

Dahulu, ketika para developer mencoba untuk mempelajari database Oracle, pasti terbentur dengan masalah hardware, karena Oracle biasanya memerlukan PC dengan spek tinggi, terutama memory. Namun hal ini sudah tidak berlaku lagi dengan Oracle Database XE karena tidak lagi membutuhkan spek tinggi. Ditambah lagi dengan murahnya harga memory saat ini, maka saya pikir Oracle Database XE bisa jadi pilihan.