Abstract
As the amount of electronic documents increases rapidly with the growth of the Internet, a parallel search engine capable of handling a large number of documents are becoming ever important. To implement a parallel search engine, we need to partition the inverted index and search through the partitioned index in parallel. There are two methods of partitioning the inverted index: 1) document-identifier based partitioning and 2) keyword-identifier based partitioning. However, each method alone has the following drawbacks. The former is convenient in inserting documents and has high throughput, but has poor performance for top h query processing. The latter has good performance for top-k query processing, but is inconvenient in inserting documents and has low throughput. In this paper, we propose a hybrid partitioning method to compensate for the drawback of each method. We design and implement a parallel search engine that supports the hybrid partitioning method using the Odysseus DBMS tightly coupled with information retrieval capability. We first introduce the architecture of the parallel search engine-Odysseus/parallel-OOSQL. We then show the effectiveness of the proposed system through systematic experiments. The experimental results show that the query processing time of the document-identifier based partitioning method is approximately inversely proportional to the number of blocks in the partition of the inverted index. The results also show that the keyword-identifier based partitioning method has good performance in top-k query processing. The proposed parallel search engine can be optimized for performance by customizing the methods of partitioning the inverted index according to the application environment. The Odysseus/parallel OOSQL parallel search engine is capable of indexing, storing, and querying 100 million web documents per node or tens of billions of web documents for the entire system.
최근 들어 인터넷의 성장으로 인하여 문서의 양이 기하급수적으로 증가함에 따라, 대용량의 문서를 마르게 검색 할 수 있는 병렬 정보 검색 엔진에 대한 중요성이 더욱 대두되고 있다. 병렬 정보 검색 엔진을 구현하기 위하여서는 역 색인을 분할하고, 분할된 역 색인을 통하여 병렬적으로 검색하는 것이 필요하다. 역 색인을 분할하는 기존 방법으로는 1) 문서 식별자 분할 방법과 2) 식별자 분할 방법이 있다. 그러나 각 분할 방법은 다음과 같은 단점들을 가지고 있다. 문서 식별자 분할 방법은 문서의 추가가 용이하고 처리량(throughput)이 높은 반면에 top-k 질의 처리 성능이 좋지 않다. 그리고 식별자 분할 방법은 top-k 질의 처리 성능이 좋은 반면에 문서의 추가가 어렵고 처리량이 낮다. 본 논문에서는 이러한 단점들을 해결하기 위하여 혼합 분할 방법을 제안하고 이를 정보 검색 기능과 밀결합된 DBMS인 오디세우스에 실현한 병렬 정보 검색 엔진을 설계하고 구현한다. 먼저, 제안된 병렬 정보 검색 엔진인 오디세우스/parallel-OOSQL의 아키텍쳐를 설명한다. 그리고 체계적인 실험을 통하여 제안된 시스템의 유용성을 보인다. 실험 결과, 문서 식별자 분할 방법은 질의 처리 시간이 역 색인 분할의 블록의 개수에 근사적으로 역 비례함을 보였으며, 키워드 식별자 분할 방법은 top-k 질의 처리에 좋은 성능을 보였다. 본 논문에서 제안된 병렬 정보 검색 엔진은 세 가지 분할 방법을 모두 제공하기 때문에 응용 환경에 따라 분할 방법을 커스터마이즈함으로써 항상 좋은 성능을 낼 수 있다. 오디세우스/parallel-OOSQL 병렬 정보 검색 엔진은 각 슬레이브 노드 당 1억 건의 웹 문서를, 시스템 전체로는 수십억 건의 웹 문서를 인덱스하여 저장하고 질의를 처리할 수 있다.