DBMS Terdistribusi - Kegagalan & Komitmen

Sistem manajemen database rentan terhadap sejumlah kegagalan. Dalam bab ini kita akan mempelajari jenis kegagalan dan protokol komit. Dalam sistem database terdistribusi, kegagalan dapat dikategorikan secara luas menjadi kegagalan lunak, kegagalan keras dan kegagalan jaringan.

Kegagalan Lunak

Kegagalan lunak adalah jenis kegagalan yang menyebabkan hilangnya memori volatile komputer dan bukan penyimpanan persisten. Di sini, informasi yang disimpan di penyimpanan non-persisten seperti memori utama, buffer, cache, atau register, hilang. Mereka juga dikenal sebagai kerusakan sistem. Berbagai jenis kegagalan lunak adalah sebagai berikut -

  • Kegagalan sistem operasi.
  • Kerusakan memori utama.
  • Kegagalan transaksi atau aborsi.
  • Error yang dihasilkan sistem seperti integer overflow atau error divide-by-zero.
  • Kegagalan perangkat lunak pendukung.
  • Masalah listrik.

Kegagalan Keras

Kegagalan keras adalah jenis kegagalan yang menyebabkan hilangnya data di penyimpanan persisten atau non-volatil seperti disk. Kegagalan disk dapat menyebabkan kerusakan data di beberapa blok disk atau kegagalan total disk. Penyebab kegagalan berat adalah -

  • Masalah listrik.
  • Kesalahan di media.
  • Kerusakan baca-tulis.
  • Korupsi informasi pada disk.
  • Baca / tulis head crash dari disk.

Pemulihan dari kegagalan disk bisa jadi singkat, jika ada disk baru, diformat, dan siap digunakan untuk cadangan. Jika tidak, durasi mencakup waktu yang diperlukan untuk mendapatkan pesanan pembelian, membeli disk, dan menyiapkannya.

Kesalahan jaringan

Kegagalan jaringan lazim terjadi di database jaringan atau terdistribusi. Ini terdiri dari kesalahan yang disebabkan dalam sistem database karena sifat data yang terdistribusi dan mentransfer data melalui jaringan. Penyebab kegagalan jaringan adalah sebagai berikut -

  • Kegagalan tautan komunikasi.
  • Kemacetan jaringan.
  • Korupsi informasi selama transfer.
  • Kegagalan situs.
  • Partisi jaringan.

Protokol Komit

Setiap sistem database harus menjamin bahwa properti transaksi yang diinginkan dipertahankan bahkan setelah kegagalan. Jika kegagalan terjadi selama eksekusi transaksi, mungkin saja semua perubahan yang disebabkan oleh transaksi tidak dilakukan. Ini membuat database tidak konsisten. Protokol komit mencegah skenario ini menggunakan pembatalan transaksi (rollback) atau pengulangan transaksi (roll forward).

Commit Point

Titik waktu di mana keputusan dibuat apakah akan melakukan atau membatalkan suatu transaksi, dikenal sebagai titik komitmen. Berikut ini adalah properti dari titik komit.

  • Ini adalah titik waktu ketika database konsisten.

  • Pada titik ini, modifikasi yang dilakukan oleh database dapat dilihat oleh transaksi lainnya. Semua transaksi dapat memiliki tampilan database yang konsisten.

  • Pada titik ini, semua operasi transaksi telah berhasil dijalankan dan pengaruhnya telah dicatat dalam log transaksi.

  • Pada titik ini, transaksi dapat dibatalkan dengan aman, jika diperlukan.

  • Pada titik ini, transaksi melepaskan semua kunci yang dipegangnya.

Transaksi Undo

Proses membatalkan semua perubahan yang dibuat ke database oleh transaksi disebut pembatalan transaksi atau rollback transaksi. Ini sebagian besar diterapkan jika terjadi kegagalan lunak.

Pengulangan Transaksi

Proses penerapan kembali perubahan yang dibuat ke database oleh transaksi disebut transaksi ulang atau transaksi roll forward. Ini sebagian besar diterapkan untuk pemulihan dari kegagalan keras.

Log Transaksi

Log transaksi adalah file berurutan yang melacak operasi transaksi pada item database. Karena log bersifat berurutan, log diproses secara berurutan baik dari awal maupun dari akhir.

Tujuan dari log transaksi -

  • Untuk mendukung protokol komit untuk melakukan atau mendukung transaksi.
  • Untuk membantu pemulihan database setelah kegagalan.

Log transaksi biasanya disimpan di disk, sehingga tidak terpengaruh oleh kegagalan lunak. Selain itu, log secara berkala dicadangkan ke penyimpanan arsip seperti pita magnetik untuk melindunginya dari kegagalan disk juga.

Daftar di Log Transaksi

Log transaksi menyimpan lima jenis daftar tergantung pada status transaksi. Daftar ini membantu manajer pemulihan untuk memastikan status transaksi. Status dan daftar terkait adalah sebagai berikut -

  • Transaksi yang memiliki catatan awal transaksi dan catatan komit transaksi, adalah transaksi berkomitmen - disimpan dalam daftar komit.

  • Transaksi yang memiliki catatan awal transaksi dan catatan transaksi gagal tetapi bukan catatan transaksi yang dibatalkan, adalah transaksi yang gagal - disimpan dalam daftar gagal.

  • Transaksi yang memiliki catatan awal transaksi dan catatan pembatalan transaksi adalah transaksi yang dibatalkan - disimpan dalam daftar yang dibatalkan.

  • Transaksi yang memiliki catatan awal transaksi dan catatan transaksi sebelum komit adalah transaksi sebelum komit, yaitu transaksi di mana semua operasi telah dijalankan tetapi tidak dilakukan - disimpan dalam daftar sebelum komit.

  • Transaksi yang memiliki catatan awal transaksi tetapi tidak ada catatan sebelum-komit, komit, batal atau gagal, adalah transaksi aktif - dipertahankan dalam daftar aktif.

Pembaruan Segera dan Pembaruan Ditunda

Pembaruan Segera dan Pembaruan Ditunda adalah dua metode untuk memelihara log transaksi.

Di immediate updatemode, ketika transaksi dijalankan, pembaruan yang dibuat oleh transaksi ditulis langsung ke disk. Nilai lama dan nilai pembaruan ditulis ke log sebelum menulis ke database di disk. Saat komit, perubahan yang dibuat ke disk dibuat permanen. Saat rollback, perubahan yang dibuat oleh transaksi di database akan dibuang dan nilai lama dikembalikan ke database dari nilai lama yang disimpan di log.

Di deferred updatemode, ketika transaksi dijalankan, pembaruan yang dibuat ke database oleh transaksi dicatat dalam file log. Saat komit, perubahan di log ditulis ke disk. Saat rollback, perubahan di log dibuang dan tidak ada perubahan yang diterapkan ke database.