Improving Scalability of Java Archive Search Engine through Recursion Conversion And Multithreading
Based on the fact that bytecode always exists on Java archive, a bytecode based Java archive search engine had been developed [1, 2]. Although this system is quite effective, it still lack of scalability since many modules apply recursive calls and this system only utilizes one core (single thread)....
Main Author: | |
---|---|
Format: | Article |
Language: | English |
Published: |
Bina Nusantara University
2016-05-01
|
Series: | CommIT Journal |
Subjects: | |
Online Access: | https://journal.binus.ac.id/index.php/commit/article/view/1653 |
_version_ | 1797714456976818176 |
---|---|
author | Oscar Karnalim |
author_facet | Oscar Karnalim |
author_sort | Oscar Karnalim |
collection | DOAJ |
description | Based on the fact that bytecode always exists on Java archive, a bytecode based Java archive search engine had been developed [1, 2]. Although this system is quite effective, it still lack of scalability since many modules apply recursive calls and this system only utilizes one core (single thread). In this research, Java archive search engine architecture is redesigned in order to improve its scalability. All recursion are converted to iterative forms although most of these modules are logically recursive and quite difficult to convert (e.g. Tarjan’s strongly connected component algorithm). Recursion conversion can be conducted by following its respective recursive pattern. Each recursion is broke down to four parts (before and after actions of current and its children) and converted to iteration with the help of caller reference. This conversion mechanism improves scalability by avoiding stack overflow error caused by method calls. System scalability is also improved by applying multithreading mechanism which successfully cut off its processing time. Shorter processing time may enable system to handle larger data. Multithreading is applied on major parts which are indexer, vector space model (VSM) retriever, low-rank vector space model (LRVSM) retriever, and semantic relatedness calculator (semantic relatedness calculator also involves multiprocess). The correctness of both recursion conversion and multithread design are proved by the fact that all implementation yield similar result. |
first_indexed | 2024-03-12T07:52:15Z |
format | Article |
id | doaj.art-d9b425bc8d3d4e59831e11d73c2540f7 |
institution | Directory Open Access Journal |
issn | 1979-2484 2460-7010 |
language | English |
last_indexed | 2024-03-12T07:52:15Z |
publishDate | 2016-05-01 |
publisher | Bina Nusantara University |
record_format | Article |
series | CommIT Journal |
spelling | doaj.art-d9b425bc8d3d4e59831e11d73c2540f72023-09-02T20:32:57ZengBina Nusantara UniversityCommIT Journal1979-24842460-70102016-05-01101152610.21512/commit.v10i1.16531392Improving Scalability of Java Archive Search Engine through Recursion Conversion And MultithreadingOscar Karnalim0Maranatha Christian UniversityBased on the fact that bytecode always exists on Java archive, a bytecode based Java archive search engine had been developed [1, 2]. Although this system is quite effective, it still lack of scalability since many modules apply recursive calls and this system only utilizes one core (single thread). In this research, Java archive search engine architecture is redesigned in order to improve its scalability. All recursion are converted to iterative forms although most of these modules are logically recursive and quite difficult to convert (e.g. Tarjan’s strongly connected component algorithm). Recursion conversion can be conducted by following its respective recursive pattern. Each recursion is broke down to four parts (before and after actions of current and its children) and converted to iteration with the help of caller reference. This conversion mechanism improves scalability by avoiding stack overflow error caused by method calls. System scalability is also improved by applying multithreading mechanism which successfully cut off its processing time. Shorter processing time may enable system to handle larger data. Multithreading is applied on major parts which are indexer, vector space model (VSM) retriever, low-rank vector space model (LRVSM) retriever, and semantic relatedness calculator (semantic relatedness calculator also involves multiprocess). The correctness of both recursion conversion and multithread design are proved by the fact that all implementation yield similar result.https://journal.binus.ac.id/index.php/commit/article/view/1653scalabilityrecursion conversionmultithreadingjava archive search enginemultiprocess |
spellingShingle | Oscar Karnalim Improving Scalability of Java Archive Search Engine through Recursion Conversion And Multithreading CommIT Journal scalability recursion conversion multithreading java archive search engine multiprocess |
title | Improving Scalability of Java Archive Search Engine through Recursion Conversion And Multithreading |
title_full | Improving Scalability of Java Archive Search Engine through Recursion Conversion And Multithreading |
title_fullStr | Improving Scalability of Java Archive Search Engine through Recursion Conversion And Multithreading |
title_full_unstemmed | Improving Scalability of Java Archive Search Engine through Recursion Conversion And Multithreading |
title_short | Improving Scalability of Java Archive Search Engine through Recursion Conversion And Multithreading |
title_sort | improving scalability of java archive search engine through recursion conversion and multithreading |
topic | scalability recursion conversion multithreading java archive search engine multiprocess |
url | https://journal.binus.ac.id/index.php/commit/article/view/1653 |
work_keys_str_mv | AT oscarkarnalim improvingscalabilityofjavaarchivesearchenginethroughrecursionconversionandmultithreading |