ScholarGate
Asisten

Tingkat Isolasi

Tingkat isolasi menentukan seberapa besar suatu transaksi terlindungi dari efek transaksi konkuren lainnya, mengorbankan beberapa jaminan isolasi demi konkurensi dan throughput yang lebih tinggi.

Temukan Topik dengan PaperMindSegeraFind papers & topics
Tools & resources
Unduh salindia
Learn & explore
VideoSegera

Definition

Tingkat isolasi adalah spesifikasi anomali konkurensi mana yang mungkin diamati oleh suatu transaksi; tingkat yang lebih tinggi mencegah lebih banyak anomali (hingga serializability penuh) dengan biaya konkurensi yang berkurang, sementara tingkat yang lebih rendah mengizinkan anomali tertentu sebagai imbalan atas kinerja.

Scope

Topik ini mencakup tingkat isolasi standar — baca tidak terkomit (read uncommitted), baca terkomit (read committed), baca berulang (repeatable read), dan serializable — yang didefinisikan berdasarkan fenomena (baca kotor (dirty read), baca tidak berulang (non-repeatable read), phantom) yang diizinkan atau dicegah oleh masing-masing, kritik berpengaruh yang membingkai ulang fenomena tersebut dalam hal anomali yang diizinkan, serta isolasi snapshot yang penting secara praktis dan anomali-anomalinya seperti write skew. Topik ini membahas pertukaran antara konsistensi dan konkurensi. Topik ini tidak mencakup mekanisme penguncian dan multiversi yang mendasari implementasi tingkat-tingkat ini.

Core questions

  • Anomali apa — baca kotor (dirty read), baca tidak berulang (non-repeatable read), phantom — yang diizinkan oleh setiap tingkat isolasi?
  • Bagaimana standar SQL mendefinisikan empat tingkat isolasi?
  • Mengapa para peneliti mengkritik definisi berbasis anomali sebagai ambigu?
  • Di mana posisi isolasi snapshot, dan anomali apa (seperti write skew) yang dapat diizinkannya?
  • Bagaimana aplikasi memilih tingkat isolasi untuk beban kerja tertentu?

Key concepts

  • baca tidak terkomit (read uncommitted)
  • baca terkomit (read committed)
  • baca berulang (repeatable read)
  • serializable
  • baca kotor (dirty read)
  • baca tidak berulang (non-repeatable read)
  • baca phantom (phantom read)
  • isolasi snapshot dan write skew

Key theories

Tingkat isolasi berbasis anomali
Standar SQL mendefinisikan tingkat isolasi berdasarkan fenomena mana dari tiga fenomena — baca kotor (dirty reads), baca tidak berulang (non-repeatable reads), dan phantom — yang diizinkan, mulai dari baca tidak terkomit (read uncommitted) (semua diizinkan) hingga serializable (tidak ada yang diizinkan).
Kritik terhadap tingkat isolasi ANSI
Berenson dan rekan-rekannya menunjukkan bahwa definisi berbasis fenomena standar ambigu dan tidak secara jelas mengkarakterisasi sistem multiversi, dan mereka memperkenalkan isolasi snapshot sebagai tingkat yang berbeda dan banyak diimplementasikan yang tidak tercakup oleh definisi asli.
Isolasi snapshot dan anomali-anomalinya
Di bawah isolasi snapshot, setiap transaksi membaca snapshot yang konsisten pada saat dimulainya, memberikan perilaku baca yang kuat tanpa kunci baca, tetapi dapat mengizinkan anomali non-serializable seperti write skew, yang memotivasi isolasi snapshot serializable.

Clinical relevance

Tingkat isolasi adalah pilihan konfigurasi yang rutin namun konsekuensial bagi pengembang aplikasi: memilih tingkat yang terlalu lemah dapat secara diam-diam merusak data melalui anomali yang halus, sementara selalu menggunakan serializable dapat menghambat throughput, sehingga memahami tingkat-tingkat ini sangat penting untuk aplikasi transaksional yang benar dan berkinerja tinggi.

History

Standar ANSI/ISO SQL mendefinisikan tingkat isolasi dalam hal fenomena yang diizinkan. Kritik tahun 1995 oleh Berenson, Bernstein, Gray, dan O'Neils mengungkap ambiguitas dalam definisi tersebut dan mengkarakterisasi isolasi snapshot, yang diadopsi oleh basis data multiversi arus utama. Pekerjaan selanjutnya mendefinisikan isolasi snapshot serializable untuk menutup celah anomali yang tersisa.

Debates

Mendefinisikan isolasi berdasarkan anomali versus berdasarkan serializability
Definisi daftar anomali standar mudah dinyatakan tetapi ambigu dan tidak sesuai dengan sistem multiversi; alternatifnya adalah mendefinisikan kebenaran secara langsung melalui serializability, yang lebih jelas tetapi lebih sulit untuk dipetakan ke tingkat yang dikonfigurasi pengembang dalam praktiknya.

Key figures

  • Jim Gray
  • Philip Bernstein
  • Hal Berenson

Related topics

Seminal works

  • berenson1995
  • gray1992

Frequently asked questions

Apa perbedaan antara baca tidak berulang (non-repeatable read) dan baca phantom (phantom read)?
Baca tidak berulang (non-repeatable read) terjadi ketika suatu transaksi membaca baris yang sama dua kali dan melihat nilai yang berbeda karena transaksi lain memperbaruinya di antaranya. Baca phantom (phantom read) terjadi ketika suatu transaksi menjalankan kembali kueri dengan kondisi pencarian dan melihat baris baru yang disisipkan oleh transaksi lain. Baca berulang (repeatable read) mencegah yang pertama; hanya serializable yang secara andal mencegah phantom.
Apakah isolasi snapshot sama dengan serializable?
Tidak. Isolasi snapshot memberikan setiap transaksi snapshot yang konsisten dan mencegah baca kotor (dirty reads) dan baca tidak berulang (non-repeatable reads), tetapi tidak sepenuhnya serializable: ia mengizinkan anomali write-skew di mana dua transaksi membaca data yang tumpang tindih dan membuat pembaruan terpisah yang bersama-sama melanggar batasan. Isolasi snapshot serializable memperluasnya untuk menghilangkan anomali tersebut.

Methods for this concept

Related concepts