Jumat, 06 Juni 2014

CRASH & RECOVERY


Penyebab dari kegagalan (failure) adalah :
  1. Disk Crash
Informasi yang ada di disk akan hilang
  1. Power Failure
Informasi yang disimpan pada memori utama dan register akan hilang
  1. Software Error
Output yang dihasilkan tidak betul dan system databasenya sendiri akan memasuki suatu kondisi tidak konsisten (inconsistent state)

Selain hal-hal diatas, masih ada penyebab kegagalan lain yaitu kebakaran ruang komputer dan sabotase yang menyebabkan hilangnya informasi yang berkenaan dengan system database.

à Tipe Storage

  1. Volatile Storage
Data akan hilang jika terjadi gangguan
Contoh : main storage dan chace
  1. Non Volatile Storage
Data tidak mudah hilang jika ada gangguan
Contoh : disk dan tape
  1. Stable Storage
Data yang ada tidak akan hilang

à Jenis Gangguan

  1. Logical Error
Program tidak dapat melanjutkan eksekusinya secara normal karena kondisi internal, seperti kesalahan input (bad input), data tidak ditemukan (data not found), overflow.
  1. System Error
Sistem masuk ke dalam keadaan yang tidak diinginkan, seperti terjadi deadlock sehingga program tidak dapat melanjutkan eksekusi secara normal untuk sementara waktu
  1. System Crash
Informasi yang ada dalam memory hilang karena kegagalan fungsi hardware, seperti power failure
  1. Disk Failure
Terjadi kerusakan head kesalahan pengoperasian transfer data yang menyebabkan hilangnya sebagian isi dari disk atau semua rusak.

à Pengoperasian dan struktur storage

Sistem database yang tersimpan dalam non volatile storage dipart ke dalam unit penyimpanan dengan panjang tetap yang biasanya disebut block. Block merupakan unit dari alokasi penyimpanan dan transfer data. Program menjalankan berbagai aplikasi database, membaca informasi dari disk ke main memory dan menuliskannya kembali ke disk. Operasi pembacaan dan penulisan dilakukan dalam unit block. Block yang terdapat di dalam disk disebut block fisik. Sedangkan block yang terdapat dalam main memori disebut block buffer.

à Pemindahan block antara disk dan main memory :
· INPUT (X)
               Memindahkan block fisik dimana item data X berada di dalam main memori
· OUTPUT (X)
   Memindahkan block buffer dimana item data X berada di dalam disk dan
   menggantikan block fisik yang terjadi.

Interaksi antara program aplikasi dan system database melalui operasi berikut :

· READ (X,Xj)
   Memberikan nilai item data X ke dalam variable Xj operasi ini dilakukan melalui
   operasi berikut :
-          Jika block dimana X berada bukan di dalam main memori maka lakukan INPUT (X)
-          Pindahkan nilai X dari blok buffer ke Xj

· WRITE (X,Xj)
   Memberikan nilai dari variable local Xj ke item data X di dalam block buffer operasi
   ini dilaksanakan sbb:
-          Jika block dimana X berada bukan di dalam main memori maka lakukan INPUT (X)
-          Pindahkan nilai X dari blok buffer ke Xj
-          Pindahkan nilai Xj ke X yang terdapat dalam block buffer

Kedua operasi di atas hanya membutuhkan pemindahan data dari disk ke main memori. Penulisan dari block buffer ke disk biasanya dilakukan jika buffer manager memerlukan ruangan pada memori untuk menyelesaikan masalah lain atau jika system database-nya menginginkan perubahan nilai X disimpan ke disk. Hal ini disebut “Force Outputs” karena block buffer melakukan operasi OUTPUT(X).

à Transaksi

Sebagai unit program yang pelaksanaannya menjaga kestabilan (konsistensi) database, yang artinya sebelum transaksi dilaksanakan ataupun sesudahnya keberadaan database harus konsisten. Untuk itu maka setiap transaksi harus bersifat atomic, yakni seluruh yang terkait dilaksanakan hingga selesai atau tidak dilaksanakan samasekali. Tugas ini dikerjakan oleh Schema Recovery untuk menjamin sifat atomic. Sedangkan tugas seorang programmer adalah membuat program sedemikian rupa sehingga konsistensi database tetap terjaga.

Transaksi juga harus dapat mengakses dan meng-update berbagai item data. Kadang-kadang pelaksanaan transaksi tidak dapat diselesaikan keadaan ini disebut aborted. Untuk menjamin sifat atomic maka pembatalan transaksi tidak akan mempengaruhi konsistensi database. Dengan demikian keberadaan database harus dapat dipulihkan ke keadaan sebelum transaksi dilakukan. Kita katakan transaksi tsb dalam rollback. Transaksi yang berhasil dilaksanakan disebut committed. Suatu transakasi committed melakukan peng-update-an dan mentransformasikan database ke dalam keadaan konsisten yang baru.

Transaksi harus berada dalam salah satu keadaan berikut :
1.      Active
Keadaan awal
2.      Partially Committed
Setelah perintah akhir dicapai
3.      Failed
Setelah pelaksanaan normal tidak dapat dilanjutkan
4.      Aborted
Setelah transaksi di rolled-back dan database dikembalikan dipulihkan pada keadaan sebelum transaksi
5.      Committed
Program dilaksanakan dengan baik

0 komentar:

Posting Komentar