Mekanisme untuk Mencegah Duplikasi

1 2 3 4 ... n Daftar Antrean tabel daftar_antrean Pengumpul Ambil URL Simpan URL dari resumptionToken bila ada Gambar 3.10 Antrean pada Sistem Pengumpul Metadata Tunggal 1 2 3 4 ... n Daftar Antrean tabel daftar_antrean Pengumpul y Ambil URL Simpan URL dari resumptionToken bila ada Pengumpul x Gambar 3.11 Antrean pada Sistem Pengumpul Metadata Terdistribusi Sistem pengumpul metadata tunggal maupun terdistribusi mengambil alamat repositori dari daftar antrean. Tidak ada perbedaan mekanisme terhadap tata cara pengambilan alamat repositori tersebut meskipun lokasi daftar antrean antara pengumpul metadata tunggal dan terdistribusi berbeda. Pengumpul secara terus menerus akan mengecek ketersediaan alamat repositori di dalam daftar antrean.

3.4.1 Mekanisme untuk Mencegah Duplikasi

Pada proses tunggal tanpa proses paralel, mekanisme pengambilan alamat repositori tidak sulit karena data diambil secara berurutan. Pada sistem tunggal dengan proses paralel atau pada sistem terdistribusi hal ini menimbulkan masalah Universitas Sumatera Utara yaitu kemungkinan terjadinya duplikasi. Oleh karena itu perlu dikembangkan mekanisme untuk mencegah terjadinya duplikasi pada pengumpulan metadata. Mekanisme pencegah duplikasi yang digunakan pada penelitian ini adalah menyiapkan sebuah kolom baru pada tabel daftar antrean yaitu status. Status mempunyai nilai dari 0 – 3. Nilai 0 berarti bahwa alamat tersebut belum diambil sama sekali. Nilai awal alamat url dari openarchive.org maupun yang ditambahkan dari resumptionToken adalah 0. Nilai 1 berarti bahwa alamat sedang diambil. Nilai 1 diberikan setelah pengumpul berhasil mengambil alamat repositori dari daftar antrean. Nilai 2 berarti bahwa alamat tersebut telah diambil dan metadata berhasil disimpan. Nilai ini diberikan setelah pengumpul melakukan penguraian dan menyimpan metadata ke dalam database. Terakhir, nilai 3 yang berarti bahwa alamat terebut telah diambil tetapi metadata tidak berhasil disimpan dikarenakan kegagalan pada server repositori, alamat url tidak valid, dokumen XML tidak valid maupun jaringan yang terputus. Dengan penerapan mekanisme ini, berarti diperlukan akses ke database. Hal ini masih memungkinkan bahwa beberapa proses paralel pada satu pengumpul secara bersamaan mengakses tabel daftar antrean dan mengubah kolom status pada baris yang sama. Untuk mencegah proses paralel tersebut saling tumpang tindih, maka diperlukan sinkronisasi antar proses paralel. Sinkronisasi dapat diterapkan dengan menambahkan kata kunci synchronized pada metode yang digunakan untuk memperbaharui kolom status. Universitas Sumatera Utara Selain itu masih terdapat masalah apabila proses yang mengakses tabel daftar antrean tidak berasal dari satu komputer yang sama. Apabila proses yang berasal dari komputer yang berbeda secara bersamaan mengakses tabel daftar_antrean, maka penggunaan sinkronisasi tidak akan membantu. Untuk mengatasi masalah ini, sebuah fitur dari MySQL dapat membantu yaitu menggunakan fitur penguncian tabel table locking . Apabila tabel daftar_antrean yang sedang digunakan dalam keadaan terkunci, maka proses lain harus menunggu proses tersebut selesai untuk dapat mengubah nilai pada tabel tersebut. Dengan metode ini, satu perubahan pada tabel daftar_antrean Gambar 3.10 dan 3.11 hanya dapat dilakukan oleh satu proses dalam satu waktu.

3.5 Pengunduhan Metadata