DBMS Terdistribusi - Kontrol Replikasi

Bab ini membahas kontrol replikasi, yang diperlukan untuk menjaga data yang konsisten di semua situs. Kami akan mempelajari teknik kontrol replikasi dan algoritma yang diperlukan untuk kontrol replikasi.

Seperti yang dibahas sebelumnya, replicationadalah teknik yang digunakan dalam database terdistribusi untuk menyimpan beberapa salinan tabel data di situs yang berbeda. Masalah dengan memiliki banyak salinan di banyak situs adalah overhead dalam menjaga konsistensi data, terutama selama operasi pembaruan.

Untuk menjaga data yang saling konsisten di semua situs, teknik kontrol replikasi perlu diadopsi. Ada dua pendekatan untuk pengendalian replikasi, yaitu -

  • Kontrol Replikasi Sinkron
  • Kontrol Replikasi Asinkron

Kontrol Replikasi Sinkron

Dalam pendekatan replikasi sinkron, database tersinkronisasi sehingga semua ulangan selalu memiliki nilai yang sama. Transaksi yang meminta item data akan memiliki akses ke nilai yang sama di semua situs. Untuk memastikan keseragaman ini, transaksi yang memperbarui item data diperluas sehingga membuat pembaruan di semua salinan item data. Umumnya, protokol komit dua fase digunakan untuk tujuan tersebut.

Sebagai contoh, mari kita pertimbangkan tabel data PROJECT (PId, PName, PLocation). Kita perlu menjalankan T1 transaksi yang memperbarui PLocation ke 'Mumbai', jika PLocation adalah 'Bombay'. Jika tidak ada replikasi, operasi dalam transaksi T1 akan -

Begin T1: 
   Update PROJECT Set PLocation = 'Mumbai' 
   Where PLocation = 'Bombay'; 
End T1;

Jika tabel data memiliki dua replika di Situs A dan Situs B, T1 perlu menelurkan dua anak T1A dan T1B yang sesuai dengan kedua situs tersebut. T1 transaksi yang diperluas akan -

Begin T1: 
   Begin T1A : 
      Update PROJECT Set PLocation = 'Mumbai' 
      Where PLocation = 'Bombay'; 
   End T1A;  
	
   Begin T2A : 
      Update PROJECT Set PLocation = 'Mumbai'
      Where PLocation = 'Bombay'; 
   End T2A; 
	
End T1;

Kontrol Replikasi Asinkron

Dalam pendekatan replikasi asinkron, replika tidak selalu mempertahankan nilai yang sama. Satu atau lebih replika mungkin menyimpan nilai yang sudah ketinggalan zaman, dan transaksi dapat melihat nilai yang berbeda. Proses membawa semua replika ke nilai saat ini disebutsynchronization.

Metode sinkronisasi yang populer adalah metode simpan dan maju. Dalam metode ini, satu situs ditetapkan sebagai situs utama dan situs lainnya adalah situs sekunder. Situs utama selalu berisi nilai yang diperbarui. Semua transaksi pertama kali masuk ke situs utama. Transaksi ini kemudian dimasukkan ke dalam antrian untuk aplikasi di situs sekunder. Situs sekunder diperbarui menggunakan metode peluncuran hanya ketika transaksi dijadwalkan untuk dieksekusi.

Algoritma Kontrol Replikasi

Beberapa dari algoritma kontrol replikasi adalah -

  • Algoritme kontrol replikasi master-slave.
  • Algoritme pemungutan suara terdistribusi.
  • Algoritme konsensus mayoritas.
  • Algoritma token yang beredar.

Algoritma Kontrol Replikasi Master-Slave

Ada satu situs master dan situs budak 'N'. Algoritme master berjalan di situs master untuk mendeteksi konflik. Salinan algoritme slave dijalankan di setiap situs slave. Algoritme keseluruhan dijalankan dalam dua fase berikut -

  • Transaction acceptance/rejection phase- Ketika sebuah transaksi memasuki monitor transaksi dari situs slave, situs slave mengirimkan permintaan ke situs master. Situs master memeriksa konflik. Jika tidak ada konflik, master mengirim pesan "ACK +" ke situs slave yang kemudian memulai fase aplikasi transaksi. Jika tidak, master mengirimkan pesan "ACK-" ke slave yang kemudian menolak transaksi tersebut.

  • Transaction application phase- Saat memasuki fase ini, situs budak di mana transaksi telah masuk menyiarkan permintaan kepada semua budak untuk mengeksekusi transaksi. Saat menerima permintaan, budak rekan mengeksekusi transaksi dan mengirim "ACK" ke budak yang meminta setelah selesai. Setelah budak yang meminta menerima pesan "ACK" dari semua rekannya, ia mengirim pesan "SELESAI" ke situs master. Master memahami bahwa transaksi telah diselesaikan dan menghapusnya dari antrian tertunda.

Algoritma Voting Terdistribusi

Ini terdiri dari situs peer 'N', yang semuanya harus "OK" transaksi sebelum mulai dijalankan. Berikut adalah dua fase dari algoritma ini -

  • Distributed transaction acceptance phase- Saat transaksi masuk ke pengelola transaksi suatu situs, ia mengirimkan permintaan transaksi ke semua situs lain. Saat menerima permintaan, situs rekan menyelesaikan konflik menggunakan aturan pemungutan suara berbasis prioritas. Jika semua situs rekan "OK" dengan transaksi, situs yang meminta memulai fase aplikasi. Jika salah satu situs peer tidak "OK" transaksi, situs yang meminta menolak transaksi tersebut.

  • Distributed transaction application phase- Saat memasuki fase ini, situs tempat transaksi telah masuk, menyiarkan permintaan ke semua budak untuk mengeksekusi transaksi. Saat menerima permintaan, budak rekan mengeksekusi transaksi dan mengirim pesan "ACK" ke budak yang meminta setelah selesai. Setelah budak yang meminta menerima pesan "ACK" dari semua rekannya, ini memberi tahu manajer transaksi bahwa transaksi telah selesai.

Algoritma Konsensus Mayoritas

Ini adalah variasi dari algoritme pemungutan suara terdistribusi, di mana transaksi diizinkan untuk dieksekusi ketika mayoritas rekan "OK" melakukan transaksi. Ini dibagi menjadi tiga fase -

  • Voting phase- Saat transaksi masuk ke pengelola transaksi suatu situs, ia mengirimkan permintaan transaksi ke semua situs lain. Saat menerima permintaan, situs peer menguji konflik menggunakan aturan pemungutan suara dan menyimpan transaksi yang bentrok, jika ada, dalam antrian tertunda. Kemudian, ini mengirimkan pesan "OK" atau "NOT OK".

  • Transaction acceptance/rejection phase- Jika situs yang meminta menerima mayoritas "OK" pada transaksi, ia menerima transaksi tersebut dan menyiarkan "SETUJU" ke semua situs. Jika tidak, itu menyiarkan "TOLAK" ke semua situs dan menolak transaksi.

  • Transaction application phase- Ketika situs peer menerima pesan "TOLAK", itu menghapus transaksi ini dari daftar tertunda dan mempertimbangkan kembali semua transaksi yang ditangguhkan. Ketika situs peer menerima pesan "ACCEPT", itu berlaku transaksi dan menolak semua transaksi yang ditangguhkan dalam antrian tertunda yang bertentangan dengan transaksi ini. Ini mengirimkan "ACK" ke budak yang meminta pada saat penyelesaian.

Algoritma Token Beredar

Dalam pendekatan ini, transaksi dalam sistem diserialkan menggunakan token yang bersirkulasi dan dieksekusi sesuai dengan setiap replika database. Dengan demikian, semua transaksi diterima, yaitu tidak ada yang ditolak. Ini memiliki dua fase -

  • Transaction serialization phase- Dalam fase ini, semua transaksi dijadwalkan untuk berjalan dalam urutan serialisasi. Setiap transaksi di setiap situs diberikan tiket unik dari rangkaian berurutan, yang menunjukkan urutan transaksi. Setelah transaksi diberi tiket, tiket itu disiarkan ke semua situs.

  • Transaction application phase- Ketika sebuah situs menerima transaksi bersama dengan tiketnya, ia menempatkan transaksi untuk dieksekusi sesuai dengan tiketnya. Setelah transaksi selesai dijalankan, situs ini menyiarkan pesan yang sesuai. Sebuah transaksi berakhir ketika telah menyelesaikan eksekusi di semua situs.