Kontrol Konkurensi DBMS: Penguncian & Protokol Berbasis Stempel Waktu

โšก Ringkasan Cerdas

Kontrol Konkurensi dalam DBMS mengelola transaksi simultan sehingga berjalan akurat tanpa melanggar integritas data. Ini mencegah anomali seperti pembaruan yang hilang dan pembacaan data yang tidak valid (dirty read) menggunakan protokol berbasis penguncian, dua fase, berbasis stempel waktu, dan berbasis validasi yang menjamin hasil yang dapat diserialisasi.

  • ๐Ÿ‘ฅ Tujuan Inti: Kontrol konkurensi memungkinkan banyak transaksi mengakses data bersama secara bersamaan sambil tetap menjagaping Basis data konsisten.
  • โš ๏ธ Anomali yang Dicegah: Pembaruan yang hilang, pembacaan yang tidak akurat, pembacaan yang tidak dapat diulang, dan ringkasan yang salah adalah empat masalah yang dapat dihentikannya.
  • ๐Ÿ”’ Berbasis Kunci: Kunci bersama dan eksklusif mengontrol apakah suatu item data dapat dibaca atau ditulis oleh orang lain.
  • ๐Ÿ” Penguncian Dua Fase: Fase pertumbuhan memperoleh kunci dan fase penyusutan melepaskannya, yang menjamin serialisasi.
  • ๏ธ Berdasarkan Cap Waktu: Transaksi yang lebih lama mendapatkan prioritas, dengan mengurutkan operasi yang bertentangan berdasarkan stempel waktu sistem.
  • โœ… Berbasis Validasi: Kontrol optimistik bekerja pada salinan lokal, dan hanya melakukan validasi sebelum fase penulisan.
  • ๐ŸŽฏ Tujuan: Konkurensi maksimum dengan overhead minimum, tahan terhadap kegagalan situs dan komunikasi.

Penguncian dan Penjadwal Stempel Waktu dalam DBMS

Apa itu Kontrol Konkurensi?

Kontrol Konkurensi Dalam Sistem Manajemen Basis Data, terdapat prosedur untuk mengelola operasi simultan tanpa saling bertentangan. Prosedur ini memastikan bahwa transaksi basis data dilakukan secara bersamaan dan akurat untuk menghasilkan hasil yang benar tanpa melanggar integritas data dari basis data yang bersangkutan.

Akses bersamaan cukup mudah jika semua pengguna hanya membaca data, karena tidak mungkin mereka saling mengganggu. Namun, setiap basis data praktis memiliki campuran operasi BACA dan TULIS, sehingga konkurensi menjadi tantangan.

Kontrol konkurensi DBMS digunakan untuk mengatasi konflik semacam itu, yang sebagian besar terjadi dalam sistem multi-pengguna. Oleh karena itu, kontrol konkurensi merupakan salah satu elemen terpenting untuk berfungsinya basis data dengan baik di mana dua atau lebih transaksi dieksekusi secara bersamaan dan memerlukan akses ke data yang sama. Kontrol ini bekerja seiring dengan... pengelolaan transaksi, yang mendefinisikan unit kerja yang harus diselingi secara aman oleh kontrol konkurensi.

Potensi Masalah Konkurensi

Berikut beberapa masalah yang mungkin Anda hadapi tanpa kontrol konkurensi DBMS yang tepat:

  • Pembaruan yang Hilang Terjadi ketika beberapa transaksi memilih baris yang sama dan memperbaruinya berdasarkan nilai yang dipilih.
  • Ketergantungan yang belum dikomitmenkan (Dirty read) terjadi ketika transaksi kedua memilih baris yang telah diperbarui oleh transaksi lain yang belum di-commit.
  • Bacaan yang Tidak Dapat Diulangi Terjadi ketika transaksi kedua mengakses baris yang sama beberapa kali dan membaca data yang berbeda setiap kali.
  • Ringkasan yang Salah Hal ini terjadi ketika satu transaksi mengambil ringkasan dari nilai semua instance item data yang berulang, sementara transaksi kedua memperbarui beberapa instance tersebut. Ringkasan yang dihasilkan tidak mencerminkan hasil yang benar.

Mengapa Menggunakan Metode Konkurensi?

Alasan menggunakan metode kontrol konkurensi dalam DBMS:

  • Untuk menerapkan isolasi melalui pengecualian bersama antara transaksi yang saling bertentangan.
  • Untuk menyelesaikan masalah konflik baca-tulis dan tulis-tulis.
  • Untuk menjaga konsistensi basis data dengan terus-menerus memberlakukan batasan eksekusi.
  • Untuk mengendalikan interaksi antar transaksi yang berjalan bersamaan, hal ini dicapai dengan menggunakan skema pengendalian konkurensi.
  • Untuk membantu memastikan serialisasi.

Example

Misalkan ada dua orang yang pergi ke kios elektronik pada waktu yang sama untuk membeli tiket film yang sama dan jam tayang yang sama.

Namun, hanya tersisa satu kursi untuk pertunjukan itu di teater. Tanpa kontrol konkurensi, ada kemungkinan kedua penonton film tersebut akan membeli tiket. Kontrol konkurensi mencegah hal ini. Kedua penonton film masih dapat mengakses informasi dalam basis data tempat duduk film, tetapi kontrol konkurensi hanya memberikan tiket kepada pembeli yang menyelesaikan proses transaksi terlebih dahulu.

Protokol Kontrol Konkurensi

Protokol kontrol konkurensi yang berbeda menawarkan kompromi yang berbeda antara jumlah konkurensi yang diizinkan dan overhead yang ditimbulkannya. Teknik kontrol konkurensi utama dalam DBMS adalah:

  • Protokol Berbasis Kunci
  • Protokol Penguncian Dua Fase
  • Protokol Berbasis Stempel Waktu
  • Protokol Berbasis Validasi

Masing-masing akan dibahas secara berurutan di bawah ini, dimulai dengan protokol berbasis penguncian yang paling banyak digunakan.

Protokol Berbasis Kunci

Protokol berbasis kunci Dalam DBMS, terdapat mekanisme di mana suatu transaksi tidak dapat membaca atau menulis item data sampai memperoleh kunci yang sesuai. Protokol berbasis kunci membantu menghilangkan masalah konkurensi dengan mengunci atau mengisolasi item data tertentu ke satu transaksi.

Kunci (lock) adalah variabel data yang terkait dengan item data yang menandakan operasi mana yang dapat dilakukan padanya. Kunci membantu menyinkronkan akses ke item basis data oleh transaksi konkuren. Semua permintaan kunci diajukan ke pengelola kontrol konkurensi, dan transaksi hanya dilanjutkan setelah permintaan kunci diberikan.

Kunci Biner: Kunci biner pada suatu item data dapat berada dalam keadaan terkunci atau tidak terkunci.

Dibagikan/Eksklusif: Mekanisme penguncian ini memisahkan kunci berdasarkan penggunaannya. Jika sebuah kunci diperoleh untuk melakukan operasi penulisan, maka kunci tersebut disebut kunci eksklusif.

1. Kunci Bersama (S): Kunci bersama juga disebut kunci baca saja. Dengan kunci bersama, item data dapat dibagikan antar transaksi, karena tidak ada satu pun transaksi yang memiliki izin untuk memperbarui item tersebut. Misalnya, jika dua transaksi membaca saldo rekening seseorang, maka Database Hal ini memungkinkan mereka untuk membaca dengan menempatkan kunci bersama. Jika transaksi lain ingin memperbarui saldo tersebut, kunci bersama akan mencegahnya sampai proses pembacaan selesai.

2. Kunci Eksklusif (X): Dengan kunci eksklusif, suatu item data dapat dibaca maupun ditulis. Kunci ini bersifat eksklusif dan tidak dapat dipegang secara bersamaan pada item data yang sama. Kunci X diminta menggunakan instruksi lock-x. Misalnya, ketika suatu transaksi perlu memperbarui saldo akun, hal itu diizinkan dengan menempatkan kunci X; transaksi kedua yang ingin membaca atau menulis kemudian dicegah.

3. Protokol Penguncian Sederhana: Hal ini memungkinkan transaksi untuk mendapatkan kunci pada setiap objek sebelum memulai operasi. Transaksi dapat membuka kunci item data setelah menyelesaikan operasi penulisan.

4. Pra-klaim Penguncian: Protokol ini mengevaluasi operasi dan membuat daftar item data yang dibutuhkan untuk memulai eksekusi. Ketika semua kunci diberikan, transaksi dieksekusi, dan semua kunci dilepaskan setelah operasinya selesai.

Kelaparan: Kelaparan (starvation) adalah situasi ketika suatu transaksi menunggu dalam jangka waktu yang tidak terbatas untuk mendapatkan kunci. Penyebabnya meliputi skema tunggu yang buruk untuk item yang terkunci, kebocoran sumber daya, atau transaksi yang sama dipilih sebagai korban berulang kali.

Jalan buntu: Deadlock merujuk pada situasi di mana dua atau lebih proses saling menunggu untuk melepaskan sumber daya, membentuk rantai melingkar.

Protokol Penguncian Dua Fase (2PL)

The Protokol Penguncian Dua Fase, juga dikenal sebagai 2PL, adalah metode pengendalian konkurensi yang memastikan serialisasi dengan menerapkan kunci pada data transaksi, yang memblokir transaksi lain agar tidak dapat mengakses data yang sama secara bersamaan.

Protokol Two-Phase Locking memungkinkan setiap transaksi untuk membuat permintaan penguncian atau pembukaan kunci dalam dua langkah:

  • Fase Pertumbuhan: Pada fase ini, suatu transaksi dapat memperoleh kunci tetapi tidak dapat melepaskan kunci apa pun.
  • Fase Penyusutan: Pada fase ini, sebuah transaksi dapat melepaskan kunci tetapi mungkin tidak memperoleh kunci baru.

Penguncian dua fase: fase pertumbuhan dan penyusutan

Memang benar bahwa 2PL menawarkan serialisasi. Namun, hal itu tidak menjamin bahwa kebuntuan (deadlock) tidak akan terjadi. Pada diagram di atas, detektor kebuntuan lokal dan global mencari kebuntuan dan menyelesaikannya dengan melanjutkan transaksi ke keadaan awalnya.

Metode Penguncian Dua Fase yang Ketat

Strict 2PL hampir sama dengan 2PL. Satu-satunya perbedaan adalah Strict-2PL tidak pernah melepaskan kunci setelah menggunakannya. Ia menahan semua kunci hingga titik commit dan melepaskannya sekaligus ketika proses selesai.

2PL terpusat

Dalam Centralized 2PL, satu lokasi bertanggung jawab atas proses manajemen penguncian. Hanya ada satu pengelola penguncian untuk seluruh DBMS.

Salinan Utama 2PL

Dalam mekanisme Primary Copy 2PL, banyak pengelola kunci didistribusikan ke berbagai situs, dan pengelola kunci tertentu bertanggung jawab untuk mengelola kunci untuk sekumpulan item data. Ketika salinan utama diperbarui, perubahan tersebut disebarkan ke slave.

Didistribusikan 2PL

Dalam mekanisme ini, pengelola kunci didistribusikan ke semua situs dan bertanggung jawab untuk mengelola kunci data di situs tersebut. Jika tidak ada data yang direplikasi, ini setara dengan Primary Copy 2PL. Biaya komunikasi Distributed 2PL jauh lebih tinggi daripada Primary Copy 2PL.

Protokol Berbasis Stempel Waktu

The Protokol berbasis stempel waktu Dalam DBMS, ini adalah algoritma yang menggunakan waktu sistem atau penghitung logis sebagai stempel waktu untuk menserialisasi eksekusi transaksi konkuren. Ini memastikan bahwa setiap operasi baca dan tulis yang saling bertentangan dieksekusi sesuai urutan stempel waktu.

Dalam metode ini, transaksi yang lebih lama selalu diprioritaskan. Metode ini menggunakan waktu sistem untuk menentukan stempel waktu transaksi, dan merupakan protokol konkurensi yang paling umum digunakan. Protokol berbasis kunci mengatur urutan antara transaksi yang saling bertentangan saat dieksekusi; protokol berbasis stempel waktu mengatur konflik segera setelah operasi dibuat.

Contoh:

Suppose there are three transactions T1, T2, and T3.
T1 has entered the system at time 0010
T2 has entered the system at 0020
T3 has entered the system at 0030
Priority will be given to transaction T1, then T2 and lastly T3.

Keuntungan:

  • Jadwal dapat diserialkan, sama seperti protokol 2PL.
  • Tidak perlu menunggu transaksi, sehingga menghilangkan kemungkinan terjadinya kebuntuan (deadlock).

kekurangan: Kelaparan (starvation) dapat terjadi jika transaksi yang sama dimulai ulang dan terus-menerus dibatalkan.

Protokol Berbasis Validasi

The Protokol berbasis validasi Dalam DBMS, yang juga dikenal sebagai teknik kontrol konkurensi optimistik, adalah metode untuk menghindari konflik konkurensi dalam transaksi. Dalam protokol ini, salinan lokal data transaksi diperbarui, bukan data itu sendiri, yang menghasilkan lebih sedikit gangguan selama eksekusi.

Protokol berbasis validasi dilakukan dalam tiga fase:

  1. Fase Baca
  2. Fase Validasi
  3. Fase Tulis

Fase Baca

Pada fase pembacaan, nilai data dapat dibaca oleh sebuah transaksi, tetapi operasi penulisan atau pembaruan hanya diterapkan pada salinan data lokal, bukan pada basis data yang sebenarnya.

Fase Validasi

Pada fase validasi, data diperiksa untuk memastikan bahwa penerapan pembaruan tidak akan melanggar serialisasi.

Fase Tulis

Pada fase penulisan, pembaruan diterapkan ke basis data jika validasi berhasil; jika tidak, pembaruan akan dibuang dan transaksi dibatalkan.

Perbandingan Protokol Kontrol Konkurensi

Keempat keluarga protokol tersebut memiliki prediksi yang berbeda tentang seberapa sering transaksi benar-benar mengalami konflik. Tabel di bawah ini merangkum posisi masing-masing keluarga protokol tersebut.

Protokol Pendekatan jalan buntu Terbaik saat
Berbasis Kunci Pesimis, terkunci sebelum akses Mungkin Konflik sering terjadi.
Penguncian Dua Fase Fase pesimistis, pertumbuhan, dan penyusutan Mungkin Serialisasi diperlukan.
Berdasarkan Stempel Waktu Urutan berdasarkan stempel waktu Bebas dari kebuntuan Memesan itu penting, menunggu itu mahal.
Berbasis Validasi Optimis, validasi sebelum menulis Bebas dari kebuntuan Konflik jarang terjadi.

Singkatnya, protokol berbasis penguncian dan 2PL mengasumsikan konflik adalah hal yang umum dan mencegahnya sejak awal, sedangkan protokol berbasis stempel waktu dan validasi mengasumsikan konflik jarang terjadi dan menyelesaikannya hanya ketika muncul.

Karakteristik Protokol Konkurensi yang Baik

Suatu mekanisme kontrol konkurensi yang ideal memiliki tujuan-tujuan sebagai berikut:

  • Sistem ini harus tahan terhadap kegagalan lokasi dan komunikasi.
  • Hal ini memungkinkan eksekusi transaksi paralel untuk mencapai konkurensi maksimum.
  • Mekanisme penyimpanan dan metode komputasinya harus sederhana untuk meminimalkan overhead.
  • Hal itu harus memberlakukan beberapa batasan pada struktur tindakan atomik transaksi.

Pertanyaan Umum Demo Slot

Kunci bersama (shared lock) memungkinkan pembacaan secara bersamaan tetapi tidak memungkinkan penulisan, sehingga beberapa transaksi dapat memegangnya. Kunci eksklusif (exclusive lock) memungkinkan pembacaan dan penulisan dan tidak dapat dibagi, sehingga hanya satu transaksi yang memegangnya.

Tidak. 2PL menjamin serialisasi tetapi tidak menjamin bebas dari kebuntuan. Dua transaksi masih dapat saling menunggu kunci satu sama lain, sehingga mekanisme deteksi atau batas waktu terpisah masih diperlukan.

Ketika konflik jarang terjadi, kontrol berbasis validasi menghindari overhead penguncian dan memungkinkan transaksi berjalan bebas, hanya melakukan pengecekan saat commit. Namun, dalam kondisi persaingan yang tinggi, hal ini membuang-buang pekerjaan melalui rollback yang sering terjadi.

AI mempelajari beban kerja masa lalu untuk memprediksi transaksi mana yang akan saling bertentangan, kemudian merekomendasikan tingkat isolasi atau granularitas penguncian yang meningkatkan throughput sambil tetap menjagaping hasilnya dapat diserialisasi.

Sistem ini tidak pernah membuat transaksi menunggu. Operasi yang bertentangan diizinkan berdasarkan urutan stempel waktu atau transaksi dibatalkan dan dimulai ulang, sehingga tidak dapat terbentuk penantian melingkar dan kebuntuan tidak dapat terjadi.

Ringkaslah postingan ini dengan: