Bagikan melalui


Apa itu Transaksi?

Transaksi adalah sekelompok operasi yang memiliki properti berikut: atomik, konsisten, terisolasi, dan tahan lama (ACID). Dukungan transaksi memungkinkan jenis aplikasi baru untuk dikembangkan, sekaligus menyederhanakan proses pengembangan dan membuat aplikasi lebih kuat. Sisa topik ini menyediakan skenario yang menunjukkan kebutuhan akan properti ini, lalu tabel yang menentukan setiap properti.

Dalam grup operasi atomik , baik setiap operasi dalam grup harus berhasil, atau efek dari semuanya harus dibatalkan (juga dikenal sebagai rollback). Misalnya, transfer bank harus merupakan set atom dari dua operasi: debit dari satu akun dan kredit ke akun lain. Debit dan kredit harus diimplementasikan sebagai grup atomik. Jika kedua operasi tersebut tidak berhasil, maka transfer tersebut tidak adulan demi bank atau pemegang rekening.

Persyaratan konsistensi berarti bahwa data konsisten setelah transaksi (dengan asumsi bahwa kita memulai dengan sistem yang konsisten sebelum transaksi). Untuk contoh transfer bank, konsistensi dapat didefinisikan sebagai memiliki saldo rekening gabungan dari kedua akun menjadi konstanta. Untuk menerapkan konsistensi dalam contoh transfer bank, operasi debit dan kredit hanya perlu untuk jumlah uang yang sama.

Contoh lain dari transaksi adalah pembaruan ke situs web. Situs perdagangan elektronik mengharuskan halaman navigasi kategori produk baru muncul pada saat yang sama persis dengan halaman detail produk yang menjelaskan produk baru. Dalam hal ini, ada kebutuhan untuk memperbarui dan menambahkan beberapa entri direktori di bawah kendali transaksi. Tidak hanya perlu memiliki pembaruan atomik, tetapi juga perlu bahwa pelanggan yang saat ini berbelanja tidak boleh melihat pembaruan sedang berlangsung. Ini adalah contoh properti isolasi transaksi.

Properti durabilitas mengharuskan setelah pembaruan selesai, efeknya tetap ada bahkan jika sistem berhenti merespons. Dalam contoh sebelumnya, durabilitas dapat disediakan hanya dengan memastikan pemulihan data yang memadai sehingga semua entri sistem file baru yang mewakili penambahan produk baru ke situs muncul setelah sistem berhenti merespons. Ini membutuhkan sistem dengan pencadangan data, pemulihan, dan mekanisme ketersediaan tinggi.

Jaminan atomitas transaksi, serta properti lainnya, ada dalam menghadapi sejumlah kegagalan, termasuk kegagalan yang terjadi selama fase pemulihan kegagalan sebelumnya. Akhirnya sistem akan mencapai salah satu dari dua status: semua operasi telah diterapkan atau tidak ada operasi yang diterapkan.

Properti transaksi diringkas dalam tabel berikut.

Istilah Deskripsi
Atom
Baik semua operasi dalam transaksi berhasil atau tidak ada operasi yang bertahan.
Konsisten
Jika data konsisten sebelum transaksi dimulai, maka data akan konsisten setelah transaksi selesai.
Terisolasi
Efek transaksi yang sedang berlangsung disembunyikan dari semua transaksi lainnya.
Tahan lama
Ketika transaksi selesai, hasilnya persisten dan akan bertahan dari crash sistem.

Properti ini memastikan bahwa perangkat lunak dapat menangani kesalahan tak terduga, karena hanya dapat membatalkan transaksi ketika situasi yang tidak terduga mencegah keberhasilan penyelesaian. Infrastruktur transaksi memastikan bahwa semua efek dari transaksi yang dibatalkan digulung balik, mengembalikan data ke keadaan konsisten. Oleh karena itu, sistem transaksi memungkinkan pemulihan yang lancar dari kegagalan sistem.

Untuk menjamin properti ACID, sistem yang mendukung transaksi harus memiliki kemampuan pengelogan yang kuat yang dapat digunakan untuk melakukan atau mengembalikan transaksi seperlunya. Untuk informasi selengkapnya, lihat Sistem File Log Umum.