Semester Ganjil 2014
Fak. Teknik Jurusan Teknik Informatika
Universitas Pasundan
Caca E. Supriana, S.Si.,MT.
caca.e.supriana@unpas.ac.id caca.e.supriana@unpas.ac.id
Materi
1. Pengantar 2. Recovery Manager 3. Log‐based Recovery 4. Media Failure 5. Shadow Paging1 Pengantar
1. Pengantar
y Semua database yang membaca / menulis berada dalam b h k sebuah transaksi y Transaksi memiliki properti"ACID“ (S) A i i l h i k i id k y Atomicity – seluruh instruksi atau tidak y Konsistensi ‐ menjaga integritas basis data I l i k k i l h l h k b j l y Isolasi ‐ mengeksekusi seolah‐olah mereka berjalan sendiri y Durability ‐ hasilnya tidak akan kalah oleh kegagalan y Durability ‐ hasilnya tidak akan kalah oleh kegagalan y Pemulihan subsistem menjamin Atomicity & Durability y Kontrol konkurensi menjamin IsolasiKontrol konkurensi menjamin Isolasi y Program aplikasi menjamin KonsistensiTujuan Recovery
y Sebuah database dapat menjadi tidak konsisten karena kegagalan transaksi (abort) y kegagalan sistem database (mungkin disebabkan oleh y kegagalan sistem database (mungkin disebabkan oleh kerusakan OS) y Media crash (disk data rusak)( ) y Sistem pemulihan memastikan database berisi persis update tersebut dan dihasilkan oleh transaksi yang dilakukan yaitu atomicity dan daya tahan meskipun dilakukan yaitu atomicity dan daya tahan, meskipun kegagalanStorage Model
y Database Stabil – dapat bertahan dari kegagalan sistem
y Cache (volatile) ‐ berisi salinan dari beberapa halaman p yang hilang oleh kegagalan sistem
Fetch, Flush
Pin, Unpin, Deallocate
Read, Write
Cache Manager
Read, Write
Stable Database
Cache
Log
Cache
y Cache adalah komponen yang menyimpan data secara transparan sehingga permintaan selanjutnya untuk data yang dapat dilayani lebih cepat. d d l h k l l y Data yang disimpan dalam cache mungkin nilai‐nilai yang telah dihitung sebelumnya atau duplikat dari nilai‐nilai asli yang disimpan di tempat lain. Jika data yang diminta terkandung dalam cache (cache hit) permintaan ini dapat terkandung dalam cache (cache hit), permintaan ini dapat dilayani dengan hanya membaca cache, yang relatif lebih cepat. Jika tidak (cache miss), data harus menghitung ulang atau diambil dari lokasi penyimpanan aslinya, yang ulang atau diambil dari lokasi penyimpanan aslinya, yang relatif lebih lambat. y Oleh karena itu, semakin besar jumlah permintaan yang dapat dilayani dari cache, semakin cepat kinerja sistem p y , p j secara keseluruhan menjadi.Cache
(lanjutan)
y Hardware mengimplementasikan cache blok memori untuk penyimpanan sementara data yang mungkin akan digunakan lagi CPU dan hard drive sering akan digunakan lagi. CPU dan hard drive sering menggunakan cache, seperti halnya web browser dan server web. y Cache terdiri dari pool (kumpulan) entri. Setiap entri memiliki datum (sepotong data) ‐ salinan datum yang sama di beberapa tempat penyimpanan. Setiap entri juga memiliki tag, yang menentukan identitas datum di tempat penyimpanany ang masuk adalah salinan di tempat penyimpanany ang masuk adalah salinan.Stable Storage
Stab e Sto age
y Write (P) akan menimpa seluruh isi P pada disk y Jika Write tidak berhasil, kesalahan mungkin terdeteksi pada Read berikutnya ... , misalnya Page checksum error Æ halaman rusak atau mungkin tidak Æ halaman rusak ... atau mungkin tidak y Write dengan benar, write ke lokasi yang salah y Write merupakan operasi yang atomik sehubungan y Write merupakan operasi yang atomik sehubungan dengan kegagalan dan keberhasilan pelaksanaan yang dapat ditentukan dengan prosedur pemulihan.
y
Cache dibagi menjadi slot berukuran page.
g
j
p g
y
Setiap slot akan mengatakan jika page itu diperbarui
sejak terakhir ditulis ke disk.
j
y
Jumlah pin memberitahu jumlah pin ops tanpa unpins
Page Dirty Bit Cache Address Pin Count
g
y
P
21
91976
1
P
470
812
2
P
211
10101
0
• Fetch(P) - read P ke dalam cache slot. Mengembalikan
alamat slot.
• Flush(P) - Jika P’s slot dirty dan unpinned, tulis ke disk
9
• Pin(P) – membuat pin tidak bisa di Flush.
M j R d d l h d i h j y Manajer Record adalah pengguna utama dari cache manajer. y Setelah memanggil Fetch (P) dan Pin (P), ia mengendalikan akses ke catatan pada halaman akses ke catatan pada halaman.
Query Optimizer
Query Executor
Fetch, Flush
Database
System
Query Executor
Access Method
(record-oriented files)
Pin, Unpin,
Deallocate
(
)
Page-oriented Files
Recovery manager
Cache manager
P
fil
Log
y Sebuah catatan file sekuensial menggambarkan update : alamat halaman diperbarui id k i l k k d id transaksi yang melakukan update sebelum‐gambar dan setelah‐gambar halaman y Setiap kali memperbarui cache juga update log y Setiap kali memperbarui cache, juga update log y Log catatan untuk Commit (Ti) dan Abort (Ti) y Beberapa sistem lama berpisah sebelum‐gambar dan y Beberapa sistem lama berpisah sebelum‐gambar dan setelah‐gambar ke dalam file log yang terpisah. y Jika konflik op i dengan dan mengeksekusi sebelum op k , J p g g p , maka catatan log op i yang harus mendahului catatan log op k ini y pemulihan akan memutar ulang operasi dalam rangka log recordLog
D
i
l i
k
i j
k
yDengan catatan operasi granularity, kunci jangka
pendek, yang disebut kait, mengontrol update record
bersamaan ke halaman yang sama:
bersamaan ke halaman yang sama:
‐
Fetch(P) read P into cache y Pin(P) ensure P isn’t flushedy Pin(P) ensure P isn t flushed
y write lock (P) for two‐phase locking y latch P get exclusive access to Pg y update P update P in cache y log the update to P append it to the log y unlatch P release exclusive access y Unpin(P) allow P to be flushed y
Tidak ada deadlock untuk kait.
2. Recovery Manager
y Processes Commit, Abort and Restart y Commit(T) y Menulis page T yang diperbarui untuk penyimpanan atomik stabil, bahkan jika sistem crash. b ( ) y Abort(T) y Undo penulisan T R t t d i t f il y Restart = recover dari system failure y Abort semua transaksi yang tidak dilakukan pada saat kegagalan sebelumnya kegagalan sebelumnya y Perbaiki penyimpanan stabil sehingga mencakup semua transasksi berkomitmen menulis dan tidak ada yang tidak ik ( hi d dib l h k i b ) mengikat (sehingga dapat dibaca oleh transaksi baru)Recovery Manager Model
Transaction 1
Transaction 2
Transaction N
Recovery Manager
Commit, Abort, Restart
Pin, Unpin
Fetch
Flush
Deallocate
Read,
Write
Cache Manager
Read, Write
Read,
Write
Stable Database
Write
Cache
Write
Implementasi Abort(T)
y Misalkan T menulis page P. y Jika P tidak ditransfer ke penyimpanan yang stabil,? K di DEALLOCATE Sl t h Kemudian DEALLOCATE Slot cache y Jika dipindahkan, maka before‐image P harus dalam penyimpanan stabil (tidak bisa membatalkan setelah penyimpanan stabil (tidak bisa membatalkan setelah kegagalan sistem) y Undo Rule ‐ Jangan flush update mengikat P hingga P J g p g gg before‐image stabil. (Memastikan membatalkan adalah mungkin.) y Write‐Ahead Log Protocol ‐ Jangan ... sampai P before‐image di logMenghindari Undo
M hi d i l h i l h U d R l d id k y Menghindari masalah tersirat oleh Undo Rule dengan tidak pernah flush update uncommitted. y Menghindari logging stabil before image y Menghindari logging stabil before‐image y Tidak perlu membatalkan update setelah kegagalan sistem y Sebuah algoritma pemulihan membutuhkan pembatalan jika y Sebuah algoritma pemulihan membutuhkan pembatalan jika pembaruan dari transaksi uncommitted dapat memerah. y Biasanya disebut mencuri algoritma, karena memungkinkan y g , g halaman cache yang kotor akan "dicuri."Implementasi Commit(T)
C i h ik J di h dil k k l h i
y Commit harus atomik. Jadi harus dilaksanakan oleh write disk.
y Misalkan T menulis P T berkomitmen dan kemudian sistem
y Misalkan T menulis P, T berkomitmen, dan kemudian sistem gagal. P harus dalam penyimpanan yang stabil.
y Redo aturan ‐ Jangan melakukan transaksi sampai after‐Redo atu a Ja ga e a u a t a sa s sa pa a te image dari semua page yang terdapat pada penyimpanan yang stabil (dalam database atau log). (Memastikan Redo
d l h ki )
adalah mungkin.)
Menghindari Redo
y Untuk menghindari redo, flush semua update T ke database stabil. (Mereka harus dalam penyimpanan stabil.) y Biasanya disebut algoritma Force, karena update dipaksa untuk disk sebelum Commit. y Sangat mudah karena tidak perlu pembukuan stabil after y Sangat mudah, karena tidak perlu pembukuan stabil after‐ imagey Sebaliknya algoritma pemulihan membutuhkan mengulang Sebaliknya, algoritma pemulihan membutuhkan mengulang jika transaksi dapat melakukan sebelum semua pembaruan yang berada dalam database yang stabil.
Menghindari Undo dan Redo
y Untuk menghindari undo dan redo yang pernah flush update uncommitted (untuk menghindari pembatalan), dan flush semua update T ke database stabil sebelum dilakukan (untuk semua update T ke database stabil sebelum dilakukan (untuk menghindari redo). y Oleh karena itu perlu menginstal semua update transaksi ke Oleh karena itu perlu menginstal semua update transaksi ke dalam database yang stabil dalam menulis ke sebuah disk y Hal ini dapat dilakukan, tetapi tidak efisien untuk transaksi pendek dan update record‐level.Implementasi Restart
y Untuk pulih dari kegagalan sistem Abort transaksi yang gagal Abort transaksi yang gagal Untuk setiap transaksi berkomitmen, ulangi update yang ada di log bukan database stabilg y Melanjutkan proses transaksi normal y Operasi idempotent ‐ banyak eksekusi operasi memiliki efek p p y p yang sama sebagai salah satu eksekusi y Restart harus idempotent. Jika itu terganggu oleh kegagalan,k k b li k k i d i l
maka kembali mengeksekusi dari awal.
3. Log‐based Recovery
y Logging adalah mekanisme yang paling populer untuk
y Logging adalah mekanisme yang paling populer untuk menerapkan algoritma pemulihan.
y Manajer pemulihan mengimplementasikan :Manajer pemulihan mengimplementasikan :
y Commit ‐ by writing a commit record to the log and flushing
the log (satisfies the Redo Rule) y Abort ‐ by using the transaction’s log records to restore before‐ images y Restart by scanning the log and undoing and redoing y Restart ‐ by scanning the log and undoing and redoing operations as necessary y Algoritma yang cepat karena mereka menggunakan logika g y g p gg g sekuensial I/O di tempat database acak I/O. Algoritma sangat mempengaruhi TP dan Restart kinerja.
4. Media Failures
4. Media Failures
y Kegagalan Media adalah hilangnya beberapa penyimpanan stabil.
K b k di k t l h MTBF ( ti b t f il )l bih d i
y Kebanyakan disk telah MTBF (mean time between failure)lebih dari 10 tahun y Namun, jika Anda memiliki 10 disk ... y Jadi shadow disk menjadi penting y Jadi shadow disk menjadi penting y Menulis ke kedua salinan. Handshake antara penulisan ke disk untuk menghindari mode kegagalan umum (misalnya listrik mati) y Layanan setiap membaca dari satu salinan y Layanan setiap membaca dari satu salinan y Untuk memunculkan bayangan baru y Menyalin trek dari disk yang baik ke disk baru, satu per satu y Sebuah Write pergi ke kedua disk jika lagu tersebut telah disalin y Sebuah Write pergi ke kedua disk jika lagu tersebut telah disalin y Read yang pergi ke disk yang baik, sampai trek disalin
RAID
yRAID (redundant array of independent disks) adalah
teknologi virtualisasi penyimpanan data yang
menggabungkan beberapa komponen disk drive ke
menggabungkan beberapa komponen disk drive ke
dalam sebuah unit logis untuk tujuan redundansi data
atau peningkatan
yMenggunakan array dari N disk secara paralel
yMenggunakan array dari N disk secara paralel
ySebuah stripe adalah array dari blok ke‐i dari setiap
disk
ySebuah stripe dipartisi sebagai berikut:
...
...
M data blocks
N-M error
M data blocks
Dimana Menggunakan Disk redundansi?
y Lebih baik untuk kedua DB dan log y Tapi setidaknya untuk log y dalam algoritma undo, itu satu‐satunya tempat yang memiliki tertentu sebelum image d l l i d i y dalam algoritma redo, itu satu‐satunya tempat yang memiliki tertentu setelah image y Jika tidak memiliki shadow log itu adalah titik y Jika tidak memiliki shadow log, itu adalah titik tunggal kegagalan5. Shadow Paging
y Shadow paging adalah teknik untuk memberikan atomicity dan durability (dua dari sifat ACID) dalam sistem database. Halaman dalam konteks ini mengacu pada unit penyimpanan fisik (mungkin pada hard disk) biasanya dari urutan (order) ke fisik (mungkin pada hard disk), biasanya dari urutan (order) ke byte.y Shadow paging adalah teknik copy‐on‐write untuk menghindari
penempatan update page. Sebaliknya, saat halaman harus p p p p g y dimodifikasi, shadow paging dialokasikan. Karena halaman bayangan tidak memiliki referensi (dari halaman lain pada disk), dapat dimodifikasi secara bebas, tanpa memperhatikan kendala konsistensi dll konsistensi, dll. y Ketika page siap menjadi durable, semua halaman asli diperbarui untuk merujuk halaman pengganti yang baru sebagai gantinya. Karena halaman tersebut "diaktifkan" hanya bila sudah siap, itu b d k berarti menjadi atomik.