Skip to main content

Apa itu snapshot isolation?

Snapshot Isolation adalah properti dalam pemrosesan transaksi dan database yang menjamin semua bacaan yang dibuat dalam transaksi lihat snapshot basis data yang sama.Ini berarti bahwa transaksi akan berkomitmen untuk berhasil memproses permintaan jika pembaruannya tidak bertentangan dengan pembaruan bersamaan lainnya.Isolasi snapshot adalah algoritma kontrol untuk konkurensi multi-versi yang memberikan tingkat isolasi yang menghindari masalah yang umumnya terjadi dengan konkurensi.Isolasi ini telah diimplementasikan oleh beberapa server bahasa kueri terstruktur (SQL) yang berbeda, yang beroperasi dengan jumlah minimal anomali serialisasi.Namun, isolasi snapshot tidak akan menjamin serializability lengkap di server.

Banyak sistem manajemen data utama berisi tingkat isolasi default yang tidak dapat diserialisasi dan sering menghadapi 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 data gudang.Alasan suatu sistem dapat beroperasi dalam keadaan ini adalah karena aplikasi yang berjalan pada tingkat isolasi yang lebih rendah dapat meningkatkan efisiensi jika tidak ada kesalahan serius.Termasuk isolasi snapshot dalam suatu sistem mengurangi anomali dan mdash ini;Saat mengambil waktu operasi dan jumlah kesalahan yang terjadi menjadi akun mdash;meningkatkan efisiensi lebih jauh.

Beberapa database menawarkan isolasi snapshot yang bertentangan dengan serializabilitas penuh, tetapi ada juga anomali yang dapat terjadi dalam database yang memanfaatkan isolasi jenis ini.Anomali ini dapat menyebabkan pelanggaran konsistensi data karena transaksi yang mempertahankan interleave konsistensi, atau diatur dalam lapisan bergantian.Salah satu cara untuk menyelesaikan masalah dan mencegah anomali seperti ini adalah dengan memanipulasi aplikasi dengan pengenalan kunci buatan dan pembaruan yang bertentangan, yang diikuti oleh analisis konflik antara setiap pasangan transaksi.Namun, cara berbeda untuk menyelesaikan anomali ini adalah dengan memodifikasi algoritma kontrol konkurensi sistem basis data untuk melakukan deteksi otomatis dan pencegahan anomali isolasi snapshot saat runtime.Ini dapat dilakukan untuk aplikasi penting atau sewenang -wenang, tetapi memberikan isolasi yang dapat serial.Di mana versi awal dari server SQL menggunakan penguncian sebagai dasar untuk konkurensi, isolasi snapshot tergantung pada peningkatan versi baris yang dimaksudkan untuk peningkatan kinerja.Ini meningkatkan kinerja ini saat menemukan skenario dengan pemblokiran baca atau tulis dengan menghindarinya.