KR100989904B1 - partitioning method for high-speed BLAST search on the PC cluster - Google Patents

partitioning method for high-speed BLAST search on the PC cluster Download PDF

Info

Publication number
KR100989904B1
KR100989904B1 KR1020090026176A KR20090026176A KR100989904B1 KR 100989904 B1 KR100989904 B1 KR 100989904B1 KR 1020090026176 A KR1020090026176 A KR 1020090026176A KR 20090026176 A KR20090026176 A KR 20090026176A KR 100989904 B1 KR100989904 B1 KR 100989904B1
Authority
KR
South Korea
Prior art keywords
node
cluster
database
server
performance
Prior art date
Application number
KR1020090026176A
Other languages
Korean (ko)
Other versions
KR20100107857A (en
Inventor
김태경
정승현
오상근
조완섭
Original Assignee
충북대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 충북대학교 산학협력단 filed Critical 충북대학교 산학협력단
Priority to KR1020090026176A priority Critical patent/KR100989904B1/en
Publication of KR20100107857A publication Critical patent/KR20100107857A/en
Application granted granted Critical
Publication of KR100989904B1 publication Critical patent/KR100989904B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

개선된 시퀀스 데이터 분할 기법과 질의 처리 기법을 이용하여 다수의 PC를 이용하여 저비용으로 대용량 BLAST 데이터베이스 검색의 성능을 향상시키는 클러스터 시스템을 개발하기 위한 PC 클러스터 기반 BLAST 고속 검색을 위한 파티셔닝 방법이 개시된다. 본 발명은 데이터베이스를 각 노드의 메모리 사양과 성능에 맞추어 배치하여 저가의 PC를 활용하여 생명공학 분야에서 가장 널리 사용되는 BLAST 처리용 고성능 클러스터 컴퓨터 구축할 수 있으며, 경영학 분야의 대용량 OLAP 분석 처리용 고성능 클러스터 컴퓨터 구축할 수 있는 효과가 있다.Disclosed is a partitioning method for a PC cluster-based BLAST fast search for developing a cluster system that improves the performance of a large-scale BLAST database search at low cost by using a plurality of PCs using an improved sequence data partitioning technique and a query processing technique. The present invention can be arranged according to the memory specifications and performance of each node to build a high-performance cluster computer for BLAST processing most widely used in the biotechnology field using a low-cost PC, high-performance for large-capacity OLAP analysis processing in business administration The effect is to build a cluster computer.

Description

PC 클러스터 기반 BLAST 고속 검색을 위한 파티셔닝 방법{partitioning method for high-speed BLAST search on the PC cluster}Partitioning method for high-speed BLAST search on the PC cluster}

본 발명은 PC 클러스터 기반 BLAST 고속 검색을 위한 파티셔닝 방법에 관한 것으로, 특히 개선된 시퀀스 데이터 분할 기법과 질의 처리 기법을 이용하여 다수의 PC를 이용하여 저비용으로 대용량 BLAST 데이터베이스 검색의 성능을 향상시키는 클러스터 시스템을 개발하기 위한 PC 클러스터 기반 BLAST 고속 검색을 위한 파티셔닝 방법에 관한 것이다. The present invention relates to a partitioning method for PC cluster-based BLAST fast search. In particular, a cluster system that improves the performance of a large-scale BLAST database search at low cost by using a plurality of PCs using an improved sequence data partitioning technique and a query processing technique. The present invention relates to a partitioning method for BLAST fast search based on PC cluster.

일반적으로, PC 클러스터는 개인용 컴퓨터(PC)를 여러 대를 연결하여 한 대의 고성능 컴퓨터처럼 사용하는 것이다. 슈퍼컴퓨터를 구입하는 것 보다 가격이 저렴하여 각광받고 있으며, 이학, 공학, 계산, 시뮬레이션, 렌더링 등 방대한 계산이 필요한 곳에 응용되고 있다. 즉, 클러스터링은 가변적인 업무부하를 처리하거나, 또는 그 중 한 대가 고장이 났을 경우에도 운영이 계속되도록 여러 대의 컴퓨터 시스템을 서로 연결하는 것을 지칭한다. 두 개 이상의 컴퓨터를 마치 하나의 컴퓨터처럼 행동하도록 서로 연결함으로써, 병렬 처리나, 부하 배분 및 고장 대비 등의 목적에 사용할 수 있다.In general, a PC cluster uses a personal computer (PC) as a single high-performance computer by connecting several. It is cheaper than purchasing a supercomputer, and it has been in the spotlight, and it is applied to a place where extensive calculations such as science, engineering, calculation, simulation, and rendering are needed. In other words, clustering refers to linking multiple computer systems together to handle variable workloads or to continue operations even if one of them fails. By connecting two or more computers together to act as a single computer, they can be used for purposes such as parallel processing, load distribution, and fault tolerance.

또한, BLAST(The Basic Local Alignment Search Tool)기술은 생명 정보학에서 사용되는 기술로써, DNA 혹은 단백질의 서열을 비교해 주는 프로그램이다. 유저가 원하는 서열을 입력하고 데이터 베이스를 선택해 주면 서열을 비교해서 가장 유사성이 높은 결과부터 출력하고, 비교된 서열에 대한 정보도 같이 링크(link)시킨다. 보통 DNA 서열의 경우 6개의 프레임(frame)으로 전환(translation)하여 각각의 아미노산 서열을 단백질 데이터 베이스와 비교하여 결과를 보여 주기도 한다. 종래의 PC 클러스터에서 BLAST 검색을 위한 데이터 파티셔닝 기법은 크게 전체 복사 기법(Full Replication), 논리적 복사 기법(Logical Replication) 및 물리적 시스템 분할 기법(Physical Partitioning)의 3가지로 구분된다. In addition, BLAST (The Basic Local Alignment Search Tool) technology is a technology used in bioinformatics, which is a program that compares DNA or protein sequences. When the user inputs the desired sequence and selects a database, the sequences are compared and output from the results with the highest similarity, and the information on the compared sequences is linked together. Usually, DNA sequences are translated into six frames to compare the results of each amino acid sequence with a protein database. In the conventional PC cluster, data partitioning techniques for BLAST retrieval are classified into three types: full replication, logical replication, and physical partitioning.

전체 복사 기법(Full Replication)은 도 1a에서 보는 바와 같이, 데이터베이스를 여러 노드에 물리적으로 복제하고 나서 PBS, Condor와 같은 스케줄러로 각 질의를 노드에 분배하고 처리하는 방식이다. 이 방식은 구현이 간단하고 다수 질의를 동시에 처리하여 생산성을 극대화할 수 있으나, 단일 질의에 대한 응답시간을 줄일 수 없고, 대량의 여러 데이터베이스를 동시에 갱신하는 비용이 많이 든다. 또한, 각 데이터베이스 크기가 노드의 메모리보다 크면 스래싱(Thrashing) 현상이 발생하여 성능과 효율이 떨어지는 문제점이 있었다. Full replication is a method of physically replicating a database to multiple nodes, as shown in FIG. 1A, and then distributing and processing each query to nodes using a scheduler such as PBS and Condor. This approach is simple to implement and maximizes productivity by processing multiple queries simultaneously, but it does not reduce the response time for a single query, and it is expensive to update many databases simultaneously. In addition, when each database size is larger than the memory of the node, a thrashing phenomenon occurs, resulting in a decrease in performance and efficiency.

논리적 복사 기법(Logical Replication)은 도 1b에서 보는 바와 같이, 현재 대부분 생명 정보 분야에서 주로 활용하는 방식으로 각 노드가 NFS(Network File System) 서버의 서열 데이터베이스에 접근하여 BLAST 연산을 수행하도록 구성된다. 물리적인 데이터베이스가 한 개 있으므로 업데이트가 편리하고 관리가 쉽지만, 데 이터베이스가 대량인 경우 즉, 데이터 베이스가 각 PC의 캐쉬 메모리(Cache)보다 큰 경우 각 노드가 전체 데이터베이스를 저장하지 못하고 네트워크상에서 스래싱 현상이 발생하여 성능이 급격히 저하되는 문제점이 있었다.     Logical replication (Logical Replication), as shown in Figure 1b, is configured to perform each BLAST operation by accessing the sequence database of the NFS (Network File System) server in a manner that is mainly used in the field of life information. One physical database is convenient for updating and easy to manage, but if the database is large, that is, if the database is larger than each PC's cache memory, each node will not be able to store the entire database, There was a problem that the performance is drastically reduced due to the lashing phenomenon occurs.

물리적 시스템 분할 기법(Physical Partitioning)은 도 1c에서 보는 바와 같이, 각 노드에 분할된 데이터베이스를 저장하고 같은 질의를 수행하고서 그 결과를 병합하는 방식이다. 이 방식은 각 노드가 처리할 데이터베이스를 메모리에 완전히 캐쉬하여 입출력(I/O)을 줄일 수 있으므로 성능과 효율을 높일 수 있는 반면, 분산된 다수 노드에 데이터베이스를 물리적으로 같은 크기로 분할하고 갱신하는 비용이 많이 들고 한 노드에 장애가 발생하면 전체 결과의 일관성이 저해되는 문제점이 있었다.    Physical partitioning is a method of storing a partitioned database on each node, performing the same query, and merging the results as shown in FIG. 1C. This method improves performance and efficiency by reducing the I / O by completely caching the database to be processed by each node in memory, while partitioning and updating the database physically the same size across multiple distributed nodes. If the cost is high and a node fails, there is a problem that the consistency of the whole result is impaired.

본 발명은 상기와 같은 문제점을 해결하기 위하여 발명된 것으로, 랜 리눅스 PCI 카드를 장착한 PC들을 서버에 연결하여 NFS(Network File System)방식으로 약 결합된 클러스터 시스템을 구축하고, 구축된 클러스터 시스템에서 서버 데이터를 각 PC에 논리적 분할(Logical Partitioning)기법으로 분할함과 동시에 히스토그램 기법을 활용하여 데이터를 균등하게 배치함으로써, 분할된 데이터베이스에 대하여 최적의 검색을 지원하는 질의 분할과 결과 결합방법을 제공하기 위한 PC 클러스터기반 BLAST 고속 검색을 위한 파티셔닝 방법을 제공하는 데 그 목적이 있다. The present invention has been invented to solve the above problems, by connecting PCs equipped with a LAN Linux PCI card to the server to build a cluster system that is about coupled by NFS (Network File System) method, in the cluster system built By dividing the server data into logical partitioning technique in each PC and evenly distributing the data using histogram technique, it provides query partitioning and result combining method that supports optimal search for partitioned database. An object of the present invention is to provide a partitioning method for a PC cluster-based BLAST fast search.

이와 같은 목적을 수행하기 위한 본 발명은 다수개의 PC(120a~120n)에 원격부팅을 위한 랜 리눅스 PCI 카드(122a~122n)를 장착시킨 다음 서버(100)에 커널, 시스템 영역, 사용자 영역 등의 PC노드를 위한 영역인 클러스터 미들웨어(110)를 구성하며, 상기 PC 부팅 시 원격부팅 모드를 선택하도록 하는 시스템 구성단계; 서버(100)에는 검색할 서열 데이터베이스를 배치하고, 각 PC(120a~120n)노드는 NFS(130)로 접근하여 데이터베이스의 파티션을 메모리에 상주시키며, 상기 클러스터 미들웨어는 사용자 질의를 PC 노드에 분배하고, 각 노드 PC 별로 검색을 실행한 후, 그 결과를 다시 통합하여 최종결과를 생성하는 결과 생성단계; 서버는 PC 노드의 검색 결과를 서버의 하드 디스크에 보관하고, 각 PC 노드는 검색 결과를 마스터 서버에 NFS를 이용하여 전송하고, 클러스터 미들웨어는 각 PC에서 전송된 결과를 통합하는 결과 통합단계로 구성된다. In order to accomplish the above object, the present invention mounts a LAN Linux PCI card 122a to 122n for remote booting on a plurality of PCs 120a to 120n, and then installs a kernel, a system area, a user area, and the like on the server 100. A system configuration step of configuring a cluster middleware 110 that is an area for a PC node, and selecting a remote booting mode when the PC is booted; In the server 100, a sequence database to be searched is placed, and each PC 120a to 120n node accesses the NFS 130 to reside a partition of the database in memory, and the cluster middleware distributes a user query to a PC node. A result generating step of performing a search for each node PC and integrating the results again to generate a final result; The server keeps the PC node's search results on the server's hard disk, each PC node sends the search results to the master server using NFS, and the cluster middleware is a result consolidation step that consolidates the results sent from each PC. do.

본 발명에 따른 PC 클러스터기반 BLAST 고속 검색을 위한 파티셔닝 방법에서는 검색할 서열 데이터베이스를 Master Server에 저장하고 각 PC 노드는 NFS로 접근하여 데이터베이스의 파티션을 메모리에 로드시키며, 클러스터 미들웨어는 질의를 PC 노드에 분배하고, 데이터베이스를 각 노드의 메모리 사양과 성능에 맞추어 배치하여 저가의 PC를 활용하여 생명공학 분야에서 가장 널리 사용되는 BLAST 처리용 고성능 클러스터 컴퓨터 구축할 수 있으며, 경영학 분야의 대용량 OLAP 분석 처리용 고성능 클러스터 컴퓨터 구축할 수 있는 효과가 있다. In the partitioning method for the fast search of PC cluster-based BLAST according to the present invention, the sequence database to be searched is stored in the Master Server, each PC node accesses NFS to load the partition of the database into memory, and the cluster middleware sends a query to the PC node. By distributing and arranging the database according to the memory specifications and performance of each node, it is possible to build a high performance cluster computer for BLAST processing, which is the most widely used in biotechnology by utilizing low cost PC, and high performance for processing large-scale OLAP analysis in business administration. The effect is to build a cluster computer.

이하 첨부된 도면을 참조하여 본 발명에 따른 PC 클러스터기반 BLAST 고속 검색을 위한 파티셔닝 방법을 설명하면 다음과 같다. Hereinafter, a partitioning method for a PC cluster-based BLAST fast search according to the present invention will be described with reference to the accompanying drawings.

본 발명에 따른 PC 클러스터기반 BLAST 고속 검색을 위한 파티셔닝 방법은 도 2에서 보는 바와 같이 다수개의 PC(120a~120n)에 서버(100)로부터 원격부팅을 위한 랜 리눅스 PCI 카드(122a~122n)를 장착시킨다. PC에 랜 리눅스 PCI 카드가 장착되면 서버에 커널, 시스템 영역, 사용자 영역 등의 PC노드를 위한 영역인 클러스터 미들웨어(110)를 구성한다. 서버(100)에서 NFS, DHCP, 미들웨어 데몬을 구동하고, PC 부팅 시 원격부팅 모드를 선택하도록 한다. In the partitioning method for PC cluster-based BLAST fast searching according to the present invention, as shown in FIG. 2, a plurality of PCs 120a to 120n are equipped with a LAN Linux PCI card 122a to 122n for remote booting from the server 100. Let's do it. When the LAN Linux PCI card is installed in the PC, the cluster middleware 110, which is an area for a PC node such as a kernel, a system area, and a user area, is configured in the server. Run the NFS, DHCP, middleware daemon on the server 100, and select the remote boot mode when the PC boot.

그런 다음 검색할 서열 데이터베이스는 서버(100)에 배치하고, 각 PC(120a~120n)노드는 NFS(130)로 접근하여 데이터베이스의 파티션을 메모리에 상주시킨다. 서열 데이터베이스를 노드의 개수로 나누어 분할된 데이터베이스를 각 PC 노드의 캐쉬 메모리에 배치한다. 이는 각 PC 노드에서 데이터베이스 검색 시 서버와의 스래싱을 제거하고 메모리를 적극 활용하므로 단일 고성능 시스템에 비해 성능을 급격히 향상시킬 수 있다. 단일 고성능 서버 또는 PC로 처리하는 경우 대용량 데이터베이스를 메모리에 캐쉬하지 못하므로 스래싱이 많이 발생한다. Then, the sequence database to be searched is placed in the server 100, and each PC 120a to 120n node accesses the NFS 130 to reside a partition of the database in memory. The sequence database is divided by the number of nodes and the partitioned database is placed in the cache memory of each PC node. This eliminates thrashing the server and actively utilizes memory when searching the database on each PC node, which can dramatically improve performance over a single high-performance system. Processing with a single high-performance server or PC does not cache large databases in memory, resulting in a lot of thrashing.

클러스터 미들웨어는 사용자 질의를 PC 노드에 분배하고, 각 노드 PC 별로 검색을 실행한 후, 그 결과를 다시 통합하여 최종결과를 생성하는 과정을 반복한다. The cluster middleware distributes user queries to PC nodes, executes a search for each node PC, and then integrates the results again to generate a final result.

PC 노드의 검색 결과를 서버의 하드 디스크에 보관하는 데, PC 노드에서 처리한 결과를 하나씩 직접 서버로 저장하는 경우 발생하는 I/O를 최소화하기 위해 PC 메모리의 일부를 램 디스크(RAM DISK)로 할당한 뒤 질의 결과를 버퍼링하고, 램 디스크(RAM DISK)의 용량이 90% 이상 차면 서버로 저장한다.  The results of the PC node are stored on the server's hard disk.In order to minimize the I / O that occurs when the PC node processes the results one by one directly to the server, a portion of the PC memory is transferred to the RAM disk. After allocating, the query results are buffered and saved to the server when the RAM DISK is over 90% full.

각 PC 노드는 검색 결과를 마스터 서버에 NFS를 이용하여 전송하고, 클러스터 미들웨어는 각 PC에서 전송된 결과를 통합하게 된다. Each PC node sends the search results to the master server using NFS, and the cluster middleware integrates the results sent from each PC.

다음은 통합 알고리즘임. The following is the integrated algorithm.

for each node // 각 노드에 대해서 확인함      for each node // check for each node

if completed number of jobs % 1000 == 0   if completed number of jobs% 1000 == 0

count++; // 노드 개수 증가    count ++; // increase node count

if count == number of nodes   if count == number of nodes

merge_results_from_nodes(); // 1000개 단위로 결과 통합    merge_results_from_nodes (); // consolidate results into 1000 units

write_to_server_result(); // 통합한 결과를 서버로 저장    write_to_server_result (); // save integration result to server

count=0; // 초기화    count = 0; // reset

}     }

}  }

본 발명은 도 5에서 보는 바와 같이 미들웨어 영역에서 클러스터 초기화와 작업 명령을 내리고 PC 노드에서 할당된 작업을 수행한 뒤 결과를 수집하는 과정이 반복된다. In the present invention, as shown in FIG. 5, the process of initializing a cluster and performing a work command in the middleware region, performing a task assigned to the PC node, and collecting a result is repeated.

본 발명에서 PC 클러스터 초기화 작업은 핵심적인 기능을 하는 것으로 자원의 동적인 추가 및 삭제에 능동적으로 대응하여 자원을 적극적으로 활용할 수 있도록 지원한다. 다음은 PC 클러스터 초기화를 위한 알고리즘이다.In the present invention, the PC cluster initialization task is a core function, and supports the active use of resources by actively responding to the dynamic addition and deletion of resources. The following is the algorithm for PC cluster initialization.

Initialize_Cluster()    Initialize_Cluster ()

int new_node_count, old_node_count, // 노드 개수    int new_node_count, old_node_count, // node count

record ; // 노드에 분배할 데이터베이스     record; // database to distribute to node

while(1) //지속적으로 노드의 개수를 확인하면서 데이터베이스 재분배    while (1) // redistribute the database while continuously checking the number of nodes

new_node_count = get_Number_Of_Nodes(); //참여한 PC 노드 개수 확인    new_node_count = get_Number_Of_Nodes (); // Check the number of PC nodes involved

if(new_node_count!=old_node_count)//노드 개수 변경;노드 수 증가 또는 감소 wait_until_sync(); //현재 PC에서 처리 중인 작업이 종료할 때 까지 대기    if (new_node_count! = old_node_count) // change node count; increase or decrease node count wait_until_sync (); // wait until the current processing on the PC is finished

record = DB_SIZE/new_node_count; //DB를 노드 수로 나누어 분배 사이즈 결정   record = DB_SIZE / new_node_count; // divide DB by number of nodes to determine distribution size

allocate_DB_to_Nodes(record);//각 노드에 할당된 DB를 PC메모리로 캐쉬  allocate_DB_to_Nodes (record); // Cache DB allocated to each node to PC memory

}         }

old_node_count = new_node_count;     old_node_count = new_node_count;

sleep(1);      sleep (1);

}    }

}}

위의 알고리즘에서는 클러스터 PC 노드의 개수를 확인한 다음, 서열 데이터 베이스를 PC 노드 개수로 나누어, 각 서열 데이터 베이스를 PC 노드의 캐쉬 메모리에 배치한다. 초기화 작업은 데몬 형태로 운영이 되며 노드 수의 변경이 생기면 현재 처리 중인 작업이 종료된 다음 자원의 재배치를 수행한다. 이 전략은 기존 클러스터의 강결합(Tightly-Coupled)된 정적인 개수의 노드에서 동적인 자원의 추가가 불가능한 단점을 극복하였고, 물리적으로 데이터 베이스를 분할하여 클러스터 노드에서 처리할 경우 하나의 노드 장애 시 발생하는 처리 결과 값에 대한 불일치(inconsistency)문제를 해결하였다.In the above algorithm, after checking the number of cluster PC nodes, the sequence database is divided by the number of PC nodes, and each sequence database is placed in the cache memory of the PC node. Initialization works in daemon form, and when the number of nodes changes, the current processing is terminated and the resources are relocated. This strategy overcomes the disadvantage of not being able to add dynamic resources to the tightly-coupled static number of nodes in the existing cluster.In the event of a single node failure when the database is physically partitioned and processed by cluster nodes This solves the problem of inconsistency on the result of processing.

본 발명의 경우 PC 노드의 메모리의 총 사용량이 데이터베이스의 크기 보다 클 경우 서버와의 I/O가 없어지므로 성능이 급격히 증가하게 된다. 하지만 반대의 경우 스래싱이 발생하여 성능이 급격히 저하되는 현상이 발생하게 된다. 이러한 문제를 극복하기 위해 미들웨어 내부에서 각 PC 노드에 분할된 데이터베이스가 캐쉬 메모리보다 클 경우 도 6에서 보는 바와 같이 Escalation/Deescalation 이라는 재분배 과정을 거쳐 데이터 베이스를 완전히 캐쉬 메모리에 배치할 수 있는 상태로 변경하여 성능 향상을 유도하였다.  In the case of the present invention, if the total amount of memory used by the PC node is larger than the size of the database, the I / O with the server is lost, so the performance is increased rapidly. In the opposite case, however, thrashing occurs and the performance is drastically reduced. In order to overcome this problem, if the database partitioned at each PC node is larger than the cache memory in the middleware, the database can be completely placed in the cache memory through a redistribution process called Escalation / Deescalation as shown in FIG. To improve performance.

본 발명에 따른 PC 클러스터기반 BLAST 고속 검색을 위한 파티셔닝 방법은 도 7에서 보는 바와 같이 노드 수(X축)가 증가함에 따라 응답시간(Y축)이 급격히 빨라짐을 확인할 수 있다. 특히, 알고리즘의 특성상 입력 서열의 길이가 짧을수록 처리 시간이 빠르고, 성능 향상 정도가 높음을 확인할 수 있는 데 (a)짧은 서열일 경우 100bytes ~ 1000bytes 와 (b) 긴 서열일 경우에서 1000bytes~10000bytes 비교하면 이를 알 수 있다. In the partitioning method for PC cluster-based BLAST fast searching according to the present invention, as shown in FIG. 7, the response time (Y-axis) rapidly increases as the number of nodes (X-axis) increases. In particular, the shorter the length of the input sequence, the faster the processing time and the higher the performance improvement.The comparison of (a) 100bytes to 1000bytes for short sequences and (b) 1000bytes to 10000bytes for long sequences You can see this.

본 발명의 더 정확한 성능평가를 위해 도 8에서는 노드 투입 대비 성능향상 정도(Speedup)를 보여준다. 노드의 수에 비례하여 성능이 급격히 증가함을 확인할 수 있는 데 특히, 데이터베이스가 메모리에 모두 캐쉬 되는 2개의 노드에서 성능이 가장 급격히 향상된다. In order to more accurately evaluate the performance of the present invention, FIG. 8 shows a speedup rate compared to node injection. It can be seen that the performance increases drastically in proportion to the number of nodes. In particular, the performance improves most rapidly on two nodes where the database is all cached in memory.

2개의 노드에서 성능향상 정도는 100 Base Pair에서 13.6, 10000 Base Pair 에서 3.2이다. 타 실험에 의하면 SMP 컴퓨터와 클러스터에서의 성능향상은 각각 1.8~1.9, 1.9의 성능을 보여준다. 결과적으로 본 연구의 시스템 성능이 SMP 시스템보다 1.5~7배 정도 우수함을 확인할 수 있다. The performance improvement at 2 nodes is 13.6 at 100 Base Pair and 3.2 at 10000 Base Pair. According to other experiments, performance improvement of SMP computer and cluster shows performance of 1.8 ~ 1.9, 1.9 respectively. As a result, our system performance is 1.5 ~ 7 times better than SMP system.

도 9는 본 발명의 노드 투입 대비 효율(Efficiency)을 보여준다. 2개의 노드에서 최대의 효율을 보여주며 노드가 증가함에 따라 효율이 떨어지지만, 50개의 노드에서도 최소 100%의 효율을 보여준다. 최대 50개의 노드까지 모든 경우에서 모두 100%를 넘는 효율을 유지하는 데 본 실험에서 5개 노드에서의 효율은 서열의 크기에 따라 1~5.7이고, SMP 컴퓨터에서는 0.2~0.8, 클러스터에서는 0.6~0.7의 효율이다. 9 shows the efficiency (Efficiency) compared to the node input of the present invention. The maximum efficiency is shown at two nodes, and the efficiency decreases as the nodes increase, but at least 100% at 50 nodes. In all cases, up to 50 nodes are maintained at over 100% efficiency. In this experiment, the efficiency at 5 nodes is 1 ~ 5.7 depending on the size of the sequence, 0.2 ~ 0.8 on SMP computer, 0.6 ~ 0.7 on cluster. Is the efficiency.

따라서, 본 발명에 따른 PC 클러스터기반 BLAST 고속 검색을 위한 파티셔닝 방법의 성능평가를 수행한 결과 성능향상, 효율 측면에서 모두 뛰어남을 확인할 수 있다. Therefore, as a result of performing the performance evaluation of the partitioning method for the PC cluster-based BLAST fast search according to the present invention, it can be seen that the performance improvement and efficiency are both excellent.

이상에서 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명하였으나, 본 발명은 이에 한정되는 것이 아니며 본 발명의 기술적 사상의 범위 내에서 당업자에 의해 그 개량이나 변형이 가능하다.Although the preferred embodiments of the present invention have been described in detail with reference to the accompanying drawings, the present invention is not limited thereto and may be improved or modified by those skilled in the art within the scope of the technical idea of the present invention.

도 1a는 종래의 PC 클러스터에서 BLAST 검색을 위한 데이터 파티셔닝 기법 중 전체 복사 기법(Full Replication)을 설명하기 위한 개념도이다. FIG. 1A is a conceptual diagram illustrating a full replication technique among data partitioning techniques for BLAST search in a conventional PC cluster.

도 1b는 종래의 PC 클러스터에서 BLAST 검색을 위한 데이터 파티셔닝 기법 중 논리적 복사 기법(Logical Replication)을 설명하기 위한 개념도이다. FIG. 1B is a conceptual diagram illustrating a logical replication technique among data partitioning techniques for BLAST search in a conventional PC cluster.

도 1c는 종래의 PC 클러스터에서 BLAST 검색을 위한 데이터 파티셔닝 기법 중 물리적 시스템 분할 기법(Physical Partitioning)을 설명하기 위한 개념도이다. FIG. 1C is a conceptual diagram illustrating physical partitioning among data partitioning techniques for BLAST search in a conventional PC cluster.

도 2는 본 발명에 따른 PC 클러스터 기반 BLAST 고속 검색을 위한 파티셔닝 방법의 시스템 구성도이다. 2 is a system diagram of a partitioning method for PC cluster-based BLAST fast searching according to the present invention.

도 3은 본 발명에 따른 PC 클러스터 기반 BLAST 고속 검색을 위한 파티셔닝 방법의 동작을 설명하기 위한 개념도이다. 3 is a conceptual diagram illustrating an operation of a partitioning method for a PC cluster-based BLAST fast search according to the present invention.

도 4는 본 발명에 따른 PC 클러스터 기반 BLAST 고속 검색을 위한 파티셔닝 방법에서 PC 노드와 서버와의 통신규칙을 설명하기 위한 개념도이다.4 is a conceptual diagram illustrating a communication rule between a PC node and a server in a partitioning method for a PC cluster-based BLAST fast search according to the present invention.

도 5는 본 발명에 PC 클러스터 기반 BLAST 고속 검색을 위한 파티셔닝 방법에서 PC 노드와 서버와의 동작을 설명하기 위한 흐름도이다.5 is a flowchart illustrating an operation of a PC node and a server in the partitioning method for PC cluster-based BLAST fast searching according to the present invention.

도 6은 본 발명에 따른 PC 클러스터 기반 BLAST 고속 검색을 위한 파티셔닝 방법에서 클러스터 미들웨어에서의 데이터베이스 분배 동작을 설명하기 위한 개념도이다.FIG. 6 is a conceptual diagram illustrating a database distribution operation in cluster middleware in a partitioning method for PC cluster-based BLAST fast search according to the present invention.

도 7a와 b는 본 발명에 따른 PC 클러스터 기반 BLAST 고속 검색을 위한 파티셔닝 방법에서 짧은 서열(a)과 긴 서열(b)에 대한 BLAST 처리 응답 시간을 보여주 기 위한 그래프이다. 7A and 7B are graphs showing BLAST processing response times for short sequence (a) and long sequence (b) in the partitioning method for PC cluster-based BLAST fast searching according to the present invention.

도 8a와 b는 본 발명에 따른 PC 클러스터 기반 BLAST 고속 검색을 위한 파티셔닝 방법에서 짧은 서열(a)과 긴 서열(b)에 대한 BLAST 처리 향상 정도를 보여주기 위한 그래프이다. 8A and 8B are graphs showing the degree of improvement of BLAST processing for short sequence (a) and long sequence (b) in the partitioning method for PC cluster-based BLAST fast searching according to the present invention.

도 9a와 b는 본 발명에 따른 PC 클러스터 기반 BLAST 고속 검색을 위한 파티셔닝 방법에서 짧은 서열(a)과 긴 서열(b)에 대한 BLAST 처리 효율을 보여주기 위한 그래프이다. 9A and 9B are graphs showing BLAST processing efficiency for short sequence (a) and long sequence (b) in the partitioning method for PC cluster-based BLAST fast searching according to the present invention.

Claims (2)

다수개의 PC(120a~120n)에 원격부팅을 위한 랜 리눅스 PCI 카드(122a~122n)를 장착시킨 다음 서버(100)에 커널, 시스템 영역, 사용자 영역등의 PC노드를 위한 영역인 클러스터 미들웨어(110)를 구성하며, 상기 PC 부팅 시 원격부팅 모드를 선택하도록 하는 시스템 구성단계;LAN Linux PCI cards 122a to 122n for remote booting are mounted on a plurality of PCs 120a to 120n, and then cluster middleware 110, which is an area for PC nodes such as a kernel, system area, and user area, to the server 100. A system configuration step of selecting a remote booting mode when the PC is booted; 상기 서버(100)에는 검색할 서열 데이터베이스를 배치하고, PC(120a~120n)노드는 NFS(130)로 접근하여 상기 서열 데이터베이스를 상기 PC노드의 개수로 나누어 분할된 데이터베이스를 각 PC(120a~120n)노드의 캐쉬 메모리에 배치시키며, 상기 클러스터 미들웨어는 사용자 질의를 PC 노드에 분배하고, 각 노드 PC 별로 검색을 실행한 후, 그 결과를 다시 통합하여 최종결과를 생성하는 결과 생성단계; In the server 100, a sequence database to be searched is arranged, and the PCs 120a to 120n access the NFS 130 to divide the sequence database by the number of the PC nodes and divide the divided database into each PC 120a to 120n. A result generating step of distributing a user query to a PC node, performing a search for each node PC, and then integrating the result again to generate a final result; 상기 서버는 PC 노드의 검색 결과를 서버의 하드 디스크에 보관하고, 각 PC 노드는 검색 결과를 마스터 서버에 NFS를 이용하여 전송하고, 클러스터 미들웨어는 각 PC에서 전송된 결과를 통합하는 결과 통합단계로 구성된 PC 클러스터 기반 BLAST 고속 검색을 위한 파티셔닝 방법. The server stores the search results of the PC node on the server's hard disk, each PC node transmits the search results to the master server using NFS, and the cluster middleware integrates the results transmitted from each PC. A partitioning method for BLAST fast search based on configured PC clusters. 제 1 항에 있어서, 상기 결과 생성단계에서 각 PC 노드에 분할된 데이터베이스가 캐쉬 메모리보다 클 경우 재분배 과정을 거쳐 데이터 베이스를 완전히 캐쉬 메모리에 배치할 수 있는 상태로 변경하는 과정이 추가되는 것을 특징으로 하는 PC 클러스터 기반 BLAST 고속 검색을 위한 파티셔닝 방법. The method of claim 1, wherein, in the result generation step, when the database partitioned at each PC node is larger than the cache memory, a process of redistributing the database to change the database into a state in which the database is completely placed in the cache memory is added. A partitioning method for PC cluster based BLAST fast search.
KR1020090026176A 2009-03-27 2009-03-27 partitioning method for high-speed BLAST search on the PC cluster KR100989904B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090026176A KR100989904B1 (en) 2009-03-27 2009-03-27 partitioning method for high-speed BLAST search on the PC cluster

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090026176A KR100989904B1 (en) 2009-03-27 2009-03-27 partitioning method for high-speed BLAST search on the PC cluster

Publications (2)

Publication Number Publication Date
KR20100107857A KR20100107857A (en) 2010-10-06
KR100989904B1 true KR100989904B1 (en) 2010-10-26

Family

ID=43129508

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090026176A KR100989904B1 (en) 2009-03-27 2009-03-27 partitioning method for high-speed BLAST search on the PC cluster

Country Status (1)

Country Link
KR (1) KR100989904B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104639659A (en) * 2015-03-12 2015-05-20 浪潮集团有限公司 Data extraction and transformation method based on server clustering technology
KR101656077B1 (en) 2015-10-28 2016-09-08 주식회사 인피니플럭스 System and method for time base partitioning using implicit time column value

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102132877B1 (en) * 2019-01-25 2020-07-10 주식회사 리얼타임테크 Method for distributed processing of text logdata in distributed database system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010070390A (en) * 2000-01-03 2001-07-25 윌리엄 비. 켐플러 Buffering of partition tables, file system directory structures and individual file cluster chains in a mass storage device
KR20040036691A (en) * 2003-12-23 2004-04-30 학교법인 한국정보통신학원 High performance sequence searching system and method for dna and protein in distributed computing environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010070390A (en) * 2000-01-03 2001-07-25 윌리엄 비. 켐플러 Buffering of partition tables, file system directory structures and individual file cluster chains in a mass storage device
KR20040036691A (en) * 2003-12-23 2004-04-30 학교법인 한국정보통신학원 High performance sequence searching system and method for dna and protein in distributed computing environment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104639659A (en) * 2015-03-12 2015-05-20 浪潮集团有限公司 Data extraction and transformation method based on server clustering technology
KR101656077B1 (en) 2015-10-28 2016-09-08 주식회사 인피니플럭스 System and method for time base partitioning using implicit time column value

Also Published As

Publication number Publication date
KR20100107857A (en) 2010-10-06

Similar Documents

Publication Publication Date Title
US10990576B2 (en) Providing snapshots of journal tables
US11615091B2 (en) Database system implementation of a plurality of operating system layers
Li et al. Accelerating relational databases by leveraging remote memory and RDMA
US9684682B2 (en) Sharding of in-memory objects across NUMA nodes
US9886325B2 (en) System and method for limiting the impact of stragglers in large-scale parallel data processing
US9430390B2 (en) Core in-memory space and object management architecture in a traditional RDBMS supporting DW and OLTP applications
JP2022095781A (en) System and method of database tenant migration
Yang et al. AutoReplica: automatic data replica manager in distributed caching and data processing systems
US20100082546A1 (en) Storage Tiers for Database Server System
Lee et al. ActiveSort: Efficient external sorting using active SSDs in the MapReduce framework
Merceedi et al. A comprehensive survey for hadoop distributed file system
CN103377090B (en) Multicomputer system is shared the method and system of multiple cataloguings of different pieces of information collection
US20170322960A1 (en) Storing mid-sized large objects for use with an in-memory database system
KR100989904B1 (en) partitioning method for high-speed BLAST search on the PC cluster
Yu et al. Pdfs: Partially dedupped file system for primary workloads
WO2022132362A1 (en) Operation fragmentation with metadata serialization in query processing pushdowns
Banakar et al. WiscSort: External Sorting For Byte-Addressable Storage
CN105426119A (en) Storage apparatus and data processing method
Zhu et al. Solardb: Toward a shared-everything database on distributed log-structured storage
Takatsu et al. PPFS: A scale-out distributed file system for post-petascale systems
Xu et al. LUDA: boost LSM key value store compactions with gpus
WO2022002128A1 (en) Data reading method, data writing method, device, and system
Mohamed et al. Hash semi join map reduce to join billion records in a reasonable time
Valvag et al. Cogset vs. hadoop: Measurements and analysis
WO2017109911A1 (en) Search processing system and method for processing search requests involving data transfer amount unknown to host

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130828

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141015

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170512

Year of fee payment: 7

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20170908

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180917

Year of fee payment: 9