database paralel&terdistribusi
TRANSCRIPT
MODUL
DATABASE PARALEL DAN TERDISTRIBUSI
Kemajuan dari teknologi Database Management System (DBMS) telah
mencapai pada penggunaan teknologi multiprosesing. Oleh karena itu
penggunaan database management yang mampu menggunakan teknologi
multiprosesing sekaligus multiuser sangat diperlukan. Sistem ini telah menjadi
tools manajemen data yang dominan pada lingkungan data yang sangat besar.
Integrasi dari lingkungan kerja yang terdistribusi mampu menghasilkan
fungsi distribusi yang lebih efisien dimana program aplikasi berjalan pada
workstation yang disebut application server, sedangkan fungsi database
ditangani oleh dedicated computers yang disebut database server. Sistem ini
dibuat dengan menghubungkan kabel jaringan yang terhubung oleh network.
Distributed database technology dapat diimplementasikan menjadi paralel
database sistem. Paralel database sistem memanfaatkan paralelism pada
manajemen data untuk menghasilkan database server yang memiliki performansi
dan availability yang tinggi.
Sebuah paralel DBMS dapat didefinisikan sebagai DBMS yang
diimplementasikan pada multiprosesor komputer. DBMS tersebut melakukan
query dengan dua cara, yaitu :
Inter-query paralelism
Inter-query mampu melakukan eksekusi paralel dengan menggunakan
multiple query yang dilakukan oleh transaksi – transaksi yang berjalan secara
konkuren.
Intra –query paralelism
PUSAT PENGEMBANGAN BAHAN AJAR-UMB E. Didik Madyatmadja, ST. PERANCANGAN BASIS DATA 1
Mampu menbuat eksekusi paralel berjalan sendiri – sendiri meskipun dengan
query yang sama.
Baik inter-query dan intra – query dapat dihasilkan dengan menggunakan data
partioning yang mirip dengan fragmentasi horisontal.
Gambar 1. Database paralel
Karakteristik paralel DBMS :
1. Paralel database adalah sebuah database yang file- filenya disimpan di
tiap – tiap komputer yang terhubung dengan jaringan. Ini merupakan
PUSAT PENGEMBANGAN BAHAN AJAR-UMB E. Didik Madyatmadja, ST. PERANCANGAN BASIS DATA 2
perbedaan antara distributed database (DDB) dengan sistem berkas
terdistribusi. Untuk membuat sebuah DDB, data secara lojik saling
berhubungan dimana hubungan tersebut terdefinisi dalam bentuk yang
lebih terstruktur.
2. Sistem tersebut harus memiliki fungsionalitas penuh sebagai sebuah
DBMS. Ini tidak sama dengan distributed file system dan transaction
processing system. Transaction processing hanya merupakan salah satu
fungsi yang disediakan oleh sistem paralel DBMS, dimana fungsi tersebut
menyediakan fungsi – fungsi seperti query processing, organisasi data
terstruktur dan layanan lain yang tidak dimiliki oleh transaction processing
system.
3. Distribusi data dari multiprosesor tidak terlihat oleh user, ini disebut
transparency. Teknologi paralel database memiliki konsep data
independence. Pada lingkungan dimana data terdistribusi dan tereplikasi
oleh sejumlah mesin ynag terhubung dengan jaringan. Oleh karena itu
transparency memiliki bentuk : network/ distribution, replication
transparency dan fragmentation transparency. Transparent access berarti
user hanya melihat sebuah database meskipun pada kenyataannya
database tersebut terdistribusi.
Idealnya sebuah paralel DBMS memiliki dua keuntungan, yaitu :
1. Linier scaleup
Linier scaleup menyatakan bahwa performansi database bergantung pada
ukuran database, processing dan storage power.
1. Linier speedup
Linier speedup menunjukan bahwa peningkatan performansi untuk sebuah
ukuran database yang tetap adalah linear dan peningkatan linear di dalam
pemrosesan dan sumber daya.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB E. Didik Madyatmadja, ST. PERANCANGAN BASIS DATA 3
Karakteristik performansi dari microprocessor dan workstation membuatnya lebih
murah ketika diletakkan bersama-sama sebuah sistem dari komputer kecil
dengan kekuatan yang sama dari sebuah mesin besar. Banyak DBMS
terditribusi yang komersial beroperasi dalam mini komputer dan workstation yang
tujuannya untuk mengambil keuntungan dari karakteristik performansinya.
Keunggulan dari DBMS terdistribusi dapat berjalan di Wide Area Network (WAN).
Di lain pihak, DBMS terdistribusi yang akan datang dapat mendukung struktur
hierarki organisasi dimana site-site terdiri dari cluster-cluster dari komunikasi
komputer yang melebihi local area network (LAN) dengan kecepatan tinggi.
Teknologi pada Database Terdistribusi dan Paralel
DBMS terdistribusi dan paralel menyediakan fungsionalitas yang sama
seperti DBMS terpusat kecuali lingkungannya, dimana data terdistribusi antara
site-site dalam sebuah jaringan komputer atau node-node dari sebuah sistem
multiprocessor. Seperti yang telah kita diskusikan di atas, user tidak sadar akan
data terdistribusi. Oleh karena itu, sistem menyediakan sebuah logically
integrated view dari physically database terdistribusi untuk user.
Arsitektur
Dalam database paralel terdapat banyak kemungkinan alternatif
distribusi. Saat ini, yang paling banyak digunakan adalah arsitektur client-server
dimana sejumlah client mengakses server database tunggal. Dalam sistem yang
disebut multiple-client/single-server ini , manajemen database menjadi sangat
sederhana sejak database disimpan dalam server tunggal. The pertinent issue
berhubungan dengan manajemen dari client-buffer, pengambilan data, dan
penguncian. Manajemen data selesai secara terpusat pada server tunggal.
Arsitektur yang lebih terdistribusi dan fleksibel adalah
multiple-client/multiple-server dimana database-databasenya didistribusikan
melalui multiple server yang harus berkomunikasi dengan sesama untuk
merespon query dari user dan mengeksekusi transaksi. Masing-masing client
PUSAT PENGEMBANGAN BAHAN AJAR-UMB E. Didik Madyatmadja, ST. PERANCANGAN BASIS DATA 4
mempunyai sebuah “rumah” server yang digunakan untuk query dari user secara
langsung. Komunikasi antar server bersifat transparant terhadap user.
Kebanyakan sistem manajemen database mengimplementasikan satu dari tipe
arsitektur client-server.
DBMS terdistribusi sebenarnya tidak dibedakan menjadi client dan
server. Idealnya, masing-masing dapat menjalankan fungsionalitas dari client
dan server. Arsitektur tersebut dinamakan peer-to-peer, membutuhkan protokol-
protokol shopisticated untuk mengelola data terdistribusi melalui multiple sites.
Kompleksitas dari kebutuhan software telah menunda pemberian dari produk
peer-to-peer DBMS terdistribusi.
Arsitektur sistem paralel terbagi menjadi dua, arsitektur shared-nothing
dan shared-memory. Point pentingnya adalah arsitektur shared-disk.
Pada shared-nothing, setiap processor mempunyai akses eksklusive ke
memory utama dan unit disk. Oleh karena itu, setiap node dapat dilihat sebagai
local site (dengan database dan softwarenya sendiri) dalam sebuah sistem
database terdistribusi. Perbedaan antar shared-nothing pada DBMS paralel
dengan DBMS terdistribusi pada dasarnya satu dari implementasi platform, oleh
karena itu kebanyakan desain dari solusi untuk database terdistribusi dapat
digunakan kembali di DBMS paralel. Arsitektur shared-nothing memiliki tiga
virtues : cost, extensibility, dan availability. Di lain sisi, shared-nothing memiliki
kompleksitas yang tinggi dan berpotensi terjadi masalah keseimbangan. Contoh
untuk shared-nothing sistem database paralel meliputi Teradata’s DBC dan
Tandem’s Non-StopSQL.
Dalam shared-memory, processor manapun memiliki akses ke modul
memory atau unit manapun melalui interkoneksi yang cepat. Beberapa contoh
desain mainframe yang baru seperti IBM3090 atau Bull’s DPS8, dan symmetric
multiprocessors seperti Sequent dan Enricore, mengikuti jenis ini. Shared-
PUSAT PENGEMBANGAN BAHAN AJAR-UMB E. Didik Madyatmadja, ST. PERANCANGAN BASIS DATA 5
memory memiliki dua keunggulan simpel dan seimbang, dan terdapat tiga
kerugian : cost, limited extensibility, dan avalaibility yang rendah.
Contoh dari shared-memory paralel database system termasuk XPRS,
DBS3, dan Volcano, dan semua RDBMS yang menggunakan shared-memory
multiprosesor. Pada dasarnya implementasi dari DB2 pada IBM3090 yang
menggunakan 6 prosesor merupakan contoh yang pertama. Seluruh produk
shared-memory komersial seperti INGRES dan ORACLE yang sekarang
melakukan inter-query paralelism saja.
Pada pendekatan shared-disk , setiap prsesor memiliki akses ke setiap
disk melalui interkoneksi tetapi eksklusif (non-shared) akses hanya pada main
memory saja. Setiap prosesor dapat melakukan akses halaman – halaman
database pada shared-disk dan mengcopynya ke cachenya sendiri. Untuk
menghindari konflik pada saat melakukan akses di halaman yang sama global
locking protokol melakukan maintanance pada cache koherensi. Shared disk
memiliki sejumlah keunggulan seperti cost, ekstensibility, plot balancing,
availability, dan kemudahan migrasi dari sistem uniprosesor. Di lain pihak ini
memiliki masalah kompleksitas yang tinggi dan performansi.
Contoh – contoh dari DBMS shared-disk paralel termasuk iMS/VS dari
IBM yang menggunakan data sharing seperti juga VAX DBMS dari DEC dan
produk – produk Rdb. Implementasi oracle pada VAXcluster dan NCUBE
komputer juga menggunakan pendekatan shared-disk karena ini menggunakan
ekstensi dari RDBMS kernel dengan minimal. Sebagai catatan bahwa semua
sistem tadi hanya menggunakan inter-query paralelism saja.
Query processing dan optimasi
Query prosesing adalah sebuah proses dimana deklarasi query di
terjemahkan menjadi operasi manipulasi data pada level rendah. SQL adalah
bahasa query standar yang dimiliki oleh DBMS pada saat ini. Optimisasi query
PUSAT PENGEMBANGAN BAHAN AJAR-UMB E. Didik Madyatmadja, ST. PERANCANGAN BASIS DATA 6
merujuk pada proses memilih strategi eksekusi query yang terbaik dari beberapa
alternative yang diberikan.
Pada DBMS terpusat proses tersebut melibatkan dua langkah:
1. Query dekomposisi
Query dekomposisi mengambil sebuah SQL query dan menterjemahkannya ke
dalam aljabar relasional. Pada proses tersebut query dianalisa secara
semantiksehingga query yang tidak benar dapat terdeteksi dan dikeluarkan
dengan mudah, sedangkan query yang benar dapat diterima. Simplifikasi
melibatkan pengeliminasi redundant predicat yang terjadi sebagai akibat
modifikasi query yang menggunakan views, penjagaan keamanan, dan control
integritas semantic. Query yang sederhana adalah query yang terstruktur
berdasarkan aljabar query.
2. Query optimisasi
Jika kita diberikan SQL query maka dimungkinkan ada lebih dari satu
query aljabar. Beberapa dari query aljabar ini bisa lebih baik dibandingkan query
alajbar yang lain. Kualitas dari query aljabar ditentukan oleh performansi yang
terbaik. Prosedur yang tradisional biasanya hanya menterjemahkan predikat-
predikat dan statemen target menjadi operasi relasional seperti pada saat query
dituliskan. Query tersebut kemudian ditransformasikan menggunakan aturan-
aturan transformasi aljabar, menjadi query aljabar yang terbaik nantinya. Aljabar
query yang terbaik ini dinilai berdasarkan cost function dengan menghitung cost
yang terjadi pada saat eksekusiquery tersebut. Proses inilah yang disebut query
optimisasi.
Pada DBMS terdistribusi, selain menggunakan langkan query
dekomposisi dan query optimisasi DBMS ini juga menggunakan data lokalisasi
dan global query optimisasi.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB E. Didik Madyatmadja, ST. PERANCANGAN BASIS DATA 7
Masukan dari data lokalisasi didapatkan dari langkah query dekomposisi.
Query aljabar ini dispesifikasikan pada global relation irrespective pada
fragmentasi atau distribusi.
Tujuan utama dari data localization adalah untuk melokalisasi hasil data
query dengan menggunakan informasi data terdistribusi. Pada langkah ini,
fragmen-fragmen yang terlibat pada query ditransformasikan menjadi satu
fragmen yang menjalankan relasi secara global. Telah disebutkan sebelumnya
bahwa fragmentasi diterjemahkan melalui aturan-aturan fragmentasi yang
diekspresikan oleh operasi-operasi relasional (horizontal fragmentation by
seletion, vertical fragmentation by projection). Sebuah relasi terdistribusi dapat
direkonstruksi dengan menerapkan kebalikan aturan-aturan fragmentasi. Inilah
yang disebut localization program. Localization program untuk sebuah query-
query yang terfragmentasi secara horizontal maupun vertical merupakan
union(join) dari fragmen-fragmen. Oleh karenanya pada saat langkan data
localization setiap relasi global digantikan oleh localization programnya dan
kemudian menghasilkan fragmen query yang lebih sederhana dan terstruktur
untuk menghasilkan query yang baik. Simplification dan restructuring mungkin
dapat dilakukan sesuai dengan rule yang sama yang digunakan dalam langkah
dekomposisi. Seperti pada langkan dekomposisi, fragmen terakhir dari query
hasilnya masih jauh dari optimal karena proses ini hanya meng-eliminasi aljabar
query-query yang buruk.
Input dari langkah ketiga adalah query fragmen, yang mana merupakan
aljabar query dalanm fragmen-fragmen. Tujuan dari query optimisasi dalah untuk
menemukan strategi eksekusi untuk query yang paling optimal. Sebuah strategi
pengeksekusian untuk query yang terdistribusi dapat dideskripsikan dengan
operasi-operasi aljabar relasional dan communication primitive( operasi-operasi
pengiriman dan penerimaan) untuk mentransfer data diantara bagian-bagian.
Layer-layer sebelumnya telah melakukan optimisasi pada query, sebagai contoh
dengan menghilangkan ekspresi-ekspresi yang redundant. Bagaimanapun juga,
optimasi ini tidak bergantung pada karakteristik fragmen seperti kardinalitas.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB E. Didik Madyatmadja, ST. PERANCANGAN BASIS DATA 8
Selain itu, operas-operasi komunikasi tidak bersifat spesifik. Dengan mengubah-
ubah urutan operasi dengan satu fragmen query bisa ditemukan banyak
execution plan query yang ekuivalen. Optimisasi query menemukan sebuah plan
terbaik dari beberapa kandidat plan yang telah ditemukan. Query optimizer
memiliki tiga komponen yaitu sebuah ruangan/space untuk search(search
space), sebuah cost model, dan sebuah search strategy. Search speace adalah
himpunan dari alternative execution plans yang merepresentasikan inputan
query. Plan-plan tersebut ekuivalen dan memiliki hasil yang sama tetapi memiliki
perbedaan urutan eksekusi dari operasi-opersasi dan bagaimana operasi
tersebut diimplementasikan. Cost model memprediksi cost dari execution plans
yang terbentuk. Cost model harus memiliki pengetahuan yang akurat tentang
eksekusi secara parallel. Search strategy menggali search space yang telah
dibuat dan memilih plan terbaik.
Pada lingkungan terdistribusi fungsi cost biasanya didefinisikan dengan
time units, merujuk pada sumberdaya seperti alokasi ruang disk, I/O disk, buffer
space, CPU cost, communication cost, dsb. Cost tersebut merupakan gabungan
dari seluruh I/O, CPU dan communication cost. Meskipun begitu sebuah cost
diambil dengan mempertimbangkan bahwa communication cost pada DBMS
terdistrinusi merupakan vaktor yang paling utama. Ini dapat diterapkan dengan
valid untuk wide area network dimana bandwidth yang terbatas membuat
communication menjadi lebih mahal dibanding biaya pemrosesan local. Untuk
memilih operasi-operasi yang terurut sangat penting dengan memperhitungkan
eksekusi cost dari urut-urutan dari kandidatnya. Dengan memperhitungkan cost
eksekusi sebelum query dilakukan seperti static optimization didasarkan pada
statistic-statistik fragmen dan berbagai formula untuk memperhitungkan
kardinalitas hasil operasi-operasi relasional. Oleh karenanya pemilihan
optimisasi sangat bergantung pada ketersediaan statistic-statistik dif ragmen.
Aspek yang sangat penting dari query optimisasi adalah join ordering, karena
permutasi dari join dapat meningkatkan magnitude dari beberapa permintaan-
permintaan. Salah satu dari teknik optimisasi yang mendasar adalah sequence
PUSAT PENGEMBANGAN BAHAN AJAR-UMB E. Didik Madyatmadja, ST. PERANCANGAN BASIS DATA 9
distributed join operation menggunakan semi join operator. Keuntungan utama
dari semijoin pada sistem terdistribusi adalah untuk mengurangi cost komunikasi
pada operan-operan join. Meskipun begitu ada bebrapa teknik-teknik yang
mengutamakan cost pemrosesan secara local sama dengan communication
cost, oleh karenanya teknik tersebut tidak menggunakan semijoin karena sangat
dimungkinkan meningkatkan cost pemrosesan local. Keluaran dari layer query
optimization adalah query aljabar yang menggunakan operasi-operasi
komunikasi yang terdapat pada fragmen.
Pada DBMS terdistribusi terdapat empat kegagalan yang mungkin terjadi:
transaction failure, system failure, disk failure, dan communication failure. Failure
dapat muncul ketika terjadi error yang disebabkan oleh input data. Pendakatan
biasanya dilakukan dengan cara melakukan abort, pensetingan ulang data base
pada keadaan semula.
System failure terjadi karena adanya hardware failure atau software
failure. Efek dari system failure ini adalah hilangnya content main memory. Oleh
karenanya proses update pada main memory akan hilang disebabkan terjadinya
system failure. Bagaimanapun juga isi data base disimpan pada secondary
storage merupakan keputusan yang tepat dan benar. Untuk mencapai ini DBMS
melakukan logging protocol seperti write-ahead logging dimana perubahan pada
record di database dicatat pada lock tersebut. Dari prespektif eksekusi
terdistribusi, system failure sangat penting karena sistem yang gagal tidak dapat
melakukan eksekusi transaksi.
Media failure terjadi karena kegagalan secondary storage melakukan
penyimpanan di database. Kegagalan ini dialamatkan oleh duplexing secondary
storage dan kopi database sebelumnya. Media failure biasanya diakibatkan oleh
local sistem dan tidak disimpan oleh mekanisme realibility dari DBMS
terdistribusi.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB E. Didik Madyatmadja, ST. PERANCANGAN BASIS DATA 10
Kebalikan dari terminasi adalah recovery. Ketika site tidak bisa merecover
dari kegagalan, aksi apa yang harus diambil untuk merecover database pada site
untuk menjadi state yang konsisten. Ini adalah domain dari recoveri protokol
terdistribusi. Mempertimbangkan sisi recoveri dari masalah yang didiskusikan
diatas, koordinator tempat recoveri dan recoveri protokol harus mennentukan
apa yang harus dilakukan dengan transaksi terdisitribusi yang eksekusinya telah
dikoordinasikan. Kasus dibawah ini mungkin terjadi :
1. Koordinatornya gagal sebelum menginisialisasi porcedure commit. Oleh
karena itu, koordinator akan memulai commit prosesnya sebelum recoveri.
2.Koordinator gagal saat statusnya ready. Dalam kasus ini koordinator telah
mengirim pesan prepare. Sebelum recovery koordinator akan merestart proses
commit untuk transaksi dari awal dengan mengirimkan pesan prepare satu kali.
Jika partisipannya sudah menterminasi transaksi, dapat membangun kembali
koordinatornya. Jika mereka di blok mereka mengirim ulang pesan sebelumnya,
dan meresume proses commit.
3.Koordinatornya gagal setelah ia membangun partisipan untuk masing masing
keputusan global dan menterminasi transaksi tersebut. Oleh karena itu sebelum
recoveri tidak perlu melakukan apapun.
PUSAT PENGEMBANGAN BAHAN AJAR-UMB E. Didik Madyatmadja, ST. PERANCANGAN BASIS DATA 11