TEKNIK INFORMATIKA UKDW
SISTEM TERDISTRIBUSI
DISTRIBUTED
TRANSACTIONS
TEKNIK INFORMATIKA UKDW
Distributed Transactions
● Proses transaksi (flat / nested) yang mengakses object yang dikelola oleh beberapa server ● Konsep atomicity tetap berlaku (all or nothing) ● Diperlukan sebuah coordinator untuk memastikan konsep atomicity ● Menggunakan protokol yang sudah disepakati sejak awal (twophase commit protocol) ● Memerlukan concurrency controlTEKNIK INFORMATIKA UKDW
Flat Transaction (1)
● Sebuah client melakukan request pada lebih dari satu server ● Sebuah transaksi diselesaikan dahulu sebelum meminta ke server berikutnya (sequential) ● Jika menggunakan konsep locking, maka sebuah transaksi hanya bisa menunggu satu obyek sajaTEKNIK INFORMATIKA UKDW
Flat Transaction (2)
Client X Y Z T TTEKNIK INFORMATIKA UKDW
Nested Transactions (1)
● Top level transaction bisa membuat sub transaksi ● Sub transaksi pada level yang sama bisa berjalan secara concurrent (parallel) ● Mampu memanfaatkan utilitas prosessor (pada kasus multi processor)TEKNIK INFORMATIKA UKDW
Nested Transactions (2)
X Y M N T 1 T 2 T 11 Client P T T 12 T 21 T 22TEKNIK INFORMATIKA UKDW
CONTOH TRANSAKSI BANK (1)
a.withdraw(10) c.deposit(10) b.withdraw(20) d.deposit(20) Client A B C T 1 T 2 T 3 T 4 T D X Y Z T = openTransaction openSubTransaction a.withdraw(10); closeTransaction openSubTransaction b.withdraw(20); openSubTransaction c.deposit(10); openSubTransaction d.deposit(20);TEKNIK INFORMATIKA UKDW
CONTOH TRANSAKSI BANK (2)
.. BranchZ BranchX participant participant C D Client BranchY B A participant join join join T a.withdraw(4); c.deposit(4); b.withdraw(3); d.deposit(3); openTransaction b.withdraw(T, 3); closeTransaction T = openTransaction a.withdraw(4); c.deposit(4); b.withdraw(3); d.deposit(3); closeTransactionTEKNIK INFORMATIKA UKDW
PROSES TRANSAKSI
● Client mengirimkan request openTransaction pada coordinator pada sembarang server ● Coordinator yang dituju mengembalikan identifier transaction yang unik pada client ● Client bekerjasama dengan coordinator dengan commit protocolTEKNIK INFORMATIKA UKDW
Coordinator (1)
● Sebuah host/system yang menjadi “mandor” untuk menyelesaikan sebuah transaksi terdistribusi ● Bertanggung jawab untuk mengambil keputusan commit/abort ● Selama terjadi transaksi, coordinator mencatat daftar referensi dari partisipan dan vice versa ● Coordinator tahu semua daftar peserta dan vice versaTEKNIK INFORMATIKA UKDW
TEKNIK INFORMATIKA UKDW
Atomic Commit Protocols
● Dikembangkan awal 1970an ● Bertujuan untuk memastikan bahwa setiap perubahan terjadi pada semua system atau tidak sama sekali (all or nothing) ● Terdapat tiga jenis – One phase commit protocol – Two phase commit protocol – Three phase commit protocol ● Berakhir setelah transaksi di commit/abortTEKNIK INFORMATIKA UKDW
One Phase Commit Protocol
● Coordinator mengirimkan pesan commit atau abort pada semua partisipan ● Proses diulang terus menerus sampe semua sudah membalas ● Masalah : Tidak mungkin melakukan abort setelah ada permintaan untuk commit ● Solusi : Two Phase CommitTEKNIK INFORMATIKA UKDW
Two Phase Commit Protocol (1)
● Fase 1 (voting)
– Coordinator mengirimkan request canCommit pada
setiap partisipan
– Partisipan memilih yes/no dan mengirim balik pada
coordinator. Jika yes, maka menyimpan obyek pada penyimpanan permanen. Jika tidak, abort
TEKNIK INFORMATIKA UKDW
Two Phase Commit Protocol (2)
● Fase 2
– Coordinator mengumpulkan hasil voting
– Jika semua setuju, coordinator memutuskan
commit dan mengirimkan doCommit pada semua partisipan
– Selain itu, coordinator memutuskan abort dan
mengirimkan doAbort pada semua partisipan yang memilih yes
– Partisipan yang memilih yes menunggu doCommit/
TEKNIK INFORMATIKA UKDW
Two Phase Commit Protocol (3)
● Setelah menerima salah satu dari pesan diatas, partisipan menjalankan perintah sesuai dengan pesan yang diterima ● Jika dilakukan perintah commit, maka partisipan mengirimkan pesan haveCommitted pada coordinator sebagai konfirmasi bahwa proses sudah dilaksanakanTEKNIK INFORMATIKA UKDW
Two Phase Commit Protocol (4)
canCommit? Yes doCommit haveCommitted Coordinator 1 3(waiting for votes) committed done prepared to commit step Participant 2 4 (uncertain) prepared to commit committed status step status
TEKNIK INFORMATIKA UKDW
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 commitTEKNIK INFORMATIKA UKDW
Three Phase Commit
● Mencoba mengatasi masalah blocking ● 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 aksi (commit/abort)TEKNIK INFORMATIKA UKDW
Masalah pada Three Phase Commit
● Susah implementasinya ● Harus memastikan bahwa state harus tetap konsisten meskipun terdapat perbedaan hasil (transaksi dicommit di satu site dan abord di site yang lain sebagai akibat dari network partitioning) ● Terlalu banyak overheadTEKNIK INFORMATIKA UKDW
Concurrency Control
● Setiap server mengelola sekumpulan obyek dan bertanggung jawab untuk memastikan tetap konsisten ketika diakses oleh transaksi concurrent ● Jenis – Locking – Timestamp ordering concurrency control – Optimistic concurrency control ● Baca materi minggu kemarinTEKNIK INFORMATIKA UKDW
Distributed Locking (1)
● Lock pada obyek dikendalikan secara lokal oleh local lock manager – Memberikan akses untuk lock – Membuat transaksi yang meminta request menunggu ● Tidak bisa melepas lock sampai ada kepastian abort/commit pada semua server ● Bisa menimbulkan distributed deadlockTEKNIK INFORMATIKA UKDW
Distributed Locking (2)
U V W
d.deposit(10) lock D
b.deposit(10) lock B
a.deposit(20) lock A at Y
at X
c.deposit(30) lock C
b.withdraw(30) wait at Y at Z
c.withdraw(20) wait at Z
TEKNIK INFORMATIKA UKDW
Distributed Locking (3)
D Waits for Waits for Held by Held by B Waits for Held by X Y Z Held by W U V A C W V UTEKNIK INFORMATIKA UKDW
Phantom Deadlock (1)
● Deadlock yang terdeteksi tetapi bukan merupakan sebuah deadlock ● Terjadi karena adanya delay pada saat pengiriman informasi deadlock pada jaringan X T U Y V T T U VTEKNIK INFORMATIKA UKDW
Phantom Deadlock (2)
● Transaksi U melepas obyek pada server X ● Transaksi U meminta V pada server Y ● Asumsi – Server Y diterima terlebih dahulu dibandingkan server X ● T > U > V > T ● T > U sudah tidak ada lagiTEKNIK INFORMATIKA UKDW
Transaction Recovery
● Proses pemulihan dengan menggunakan versi terakhir dari obyek yang sudah dicommit dari media penyimpanan permanen ● Dilakukan oleh recovery manager – Menyimpan obyek pada storage permanen – Restore obyek server setelah crash – Mengorganisasi ulang file recovery untuk meningkatkan performa dari recovery – Reclaim storage spaceTEKNIK INFORMATIKA UKDW
Intention List
● Berisi daftar obyek aktif yang diakses oleh client selama transaksi (termasuk yang mengalami perubahan selama transaksi) ● Digunakan untuk melihat obyek mana yang terkena efek perubahan setelah commit ● Jika commit, maka nilai baru disimpan pada storage. Jika abort, data dari intention list digunakan untuk membatalkan perubahan dan melakukan rollback ke data lamaTEKNIK INFORMATIKA UKDW
Logging
● Semua transaksi yang commit dicatat pada log ● Urutan entry menggambarkan urutan transaksi ● Setelah crash, semua transaksi yang tidak
memiliki status committed akan dibatalkan
P0 P1 P2 P3 P4 P5 P6 P7
Object:A Object: B Object: C Object:A Object: B Trans:T Trans:T Object: C Object: B Trans:U
100 200 300 80 220 prepared committed 278 242 prepared
<A, P1> <C, P5> <B, P2> <B, P6> P0 P3 P4 Checkpoint End of log
TEKNIK INFORMATIKA UKDW
Contoh pada 2PC
Trans:T Coord’r: T Trans:T Trans: U Part’pant: U Trans: U Trans: U
prepared part’pant
list: . . . committed prepared Coord’r: . . uncertain committed intentions
TEKNIK INFORMATIKA UKDW
Recovery pada 2PC
Role Status Action of recovery manager
Coordinator prepared No decision had been reached before the server failed. It sends
abortTransaction to all the servers in the participant list and adds the transaction status aborted in its recovery file. Same action for state
aborted . If there is no participant list, the participants will eventually timeout and abort the transaction.
Coordinator committed A decision to commit had been reached before the server failed. It sends a doCommit to all the participants in its participant list (in case it had not done so before) and resumes the twophase protocol at step 4 Participant committed The participant sends a haveCommitted message to the coordinator (in
case this was not done before it failed). This will allow the coordinator to discard information about this transaction at the next checkpoint. Participant uncertain The participant failed before it knew the outcome of the transaction. It
cannot determine the status of the transaction until the coordinator informs it of the decision. It will send a getDecision to the coordinator to determine the status of the transaction. When it receives the reply it
will commit or abort accordingly.
Participant prepared The participant has not yet voted and can abort the transaction. Coordinator done No action is required.
TEKNIK INFORMATIKA UKDW
TEKNIK INFORMATIKA UKDW
TEKNIK INFORMATIKA UKDW