Anda di halaman 1dari 16

`

MODUL DATABASE OBJEK TERDISTRIBUSI


CIB 125

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

UNIVERSITAS ESA UNGGUL


FAKULTAS ILMU KOMPUTER
TAHUN 2020

Universitas Esa Unggul


http://esaunggul.ac.id 0 / 16
`
PEMROSESAN KONKUREN DAN PENGENDALIAN DATA TERDISTRIBUSI

A. Kemampuan Akhir Yang Diharapkan


Setelah mempelajari modul ini, diharapkan mahasiswa mampu :
1. Mahasiswa Mampu Memahami Konsep Pemrosesan konkuren data pada
DDBMS
2. Mahasiswa Mampu mengidentifikasi model konkuren dalam DDBMS
3. Mahasiswa Mampu Memahami Membuat Pemrosesan data konkuren pada
aplikasi / sistem informasi.

B. Uraian dan Contoh


1) Concurent Definitions; Execution, Control, Processing And Scheduling
2) Concurent Modelling
3) Distributed Concurrent Processing

Universitas Esa Unggul


http://esaunggul.ac.id 1 / 16
`
CONCURRENT AND DATA CONTROL OF DISTRIBUTED PROCESSING

1. CONCURENT DEFINITIONS; EXECUTION, CONTROL, PROCESSING AND


SCHEDULING

Concurent Processing adalah Proses pengelolaan operasi pada basis


data secara simulan tanpa saling berinterferensi satu sama lain. Pengaksesan
konkuren yg hanya membaca data, tidak akan saling ber-interferensi, tetapi
apabila ada yg mengupdate data, akan saling berinterferensi & menyebabkan
terjadi ketidak konsistenan.

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

3 Masalah Pada Konkurensi


1) Lost update (modifikasi yg hilang)
Masalah operasi update yg sukses dari seorang pengguna
kemudian ditimpali oleh operasi update dari pengguna lain.
Contoh :
Transaksi A retrieve nilai t saat w1. Transaksi B retrieve nilai t
saat w2. Transaksi B mengubah nilai satu atau lebih record tanpa
melihat efek transaksi A. Transaksi B overwrite nilai-nilai hasil transaksi
A sehingga adalah mungkin transaksi A tidak melihat efek perubahan
yang dilakukan B

Universitas Esa Unggul


http://esaunggul.ac.id 2 / 16
`

Transaksi A Waktu Transaksi B

Select * from t; w1

w2 Select * from t;

*update t set id=1 w3


Where id = 2;
w4 Update t set id = 3 where id = 2;

2) Uncommited dependency (ketergantungan yg tidak


sukses/modifikasi sementara)
Masalah terjadi saat suatu transaksi membaca data dari transaksi
lain yg belum dicommit.

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 :

Transaksi A waktu Transaksi B

w1 Update t set dept_id=1;

Select * from t; w2

w3 rollback;

A mengubah uncommitted change saat w2, kehilangan saat w3,


dijelaskan dalam tabel di bawah ini :

Transaksi A waktu Transaksi B

w1 Update t set dept_id=1;

Update t set dept_id=11; w2

Universitas Esa Unggul


http://esaunggul.ac.id 3 / 16
`

w3 rollback;

3) Inconsistent analysis
Masalah terjadi saat satu transaksi membaca beberapa nilai
tetapi transaksi kedua pd waktu sama memodifikasi nilai tersebut.

Contoh : Analisis yang tidak Konsisten

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.

Universitas Esa Unggul


http://esaunggul.ac.id 4 / 16
`
b) Hanya satu transaksi dieksekusi pada satu waktu : satu transaksi
di-commit sebelum transaksi lain diperkenankan untuk mulai.
c) Transaksi dapat dilakukan pada sistem paralel, dengan cara
penjadualan bersama.

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.

Transaksi T1 dan T2 dijalankan secara berselang seling.


Penjadwalan berikut bukan penjadwalan serial, tetapi equivalent
dengan Jadwal 1. Baik di Skedul 1 dan 2 jumlah dari A dan B benar.

Universitas Esa Unggul


http://esaunggul.ac.id 5 / 16
`

Berikut adalah penjadwalan secara konkuren yang tidak


menghasilkan jumlah A dan B dengan benar.

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

Universitas Esa Unggul


http://esaunggul.ac.id 6 / 16
`
mengaksesnya, kecuali setelah kunci dibebaskan. Terdapat tiga jenis
mekanisme pesimistik yang bisa digunakan, yaitu locking, timestamp
(row-version), dan gabungan keduanya (hybrid). Metode pesimistik ini
menjamin perubahan data bisa dilaksanakan dengan aman.
Kekurangan metode ini terletak pada munculnya delay jika transaksi
berjalan lambat atau data hasil modifikasi transaksinya tidak segera
disimpan ke hardisk (commit).

b. Konkurensi optimistik: sinkronisasi transaksi ditunda hingga transaksi


selesai dieksekusi. Proses validasi data hanya dilakukan ketika
transaksi hendak menyimpan data secara permanen ke hardisk.
Terdapat dua jenis mekanisme optmistik: locking dan timestamp (row-
version). Dengan metode optimistik, sejumlah transaksi tetap bisa
dieksekusi bersamaan tanpa harus saling menunggu. Kekurangannya
terletak pada kemungkinan terjadinya tumpang tindih data, karena tidak
ada jaminan bahwa data yang dimodifikasi adalah data asli, belum
diubah oleh transaksi lainnya

3. DISTRIBUTED CONCURRENT PROCESSING


Pemrosesan Kokuren Pada Transaksi
ada dua transaksi konkuren, T1 dan T2, yang mengakses baris data yang
sama, maka transaksi bisa memilih di antara enam modus lock, yaitu:
1) EXCLUSIVE: Query masih diperbolehkan, sedangkan aktivitas lainnya
dilarang. Jika T1 sedang mengunci baris data X secara eksklusif, T2
diwajibkan untuk mengantri sampai T1 melepaskan kunci. Lock jenis ini
terutama dibutuhkan ketika hendak menghapus (drop) tabel.
2) ROW SHARE: Jika T1 sedang mengunci tabel dalam modus ini, T2 juga
diperbolehkan mengakses tabel tersebut asal bukan akses eksklusif.
3) ROW EXCLUSIVE: Hampir sama dengan Row Share, tetapi T2 juga
tidak boleh mengunci secara SHARE. Lock jenis ini secara otomatis
diberikan kepada transaksi yang hendak melakukan update, insert dan
delete.

Universitas Esa Unggul


http://esaunggul.ac.id 7 / 16
`
4) SHARE: T1 dan T2 bisa dieksekusi secara konkuren, tetapi keduaranya
tidak boleh memodifikasi tabel yang sedang dikunci. Lock ini digunakan
terutama untuk membuat indeks pada tabel.
5) SHARE ROW EXCLUSIVE: Jika T1 menggunakannya untuk melakukan
query data pada tabel, T2 juga diperbolehkan untuk melakukan hal yang
sama, tetapi T2 dilarang memodifikasi data atau mengunci dalam modus
SHARE

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.

Universitas Esa Unggul


http://esaunggul.ac.id 8 / 16
`

Urutan operasi sangat penting :


a) Jika 2 transaksi hanya melakukan operasi read data, maka tidak terjadi
konflik & urutan operasi tidak penting.
b) Jika 2 transaksi melakukan operasi read & write pada data yg berbeda,
maka tidak terjadi konflik & urutan operasi tidak penting
c) Jika satu transaksi melakukan operasi write data & yg lain melakukan
operasi read & write pada data yg sama, maka urutan eksekusi sangat
penting

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

Universitas Esa Unggul


http://esaunggul.ac.id 9 / 16
`
salah (bisa benar bila hasilnya sama dengan hasil penjadwalan serial).
Penjadwalan non-serial yang menghasilkan eksekusi yang benar disebut
conflict serializable

Konflik terjadi bila :


Ada dua operasi Oi dan Oj pada penjadwalan S dimana keduanya
mengakses data yang sama, dan Setidaknya ada satu operasi yang
melakukan write()

Dalam kasus dimana tidak terjadi konflik antar dua operasi, maka
dapat dilakukan swapping sehingga terbentuk penjadwalan baru S' yang
urutannya sama dengan penjadwalan serial.

Pada contoh tersebut swapping yang dapat dilakukan adalah :


Swap write(A) pada T1 dengan read(B) pada T0
Swap read(B) pada T0 dengan read(A) pada T1
Swap write(B) pada T0 dengan write(A) pada T1
Swap write(B) pada T0 dengan read(A) pada T1

Maka, akan didapat penjadwalan baru S' yang merupakan


penjadwalan serial. Penjadwalan demikian dinamakan conflict serializable,
sedangkan proses penyusunan penjadwalan baru yang serial disebut
serialisasi.

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.

Universitas Esa Unggul


http://esaunggul.ac.id 10 / 16
`
b) Untuk setiap item data Q, jika transaksi Ti menjalankan operasi read(Q)
di schedule S untuk nilai Q yang telah ditulis oleh transaksi Tj, maka hal
itu juga terjadi di schedule S’
c) Untuk setiap item data Q, jika transaksi Ti menjalankan operasi write(Q)
terakhir pada schedule S, maka transaksi Ti pada schedule S’ juga harus
menjalankan operasi write(Q) terakhir.

Identifikasi Transaksi dalam SQL


Pentingnya identifikasi adanya blok transaksi pada sekumpulan operasi
basis data, khususnya dalam melakukan perubahan isi basis data, maka
bahasa basis data (query language) mesti memiliki perintah (command) yang
berhubungan dengan blok transaksi.
Dalam bahasa SQL, awal transaksi diidentifikasikan secara implisit
(yang dimulai dari adanya perintah SQL), tetapi identifikasi akhir transaksi
harus dinyatakan secara eksplisit dengan menggunakan salah satu dari kedua
perintah berikut :
a) Commit Work atau Commit saja, berfungsi untuk mengubah
transaksi dari status berhasil sebagian (partially commited) ke
status berhasil sempurna (commited), sehingga transaksi
dianggap berakhir dan siap memulai transaksi yang baru.
b) Rollback Work atau Rollback saja, yang menyebabkan terjadinya
pembatalan transaksi (transaksi berpindah ke status batal /
aborted).

Pengendalian Konkurensi (Concurency Control)


Salah satu karakteristik dasar dari sebuah transaksi yang harus
dipenuhi adalah Isolasi, yang menjamin tereksekusinya semua transaksi pada
sebuah sistem konkuren dengan benar sehingga konsistensi basis data dapat
tetap terpelihara.
Sangatlah penting untuk mengendalikan interaksi antara transaksi-
transaksi yang sedang bersaing (konkuren), melalui sebuah mekanisme yang
disebut dengan mekanisme pengendalian konkuren (Concurency Control).

Universitas Esa Unggul


http://esaunggul.ac.id 11 / 16
`
Jenis Concurency-Control
a) Lock Based Protocol
Salah satu cara menjamin serializabiliy adalah dengan mensyaratkan
bahwa akses item-item data harus dilakukan dengan menerapkan
eksklusivitas. Artinya, selama sebuah transaksi sedang mengakses sebuah
item data, maka tidak ada transaksi lain yang boleh melakukan perubahan
terhadap item data tersebut. Metode yang umum digunakan untuk
mengimplementasikan hal ini adalah dengan kewajiban melakukan
penguncian pada suatu item data sebelum data tersebut diakses.

Mode Penguncian Dasar


 Bersama (Shared).
Jika sebuah transaksi Ti dapat melakukan penguncian dengan mode
ini (dilambangkan dengan S) terhadap item data Q, maka Tj dapat membaca,
tapi tidak dapat mengubah nilai Q tersebut.

 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.

Setiap transaksi harus mengajukan permintaan penguncian (locking)


dengan mode tertentu terhadap data Q, sesuai jenis operasi yang akan
dilakukan transaksi. Permintaan ini akan dilayani oleh modul Concurency-
Control dalam sebuah DBMS.
Transaksi tersebut baru dapat melanjutkan/mengerjakan operasi
terhadap item data Q tersebut, jika modul ini telah menyerahkan hak
penguncian terhadap item data Q kepada transaksi tersebut.

X S

X N N Y

S N Y Y

Y Y Y

Universitas Esa Unggul


http://esaunggul.ac.id 12 / 16
`
Contoh Lock Based Protocol
Dua buah transaksi T1 dan T2 . T1 berfungsi melakukan pentransferan dana
dari rekening B ke rekening A sebesar Rp. 100.000,-. Dengan menyertakan
perintah-perintah penguncian, maka operasi dalam transaksi T1 dapat kita
sajikan sbb :

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)

Transaksi T2 hanya menampilkan total saldo dari kedua rekening tersebut, A


dan B kita nyatakan :
T2 : lock-S(A)
read(A)
unlock(A)
lock-S(B)
read(B)
write(B)
display (A+B)

Schedule di atas menunjukkan aksi-aksi dan juga dilaksanakan oleh


kedua transaksi tsb dan juga titik dimana hak penguncian diberikan oleh
modul Concurency Control dalam DBMS.
Schedule konkuren di atas menghasilkan informasi yang tidak akurat,
maka kita akan melakukan perubahan pada letak perintah pelepasan
penguncian (unlock) dengan menundanya hingga akhir transaksi.

Universitas Esa Unggul


http://esaunggul.ac.id 13 / 16
`
Transaksinya menjadi T3 dan T4
T3 : lock-X(B)
read(B)
B ← B – 100000
write(B)
Lock-X(A)
read(A)
A ← A + 100000
write (A)
unlock (B)
unlock (A)
T4 : lock-S (A)
read (A)
lock-S (B)
read (B)
write (B)
unlock (A)
unlock (B)
display (A+B)

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.

Time stamp dapat berupa :


1) Waktu sistem saat transaksi dimulai,
2) Penghitung logik (logical counter) yang terus bertambah nilainya tiap kali
terjadi transaksi baru.

Universitas Esa Unggul


http://esaunggul.ac.id 14 / 16
`
Contoh Time Stamping :
Misal rekaman pada basis data memuat TS 168, yang
mengidentifikasikan transaksi dengn TS 168 adalah transaksi yang
terkemudian yang sukses mengupdate rekaman yang bersangkutan. Maka
jika ada transaksi dengan TS 170 mencoba mengupdate rekaman yang sama,
maka update ini akan diijinkan, karena TS yang dimiliki lebih kemudian dari
TS pada rekaman. Saat transaksi ini dilakukan, TS pada rekaman akan diatur
menjadi 170. Sekarang, jika transaksi yang akan mengupdate rekaman
tersebut memiliki TS 165, maka update ditolak karena TS-nya < TS di
rekaman.
Selain transaksi, item data juga memiliki nilai time stamp. Untuk setiap
item data Q, ada 2 nilai time stamp, 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).

Universitas Esa Unggul


http://esaunggul.ac.id 15 / 16

Anda mungkin juga menyukai