Algoritma concurrency control merupakan algoritma pengendalian akses konkurensi pada sistem sehingga objek yang diakses bersifat konsisten. Penelitian tentang concurrency control sudah dilakukan sejak 30 tahun lalu dan sudah banyak algoritma yang dihasilkan. Algoritma yang dihasilkan umumnya menggunakan asumsi bahwa Transaction Manager adalah satu-satunya modul yang digunakan pengguna untuk mengakses objek.
Sekarang ini akses terhadap objek dilakukan orang tidak hanya melalui Transaction Manager, tetapi juga melalui aplikasi internet. Pola tingkah laku transaksi melalui aplikasi internet berbeda dengan aplikasi tradisional. Algoritma concurrency control yang ada seperti two phase locking kurang tepat dan berkinerja buruk pada aplikasi internet. Untuk itu dibutuhkan suatu algoritma concurrency control baru yang sesuai dengan aplikasi internet.
Foto: Pixabay |
Banyak algoritma concurrency control yang sudah dipublikasikan. Algoritma-algoritma yang dipublikasikan umumnya dibuat khusus untuk sistem database. Pada sistem database tradisional, modul untuk mengakses data disebut Transaction Manager (suatu modul yang diinstalasi pada komputer user) adalah satu-satunya modul yang digunakan user untuk mengakses data. Selain itu algoritma yang ada mengasumsikan bahwa pola tingkah laku transaksi (pengguna) dapat diantisipasi. Salah satu algoritma tersebut dan banyak digunakan adalah two phase locking. Algoritma ini menggunakan mekanisme locking untuk mengatur eksekusi transaksi yang simultan. Algoritma ini dinilai kurang tepat atau berkinerja buruk bila digunakan pada sistem berbasis objek yang menggunakan aplikasi internet (aplikasi berbasis web) untuk mengakses objek, karena pola tingkah laku transaksi pada aplikasi internet sangat sulit diantisipasi. Suatu transaksi pada aplikasi berbasis web bisa saja tanpa diakhiri oleh commit atau abort, atau kalau diakhiri oleh commit atau abort mungkin dalam waktu yang cukup lama.
Shi dan Perizzo memperkenalkan algoritma ROCC (Read-commit Order Concurrency Control). Algoritma ini menggunakan struktur RC-queueuntuk mengurut transaksi atau akses terhadap objek. Tetapi algoritma ini masih terdapat kelemahannya, yaitu algoritma ROCC melakukan restart atau abort pada suatu transaksi walaupun eksekusi transaksi tersebut tidak tumpang tindih dengan transaksi lain. Penelitian ini melakukan perbaikan terhadap algoritma ROCC sehingga restart atau abort hanya pada transaksi yang eksekusinya tumpang tindih dengan yang lain. Penelitian ini juga melakukan kajian simulasi untuk mengevaluasi kinerja algoritma yang diperbaiki dengan algoritma ROCC dan two-phase locking.
Model Sistem Berbasis Objek
Sistem berbasis objek dapat didefinisikan sebagai suatu kumpulan objek yang tersimpan secara terstruktur pada sistem komputer. Objek dicatat sebagai x, y, z, dst. Objek dapat berupa data, file, gambar, suara, atau potongan video.
Kumpulan objek tersebut seringkali saling berhubungan dan berkaitan satu dengan objek lainya, sehingga pada sistem tersebut terdapat suatu kendala integritas (integrity constraints) yang harus selalui dipenuhi oleh setiap objek. Sistem yang memenuhi kendala integritas disebut consistent. Sehingga akses terhadap sistem dapat dianggap sebagai proses transformasi sistem dari satu consistent ke consistent yang lain. Tetapi, sering kali ketika user mengakses objek untuk melakukan transformasi database ke consistent yang baru, kendala-kendala tersebut dilanggar secara temporer. Contohnya, bila user ingin melakukan transfer dana dari suatu rekening bank ke rekening bank yang lain, maka pelanggaran kendala konsistensi (bahwa jumlah saldo semua rekening sama dengan jumlah liabilitas bank) secara temporer tidak dapat dihindari, yaitu pada saat suatu rekening bank sudah didebit dan rekening bank yang lain belum di kredit. Atas dasar ini akses-akses terhadap sistem dikelompokkan menjadi suatu kesatuan konsistensi yang disebut transaksi (transaction). Dengan perkataan lain, transaksi memetakan sistem dari keadaan konsisten ke keadaan konsisten yang baru.
Untuk meningkatkan kinerja sistem, eksekusi transaksi-transaksi diperbolehkan simultan (concurrence). Tetapi eksekusi transaksi-transaksi yang tumpang tindih (intervening) tidak dibolehkan, karena eksekusi transaksi yang tumpang tindih ini akan membuat sistem tidak konsisten. Untuk itu sistem membutuhkan suatu mekanisme yang memantau dan mengendalikan eksekusi transaksi yang simultan sehingga tidak ada eksekusi transaksi yang tumpang tindih. Mekanisme tersebut dikenal sebagai concurrency control. Tujuan utama concurrency control adalah menjaga konsistensi sistem dan menjamin setiap transaksi dieksekusi tanpa melanggar propertisnya, yaitu Automicity, Consistency, Isolation, dan Durability (ACID).
Sistem terpusat terdiri dari lima komponen utama, yaitu transaksi, Transaction Manager (TM), Scheduler, Objek Manager (OM), dan Storage. TM berfungsi sebagai front end object processing. Eksekusi setiap transaksi dipandu oleh TM. Hal ini berarti transaksi dan operasi-operasinya diisukan oleh TM, kemudian TM mengirimnya ke Scheduler. Bentuk dan rancangan TM berorientasi pada aplikasi. Scheduler berada antara TM dan OM. Scheduleradalah modul yang mengatur urutan operasi pada objek yang diisukan oleh TM, dan Scheduler bertanggung jawab menjadwalkan operasi transaksi ke OM. OM adalah modul yang mengeksekusi operasi objek yang dikirim oleh Scheduler. OM bertanggung jawab bahwa operasi yang disampaikan kepadanya terekam pada storage. Sedangkan storage adalah kumpulan objek yang terintegrasi dan saling berhubungan
0 Komentar