penguncian pada concurrency control -...

33
sistem basis data – ti ukdw sistem basis data – ti ukdw 11/22/11 budi susanto 1 Penguncian pada Concurrency Control Teknik Informatika Universitas Kristen Duta Wacana Yogyakarta

Upload: doanngoc

Post on 12-Mar-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 1

Penguncian pada Concurrency Control

Teknik InformatikaUniversitas Kristen Duta Wacana

Yogyakarta

Page 2: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 2

Tujuan

● Memahami tentang konsep penguncian pada concurrency control terhadap transaksi database.

Page 3: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 3

Pendahuluan

● Ketika beberapa transaksi berjalan secara bersamaan dalam database, properti isolasi tidak dapat dipertahankan.

● Untuk itu, sistem perlu menerapkan skema concurrency-control.● Untuk menjamin interaksi antar transaksi concurrent● Didasarkan pada properti serializability.

Page 4: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 4

Protokol Berbasis Kunci

● Untuk memastikan serializability, salah satunya dengan cara mutually exclusive:● Ketika satu transaksi mengakses item data, tidak

ada transaksi lain yang dapat memodifikasi item data tersebut.

● Dengan cara mengunci item data.

Page 5: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 5

Penguncian

● Shared

● Jika Ti mendapat shared-mode lock (S) pada item

Q, maka Ti dapat membaca, tapi tidak dapat

menulis item Q.

● Exclusive

● Jika Ti mendapat exclusive-mode lock (X) pada item

Q, maka Ti tidak dapat membaca atau menulis item

Q.

Page 6: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 6

Compatibility Function

● Setiap transaksi meminta kunci ke concurrency-control manager.● Transaksi dapat melanjutkan operasinya hanya

setelah mendapat grant dari manager.

● Dari sekumpulan mode penguncian, kita dapat mendefinisikan compatibility function.

S X

S true false

X false false

Page 7: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 7

Locking Protocol

● Jika kita tidak menggunakan penguncian, atau jika kita melepas kunci segera setelah baca atau tulis item data, kita mungkin akan mendapat kondisi tidak konsisten.

● Jika kita tidak melepas kunci item data sebelum meminta untuk mengunci item data lain, deadlock mungkin terjadi.

● Harus mengikuti aturan: locking protocol● Menentukan kapan suatu transaksi mengunci atau

melepas kunci untuk setiap item data.

Page 8: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 8

Locking Protocol

● {T0, T1, ..., Tn} adalah himpunan transaksi dalam schedule S.

● Ti � Tj dalam S jika● Terdapat item data Q, dan● Ti mengunci Q mode A, dan Tj mengunci Q mode B

kemudian, dan● comp(A, B) = false

Page 9: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 9

Locking Protocol

● Jadwal S dikatakan legal di bawah locking protocol, jika S adalah jadwal yang mengikuti aturan locking protocol.

● Locking protocol memastikan conflict serializability.

Page 10: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 10

Granting Lock

● Ketika Ti meminta kunci pada item data Q dalam mode M, concurrency-control manager memberikan kunci :● Tidak ada transaksi lain menyimpan kunci untuk Q

dalam mode yang konflik dengan M;● Tidak ada transaksi lain yang sedang menunggu

untuk mengunci Q sebelum permintaan Ti.

Page 11: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 11

Contoh

● Diberikan T1 dan T2 berikut:

● Jika A = 100, dan B=200, berapa nilai akhir jika dijalankan secara serial?

Page 12: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 12

Jika secara concurrent?

Page 13: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 13

Presecende Graph

Page 14: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 14

Kegagalan Locking Protocol

● Masih mungkin terjadi deadlock● Starvation

● Sebuah transaksi menunggu untuk X-lock untuk item data, sedangkan sederetan transaksi lain meminta dan diberi suatu S-lock untuk item data yang sama.

● Transaksi yang sama di rollback secara berulang karena deadlock.

● Concurrency control manager dirancang untuk mencegah starvation.

Page 15: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 15

deadlock

Page 16: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 16

Contoh lain

Page 17: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 17

Two-Phase Locking Protocol

● Protokol ini membutuhkan setiap transaksi yang ingin kunci atau melepas kunci, memintanya dalam 2 fase:● Growing phase:

– Sebuah transaksi dapat memperoleh kunci, tetapi tidak dapat melepaskan kunci apapun.

● Shrinking phase– Transaksi mungkin melepas kunci, namun tidak

mendapatkan kunci baru.

Page 18: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 18

Two-phase Locking

Page 19: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 19

Two-Phase Locking Protocol

● Pada awalnya, sebuah transaksi dalam growing phase.

● Sekali melepas sebuah kunci, masuk ke shrinking phase, dan tidak dapat meminta kunci lagi.

● Suatu titik pada schedule dimana transaksi mencapai kunci akhir (akhir growing phase) disebut lock point dari transaksi.

Page 20: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 20

Two-Phase Locking Protocol

● Protokol Two-phase tetap memungkinkan deadlock.

● Modifikasinya:● Strict two-phase locking protocol

– Sembarang data yang ditulis oleh uncommit transaction dikunci mode exclusive sampai commit, untuk mencegah transaksi lain membaca data.

● Rigorous two-phase locking protocol– Semua kunci disimpan, sampai commit atau rollback.

Page 21: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 21

Strict two-phase locking protocol

Page 22: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 22

Konversi Kunci● Two-phase locking dengan konversi kunci:

● First Phase:– Dapat memperoleh lock-S untuk item

– Dapat memperoleh lock-X untuk item

– Dapat mengubah lock-S ke lock-X (upgrade)

● Second Phase:– Dapat melepas lock-S

– Dapat melepas lock-X

– Dapat mengubah lock-X ke lock-S (downgrade)

● Protokol ini memastikan serializability. Namun tetap mengandalkan programmer untuk menyisipan perintah penguncian.

Page 23: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 23

Contoh

Page 24: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 24

Graph Based Protocol

● Protokol alternatif dari two-phase● Memaksa partial ordering -> pada himpunan D

= {d1, d2, ..., dn} dari semua item data.● Jika di -> dj, maka sembarang transaksi mengakses

di dan dj harus mengakses di dahulu baru dj.

● Menggunakan tree protocol

Page 25: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 25

Tree Protocol

● Hanya pengucian eksklusif.● Kunci pertama oleh Ti dapat dilakukan untuk

sembarang item data. Selanjutnya, data Q dapat dikunci oleh Ti, hanya jika induk Q dikunci oleh Ti.

● Item data dapat di unlocked setiap saat.● Item data yang di kunci dan di unlock oleh Ti

berikutnya tidak dapat dikunci ulang oleh Ti.

Page 26: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 26

Tree Protocol

Page 27: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 27

Akuisisi Kunci otomatis● Sebuah transaksi Ti melakukan perintah read/write standar,

tanpa melakukan pemanggilan kunci secara eksplisit.

● The operation read(D) is processed as:

if Ti has a lock on D

then

read(D)

else begin

if necessary wait until no other

transaction has a lock-X on D

grant Ti a lock-S on D;

read(D)

end

Page 28: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 28

Akuisisi Kunci otomatis● write(D) diproses sebagai :

if Ti has a lock-X on D then write(D) else begin if necessary wait until no other trans. has any lock on D, if Ti has a lock-S on D then upgrade lock on D to lock-X else grant Ti a lock-X on D write(D) end;

● Semua kunci dilepas setelah commit atau abort

Page 29: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 29

Penanganan Deadlock

● Terdapat 2 transaksi:

T1: write (X) T2: write(Y)

write(Y) write(X)● Schedule dengan deadlock

Page 30: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 30

Deadlock prevention protocol

● Suatu protocol yang menjamin bahwa sistem tidak akan pernah masuk dalam status deadlock.

● Strateginya● Membutuhkan bahwa setiap transaksi mengunci

semua item data sebelum mengeksekusinya.● Memaksa partial ordering dari semua data dan

transaksi dapat mengunci item data hanya dalam suatu urutan tertentu dengan partial order (graph based protocol).

Page 31: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 31

Deadlock Detection

● Deadlock dapat digambarkan sebagai graf wait-for● Terdiri dari G = (V, E)● V adalah transaksi● E adalah pasangan transaksi Ti -> Tj

– Artinya Ti menunggu Tj untuk melepas kunci

● Sistem akan deadlock, jika dan hanya jika graf wait-for berulang.

Page 32: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 32

Deadlock Detection

● Tanpa cycle dengan cycle

Page 33: Penguncian pada Concurrency Control - lecturer.ukdw.ac.idlecturer.ukdw.ac.id/budsus/pdf/TI1133/gasal1112/Locking... · Universitas Kristen Duta Wacana Yogyakarta. ... tidak dapat

sistem basis data – ti ukdw sistem basis data – ti ukdw

11/22/11 budi susanto 33

Pencegahan Deadlock

● Memberikan prioritas ke transaksi● Menggunakan timestamp untuk menyatakan prioritas

● Ti meminta suatu kunci yang dipegang oleh Tj● Wait-die:

– Jika Ti memiliki prioritas lebih tinggi, ia menunggu; selain itu di batalkan

● Wound-wait– Jika Ti memiliki prioritas lebih tinggi, batalkan Tj, selain itu Tj

menunggu.

● Setelah dibatalkan, restart timestamp awalnya.