KR102112047B1 - 하이브리드 p2p 방식의 클러스터 시스템에서의 작업 노드 확장 방법 - Google Patents

하이브리드 p2p 방식의 클러스터 시스템에서의 작업 노드 확장 방법 Download PDF

Info

Publication number
KR102112047B1
KR102112047B1 KR1020190010974A KR20190010974A KR102112047B1 KR 102112047 B1 KR102112047 B1 KR 102112047B1 KR 1020190010974 A KR1020190010974 A KR 1020190010974A KR 20190010974 A KR20190010974 A KR 20190010974A KR 102112047 B1 KR102112047 B1 KR 102112047B1
Authority
KR
South Korea
Prior art keywords
work
node
data
work node
nodes
Prior art date
Application number
KR1020190010974A
Other languages
English (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 KR1020190010974A priority Critical patent/KR102112047B1/ko
Priority to PCT/KR2019/001245 priority patent/WO2020158968A1/ko
Application granted granted Critical
Publication of KR102112047B1 publication Critical patent/KR102112047B1/ko

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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • G06F15/17343Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

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

Abstract

본 발명은 하이브리드 P2P 방식의 분산 클러스터 시스템에서 클라이언트에 대한 서비스를 최대한 유지하면서 신규 작업 노드 추가 작업을 수행함과 더불어, 기존 작업 노드의 데이터 적재상태를 고려하여 신규 작업 노드를 포함한 작업 노드간 부하 분산처리를 자동 수행하는 기술에 관한 것이다.
본 발명에 따른 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법은, 상기 코디네이터 서버에서 외부로부터 신규 작업노드 추가 요청정보가 수신되면, 클라이언트로부터의 새로운 연결 요청은 거절하고, 기존 작업노드에 연결된 클라이언트에 대해 진행중인 서비스는 중단 없이 제공하도록 함과 더불어, 신규 작업노드 접속 정보를 반영하여 메타데이터를 갱신하는 제1 단계와, 코디네이터 서버는 신규 작업노드로 제1 단계에서 갱신된 메타 데이터를 원격 복사하고, 신규 작업노드를 구동시킴과 더불어 신규 작업노드의 상태를 대기 상태로 설정하는 제2 단계, 코디네이터 서버는 모든 기존 작업노드로부터 현재 연결중인 클라이언트에 대해 검색 서비스를 제외한 다른 진행중인 서비스가 모두 완료된 것으로 확인되면, 신규 작업노드를 포함한 모든 작업노드들 사이의 부하 분산 작업을 수행하는 제3 단계, 코디네이터 서버는 부하 분산 작업 결과에 대응하여 메타데이터를 갱신하고, 갱신된 메타데이터를 신규 작업노드를 포함한 모든 작업노드들과 동기화하는 제4 단계 및, 코디네이터 서버는 신규 작업노드를 포함한 모든 작업노드에 대해 신규 작업노드의 상태정보를 동작상태로 변경하여 신규 작업노드를 포함한 모든 작업노드를 클러스터로 동작시키고, 클라이언트에 대한 서비스를 재개하는 제5 단계를 포함하여 구성되는 것을 특징으로 한다.

Description

하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법{METHOD FOR ADDING NODE IN HYBRIDE P2P TYPE CLUSTER SYSTEM}
본 발명은 하이브리드 P2P 방식의 분산 클러스터 시스템에서 클라이언트에 대한 서비스를 최대한 유지하면서 신규 작업 노드 추가 작업을 수행함과 더불어, 기존 작업 노드의 데이터 적재상태를 고려하여 신규 작업 노드를 포함한 작업 노드간 부하 분산처리를 자동 수행하는 기술에 관한 것이다.
클러스터 시스템(Cluster system)은 네트워크로 연결된 단일 컴퓨팅들의 집합을 통해 하나의 작업을 공동으로 처리하는 것을 의미한다. 슈퍼컴퓨터가 다수의 CPU를 내부적으로 연결하고, 각각의 CPU들이 공통의 가상 메모리에 접근하도록 제작되어 있다면, 클러스터 시스템은 각각의 연결을 네트워크를 통해 구현한다는 점이 가장 큰 차이점이라고 할 수 있다.
클러스터 시스템은 일반적인 서버를 이용해 구성할 수 있기 때문에 슈퍼컴퓨터와 비교해서 구축 비용이 적게 든다는 장점이 있다. 사용자의 필요에 따라 시스템을 구축할 수 있으며, 연결된 서버의 수를 늘리는 것으로 쉽게 성능을 향상시킬 수 있는 장점이 있지만, 반면에 단일 시스템에 비해 유지 보수가 힘들고, 시스템의 성능이 네트워크 성능에 많은 영향을 받는다는 단점이 있다.
이러한 클러스터 시스템은 동종 또는 이종 노드들을 네트워크로 연결하여 시스템을 확장하는 방법으로 클러스터 내의 개별 시스템을 서버 또는 노드라고 한다. 부하 분산 클러스터 시스템은 클라이언트로부터의 요청을 클러스터 내의 다른 노드로 할당하는 역할을 수행하는 부하 분배기와, 요청에 대해 서비스를 제공하는 노드로 구성된다. 부하 분산 클러스터 시스템에서 부하 분배기는 서비스 요청이 있을 경우에 특정한 알고리즘을 바탕으로 적절한 노드를 선발하여 그 요청을 처리하게 된다. 즉, 하나의 작업을 여러 대의 노드가 나누어 처리하는 것이 아니고, 분산 알고리즘에 의해 선택된 노드가 배정받은 작업 전체를 처리한다. 그러므로 병렬 시스템과는 달리 쇄도하는 모든 요청이 여러 대의 노드에 골고루 할당되어 부하가 분산되도록 한다.
이러한 부하 분산 클러스터 시스템을 관리하기 위해 크게 마스터-슬레이브 방식과 P2P 방식을 사용한다. 먼저, 마스터-슬레이브 방식의 분산 클러스터 관리 시스템은 클러스터 시스템을 관리하는 마스터 노드와 작업 처리를 담당하는 슬레이브 노드로 구성되고, P2P 방식의 분산 클러스터 관리 시스템은 모든 작업 노드들이 동등한 수준에서 작업 처리 동작을 수행하도록 한다.
종래의 부하 분산 클러스터 시스템은 분산 환경에서 마스터-슬레이브 방식을 적용하여 작업 처리를 수행하는 슬레이브 노드에서 마스터 노드를 경유하도록 함으로써 처리 성능의 저하를 초래하고, 마스터 노드의 오류 발생시 전체 클러스터를 재구동해야하는 문제점이 있다.
또한, 종래의 P2P 방식을 적용한 부하 분산 클러스터 시스템은 클러스터 관리를 위한 작업 수행시 작업 노드들 중에 마스터 노드를 선정하기 위한 추가 작업이 필요하다는 문제점이 있다.
한편, 최근에는 코디네이터 노드와 다수의 작업 노드로 구성되고, 코디네이터 노드는 작업 노드들을 관리하는 역할만 수행하며 작업은 작업 노드들만의 협업을 통하여 수행하는 하이브리드 P2P의 클러스터 시스템이 제안되고 있다.
하이브리드 P2P 방식의 클러스터 시스템은 마스터-슬레이브 시스템과 P2P 방식의 장점을 결합한 구조로서, 클라이언트는 코디네이터 서버로부터 수신된 작업노드와 연결하여 작업 요청을 수행하고, 클라이언트와 연결된 특정 작업노드는 클라이언트로부터 인가되는 동일한 테이블의 데이터를 다수의 타 작업노드에 분산하여 저장한다.
그런데, 작업노드에서는 미리 지정된 규칙에 의해 테이블의 데이터를 타 작업노드로 분산 저장되는 바, 일정 기간이 경과하여 저장 용량을 초과하거나 또는 작업노드에 데이터가 불균등하게 저장되는 등의 이유로 작업 노드를 추가하여할 상황이 발생된다.
신규 작업노드를 새롭게 추가하기 위해서는 해당 작업노드를 등록하는 절차를 수행하여야 하며, 서비스 안정성을 위해 클러스터 시스템을 일시 중단하고 이러한 설정 처리를 수행하는 것이 일반적이다.
그러나, 클라이언트에 대한 서비스 품질을 위해서는 클러스터 시스템을 최대한 중단하지 않으면서 신규 작업노드를 확장하는 방안이 요구되는 실정이다.
1. 한국공개특허 제10-2017-0075319호 (발명의 명칭 : 클러스터 노드를 추가할 수 있는 빅데이터 시스템 및 노드 추가 방법)
이에, 본 발명은 상기한 사정을 감안하여 창출된 것으로, 본 발명은 하이브리드 P2P 방식의 분산 클러스터 시스템에서 클라이언트에 대한 서비스를 유지하면서 신규 작업 노드를 추가할 수 있는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법을 제공함에 그 기술적 목적이 있다.
또한, 본 발명은 기존 작업 노드의 데이터 적재 상태를 고려하여 신규 작업노드를 포함한 작업 노드들간의 부하 분산 작업을 자동으로 수행한 후, 신규 작업노드를 포함한 클러스터 시스템을 정상 가동하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법을 제공함에 또 다른 기술적 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 일측면에 따르면, 다수의 작업 노드와 작업 노드들을 관리하는 코디네이터 서버로 클러스터를 구성하여 클라이언트에서 요청한 작업을 분산 환경에서 동시에 처리하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법에 있어서, 상기 코디네이터 서버에서 관리자 단말로부터 신규 작업노드 추가 요청정보가 수신되면, 클라이언트로부터의 새로운 연결 요청은 거절하고, 기존 작업노드에 연결된 클라이언트에 대해 진행중인 서비스는 중단 없이 제공함과 더불어, 신규 작업노드 정보를 메타데이터에 추가하여 메타데이터를 갱신하는 제1 단계와, 코디네이터 서버는 신규 작업노드로 제1 단계에서 갱신된 메타 데이터를 원격 복사하고, 신규 작업노드를 구동시킴과 더불어 신규 작업노드의 상태를 대기 상태로 설정하는 제2 단계, 코디네이터 서버는 모든 기존 작업노드로부터 현재 연결중인 클라이언트에 대해 검색 서비스를 제외한 다른 진행중인 서비스가 모두 완료된 것으로 확인되면, 신규 작업노드를 포함한 모든 작업노드들 사이의 부하 분산 작업을 수행하는 제3 단계, 코디네이터 서버는 부하 분산 작업 결과에 대응하여 메타데이터를 갱신하고, 갱신된 메타데이터를 신규 작업노드를 포함한 모든 작업노드들과 동기화하는 제4 단계 및, 코디네이터 서버는 신규 작업노드를 포함한 모든 작업노드에 대해 신규 작업노드의 상태정보를 동작상태로 변경하여 신규 작업노드를 포함한 모든 작업노드를 클러스터로 동작시키고, 클라이언트에 대한 서비스를 재개하는 제5 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.
또한, 상기 제3 단계에서 기존 작업노드들은 현재 연결된 클라이언트로부터 새롭게 요구되는 데이터의 추가/갱신/삭제 요청 서비스는 거절하고, 새롭게 요구되는 데이터 검색 요청에 대해서는 중단 없이 서비스를 제공하는 단계와, 현재 수행중인 데이터에 대한 추가/갱신/삭제 요청 서비스가 완료되는 경우, 코디네이터 서버로 분산 작업을 수행할 준비가 되었음을 알리는 진행 서비스 완료정보를 전송하는 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.
또한, 상기 기존 작업노드들은 기 설정된 일정 개수(K)의 복제본을 생성하여 서로 다른 타 작업노드에 저장하도록 구성되고, 상기 제1 단계에서 코디네이터 서버는 추가 요청된 신규 작업노드의 개수가 기 설정된 복사본 개수(K)보다 "1" 큰 개수(K+1)의 배수가 될 때까지 추가 요청된 신규 작업노드의 접속 정보만을 관리하는 단계와, 추가 요청된 신규 작업 노드 정보의 개수가 (K+1)의 배수 개가 되면, 코디네이터 서버는 클라이언트로부터의 새로운 연결 요청은 거절하고, 기존 작업노드로 현재 연결되어 있는 클라이언트에 대한 서비스는 중단 없이 제공하도록 요청하는 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.
또한, 상기 제3 단계는 코디네이터 서버에서 기존 작업노드들의 테이블 단위 크기와, 전체 메모리 크기 및 현재 메모리 사용량을 포함하는 데이터 적재 상태정보를 수집하는 단계와, 기존 작업노드별 데이터 적재 상태정보를 근거로 데이터를 이동시킬 분할 대상 작업노드와, 분할 결정 데이터의 데이터 용량 및, 분할 결정 데이터를 저장할 저장 대상 작업노드를 포함하는 데이터 분할 정보를 결정하는 단계, 결정된 데이터 분할 정보에 기반하여 작업노드간 데이터를 이동시키는 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.
또한, 상기 제3 단계는 다수의 신규 작업노드 중 기존 작업노드로부터 원본 데이터가 이동 저장된 신규 작업노드가 원본 데이터를 복제하여 타 신규 작업노드에 저장하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.
또한, 상기 데이터 분할정보를 결정하는 단계는, 코디네이터 서버에서 모든 기존 작업노드에 저장된 전체 데이터 용량을 기존 작업 노드와 신규 작업노드의 개수의 합으로 나누어 평균 데이터 용량을 산출하고, 평균 데이터 용량 대비 일정값 이상의 오차를 허용하여 이를 초과하는 기존 작업 노드들을 분할 대상 작업노드로 설정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.
또한, 상기 데이터 분할 정보를 결정하는 단계는, 분할 결정된 테이블의 키값 범위를 저장 대상 작업노드의 총 개수로 분할하여 데이터 용량 및 저장 대상 작업노드를 결정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.
또한, 상기 데이터 분할 정보를 결정하는 단계는, 분할 결정된 테이블의 키값에 해당하는 데이터 개수를 고려하여 키값 목록을 저장 대상 작업노드의 개수에 대응되게 분할 설정함으로써, 데이터 용량 및 저장 대상 작업노드를 결정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.
또한, 상기 데이터 분할 정보를 결정하는 단계는, 분할 결정된 테이블의 키값을 해쉬 함수에 적용하여 산출되는 해쉬값의 범위를 저장 대상 작업노드 개수로 나눔으로써, 데이터 용량 및 저장 대상 작업노드를 결정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.
또한, 상기 제4 단계에서 코디네이터 서버는 부하 분산 작업에 대응하여 신규 작업노드 개수, 분할 대상 작업노드번호, 저장 대상 작업노드번호를 포함하는 데이터 분할 로그정보를 생성하여 메타데이터로 관리하여 신규 작업모드를 포함한 모든 작업노드들과 동기화하고, 상기 제5 단계에서 모든 작업노드 각각은 클라이언트로부터의 특정 키값을 포함하는 데이터 검색 질의에 대하여 해당 키값에 대응되는 검색 질의 테이블의 데이터 분할 로그정보를 확인하여 검색 대상 데이터가 분할 이전 데이터인 경우, 해쉬값을 신규 작업 노드를 추가하기 이전의 기존 작업노드 개수로 나눈 나머지값에 대응되는 검색 대상 작업노드번호를 획득하고, 획득된 검색 대상 작업노드번호가 분할 대상 노드번호이면, 상기 데이터 분할 로그 정보의 저장 대상 작업노드번호에 해당하는 작업노드로 데이터 검색 질의를 전파하여 클라이언트의 요청에 대응되는 서비스를 제공하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법이 제공된다.
본 발명에 의하면, 현재 운용 중인 시스템을 중지하지 않고 클라이언트에 대한 서비스를 최대한 제공함과 동시에, 새로 추가되는 신규 작업노드를 자동으로 인식하여 작업노드 확장처리를 수행할 수 있다.
또한, 본 발명에 의하면, 기존 작업노드에 저장된 데이터를 타 작업노드로 분산시켜 특정 작업노드에 발생되는 과부하를 방지함으로써, 클러스터를 보다 효율적으로 운영할 수 있다.
도1은 본 발명이 적용되는 하이브리드 P2P 방식의 클러스터 시스템의 개략적인 구성을 예시한 도면.
도2는 도1에 도시된 코디네이터 서버(100)와 작업노드(200)의 구성을 설명하기 위한 도면.
도3은 본 발명의 제1 실시예에 따른 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법을 설명하는 순서도.
도4a 내지 도4c는 도3의 동작을 도식화하여 나타낸 것으로, 작업노드1에 저장된 원본1 테이블이 신규 작업노드 1에 분할 저장되는 과정을 나타낸 도면.
도5는 도3의 부하 분산 작업(ST500)에 대하여 보다 상세히 설명하기 위한 도면.
도6a 내지 도6c는 도5에서 분할 정보를 결정하는 방법(ST520)을 설명하기 위한 도면.
도7은 도3의 부하 분산 작업(ST500)에 대해 메타 데이터로 관리되는 데이터 분할 로그정보를 예시한 도면.
도8은 도7에 도시된 분할 로그정보를 이용한 해쉬 기반 분할 테이블의 특정 키값에 대한 질의 동작을 설명하기 위한 도면.
본 발명에 기재된 실시예 및 도면에 도시된 구성은 본 발명의 바람직한 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 표현하는 것은 아니므로, 본 발명의 권리범위는 본문에 설명된 실시예 및 도면에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도1은 본 발명이 적용되는 하이브리드 P2P 방식의 클러스터 시스템의 개략적인 구성을 예시한 도면이다.
도1을 참조하면, 본 발명이 적용되는 하이브리드 P2P 방식의 클러스터 시스템은 클라이언트(300)에서 요청한 작업을 분산 환경에서 동시에 처리하기 위해 코디네이터 서버(100)와, 다수의 작업노드(200)로 클러스터를 구성한다. 이때, 코디네이터 서버(100)는 복제본 서버를 추가하여 구성될 수 있다. 그리고, 상기 클라이언트(300)는 하나만 도시되어 있으나, 다수의 클라이언트(300)로 이루어질 수 있다.
상기 코디네이터 서버(100)는 작업노드(200)들을 관리하고, 클러스터 운용 프로세스를 진행하여 각 작업노드(200)의 메타데이터들을 동기화하여 작업 노드(200)들을 관리한다.
상기 작업노드(200)는 로컬 시스템에 저장되어 있는 메타데이터를 이용하여 클라이언트(300)에서 요청한 작업을 분산하여 처리한다.
즉, 하이브리드 P2P 방식의 클러스터 시스템은 클라이언트(300)에서 코디네이터 서버(100)로 연결 요청을 수행하고, 코디네이터 서버(100)는 다수의 작업노드(200)의 정보들을 이용하여 연결할 작업노드(200)를 결정하여 클라이언트(300)로 제공한다. 클라이언트(300)는 코디네이터 서버(100)로부터 수신된 작업노드(200)와 연결하여 작업 요청을 수행하고, 클라이언트(300)와 연결된 특정 작업노드(200)는 클라이언트(300)로부터 인가되는 동일한 테이블의 데이터를 다수의 타 작업노드(200)에 분산하여 저장 관리한다.
이때, 임의 작업 노드(200)에 데이터가 집중적으로 저장되는 현상이 발생하할 수 있으며, 본 발명에서는 신규 작업노드를 새롭게 추가하여 클러스터를 운영할 수 있다.
도2는 도1에 도시된 코디네이터 서버(100)와 작업노드(200)의 구성을 설명하기 위한 도면이다.
도2를 참고하면, 코디네이터 서버(100)는 클러스터 관리자(110)와 설정정보 저장부(120) 및 DBMS 엔진(130)을 포함하고, DBMS 엔진(130)은 메타 데이터 테이블(131)을 구비한다.
클러스터 관리자(110)는 로컬 시스템의 DBMS 엔진(130)을 구동하고 클러스터 설정정보를 이용하여 작업노드(200)들의 연결 정보를 획득하여 클러스터 설정정보를 작업노드(200)들에 복사함과 더불어, 원격으로 작업노드(200)들을 구동한다. 이때, 클러스터 관리자(110)는 작업노드(200)의 클러스터 에이전트(210)를 가동하고, 클러스터 에이전트(210)의 구동과 동시에 로컬 시스템의 DBMS 엔진(300)이 구동됨으로써, 작업노드(200)는 서비스를 제공할 수 있는 동작상태가 된다. 이 상황에서 작업노드의 DBMS 엔진(220)은 다른 작업노드(200)의 DBMS 엔진(220)과 P2P 방식으로 작업을 처리하게 된다.
또한, 클러스터 관리자(110)는 작업노드(200)에 클러스터 설정 파일을 전송하고, 클러스터 구성 변경시 클러스터 설정 파일을 수정하여 클러스터 중지 후 재가동시 모든 작업노드(200)에 자동으로 배포한다. 그리고, 클러스터 관리자(110)는 클라이언트(300)의 요청에 따라 작업노드(200)와의 연결 또는 연결 해제 기능을 수행하고, 작업노드(200)와 메타데이터를 동기화하여 공유한다.
또한, 클러스터 관리자(110)는 작업노드(200)들의 데이터 분산 정보를 파악하여 필요한 경우 새로운 작업노드(200)에 대한 확장 작업을 수행하고, 확장된 신규 작업노드를 이용하여 부하분산 작업을 수행한다.
설정정보 저장부(120)는 코디네이터 서버 접속정보와, 작업노드들의 접속정보, 복제본 개수를 포함한 클러스터 설정정보가 저장된다.
DBMS 엔진(130)은 작업 노드의 상태 정보를 포함한 로컬 시스템에서의 정보만을 이용하여 P2P 방식으로 사용자 요청 작업을 처리하기 위한 메타데이터를 관리한다.
한편, 작업노드(200)는 클러스터 에이전트(210)와 DBMS 엔진(220)을 포함한다.
클러스터 에이전트(210)는 로컬 시스템의 DBMS 엔진(220)을 구동함과 더불어, 클러스터 관리자(110)와 하트비트(Heartbeat) 프로토콜을 이용하여 작업노드(200)의 상태 정보를 체크한 후 상태 정보를 메타데이터에 실시간 반영한다.
DBMS 엔진(220)은 클라이언트(300)에서 요청한 테이블 생성 요청에 대해 테이블 정보를 생성하고, 이에 대한 테이블 생성 처리 결과를 코디네이터 서버(100)에 전송한다. 그리고, 다른 작업노드(200)들의 DBMS 엔진(220)과 테이블 정보를 공유한다.
또한, DBMS 엔진(220)은 테이블 정보와 작업 노드의 상태 정보를 포함한 메타데이터를 저장하는 메타데이터 저장소(221)를 구비한다.
이하에서는 도1 및 도2에 도시된 하이브리드 P2P 방식의 클러스터 시스템을 이용하여 본 발명에 따른 작업 노드 확장 방법을 설명한다.
도3은 본 발명의 제1 실시예에 따른 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법을 설명하는 순서도이다. 도3에서는 기존 작업노드에 저장된 데이터를 신규 작업노드로 분산 저장하는 동작이 설명되어 있다.
먼저, 클러스터 관리자(110)는 기존 작업 노드(200)들의 상태를 감시하여 기 설정된 작업 노드 추가 조건을 만족하는 경우, 이를 관리자에게 안내하고, 관리자에 의해 신규 작업노드(200-1, 기존 작업노드와 구분하기 위해 기존 작업노드 관련 참조번호에 "-1"을 부여하여 설명함)가 추가 설치된다. 이때, 관리자는 클러스터 관리자(110)로 신규 작업노드(200-1) 추가 요청을 수행하는데, 이는 관리자가 클러스터 관리자(110)의 입력수단(미도시)을 통해 직접 입력하거나, 또는 별도의 관리자 단말을 통해 이루어질 수 있다.
클러스터 관리자(110)는 외부로부터 신규 작업노드 추가 요청정보가 수신되면(ST100), 클라이언트(300)로부터의 새로운 연결 요청은 거절하고, 기존 작업노드(200)를 통해 현재 진행중인 서비스는 중단 없이 제공하도록 하는 작업노드 확장모드로 설정한다(ST200).
상기 ST200 단계에서 클러스터 관리자(110)는 추가되는 신규 작업노드(200-1)의 개수가 기 설정된 복사본 개수(K)보다 "1" 큰 수(K+1)의 배수 개가 될 때까지 신규 작업노드(200-1)에 대해서는 접속 정보만을 관리한다.
그리고, 클러스터 관리자(110)는 신규 작업노드의 개수가 (K+1)의 배수 개가 되면, 현재 연결되어 있는 클러스터 에이전트(210)들에게 새로 추가된 신규 작업노드(200-1)에 대한 정보를 추가하도록 요청한다. 이때, 기존 작업노드(200)들의 클러스터 에이전트(210)는 해당 DBMS 엔진(220)에게 이를 요청하고, DBMS 엔진(220)들은 테이블 생성 요청 등 기 설정된 메타데이터에 변경을 주는 클라이언트(300)의 요청에 대해서는 거절하고, 신규 작업노드(200-1) 정보만 메타데이터에 추가한다. 그리고, 클러스터 에이전트(210)는 코디네이터 서버(100)의 클러스터 관리자(110)에게 신규 작업노드(200-1)에 대한 정보를 추가하였음을 알린다. 클러스터 관리자(110)는 현재 작업중인 DDL/작업노드 상태정보 변경 등 메타데이터 변경 작업이 모두 완료되면, 이를 근거로 메타데이터를 갱신한다.
이어, 클러스터 관리자(110)는 신규 작업노드(200-1)를 구동시킴과 더불어, 신규 작업노드(200-1)를 대기 상태로 설정한다(ST300). 즉, 클러스터 관리자(110)는 신규 작업노드(200-1)의 DBMS 엔진(220-1)으로 메타데이터를 원격 복사하고, 신규 작업노드(200-1)의 클러스터 에이전트(210-1)를 구동시키며, 신규 작업노드(200-1)의 클러스터 에이전트(210-1)는 DBMS 엔진(220-1)을 구동한 후, P2P 클러스터 시스템에 참여할 준비가 되었음을 알리는 구동설정 완료정보를 클러스터 관리자(110)에게 전송한다.
이어, 클러스터 관리자(110)는 모든 기존 작업노드(200)로부터 현재 수행중인 검색 서비스를 제외한 현재 진행 중인 서비스가 완료된 것으로 확인되면(ST400), 신규 작업노드(200-1)를 포함한 모든 작업노드들 사이의 부하 분산 작업을 수행한다(ST500).
즉, 상기 ST400 단계는 클러스터 관리자(110)가 기존 작업 노드(200)의 클러스터 에이전트(210)로 부하분산 관리준비 요청정보를 전송하는 단계와, 클러스터 에이전트(210)로부터 부하분산 관리준비 요청정보를 수신한 DBMS 엔진(300)에서 클라이언트(300)로부터 새롭게 요구되는 데이터의 추가/갱신/삭제 요청 서비스는 거절하고, 새롭게 요구되는 데이터 검색 요청에 대해서는 중단 없이 서비스를 제공하는 단계, DBMS 엔진(300)에서 현재 수행중인 데이터에 대한 추가/갱신/삭제 요청 서비스가 완료되면 클러스터 관리자(110)로 부하 분산 작업을 수행할 준비가 되었음을 알리는 진행 서비스 완료정보를 전송하는 단계를 포함한다.
한편, 상기 ST500 단계의 부하 분산 작업에 대해서는 이하에서 도3 내지 도6을 참조하여 상세히 설명한다.
이어, 클러스터 관리자(110)는 상기 ST500 단계에서 모든 작업노드들에 대한 부하 분산 작업이 완료되면, 부하 분산 작업 수행 결과에 대응하여 메타데이터를 갱신하고, 갱신된 메타데이터를 신규 작업노드를 포함한 모든 작업노드들과 동기화한다(ST600).
즉, 클러스터 관리자(110)는 상기 ST500 단계에서 데이터를 이동시킨 기존 작업노드(200)의 클러스터 에이전트(210) 및 데이터가 이동된 신규 작업노드(200-1)의 클러스터 에이전트(210-1)로부터 데이터 분할 정보를 수신하고, 이를 근거로 메타데이터를 갱신한다.
그리고, 클러스터 관리자(110)는 모든 작업노드(200)로 메타데이터 갱신을 요청하고, 각 작업노드(200)로부터 메타데이터에 대한 갱신결과를 수신한다.
이때, 현재 연결된 클라이언트(300)가 존재하는 데이터 분할 대상 기존 작업노드(200)의 DBMS 엔진(220)은 클라이언트(300)로부터의 SELECT 질의 요청 수신을 중단하고 현재 수행중인 SELECT 질의에 해서는 처리를 완료한 후, 메타데이터를 갱신함과 더불어, 이동한 데이터를 해당 테이블에서 삭제하고, 그 처리 결과를 전달한다.
또한, 기존 작업노드(200) 중 데이터 이동을 수행하지 않은 작업노드의 경우에도 메타데이터를 갱신하고 그 결과를 클러스터 관리자(110)에 전달한다.
그리고, 신규 작업노드(200-1)의 DBMS 엔진(220-1)은 기존 작업노드(200)의 DBMS(220)로부터 이동된 데이터를 저장함과 더불어, 메타데이터를 갱신하고 결과를 클러스터 관리자(110)에게 전달한다.
이와 같이, 본 발명에서는 부하 분산 작업을 진행중에도 새로운 데이터에 대한 추가 작업은 중단하지만 데이터 검색 요청에 대해서는 최대한 중단 없이 서비스를 제공할 수 있다.
상기 작업을 수행하면 메타데이터는 신규 작업 노드를 포함하는 모든 작업노드에 대한 데이터 분산 정보가 반영되어 있게 된다.
상기한 상태에서, 클러스터 관리자(110)는 신규 작업노드(200-1)를 동작 상태로 설정함과 더불어, 클러스터 설정정보를 갱신하고, 신규 작업노드(200-1)를 클러스터로 구성하여 클라이언트에 대한 서비스를 재개한다(ST700).
즉, 클러스터 관리자(110)는 신규 작업노드(200-1)에 대한 설정정보를 설정정보 저장부(120)에 등록하고, 현재 코디네이터 서버(100)의 동작모드를 정상모드로 설정하여 신규 작업노드를 포함한 모든 작업노드를 클러스터로 구성한다.
또한, 클러스터 관리자(110)는 신규 작업노드(200-1)를 정상적으로 하이브리드 P2P 클러스터의 멤버로 작동하기 위해 신규 작업노드(200-1)를 포함한 모든 작업노드(200)의 클러스터 에이전트(210)에게 신규 작업노드(200-1)의 상태정보를 정상 상태로 변경하도록 요청한다. 이에 따라 신규 작업노드(200-1)들이 정상적인 멤버로 동작함과 동시에 모든 작업노드(200)의 DBMS 엔진(300)은 부하분산 모드를 동작 모드로 설정하고, 시점부터 클라이언트(300)의 모든 요청을 수신하도록 한다.
도4a 내지 도4c는 도3의 동작을 도식화하여 나타낸 것으로, 작업노드1에 저장된 원본1 테이블이 신규 작업노드 1에 분할 저장되는 과정이 나타나 있다.
도4a에는 6개의 기존 작업노드(1~6)들로 구성된 하이브리드 P2P 클러스터 시스템에서 복사본의 개수가 2개일 때 각 작업노드(200)들의 데이터 분산 상태와 3개(2+1)의 신규 작업노드(1~3)가 추가되는 구성이 도시되어 있고, 도4b에는 새로 추가된 신규 작업노드(1~3)로 작업노드1의 원본1 데이터가 분산되는 과정이 도시되어 있으며, 도4c에는 신규 작업노드1에서 신규 작업노드2와 신규 작업노드3으로 복제본을 복사하는 과정이 도시되어 있다.
즉, 본 발명에 의하면, 신규 작업노드에 대한 접속정보의 수신이 완료되는 시점까지는 정상적으로 클라이언트에 대한 서비스를 수행하고, 신규 작업노드에 대한 접속정보의 수신이 완료된 이후부터는 기존 작업노드에 연결된 클라이언트에 대한 서비스만을 수행하며, 기존 작업노드에서 현재 진행중인 서비스 중 검색 서비스를 제외한 모든 서비스가 종료되는 시점에서 신규 작업노드를 포함한 모든 작업노드에 대한 부하분산처리를 수행함과 더불어, 부하분산처리가 종료되고 이에 따른 메타데이터 및 클러스터 설정정보를 갱신하기까지는 진행 중인 검색 서비스는 지속적으로 수행하게 된다.
이어, 도5를 참조하여 도3의 부하 분산 작업(ST500)에 대하여 보다 상세히 설명한다.
먼저, 클러스터 관리자(100)는 부하 분산 작업을 수행하기 위해서 기존 작업 노드(200)의 데이터 분산 상태 정보를 수집한다(ST510). 이때, 클러스터 관리자(110)는 각 기존 작업 노드(200)의 클러스터 에이전트(210)들에게 해당 작업노드의 통계 정보 즉, 데이터 적재 상태정보를 요청하고, 각 클러스터 에이전트(210)들은 해당 DBMS 엔진(220)의 데이터 적재 상태 정보를 수집하여 클러스터 관리자(100)에게 전달한다. 여기서, 데이터 적재 상태 정보는 해당 작업노드(200)에 적재된 테이블 단위 크기, 전체 메모리 크리, 현재 메모리 사용량 등을 포함할 수 있으며, 본 발명에서는 이에 제한하지 않는다. 본 발명에 의하면 필요한 경우, 더 많은 작업노드의 운용 상태 정보를 수집할 수 있다.
이어, 클러스터 관리자(110)는 기존 작업노드(200)들의 데이터 적재 상태정보를 이용하여 데이터를 이동시킬 분할 대상 작업노드와 분할 결정 데이터의 데이터 용량 및, 분할 결정 데이터를 저장할 저장 대상 작업노드를 포함하는 데이터 분할 정보를 결정한다(ST520).
이때, 클러스터 관리자(110)는 모든 기존 작업노드(200)에 저장된 전체 데이터 용량을 기존 작업 노드(200)와 신규 작업노드(200-1)의 개수의 합으로 나누어 평균 데이터 용량을 산출하고, 평균 데이터 용량 대비 일정값 이상의 오차를 허용하여 이를 초과하는 기존 작업 노드(200)들을 분할 대상 작업노드로 설정할 수 있다.
또한, 클러스터 관리자(110)는 데이터 분할 정보를 근거로 분할 대상 작업노드에 저장된 분할 결정 데이터를 저장 대상 작업노드로 이동시키는 일련의 데이터 분산 처리를 수행한다(ST530). 이때, 클러스터 관리자(110)는 분할 대상 작업노드(1)의 클러스터 에이전트(210)로 데이터 분할 요청을 수행하고, 클러스터 에이전트(210)는 DBMS 엔진(220)에 이를 전달된다. DBMS 엔진(220)은 이동 결정된 데이터 테이블을 분할하여 저장 대상 작업노드로 이동시킨다. 여기서, DBMS 엔진(220)은 해당 테이블에 대해 결정된 분할 정보를 이용하여 이동할 데이터 전체를 SELECT질의 처리하고, SELECT 결과에 해당하는 전체 레코드를 일괄적으로 해당 분할 대상 작업노드의 임시 저장소(미도시)로 전송하며, 저장 대상 작업 노드에서 분할 대상 작업노드의 임시 저장소(미도시)에 저장된 전체 레코드에서 INSERT 질의를 진행함으로써 데이터 이동에 따른 부하를 감소하도록 한다.
또한, 임의 하나의 저장 대상 작업노드에서 INSERT 질의 처리 시 자동으로 해당 저장 대상 작업노드의 DBMS 엔진(220)에서 해당 작업 노드의 복제본 작업노드에 INSERT되는 데이터의 복제본을 생성한다(ST540).
예컨대, 도4c와 같이 작업노드(1)의 원본1을 분할하여 신규 작업노드(7)로 이동함과 더불어, 작업노드(7)의 DBMS 엔진(220)은 자동으로 타 신규 작업노드(8,9)에 복제본을 생성한다.
한편, 도6a 내지 도6c는 도5에서 분할 정보를 결정하는 방법(ST520)을 설명하기 위한 도면으로, 본 발명에서 데이터를 분산하여 다수의 작업노드(200)에 저장하기 위해서 특정 테이블을 분할하는 서로 다른 방법이 예시되어 있다. 도6a 내지 도6c에는 분할 대상 작업노드가 "6"개인 경우가 예시되어 있다.
먼저, 도6a에 도시된 바와 같이, 분할 결정된 테이블의 키값 범위를 저장 대상 작업노드의 총 개수로 분할하여 데이터 용량 및 저장 대상 작업노드를 결정할 수 있다. 예컨대, 키값이 0 ~v1 구간에 해당하는 데이터는 작업노드1에 저장되고, v1 ~v2 구간에 해당하는 데이터는 작업노드2에 저장된다.
또한, 도6b에 도시된 바와 같이, 분할 결정된 테이블의 키값에 해당하는 데이터 개수를 고려하여 키값 목록을 저장 대상 작업노드의 개수에 대응되게 분할 설정함으로써, 데이터 용량 및 저장 대상 작업노드를 결정할 수 있다. 예컨대, 작업노드1에는 키값 "abc1","bcb1","cde1"에 해당하는 데이터가 저장되고, 작업노드2에는 "abc2","bcb2","cde2"에 해당하는 데이터가 저장된다.
또한, 도6c에 도시된 바와 같이, 분할 결정된 테이블의 키값을 해쉬 함수에 적용하여 산출되는 해쉬값의 범위를 저장 대상 작업노드 개수로 나눔으로써, 데이터 용량 및 저장 대상 작업노드를 결정할 수 있다. 예컨대, 해쉬값이 0 ~v1 구간에 해당하는 데이터는 작업노드1에 저장되고, v1 ~v2 구간에 해당하는 데이터는 작업노드2에 저장된다.
한편, 본 발명에 있어서는 해쉬 기반으로 분할된 테이블에 대한 부하 분산 작업에 대응하여 클러스터 관리자(110)가 도7에 도시된 바와 같이 신규 작업노드 개수, 분할 대상 작업노드, 저장 대상 작업노드, timestamp 및 분할 key 정보를 포함하는 데이터 분할 로그정보를 생성하여 메타데이터로 관리함으로써, 작업노드들과 동기화할 수 있다. 여기서, "timestamp"는 전체 작업 노드에 대해서 글로벌 시간을 동기화하여 관리하기 위한 것으로, 데이터 입력 시 분할 키에 대해서 시스템에서 자동으로 부여한다. "분할 key"는 분할 대상 작업 노드에 포함된 키 값을 정렬한 것으로, 분할에 사용된 키 값을 의미한다.
이때, 본 발명에 있어서는 각 작업노드에서 해쉬 기반 분할 테이블에 대한 영역질의를 처리하기 위해 모든 작업 노드의 데이터를 검색하여야 하지만, 분할 로그정보를 이용하여 특정 키값에 대한 데이터를 검색하기 위해 모든 작업노드를 검색하지 않도록 실시할 수 있다.
도8은 도7에 도시된 분할 로그정보를 이용한 해쉬 기반 분할 테이블의 특정 키값에 대한 질의 동작을 설명하기 위한 도면이다.
도8을 참조하면, 먼저 특정 키 값에 해당되는 데이터 검색 질의가 요청(ST910)되면, 검색 대상 테이블의 분할 로그정보를 확인하여 검색 대상 데이터가 분할 이후의 데이터인지를 확인한다(ST920).
상기 ST920단계에서 검색 대상 테이블이 분할 이후의 데이터의 경우에는 해쉬값을 신규 작업 노드를 포함한 모든 작업노드 개수로 나눈 나머지값에 해당하는 작업노드로 검색 질의를 전파한다(ST930).
한편, 상기 ST920 단계에서 검색 대상 테이블이 분할 이전의 데이터인 경우에는 해쉬값을 신규 작업 노드를 추가하기 이전의 기존 작업 노드 개수로 나눈 나머지값에 해당하는 작업노드 정보를 획득한다(ST940).
그리고, 상기 ST940 단계에서 획득된 작업노드 정보에 대한 분할 작업 로그가 존재하는지를 근거로 분할 대상 작업 노드인지의 여부를 확인한다(ST950).
상기 ST950 단계에서 ST940 단계에서 획득된 작업 노드가 분할 대상 노드가 아닌 경우에는 획득된 작업노드로 검색 질의를 전파한다(ST960).
한편, 상기 ST950 단계에서 ST940 단계에서 획득된 작업 노드가 분할 대상 노드인 경우에는 해당 분할 작업 로그에서 저장 대상 작업노드 정보를 전파할 작업 노드정보로서 획득하고, 획득된 작업 노드로 검색 질의를 전파한다(ST970).
즉, 본 발명에 의하면 검색 대상 데이터가 적재된 작업 노드에만 검색 질의를 전파하여 보다 신속하게 검색 질의를 처리할 수 있다.
이러한 동작은 하이브리드 P2P 클러스터 시스템 가동 중에 작업노드를 추가하여 해쉬 기반의 분할 방법을 적용하는 경우에 적용되는 것으로, 본 발명에서는 질의 처리 성능을 위해서 클러스터 시스템 중단하고 재가동 하기 이전에, 해쉬 기반의 전체 테이블에 대해서는 변경된 작업노드 개수를 반영하여 일괄적으로 데이터 이동 및 메타데이터 변경 작업을 수행하도록 실시할 수 있다.
100 : 코디네이터 서버, 110 : 클러스터 관리자,
120 : 설정정보 저장부, 130,220 : DBMS 엔진,
131, 221 : 메타데이터 테이블, 200 : 작업노드,
210 : 클러스터 에이전트, 300 : 클라이언트.

Claims (10)

  1. 다수의 작업 노드와 작업 노드들을 관리하는 코디네이터 서버로 클러스터를 구성하여 클라이언트에서 요청한 작업을 분산 환경에서 동시에 처리하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법에 있어서,
    상기 코디네이터 서버에서 관리자 단말로부터 신규 작업노드 추가 요청정보가 수신되면, 클라이언트로부터의 새로운 연결 요청은 거절하고, 기존 작업노드에 연결된 클라이언트에 대해 진행중인 서비스는 중단 없이 제공함과 더불어, 신규 작업노드 정보를 메타데이터에 추가하여 메타데이터를 갱신하는 제1 단계와,
    코디네이터 서버는 신규 작업노드로 제1 단계에서 갱신된 메타 데이터를 원격 복사하고, 신규 작업노드를 구동시킴과 더불어 신규 작업노드의 상태를 대기 상태로 설정하는 제2 단계,
    코디네이터 서버는 모든 기존 작업노드로부터 현재 연결중인 클라이언트에 대해 검색 서비스를 제외한 다른 진행중인 서비스가 모두 완료된 것으로 확인되면, 신규 작업노드를 포함한 모든 작업노드들 사이의 부하 분산 작업을 수행하는 제3 단계,
    코디네이터 서버는 부하 분산 작업 결과에 대응하여 메타데이터를 갱신하고, 갱신된 메타데이터를 신규 작업노드를 포함한 모든 작업노드들과 동기화하는 제4 단계 및,
    코디네이터 서버는 신규 작업노드를 포함한 모든 작업노드에 대해 신규 작업노드의 상태정보를 동작상태로 변경하여 신규 작업노드를 포함한 모든 작업노드를 클러스터로 동작시키고, 클라이언트에 대한 서비스를 재개하는 제5 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법.
  2. 제1항에 있어서,
    상기 제3 단계에서 기존 작업노드들은 현재 연결된 클라이언트로부터 새롭게 요구되는 데이터의 추가/갱신/삭제 요청 서비스는 거절하고, 새롭게 요구되는 데이터 검색 요청에 대해서는 중단 없이 서비스를 제공하는 단계와, 현재 수행중인 데이터에 대한 추가/갱신/삭제 요청 서비스가 완료되는 경우, 코디네이터 서버로 분산 작업을 수행할 준비가 되었음을 알리는 진행 서비스 완료정보를 전송하는 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법.
  3. 제1항에 있어서,
    상기 기존 작업노드들은 기 설정된 일정 개수(K)의 복제본을 생성하여 서로 다른 타 작업노드에 저장하도록 구성되고,
    상기 제1 단계에서 코디네이터 서버는 추가 요청된 신규 작업노드의 개수가 기 설정된 복사본 개수(K)보다 "1" 큰 개수(K+1)의 배수가 될 때까지 추가 요청된 신규 작업노드의 접속 정보만을 관리하는 단계와, 추가 요청된 신규 작업 노드 정보의 개수가 (K+1)의 배수 개가 되면, 코디네이터 서버는 클라이언트로부터의 새로운 연결 요청은 거절하고, 기존 작업노드로 현재 연결되어 있는 클라이언트에 대한 서비스는 중단 없이 제공하도록 요청하는 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법.
  4. 제1항에 있어서,
    상기 제3 단계는 코디네이터 서버에서 기존 작업노드들의 테이블 단위 크기와, 전체 메모리 크기 및 현재 메모리 사용량을 포함하는 데이터 적재 상태정보를 수집하는 단계와, 기존 작업노드별 데이터 적재 상태정보를 근거로 데이터를 이동시킬 분할 대상 작업노드와, 분할 결정 데이터의 데이터 용량 및, 분할 결정 데이터를 저장할 저장 대상 작업노드를 포함하는 데이터 분할 정보를 결정하는 단계, 결정된 데이터 분할 정보에 기반하여 작업노드간 데이터를 이동시키는 단계를 포함하여 구성되는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법.
  5. 제3항에 있어서,
    상기 제3 단계는 다수의 신규 작업노드 중 기존 작업노드로부터 원본 데이터가 이동 저장된 신규 작업노드가 원본 데이터를 복제하여 타 신규 작업노드에 저장하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법.
  6. 제4항에 있어서,
    상기 데이터 분할정보를 결정하는 단계는, 코디네이터 서버에서 모든 기존 작업노드에 저장된 전체 데이터 용량을 기존 작업 노드와 신규 작업노드의 개수의 합으로 나누어 평균 데이터 용량을 산출하고, 평균 데이터 용량 대비 일정값 이상의 오차를 허용하여 이를 초과하는 기존 작업 노드들을 분할 대상 작업노드로 설정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법.
  7. 제4항 또는 제6항에 있어서,
    상기 데이터 분할 정보를 결정하는 단계는, 분할 결정된 테이블의 키값 범위를 저장 대상 작업노드의 총 개수로 분할하여 데이터 용량 및 저장 대상 작업노드를 결정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법.
  8. 제4항 또는 제6항에 있어서,
    상기 데이터 분할 정보를 결정하는 단계는, 분할 결정된 테이블의 키값에 해당하는 데이터 개수를 고려하여 키값 목록을 저장 대상 작업노드의 개수에 대응되게 분할 설정함으로써, 데이터 용량 및 저장 대상 작업노드를 결정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법.
  9. 제4항 또는 제6항에 있어서,
    상기 데이터 분할 정보를 결정하는 단계는, 분할 결정된 테이블의 키값을 해쉬 함수에 적용하여 산출되는 해쉬값의 범위를 저장 대상 작업노드 개수로 나눔으로써, 데이터 용량 및 저장 대상 작업노드를 결정하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법.
  10. 제1항에 있어서,
    상기 제4 단계에서 코디네이터 서버는 부하 분산 작업에 대응하여 신규 작업노드 개수, 분할 대상 작업노드번호, 저장 대상 작업노드번호를 포함하는 데이터 분할 로그정보를 생성하여 메타데이터로 관리하여 신규 작업모드를 포함한 모든 작업노드들과 동기화하고,
    상기 제5 단계에서 모든 작업노드 각각은 클라이언트로부터의 특정 키값을 포함하는 데이터 검색 질의에 대하여 해당 키값에 대응되는 검색 질의 테이블의 데이터 분할 로그정보를 확인하여 검색 대상 데이터가 분할 이전 데이터인 경우, 해쉬값을 신규 작업 노드를 추가하기 이전의 기존 작업노드 개수로 나눈 나머지값에 대응되는 검색 대상 작업노드번호를 획득하고, 획득된 검색 대상 작업노드번호가 분할 대상 노드번호이면, 상기 데이터 분할 로그 정보의 저장 대상 작업노드번호에 해당하는 작업노드로 데이터 검색 질의를 전파하여 클라이언트의 요청에 대응되는 서비스를 제공하는 것을 특징으로 하는 하이브리드 P2P 방식의 클러스터 시스템에서의 작업 노드 확장 방법.
KR1020190010974A 2019-01-29 2019-01-29 하이브리드 p2p 방식의 클러스터 시스템에서의 작업 노드 확장 방법 KR102112047B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190010974A KR102112047B1 (ko) 2019-01-29 2019-01-29 하이브리드 p2p 방식의 클러스터 시스템에서의 작업 노드 확장 방법
PCT/KR2019/001245 WO2020158968A1 (ko) 2019-01-29 2019-01-30 하이브리드 p2p 방식의 클러스터 시스템에서의 작업 노드 확장 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190010974A KR102112047B1 (ko) 2019-01-29 2019-01-29 하이브리드 p2p 방식의 클러스터 시스템에서의 작업 노드 확장 방법

Publications (1)

Publication Number Publication Date
KR102112047B1 true KR102112047B1 (ko) 2020-05-18

Family

ID=70912650

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190010974A KR102112047B1 (ko) 2019-01-29 2019-01-29 하이브리드 p2p 방식의 클러스터 시스템에서의 작업 노드 확장 방법

Country Status (2)

Country Link
KR (1) KR102112047B1 (ko)
WO (1) WO2020158968A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113326100A (zh) * 2021-06-29 2021-08-31 深信服科技股份有限公司 一种集群管理方法、装置、设备及计算机存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113452767B (zh) * 2021-06-23 2022-11-25 新华三大数据技术有限公司 一种应用于服务集群内的负载均衡方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130103787A1 (en) * 2011-10-20 2013-04-25 Oracle International Corporation Highly available network filer with automatic load balancing and performance adjustment
US20150127625A1 (en) * 2011-04-26 2015-05-07 Brian J. Bulkowski Cluster-node load balancing in a distributed database system
KR20160025926A (ko) * 2014-08-28 2016-03-09 한국전자통신연구원 가상 응용서버들로 부하를 분산하는 장치 및 방법
JP2017041267A (ja) * 2016-10-20 2017-02-23 株式会社ソフトギア 分散型データ処理プログラム、情報処理装置、分散型データベースシステム及び分散システム
KR20170075319A (ko) 2015-12-23 2017-07-03 서울시립대학교 산학협력단 클러스터 노드를 추가할 수 있는 빅데이터 시스템 및 노드 추가 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968359B1 (en) * 2000-08-14 2005-11-22 International Business Machines Corporation Merge protocol for clustered computer system
US7516181B1 (en) * 2005-02-08 2009-04-07 Microstrategy, Inc. Technique for project partitioning in a cluster of servers
US9348709B2 (en) * 2013-12-27 2016-05-24 Sybase, Inc. Managing nodes in a distributed computing environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150127625A1 (en) * 2011-04-26 2015-05-07 Brian J. Bulkowski Cluster-node load balancing in a distributed database system
US20130103787A1 (en) * 2011-10-20 2013-04-25 Oracle International Corporation Highly available network filer with automatic load balancing and performance adjustment
KR20160025926A (ko) * 2014-08-28 2016-03-09 한국전자통신연구원 가상 응용서버들로 부하를 분산하는 장치 및 방법
KR20170075319A (ko) 2015-12-23 2017-07-03 서울시립대학교 산학협력단 클러스터 노드를 추가할 수 있는 빅데이터 시스템 및 노드 추가 방법
JP2017041267A (ja) * 2016-10-20 2017-02-23 株式会社ソフトギア 分散型データ処理プログラム、情報処理装置、分散型データベースシステム及び分散システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113326100A (zh) * 2021-06-29 2021-08-31 深信服科技股份有限公司 一种集群管理方法、装置、设备及计算机存储介质
CN113326100B (zh) * 2021-06-29 2024-04-09 深信服科技股份有限公司 一种集群管理方法、装置、设备及计算机存储介质

Also Published As

Publication number Publication date
WO2020158968A1 (ko) 2020-08-06

Similar Documents

Publication Publication Date Title
US10209893B2 (en) Massively scalable object storage for storing object replicas
EP2996308B1 (en) Massively scalable object storage system
US10104175B2 (en) Massively scalable object storage system
US8108352B1 (en) Data store replication for entity based partition
EP2904763B1 (en) Load-balancing access to replicated databases
US9888062B2 (en) Distributed storage system including a plurality of proxy servers and method for managing objects
US8510267B2 (en) Synchronization of structured information repositories
CN108804465B (zh) 一种分布式缓存数据库数据迁移的方法及系统
US9614926B2 (en) Parallel I/O write processing for use in clustered file systems having cache storage
KR100936238B1 (ko) 파일 입출력과 복제의 균형적 수행을 위한 지연복제 시스템및 방법
KR20120018178A (ko) 객체 저장부들의 네트워크상의 스웜-기반의 동기화
KR102112047B1 (ko) 하이브리드 p2p 방식의 클러스터 시스템에서의 작업 노드 확장 방법
CN112789606A (zh) 数据重分布方法、装置及系统
Liu et al. Leader set selection for low-latency geo-replicated state machine
JP2024514467A (ja) 地理的に分散されたハイブリッドクラウドクラスタ
KR101681651B1 (ko) 데이터베이스 관리 시스템 및 방법
KR20050026306A (ko) 비공유 구조의 데이터베이스 클러스터 서버 시스템과온라인 확장 방법
CN116700889A (zh) 一种容器硬件资源调整方法及装置
JP6005752B2 (ja) 情報処理装置、データ更新方法及びプログラム
JPWO2019030883A1 (ja) 計算機システムおよびデータ処理方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant