Kamis, 19 Juni 2014

OPTIMISASI QUERY PADA SISTEM DATABASE PARALEL



Nama  : Zainal Rizal
Nrp      : 1110511042
  
OPTIMISASI QUERY PADA SISTEM DATABASE PARALEL

ABSTRAKSI
Arsitektur mesin database paralel telah berubah dari penggunaan hardware menjadi penggunaan arsitektur software yang memiliki aliran data secara paralel. Dengan desain yang baru ini ternyata mampu meningkatkan kecepatan proses query pada database. Dalam paper ini akan dijelaskan tentang bagaimana translasi dari query SQL ke paralel execution plan yang efisien untuk mesin database multiprosesor dengan tujuan untuk mengurangi response time dan meningkatkan troughput di lingkungan multiuser.
Kata kunci : database paralel, query
PENDAHULUAN
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
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.
Karakteristik paralel DBMS :
1.      Paralel database adalah sebuah database yang file- filenya disimpan di tiap – tiap komputer yang terhubung dengan jaringan. Ini merupakan 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.
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 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-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 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.
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. 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 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.
Parallel query optimization memiliki kesamaan dengan distributed query processing. Dimana parallel query optimization memiliki keuntungan dari intra operation parallelism dan juga inter-operation parallelism.
Intra-operation parallelism didapatkan dengancara mengeksekusi sebuah operasi yang terdapat pada node-node sebuah mesin multiprosesor. Ini membutuhkan operan-operan yang sebelumnya telah dipartisi, contohnya horizontal fragmentasi, melalui node-node. Cara melakukan partisi pada relasi dasar merupakan masalah pada physical design. Pada dasarnya, proses melakukan partisi dilakukan dengan cara menggunakan fungsi hash pada atribut relasi yang biasanya terjadi pada join atribut. Kumpulan dari node-node ini dimana sebuah relasi disimpan disebut home. Home of an operation adalah sekumpulan node-node yang harus dieksekusi dan ini harus berada pada operan-operan home bertujuan agar operasi dapat melakukan akses ke operannya sendiri. Untuk operasi-operasi biner seperti join dangat dimungkinkan terjadi proses repartisi salah satu operan-operan tersebut. Optimizer mungkin seringkali menemukan bahwa proses repartisi tersebut sangat menguntungkan. Parallel optimization untuk ,menggunakan intra-operation parallelism dapat membuat beberapa teknik dari database-database yang terdistribusi.
Inter-operation parallelism muncul ketika terdapat dua atau lebih operasi-opersai yang dieksekusi secara parallel yang memiliki sebuah dataflow. Kita menggambarkan dataflow parallelism dengan cara menggunakan pipelining. Independent parallelism muncul ketika operasi dieksekusi pada saat yang sama atau terurut permintaan. Independent parallelism mungkin terjadi ketika operasi-operasi tidak menggunakan data yang sama.

Concurrency control
Kapanpun ketika multiple user melakukan akses baik read maupun write pada shared database proses-proses ini harus disingkronisasi terlebih dahulu untuk memastikan konsistensi dari data base.sinkronisasi ini dapat diperoleh dengan menggunakan konkurensi control algoritma yang memiliki criteria kebenaran seperti serializability. User melakukan akses secara terenkapsulasi dimana operasi pada level terendah diset hanya mampu melakukan operasi read dan write pada database. Konkurensi control algoritma memaksa terjadinya isolasi pada eksekusi transaksi dimana state dari akibat transaksi pada database yang telah diisolasi oleh transaksi-transaksi yang lain sampai transaksi awal menyelesaikan eksekusinya.
Konkurensi control algoritma yang sering digunakan adalah locking-based. Sebuah lock ketika pada mode share atau exlusive diletakkan pada unit storage ketika sebuah transaksi ingin mengakses lock tersebut. Lock-lock ini diletakkan menurut aturan-aturan lock kompatibiliti seperti read write, write read, dan write write. Kita telah mengetahui bahwa teorema dari lock menjaga konkurensi transaksi agar mematuhi aturan-aturan yang memastikan serializabillity dari transaksi-transaksi tersebut: “tidak ada transaksi yang dilaksanakan sebelum transaksi sebelumnya melepaskan lock” yang disebut denga two-phase locking. Sejak transaksi berada pada growing phase, ketika transaksi tersebut mendapatkan lock dan menuju shrinking phase pada saat transaksi tersebut melepas lock. Pada umumnya melepaskan lock merupakan fase transaksi yang paling bermasalah. Oleh karena itu locking-based concurrency control algoritm sangat ketat pada saat memegang lock yang dimiliki sampai akhir transaksi.
Pada sistem DBMS tersebar, permasalahan yang harus dihadapi adalah serializability argument dan concurrency control algoritm pada ekseskusi lingkungan terdistribusi. Pada sistem ini operasi-operasi yang diberikan pada transaksi dapat melakukan eksekusi pada multiple site dimana mereka mengakses data. Pada kasus tersebut serializability argument lebih susah dilakukan. Komplikasi yang terjadi akibat dari permintaan serialization pada sejumlah transaksi yang sama dapat saja berbeda disetiap site. Oleh karenanya, kumpulan-kumpulan eksekusi transaksi trdistribusi dapat terjadi serializable jika dan hanya jika
1. Eksekusi dari sekumpulan transaksi pada setiap site adalah serializable
2. Permintaan serialization dari setiap transaksi pada semua site harus identik.
Konkurensi control algoritma terdistribusi memaksa terjadinya global serializability. Pada algoritma locking-based terdapat tiga alternative cara untuk memaksa terjadinya global serializability: centralized locking, primary copy locking, and distributed locking algoritm.
Pada centralize locking ada sebuah single lock table untuk semua distributed database. Lock tabel ini ditaruh, satu pada setiap site, dibawah control sebuah single lock manager. Lock manager bertanggung jawab untuk melakukan setting dan melepaskan lock transaksi. Semenjak semua lock diatur pada sebuah site maka ini harus melakukan centralized concurrency control dan memaksa terjadinya global serializability. Algoritma ini mudah untuk diimplementasikan tetapi memiliki dua masalah. Central site dapat terjadi bottleneck karena jumlah kerja yang diprediksi dan traffic yang terjadi. Oleh karenanya sistem gagal dalam melakukan atau tidak mampu mengatur proses tersebut.
Primary copy locking adalah sebuah algoritma concurrency control yang sangat berguna pada database tereplikasi dimana dimungkinkan terjadinya pengkopian lebih dari sebuah data yang disimpan pada site yang berbeda. Salah satu dari kopian ini dijadikan sebuah primary copy dan copy ini harus dikunci. Kumpulan dari primary copy pada setiap data dikenal oleh setiap semua site pada sistem terdistribusi dan ketika permintaan lock dari transaksi. Jika database terdistribusi tidak terjadi replikasi, copy locking tidak terjadi pada algoritma distributed locking.
Pada locking terdistribusi, tugas dari lock management adalah membagi setiap site pada sistem. Eksekusi transaksi melibatkan partisipasi dan koordinasi lock manager lebih dari satu site. Lock didapatkan pada setiap site dimana pada saat transaksi mencoba mengakses data. Locking algoritma terdistribusi tidak memiliki centralize locking meskipun begitu communication overhead untuk mendapatkan setiap lock dan kompleksitas algoritma sangan besar. Locking algoritma terdistribusi biasanya digunakan pada sistem R* dan nonstop SQL.
Efek samping dari locking based concurrency control algoritma adalah terjadinya deadlock. Proses deteksi dam menejemen deadlock pada sistem terdistribusi sangat sulit. Namun begitu kemudahan dan performansi algoritma locking yang lebih baik membuatnya lebih disukai dibandingkan alternative yang lain sepseti: timestamp-based algorithms atau optimistic concurrency control. Timestamp-based algorithm mengeksekusi operasi-operasi transaksi yang konflik menurut waktu ketika transaksi tersebut diterima.





Reliability protocols
Kita mengidentifikasikan bahwa DBMS terdistribusi lebih berpotensi menjadi reliability karena pada setiap sistem komponen mengeliminasi setiap kegagalan. Ini membutuhkan disain sistem dan implementasi protocol untuk menangani sistem failure dengan baik.
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.
Tiga tipe kegagalan yang digambarkan diatas biasanya terjadi pada centralized dan distributed DBMS. Komunication failure dilain pihak merupakan failure yang unik pada distribusi sistem. Oleh karenanya hanya ada sedikit terjadinya communication failure. Error yang sangat umum terjadi adalah proses pengitiman pesan yang tidak terurut, pesan yang hilang dan line failure. Pada umumnya dua dari kegagalan tesebut merupakan tanggungjawab dari protocol jaringan dan bukan merupakan masalah bagi DBMS terdistribusi. Jika satu sistem menginginkan pesan dari sestem yang lain dan pesan tersebut tidak pernah datang ini dapat disebabkan pesan tersebut hilang, line yang menghubungkan dua sistem tersebut rusak atau sistem tersebut gagal mengirimkan pesan. Oleh karenanya ini site failure dan communication failure tidak dapat disamakan. Salah satu line failure mungkin terjadi network partitioning dimana setiap bentuk group sistem mampu berkomunikasi dengan sesamanya tetapi tidak dapat melakukan komunikasi diluar group. Ini sangat tidak mungkin bagi database untuk melakukan pengaksesan pada saat yang bersamaan database melakukan konsistensi.
Dua property dari transaksi yang dilakukan oleh realibility protocol adalah atomicity dan durability. Atomicity memerlukan bahwa setiap semua operasi dieksekusi semuanya atau tidak samasekali. Oleh karenanya kumpulan operasi terdiri dari sebuah transaksi yang dianggap satu atomic unit. Atomicity dilakukan meskipun menghadapi failure. Durability membutuhkan commit data ketika transaksi selesai.
Pelaksanaan atomicity dan durability membutuhkan implementasi dari atomic commitment protocol dan distributed recovery protocol. Salah satu atomic commitment protocol yang sering digunakan adalah two-phase commit. Recoverability protocol dibangun diatas local recovery protocol yang bergantung pada mode interaksi DBMS dengan operating system.
Two-phase commit adalah protocol yang paling sederhana untuk menjaga commitment atomic dari transaksi trdistribusi. Ini memperlebar efek dari aksi local atomic commit pada transaksi terdistribusi dengan semua site pada saat melkukan eksekusi distribusi setuju untuk melakukan commit sebelum efek tersebut menjadi permanent. Jika seluruh site setuju melakukan commit maka semua aksi dari transaksi terdistribusi baru mendapatkan efek. Jika tidak ada satupun site yang mengkomit operasi tersebut maka semua operasi harus membatalkan transaksi tersebut. Oleh karenanya dasar dari aturan 2PC menyatakan:
1. Jika tidak satupun site yang menyatakan commit maka transaksi dibatalkan.
2. Jika semua site melakukan commit maka transaksi tersebut dijalankan.
Eksekusi sederhana dari 2PC sebagai berikut. Jika ada sebuah proses pada suatu sistem ingin melakukan eksekusi. Proses tersebut mengirimkan pesan kepada semua sistem apakah dia akan dicommit atau tidak. Lalu setiap sistem akan mengirimkan pesan “vote-commit” sedangkan sistem yang tidak mampu melakukan commit mengirimkan pesan “vote-abort” massage.

Jika telah commit,, koordinator mengirimkan pesan “global commit” ke semua partisipan, jika abort koordinator akan mengirimkan pesan “global-abort” ke partisipan yang melakukan commit terlebih dahulu terhadap transaksi. Tidak ada pesan yang yang dikirimkan ke partisipan yang meminta abort, berdasarkan aturan 2PC, transaction akan di abort secara global. Ini dikenal dengan unilateral abort dari partisipan.
Terdapat dua pergantian pesan antara koordinator dengan partisipan,yang disebut dengan protokol 2PC. Terapat beberapa variasi dari 2PC trsebut, seperti linier 2PC dab distributed 2PC, yang tidak banyak ditemukan pada vendor – vrndor DBMS terdistribusi. Dua varian yang paling penting dari 2PC adalah presumed abort2PC dan presumed commit 2PC. Kedua varian itu dianggap penting karena mereka mengurangi pesan dan overhead I/O dari protokol. Presume abort protocol meliputi X/Open XA standar dan telah diadopsi menjadi bagian standar ISO untuk Open Distributed Processing.
Karakteristik yang paling penting dari protokol 2PC adalah blocking nature. Kegagalan bisa terjadi ketika proses commit. Seperti yang telah didiskusikan, satu – satunya jalan untuk mendeteksi kegagalan tersebut adalah jika terjadi time-out ketika proses menunggu pesan. Ketika ini terjadi, proses (meliputi koordinator dan partisipan) yang time-outnya nengikuti termination protocol memutuskan apa yang harus dilakukan terhadap transaksi yang sedang berada di tengah proses commit. Non-blocking commit protocol adalah sebuah termination protocol yang dapat memutskan apa yang harus dilakukan terhadap transaksi yang mengalami kegagalan dibawah circumstance. Di kasus 2PC, jika kegagalan site terjadi pada koordinator site dan salah satu pertisipan site ketika koordinator sedang mengumpulkan votes dari partisipan, partisipan – partisipan tersebut tidak dapat memutuskan transaksi apa yang harus dijalankan pada dirinya sendiri, dan mereka harus di block sampai koordinator atau partisipan yang mengalami kegagalan bisa memperbaikinya. Selama waktu ini, lock yang diberikan kepada transaksi tersebut tidak dapat dijalankan, sehingga mengurangi availability dari database.
Dengan asumsi bahwa timeout dari partisipan terjadi setelah dia mengirimkan commit vote kepada koordinator, tetapi sebelum menerima pilihan final. Dalam kasus ini, partisipan berada dalam status ready, begitu juga yang terjadi pada termination protocol. Pertama, catat partisipan yang tidak bisa unilaterally mencapai keputusan termination. Sejak partisipan berada pada status ready, dia harus melakukan commit terhadap transaksi tersebut. Akan tetapi hal tersebut tidak dapat dirubah dan mengabortnya. Di lain pihak, it tidak dapat unilateracy memutuskan untuk commit transaksi sejak dimungkinkannya partisipant yang lain boleh memvoting untuk membatalkannya. Dalam kasus ini partisipant akan mengeblok sampai it dapat mempelajari dari seseorang (baik itu koordinator atau beberapa partisipant lainnya) the ultimate fate dari transaksi. Jika kita memperhatikan sebuah struktur komunikasi terpusat dimana partisipant tidak dapat berkomunikasi satu sama lain, berati partisipant kehabisan waktu untuk menunggu koordinator untuk melaporkan keputusan akhir dari transaksi. Sejak koordinator mengalami kegagalan, partisipant akan mengingatkan untuk diblok. Dalam kasus ini, tidak ada alasan termination protocol dapat didisain.
Jika partisipan dapat berkomunikasi satu sama lain, sebuah termination protocol terdistribusi dapat terus dikembangkan. Partisipan yang kehabisan waktu dapat meminta dengan mudah partisipan yang lain untuk membantunya mencapai sebuah keputusan. Jika selama termination semua partisipant merealisasikan bahwa hanya koordinator yang telah gagal, mereka dapat memilih koordinator baru yang dapat merestart proses yang dicommit. Akan tetapi, dalam kasus ini dimana partisipan dan koordinator mengalami kegagalan, maka masih mungkin untuk partisipan yang telah gagal menerima keputusan koordinator dan memberhentikan transaksi yang sesuai. Keputusan ini tidak diketahui oleh partisipan yang lain; Jika mereka memilih koordinator baru dan memproses maka lebih bahaya lagi mereka memutuskan transaksi yang berbeda di site yang gagal. Kasus di atas mencotohkan natural blocking dari 2 PC.
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.
REPLICA PROTOKOL
Dalam tiruan database terdistribusi, masing-masing data logic memiliki beberapa bagian fisik. Contohnya gaji dari seorang pegawai bisa disimpan di 3 tempat. Issue ditype database sytem ini adalah untuk diatur some notion dari consistensi diantara yang di copy. Kriteria konsistensi yang paling didiskusikan adalah one copy equivalence, yang assert bahwa nilai dari semua copy dari data logik harus identik saat transaksi yang di update di terminasi.
Jika transparansi dari peniruan diatur, transaksi akan Issue operasi baca dan tulis di data logik x. Replika dari control protokol bertanggung jawab untuk menempatkan operasi di x ke operasi copy fisik dari x(x1……xn). Tipe kotrol protokol tiruan yang enforces satu copy serialibility dikenal sebagai Read-once/write-all(ROWA) protokol. ROWA menempatkan setiap read di x[Read(x)] ke read di salah satu copy fisik xi[Read(xi)]. Copy yang dibaca siginifikan dari persfektif kontrol protokol tiruan dan mungkin di terminasi oleh pertimbangan performansi. Dilain pihak, masing-masing write dalam data logik x ditempatkan ke dalam kumpulan write dalam semua copyan x.
ROWA protokol simpel dan sederhana tapi membutuhkan dari semua kopi dari data logik yang di update dari semua transaksi yang dapat diakses oleh transaksi untuk di terminasi. Titik kegagalan di satu tempat dapat memblog satu transaksi dan mengurangi ketersediaan database.
Jumlah alternatif dari algoritma telah ditawarkan yang mengurangi kebutuhan semua copy dari data logic yang di update sebelum transaksi di terminasi. Mereka relax ROWA dengan melakukan penempatan setiap write menjadi satu subset dari copy fisik.
Ide dari update ini hanya subset dari copy-an. Tetapi tidak sukses menterminasi transaksinya telah menampilkan dasar dari quorum-based voting untuk kontrol protokol tiruan. Algoritma konsensus utama dapat dilihat dari persepektif yang berbeda. Ini menandakan pemilihan yang seimbag untuk setiap copy dan transaksi yang mengupdate data logik dapat sepenuhnya selesai. Selama memiliki pemilihan yang utama, berdasarkan ide ini quorum based voting algoritma terbaru menandai pemilihan untuk setiap copy data tiruan. Setiap operasi harus mendapatkan read quorum(Vr) atau write quorum(Vw) untuk read atau write data secara bijaksana. Jika data yang diberikan memiliki total dari pemilihan V quorum harus mematuhi peraturan di bawah ini.
1.Vr+Vw>V (Sebuah data tidak di read atau ditulis oleh dua buah transaksi secara konkuren, untuk menghindari read,write konflik)
2. Vw>V/2 (Dua operasi write dri dua transaksi tidak dapat terjadi secara konkuren dalam data yang sama untuk menghindari read write konflik)
Perbedaan dengan pendekatan ini adalah bahwa transaksi dibutuhkan untuk memperoleh a quorum bahkan untuk membaca data. Hal ini secara significant memperlambat akses baca ke database. Sebuah alternatif quorum-based vooting protocol mengatasi kekurangan performansi telah diusulkan. Akan tetapi, protokol ini membuat asumsi yang tidak realistik tentang underlying communication system. Protokol ini membutuhkan kegagalan yang merubah topologi network terdeteksi oleh semua tempat secara instant, dan setiap tempat memiliki view dari network terdiri dari semua tempat dimana protokol dapat melakukan komunikasi. Umumnya komunikasi network tidak dapat menggaransikan untuk memenuhi kebutuhan ini. Single copy mensejajarkan kontrol protokol tiruan umumnya dipertimbangkan untuk dibatasi untuk menyediakan availability. Di lain sisi, protokol voting-based itu terlalu rumit dengan pengeluaran tambahan yang tinggi. Oleh karena itu, teknik ini tidak digunakan di produk tertentu di DBMS terdistribusi. Skema tiruan yang lebih fleksibel tel di investigasi dimana tipe dari konsistensi antar copy tertangani. Beberapa server tiruan telah dibangun atau sedang dibangun dengan prinsip ini. Sayangnya, ada beberapa teori yang tidak jelas yan dapat digunakan untuk menjadi alasan tenta kekonsistensian dari database tiruan ketika aturan tiruan lebih luwes.
Permasalahan Peneleitian
Teknologi DBMS terdidtribusi dan paralel telah berkembang di mana kerumitan dan sistem komersial yang dapat diandalakan tersedia. Seperti yang diharapkan, ada beberapa permasalahan yang belum terselesaikan. Di sesi ini kami menyediakan oeverview beberapa dari penelitian mengenai permaslahan ini.

Data Placement
Dalam sistem database parallel, data placement yang baik adalah untuk load balancing. Idealnya, interferensi antara operasi parallel yang konkuren dihindari dengan cara memngoperasikan setiap operasi dalam sebuah independent data set. Independen data set tersebut dapat di peroleh dengan pemecahan (horizontal partitioning) dari sebuah relasi pada sebuah fungsi. Pemecahan tersebut berguna untuk memperoleh interquery parallelisme dengan mengoperasikan independent query dalam beberapa partisi yang berbeda dan intraquery parallelisme, dengan mengoperasikan operasi query pada partisi yang berbeda.
Declustering dapat menjadi single-attribute or multi-attribute. Pada kasus lain, sebuah query memerlukan persamaan dari beberapa muli atribut yang dapat diproses oleh sebuah single node tanpa komunikasi. Pilihan diantara hashing atau range index untuk partisi didesain dengan pokok permasalahan yaitu bahwa hashing dapat mengurangi overhead storage tetapi menyediakan direct support hanya untuk exact match query, sedangkan range index dapat juga mendukung range query.
Full declustering, melalui jalan mempartisikan semua node masing-masing relasi, menyebabkan masalah untuk relasi atau sistem yang kecil dengan banyak node. Solusi yang lebih baik adalah dengan variable declustering dimana setiap relasi disimpan dalam sebuah node. Hal tersebut dapat dikombinasikan dengan multi relation clustering untuk menghindari over head communication dari sebuah operasi binary. Ketika criteria yang digunakan untuk data placement berubah, dibutuhkan reorganisasi yang dinamis. Hal ini penting untuk menampilak ndinamik reorganisasi secara online dan efisien. Tetapi, existing database system menampilkan statis reorganisasi untuk databese tuning. Reorganisasi statis berjalan secara periodik ketika sistem idle untuk mengubah data placement berdasarkan perubahan dalam ukuran database atau pola akses. Tetapi, reorganisasi dinamik tidak diperlukan untuk menghentikan aktivitas-aktivitas dan menyesuaikan untuk perubahan. Reorganisasi juga sisa transparansi untuk meng-compile program-program yang berjalan pada sistem parallel. Faktanya, program- program tidak akan di recompile karena reorganisasi. Oleh karena itu, progrma-program yang telah dicompile akan menyisakan lokasi data. Hal ini menyatakan bahwa optimizer tidak mengetahui aktual node disk dimana sebuah relasi disimpan atau sebuah operasi dieksekusi. Kumpulan node dimana relasi disimpan ketika sebuah relasi dieksekusi disebut home. Kumpulan node dimana sebuah operasi akan dieksekusi disebut home of operation. Namun, optimizer memerlukan abstarka knowledge home tersebut dan sistem runtime membuat asosiasi antara home dan aktual node.
Masalah serius dalam data placement adalah bagaimana distribusi data yang akan membentuk partisi non uniform dan efek negative load balancing. Arsitektur hibrid dengan node dari memori yang berbeda dan kekuatan pemrosesan dapat diekspliotasi dengan berguna. Solusi lain adalah merawat partisi non-uniform dengan tepat. Pemisahan antara phisical and logical nodes berguna sejak logical nodes dipetakan tepat ke beberapa phisical nodes.
Faktor yang menyebabkan komplikasi dalam data placement adalah data replication/ data tiruan. Sebuah pendekatan tak dibuat-buat adalah untuk memelihara 2 data yang telah disalin, yaitu sebuah primary dan backup data dalah 2 node terpisah. Namun ketika ada kegagalan node, pengambilan node yang mempunyai salinan akan menjadi dobel, dengan demikian akan menyakiti proses load balancing. Untuk menghindari masalah tersebut, beberapa strategi pembuatan data replication dibandingkan. Sebuah solusi menarik adalah pemecahan Teradata secara selang-seling dimana pemecahan backup-copy diselenggarakan dalam beberapa nodes. Ketika terjadi kegagalan, pengambilan primary-copy diseimbangkan diantara node dari backup copy. Namun rekonstruksi primary copy dari pecahan-pecahan backup copy akan menimbulkan biaya. Jika normal, pemeliharaan backup juga akan menimbulkan cost. Solusi yang lebih baik adalah dengan pemecahan menggunakan konsep Gamma yang berurutan, dimana menyimpan primary dan backup copy dalam 2 node yang berdekatan. Jika gagal, pengambilan failed node dan backup node diseimbangkan diantara seluruh sisa nodes dengan menggunakan kedua nya. Pemeliharaan backup copy akan lebih murah.
NETWORK SCALLING PROBLEM
Database community tidak mempunyai kepahaman secara menyeluruh terhadap arti dari performansi semua alternatif desain yang mengiringi pengembangan distributed DBMS. Secara spesific, pertanyaan akan bertambah mengenai scalability beberapa protocol dan algoritma sistem. Masalah scaling hanya satu bagian dari banyak problem. Hampir semua performansi mempelajari bagaimana kita aware terhadap biaya dari sebuah simple network. Kadang-kadang tidak realistis menggunakan sebuah fixed communication delay yang bebas terhadap semua karakteristik jaringan seperti penyimpanan, ukuran pesan, jaringan,dll. Secara umum, performansi algoritma dan protocol dalam arsitektur LAN ynag berbeda tidak mudah dimengerti baik dalam kelakuan comparative nya dalam pemindahan dari jaringan LAN ke WAN. Cara yang tepat untuk mengatasi masalah scalability adalah mengembangkan model performansi yang powerful, tools dan metode pengukuran.
Distributed and Parallel Query Processing
Seperti yang telah didiskusikan sebelumnya, query optimisasi menggenerate sebuah optimal execution plan sebagai input untuk membuat keputusan memperhatikan pemesanan operasi, pergerakan data, dan pilihan antara distributed dan local algoritma untuk operasi database. Ada beberapa masalah yang berhubungan dengan langkah ini.
Cost model digunakan untuk memprediksi cost untuk mengeksekusi alternative execution plan dari sebuah query. Sebuah hal penting bahwa seringkali cost model digabungkan dengan pembatasan keefektifan optimisasi dalam meningkatkan throughput. Query optimisasi akan berguna dalam mengukur cost model yang kemudian disaring setelah melalui beberapa percobaan. Walaupun bahasa query terus meningkat (misalnya versi baru SQL akan terus dikeluarkan), optimisasi query akan selalu fokus pada subset dari bahasa query yaitu pada operasi select-project-join queri. Hal ini adalah kelas penting dari sebuah query untuk sebuah optimisasi yang bagus. Sebagai hasilnya, sebuah transaksi yang baik dikembangkan untuk sebuah proses join dan semijoin. Namun, ada query penting yang lain yang menjamin optimisasi seperti queri dengan disjunsi, union, aggregasi ataupun sorting. Sebuah solusi menjanjikan adalah untuk memisahkan pengertian optimisasi itu sendiri yang dapat didedikasikan ke beberapa optimasi yang lebih ahli.
Biaya optimisasi dan kualitas rencana eksekusi merupakan dua hal yang penting. Biaya optimisasi yang lebih tinggi mungkin diterima untuk menghasilkan plan yang lebih baik bagi sebuah query yang dieksekusi berkali-kali. Namun biaya optimisasi yang tinggi dapat tidak diterima oleh queri ad hoc yang dieksekusi hanya sekali. Biaya optimasi diperoleh dengan mencari solution space untuk alternatif rencana eksekusi. Dalam sistem terdistribusi, solution space berupa sebuah temapat yang cukup besar karena range dari strategi eksekusi nya juga luas. Oleh karena itu, penting untuk mempelajari strategi pencarian yang efisien dari sebuah aplikasi yang dapat menghindari pencarian secara mendalam. Optimisasi query menunjukkan pengeksekusian sebuah query. Masalah besar yang berkaitan dengan pendekatan ini adalah bahwa cost model digunakan untuk optimisasi yang mungkin tidak akurat karena perubahan dalam ukuran fragment atau reorgaisasi database .
Persoalan rumit yang berkaitan dengan strategi pencarian adalah masalah penggabungan permintaan dimana NP-complete dalam banyaknya hubungan [Ibaraki and Kameda, 1984]. Suatu pendekatan khas untuk memecahkan masalah adalah menggunakan dynamic programming [Selinger et al., 1979], yang berupa strategi deterministic. strategi ini hampir lengkap dan meyakinkan serta terbaik dari semua rencana yang ditemukan. itu membuat suatu cost optimisasi dapat diterima ketika kecilnya hubungan di dalam query. Akan tetapi, pendekatan ini menjadi mah al ketika banyaknya hubungan lebih besar dari 5 atau 6. Oleh sebab itu, telah ada hal baru dari strategi randomized yang mengurangi kompleksitas optimisasi, tetapi tidak menjamin terbaik dari semua rencana. Strategi randomized menyelidiki pencarian tempat dalam sebuah cara dimana bisa dikendalikan penuh seperti optimisasi yang berakhir setelah budget waktu optimisasi telah dipenuhi. Cara lain untuk mengurangi kompleksitas optimisasi adalah untuk mengambil pendekatan heuristik. Tidak seperti strategi deterministik, strategi randomized memperbolehkan optimizer untuk saling menukar waktu optimisasi untuk waktu eksekusi [Ioannidis and Wong, 1987, Swami and Gupta, 1988, Ioannidis and Kang, 1990].
Proses Transaksi Terdistribusi
Meskipun penelitiaan telah selesai pada waktunya, masih ada topic yang berguna untuk investigasi di area proses transaksi terdistribusi. Sebelumnya kita telah mendiskusikan masalah pengukuran dari algoritma manajemen transaksi. Sebenarnya, tiruan mengkontrol protokol, model transaksi yang lebih rumit, dan kriteria kebenaran non-serializable membutuhkan perhatian lebih lanjut. Tempat data tiruan membutuhkan eksperimen lebih lanjut, penelitian dibutuhkan dalam metode tiruan untuk komputasi dan komunikasi, dan kelanjutan kerja dibutuhkan untuk mengaktifkan eksplorasi semantik dari spesifik aplikasi. Percobaan di butuhkan untuk mengevaluasi tuntutan yang dibuat oleh algoritma dan system designer. Dan kita kekurangan framework yang konsisten untuk membandingkan teknik.
Salah satu kesulitan dari pengevaluasiaan teknik tiruan secara kuantitatif pada ketiadaan penerimaan model kesalahan. Sebagi contoh model Markov kadangkala digunakan untuk menganalisa ketersediaan penerimaan oleh tiruan protokol dengan menganggap statistical independence dari kesalahan individu, dan jarangnya partisi network juga berhubungan dengan kegagalan. Kita tidak mengetahui, apakah kedua asumsi tersebut dapat dipertahankan, atau kita tahu seberapa sensitif model Markov terhadap asumsi ini. Validasi dari model markov melalui simulasi membutuhkan pengukuran empirik, sejak simulasi sering memasukkan asumsi yang sama yang mendasari analisis Markov. Pada pembelajaran empirik untuk pola kegagalan monitor dalam sistem produksi dunia nyata, yang bertujuan untuk menkonstruksikan model simpel dari tipe kegagalan.
Untuk mendapatkan tujuan dari data tiruan, yaitu availabiliy dan performance, sangatlah penting menyediakan sistem terintegrasi sedemikian sehingga data tiruan bergerak sejalan dengan peniruan dari komputasi dan komunikasi. Hanya data tiruan yang telah di pelajari secara intensif, yang hanya sedikit yang telah selesai tirukan di komputasi dan komunikasi.
Yang berhubungan dengan peniruan, kerja lebih dibutuhkan di model transaksi yang berkolaborasi, terutama yang memanfaatkan semantik dari aplikasi. Ketersediaan yang lebih besar dan performansi yang dapat dibuktikan , sama halnya dengan konkurensi, dapat diraih denga model tersebut. Teknologi database memasuki domain aplikasi yang baru seperti engineering design, software development, dan office information system, membutuhkan perubahan transaksi. Oleh karena itu, kerja lebih dibutuhkan dalam transaksi yang lebih kompleks.
Model transaksi yang rumit sangat penting dalam sistem terdistribusi untuk beberapa alasan. Yang paling penting adalah domain aplikasi yang baru yang di support oleh DBMS terdistribusi di masa yang akan datang membutuhkan model transaksi yang berkerja sama lebih abstrak dalam operasi yang mengeksekusi data yang kompleks. Aplikasi ini memiliki paradigma sharing yang berbeda dibandingkan tipe-tipe database.
Object Oriented DBMS saat ini sedang diinvestigasi sebagai kandidat yang potensial untuk menemukan kebutuhan dari “advance” aplikasi. Sistem ini men-enkapsulasi operasi dengan data. Oleh karena itu, mereka membutuhkan definis yang jelas dari perubahan sementiknya, dan model transaksi yang dapat mengekspoitasi semantik dari operasi yangg di enkapsulasi [Ozsu, 1994].
KESIMPULAN
DBMS terdistribusi dan paralel telah mejadi realitas di beberapa tahun belakangan. Mereka menyediakan fungsionalitas dari centralized DBMSs, tetapi di lingkungan yang datanya terdistribusi melalui tempat komputer network atau di multiprocessor system. Database terdistribusi telah memiliki pergerakan yang alami dan ekspansi dari database dengan sedikit penambahan dari mesin yang baru. Karateristik nilai performansi sistem ini, menguntungkan untuk meningkatkan teknologi komputer network. DBMS paralel mungkin satu-satunya yang realistis untuk menemukan kebutuhan performansi dari keberagaman aplikasi penting yang menempatkan signifikan kebutuhan output di DBMS. Untuk mendapatkan kebutuhan ini, DMBS terdistribusi dan paralel harus di disain dengan pertimbangan khusus untuk protokol dan strategi. Di sini kami menyediakan overview dari protokol dan startegi ini.
Terdapat beberapa isu yang berhubungan yang tidak kami jelaskan. Dua topik utama yang kami gunakan adalah multidatabase system dan distributed object-oriented database. Hampir sebagian informasi menyusun sistem lainnya dengan DBMS inplementasinya sendiri. Kebutuhan selanjutnya adalah untuk mengintegrasikan otonomi ini dan sistem heterogen yang mungkin menyingkapi kesulitan yang heterogen. Sistem yang menyediakan akses ke disain yang mandiri dan implementasi, kemungkinan yang heterogen, dan database di sebut multidatabase system [Sheth and Larson, 1990].
Penetrasi dari teknologi database management ke area yang sistem database relasionalnya yang tidak di disain untuk melayani telah membangkitkan keinginan untuk melakukan penelitian model sistem yang baru dan arsitektur. Kandidat utama untuk menemukan kebutuhan dari sistem ini adalah DBMS object oriented. Distribusi dari object-oriented DBMSs meningkatkan isu katagori umum sebagai manajemen objek terdistribusi.
KAMUS ISTILAH
Atomicity : properti dari proses transaksi dimana semua operasi dari transaksi tereksekusi atau tidak ada yang tereksekusi sama sekali. (semua atau tidak sama sekali)
Arsitektur Client/Server : Sebuah arsitektur DBMS yang paralel atau terdistribusi dimana satu set mesin dengan kemampuan yang terbatas untuk mengakses sustu server yang bertugas mengatur data.
Algoritma Concurency Control : Algoritma yang mensinkronkan operasi-operasi dari transaksi-transaksi yang bersamaan pada sebuah shared database.
DBMS terdistribusi : Sebuah DBMS yang mengatur database yang terdistribusi antar titik dari sebuah jaringan komputer dan membuat distribusi ini jelas untuk user.
Deadlock : sebuah keadaan dimana setiap transaksi saling menunggu lock yang sedang digunakan oleh transaksi lain pada suatu saat.
Durability : properti dari sebuah proses transaksi dimana hasil dari transaksi yang sudah sukses menahan beberapa kegagalan.
Inter-query parallelism : eksekusi paralel dari query yang banyak di-generate oleh transaksi yang konkuren.
Intra-query parallelism : eksekusi paralel dari operasi yang banyak, memungkinkan dalam satu query.
Isolation : properti dari eksekusi transaksi yang mengakibatkan sebuah transaksi di database diidolasi dari transaksi lainnya sampai transaksi yang pertama selesai.
Locking : Sebuah metode pengaturan konkurensi dimana lock ditempatkan di unit database untuk kepentingan transaksi yang mencoba mengaksesnya.
Query Optimization : proses dengan startegi eksekusi terbaik untuk memberikan query terbaik dari beberapa alternativ yang ada.
Query Processing : proses yang deklarasi query nya diterjemahkan ke low-level operasi manipulasi data.
Parallel database management system : sebuah DBMS yang diimplementasikan pada suatu multiprocessor yang digabungkan.
Quorum-based voting algorithm : tiruan mengendalikan protokol dimana transaksi mengumpulkan suara untuk mari embaca dan menulis salinan item data. mereka diijinkan untuk membaca atau menulis item data jika mereka dapat mengumpulkan suatu korum dari suara
Read-Once/Write-All protocol : tiruan mengendalikan protokol yang mana memetakan masing-masing operasi baca logic menjadi read dari salinan fisik dan memetakan operasi tulis logic menjadi tulis dari salinan fisik
Serializability : pengontrolan secara konkurensi kepada kebenaran dari kriteria yang membutuhkan eksekusi konkuren dari transaksi harus ekuivalen terhadap efek dari eksekusi serial transaksi tersebut
Shared-disk architecture : arsitektur DBMS paralel dimana semua prosesor memiliki akses kesemua unit disk melalui interkoneksi tetapi dengan aksesyang eksklusif ke memori utama.
Shared-memory architecture : arsitektur DBMS paralel dimana semua prosesor memiliki akses ke setiap modul memory atau disk melalui interkoneksi yang cepat.
Shared-nothing architecture : arsitektur DBMS paralel dimana semua prosesor memiliki akses eksklusive ke memori utama dan unit disk nya masing-masing.
Stable database: bagian dari database yang disimpan dalam secondary storage.
Termination protocol : protokol dimana individu dapat memutuskan bagaimana melakukan terminasi terhadap beberapa transaksi saat mereka tidak dapat berkomunikasi dengan sesamanya ketika transaksi sedang di eksekusi.
Transaction : unit dari konsisten dan atomik eksekusi.
Transparency :perluasan dari data independent ke sistem terdistribusi dengan menyembunyikan pendistribusiannya, fragmentasi, dan data tiruan dari user.
Two-phase commit : atomik komitmen protokolyang memastikan jika transaksi ditermminasi dengan cara yang sama disetiap tempat transaksi tersebut dieksekusi.
Two-phase locking : algoritma penguncian dimana transaksi tidak di perkenankan untuk memminta lock baru setelahmenjalankan lock sebelumnya.
Volatile database : bagian dari database yang disimpan di buffer memori utama.

DAFTAR PUSTAKA
[1]   Abdullah,  D.  (2003).  Query  Optimization  in
Distributed  Databases.Middle  East  Technical
University.
[2]   Alom,B.M.M.,  Henskens,  F.,  &  Hannaford,  H.
(2009).  Query  Processing  and  Optimization  in
Distributed Database Systems. IJCSNS. VOL.9 No.9.
halaman 143-152. 2009.
[3]  Bell,  D.,  Grimson,  J.  (1992).  Distributed  Database
System. Addison-Wesley Publishing Company, Inc.
Great Britain.
[4]   Chin,  W.  C.  1984.  An  Optimization  of  Queries  in
Distributed  Database  Systems.  JOURNAL  OF
PARALLEL  AND  DISTRIBUTED  COMPUTING  3.
halaman 137-157. 1986.
[5]   Elmasri,  Ramez  &  Navathe,  Shamkat  (2010).
Fundamentals  of  Database  Systems.  6th  edition.
Addison Wesley.
[6]   Groth, David and Skandler, Toby (2009). Network+
Study Guide, Fourth Edition. Sybex, Inc
[7]  McQuerry,  Steve.  'CCNA  Self-Study:
Interconnecting  Cisco  Network  Devices  (ICND),
Second Edition'. Cisco Press
[8]  Microsoft  Developer  Network.  (2013).  Query
Window  Statistics  Pane.
http://msdn.microsoft.com/enus/library/aa216969%28SQL.80%29.aspx.  1  Januari
2014