Apa Itu Isolasi Snapshot?

Isolasi snapshot adalah sifat dalampemrosesan transaksidan database yang menjamin semua pembacaan yang dilakukan dalam transaksi melihat database “snapshot” yang sama.Ini berarti bahwa transaksi akan berkomitmen untuk berhasil memproses permintaan jika pembaruannya tidak bertentangan dengan pembaruan bersamaan lainnya.Isolasi snapshot adalahalgoritmekontroluntuk konkurensi multi-versi yang menyediakan tingkat isolasi yang menghindari masalah yang biasanya terjadi dengan konkurensi.Isolasi ini telah diterapkan oleh beberapaserverbahasa kueri terstruktur(SQL) yang berbeda, yang beroperasi dengan anomali serialisasi dalam jumlah minimal.Namun, isolasi snapshot tidak akan menjamin serializability lengkap di server.

Wanita melakukan handstand dengan komputer

Banyaksistemmanajemen datautamaberisi tingkat isolasi default yang tidak dapat diserialisasi dan sering mengalami anomali serialisasi tanpa isolasi snapshot.Hal ini dapat menyebabkan sistem besar memiliki banyak kejadian kesalahan isolasi setiap hari, yang dapat menyebabkan data rusak, terutama yang ditemukan dalam aplikasi gudang data.Alasan sistem dapat beroperasi dalam keadaan ini adalah karena aplikasi yang berjalan pada tingkat isolasi yang lebih rendah dapat meningkatkan efisiensi jika tidak terjadi kesalahan serius.Menyertakan isolasi snapshot dalam sistem akan mengurangi anomali ini dan — saat memperhitungkan waktu operasi dan jumlah kesalahan yang terjadi — meningkatkan efisiensi lebih jauh.

Beberapa database menawarkan isolasi snapshot yang bertentangan dengan serializability penuh, tetapi ada juga anomali yang dapat terjadi dalam database yang menggunakan jenis isolasi ini.Anomali ini dapat menyebabkanpelanggarankonsistensi datakarena transaksi yang menjaga konsistensi interleave, atau disusun dalam lapisan bergantian.Satu cara untuk menyelesaikan masalah dan mencegah anomali seperti ini adalah dengan memanipulasi aplikasi dengan pengenalan kunci buatan dan pembaruan yang bertentangan, yang diikuti dengan analisis konflik antara setiap pasangan transaksi.Namun, cara lain untuk mengatasi anomali ini adalah dengan memodifikasi algoritmekontrol konkurensisistem databaseuntuk melakukan deteksi otomatis dan pencegahan anomali isolasi snapshot saat runtime.Hal ini dapat dilakukan untuk aplikasi penting atau arbitrer, tetapi menyediakan isolasi yang serializable.

Server SQL yang lebih baru telah mampu memperkenalkan tingkat isolasi baru serta tingkat isolasi snapshot baru untuk peningkatan konkurensi dalam aplikasi tertentu.Jika versi awal dari server SQL menggunakan penguncian sebagai dasar untuk konkurensi, isolasi snapshot bergantung pada peningkatan versi baris yang dimaksudkan untuk peningkatan kinerja.Ini meningkatkan kinerja ini ketika menghadapi skenario dengan pemblokiran baca atau tulis dengan menghindarinya.

Related Posts