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