KR100827626B1 - 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템및 이를 위한 부하 분산 방법 - Google Patents

링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템및 이를 위한 부하 분산 방법 Download PDF

Info

Publication number
KR100827626B1
KR100827626B1 KR1020060068252A KR20060068252A KR100827626B1 KR 100827626 B1 KR100827626 B1 KR 100827626B1 KR 1020060068252 A KR1020060068252 A KR 1020060068252A KR 20060068252 A KR20060068252 A KR 20060068252A KR 100827626 B1 KR100827626 B1 KR 100827626B1
Authority
KR
South Korea
Prior art keywords
node
information
message
forward link
load balancing
Prior art date
Application number
KR1020060068252A
Other languages
English (en)
Other versions
KR20080008699A (ko
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 KR1020060068252A priority Critical patent/KR100827626B1/ko
Publication of KR20080008699A publication Critical patent/KR20080008699A/ko
Application granted granted Critical
Publication of KR100827626B1 publication Critical patent/KR100827626B1/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/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Landscapes

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

Abstract

본 발명은 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템과 이를 위한 부하 분산 방법에 관한 것이다.
본 발명이 개시하는 그리드 데이터베이스 시스템의 노드는, 접속수단, 질의 처리수단, 연결목록 저장수단, 부하량 식별수단, 메시지 생성수단, 그리고 이들을 제어하는 제어수단으로 구현된다.
본 발명의 일 관점에 따른 부하 분산 방법은, 이전의 상태정보가 '보통'이고, 현재의 작업부하가 자원 한계치를 초과하는 경우, 상태정보를 '과부하'로 갱신하는 과정, 연결목록의 정방향 링크 정보가 'NULL'이 아니라면, 정방향 링크 정보를 포함한 메시지를 연결목록에 등록되어 있는 역방향 링크의 노드로 전송하는 과정, 및 사용자 질의를 정방향 링크의 노드로 포워딩시키는 과정으로 이루어진다.
본 발명에 따르면, 노드를 복제본 별로 하나의 링 구조로 연결 및 관리함으로써, 노드별 작업 부하량에 따라 사용자 질의를 분산시킬 수 있고, 이에 따라 그리드 데이터베이스에 대한 부하 분산을 효율적으로 구현할 수 있다.
Figure R1020060068252
그리드 데이터베이스, 그리드 컴퓨팅, 부하 분산

Description

링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템 및 이를 위한 부하 분산 방법{GRID DATABASE SYSTEM USING RING-BASED CONNECTION STRUCTURE AND LOAD-BALANCING METHOD THEREFOR}
도 1은 본 발명의 그리드 데이터베이스 시스템에 대한 개념도,
도 2는 도 1에 도시된 노드의 기본적인 기능을 나타낸 예시도,
도 3은 본 발명의 노드에 대한 개략적 구성도,
도 4a는 본 발명의 연결목록을 구성하는 주요 정보를 나타낸 예시도,
도 4b는 본 발명에 따라 복제본별로 링 기반 연결 구조의 개념을 보인 예시도,
도 4c는 도 4b의 노드 N3에 대한 연결목록을 나타낸 예시도,
도 5는 도 4b에 예시된 노드가 과부하 상태일 경우를 나타낸 예시도,
도 6 내지 도 8은 본 발명의 노드가 수행하는 처리 과정을 나타낸 순서도.
** 도면의 주요 부분에 대한 부호의 설명 **
110: 접속수단 120: 질의 처리수단
130: 연결목록 저장수단 140: 부하량 식별수단
150: 메시지 생성수단 160: 제어수단
본 발명은 복제 데이터 간에 링 기반 연결 구조를 정립함으로써, 사용자 질의 처리에 따른 각 노드 간의 부하 분산을 효율적으로 구현할 수 있는 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템 및 이를 위한 부하 분산 방법에 관한 것이다.
먼저, 그리드(grid)란 한 번에 한곳에만 연결할 수 있는 웹(web)과 달리 신경조직처럼 작동하는 인터넷망 구조를 말한다. 그리드는 'power grid(고압선 송전망)'에서 유래된 용어로, 지리적으로 분산된 컴퓨팅 가능한 자원(resource)들을 조합함으로써, 그의 처리 능력을 마치 전기처럼 발생 장소에 신경 쓰지 않고 사용할 수 있도록 한다는 발상에서 나온 것이다.
그리드 컴퓨팅(grid computing)이란, 상기한 '그리드'의 기술적 배경을 참작하여, 글로벌 인터넷 인프라 환경 상에서 가용한 모든 자원을 공유하기 위한 새로운 분산 컴퓨팅 모델을 일컫는다. 즉, 지리적으로 분산된 PC, 고성능 컴퓨터, 대용량 저장장치, 데이터베이스, 첨단 실험 장비, 나아가 인력 자원 등의 가용한 모든 자원들을 인터넷을 통해 상호 공유하고 이용토록 해주는 소위 디지털 신경망 구조의 차세대 인터넷 서비스이다.
한편, 그리드 데이터베이스 시스템은 그리드 컴퓨팅 환경에서 분산된 데이터의 효율적 처리와 사용을 위한 데이터베이스 관리 시스템(DBMS; DataBase Management System)이라 말할 수 있다. 그리드 데이터베이스는 종래의 분산 데이터베이스 시스템의 기능을 기본적으로 포함하고, 대용량 자원을 공유하며, 고속 연산을 가능케 한다.
환언하여 그리드 데이터베이스 시스템을 구성하는 각 노드(여기서, 노드란 기본적으로 하나의 DBMS 또는 클러스터로 구성된 DBMS를 의미하며, 넓게는 그리드 자원을 의미함)는 데이터의 처리 성능과 가용성 향상을 위해 서로 다른 위치에 데이터를 복제하여 저장하며, 데이터 연합(federation), 데이터 변환(conversion), 데이터 배치(allocation), 데이터 통합(integration) 등의 기능을 제공한다.
각 노드는 수많은 데이터들을 포함하고 있는데, 모든 데이터는 애플리케이션에 따라 그 형태와 목적이 다소 상이하지만 기본적으로는 가용성과 성능의 향상을 위해 다른 노드에 복제본(replica)을 구성하게 된다. 즉, 하나의 데이터는 여러 복제본으로 구성될 수 있고 그 각각의 복제본은 최적의 성능을 낼 수 있는 노드에 배치되는 것이다.
한편, 이러한 특징의 그리드 데이터베이스 시스템에서 사용자 질의는 목적 데이터를 포함하는 노드로 전송된 후 처리되는데, 이와 같은 환경에서는 노드 간 작업 부하의 불균형으로 인한 성능 저하가 나타날 수 있다. 따라서 효율적인 부하 분산 구현은 그리드 데이터베이스 환경에서 고려되어야할 주요 기술적 과제라 해도 과언이 아니다.
부하 분산(load balancing)에 대해서는 종래 분산 시스템 및 병렬 처리 시스템을 살펴볼 필요성이 있다. 이들 시스템과 관련하여 여러 부하 분산 기법에 대한 연구가 이루어졌으나, 그 대부분의 연구는 그리드 데이터베이스와 같이 기본적으로 노드 수가 많고 사용자 질의가 유동적으로 변동하는 환경에 응용 또는 적용되기 어렵다. 물론, 근접 노드들과의 정보 교환을 통해 부하 분산을 유도하는 취지의 연구 결과에 따르면 상기한 바와 달리 노드의 수에 대한 제약으로부터 자유로울 수 있다는 장점이 있으나, 데이터를 중심으로 부하 분산이 이루어져야 하는 그리드 데이터베이스 환경과는 적합하지 않다.
종래 시스템에서 사용자 질의는 보통 여러 데이터들을 요구하게 되는데, 이는 해당 데이터를 포함하는 노드로 전송되어 처리된다. 이때 해당 데이터가 저장된 노드는 카탈로그 정보(일종의 자원 명세)를 통해 찾게 되며, 해당 데이터의 복제본까지 포함한 노드의 리스트가 그 결과로 얻어진다. 따라서 질의 분배를 담당하는 프로세스는 얻어진 리스트 내의 노드 중 임의의 노드를 선택하여 질의를 전송하게 된다.
그러나 질의 처리를 위한 노드를 선택하는 과정에서, 임의의 노드에 사용자 질의가 집중되어 처리 성능이 떨어지게 되는 결과를 초래할 수 있다. 질의 처리의 최적화를 위해 노드와 노드 사이의 네트워크 비용, 해당 노드의 현재 작업부하, 사용자 질의의 연산 처리 순서 등을 고려하여 최적의 노드를 선택할 수 있지만, 모든 노드의 작업 부하 정보를 얻는 비용이 매우 크기 때문에 수많은 노드를 포함하는 그리드 데이터베이스 환경에 적용하기는 어렵다.
그리드 데이터베이스 시스템의 부하 공유 기법은 일종의 스케줄링 범주에 속하며, 기법들의 특징에 따라 구분하면 정적(static) 기법과 동적(dynamic) 기법으 로 대분될 수 있다. 정적 기법은 시스템이 진행되기 전에 미리 스케줄링을 완료함으로써 이후에는 각 노드의 부하에 관계없이 정해진 스케줄링 결과대로 운영하는 기법이며, 이와 달리 동적 기법은 매 순간마다 그 당시 시스템의 상태에 따라 스케줄링을 수행하는 기법이다.
종래의 부하 공유 기법들 중 가장 기본적이고 잘 알려져 있는 기법으로는 입찰(bidding) 기법이 있다[1]. 이 기법에서는 프로세스(process)를 이주시키고자 하는 호스트에서 프로세스 이주 의도를 포함한 메시지를 이전 호스트로 브로드캐스트(broadcast)하게 된다. 이 메시지를 받은 다른 호스트들은 자신의 상태와 자신이 제공할 수 있는 자원들의 여건들을 메시지로 생성하여 응답하게 된다. 이 기법은 비교적 간단하나 프로세스를 이주시킬 때마다 상기한 바와 같이 브로드캐스트를 해야 하는 일종의 오버헤드(overhead)가 발생하며, 이로 인한 시간 지연 때문에 호스트의 상태가 변경되어 바람직하지 못한 결정을 내릴 위험과 위 브로드캐스트에 따른 네트워크 비용에 대한 부담이 수반된다.
한편, Lin은 그래디언트(gradient) 모델에 기반을 둔 부하 공유 기법을 제안한바 있다[2]. Lin의 기법에 따르면 각 호스트는 자기 자신과 연결된 인접 호스트들과 정보를 교환한다. 여기서 호스트는 저부하(light), 보통(moderate), 과부하(heavy)의 세 가지로 나뉜다. 각 호스트들은 저부하 상태에서 호스트로부터의 최소 거리 값을 가지며, 저부하 호스트는 '0'값을 가지고 인접 호스트가 저부하 상태가 아니면 인접 호스트의 거리 값에 1을 증분시킨다. 그리고 자신의 값을 다른 인접 호스트들에게 전파하고, 이 전파를 받은 호스트는 자신이 저부하 상태가 아니면 그 값에 1을 증분하며, 만일 저부하 상태가 아니라면 자신의 값을 '0'으로 하고 모든 인접 호스트에게 전파한다. 이러한 전파 과정을 거치면 자신의 거리 값은 저부하 상태의 호스트로부터의 최소 거리 값이 된다.
상술한 Lin의 기법은 인접 호스트들의 거리 값과 부하를 자신과 비교해야 하는 과정이 반드시 요구되는바, 부하가 변경될 때 인접 호스트들의 상태를 메시지 형태로 가져와야 하고, 더욱이 계산 결과를 인접 호스트들로 전파시켜야 한다. 이러한 일련의 과정은 모든 호스트들에서 발생하게 되므로 그에 따른 메시지의 양은 현격히 증가한다. 그리고 이주하던 프로세스가 전파되는 와중에 여러 호스트들이 상태 변경을 심하게 발생시키면 해당 프로세스는 네트워크를 표류할 가능성이 농후해 진다. 이와 같은 Lin의 부하 공유 기법은 앞서 언급한 바와 같이 여러 노드에 복제본이 저장되고 그 복제본을 중심으로 작업 부하가 발생하는 그리드 데이터베이스 시스템에는 적용되기 어렵다.
선행 문헌 정보
[1]. D. J. Farber, "The Distributed Computer System," in Proc. 7th Annu. IEEE Comp. Soc. int.Conf., Feb. 1973.
[2]. F. C. H. Lin and R. M. Keller, "The Gradient Model Load Balancing Method," IEEE Trans. on Software Engineering, vol. SE-13, no. 1, pp 32-38, 1987.
본 발명은 전술한 문제점들을 해결하기 위해 창안된 것으로서, 동일 복제본이 포함된 노드들을 하나의 링 구조로 연결하고, 임의의 노드의 작업 부하가 한계를 넘게 되면, 이후 입력되는 질의의 목적 데이터에 따라 다음 연결 노드로 질의를 전송하고, 상기 노드는 작업 부하가 적어질 때까지 새로운 질의를 입력 받지 않도록 함으로써, 그리드 데이터베이스 시스템에 대한 효율적인 부하 분산을 구현한다.
상술한 목적을 구현하기 위한 본 발명의 그리드 데이터베이스 시스템은, 데이터의 복제본을 저장하는 다수의 노드로 구성되는 그리드 데이터베이스 시스템으로서, 상기 노드는, 다른 노드 및 클라이언트와 양방향 데이터 통신을 수행하는 접속수단과, 이 접속수단을 통해 수신한 사용자 질의를 처리하는 질의 처리수단과, 자신이 관리하는 복제본과 동일한 복제본을 가지고 있는 전후 노드에 대한 정방향 링크와 역방향 링크가 복제본별로 정의되는 연결목록을 저장하는 연결목록 저장수단과, 자신의 현재 작업 부하량을 식별하고 그 결과를 '보통' 또는 '과부하'의 상태정보로 저장하는 부하량 식별수단과, 역방향 링크로 전달할 메시지를 생성하는 메시지 생성수단, 그리고, 이들을 제어하는 제어수단을 포함한다.
이러한 그리드 데이터베이스 시스템을 위한 부하 분산 방법으로서, 먼저 노드가 사용자 질의를 수신한 경우의 부하 분산 방법을 살펴보면, 이전의 상태정보가 '보통'이고, 현재의 작업 부하량이 자원 한계치를 초과하는 경우, 상태정보를 '과부하'로 갱신하는 제1 과정과, 연결목록의 정방향 링크 정보가 'NULL'이 아니라면, 정방향 링크 정보를 포함한 메시지를 연결목록에 등록되어 있는 역방향 링크의 노드로 전송하는 제2 과정, 및 사용자 질의를 상기 정방향 링크의 노드로 포워딩시키는 제3 과정으로 이루어진다.
또한, 노드의 이전 상태정보가 '과부하'이고 현재 작업 부하량이 자원 한계치를 초과하지 않는 경우의 부하 분산 방법은, 상태정보를 '보통'으로 갱신하고, 자신을 지칭하도록 설정된 정방향 링크 정보와 복제본의 총 개수에 해당하는 TTL 정보를 포함한 메시지를 생성하여 연결목록에 등록되어 있는 역방향 링크의 노드로 전송하는 과정을 포함한다.
또한, 노드가 다른 노드로부터 메시지를 수신한 경우의 부하 분산 방법은, 수신한 메시지에 포함된 정방향 링크 정보가 자신을 지칭하는지 판단하는 제1 과정과, 그 판단결과 자신을 지칭하지 않는다면 메시지에 포함된 정방향 링크 정보를 연결목록의 정방향 링크 정보에 갱신하고, 메시지에 포함된 TTL 정보를 '1' 차감하는 제2 과정, 그리고 차감된 TTL 정보가 '0'보다 크다면 메시지에 차감된 TTL 정보를 포함시켜 연결목록에 등록된 역방향 링크의 노드로 전송하는 제3 과정으로 이루어진다.
본 발명의 구체적인 특징과 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 명백해질 것이다. 이에 앞서 본 발명에 관련된 공지 기능 및 그 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 구체적인 설명을 생략하였음에 유의해야 할 것이다.
먼저, 첨부된 도 1은 본 발명의 기술적 사상이 적용될 수 있는 그리드 데이 터베이스 시스템에 대한 전체적인 개념도를 나타내고 있다.
기본적으로 그리드 데이터베이스 시스템은 다수의 노드(100)로 구성되어 인터넷을 통해 동질적이거나 이질적인 데이터베이스들을 하나로 묶어 관리하는데, 여기서 노드(100)는 독립적으로 운영될 수 있는 서버(server)로 이해함이 바람직하며, 그 관리 대상인 데이터베이스의 형태는 단일의 데이터베이스(10), 클러스터로 구성된 데이터베이스(20), LAN 환경에서 묶여 있는 분산 데이터베이스(30)들을 포함할 수 있다.
참고적으로 분산 데이터베이스는 물리적으로 분리되어 있고 논리적으로는 집중되어진 것으로서, 데이터베이스 클러스터와 그리드 데이터베이스도 이에 속한다. 데이터베이스 클러스터의 서버와 그리드 데이터베이스의 서버는 앞서 언급한 바와 같이 분산 데이터베이스의 범주에 속하기 때문에 서로 유사한 구성을 이루고 있다.
이하, 본 발명이 개시하는 노드(100)의 서버로서의 기본적인 기능에 대해 첨부된 도 2를 참조하여 살펴본다. 먼저 클라이언트(101)는 인터페이스 라이브러리, GUI(Graphical User Interface)기반의 툴로써 직접 데이터베이스에 질의 요청을 담당하는 본 서버 전용의 툴이며, 일반적인 데이터베이스 관리 시스템의 형태를 가지면서 그리드 데이터베이스를 관리하는 관리자 프로그램 및 자원 사용량을 감시하는 모니터링 툴 등을 포함한다.
메타 관리수단(103)은 기존의 단일 데이터베이스 시스템과는 달리 투명성과 가용성을 제공하기 위한 그리드 데이터베이스 환경에 자신이 가지고 있지 않은 데이터의 정보를 찾고자 할 때 사용되는데, 다른 메타 데이터베이스와의 통신 프로토 콜을 통해서 자신이 가지고 있지는 않지만 사용자 질의 요청에 대한 데이터를 받아오는 기능을 수행한다.
제어 수단(105)은 서버의 구동, 중지, 확장, 축소, 설정 변경 등의 서버 운용에 관련된 기능을 제어하는 컴포넌트로서, 즉 메타 정보에 등록되어 있는 그리드 데이터베이스의 정보를 바탕으로 구동, 중지, 확장, 축소, 이동과 같은 시스템 운영과 데이터베이스 구조에 대한 제어권을 관리한다. 또한, 일반적인 질의 처리를 제외한 데이터베이스의 재구성 요청, 노드의 제어요청, 그리드 데이터베이스의 추가 및 삭제 요청 서비스 삭제 요청, 서비스 시작 및 중지 요청에 대한 처리를 위한 인터페이스를 담당하고, 기본 질의 처리부(107) 또는 부하 처리부(109)와의 메시지 송수신 처리 과정을 포함하는 컴포넌트이다.
상기 기본 질의 처리부(107)는 질의 처리 과정의 전반적인 수행을 담당하는 컴포넌트로서 단일 데이터베이스 관리 시스템의 구조와 거의 흡사하게 구성될 수 있으나, 질의 처리를 위한 수행 과정이 그리드 데이터베이스를 고려하여 설계된다. 이러한 기본 질의 처리부는 미도시된 외부 연결 처리수단, 질의 처리기, 트랜잭션 처리수단, 네트워크 연결 처리수단, 저장 관리수단으로 구성될 수 있으며, 외부 클라이언트(101)로부터 상기 외부 연결 처리수단을 통해 질의가 입력되면, 질의 처리기가 질의를 분석하여 메타 관리수단(103)으로부터 해당 질의가 접근하는 데이터의 정보를 얻어오며, 질의는 다시 트랜잭션 처리수단으로 전달되고, 트랜잭션에 대한 세션을 할당받게 된다. 이때의 트랜잭션 처리수단은 그리드 데이터베이스 환경에서 각 노드의 트랜잭션 연동 및 관리를 담당한다. 만일 접근 영역에 포함되는 데이터 가 현재 노드에 없으면 네트워크 연결 처리기를 통해 질의를 포워딩시킴과 아울러 세션 정보와 트랜잭션 정보를 함께 전송하여 해당 노드에서 포워딩 정보를 포함하는 별도의 세션을 할당받아 트랜잭션이 작동하게 된다. 이와 같이 질의 처리가 완료되면 다시 경우에 따라 질의를 받았던 원래의 노드로 그 결과를 반환하고, 클라이언트에게 전달한다. 한편, 앞서 언급한 저장 관리수단은 일반적인 데이터와 질의 처리 로그 외에 그리드 데이터베이스의 처리 로그와 포워딩 로그, 회복 로그, 재조직 로그, 확장 로그를 데이터베이스(미도시)에 저장하며 관리한다.
또한, 부하 처리부는 부하 분산 관리 컴포넌트로서, 노드의 상태를 파악하는데, 예를 들어 질의가 집중되거나 자원의 한계점에 이르는 문제가 발생할 경우의 노드 상태를 파악하고 이를 바탕으로 사용자 질의가 요청될 때마다 과부하 상태인지 아닌지 식별할 수 있다. 물론 이와 같은 상태 식별은 시간 단위로 이루어질 수도 있을 것이다.
전술한 노드(100)의 기본적 기능에 대한 보다 상세한 기술적 내용은 본 출원인의 등록특허 제10-0492167호(발명의 명칭: "비공유 구조의 데이터베이스 클러스터 서버 시스템과 온라인 확장 방법")에 개시한 바를 참조할 수 있는데, 본 발명의 노드(100)에 대한 기본적인 기능은 매우 다양하게 구현될 수 있음은 극히 자명하다.
한편, 아래의 바람직한 실시예에서 살펴보겠지만, 각각의 노드 간에 저장되는 데이터들은 동일 복제본(replica)을 기준으로 방향성을 갖는 링(ring) 구조의 형태로 연결 및 관리되는데, 이를 위해 각 노드는 연결 정보에 대한 목록을 마련하 게 된다. 이러한 점을 보다 명확히 기술하기 위해 앞서 살펴본 노드의 구성을 다음과 같이 기능적으로 재정의 한다.
도 3을 참조하면, 노드(100)는 다른 노드와 양방향 데이터 통신을 가능케 하고, 미도시된 클라이언트로부터 사용자 질의를 받는 접속수단(110)과, 사용자 질의를 처리하는 질의 처리수단(120)과, 자신이 저장 관리하고 있는 복제본과 동일한 복제본을 가지고 있는 전후 노드에 대한 정방향 링크(Forward Link) 정보 및 역방향 링크(Backward Link) 정보를 복제본별로 저장하고 있는 연결목록 저장수단(130)과, 자신의 부하량, 다시 말해 질의가 집중되어 가용할 수 있는 자원의 한계치(이하, '자원 한계치')에 도달한 경우를 식별하고 그 식별한 결과를 상태정보('보통' 또는 '과부하')로 저장하는 부하량 식별수단(140)과, 자원 한계치에 도달했을 경우 또는 과부하 상태에서 보통 상태로 전환되었을 경우 역방향 링크의 노드로 전달할 자신의 정방향 링크 정보를 포함한 메시지를 생성하는 메시지 생성수단(150)과, 이들을 제어하는 제어수단(160)을 포함한다.
본 발명의 제어수단(160)에 대한 특징적인 기능에 대해서는 아래의 설명에서 명확히 드러날 것이며, 이하에서는 도 4a 내지 도 4c를 참조하여 앞서 언급한 연결목록의 구조에 대해 살펴보기로 한다.
도 4a를 살피면, 연결목록의 기본 정보는 크게, 자신이 저장하고 있는 복제본의 식별 정보로서 복제본 명칭(RN; Replica Name) 정보와, 해당 복제본을 가지고 있는 정방향의 노드를 지칭하는 정방향 링크(FL; Forward Link) 정보와, 해당 복제본을 가지고 있는 역방향의 노드를 지칭하는 역방향 링크(BL; Backward Link) 정보로 대분된다.
도 4b는 다수의 노드들 간에 복제본별로 링 기반 구조로 연결된 상태를 보인 예시도로서, 총 6개의 노드(N1, N2, ... , N6)로 구성되어 있고, 각 노드별로 세 종류의 복제본(A, B, C)들 중 적어도 하나 이상의 복제본을 저장하고 있으며, 각 본제본에 대해서는 동일 복제본별로 링(Ring) 구조로 연결되되, 이 링 구조는 정방향 링크(FL)와 역방향 링크(BL)로 정의되어 있다. 예를 들어, 노드 N1, N2, N3 간에 정의된 복제본 B의 구조를 살펴보면, B1→B2→B3로 역방향 및 정방향이 정의되어 하나의 링 연결 구조를 형성하고 있다.
이와 같은 링 연결 구조는 노드별로 다수 형성될 수 있다. 노드 N3의 경우를 예로 들어, 복제본 A, B, C에 대한 연결목록을 살피면 첨부한 도 4c와 같다. 보다 구체적으로 복제본 A에 대해서 정방향 링크 정보는 노드 N5를 지칭하고 있고, 역방향 링크 정보는 노드 N2를 지칭하고 있다. 또한, 복제본 B에 대해서 정방향 링크 정보는 노드 N1을, 역방향 링크 정보는 노드 N2를 지칭하고 있다. 즉, 각각의 노드는 자신이 저장하고 있는 복제본별로 정방향과 역방향에 위치한 노드 정보를 가지고 있는 방식으로 링 연결 구조를 형성하는 것이다.
한편, 본 발명의 특징적인 일 양상에 따른 노드(100)는 클라이언트 또는 다른 노드로부터 포워딩된 사용자 질의를 받았을 경우, 자신이 처리할 수 있는지 판별하여 만일 자신이 처리할 수 없다면(즉, 자원 가용 한계치에 도달한 과부하 상태), 해당 질의를 정방향 링크의 노드로 포워딩(forwarding)시킴과 아울러 역방향 링크의 노드로 자신이 갖고 있는 복제본에 대한 복제본 명칭 정보 및 상기 정방향 링크 정보를 포함한 메시지를 생성하여 역방향 링크의 노드로 전송하게 된다.
여기서 상기의 메시지를 수신한 노드는 메시지의 정방향 링크 정보를 추출하여 자신이 저장하고 있는 연결목록의 정방향 링크 정보에 갱신하게 된다. 노드는 사용자 질의를 받았을 경우에 한하지 않고, 주기적으로 자신의 자원 가용 상태를 파악한 후, 전술한 바와 같이 역방향 링크의 노드로 메시지를 전송할 수도 있음은 물론이다.
전술한 바를 도 5를 참조하여 부연해보면, 복제본 B를 가지고 있는 노드 N1, N2, N3에서 노드 N2가 과부하로 더 이상의 사용자 질의 처리가 불가할 경우, 노드 N2는 복제본 명칭 정보 및 정방향 링크 정보(노드 N3을 지칭하는 정보)를 포함한 메시지를 생성하여 역방향 링크의 노드인 N1로 전송한다. 노드 N1은 자신의 정방향 링크 정보를 상기 메시지에 포함된 정방향 링크 정보로 갱신하게 된다. 따라서 노드 N2는 과부하가 아닌 보통 상태가 될 때까지 노드 N1으로부터 사용자 질의를 더 이상 포워딩 받지 않게 되며, 노드 N2는 자신의 과부하 상태가 해지될 때까지 다른 노드로부터 포워딩되는 사용자 질의 처리를 하지 않게 되는 것이다.
한편, 상기한 메시지를 수신한 노드 N1 역시 과부하 상태라면, 수신한 메시지를 역방향 링크의 노드, 즉 N3으로 전송한다. 노드 N3은 수신한 메시지로부터 정방향 링크 정보를 추출하여 자신이 가지고 있는 연결목록의 정방향 링크 정보에 갱신한다. 이때 노드 N3을 살피면, 노드 N3의 연결목록에 기록되는 정방향 링크 정보는 자기 자신을 지칭하게 되는데, 이때는 정방향 링크 정보가 'NULL'로 갱신된다.
여기서 'NULL'의 의미를 환언해보면, 모든 노드가 과부하 상태임을 나타낸 다. 따라서 노드 N3은 자신의 역방향 링크의 노드로 상기와 같은 메시지를 전송할 필요가 없다. 왜냐하면 이러한 경우의 메시지 전송은 네트워크의 부하만을 무의미하게 가중시키는 결과를 초래하기 때문이다.
한편, 상기한 바와 달리 모든 노드가 과부하 상태에서 어느 임의의 노드가 보통 상태로 전환되었을 경우를 살펴볼 필요가 있다. 임의의 노드가 과부하 상태에서 보통 상태로 전환되면, 역방향 링크의 노드로 메시지를 전달하게 되고, 이 메시지를 수신한 노드는 자신의 정방향 링크 정보를 상기한 임의의 노드를 지칭하도록 갱신하게 된다. 여기서 고려되어야 할 것은 자칫 역방향 링크로 전달되는 메시지가 링 구조로 연결된 노드 간에 무한 루핑(looping)될 가능성이 있다는 점이다. 따라서 최초 메시지를 생성하는 노드는 메시지에 복제본의 총 개수에 해당하는 TTL(Time To Live) 정보를 포함시키며, 이와 같은 메시지를 전송받은 노드가 TTL 정보에서 '1'을 차감한 후, 기저장된 상태정보가 '과부하'이고 차감된 TTL 정보이 0보다 크다면 역방향 링크의 노드로 차감된 TTL 정보를 포함한 메시지를 전송함으로써, 무한 루핑을 방지할 수 있다.
이상에서 살펴본 바와 같이 노드 간에 복제본별 정방향 링크는 과부하 상태에 따라 유동적으로 변동/갱신됨을 알 수 있다.
이하, 첨부도면 도 6 내지 도 8을 통해 본 발명의 노드에 대한 여러 가지 처리 과정에 대해 설명한다. 먼저, 본 발명에 따른 노드의 이전 상태정보가 '보통'이고 현재 과부하 상태로 전환되는 경우의 처리 과정을 도 6을 참조하여 살펴본다.
제어수단(160)이 접속수단(110)을 통해 사용자 질의를 수신한다(S601). 여기 서 사용자 질의는 다른 노드로부터 포워딩된 질의일 수 있으며, 상기 접속수단(110)에 접속된 클라이언트로부터 수신된 질의일 수 있다.
이어서 제어수단(160)은 부하량 식별수단(140)을 통해 상태정보를 독출하여 이전의 상태(사용자 질의를 수신하기 전의 상태)가 '보통'이고, 현재의 작업부하가 자원 한계치를 초과하는지 여부를 판단한다(S603). 그 판단 결과, 초과하지 않았다면 제어수단(160)은 상기 상태정보를 '과부하'로 갱신하고(S605), 초과되었다면 사용자 질의를 현재 노드에서 처리되도록 한다(S607).
제 S605 단계 이후, 상기 제어수단(160)은 연결목록 저장수단(130)에 저장된 연결목록의 정방향 링크 정보가 'NULL'인지 여부를 판단하는데(S609), 만약 'NULL'이라면 상기 제 S607 단계로 절차를 이행시키며, 'NULL'이 아니라면 연결목록의 정방향 링크 정보를 포함한 메시지를 역방향 링크의 노드로 전송한다(S611).
여기서 정방향 링크 정보가 'NULL'이라는 것은 전술한 바와 같이 다른 노드들 모두가 과부하 상태였음을 의미하므로, 사용자 질의를 포워딩시킬 필요 없이 자신의 노드에서 처리되게 하는 것이다.
제 S611 단계가 수행된 후, 제어수단(160)은 사용자 질의를 정방향 링크의 노드로 포워딩시킨다(S613).
이하, 본 발명에 따른 노드의 이전 상태정보가 '과부하'이고 현재 보통 상태로 전환되는 경우의 처리 과정을 도 7을 참조하여 살펴본다.
먼저, 상기 제어수단(160)은 이전 상태정보가 '과부하' 상태에서 부하량 식별수단(140)을 통해 주기적으로 현재의 작업 부하가 자원 한계치를 초과하지 여부 를 판단한다(S701). 만약 자원 한계치를 초과하지 않는다면, 이는 보통 상태를 의미하므로 부하량 식별수단(140)을 통해 상태정보를 '보통'으로 갱신하고(S703), 메시지 생성수단(150)을 통해 자신의 노드를 지칭하는 정방향 링크 정보 및 복제본의 총 개수에 해당하는 TTL 정보를 포함한 메시지를 생성하여 연결목록의 역방향 링크에 해당하는 노드로 전송한다(S705).
다음으로 메시지를 전달받은 노드의 처리 과정에 대해 도 8을 참조하여 살펴본다.
상기 제어수단(160)이 접속수단을 통해 다른 노드로부터 메시지를 수신하였는지 여부를 판단하여(S801), 수신했을 경우 메시지에 포함된 정방향 링크가 자신의 노드를 지칭하는지 여부를 판단한다(S803).
제 S803 단계의 판단 결과, 자신의 노드를 지칭하지 않는다면, 수신한 메시지에 포함된 정방향 링크 정보를 연결목록의 정방향 링크 정보에 갱신한다(S805). 이후, 상기 메시지에 포함된 TTL 정보에서 '1' 차감한 후(S807), 기저장된 상태정보가 '과부하'이고 상기 TTL 정보가 '0'보다 작은지 여부를 판단한다(S809).
제 S809 단계에서, 만약 TTL 정보가 '0'보다 작다면, 상기 수신한 메시지는 자신의 노드를 제외한 모든 노드를 거친 메시지에 해당하므로 삭제하고(S811), 반면에 '0'보다 크다면 상기 메시지에 제 S807 단계에서 차감한 TTL 정보를 포함시켜 연결목록에 등록된 역방향 링크의 노드로 전송한다(S813).
한편, 상기 제 S803 단계의 판단 결과, 자신의 노드를 지칭한다면, 다른 노드들 모두가 과부하 상태에 있음을 의미하므로, 제어수단(160)은 연결목록의 정방 향 링크 정보를 'NULL'로 갱신하고(S815), 절차를 제 S807 단계로 이행시킨다.
이상에서 본 발명의 노드가 처리 하는 기본적인 과정에 대해 기술하였으나, 본 발명의 노드는 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다.
전술한 본 발명에 의하면, 그리드 데이터베이스를 구성하는 다수의 노드를 복제본 별로 하나의 링 구조로 연결 및 관리함으로써, 노드별 작업 부하량에 따라 사용자 질의를 분산시킬 수 있고, 따라서 그리드 데이터베이스에 대한 부하 분산을 효율적으로 구현할 수 있는 효과가 있다.

Claims (5)

  1. 데이터의 복제본을 저장하는 다수의 노드(100)로 구성되는 그리드 데이터베이스 시스템으로서,
    상기 노드(100)는,
    다른 노드 및 클라이언트와 양방향 데이터 통신을 수행하는 접속수단(110);
    상기 접속수단을 통해 수신한 사용자 질의를 처리하는 질의 처리수단(120);
    자신이 관리하는 복제본과 동일한 복제본을 가지고 있는 전후 노드에 대한 정방향 링크와 역방향 링크가 복제본별로 정의되는 연결목록을 저장하는 연결목록 저장수단(130);
    자신의 현재 작업 부하량을 식별하고 그 결과를 '보통' 또는 '과부하'의 상태정보로 저장하는 부하량 식별수단(140);
    역방향 링크로 전달할 메시지를 생성하는 메시지 생성수단(150); 및
    이들을 제어하는 제어수단(160); 을 포함하는 것을 특징으로 하는 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템.
  2. 청구항 1의 시스템을 위한 부하 분산 방법으로서,
    노드(100)가 사용자 질의를 수신한 경우,
    이전의 상태정보가 '보통'이고, 현재 작업 부하량이 자원 한계치를 초과하는 경우, 상기 상태정보를 '과부하'로 갱신하는 제1 과정;
    연결목록의 정방향 링크 정보가 'NULL'이 아니라면, 상기 정방향 링크 정보를 포함한 메시지를 상기 연결목록에 등록되어 있는 역방향 링크의 노드로 전송하는 제2 과정; 및
    상기 사용자 질의를 상기 정방향 링크의 노드로 포워딩시키는 제3 과정; 으로 이루어지는 것을 특징으로 하는 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템의 부하 분산 방법.
  3. 청구항 2에 있어서,
    상기 제1 과정의 현재 작업 부하량이 자원 한계치를 초과하지 않거나, 또는 제3 과정의 정방향 링크 정보가 'NULL'이라면, 현재 노드에서 상기 사용자 질의를 처리하는 과정; 을 더 포함하는 것을 특징으로 하는 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템의 부하 분산 방법.
  4. 청구항 1의 시스템을 위한 부하 분산 방법으로서,
    노드(100)의 이전 상태정보가 '과부하'이고 현재 작업 부하량이 자원 한계치를 초과하지 않는 경우,
    상기 상태정보를 '보통'으로 갱신하고, 자신을 지칭하도록 설정된 정방향 링크 정보와 복제본의 총 개수에 해당하는 TTL 정보를 포함한 메시지를 생성하여 연결목록에 등록되어 있는 역방향 링크의 노드로 전송하는 과정; 을 포함하는 것을 특징으로 하는 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템의 부하 분산 방법.
  5. 청구항 1의 시스템을 위한 부하 분산 방법으로서,
    노드(100)가 다른 노드로부터 메시지를 수신한 경우,
    상기 수신한 메시지에 포함된 정방향 링크 정보가 자신을 지칭하는지 판단하는 제1 과정;
    제1 과정의 판단결과, 자신을 지칭하지 않는다면 상기 메시지에 포함된 정방향 링크 정보를 연결목록의 정방향 링크 정보에 갱신하고, 상기 메시지에 포함된 TTL 정보를 '1' 차감하는 제2 과정; 및
    상기 차감된 TTL 정보가 '0'보다 크다면 상기 메시지에 차감된 TTL 정보를 포함시켜 연결목록에 등록된 역방향 링크의 노드로 전송하는 제3 과정; 으로 이루어지는 것을 특징으로 하는 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템의 부하 분산 방법.
KR1020060068252A 2006-07-21 2006-07-21 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템및 이를 위한 부하 분산 방법 KR100827626B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060068252A KR100827626B1 (ko) 2006-07-21 2006-07-21 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템및 이를 위한 부하 분산 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060068252A KR100827626B1 (ko) 2006-07-21 2006-07-21 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템및 이를 위한 부하 분산 방법

Publications (2)

Publication Number Publication Date
KR20080008699A KR20080008699A (ko) 2008-01-24
KR100827626B1 true KR100827626B1 (ko) 2008-05-07

Family

ID=39221469

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060068252A KR100827626B1 (ko) 2006-07-21 2006-07-21 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템및 이를 위한 부하 분산 방법

Country Status (1)

Country Link
KR (1) KR100827626B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11032361B1 (en) 2020-07-14 2021-06-08 Coupang Corp. Systems and methods of balancing network load for ultra high server availability
CN114363357B (zh) * 2021-12-28 2024-01-19 上海沄熹科技有限公司 一种基于Gossip的分布式数据库网络连接管理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136448A1 (en) * 2004-12-20 2006-06-22 Enzo Cialini Apparatus, system, and method for database provisioning

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136448A1 (en) * 2004-12-20 2006-06-22 Enzo Cialini Apparatus, system, and method for database provisioning

Also Published As

Publication number Publication date
KR20080008699A (ko) 2008-01-24

Similar Documents

Publication Publication Date Title
US7543020B2 (en) Distributed client services based on execution of service attributes and data attributes by multiple nodes in resource groups
WO2012086919A2 (ko) 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
CN103067293A (zh) 负载均衡设备的连接管理和复用的方法和系统
WO2012086918A2 (ko) 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
US20100138540A1 (en) Method of managing organization of a computer system, computer system, and program for managing organization
KR20010088742A (ko) 분산처리 및 피어 대 피어 통신을 이용한 네트워크 상의정보전송 병렬화 방법
CN102859961B (zh) 具有自适应的文件处理的分布式视频转码系统
CN111600936A (zh) 一种适用于泛在电力物联网边缘终端的基于多容器的非对称处理系统
Gupta et al. A technique based on ant colony optimization for load balancing in cloud data center
Honnutagi The Hadoop distributed file system
CN111158949A (zh) 容灾架构的配置方法、切换方法及装置、设备和存储介质
KR100827626B1 (ko) 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템및 이를 위한 부하 분산 방법
Chang et al. A multiple parallel download scheme with server throughput and client bandwidth considerations for data grids
JP2013543169A (ja) ミドルウェアマシン環境を含むシステム
Yuan et al. Federate migration in hla-based simulation
KR20030014513A (ko) 서버 부하의 분산을 위한 클라이언트 데이터 공유 시스템및 그 방법
CN112416495B (zh) 一种超融合云终端资源统一管理系统及方法
JP2024514467A (ja) 地理的に分散されたハイブリッドクラウドクラスタ
Chin et al. Efficient load balancing for bursty demand in web based application services via domain name services
Shukla et al. Survey on load balancing techniques
US11172021B2 (en) File objects download and file objects data exchange
Hanamakkanavar et al. Load balancing in distributed systems: a survey
Saleh et al. Using heuristic search techniques to reduce task migrations in peer-to-peer volunteer computing networks
Namikata et al. Methods of dynamic scaling with VM for high availability server clusters
Daaif et al. An efficient multi-agent computationnal model for massively distribution of independent and heterogeneous tasks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130325

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee