MODUL PERTEMUAN 10
PEMROSESAN KONKUREN DAN PENGENDALIAN DATA TERDISTRIBUSI
(CONCURRENT AND DATA CONTROL OF DISTRIBUTED PROCESSING)
DISUSUN OLEH
7174 - SAWALI WAHYU, S.KOM, M.KOM
EKSEKUSI KONKUREN
Banyak transaksi dapat dijalankan secara bersamaan dalam sebuah
sistem. Keuntungannya:
a) Meningkatkan kinerja prosesor dan disk penyimpanan, untuk
melakukan transaksi yang lebih baik: suatu transaksi dapat
menggunakan CPU sementara yang lain membaca atau menulis
dalam penyimpan
b) Mengurangi rata-rata waktu tunggu transaksi: transaksi yang singkat
tidak perlu menunggu transaksi lain yang lebih panjang.
Skema pengendalian konkurensi – mekanisme untuk mendapatkan
isolasi, mis., untuk mengendalikan interaksi antara transaksi konkuren dalam
hubungannya menjaga konsistensi database
Select * from t; w1
w2 Select * from t;
Contoh :
Masalah muncul jika transaksi diijinkan retrieve record-record
yang telah diubah nilainya oleh transaksi lain yang belum save. Karena
belum save selalu ada kemungkinan perubahan tersebut akan di-undo
(redo)
Penerapan Transaksi A dependent ke uncommitted change saat
w2, dijelaskan dalam tabel di bawah ini :
Select * from t; w2
w3 rollback;
w3 rollback;
3) Inconsistent analysis
Masalah terjadi saat satu transaksi membaca beberapa nilai
tetapi transaksi kedua pd waktu sama memodifikasi nilai tersebut.
PENJADWALAN KONKUREN
Penjadwalan – urutan yang menunjukkan kronologi transaksi
yang mana dalam transaksi konkuren akan di eksekusi, berikut adalah
contohnya :
1) Sebuah jadwal untuk sekelompok transaksi harus patuh pada
semua instruksi dari transaksi-transaksi tersebut
2) Harus menjaga urutan instruksi yang mana yang ditampilkan
pada transaksi tunggal.
PENGONTROLAN KONKUREN
a) Penjadualan transaksi untuk mencegah adanya saling
interferensi.
Contoh Penjadwalan :
Transaksi T1 transfer 50 dari A ke B, dan transaksi T2 transfer
10% dari saldo rekening A ke rekening B. Berikut adalah jadwalnya
secara serial, dimana T1 diikuti oleh T2.
2. CONCURENT MODELLING
Pemrosesan konkuren memiliki 2 model yaitu :
a. Konkurensi pesimistik: sinkronisasi eksekusi transaksi dilakukan
mulai dari awal siklus eksekusi transaksi. Baris-baris data dikunci
sebelum dimodifikasi, sehingga tidak ada transaksi lain yang bisa
SERIALIZABILITY
Serializability adalah Cara yang alamiah untuk memelihara konsistensi
dalam sistem yang mengakomodasi pelaksanaan transaksi secara bersamaan
(concurency system) adalah mengupayakan agar hasil pemrosesan
sekumpulan transaksi yang sedang bersaing (dieksekusi bersama-sama)
dalam satu kesatuan proses sama saja dengan yang dihasilkan dengan
menjalankan transaksi-transaksi tersebut secara berurutan/serial dengan
urutan tertentu.
Kemampuan untuk mengupayakan terjadinya kesamaan antara
schedule yang konkuren dengan schedule yang serial disebut Serializability.
Yang harus diperhatikan adalah operasi read dan write. Operasi read dan write
hanya akan terjadi pada ruang memori utama (buffer) dan tidak mengakibatkan
adanya perubahan terhadap isi basis data di dalam disk.
Serializable berarti jika jadual (nonserial) menghasilkan hasil yg sama
seperti halnya jadual serial lainnya.
Serial schedule merupakan jadual dimana operasi2 setiap transaksi
dieksekusi secara berurutan tanpa terselip operasi dari transaksi lain.
Nonserial schedule merupakan jadual dimana operasi2 dari sekumpulan
transaksi konkuren dapat saling menyelip.
Schedule atau jadual merupakan urutan dari operasi read & write secara
bersamaan pada sekumpulan transaksi yg konkuren.
MODEL SERIALIZABILITY
Ada dua cara yang dapat dipilih untuk mengetahui ekivalensi antara
sebuah schedule konkuren dengan schedule serial,yaitu :
1) Conflict Serializability
Pada kasus dimana terjadi overlapping (ada transaksi yang dijalankan
ketika transaksi lain sedang berjalan) dalam pengeksekusian transaksi-
transaksi yang ada, maka penjadwalan tersebut disebut penjadwalan non-
serial. Penjadwalan demikian tidak selalu menghasilkan hasil eksekusi yang
Dalam kasus dimana tidak terjadi konflik antar dua operasi, maka
dapat dilakukan swapping sehingga terbentuk penjadwalan baru S' yang
urutannya sama dengan penjadwalan serial.
2) View Serializability
Bentuk ekivalensi dalam pendekatan ini lebih longgar dibandingkan
pendekatan sebelumnya (conflict serializability), walaupun analisanya masih
tetap didasarkan pada dua operasi utama (read dan write).
Menurut pendekatan ini, jika S merupakan schedule serial, maka S’
untuk himpunan transaksi yang dapat dikatakan view equivelant dengan S jika
ketiga ketentuan dibawah ini terpenuhi :
a) Untuk setiap item data Q, jika transaksi Ti membaca nilai awal dari Q
pada schedule S, maka transaksi Ti pada schedule S’ juga harus
membaca nilai awal dari Q.
Tunggal (Exclusive).
Jika sebuah transaksi Tj dapat melakukan penguncian dengan mode
ini (dilambangkan dengan X) terhadap item data Q, maka Ti dapat membaca
maupun mengubah nilai Q tersebut.
X S
X N N Y
S N Y Y
Y Y Y
T1 : lock-X(B)
read(B)
B ← B – 100000
write(B)
unlock(B)
lock-X (A)
read(A)
A ← A + 100000
write(A)
unlock(A)
Secara teoritis, schedule ini akan memberikan hasil yang akurat sesuai
dengan hasil yang diberikan oleh schedule serial. Schedule di atas tidak
dapat dilakukan dengan tuntas, karena mengalami kondisi deadlock
b) Time Stamping
Salah satu alternatif concurrency control yang dapat menghilangkan
deadlock adalah time stamping. Secara umum, timestamping (TS) adalah
penanda waktu saat transaksi terjadi. Hal ini untuk mengurutkan eksekusi
transaksi agar sama dengan eksekusi serial.