Pelaksana bersarang transaksi memerlukan suatu bentuk koordinasi. Jelaskan apa yang seorang koordinator harus benar-benar dilakukan.
Yang dimaksud dalam transaksi bersarang dengan mengacu pada suatu database transaksi, transaksi yang bersarang terjadi ketika suatu transaksi baru dimulai oleh sebuah instruksi yang sudah dalam transaksi yang ada. Transaksi baru dikatakan bersarang dalam transaksi yang ada, maka istilah.
Transaksi bersarang diimplementasikan secara berbeda dalam database. Namun, mereka mempunyai kesamaan bahwa perubahan tidak dibuat visibile tidak terkait apapun transaksi sampai transaksi terluar telah berkomitmen. Ini berarti bahwa dalam melakukan transaksi batin bertahan tidak perlu update ke database.
Industri perbankan biasanya proses transaksi keuangan menggunakan Bersarang Buka Transaksi, yang merupakan varian longgar transaksi yang bersarang, model yang menyediakan kinerja yang lebih tinggi sementara yang menyertainya menerima trade-off dari inkonsistensi.
transaksi bersarang (subtransactions) adalah baik karena:
· kesalahan-isolasi: jika subtransaction gulung kembali (misalnya, karena objek itu menggunakan gagal) maka ini tidak memerlukan transaksi yang disertakan untuk rollback, sehingga melepas semua pekerjaan yang dilakukan sejauh ini.
· modularitas: jika sudah ada transaksi yang terkait dengan panggilan saat transaksi baru dimulai, maka transaksi akan bersarang di dalamnya. Oleh karena itu, seorang programmer yang tahu bahwa suatu objek transaksi memerlukan dapat menggunakannya dalam benda: jika metode objek dipanggil tanpa klien transaksi, maka transaksi objek hanya akan tingkat atas, jika tidak, mereka akan bersarang dalam lingkup klien transaksi. Demikian pula, seorang klien tidak perlu mengetahui bahwa objek transaksi, dan bisa mulai transaksi sendiri.
Jadi dalam bersarang transaksi, tingkat atas transaksi bisa buka sub-transaksi, yang selanjutnya dapat membuka sub-transaksi, dan seterusnya.
Sebagai contoh, seorang klien 's transaksi, T, dapat membuka dua sub-transaksi, T1 dan T2, yang mengakses obyek pada server-server X dan Y. Setiap transaksi ini dapat membuka lebih lanjut pada sub-transaksi server lain.
Berikut tugas koordinator dari contoh diatas:
- Klien mengirimkan permintaan ke openTransaction koordinator.
- Koordinator mengirimkan transaksi yang unik ID untuk klien.
- Sekarang koordinator bertanggung jawab untuk mengkoordinasikan transaksi.
- Ketika peserta baru bergabung dalam transaksi untuk melakukan sub-transaksi, mereka mengatakan pada koordinator.
- Koordinator peserta menambahkan ke daftar peserta.
- Jika permintaan klien bahwa transaksi dibatalkan, koordinator mengatakan kepada semua peserta untuk membatalkan. Contoh seorang pelanggan dapat memutuskan untuk tidak pergi ke depan dengan membeli penerbangan.
- Jika server memutuskan untuk membatalkan transaksi, semua peserta yang terlibat dalam transaksi yang diminta untuk membatalkan. Misalnya sistem pemesanan penerbangan kali keluar untuk permintaan itu.
- Jika permintaan klien bahwa transaksi akan dilakukan, koordinator memprakarsai dua fase komit protokol. Misalnya membayar pelanggan untuk pembelian mereka.
Tidak ada komentar:
Posting Komentar