Shared
Data dan Transaction
Shared Data
Pengertian
Sharing Data / Resource Sharing
Dalam sistem terdistribusi, beberapa komputer yang
berbeda saling terhubung
satu sama lain melalui jaringan sehingga komputer yang satu dapat mengakses dan menggunakan sumber
daya yang terdapat dalam situs lain.
Misalnya, user di komputer A dapat menggunakan laser printer yang dimiliki komputer B dan sebaliknya user
di situs B dapat mengakses file yang terdapat di komputer A.
•
Pengaksesan resource pada sistem terdistribusi yang memerlukan:
-
Nama resource (untuk pemanggilan)
-
Alamat (lokasi resource tersebut)
-
Rute (bagaimana mencapai lokasi tersebut)
•
Name Service memiliki konsentrasi pada aspek penamaan, dan pemetaan antara nama & alamat,
bukan pada masalah rute, yang dibahas
di Jaringan Komputer.
•
Resource yang dipakai dalam Name Service adalah: komputer, layanan, remote object, berkas,
pemakai.
•
Keuntungan Shared Data
-
Mengurangi biaya duplikasi usaha pengumpulan data
-
Aman-menjaga data dalam lingkungan yang aman
-
Back-up data
•
Kelemahan Shared Data
Kemudahan sharing file dalam jaringan yang ditujukan
untuk dipakai oleh
orang-orang tertentu, seringkali mengakibatkan bocornya sharing folder dan dapat dibaca pula oleh orang
lain yang tidak berhak. Hal ini akan selalu
terjadi
apabila tidak diatur oleh administrator jaringan.
Sementara
data sharing salah satu basis ini menguntungkan, pengarsipan
dataset melalui organisasi yang berdedikasi adalah lebih baik.
Pusat
data memiliki infrastruktur terpusat dan in-house semua aspek keahlian dalam menelan data,
Kurasi, persiapan, dokumentasi, penyimpanan,
penyebaran, dukungan pengguna dan promosi.
•
Tujuan Shared Data
Sharing resources bertujuan agar seluruh program,
peralatan atau peripheral
lainnya dapat dimanfaatkan oleh setiap orang yang ada pada jaringan komputer tanpa terpengaruh
oleh lokasi maupun pengaruh dari
pemakai.
•
Manfaat Share Data
Walaupun perangkat sekarang sudah memiliki kemampuan
yang cepat dalam
proses-proses komputasi, atau misal mengakses data, tetapi pengguna masih saja menginginkan ssitem
berjalan dengan lebih cepat. Apabila
hardware
terbatas, kecepatan yang diinginkan user dapat di atasi dengan menggabung perangkat yang ada
dengan sistem.
Fault Tolerance
Salah satu tujuan
dalam membangun sebuah system terdistribusi adalah memungkinkan untuk melakukan
improvisasi terhadap kehandalan sistem. Ini dilakukan karena setiap system
pasti akan menemukan kesalahan atau gangguan. Sehingga perlu untuk dibuat
pencegahan atau solusi untuk mengatasi masalah tersebut. Availability: kalau
mesin mati (down), sistem tetap harus berjalan dengan jumlah layananan
yang tersisa. Dalam suatu sistem terdistribusi komponen dalam system yang
sangat vital terutama pada resources (critical resources) berjumlah
seminimal mungkin. Yang dimaksud dengan critical resources adalah komponen
dalam system yang harus ada untuk menjalankan sistem terdistribusi.
Secara umum, ada
dua jenis fault tolerant, yaitu fault tolerant secara hardware dan secara
software. Untuk itu, masing - masing Software dan Hardware harus di replikasi.
Sehingga kalau terjadi kegagalan / error maka yang lain akan menangani.
Data dalam sistem terdistribusi tidak boleh hilang, oleh karena itu copy dari
data atau resource lainnya tersebut disimpan secara redundan pada server lain,
tapi tetap harus dijaga konsistensi datanya. Hal ini memang berkaitan
dengan replikasi. Dengan membuat system terdistribusi yang fault tolerance maka
Sistem harus bisa mendeteksi kegagalan dan melakukan tindakan dasar sebagai berikut:
1.Mask the fault (menutupi kegagalan): tugas harus dapat
dilanjutkan dengan menurunkan kinerja tapi tanpa terjadi kehilangan data
atau informasi.
2.Fail Gracefully: membuat
suatu antisipasi terhadap suatu kegagalan ke suatu prosedur yang telah di
rencanakan dan memungkinkan untuk menghentikan proses dalam waktu yang
singkat tanpa menghilangkan informasi atau data.
Transaksi (Transaction)
Transaksi merupakan bagian
dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan
juga melakukan serangkaian perubahan data. DBMS yang kita gunakan harus
menjamin bahwa setiap transaksi harus dapat dikerjakan secara utuh atau tidak
sama sekali. Tidak boleh ada transaksi yang hanya dikerjakan sebagian,
karena dapat menyebabkan inkonsistensi basis data. Untuk itu transaksi
selalu merubah basis data dari satu kondisi konsisten ke kondisi konsisten
lain.
Sebuah transaksi berpeluang untuk ‘mengganggu’ integritas basis data yang dapat membuat
kondisi/hubungan antar data tidak seperti seharusnya. Untuk menjamin agar
integritas dapat tetap terpelihara maka setiap transaksi harus memiliki
sifat-sifat:
1. Atomik, dimana semua
operasi dalam transaksi dapat dikerjakan seluruhnya atau tidak sama sekali.
2. Konsisten, dimana eksekusi
transaksi secara tunggal harus dapat menjamin data tetap konsisten setelah
transaksi berakhir.
3. Terisolasi, jika pada sebuah
sistem basis data terdapat sejumlah transaksi yang dilaksanakan secara
bersamaan, maka semua transaksi yang dilaksanakan pada saat yang bersamaan
tersebut harus dapat dimulai dan bisa berakhir.
4. Bertahan, dimana perubahan
data yang terjadi setelah sebuah transaksi berakhir dengan baik, harus dapat
bertahan bahkan jika seandainya sistem menjadi mati
Terhentinya suatu transaksi tidak selalu diakibatkan oleh kegagalan insidental
baik dari perangkat keras (crash) ataupun kemacetan sistem operasi
(hang). Tapi lebih sering terjadi karena user sengaja menghentikan
transaksi atau karena penghentian transaksi oleh DBMS akibat adanya kondisi tak
diinginkan, seperti deadlock atau timeout.
Sebuah transaksi dapat menghasilkan dua kemungkinan:
a. Jika dilaksanakan lengkap seluruhnya, transaksi
tersebut telah di commit dan basis data mencapai keadaan konsisten baru.
b. Jika transaksi tidak sukses, maka transaksi
dibatalkan dan basis data dikembalikan ke keadaan konsisten sebelumnya (rollback).
Transaksi yang
sudah di commit tidak dapat dibatalkan lagi. Jika ada kesalahan, maka
harus dilakukan transaksi lain yang membalik dampak transaksi sebelumnya. Status-status yang
dapat dicapai oleh sebuah transaksi sejak mulai dilaksanakan hingga selesai atau batal
adalah:
1. Aktif (Active), yang merupakan
status awal (initial state) sebuah transaksi yang menunjukkan transaksi
tersebut masih dieksekusi.
2. Berhasil Sebagian (Partially Committed), yaitu keadaan yang dicapai transaksi tepat pada saat operasi terakhir
dalam transaksi selesai dikerjakan.
3. Gagal (Failed), yang merupakan keadaan dimana sebuah transaksi terhenti
pengeksekusiannya sebelum tuntas sama sekali.
4. Batal (Aborted), yaitu keadaan dimana sebuah transaksi
dianggap tidak/belum dikerjakan yang tentu dengan terlebih dahulu diawali
dengan mengembalikan semua data yang telah diubah ke nilai-nilai semula. (yang menjadi tanggung jawab DBMS).
5. Berhasil Sempurna (Committed), keadaan dimana transaksi telah dinyatakan berhasil
dikerjakan seluruhnya dan basis data telah merefleksikan perubahan-perubahan
yang memang diinginkan transaksi.
Ketika sebuah
transaksi mulai dikerjakan, maka transaksi itu berada dalam status aktif. Jika terjadi penghentian sebelum operasi
berakhir, maka transaksi segera beralih ke statusgagal/failed.
Namun, bila keseluruhan transaksi selesai dikerjakan, maka transaksi itu berada
pada status berhasil
sebagian/partially committed, dimana
perubahan-perubahan data masih berada di dalam memori utama yang bersifat volatile/tidak
permanen. Transaksi dalam status ini masih mungkin untuk pindah ke status
failed, karena ada pembatalan transaksi baik sengaja maupun tidak. Jika
tidak beralih ke status failed, maka nilai-nilai data yang ada di memori utama
akan direkam ke dalam disk yang bersifat permanen. Begitu proses
perekaman selesai, maka transaksi beralih ke status committed. Sementara itu, transaksi yang berada pada status failed, maka DBMS harus
menjalan proses rollback. Proses tersebut dapat berupa:
· Mengulangi pelaksanaan transaksi / restart, yang dilakukan pada
transaksi yang failed akbiat kemacetan perangkat keras ataupun perangkat lunak
dan bukannya penghentian transaksi secara sengaja oleh user.
· Mematikan transaksi / kill, yang dilakukan untuk transaksi yang dihentikan
secara sengaja oleh user atau akibat adanya kesalahan lojik dalam penulisan
aplikasi.
Begitu salah satu dari pilihan proses
tersebut selesai dilakukan, maka transaksi berpindah ke status batal (aborted).
Status berhasil sempurna/committed maupun
batal/abortedmerupakan status terminasi, yaitu status akhir dalam
pelaksanaan transaksi.