• Tidak ada hasil yang ditemukan

DISTRIBUTED TRANSACTIONS. Willy Sudiarto Raharjo

N/A
N/A
Protected

Academic year: 2021

Membagikan "DISTRIBUTED TRANSACTIONS. Willy Sudiarto Raharjo"

Copied!
34
0
0

Teks penuh

(1)

TEKNIK INFORMATIKA UKDW

SISTEM TERDISTRIBUSI

DISTRIBUTED 

TRANSACTIONS

(2)

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 (two­phase commit protocol) ● Memerlukan concurrency control

(3)

TEKNIK 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 saja

(4)

TEKNIK INFORMATIKA UKDW

Flat Transaction (2)

Client X Y Z T T

(5)

TEKNIK 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)

(6)

TEKNIK INFORMATIKA UKDW

Nested Transactions (2)

X Y M N T 1 T 2 T 11 Client P T T 12 T 21 T 22

(7)

TEKNIK 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);

(8)

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); closeTransaction

(9)

TEKNIK 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 protocol

(10)

TEKNIK 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  versa

(11)

TEKNIK INFORMATIKA UKDW

(12)

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/abort

(13)

TEKNIK 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 Commit

(14)

TEKNIK 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

(15)

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/

(16)

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 dilaksanakan

(17)

TEKNIK 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

(18)

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 commit

(19)

TEKNIK 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)

(20)

TEKNIK INFORMATIKA UKDW

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 abord di  site yang lain sebagai akibat dari network  partitioning) ● Terlalu banyak overhead

(21)

TEKNIK 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 kemarin

(22)

TEKNIK 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 deadlock

(23)

TEKNIK 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

(24)

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 U

(25)

TEKNIK 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 V

(26)

TEKNIK 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 lagi

(27)

TEKNIK INFORMATIKA UKDW

Transaction Recovery

● Proses pemulihan dengan menggunakan versi  terakhir dari obyek yang sudah di­commit 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 space

(28)

TEKNIK 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 lama

(29)

TEKNIK 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

<AP1> <CP5> <BP2> <BP6> P0 P3 P4 Checkpoint End of log

(30)

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

(31)

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 two­phase 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.

(32)

TEKNIK INFORMATIKA UKDW

(33)

TEKNIK INFORMATIKA UKDW

(34)

TEKNIK INFORMATIKA UKDW

Minggu Depan

Referensi

Dokumen terkait

Faktor-faktor fisiologis adalah faktor-faktor yang berhubungan dengan kondisi fisik individu.Faktor-faktor ini dibedakan menjadi dua macam.Pertama, keadaan tonus

Tujuan ini adalah untuk mengetahui pengaruh jumlah dana bank umum, tingkat suku bunga kredit, likuiditas bank umum, jumlah kantor bank umum terhadap penyaluran kredit modal kerja

Sedangkan Berdasarkan hasil pengujian secara parsial variabel jumlah dana pihak ketiga bank (X1), berpengaruh signifikan terhadap variable terikat penyaluran kredit usaha

Ada dua jenis indigenisasi yang dapat ditempuh, yaitu (1) indigenization from within, yang diartikan sebagai pengejawantahan teori, konsep, dan metode keilmuan

Usahatani integrasi ternak sapi dengan padi merupakan usahatani yang efisien dan dinilai efektif untuk perbaikan pendapatan usahatani rakyat dengan pemilikan lahan sempit di

Penelitian ini bertujuan untuk mengetahui dan membuktikan secara empiris pengaruh dari Partisipasi Pemakai, Dukungan Manajemen Puncak, dan Kemampuan Teknik Personal

Skripsi dengan judul “ Mitigasi Risiko Pembiayaan Pegadaian Syariah Cabang Blauran Surabaya ” ini ditulis untuk memenuhi salah satu persyaratan akademik untuk

Metode QFD merupakan salah satu metode yang dapat digunakan untuk menerjemahkan kebutuhan pelanggan ke dalam karakteristik teknis produk dengan mempertimbangkan