BAB I
PENDAHULUAN
A. Latar Belakang
Biasanya transaksi flat atau nested mengakses objek yang berada pada satu server tunggal. Namun, dalam kebanyakan hal, sebuah transaksi , apakah itu nested atau flat, akan mengakses objek yang ditempatkan pada server yang berbeda-beda. Dalam hal ini, kita gunakan terminologi distributed transaction untuk merujuk pada transaksi flat maupun nested yang mengakses objek yang dikelola oleh
lebih dari satu komputer server.B. Batasan Masalah
Dalam batasan masalah, hanya menjelaskan
mengenai pengertian,
klasifikasi transaksi sistem terdistribusi, model transaksi, sifat-sifat
transaksi, dan status transaksi.
C. Tujuan
Tujuan
dari pembuatan makalah ini adalah :
1. Mempelajari mengenai transaksi
terdistribusi
2. Memahami metode-metode yang terdapat pada transaksi terdistribusi.
BAB II
PEMBAHASAN
A.
Pengertian
Transaksi Sistem Terdistribsi dikenal juga dengan istilah Transaksi Tersebar, yaitu
eksekusi program yang mengakses data yang digunakan bersama di banyak situs,
menjamin semua situs yang terlibat transaksi mencapai keputusan konsisten
menganai kommit atau abort. Sumber lain yang menyebutkan, Transaksi adalah satu
atau beberapa aksi program aplikasi yang mengakses/mengubah isi basis data.
Jenis Transaksi terbagi menjadi :
1. Transaksi
Lokal yaitu Transaksi yang mengakses data pada suatu simpul (mesin/server) yang
sama dengan simpul dari mana transaksi tersebut dijalankan.
2. Transaksi
Global yaitu Transaksi yang membutuhkan pengaksesan data di simpul yang berbeda
dengan simpul dimana transaksi tersebut dijalankan, atau transaksi dari sebuah
simpul yang membutuhkan pengaksesan data ke sejumlah simpul lainnya.
B.
Klasifikasi Transaksi Sistem Terdistribusi.
Sebuah transaksi klien menjadi terdistribusi jika ia
melibatkan beberapa operasi pada beberapa server. Ada dua cara dimana transaksi
terdistribusi dibentuk, yakni nested transaction dan flat
transaction. Biasanya transaksi flat atau nested mengakses objek yang berada
pada satu server tunggal. Namun, dalam kebanyakan hal, sebuahtransaksi ,apakah
itu nested atau flat, akan mengakses objek yang ditempatkan pada server yang
berbeda-beda.
1. Flat Transaksi. utama dari flat transaction adalah bahwa mereka tidak memungkinkan hasil parsial yang akan dilakukan atau dibatalkan. Dengan kata lain, kekuatan milik atomicity flat transaction juga sebagiandari kelemahannya. Pada flat transaction, sebuah client membuat request lebih dari satu server. Sebagai contoh pada gambar berikut, transaksi T merupakan transaksi flat yang melibatkan operasi-operasi terhapdap objek-objek pada server X, Y, dan Z. Sebuah flat transaction melengkapi tiap-tiap requestnya sebelum bernangkat ke transaksi selanjutnya. Oleh karenanya, tipa-tiap trnasaksi mengakses objek server secara sekuensial. Ketika sebuah server dikunci, maka transaksi hanya bias menunggu satu objek saja pada satu waktu. Lihat gambar dibawah ini :
2. Nested Traksaksi.
Pada nested transaction, transaksi yang beradapada level atas dapat membuka
beberapa sub-transaksi dan tiap-tiap sub-transaksi tersebut dapat juga membuka
sub-transaksi lagi seterusnya sampai beberapa tingkat. Gambar (b) menunjukkan
trnasaksi klien T yang membuka dua sub transaksi T1 dan T2, yang mengakses
objek pada server X dan Y. Sub-transaksi T1 dan T2 tersebut membuka
sub-transaksilagi, yakni T11, T12, T21, dan T22 yagn mengakses objek pada
server M, N, dan P. Dalam kasus transakasi bertingka seperti ini, sub transaksi
yang beradapada level yang sama dapat berjalan secara serrempak (konkuren),
sehingga T1 dan T2 konkuren, dan karena mereka melibatkan objek pada server
yang berbeda, maka mereka dapat nerjalan secara paralel.
C. Model Transaksi
Model Transaksi atau disebut juga Distribusi
Commit. Phase commit merupakan operasi dimana satu set perubahan yang nyata
juga diterapkan sebagai operasi tunggal. Jika perubahan yang diterapkan maka
commit atomis dikatakan telah berhasil. Jika ada kegagalan sebelum commit
atomis dapatdi selesaikan maka semua perubahan selesai maka semua perubahan
diselesaikan dalam commit atomis reserved. Hal ini memastikan bahwa sistem
selalu ditinggalkan dalam keadaan konsisten.
Dalam hal ini dijelaskan oleh Atomik yang merupakan
salah satu sifat Transaksi yaitu yang bertujuan memastikan bahwa setiap
perubahan terjadi pada semua sistem atau tidak sama sekali.
Ada tiga phase commit yaitu :
1) One Phase Commit Protokol
·
Coordinator mengirimkan
pesan commit atau abort pada semua partisipan
·
Proses diulang terus
menerus sampai semua sudah membalas
·
Masalah : Tidak
mungkin melakukan abort setelah ada permintaan untuk commit
·
Solusi : Two Phase
Commit
2) Two Phase Commit Protokol
Two-phase commit adalah protocol yang
paling sederhana untuk menjaga commitment atomic dari transaksi trdistribusi.
Ini memperlebar efek dari aksi local atomic commit pada transaksi terdistribusi
dengan semua site pada saat melakukan eksekusi distribusi setuju untuk
melakukan commit sebelum efek tersebut menjadi permanent. Jika seluruh site
setuju melakukan commit maka semua aksi dari transaksi terdistribusi baru
mendapatkan efek. Jika tidak ada satupun site yang mengkomit operasi tersebut
maka semua operasi harus membatalkan transaksi tersebut. Oleh karenanya dasar
dari aturan 2PC menyatakan:
·
Jika tidak satupun site yang menyatakan
commit maka transaksi dibatalkan.
·
Jika semua site melakukan commit maka
transaksi tersebut dijalankan.
Two-Phase Commit Protocol (2PC) memiliki dua
jenis simpul untuk menyelesaikan proses–prosesnya: koordinator dan bawahan.
(Mohan dkk, 1986.). Protokol dua Tahap Komit melewati dua tahap. Fase
pertama adalah fase persiapan, dimana koordinator transaksi mengirimkan
pesan mempersiapkan. Fase kedua adalah fase pengambilan keputusan,
dimana koordinator mengeluarkan pesan COMMIT.
a) Fase 1 (voting)
Coordinator mengirimkan request canCommit pada
setiap partisipan kemudian partisipan memilih yes/no dan mengirim balik pada
coordinator. Jika yes, maka menyimpan obyek pada penyimpanan permanen.
b) Fase 2
Coordinator mengumpulkan hasil voting, jika
semua setuju coordinator memutuskanuntuk commit (menjalankan) dan mengirimkan
do Commit pada semua partisipan.Selain itu, coordinator memutuskan abort dan
mengirimkan do Abort pada semuapartisipan yang memilih yes. Partisipan yang
memilih yes menunggu doCommit/doAbort dari coordinator Setelah menerima salah
satu dari pesan diatas, partisipan menjalankan perintah sesuai dengan pesan yang
diterima Jika dilakukanperintah commit, maka partisipan mengirimkan pesan have
Committed pada coordinator sebagai konfirmasi bahwa proses sudah dilaksanakan.
Phase Commit dapat dilakukan dengan salah satu
dari metode berikut: Sentralisasi 2PC, Linear 2PC, dan Distributed 2PC, (Ozsu
et al., 1991)
Masalah pada Two Phase Commit :
·
Susah memastikan semua partisipan sudah
melakukan vote dan mendapatkan hasil yang sama
·
Jika proses mengalami kegagalan (terjadi
network partitioning), maka tidak akan didapatkan konsensus, karena partisipan
yang lain akan saling menunggu (blocking).
·
Solusi : Three phase commit
Masalah utama dengan komit dua fase
terjadi ketika salah satu node yang berpartisipasi dalam transaksi
terdistribusi gagal sementara transaksi dalam keadaan READY.
Ketika kegagalan dalam jangka waktu lama, maka
data terkunci pada semua node lain, tidak akan tersedia untuk transaksi
lainnya. Hal ini akan menyebabkan banyak transaksi untuk rollback karena
deadlock.
Penanganan
Kegagalan pada 2PC :
a)
Kegagalan pada salah
satu situs yg berpartisipasi
·
Masalah: situs yg selesai melakukan
recovery harus memeriksa log utk menentukan status transaksi
·
Jika commit, situs melakukan redo(T)
·
Jika abort, situs melakukan undo(T)
b) Kegagalan pada Koordinator
·
Masalah: situs yg berpartisipasi harus
menentukan nasib T
·
Jika salah satu situs berisi record atau
maka coordinator akan mengikuti hasilnya
·
Jika ada situs yg belum berisi maka
koordinator tdk dpt memutuskan
c) Kegagalan pada Jaringan
·
Masalah: pesan yg dikirimkan tidak
sampai
·
Jika beberapa link terputus dapat
dilakukan partisi jaringan
3. Three Phase Commit
Protokol
Mencoba mengatasi masalah blocking (menunggu) yaitu dengan
menggunakan asumsi tidak lebih dari k site fail (k adalah angka yang sudah
disetujui). Coordinator memastikan bahwa paling tidak k site lain tahu bahwa
coordinator akan melakukan commit. Jika coordinator fail, site yang lain
melakukan election coordinator baru dan melihat status Terakhir dan menentukan
keputusan yang akan diambil (commit/abort).
Masalah
pada Three Phase Commit :
·
Susah implementasinya
·
Harus memastikan bahwa state harus tetap
konsisten meskipun terdapat perbedaan hasil (transaksi di commit di satu site
dan abort di site yang lain sebagai akibat dari network partitioning)
·
Terlalu banyak overhead
D. Sifat-sifat Transaksi.
Sebuah transaksi berpeluang untuk
‘mengganggu’ integritas basis data yang dapat membuat kondisi/hubungan antar
data tidak seperti seharusnya. Untuk menjamin agar integritas dapat tetap
terpelihara maka setiap transaksi harus memiliki sifat-sifat :
1. Atomik,
dimana semua operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak
sama sekali.
2. Konsisten,
dimana eksekusi transaksi secara tunggal harus dapat menjamin data tetap
konsisten setelah transaksi berakhir.
3. Terisolasi,
jika pada sebuah sistem basis data terdapat sejumlah transaksi yang
dilaksanakan secara bersamaan, maka semua transaksi yang dilaksanakan pada saat
yang bersamaan tersebut harus dapat dimulai dan bisa berakhir.
4. Bertahan,
dimana perubahan data yang terjadi setelah sebuah transaksi berakhir dengan
baik, harus dapat bertahan bahkan jika seandainya sistem menjadi mati
Terhentinya suatu transaksi tidak selalu
diakibatkan oleh kegagalan insidental baik dari perangkat keras (crash) ataupun
kemacetan sistem operasi (hang). Tapi lebih sering terjadi karena user
sengaja menghentikan transaksi atau karena penghentian transaksi oleh DBMS
(Database Management System) akibat adanya kondisi tak diinginkan,
seperti deadlock atau timeout. Sebuah transaksi dapat menghasilkan dua
kemungkinan:
·
Jika dilaksanakan lengkap seluruhnya,
transaksi tersebut telah di commit dan basis data mencapai keadaan konsisten
baru.
·
Jika transaksi tidak sukses, maka
transaksi dibatalkan dan basis data dikembalikan ke keadaan konsisten
sebelumnya (rollback).
Transaksi yang sudah di commit
tidak dapat dibatalkan lagi. Jika ada kesalahan, maka harus dilakukan
transaksi lain yang membalik dampak transaksi sebelumnya.
E. Status
Transaksi.
Tiap situs memiliki koordinator
transaksi yg berfungsi menjamin atomisitas eksekusi transaksi, dengan cara:
·
Memulai eksekusi transaksi.
·
Memecah menjadi beberapa sub-transaksi
dan mendistribusikannya pada situs-situs yg cocok utk dieksekusi.
·
Mengkoordinasikan terminasi transaksi
(commit, atau abort).
·
Tiap situs menyimpan log untuk tujuan
recovery.
Status-status yang dapat dicapai
oleh sebuah transaksi sejak mulai dilaksanakan hingga selesai atau batal
adalah:
1. Aktif (Active),
yang merupakan status awal (initial state) sebuah transaksi yang menunjukkan
transaksi tersebut masih dieksekusi.
2. Berhasil Sebagian (Partially
Committed), yaitu keadaan yang dicapai transaksi tepat pada
saat operasi terakhir dalam transaksi selesai dikerjakan.
3. Gagal (Failed),
yang merupakan keadaan dimana sebuah transaksi terhenti pengeksekusiannya
sebelum tuntas sama sekali.
4. Batal (Aborted),
yaitu keadaan dimana sebuah transaksi dianggap tidak/belum dikerjakan yang
tentu dengan terlebih dahulu diawali dengan mengembalikan semua data yang telah
diubah ke nilai-nilai semula. (yang menjadi tanggung jawab DBMS).
5. Berhasil Sempurna (Committed),
keadaan dimana transaksi telah dinyatakan berhasil dikerjakan seluruhnya dan
basis data telah merefleksikan perubahan-perubahan yang memang diinginkan
transaksi.
Ketika sebuah transaksi mulai dikerjakan, maka
transaksi itu berada dalam status aktif. Jika terjadi penghentian sebelum
operasi berakhir, maka transaksi segera beralih ke status gagal/failed.
Namun, bila keseluruhan transaksi selesai dikerjakan, maka transaksi itu berada
pada status berhasil sebagian/partially committed, dimana perubahan-perubahan
data masih berada di dalam memori utama yang bersifat volatile/tidak
permanen. Transaksi dalam status ini masih mungkin untuk pindah ke status
failed, karena ada pembatalan transaksi baik sengaja maupun tidak. Jika
tidak beralih ke status failed, maka nilai-nilai data yang ada di memori utama
akan direkam ke dalam disk yang bersifat permanen. Begitu proses
perekaman selesai, maka transaksi beralih ke status committed. Sementara
itu, transaksi yang berada pada status failed, maka DBMS harus menjalan proses
rollback. Proses tersebut dapat berupa:
·
Mengulangi pelaksanaan transaksi /
restart, yang dilakukan pada transaksi yang failed akbiat kemacetan perangkat
keras ataupun perangkat lunak dan bukannya penghentian transaksi secara sengaja
oleh user.
·
Mematikan transaksi / kill, yang
dilakukan untuk transaksi yang dihentikan secara sengaja oleh user atau akibat
adanya kesalahan lojik dalam penulisan aplikasi.
Begitu salah satu dari pilihan
proses tersebut selesai dilakukan, maka transaksi berpindah ke status batal
(aborted). Status berhasil sempurna/committed maupun batal/aborted
merupakan status terminasi, yaitu status akhir dalam pelaksanaan transaksi.
BAB III
PENUTUP
D.
Kesimpulan
Sebuah transaksi klien menjadi terdistribusi jika ia
melibatkan beberapa operasi pada beberapa server. Ada dua cara diaman trnasaksi
terdistribusi dibentuk, yakni nested transaction dan flat transaction.
·
Pada flat transaction, sebuah client membua
request pada lebih dari satu server. Sebagai contoh pada gambar 1.1 berikut,
transaksi T merupakan transaksi flat yang melibatkan operasi-operasi terhapdap
objekobjek pada server X, Y, dan Z. Sebuah flat transaction melengkapi
tiap-tiap requestnya sebelum bernangkat ke ke transaksi selanjutnya. Oleh
karenanya, tipa-tiap trnasaksi mengakses objek server secara sekuensial. Ketika
sebuah server dikunci, maka transaksi hanya bisa menunggu satu objek saja pada
satu waktu.
·
Pada
nested transaction, transaksi yang berada pada level atas dapat membuka
beberapa sub-transaksi dan tiap-tiap sub-transaksi tersebut dapat juga membuka
sub-transaksi lagi seterusnya sampai beberapa tingkat. Gambar 1.2 menunjukkan
trnasaksi klien T yang membuka dua sub transaksi T1 dan T2, yang mengakses
objek pada server X dan Y. Sub-transaksi T1 dan T2 tersebut membuka
sub-transaksi lagi, yakni T11, T12, T21, dan T22 yagn mengakses objek pada
server M, N, dan P. Dalam kasus transakasi bertingka seperti ini, sub transaksi
yang berada pada level yang sama dapat berjalan secara serrempak (konkuren),
sehingga T1 dan T2 konkuren, dan karena mereka melibatkan objek pada server
yang berbeda, maka mereka dapat nerjalan secara paralel. Keempat sub-transaksi
T11, T12, T21, T22 juga berjalan secara konkuren satu dengan lainnya.
DAFTAR
PUSTAKA
Adikartakusuma. “Materi VIII Terdistributed “.https://adikartakusuma.wordpress.com . 13 Sep 2015. Web. 5 Jan 2016
Hadira. “Pertemuan VIII Sistem Terdistribusi”. http://esetblog.blogspot.co.id . 22 Jan 2014. Web. 6 Januari 2016_______. “Pertemuan XII Sistem Terdistribusi http://esetblog.blogspot.co.id. 22 Jan 2014. Web. 6 Januari 2016
Hanif, Ibnu dan Muhammad Rijalul Kahfi. “Distributed Transactions”. http://te.ugm.ac.id. Teknik Elektro FT UGM, Jogja. Web. 4 Januari 2016
No comments:
Post a Comment