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)....

Full description

Bibliographic Details
Main Author: Oscar Karnalim
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