• Tidak ada hasil yang ditemukan

Perbaikan dan evaluasi kinerja algoritma read-commit order concurrency control (ROCC)

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perbaikan dan evaluasi kinerja algoritma read-commit order concurrency control (ROCC)"

Copied!
142
0
0

Teks penuh

(1)

I * d

- .

,

PERBAIKAN DAN EVALUASI KINERJA ALGORITMA

READ-COMMIT ORDER CONCURRENCY CONTROL

(ROCC)

S U L A S N O

PROGRAM PASCASARJANA

TNSTITUT PERTANIAN BOGOR

BOGOR

(2)

1

SURAT PERNYATAAN

Dengan ini menyatakan bahwa tesis saya yang berjudul

:

Perbaikan dan Evalusi

Kinerja Algoritma

Rend-commit Order Concurrency Control

(ROCC) adalah

merupakan hasil karya saya sendiri dan belum pernah dipublikasikan. Sumber

informasi yang berasal atau dikutip dari karya yang diterbitkan maupuil tidak

diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam

daftar pustaka di bagian akhir tesis ini.

(3)

ABSTRAK

SULASNO. Perbaikan dan Evaluasi Kinerja Algoritma

Read-comnzit Order

Concurrency Control

(ROCC).

Dibiinbing ole11 FAHREN BUKHAFU dan KUDANG

BORO SEMINAR.

Concurrency control

(CC)

inerupakan suatu mekanisme untuk mengatur eksekusi

transaksi-transaksi yang terjadi dalam basis data.

CC

pada produk komersial

menggunakan

Strict Two Phase Locking

(Strict 2PL). Strict 2PL

masih mempunyai

masalah yang disebut dengan

deadlock.

Read-com~izit Order Concunency Control

(ROCC)

merupakan suatu

CC

baru

yang diharapkan dapat ~nemberikan

kinerja yang tinggi dan memperbaharui

CC

yang

telah ada. Namun

ROCC

yang telah dikembangkan masih terdzpat kelemahan

terutama yang berkaitan dengan masih terdapatnya

restart

terhadap eksekusi

transaksi yang bersifat

seriulizable.

Untuk itu pada penelitian ini, teIah dilakukan

perbaikan algoritma

ROCC (ROCCM),

serta evaluasi kinerja algoritma

ROCC,

ROCCM

dan

Strict ZPL,

melalui simulasi.

Hasil simulasi memperlihatkan bahwa

ROCCM,

mempunyai

throughput

yang

lebih baik, bila dibandingkan dengan

ROCC

dan

Strict

2PL.

Melalui perbaikan

algoritma validasi

intervening

yang terdapat pada

ROCC,

inaka dihasilkan algoritma

ROCCM

yang mempunyai kinerja lebih baik.

(4)

ABSTRACT

SULASNO. Revision and evaluation of performance Read-commit Order

Concurrency Control

(ROCC)

algorithm. Supervised by FAHREN BUKHARI and

KUDANG BORO SEMINAR.

Concurrency control

(CC)

is

a

mechanism to manage simultaneous operations on

a database. The commercial databases use Strict Two Phase Locking (Strict

2PL) CC

to maintain execution correctness. Unfortunately Strict

2PL

cannot meet a very high

performance of a database system, due to Strict

2PL

thrashing behavior caused by

blocking.

The Read-commit Order Concurrency Control

(ROCC)

is a new method of

CC

for high performance database systems. Unfortunately

ROCC

that has been

developed still has weakness, it has a restart for serializable execution. Modified

ROCC (ROCCM)

is done by reengineering validation algorithm to minimize restart

to increase throughput.

The performance of

ROCC, ROCCM,

and Strict

2PL

is analized by a

simulation program. Our simulation result shows that

ROCCM

produces much

higher system throughput compared with

ROCC,

and Strict

2PL.

(5)

OHak cipta milik Sulasno, tahun 2006

Hak cipta dilindungi

Dilarang rnengutip dun menzperbanyak tanpa ijin tertulis dari

Institut Perlanian Bogor, sebigian atau seluruhnya dalam

(6)

v

PERBAIKAN DAN EVALUASI KINERJA ALGORITMA

READ-COMMIT ORDER CONCURRENCY CONTROL

(ROCC)

S U L A S N O

Tesis

Sebagai salah satu syarat untuk memperoleh gelar

Magister Sains pada

Program Studi Ilmu Komputer

PROGRAM PASCASARJANA

INSTITUT PERTANIAN BOGOR

BOGOR

(7)

Judul

Nama

NIM

:

Perbaikan dan Evaluasi Kinerja Algoritma

Rearl-comnzit Order Coitcr~rrency

Control

(ROCC)

: S u l a s n o

:

G651024074

Ir. Fahren Bukhari, M.Sc.

Ketua

Disetujui,

Konlisi Pembimbing

Anggota

Diketahui,

frida Manuwoto, M.Sc.

(8)

vii

PRAKATA

Puji dan Syukur Penulis panjatkan ke Hadirat Allah SWT atas segala karunia-Nya

sehingga karya ilmiah ini berhasil diselesaikan. Tema yang dipilih dalam penelitian

yang dilaksanakan sejak bulan Agustus 2004 ini ialah algoritma

concurrency control

dengan judul

:

"Perbaikan dan Evaluasi Kineja Algoritma

Read-commit Order

Concurrency Control (ROCC)".

Terima kasih penulis ucapkan kepada Bapak Ir. Fahren Bukhari, M.Sc. dan Bapak

Dr. Ir. Kudang Boro Seminar, M.Sc. yang telah banyak memberi saran. Disamping itu

penghargaan disampaikan kepada seluruh staf Bidang Sistem dan Jaringan Komputer,

Pusat Pengembangan Informatika Nuklir, Badan Tenaga Nuklir Nasional Jakarta,

yang telah banyak memberikan semangat dalam melakukan penelitian ini.

Ucapan terima kasih juga disampaikan kepada rekan-rekan mahasiswa program

pascasarjana ilmu komputer IPB, terutama angkatan kedua yang telah memberikan

kerjasama yang baik selama mengikuti kuliah sampai dengan penyusunan tesis ini.

Akhirnya ucapan teriina kasih disampaikan kepada istri tercinta dan putralputriku atas

segala doa dan dukungannya.

Semoga karya ilmiah ini bermanfaat.

Bogor, Pebruari 2006

(9)

DAFTAR

RIWAYAT HIDUP

Penulis dilahirkan di Kebumen Jawa Tengah pada tanggal 20 Mei 1967 sebagai

anak ke empat dari pasangan Amad Kasim dan Ibu Khosiyah (Alm). Pendidikan

Sarjana ditempuh dari Jurusan Teknik Informatika Universitas Budi L u h u Jakarta,

lulus pada tahun 1996. Kesempatan untuk n~elanjutkan program Pascasarjana pada

program studi Ilmu Kon~puter,

FMIPA, IPB, diperoleh pada tahun 2002 dengan biaya

sendiri.

Penulis bekerja di Pusat Pengembangan Informatika Nuklir, Badan Tenaga Nuklir

Nasional (BATAN) Jakarta sejak tahun 1990. Tanggung jawab yang dipegang

(10)

DAFTAR IS1

Halaman

DAFTAR TABEL

...

xi

DAFTAR GAMBAR

...

xii

...

DAFTAR LAMPIRAN

...

xu1

I

.

PENDAHULUAN

...

1

...

I

.

1

.

Latar Belakang

. .

1.2

Tujuan Penelltian

...

2

1.3. Ruang Linglup

...

2

...

I1

.

TINJAUAN PUSTAKA

11.1. Basis Data dan

Dalabase Manageirzent System

(DBMS)

...

...

11.2. Sistem Basis Data

...

113

.

Transaksi

.

. ...

11.4.

Serializabzlzly

...

11.5.

Conczrrrency Conll.01

(CC)

...

IL6

.

Two Phase Locking

(2PL)

...

11.7.

Strict Two Phase Locking

(Strict 2PL)

...

11.8.

Read-conznzit Order Concurrel~cy

Control

(ROCC)

111

.

METODE PENELITIAN

...

15

111.1. Metode Perbaikan Algoritma

ROCC

...

15

(11)

IV. HASIL DAN PEMBAHASAN..

...

IV.1. Algoritina

ROCCM..

...

,.

...

...

IV.2. Pelaltsailaan Simulasi..

.

.

IV.3. I-Ias~l S~~uulasi.

...

...

IV.4. Evaluasi Kineqja Algorit~na

...

V. KESIMPULAN

...

V.

1.

Kesimpula~.

...

V.2. Saran

(12)

DAFTAR TABEL

Halaman

Tabel

1

.

Ko~npatibilitas

modus

lock

...

7

Tabel 2

.

Parameter-parameter input simulasi

...

16

Tabel

3

.

Nilai parameter input default pada pelaksanaan simulasi

...

26

[image:12.539.51.481.40.732.2]
(13)
[image:13.539.44.483.64.748.2]

DAFTAR GAMBAR

...

Gambar 1

.

Komponen sistenl basis data terpusat

Gambar 2

.

Contoh eksekusi transaksi secara serial

...

Gainbar 3

.

Coiltoh eksekusi transaksi secara

seriulizable

...

Ganlbar

4

.

Grafik

Strict 2PL

...

Gambar 5

.

Contoh eksekusi transaksi pada

Strict 2PL

...

Gainbar 6

.

Contoh deadlockpada

Strict 2PL

...

Gambar

7

.

Format elen~en

RC-queue

...

Ga~nbar

8

.

RC-queue

pada

ROCC

...

Gan~bar

9

.

Komponen

ROCC

...

Ganlbar 10

.

RC-queue

dengan eksekusi

serializuble

pada

ROCC

...

Gambar 11

.

Acyclic

SG

...

Gambar 12

.

RC-queue

pada algoritma

ROCCM

...

Gambar 13

.

Model

logical queuing

untuk

ROCC

dan

ROCCM

pada

simulator

...

...

Gambar 14

.

Model

logical queuing

untuk

Strict 2PL

pada simulator

. .

(14)

DAFTAR LAMPIRAN

Halaman

La~npiran

1

.

Hasil uji

t-student

perbedaan

throughput

algoritma

ROCC

dan

ROCCM

...

32

Lanlpiran 2

.

Listing

program roccm.cpp

...

33

La~llpiran

3

.

Listing

program roccn1.h

...

47

Latnpiran 4

.

Listing

program rocc.cpp

...

49

(15)

1.1. L a t a r Belakang

Transaksi dalam suatu sistem basis data merupakan sekumpulan operasi

read

dan

write.

Operasi

read

digunakan untuk membaca data, sedangkan

write

merupakan operasi menulis atau mengubah data. Pada basis data dengan

pengguna tunggal

(single tlser),

eksekusi transaksi dapat dilakukan tanpa ada

gangguan dari pengguna lain. Na~nun

pada basis data dengan pengguna banyak

(iizulti-user),

transaksi harus dapat dieksekusi secara bersamaan dan konflik antar

transaksi yang terjadi harus dapat diatasi. Konflik antar transaksi terjadi jika dua

atau lebih transaksi mangakses item data yang sama, dan paling sedikit satu dari

operasi transaksi tersebut adalah operasi

write.

Concurrency control (CC)

merupakan suatu mekanisme untuk mengatur

eksekusi transaksi-transaksi yang terjadi dalam basis data (Connoly

et al. 2002).

Secara umum mekanisme

CC

dibagi ~nenjadi

2

jenis yaitu

optimistic

dan

pessinzistic

(Ozsu

&

Valduriez

1999). Optiiizistic

~nengasumsikan

bahwa konflik

antar transaksi jarang terjadi, sehingga mengijinkan transaksi-transaksi yang

datang dapat langsung diproses tanpa harus nienunggu validasi terlebih dahulu.

Pessinzistic

mengasumsikan bahwa konflik antar transaksi sering terjadi, karena

itu setiap transaksi harus melalui validasi terlebih dahulu. Dengan adanya

CC,

diharapkan eksekusi transaksi-transaksi yang ada dalam basis data dapat dikelola,

sehingga konsistensi basis data dapat tetap terjaga.

Menurut Shi dan Perrizo

(2004), CC

yang telah banyak digunakan pada produk

komersial adalah

Two Phase Locking (2PL). 2PL

merupakan jenis

CC

yang

pessinzistic.

Pada

2PL

setiap transaksi harus mendapatkan kunci

(lock)

untuk item

data yang ingin diakses, dan melepas kembali kunci tersebut apabila transaksi

selesai dilakukan. Dengan demikian sebuah item data tidak dapat diakses oleh

suatu transaksi, jika item data tersebut telah dikunci oleh transaksi lain. Salah satu

jenis dari

2PL

yang telah banyak digunakan adalab

Stricf Two Phase Locking

(Strict

2PL).

Pada Strict

2PL

setiap transaksi harus mendapatkan kunci dari item

data yang ingin diakses, dan pelepasan kembali semua kunci dilakukan secara

(16)

2

dilakukan. Pada Strict

2PL

masih terdapat masalah yang disebut dengan

deadlock

yaitu suatu kondisi yang terjadi jika ada dua atau lebih transaksi saling

menunggu dan saling memblokir.

Shi dan Perrizo (2004), telah mengembangkan C C

optinzistic

baru yaitu

Read-

conzmit Order Concurrency Control

(ROCC) yang diharapkan dapat

memperbaharui C C yang telah ada. Namun R O C C yang telah dikembangkan

masih terdapat kelemahan terutama yang berkaitan dengan masih terdapatnya

restart

(eksekusi transaksi yang dihentikan untuk kemudian diproses ulang)

terhadap eksekusi transaksi yang bersifat

serializable.

Untuk itu maka pada

penelitian ini, akan dilakukan perbaikan algoritma ROCC, serta evaluasi kinerja

algorittna ROCC, R O C C yang telah diperbaiki (ROCCM), dan Strict

2PL

melalui simulasi

1.2.

Tujuan Penelitian

Penelitian ini bertujuan untuk melakukan perbaikan algoritma ROCC, serta

melakukan evaluasi kinerja. Evaluasi kinerja dilakukan terhadap algoritma

ROCCM, algoritma ROCC, maupun algoritma yang telah banyak dipakai pada

produk komersial yaitu Strict

2PL.

Evaluasi kinerja dilakukan melalui simulator

yang diterapkan pada basis data terpusat. Hal tersebut disesuaikan dengan

karakteristik algoritma yang lebih cocok diaplikasikan pada basis data terpusat.

1.3.

Ruang lingkup

Penelitian perbaikan algoritma ROCC, hanya dilakukan terhadap masalah

reslart,

yaitu masih terdapatnya masalah tersebut yang seharusnya tidak dilakukan

terhadap eksekusi

serializable.

Disamping itu evaluasi kinerja, hanya dilakukan

melalui pemodelan simulasi pada basis data terpusat. Berdasar hasil sitnulasi,

(17)

11.

TINJAUAN

PUSTAKA

11.1.

Basis Data dan Database Mariagentetzf Systet~i

(DBMS)

Menurut Elmasri dan Navathe

(2000),

Basis data adalah kumpulan data yang

saling berhubungan, sedangkan database tnanagentent systenzs (DBMS) adalah

suatu kumpulan dari program-program yang memungkinkan para pengguna untuk

membuat dan mengelola sebuah basis data. Oleh karena itu, DBMS merupakan

perangkat lunak sistem yang memberikan fasilitas pendefinisian (dehing),

pengkontruksian (constructing), pemanipulasian (manipulating) basis data untuk

berbagai aplikasi basis data.

Pendefinisian basis data memerlukan tipe data, struktur dan batasan-batasan

untuk sebuah data yang akan disimpan dalam basis data. Pengkonstruksian basis

data adalah proses penyi~npanan

data pada media penyimpanan yang dikendalikan

oleh DBMS. Pemanipulasian basis data diantaranya berisi fungsi-fungsi seperti

querying pada sebuah basis data untuk mengakses ulang data, update basis data,

dan membuat laporan-laporan (reports) dari suatu data.

11.2.

Sistem Basis data

Menurut Bernstein el al. (1987), sistem basis data (database system, DBS)

adalah sekumpulan modul hardware dan sofhoare yang mendukung perintah-

perintah untuk mengakses basis data. Perintah-perintah untuk mengakses basis

data meliputi read dan write. Operator read (r(x)) lnerupakan perintah untuk

mengakses item data

x,

sedangkan write (iv(x))

merupakan perintah untuk

~nengubah

nilai item data

x.

DBS harus mendukung operasi-operasi transaksi yaitu: start, comn~it, dan

abort. Start adalah permulaan eksekusi suatu transaksi baru. Berhentinya suatu

transaksi ditandai dengan operasi corntnit atau abort. Operasi comnzit

mengindikasikan bahwa suatu transaksi berhasil dieksekusi sampai selesai,

sedangkan abort menunjukkaan bahwa suatu transaksi tidak berhasil dieksekusi

sa~npai

selesai, dan semua operasi yang sudah dieksekusi akan dibatalkan (undo).

Menurut Bernstein et

al.

(1987), sebuah DBS berisi empat komponen yaitu

:
(18)

4

manager

(CM).

Model DBS pada basis data terpusat diperlihatkan pada

Gainbar

1. Pada Gambar 1,

TM

berguna untuk menerirna permintaan operasi

basis data dan operasi transaksi yang kemudian akan disampaikan kepada

SC,

sedangkan

SC

adalah kutilpulan program yang mengendalikan eksekusi transaksi-

transaksi secara

concurrent.

SC

harus bisa mengeksekusi transaksi-transaksi

secara

serializable.

RM

bertanggung jawab untuk menjamin semua isi basis data

adalah merupakan efek dari transaksi yang telah

contnzil

bukan dari efek pada

transaksi yang mengalami

abort.

CM berguna untuk mengatur perpindahan data

antara memori dan media penyimpanan

(disk).

Tra,wocrio,? h4anager (TM)

+

Cacite Atorroger (CM)

=

Se/>ad?der I (SC)

I

Data hfa,o,rager

Dotobose (DB)

Recovery illo,ioger (RM)

Gambar

1

Komponen sistem basis data terpusat (Bernstein

et al. 1987).

(DM)

11.3. Transaksi

Menurut Bernstein

et a1.(1987)

transaksi dalaln basis data merupakan eksekusi

dari satu atau lebih program untuk mengakses atau melakukan perubahan basis

data, termasuk di dalamnya operasi basis data

(readswrite)

dan operasi transaksi

(start, conznzit, abort).

Menurut Connoly dan Beg (2002) suatu transaksi memiliki

empat karakteristik yaitu

:

1.

Atornic

Jika operasi dari transaksi dalam basis data berhasil dieksekusi semuanya,

(19)

permanen, tetapi sebaliknya bila terdapat kegagalan pada salah satu

operasi yang terjadi, lnaka semua perubahan yang ada pada basis data akan

dibatalkan.

2. Consistensy

Transaksi yang telah dilakukan, harus menjaga basis data tetap dalaln

kondisi konsisten.

3.

Independency

Setiap transaksi harus bersifat

independent

dan tidak boleh saling

mempengaruhi.

4. Durability

Perubahan yang berhasil dilakukan oleh sebuah transaksi harus dapat

disi~npan

secara permanen dalam basis data.

Empat Karakteristik tersebut disingkat dengan ACID

11.4. Serializabilily

Menurut Bernstein

er al.

(I987), ketika dua atau lebih transaksi yang

dieksekusi secara

coiiczrrrent,

maka dapat mengakibatkan transaksi satu

mernpengaruhi transaksi lainnya. Hal ini dapat menimbulkan basis data tidak

konsisten.

Salah sat11 cara untuk menghindari ha1 tersebut di atas, maka transaksi-

transaksi tersebut harus dieksekusi setara dengan serial. Sebuah eksekusi

dikatakan serial, jika untuk setiap transaksi, seluruh operasi dari transaksi yang

sama, dieksekusi sebelum operasi dari transaksi yang lain. Dalam pandangan

pengguna

(user)

eksekusi serial dipandang sebagai operasi transaksi yang diproses

oleh

DBS

secara

aton~ic.

Proses eksekusi dikatakan

serializable

apabila

menghasilkan keluaran yang salna dan mempunyai efek yang sama pada basis

data, jika

transaksi-transaksi-tersebut dieksekusi secara serial. Gambar 2 di bawah

ini, memperlihatkan contoh eksekusi transaksi, yang dilakukan secara serial.

Gambar

3

memperIihatkan contoh eksekusi transaksi yang dilakukan secara

serializable.

Dari Galnbar

2,

terlihat bahwa pada eksekusi serial, transaksi

dieksekusi satu per satu. Dengan de~nikian

transaksi tersebut tidak akan tumpang

(20)

akhir seperti pada eksekusi yang dilakukan secara serial walaupun transkasi

T,

dan

T2

dieksekusi secara bersalnaan (concurrent)

Gambar 2 Contoh eksekusi transaksi setara serial.

Garnbar

3

Contoh eksekusi transaksi se.cara serializable

Concurrency

control

(CC)

rnerupakan

suatu

aktivitas

untuk

mengkoordinasikan proses-proses dala~n

mengakses atau melakukan perubahan

pada basis data yang beroperasi secara bersamaan (Bernstein el 01.

1987). Ozsu

(21)

optinzistic.

Pada

optir~zisfic

transaksi-transaksi yang datang dapat langsung

diproses tanpa harus menunggu validasi terlebil~

dahulu, yang mempunyai urutan

operasinya adalah

read, conrptcte, validate, write. Padapessinzistic

setiap transaksi

yang akan melakukan akses basis data harus melalui proses validasi terlebih

dahulu, sehingga urutan operasinya adalah

validate, read, conzpute,

dan

write.

11.6.

Two Plzuse Locking

(2PL)

Two Plrusc Locking

(2PL)

merupakan jenis

CC

yang

pessi?~zistic.

Pada

CC

jenis

irli mekanisme perolehan

lock

dan pelepasan

lock (unlock)

untuk suatu item

data dilakukan dalam dua tahap yaitu

:

1.

Growing phase

:

Suatu transaksi boleh mendapatkan

lock

tetapi tidak

boleh rnelepaskan

lock

yang telah diperoleh.

2. Shringking phase

:

Suatu transaksi boleh melepas

lock

tetapi tidak

diperbolehkan rnelakukan permintaan

lock

baru

Pada saat permulaan eksekusi, suatu transaksi berada dalam

growing phase

Tetapi pada saat transaksi mulai melepas

lock,

maka transaksi tersebut berada

dalam

shringkingphase.

Terdapat dua macam modus

lock

yaitu

:

1.

Shared lock (read lock)

:

lock

yang diberikan pada transaksi yang

melakukan operasi readterhadap item data dalam basis data.

2.

Exclusive lock (write lock)

:

lock

yang diberikan pada transaksi yang

melakukan operasi

write

terhadap item data dalam basis data.

Dua modus

lock

tersebut kompatibel apabila dua atau lebih transaksi bisa

mendapatkan

lock

dari item data yang sama dalam waktu yang bersamaan. Jika

modus

lock

yang diinginkan oleh suatu transaksi tidak kompatibel maka transaksi

tersebut harus menunggu sampai

lock

tersebut dilepas. Tabel

1 di bawah ini

mernperlihatkan kompatibilitas setiap modus

lock

(22)

8

11.7. Strict Two Pliuse Loclritzg

(Strict

2PL)

Strict

2PL

merupakan

CC

yang menggunakan mekanisme

lock,

yang banyak

dipakai pada produk komersial. Menurut Elmasri dan Navathe

(2000),

pada

mekanisme

CC

menggunakan cara ini, suatu transaksi selama eksekusi akan

nlelakukan permintaan

lock

suatu item data; dan mengakses atau memodifikasi

data. Hal ini dilakukan berulang-ulang sampai akses atau modifikasi suatu item

data selesai dilakukan pada suatu transaksi.

Pada akhir eksekusi, transaksi

melepas selnua

lock

untuk semua item data secara bersamaan. Grafik Strict

2PL

diperlihatkan pada Gambar 4. Dari Gambar 4 dapat dijelaskan bahwa

release

adalah pelepasan

lock

untuk suatu item data,

locking

adalah permintaan

lock

untuk

suatu item data,

execution

adalah operasi pada basis data

(read

atau

write)

Locking

4

Gambar 4 Grafik Strict

2PL

(Elmasri

&

Navathe

2000).

Jika suatu transaksi tidak mendapatkan

lock

suatu item data, pada saat permintaan

lock,

maka transaksi tersebut akan menunggu

(blocked)

sampai item data tersebut

bebas dari

lock.

Gambar 5 memperlihatkan eksekusi transaksi menggunakan

CC

ini. Dari

Gambar tersebut dapat dijelaskan bahwa transaksi

TI

akan melepas semua

Iock

setelah eksekusi operasi dari transaksi telah diselesaikan semua. Selama

lock

suatu item data belum dilepas oleh

TI

maka apabila

Tz

membutuhkan

Iock

suatu

item data, harus menunggu. Pada Strict

2PL

bisa terjadi

deadlock,

karena suatu

transaksi masih memegang

lock

suatu item data, setelah proses modifikasi telah

(23)

Lock (A) Read (A)

- .~

rr'?;le (A)

rvr;re (B) Unlock (A)

U!rloc!@)

Lock (C) Read(C) C:=C+2

IWire (C)

Lock(A) R#od/A) A:=A+Z

[image:23.544.173.384.59.222.2]

r m e (A) Unlock (C) U,ilock(A)

Gambar

5

Contoh eksekusi transaksi pada

Strict 2PL.

Wuklu

r,

T:

I

Lock (A)

Lock (8)

Read (A)

Read (B) A:=A+lOO

B:=B+lOO

r%.;1e (4

IWire (B) Lock (B) D i b l a k o l e h T:

Lock (A) Diblak oleln T,

Gambar

6

Contoh

deadlock

pada

Strict 2PL.

Dari Gambar

6

dapat dijelaskan bahwa, transaksi

T,

dan transaksi

T 2

tidak

dapat diproses, karena masing-masing saling menunggu salah satu dari dua

transaksi tersebut untuk melepas

lock.

Dalam situasi seperti ini salah satu dari dua

transaksi yang ada

(TI

atau

T2

)

harus dipaksa untuk melepas

lock.

Jika

T,

yang

melepas

lock

maka transaksi ini harus melakukan

roll-back

dan memulai operasi

transaksi baru.

11.8.

Read-cor~mzit Order Concurrericy Coriirol

(ROCC)

ROCC

merupakan jenis

CC

yang

optitnistic.

Pada

ROCC,

suatu transaksi

boleh mengiri~n

lebih dari satu

access reguest message

( A R M )

yang berisi satu

(24)

10

baru yang berhubungan dengan inforinasi dari

request n~essage

tersebut, akan

dibangkitkan dalam

RC-quezce.

RC-qtrezre

mempunyai elemen yang terdiri dari

tujuhfield

yaitu

:

Tid, validated

(V),

conzmit (C), restart (R), rend, write,

dan

next,

yang diperlihatkan pada

Gambar 7.

Tid

berisi

id

dari transaksi.

Read

berisi nilai itein data yang dibaca.

Write

berisi nilai itein data yang ditulis.

ValidatedJeld

bernilai satu jika suatu

transaksi tidak memerlukan validasi atau telah sukses dari proses validasi, dan

bernilai 0 jika suatu transaksi inemerlukan proses validasi atau belum dilakukan

validasi. Jika

cortznzitjield

bernilai

1,

mengindikasikan bahwa

request message

tersebut bertipe

coi~zmit,

dan bernilai 0 jika

reqzcest rizessage

tersebut bukan

bertipe

conzi1tit. Restart Jeld

akan bernilai

1 ,

jika transaksi tersebut merupakan

transaksi yang mengalami

restart,

dan bernilai 0 jika transaksi tersebut bukan atau

belum mengalami

restart. Nextpointer

akan menunjuk ke eletnen berikutnya yang

merepresentasikan bahwa elemen tersebut datang sebelumnya.

Pointer

pada-

elemen yang datang pertama kali di set ke

NULL. RC-quezre

adalah struktur data

yang digunakan oleh

ROCC

untuk melakukan validasi.

I ~ i d

IV

IC

k

keuds I ~ r i t e s

1

Next

I

Ga~nbar

7

Format elemen

RC-quezte

(Shi

&

Perrizo 2004).

11.8.1.

Algoritma validasi

intervenitzg

Proses validasi pada algoritma ROCC dimulai ketika ada

request message

yang datang bertipe

conznzit.

Proses penelusuran untuk mencari elemen yang

operasinya konflik pada

queue,

dimulai dari elemen

read

pertarna dari transaksi

yang sedang dilakukan validasi

("First'?

yang dibandingkan dengan elernen lain

yang terletak diantara

"First"

sampai elemen dari transaksi yang sama berikutnya

first-down reached element).

Apabila penelusuran dari elemen

"First"

tidak menemukan operasi elemen

yang konflik

(read-write, write-read, write-write),

sampai diternukanfilst-down

reached element,

maka

"First"

akan digabungkan dengan

first-down reached

(25)

I

I

Jikafirst-down reached elen~ent

yang ditemukan adalah elemen co~nt~zit

dari

transaksi yang salna, illaka proses validasi dianggap sukses. Tetapi apabila yang

ditemukan bukan elemen cotiltt~it dari transaksi yang sama, maka proses

penelusuran dilakukan terus untuk inenemukan elemen yang operasinya konflik

sampai ditetnukanfirst-down reached elenlent berikutnya.

Apabila penelusuran dari elemen "First" menemukan operasi elelnen yang

konflik, ~ n a k a "First" dipindahkan ke posisi sebelum elemen dari transaksi lain

yang konflik, kemudian "First" yang asli akan dihapus dari RC-queue.

Proses penelusuran selanjutnya dimulai dari elemen comtnit, untuk mencari

elemen dari transaksi lain yang operasinya konflik dengan elemen conznzit

("Second'? sampai ditemukan elemen dari transaksi yang sama @-st-up reached

elernent). Apabila pada saat penelusuran dari "Second" tidak inenemukan elemen

yang konflik sampai ditemukanfirst-zrp reached element, maka "Second" akan

digabungkan dengan first-tip reached elentent. Gabungan kedua elemen tersebut

dianggap sabagai "Second" yang baru. Apabilafirst-up reached eletneprt adalah

"First" maka proses validasi dianggap sukses. Tetapi jika bukan "First", maka

"Second' akan dibandingkan terus sampai menemukanfirst-up reached elernent

berikutnya. Apabila pada saat penelusuran ditemukan operasi elemen yang konflik

maka proses validasi dianggap gagal.

Jika suatu transaksi gagal dalam proses validasi, maka transaksi tersebut akan

dilakukan restart. Scheduler akan menghapus semua elemen dari transaksi

tersebut. Setelah itu akan dibangkitkan sebuah restart eletnent dan menempatkan

di dalam RC-qrtezce. Restart elerttent terdiri dari seinua item data yang akan dibaca

(read) dan semua item data yang akan diubah (write) oleh transaksi yang

mengalami kegagalan dalam proses validasi.

Pseudocode algoritma validasi intervening pada

ROCC,

diuraikan dalam

penjelasan di bawah ini (Shi

&

Perrizo 2004). Sebagai inisial "First"

=

NULL,

dan"Second"

=

NULL.

Algoritma tersebut akan dieksekusi apabila request

niessage yang datang bertipe commit. Setelah pseztdocode algoritma validasi

intervening, di bawah algoritma tersebut, diilustrasikan implementasinya pada

RC-queue yang diperlihatkan pada Gambar

8.

Ilustrasi implementasi algoritma

(26)

karena pada saat penelusuran ditemukan operasi elemen yang konflik baik dari

elemen

"First"

maupun dari elemen

conzntit.

"First"

=

XULL; "Second" =NULL;

Locate the transaction'sfirst read eleinent in the RC-quezre;

Iffnot fotmd, return validated =true;

"First"

=

the first read ele~lient;

While

(I)

{

Coinpare "First" with aN the elenzents of other transaction behind it until it

reached all elenzent of the sanie transaction first-down-reached eleinent);

If (There is no eleilzent conflict) //inoving doion to look for upper side

conflict

{

Merge the "First" element with the first-down-reached eleniet;

Rei~tove the "First" elenzent front the RC-Queue;

I f f

Thejirst-down-reached elentent is the coinniit elentent)

Return validated

=

true;

Else "First"

=

the

first-do~vn-reached-eletnent;

J

Else

i/

There is uper-sided-conflict;

.

{

Insert "First" into the RC-queue right before the conflicting element;

Remove the original "First"fi.0111

the RC-qzteue;

"Second"

=

Collznzit element;

While

(I)

//i~zoving up to look for the lower-sided conflict;

{Co~npare "Second" with all the elenzent of other trunsactions before it

zrntil it reaches an ele~i~ent

of the saine transaction

first-trp-reached elenzent);

If(there is no eleinent conflict)

{Merge the "Second" elelllent to the first-up-reached elenzent;

Renzove tile "Secoiid"elen~ent

from the RC-queue;

I f (the first-up-reched elelltent is the first)

Return validated=trzre;

Else "Second"

=

first-up-reached eleilzent;

I

Else //there is also Lower-sided-conflict, the validation fails.

{Remove all elentents of the transaction front the RC-queue

Retzrrn validated= false;

I

Pada Gambar

8

diperlihatkan keadaan

RC-queue

dengan empat transaksi yang

terdapat pada

quezre.

Transaksi yang terdapat pada urutan pertama adalah

TI

yang

mengirim

readreqzrest

untuk melnbaca objekx,

y,

z,

(rib), rib), rie)).

Kemudian

(27)

read

untuk item data

v

(rz(v)),

operasi

read

untuk item data

z i

(r2(u)),

dan

operasi

write

untuk item data

x

'vz(x)),

berikutnya adalah transaksi

T3

juga telah

sukses dilakukan validasi dengan operasi

read

ontuk item data

z (r3(z)),

operasi

read

untuk item data

Z L

(r3(u)),

dan operasi

write

untuk item data v

(w3(*.

Akhirnya

TI

mengirirn

cottititit request

untuk mengubah item data

z

yaitu

wIk).

Langkah melakukan validasi pada

RC-queue

Gambar

8,

dimulai dari bagian atas

(front)

yaitu dengan cara mencari transaksi yang operasi elemennya konflik

dengan

"First".

Penelusuran dari

"First"

menemukan elemen dari transaksi lain

yang operasinya konflik, yaitu operasi

write

item data

x,

dari transaksi

T2 (wz(x)).

Kemudian proses validasi dilanjutkan dari elemen

commit. "Second"

adalah

elemen

conzniit. "Second"

dibandingkan dengan elemen

-

dari transaksi lain.

Penelusuran dari

"Second"

menemukan operasi item data yang konflik, yaitu

operasi

read

item data

z

dari transaksi

T3 (r&)),

sehingga proses validasi untuk

[image:27.539.74.447.24.754.2]

transaksi

TI padaiiC-queue

Gambar

8

dinyatakan gaga].

Gambar

8

RC-queue

pada

ROCC.

11.8.2.

Komponen ROCC

ROCC

diimple~nentasikan n~enggunakan tiga komponen, yaitu

client-side

procedure, schedztler-side procedure,

dan

data-ittanager side procedure

(Shi

&

Perrizo 2004). Pada Gambar

9

ditunjukkan ketiga komponen tersebut Dari

Gambar

9,

dapat dijelaskan bahwa

pengguna melakukan transaksi melalui

transaction manager

( T M ) ,

kemudian diteruskan ke

scheduler

(SC)

untuk

dilakukan penjadwalan dalam mengakses basis data. Apabila berhasil dalam

(28)

akan diteruskan ke

data

nlanager

(DM)

untuk membacafmengubah data yang

dimaksud.

Tnnractian Manager

SC-Side Procedure

DM-Side Procedure

Database (DB)

(29)

111. M E T O D E PENELITIAN

111.1.

Metode Perbaikan Algoritma R O C C

Bernstein

et al.

(1987)

menjelaskan cara untuk mengenali himpunan transaksi

yang dieksekusi

(history)

yang

serializable.

Jika sebuah

history

H

dengan

transaksi

T={T/,

Tz,

...

T,,}

maka

serialization graph

(SG) dari

history

H

(SG(H))

adalah

directed graph

dengan

node

adalah transaksi-transaksi dalam

T,

yang

sudah melakukan

coiiznzit

dalam

H.

Edge

adalah

i;

+

I;.

jika salah satu dari

operasi-operasi

i;

konflik dengan salah satu dari operasi-operasi

2;

dalam

H,

dan

Ti

dieksekusi lebih awal dari

q.

Sebuah

history

H

adalah

serializable,

jika SG(H)

adalah

acyclic.

Modifikasi algoritma R O C C dilakukan dengan cara terlebih dahulu mernbuat

SG dari beberapa kondisi

RC-qzreue,

sehingga ditemukan keadaan dimana

t e r d a p t SG yang

acyclic

tetapi algoritma validasi

intervening

~nelakukan

restart.

111.2. Metode Evaluasi Kinerja

Penelitian untuk mengukur kinerja ROCC, ROCCM, dan Strict 2PL

dilakukan dengan si~iiulasi yang

berbasis pada Shi dan Perrizo (2004).

Pelaksanaan simulasi dilakukan dengan menggunakan simulator. Simulator

dibangun dengan bahasa pemrogra~nan C

Builder Version 6.0

dengan cara

~nelakukan modifikasi program simulator dari penelitian sebelumnya yang

dilakukan oleh Shi dan Perrizo (2004). Spesifikasi komputer yang digunakan

pada pelaksanaan simulasi, menggunakan sistem operasi

Windows MilIeniurn,

lnemori

=

512

Mlyte,

prosessor

=

Intel Pentiur~z 4 2.66 GHz,

serta hardisk

=

40

Gbyte.

Silnulasi yang dilakukan dengan parameter-parameter input yang sama pada

ketiga algoritma tersebut. Paremeter-parameter simulasi diperlihatkan pada Tabel

2. Pernberian nilai parameter input untuk simulasi ini, tidak berdasarkan pada data

sesungguhnya, tetapi merupakan asumsi-asumsi yang diambil dari penelitian

(30)
[image:30.541.79.461.51.525.2]

Tabel 2. Parameter-parameter input simulasi

~nisialisasi

transaksi baru dari suatu terminal.

Hasil simulasi yang tampil adalah

tlzrozcghput, response tinie,

dan

restart ratio

untuk ketiga algoritma yang dievaluasi.

Throughput

dalam ha1 ini adalah jumlah

transaksi yang dapat diselesaikan per satuan waktu.

Restart ratio

adalah jumlah

rata-rata transaksi yang mengalami

restart

per satuan waktu.

Respon tittle

adalah

waktu di antara ketika sebuah terminal mengirim sebuah transaksi baru dan ketika

hasil transaksi baru tersebut dike~nbalikan

ke terminal. Hasil simulasi diuji dengan

uji

t-stzrdent

menggunakan selang kepercayaan

(conJidence interval)

95%

(Law

&
(31)

IV. HASIL DAN

PEMBAHASAN

IV.l.

Algoritlna R O C C M

Teorema yang diketnukaltan oleh Shi dan Perrizo

(2004), mengungkapkan

bahwa R O C C menghasilkan eksekusi transaksi yang

serializable.

Karena jika

terdapat eksekusi yang tidak

serializable,

maka ada

cycle

dalam

serialization

graph

(SG) dalam

RC-queue.

Sebagai asumsi, terdapat sebuah

cycle

dala~n

RC-

qt~ezle

yang terdiri dari

TI

3Tz

...

T,,

+TI,

~ n a k a

dalam transaksi-transaksi tersebut,

terdapat konflik antara

TI

darl

T2,

sel-ta terdapat konflik antara

T,

dan

T,.

Algorit~na validasi

illtel-vening

yang terdapat pada ROCC, akan ~nembatalkan

transaksi yang lne~npunyai dua elemen yang keduatlya konflik dengan elemen

transaksi lain yang terletak di antara elelnen yang konflik tersebut. Dengall

demikian,

cycle

aka11 dihentikan, karena transaksi yang dibatalkan akan dilakukan

restart.

Ga~nbar

10

RC-qztelre

dengan eksekusi

serializable

pada R O C C

Garnbar

1 1

Acyclic

SG,

Dari hasil penelitian yang telah dilakukan, terdapat keadaan

RC-quetre

dengan

eksekusi

serializable,

tetapi terdapat transaksi yang Inengalami

restart

pada saat

(32)

18

10. Pada Gambar 10, transaksi yang datang pertama kali adalah

TI

yang aka11

~nengakses item data

x

(rl')),

item data y

(r,(y),

dan item data

z

(rl(z,).

Selanjutnya setelah transaksi

TI

terdapat transaksi

fi

yang telah dilakukan validasi

dimana transaksi

TZ

terselmt melakukan perubahan nilai item data

x

yaitu

wz6).

Setelah transaksi

T2

terdapat transaksi

T3

yang hanya ingin mengakses item datay

(r30).

Akhirnya transkasi

TI

akan melakukan perubahan nilai item data

z

hv&)).

Proses validasi dimulai dari elemen

read

pertama kali untuk transaksi

TI

("First'?,

yang menemukan operasi elenien yang konflik yaitu item data

x

dari

operasi

w&)

pada transaksi

T2.

Kerena ditemukan elemen yang konflik dengan

"First"

dari transaksi

Tz,

maka proses validasi selanjutnya dimulai dari bagian

bawah dengan membandingkan elemen

coniniit ("Second'?

dari transaksi

TI

dengan transaksi sebelumnya. Penelusuran dari

"Second",

menemukan elemen

yang konflik, yaitu operasi

read

untuk item data

z,

dari transaksi

T3 (I-3(~)).

Pada

kondisi ini transaksi

TI

mengalami

restart,

padahal eksekusi transaksi adalah

merupakan eksekusi yang

serializable.

SG pada Gambar 11 merupakan ilustrasi dari eksekusi transaksi untuk

RC-

queue

pada Gambar 10. Dari Gambar 11 tersebut dapat diketahui bahwa tidak

terdapat

cycle

dalam SG tersebut, yang menunjukkan bahwa eksekusi

lransaksinya bersifat

serializable.

Perbaikan algoritma

ROCC

menjadi

ROCCM,

dilakukan dengan mengubah

cara validasi yang dilakukan oleh algoritma validasi

intervening.

Proses validasi

pada algoritma

ROCCM

akan diuraikan dalam penjelasan di bawah ini.

"First"

adalah elemen operasi

read

dari transaksi yang melakukan

conimit.

"Conibine"

adalah kumpulan elemen yang operasinya konflik dengan elemen

coninzit ("Second'y

maupun operasinya konflik dengan elemen

"Combine

"

sebelumnya. Sebagai inisialisasi awal

"Cornbine"

=

(1.

Langkah-langkah untuk

melakukan validasi setelah suahi transaksi mengirimkan

coniniit request,

pada

ROCCM

selengkapnya adalah sebagai berikut

:

1.

Bandingkan

"First"

dengan elemen dari transaksi lain yang terdapat di

antara

"First"

sampai elemen

contniit.

Bila pada saat penelusuran

(33)

19

elentet~l)

maka gabungkan elemen

"Firsi"

ke dalam elemen transaksi

yang sama berikutnya. Kemudian bandingkan

"First"

hasil gabungan

tersebut, dengan elemen dari transaksi lain yang terdapat di antara

"First"

sampai elemen

coninzit.

Proses penelusuran dilakukan terus untuk

menemukan elemen yang konflik atau elemen

read

berikutnya. Bila

transaksi berikutnya yang ditemukan, adalab elemen

cor~zn~it

dari transaksi

yang sama, dan tidak terdapat konflik maka validasi dinyatakan sukses.

2.

Jika

"First"

konflik dengan elemen dari transaksi lain, pindahkan elemen

"First"

ke posisi transaksi sebeluln elemen dari transaksi lain yang

konflik. Hapus elemen

"First"

yang asli dari

RC-qzceue.

3.

Bandingkan

"Second"

atau

"Con~bine

"

dengan elemen dari transaksi lain

yang terdapat di antara

"Second"

sampai ditemukan elemen dari transaksi

yang sama

("First-up reached elenzent'y.

Setiap elemen yang konflik,

lakukan

insert

ke

"Con~bine

".

4.

Bandingkan

"Conzbine

"

dengan

"First-zip reached element"

Jika terdapat

konflik maka validasi dinyatakan gaga]. Jika tidak terdapat konflik

lakukan pengecekan apakah

"First-up reached elenzenl"

adalah

"First",

jika merupakan

"First

maka validasi dinyatakan sukses, tetapi jika bukan

elemen

"First"

lanjutkan langkah

5.

5.

Gabungkan

"SeconG'

dengan

"First-up reached element"

hapus

"Second"

asli dari

RC-quezre.

Lanjutkan langkah

3.

Pseudocode

algoritma validasi pada

ROCCM

selengkapnya terdapat pada

urian di bawah ini. Pada algoritma validasi

ROCCM,

tersebut, proses

penelusuran dari elemen

"First"

sama dengan aigoritma validasi pada

ROCC.

Perbedaannya terdapat pada proses penelusuran dari elemen

con~njit

yaitu terdapat

proses membandingkan antara elemen

corlzn~it

atau elemen

"Combine"

dengan

elemen yang terdapat di antara elemen

commit

tersebut sarnpai ditemukan elemen

transaksi yang sama

rFirst-up reached elenlent'?.

Jika ditemukan elemen yang

konflik dengan elemen

conlmit

atau

"Combine"

maka elemen dari transaksi lain

yang terdapat konflik, akan dilakukan

insert

ke

"Conlbine

".

Kemudian dilakukan

(34)

20

konflik maka validasi dinyatakan gagal. Jika tidak terdapat konflik lakukan

pengecekan apakah

"First-zip reached element"

adalah

"First",

jika merupakan

"First"

maka validasi dinyatakan sukses, tetapi jika bukan elemen

"First

",

maka

"Second"

digabungkan dengan

"First-zip reached elentent" dun

proses

penelusuran berjalan terus untuk menemukan elemen yang operasinya konflik

dengan

"Second"

atau

"Con~bine",

sampai ditemukan elemen dari transaksi yang

sama. Algoritma selengkapnya adalah sebagai berikut

:

"First" = NULL; "Second" =NULL; "Conzbine "=NULL; Locate the transaction 'sfirst read element in the RC-queue; If(notfound) return validated =true..

"First" = the first read elentent; While (1)

J Conzpare "First" wifh all the elenzents ofother transaction behind it until it reached an elernent of the sanze transaction first-down-reached elenzent);

If(T1~ere is no elenzent conflict) //nzoving down to look for tipper side conflict {Merge the "First" elenzent with the first-down-reached elemet; .

Rernove the "First" elenzent from the RC-Q~ceue;

If(Tlzefirst-down-reached element is the commit elenzent) Return validated = true;

Else "First" = the first-down-reached-elert~ent;

I

Else // There is liper-sided-conflict;

{Insert "First" into the RC-queue right before the conflicting element; Rmnove the original "First"fr0rn the RC-queue;

"Second" = Conzmit elenzent;

While (I) /hzzoving up to look for the lower-sided conflict;

{Con~pare "Second" wirfz all the elenlent of other transactions before it until it reaches an elenzent of the same transaction first-lip-reached element); Insert elerncnt conflict with "Second" or Contbine" to "Cotnbine;

{Conzpare first-up-reachen eletizcnt" with "Combirze"; If(There is no elernent co~zflict)

{Merge the "Second" element ~vith the first-up-reached element; Remove the "Second" elementfronz the RC-qzieue;

I f the first-up-reached elenzent is the "First'y Return validated =hue;

Else "Second" = the first-up-reached elernent;

I

Else //there is also Lo)ver-sided-conflict, the validation fails. {Remove all elenzents of the transaction~om the RC-queue

Return validated= false;

(35)

Pada algoritma validasi

ROCCM

di atas, yang tercetak tebal merupakan

bagian modifikasi dari algoritma sebelumnya.

Ilustrasi inlplementasi algorit~na

ROCCM,

untuk beberapa kondisi

RC-queue

diperlihatkan pada Gambar 12.a, 12.b, dan 12.c. Pada Gambar 12.a diperlihatkan

keadaan

RC-queue

dengan empat transaksi yang terdapat pada

queue.

Transaksi

yang terdapat pada urutan pertama adalah

TI

dengan operasi

rl'),

r,(yl, r&).

Kemudian disusul dengan transaksi

T2

yang telah dilakukan validasi dengan

operasi-operasi

r2(w), r2(u),

dan

wz(x),

berikutnya adalah transaksi

T3

juga telah

sukses dilakukan validasi dengan operasi-operasi

r&), I&), w ~ ( v ) .

(c)

Gambar 12

RC-queue

pada algoritma

ROCCM:

(a) hasil validasi tidak

restart,

[image:35.532.53.454.41.731.2]
(36)

Akhirnya TI mengirim col~znzit request untuk mengubah item data

z

yaitu

wle). Langkah melakukan validasi pada RC-quezie Gambar 12.a, dimulai dari

bagian atas pant) yaitu dengan cara mencari transaksi yang operasi elemennya

konflik dengan "First". Penelusuran dari

"First"

menemukan elemen dari

transaksi lain yang operasinya konflik yaitu operasi write item data

x,

dari

transaksi T2 (102()1). Kemudian proses validasi dilanjutkan dari bagian bawah.

"Second" adalah elemen conmit. "Second" dibandingkan dengan elemen dari

transaksi lain, yang menemukan operasi item data yang konflik, yaitu operasi read

item data z dari transaksi T3, sehingga elemen yang disalin ke "Combine" adalah

item data dari operasi readtransaksi T3 yaitu 2,s dan item data pada operasi write

dari transaksi T3 yaitu v, sehingga elemen-elemen serta operasinya yang terdapat

pada "Con7bilie" adalah r3(z),

r3(s),

w3(v).

Penelusuran berikutnya metnbandingkan "Second" dengan transaksi di

atasnya, karena tidak ada operasi elemen yang konflik dengan "Second" maka

kemudian dibandingkan dengan "Combine

"

yang juga tidak menemukan konflik.

Karena tidak ada operasi elelnen yang konflik berikutnya yang ditemukan, sampai

ditemukan elemen "First", maka akhirnya "Cornbine" dibandingkan dengan

"First" yang juga tidak rnenemukan konflik sehingga proses validasi untuk

keadaan RC-qrtezie Gambar 12.a dinyatakan sukses, dengan

T/

dapat melakukan

operasi perubahan item data z.

Hasil validasi yang dilakukan pada RC-queue Gambar 12.b, berhasil

menemukan konflik dengan "First" untuk transaksi TI, yaitu operasi item data

x

(M~(x))

dari transaksi TI. Selanjutnya proses validasi dari elemen cornnzit untuk

transaksi TI, berhasil menemukan konflik yaitu operasi item data y (w4(y)) dari

transaksi T4, sehingga 1v4(yl disalin ke "Conzbine". Terakhir "Combine"

dibandingkan dengan "First" yang berhasil menemukan konflik yaitu operasi

item data y (,vl(y), yang konflik dengan r&),

sehingga transaksi TI mengalami

restart.

Proses validasi pada RC-queue Gambar 12.c dimulai dari "Firsf" yang

dibandingkan dengan elemen dari transaksi lain yang terdapat di antara "First"

(37)

data

x (rz(x))

dari transaksi

T2.

Ke~nudian proses validasi dilanjutkan dari

bawah dengan lnelnbandingkan

"Second"

dengan transaksi lain, yang dalam ha1

ini mene~nukan

konflik yaitu operasi

read

item data

z

(r&)

dari transaksi

T4,

maka seluruh elemen pada transaksi

T4,

yaitu elemen

read z (r4(4))

dan elemen

write

u

'v4(u))

akan disalin dan digabungkan ke

"Combine".

Penelusuran berikutnya membandingkan

"Second"

dengan transaksi di

atasnya, dalam ha1 ini karena tidak ada elemen yang konflik dengan

"Second"

kemudian operasi elemen transaksi tersebut dibandingkan dengan

"Combine"

yang menemukan konflik, yaitu operasi

read

item data

tr

pada transaksi

T3 (r3(u)).

Elemen-elemen dari transaksi tersebut (elemen

read u ( r 3 0 )

dan elemen

write

(w3(1v)))

disalin dan digabungkan ke dalam

"Coinbine

".

Penelusuran terhadap elemen transaksi berikutnya tidak menemukan konflik

dengan

"Second"

tetapi mene~nukan operasi elemen yang konflik dengan

"Coiitbine!'

yaitu item data

iv

dari operasi

rzfiv)

transaksi

T2,

sehingga dalam ha1

ini elemen

r2(1v), r2(v), dun wz6)

disalin dan digabungkan ke

"Cornbine"

sehingga elemen

"Combine"

~nenjadi

(rdfir), w4(z); r3(u), w3(w); r2(w), rz(v),

1v2($)

Akhirnya

"First"

dibandingkan dengan

"Cornbine"

yang menemukan

konflik yaitu operasi item data

x (w2(x)

konflik dengan

UJ/(X))

,

sehingga transaksi

TI

pada

RC-queue

Ga~nbar

12.c

mengalami

restart.

IV.2.

Pelaksanaan Simulasi

IV.2.1.

Asurnsi-asumsi simulasi

Simulator yang digunakan untuk mengukur kinerja

CC

tersebut, menggunakan

model antrian tertutup pada suatu sistem basis data terpusat, seperti diperlihatkan

pada Gambar

13

dan Gambar

14.

Pada simulator terdapat sejumlah terminal,

untuk membangkitkan transaksi. Selanjutnya terdapat batasan transaksi yang aktif

pada suatu saat di dalam sistem

(ntpl).

Apabila transaksi yang dibangkitkan oleh

sejumlah terminal melebihi batasan transaksi yang diijinkan oleh sistem (melebihi

nlpl),

maka transaksi tersebut diletakkan dalam

ready queue

untuk menunggu

transaksi dalam sistem selesai atau ada yang dilakukan

abort.

Sebaliknya apabila

transaksi yang aktif dalam sistem tidak melebihi

mpl,

maka transaksi yang

(38)

24

membuat permintaan operasi akses basis data melalui

CC.

Jika 1010s dari

operasi yang dilakukan oleh

CC,

selanjutnya transaksi tersebut mengakses data.

Jika data tersebut ada di

b~rJfer

niaka eksekusi dilanjutkan ke CPU. Tetapi jika

data tersebut tidak terdapat di

bzrJfer

maka eksekusi akan dilewatkan ke disk untuk

mengakses data untuk seterusnya dilanjutkan ke CPU. Untuk mengakses

disk

serta diproses pada

cpu

harus melalui antrian di disk serta CPU yaitu

disk-queue

dan

cpu- qzleue.

Pada simulasi diasumsikan juga, bahwa sebuah transaksi melakukan operasi

read

terlebih dahulu sebelum melaksanakan operasi

write.

Diasumsikan juga

jaringan yang digunakan adalah jaringan

Local Area Nehvork

(LAN)

dalam

keadaan handal pada saat transmisi data dari terminal ke server. Jalur

think

nlemberikan nilai

random delay

pada waktu mengakses item data. Pada

Strict

2PL,

jika hasil dari

CC

memutuskan bahwa suatu transaksi harus di

block

maka

.transaksi tersebut dimasukkan dalam

block qzlelre

sampai permintaan akses data

dapat diproses. Jika

CC

menetapkan untuk melakukan

restart

suatu transaksi,

maka transaksi tersebut akan dilakukan

restart

dan selanjutnya dimasukkan ke

dalam

ready queue.

Jika suatu transaksi telah kornplit (selesai) maka

CC

akan

memberikan

co~i~nzit

succes Itlessage

ke terminal.

IV.2.2. Model

Simulasi

Pada simulator terdapat dua model

logical queuing

yaitu yang pertama model

antrian untuk

ROCCM

dan

ROCC

yang diambil dari penelitian sebelumnya (Shi

&

Perrizo 2004), serta yang kedua model antrian untuk

Strict

2PL.

Gambar 13 di

bawah ini memperlihatkan model antrian yang pertama pada simulator.

Pada Gambar

13 diperlihatkan terdapat sejumlah terminal untuk

membangkitkan transaksi. Ketika suatu transaksi baru diinisialisasi, sistem akan

melewatkan transaksi pada

ready queue

untuk diteruskan ke

cc queue.

Transaksi

yang 1010s validasi akan dilanjutkan untuk mengakses data di

bzcfer

atau

disk.

Setelah mendapatkan data operasi transaksi diteruskan ke

cpu.

Setelah dieksekusi

oleh

cpu

terdapat pemberian nilai

int-think

dan

ext-think

Transaksi yang gagal

validasi akan dilakukan

restart

dan kembali masuk

ready queue.

Eksekusi

(39)

Gambar 13 Model

logical queuing

untuk

ROCCM

dan

ROCC

pada simulator

(Shi

&

Perrizo 2004).

Gambar 14 memperlihatkan model antrian untuk

Strict

2PL pada simulator.

Model tersebut merupakan modifikasi dari model

logical qziezring

penelitian

sebelumnya dan ditambahkan dengan jalur transaksi yang mengalami

blocked

serta

blocked queue

untuk menampung transaksi yang mengalami

blocked.

Eksekusi antrian hampir sama dengan model antrian pada

ROCC

dan

ROCCM.

Perbedaannya pada model antrian

Strict

2PL

adalah terdapat

block queue

untuk

menalnpung transaksi yang mengalami

blocked

untuk kemudian diteruskan ke

cc

qzreue.

Parameter input

defaut

yang digunakan pada pelaksanaan simulasi

[image:39.541.75.465.66.725.2] [image:39.541.84.461.72.326.2]
(40)

Gambar 14 Model

logical queuing

untuk Strict 2PL pada simulator

(modifikasi dari model Shi dan Perrizo (2004)).

Tabel 3 Nilai parameter input

default

pada pelaksanaan silnulasi

Nilai

1000

pages

10

pages

4

pages

0,25

I

ms

1

ms

3

5

800

0,s

35

ms

15

ms

[image:40.532.50.435.52.693.2] [image:40.532.65.433.53.290.2]
(41)

27

IV.3.

Hasil Simulasi

Pelaksanaan simulasi dengan parameter input seperti pada Tabel 3,

dimaksudkan untuk mengetahui kinerja ketiga algoritma yang diuji, berdasarkan

nilai parameter daii penelitian sebelu~llnya

(Shi

&

Perrizo 2004).

Hasil simulasi pada

fhrorighput

dapat dilihat pada Gambar 15.a serta Tabel 4.

Melalui Gambar 15.a tersebut, dapat diketahui bahwa

ROCCM

mempunyai

nilai yang lebih tinggi, bila dibandingkan dengan algoritma

ROCC

dan Strict

2PL.

Uji

t-student

pada

sainple

dengan derajat bebas

(d' =

(n1+n2-2)

yang melniliki

2

. .

rata-rata

x

dan

y,

serta

variance s?

dan

sz

d~hitung

dengan persamaan di bawah

ini

:

Pada pengujian dengan menggunakan derajat bebas 8

(5

+

5 -2) dan

95

%

con$dence interval,

jika -1.86

<

t

<

1.86 maka perbedaan tidak nyata. Hasil

pengujian dengan uji

t-student

menunjukkan bahwa perbedaan

fhroughput

antara

ROCC

dan

ROCCM,

cukup nyata pada

tizpl

di atas 50 (Lampiran

3).

Dari

Gambar 15.a juga dapat diketahui bahwa

throz~gliprit

Strict

2PL

ada pada posisi

terendah.

Hasil simulasi pada

restart ratio,

dapat dilihat pada Gambar 15.b maupun

Tabel 4. Gambar 15.b memperlihatkan perbedaan

restart ratio

ketiga algoritma

yang diuji. Dari gambar tersebut, dapat diketahui bahwa

resturt ratio

ROCC

berada pada posisi tertinggi terutama pada

nip1

=

200.

Gambar 15.c, memperlihatkan hasil simulasi dalam ha1

response time.

Melalui

gambar tersebut, dapat diketahui bahwa

response titile

antara

ROCCM

dan

ROCC,

secara umum ha~npir

sama pada berbagai

ii7pl.

Pada Tabel 4, ditunjukkan rekapitulasi kinerja algoritma pada

throughput,

restart ratio

dan

response tiiiie.

Pada tabel tersebut

T

adalah

throughput,

RR

adalah

response time,

dan RT adalah

restart ratio.

Melalui tabel tersebut, juga

(42)

28

nzpl

=

10

me~npunyai

nilai yang kecil. Tetapi nilai-nilai tersebut akan selnakin

[image:42.532.55.463.42.563.2]

jauh berbeda seiring dengan naiknya jumlah

mpl.

(43)

29

Tabel 4 Rekapitulasi hasil simulasi

IV.4.

Evalusi kinerja algoritma

Bargava

(1999)

mengemukakan bahwa salah satu cara untuk melakukan

evaluasi terhadap kinerja sebuah algoritma

CC

adalah dengan melakukan

evaluasi terhadap

throzrghptit, response tinie, dun restart ratio.

Dari hasil simulasi

yang ditampilkan pada eksperimen ini, dapat jelaskan bahwa algoritma

ROCCM

mempunyai

troughput

yang lebih tinggi. Sernentara itu

restart ratio

berada di

bawah

ROCC.

Selain itu

ROCCM

mempunyai

response tiwe

yang hampir sama

dengan

ROCC.

Throughput

ROCC

secara umurn berada tepat di bawah

ROCCM.

Sementara

itu

ROCC

mempunyai angka

restart ratio

yang lebih tinggi. Dari hasil penelitian

yang telah dilakukan dapat dikemukakan bahwa angka

response tirtze

ROCC

hampir sama dengan

ROCCM

yang mempunyai

response tittle

lebih cepat bila

dibandingkan dengan Strict

2PL.

(44)

V. KESIMPULAN DAN SARAN

V.1.

Kesi~npuIan

Melalui penelitian perbaikan dan evaluasi kinerja algorit~na

ROCC

dapat

disi~npulkan

:

1.

Secara umum

throtrghput

ROCCM

lebih tinggi, bila dibandingkan

dengan

ROCC

dan Strict

2PL.

2. Restart ratio

ROCCM

lebih rendah dari

ROCC.

3.

Response time

ROCCM

tidak jauh berbeda dengan

ROCC.

4. Dengan ~nelakukan perbaikan algoritma

ROCC,

restart ratio

yang terjadi

akan berkurang sehingga lnenaikkan kinerja algoritma tersebut.

V.

2.

S a r a n

(45)

3

1

DAPTAR PUSTAKA

Bargava B. 1999. Concurrency Control in Database Systems. IEEE

Transaction

on Knowledge and Data Engineering

1 l(1): 3-1 6.

http

:l/citeseer.ist.psu.edulbhargava99concurrency.html.

[

28 Oktober 20051.

Bernstein PA, Hadzilacos

V,

Goodman N. 1987.

Concurrency Control and

Recovery in Database Systeirt.

New York: Addison-Wesley Publishing

Company. hlm. 25-37.

Connoly

T,

Begg C. 2002.

Database Systenl : A Practical Approach to

Design, Iittplernentation, and Managenlent.

New York

:

Addison -Wesley

Publishing Company. him. 14-18.

Ellnasri

R,

Navathe S

B.

2000.

Fundarnental of Database Systems.

New York

:

Addison -Wesley Publishing Company. hlm. 662-668.

Law AM, Kelton WD. 1991.

Sirritllation Modelling and Analysis.

Ed ke-2.

Singapore: Mc Graw Hill Inc. him. 289.

Ozsu

MT,

Valduriez P. 1999.

Principle of DistribzttedDatabase Systenzs,

Ed ke-2.

New Jersey: Prentice Hall

Gambar

Tabel 1 . Ko~npatibilitas modus lock ...............................................
Gambar 1 . Komponen sistenl basis data terpusat ..............................
Gambar 5 Contoh eksekusi transaksi pada Strict 2PL.
Gambar 8 RC-queue pada ROCC.
+7

Referensi

Dokumen terkait

Dari pengertian di atas maka dapat disimpulkan bahwa terapi oksigen adalah memberikan oksigen melalui saluran pernafasan dengan alat agar kebutuhan oksigen dalam

Target luaran dari kegiatan pengabdian kepada masyarakat di guru PAUD dan mahasiswa PAUD ini adalah pada akhir kegiatan diharapkan semua Guru PAUD dan mahasiswa PGPAUD

Telkom Indonesia, dapat juga mencari rata rata industri sebagai kelanjutan dari pengolahan data agar dapat juga mengetahui kategori kondisi industri yang terjadi

• Waktu istirahat diberikan untuk setiap anggota kelompok agar dapat memikirkan gagasan yang baru berdasarkan dari gagasan temannya dan menuliskannya pada kartu

Informasi dari pemetaan pit dan rekonsiliasi geology telah dimasukkan ke dalam sumber daya baru dan perkiraan cadangan untuk mencerminkan tren rekonsiliasi yang lebih baik untuk

Proyek ini memiliki 2 (dua) potensi pengembangan tambang dalam satu izin pertambangan yang ada. Proyek ini dipercaya memiliki cadangan emas dan tembaga kelas

atas segala rahmat dan karuniaNya, sehingga penulis dapat menyelesaikan tugas skripsi yang berjudul “Ketidakadilan Gender dalam Novel Midah Simanis Bergigi Emas

Analisis Dampak Keuangan Perseroan Jika Proyek Yang Dibiayai Mengalami Kegagalan Proyek yang dibiayai adalah menerima novasi dari SRTG yang merupakan kreditur EFDL sehingga Perseroan