Tantangan Menulis Hari ke-119
Oleh: Bernardus Ari Kuncoro
Mari kita telaah proses transaksi ACID yang mesti dibangun ketika membuat Relational Database Management System (RDBMS). Transaksi asem, Mas? Yes! Seperti hidup, kita mesti pernah dan mencoba keasaman dunia ini.
Kata-kata yang membangun singkatan ACID yang terdiri dari Atomicity, Consistency, Isolations, dan Durability.
1. Atomicity: Hanya ada yes atau no untuk keseluruhan transaksi yang diproses. Jangan cuma sebagian. Contoh nyata transaksi atomic ini adalah transaksi transfer uang yang melibatkan dua nomor rekening. Transaksi ini melibatkan dua operasi. Pertama menarik uang dari satu rekening. Kedua memasukkan uang tersebut ke rekening kedua. Sebuah transaksi yang atomic, akan menjaga database dalam keadaan yang konsisten. Hal ini menjamin bahwa jika dari dua transaksi tadi, salah satunya gagal, maka ada kejadian uang hilang atau justru ada uang yang terbentuk.
2. Consistency: Hanya transaksi yang mematuhi constrains dan peraturan lah yang tertulis di database. Jika tidak, database akan tetap berada pada keadaan sebelumnya. Data mesti benar untuk keseluruhan baris dan tabel.
3. Isolations: Setiap transaksi diproses secara independen dan secure. Urutan tidak jadi soal. Isolasi yang rendah akan menyebabkan banyak user mengakses data secara simultan. Akan tetapi hal ini juga akan meningkatkan kemungkinan efek concurrency, seperti kehilangan update, pembacaan yang kurang pas. Sementara itu isolasi tingkat tinggi menurunkan efek concurrency, tetapi juga membuat keleluasaan sumber daya dan transaksi menjadi terbatas.
4. Durability: Transaksi yang lengkap disimpan dalam database meskipun ada kegagalan sistem. Contoh yang umum adalah ketika Anda melakukan tracking pemesanan tempat duduk dalam sebuah pesawat. Jika Anda sudah mengkonfirmasikan kursi Anda, meskipun ada kegagalan sistem, nomor kursi Anda tetap tersimpan.
Saya yakin. ACID ini juga punya perumpamaan dan Filosofi yang pantas diangkat. Seperti penerapan nilai kehidupan setiap insan. Anda harus menerima hidup ini secara utuh. Jangan sebagian saja. Mau manis-manis aja, tanpa ada pahit atau pedas. Hal itu dinamakan Atomicity. Kalau salah, ya salah. Tidak tercatat dalam sistem, tetapi masuk log list pengakuan dosa. Kalau benar, ya benar. Baru bisa masuk ke database untuk diolah menjadi Insight.
Konsisten. Supaya tidak mengganggu atau diganggu orang lain, setiap hal baik yang kita lakukan, atau ‘transaksi’ kita mesti taat aturan atau hukum yang berlaku. Di mana langit dipijak, di situ bumi dijunjung. Tolong, koreksi kalau saya salah dan tidak konsisten.
Isolasi. Anggap masa pandemi ini untuk merefleksikan diri. Makin terisolasi, makin sulit dan terbatas. Makin tidak terisolasi alias bergaul di sana dan di sini, makin riweh dan ribet, karena makin ramai orang-orang yang masuk dalam kehidupan kita. Asal Anda sanggup mengatur, ya tidak masalah.
Durability. Tangguh dan tahan lama. Saat ada error atau kegagalan dalam sistem kehidupan Anda, Anda siap kembali lagi ke masa sebelum gagal untuk bangkit.
Semoga Anda makin ACID, sama seperti transaksi perbankan yang akan mencapai titik sibuk atau tertingginya pada kisaran tanggal 25-28 setiap bulannya untuk transaksi gajian kepada para karyawan.
(Disadur dan diterjemahkan dari sebuah bab di Kursus Daring Udacity: Data Engineering Nanodegree)
Pernah terbit di sini pada 07 Desember 2020
Kalideres, 27 Juli 2021