TIME-STAMP-BASED CONCURRENCY CONTROL ALGORITHMS Disusun untuk memenuhi Basis Data Terdistribusi yang dibimbing oleh Triyanna Widyaningtyas, S.T, M.T.
Oleh Galih Prasetyo
110533430521 110533430521 (Offering B)
Muhammad Damaris W.
110533406979 110533406979 (Offering A)
Novi Adi Triswandi
110533406978 110533406978 (Offering A)
Rezanda Rohman
110533430527 110533430527 (Offering B)
Selly Ariesta Fitriana
110533430624 110533430624 (Offering D)
Umi Kholifah
110533430510 110533430510 (Offering B) KELOMPOK 4
UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PROGRAM STUDI S1 PENDIDIKAN TEKNIK INFORMATIKA APRIL 2014
KATA PENGANTAR
Puji syukur kami ucapkan kehadirat Allah SWT karena berkat rahmat, taufik, dan hidayah-Nya, kami dapat menyelesaikan makalah yang berjudul TimeStamp-Based Concurrency Control Algorithms. Makalah ini diajukan guna memenuhi tugas dari matakuliah Basis Data Terdistribusi. Penyusunan makalah ini dapat diselesaikan atas bantuan serta bimbingan dari berbagai pihak, untuk itu kami dengan tulus hati menyampaikan ucapan terima kasih kepada : 1.
Triyanna Widyaningtyas, S.T, M.T., selaku Dosen pengampu matakuliah Basis Data Terdistribusi.
2.
Segenap media yang telah menjadi sumber rujukan makalah. Kami mengucapkan terima kasih kepada semua pihak yang telah
membantu sehingga makalah ini dapat diselesaikan sesuai dengan waktunya. Kami menyadari makalah ini masih jauh dari sempurna, oleh karena itu kami mengharapkan kritik dan saran yang bersifat membangun demi kesempurnaan makalah ini. Semoga makalah ini dapat memberikan informasi bagi masyarakat dan bermanfaat untuk pengembangan ilmu pengetahuan bagi kita semua.
Malang, April 2014
Penulis
ii
DAFTAR ISI
Halaman KATA PENGANTAR ..................................................................................... ii DAFTAR ISI .................................................................................................... iii BAB I PENDAHULUAN ................................................................................ 1 A. Latar Belakang .................................................................................... 1 B. Rumusan Masalah ............................................................................... 2 C. Tujuan ................................................................................................. 2 BAB II PEMBAHASAN ................................................................................. 3 A. Metode Timestamp pada Teknik Concurency Control ........................ 3 B. Penerapan Metode Timestamp pada Teknik Concurency Control ....... 5 BAB III PENUTUP ......................................................................................... 7 A. Kesimpulan ......................................................................................... 7 DAFTAR PUSTAKA ...................................................................................... 8
iii
1
BAB I PENDAHULUAN
A.
Latar Belakang
Tujuan utama dalam pengembangan database adalah membuat banyak pengguna bisa mengakses data secara bersamaan. Pengaksesan data ini tidak bermasalah jika semua pengguna hanya membaca data dan mereka tidak mengganggu satu sama lain. Tapi ketika dua pengguna atau lebih mengakses database yang sama secara bersamaan dan salah satu melakukan perubahan terhadap data, maka hal ini akan dapat menimbulkan adanya data yang tidak konsisten (inconsistency data). Untuk
mengatasi
adanya
kemungkinan
inconsistency
data,
maka
dibutuhkan adanya suatu mekanisme yang mengatur jalannya transaksi pengaksesan data yang sama tersebut. Mekanisme ini dikenal dengan istilah concurrency control . Concurrency control adalah proses pengaturan operasi – operasi dalam banyak transaksi yang berjalan secara simultan pada database tanpa mengganggu operasi pada transaksi lainnya sehingga dapat menghasilkan data yang konsisten. Tiga contoh masalah penting yang terkait oleh concurrency, yaitu masalah Lost-Update,
masalah
Uncommitted
Dependency,
dan
masalah
Inconsistent Analysis. Ada dua teknik concurrency control utama yang mengijinkan transaksi untuk berjalan dengan aman dalam subjek paralel untuk constraint tertentu, yaitu locking dan metode timestamp tertentu. Locking dan timestamping adalah pendekatan konservatif karena mereka menyebabkan transaksi ditunda dalam kasus mereka konflik dengan transaksi lain pada beberapa waktu di masa yang akan datang. Metode optimistik, didasarkan pada premis bahwa konflik itu jarang ditemui, jadi mereka mengijinkan transaksi untuk lanjut tidak tersinkronisasi dan hanya mengecek konflik di bagian akhir, ketika transaksi melakukan operasi commit. Jenis teknik concurrency control yang akan dibahas pada makalah ini metode timestamp. Suatu cara untuk menetapkan prioritas adalah memberikan
timestamp pada tiap transaksi pada saat mulai. Semakin rendah timestamp, semakin tinggi prioritas transaksi, yaitu transaksi paling tua mempunyai prioritas tertinggi.
B.
Rumusan Masalah
Berdasarkan latar belakang yang telah diungkapkan diatas, maka dapat dirumuskan beberapa masalah yaitu sebagai berikut. 1. Apakah metode timestap pada teknik concurrency control ? 2. Bagaimana penerapan metode timestap pada teknik concurrency control ?
C.
Tujuan
Berdasarkan rumusan masalah yang telah dipaparkan, maka tujuan dari penulisan makalah ini adalah sebagai beikut. 1. Mengetahui tentang metode timestap pada teknik concurrency control . 2. Mengetahui penerapan metode timestap pada teknik concurrency control .
2
3
BAB II PEMBAHASAN
A. Metode Timestap pada Teknik Concurr ency Contr ol
Salah satu alternatif concurrency control yang dapat menghilangkan deadlock adalah time stamping. Secara umum, timestamping (TS) adalah penanda waktu saat transaksi terjadi. Pengertian lain dari timestamping adalah salah satu cara untuk menjamin serialbilitas dengan memilih sebuah urutan diantara beberapa transaksi. Untuk setiap transaksi Ti didalam sistem ditetapkan sebuah nilai berdasarkan waktu yang tetap dan unik dengan notasi TS(Ti), dimana transaksi dengan timestamping yang lebih kecil mendapatkan prioritas untuk dilaksanakan terlebih dahulu.Timestamp berfungsi untuk mengurutkan eksekusi transaksi agar sama dengan eksekusi serial. Timestamp dapat berupa : a. waktu sistem saat transaksi dimulai, atau b. penghitung logik (logical counter ) yang terus bertambah nilainya tiap kali terjadi transaksi baru. Contoh : Pada saat menerima pesan, sebuah lokasi membandingkan timestamp-nya dengan timestamp yang ada pada pesan. Jika timestamp-nya lebih kecil, ubah nilainya menjadi lebih besar dibandingkan dengan timestamp pesan. Sebagai contoh, jika lokasi 1 dengan timestamp yang berlaku <10,1> mengirim pesan ke lokasi 2 dengan timestamp <15,2> , maka lokasi 2 tidak akan merubah timestampnya. Di sisi lain jika timestamp pada lokasi 2 adalah <5,2> maka timestamp-nya akan berubah menjadi <11,2>. Selain transaksi, item data juga memiliki nilai timestamp. Untuk setiap item data Q, ada 2 nilai timestamp, yaitu : a. Read time stamp atau R-timestamp(Q), yang
menunjukkan nilai TS
terbesar dari setiap transaksi yang berhasil menjalankan operasi read(Q). b. Write time stamp atau W-timestamp(Q), yang menunjukkan nilai TS terbesar dari setiap transaksi yang berhasil menjalankan operasi write(Q)
Timestamp ini
akan
selalu
diperbarui
ketika
ada
perintah
baru
read(Q) atau write(Q) yang dijalankan. 1.
Ti mestampin g - Read (x)
Transaksi T membaca item x yang telah diubah oleh transaksi baru ( younger ), yaitu ts(T) < write_timestamp(x).
Berarti transaksi lama mencoba
untuk membaca nilai suatu item yang telah diubah oleh transaksi baru. Dalam hal ini transaksi T harus digagalkan dan diulangi dengan timestamp yang baru. ts(T) >= read_timestamp(x) , dan operasi pembacaan dapat diproses. Ditetapkan read_timestamp(x) = max(ts(T), read_timestamp(x)
2.
Ti mestampin g - W r ite(x)
Ts(T) < read_timestamp(x), hal ini terjadi ketika transaksi lama telat melakukan penulisan sehingga transaksi baru membaca nilai yang salah. Dalam hal ini harus dilakukan rolled-back transaksi T dan mengulanginya dengan timestamp berikutnya. Ts(T) < write_timestamp(x), dimana x telah dituliskan oleh transaksi baru. Ini berarti transaksi T berusaha untuk menuliskan nilai obsolete dari data item x. Maka transaksi T harus di-rolled back dan diulangi dengan menggunakan timestamp berikutnya. Selain itu, dapat ditetap write_stimestamp(x) = ts(T), operasi dapat diterima dan dieksekusi. Berikut adalah contoh Basic Timestamp Ordering
4
B. Penerapan Metode Timestap pada Teknik Concur r ency Control 1.
Ti me-stampin g Or deri ng Protocol
Protokol ini menjamin bahwa tiap operasi read dan write yang memiliki konflik dieksekusi sesuai urutan TS. a. Untuk transaksi Ta yang menjalankan operasi read (Q) 1) Jika TS(Ta) < W-TS(Q) maka transaksi Ta perlu membaca kembali nilai Q yang telah ditulis dan transaksi Ta akan dibatalkan (rollback ). 2) Jika TS(Ta) ≥ W-TS(Q) maka operasi read dieksekusi, dan R-TS(Q) diisi dengan nilai terbesar diantara TS(Ta) dan R-TS(Q). b. Untuk transaksi Ta yang menjalankan operasi write(Q) 1) Jika TS(Ta) < R-TS(Q) maka nilai Q yang baru dihasilkan Ta tidak akan dimanfaatkan lagi, dan sistem berasumsi bahwa nilai tersebut tidak pernah dihasilkan. dan transaksi Ta di rollback .
5
Karena itu operasi write ditolak,
2) Jika TS(Ta) < W-TS(Q) maka itu berarti transaksi Ta sedang berusaha melakukan
penulisan
nilai
Q
yang kadaluarsa. Maka
operasi write ini akan ditolak dan transaksi Ta akan di rollback . Di luar kondisi a dan b di atas, operasi write dieksekusi dan WTS(Q) diberi nilai baru yang sama dengan TS(Ta). Terhadap transaksi Ta yang di rollback , akan diberikan sebuah timestamp yang baru dan diulang kembali. Properti timestamp ada dua yaitu sebagai berikut. a. Unique
Masing-masing timestamp suatu transaksi adalah unik. b. Monocity
Dua timestamp yang dihasilkan transaksi yang sama meningkat secara monoton. Sedangkan untuk pemberian nilai timestamp terdpaat dua cara yaitu : a. Global (systemwide) monotonically increasing number b. Local (site) monotonically increasing number
6
7
BAB III PENUTUP A.
Kesimpulan
Berdasarkan paparan yang telah disampaikan pada pembahasan terdapat kesimpulan yang didapat dari makalah ini yaitu sebagai berikut. 1. Timestamping adalah salah satu cara untuk menjamin serialbilitas dengan memilih sebuah urutan diantara beberapa transaksi. Untuk setiap transaksi Ti didalam sistem ditetapkan sebuah nilai berdasarkan waktu yang tetap dan unik dengan notasi TS(Ti), dimana transaksi dengan timestamping yang lebih kecil mendapatkan prioritas untuk dilaksanakan terlebih dahulu. 2. Penerapan metode timestap pada teknik concurrency control dilakukan dengan adanya aturan yaitu Time-stamping Ordering Protocol . Protokol ini menjamin bahwa tiap operasi read dan write yang memiliki konflik dieksekusi sesuai urutan TS.
8
DAFTAR PUSTAKA
Andheecha.2012.ConcurencyControl .(Online).(http://alvadiecha.blogspot.com/20 12/11/concurrency-control.html) diakses tanggal 11 April 2014.
Anonim.__. PengontrolanBerbasisKomputer .(Online).(http://dhedee29.staff.gunad guna.ac.id/Downloads/files/34452/DATABASE+CONTROL.pdf)
diakses
tanggal 11 April 2014.
Anonim.2009.ConcurencyControl .(Online).(http://pt4171it.wordpress.com/2009/1 1/21/concurrency-control/) diakses tanggal 11 April 2014.
Suryabrata,
Arghanta
Wijna._____.Transactions
and
Concurrency
Control.(Online).(http://te.ugm.ac.id/~risanuri/distributed/ringk/bab12.pdf) diakses tanggal 11 April 2014.
Widhyaestoeti,Dahlia.2012.ConcurencyControl .(Online).(http://dahlia74march.fil es.wordpress.com/2012/09/9-concurency-control.pdf) April 2014.
diakses
tanggal
11