KR100492167B1 - 비공유 구조의 데이터베이스 클러스터 서버 시스템과온라인 확장 방법 - Google Patents

비공유 구조의 데이터베이스 클러스터 서버 시스템과온라인 확장 방법 Download PDF

Info

Publication number
KR100492167B1
KR100492167B1 KR10-2003-0063344A KR20030063344A KR100492167B1 KR 100492167 B1 KR100492167 B1 KR 100492167B1 KR 20030063344 A KR20030063344 A KR 20030063344A KR 100492167 B1 KR100492167 B1 KR 100492167B1
Authority
KR
South Korea
Prior art keywords
node
data
processor
query
expansion
Prior art date
Application number
KR10-2003-0063344A
Other languages
English (en)
Other versions
KR20050026306A (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 KR10-2003-0063344A priority Critical patent/KR100492167B1/ko
Publication of KR20050026306A publication Critical patent/KR20050026306A/ko
Application granted granted Critical
Publication of KR100492167B1 publication Critical patent/KR100492167B1/ko

Links

Classifications

    • 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/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2428Query predicate definition using graphical user interfaces, including menus and forms
    • 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/24Querying
    • G06F16/245Query processing
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • G06F16/287Visualization; Browsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 비공유 구조의 데이터베이스 클러스터 서버와 온라인 확장 기법에 관한 것으로서, 클라이언트; 기본 질의 처리 컴포넌트; 데이터베이스 관리 컴포넌트; 전역 메타 관리기; 중앙제어기; 및 데이터베이스;를 포함함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버와 원본 노드인 제1 노드(N1)에 원본 데이터, 복제 노드인 제 2노드(N2)에 원본 데이터의 복제 데이터를 두는 제 1단계; 상기 제 1노드의 소정의 데이터를 확장 노드인 제 3노드로 전송하며, 상기 제 2노드의 소정의 데이터를(여기서 제 2노드의 소정의 데이터는 상기 제 1노드의 소정의 데이터와 다른 부분의 데이터) 확장 노드인 제 4노드로 전송하는 제 2단계; 상기 제 2단계에서 데이터 전송이 완료되면 상기 각 확장 노드에서 기 전송된 서로 다른 부분의 데이터를 상기 타 확장 노드로 전송하여 완전한 형태의 데이터를 생성하는 제 3단계;를 포함함을 특징으로 하는 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법에 관한 것이다.

Description

비공유 구조의 데이터베이스 클러스터 서버 시스템과 온라인 확장 방법{Shared-nothing database cluster server system and On-line scaling method}
본 발명은 비공유 구조의 데이터베이스 클러스터 서버 시스템과 온라인 확장 방법에 관한 것으로, 더욱 구체적으로는 인터넷 또는 모바일 환경과 같이 다수의 사용자에 의해 패턴이 불규칙적이고 질의의 수가 일시적으로 급증할 수 있는 동적 환경에서 대용량의 질의를 안정적·지속적으로 처리하기 위한 데이터베이스 클러스터 서버 시스템과 온라인 확장 방법에 관한 것이다.
일반적으로 데이터베이스 클러스터에 관한 기술은 공유 디스크 구조(Shared Disk), 공유 메모리 구조(Shared Memory), 비공유 구조로 나눌 수 있다.
공유 디스크 구조와 공유 메모리 구조는 시스템 구성 비용, 통신 부하, 관리 비용이 큰 반면, 비공유 구조는 확장성이 높고, 비용 대비 효율이 높다. 이러한 이유로 비공유 구조가 여러 연구용 및 상용 데이터베이스 클러스터들에 의해 채택되고 있다.
비공유 구조의 데이터베이스 클러스터 시스템은 독립적으로 동작되는 시스템들을 클러스터의 노드로 포함시키고, 이를 고속의 네트워크로 연결시키는 형태를 갖는다. 데이터베이스에 저장되는 전체 데이터는 가용성을 위해 각각의 클러스터 노드에 복제(Replication) 또는 분할(Fragmentation)된 형태로 저장된다. 이러한 저장 형태를 바탕으로 임의의 노드에서 장애가 발생하여 서비스가 불가능할 경우 그 복제본을 갖는 노드의 데이터로 대신 서비스를 제공한다.
비공유 구조의 데이터베이스 클러스터는 질의 처리시 복제본의 갱신 방법에 따라 원본 데이터와 복제본을 동시에 갱신시키는 즉시 갱신(eager update)과 원본 노드의 갱신 연산이 완료되면 먼저 클라이언트에게 결과를 반환하고 나머지 복제본에 대한 갱신 연산을 수행하는 지연 갱신(lazy update) 방식으로 나눌 수 있다.
또한 갱신 영역에 따라 전체 갱신(update everywhere) 방식과 마스터 갱신(master update) 방식으로 나눌 수 있는데 전체 갱신의 경우 무결성은 보장할 수 있으나, 갱신 연산에 대한 처리가 힘들며, 마스터 갱신은 갱신 연산에는 효율적이지만 일부 무결성에 있어서 문제점을 가진다.
또한 데이터의 저장 형태에 따라 완전 복제(Fully Replication) 방식과 분할 및 복제를 함께 사용하는 부분 복제(Partially Replication) 방식으로 나뉜다. 완전 복제 방식은 저장 구조 및 관리가 간단하며, 장애가 발생할 경우 주어진 복제 노드를 즉시 사용할 수 있어 높은 가용성을 제공한다. 그러나, 갱신 질의 처리의 경우 모든 복제 노드의 동시성 유지 및 동일 갱신 연산의 처리를 위해 고비용의 연산을 수행하게 되어 질의 처리 시간이 크게 증가하게 된다. 반면에 부분 복제 방식은 완전 복제 방식에 비해 저장 구조 및 장애 처리 기법이 복잡하며, 데이터의 특성 및 저장 구조에 따라 성능의 차이를 갖지만 읽기 및 갱신 질의에 대해 대체적으로 안정적인 성능을 갖는다.
비공유 구조의 데이터베이스 클러스터는 일반적으로 공유 메모리 및 공유 디스크 구조의 시스템에 비해 높은 확장성을 갖는다. 하드웨어 또는 소프트웨어의 기능 확장을 위해 서버를 중지시킨 후 재가동 시켜야 하는 공유 메모리, 디스크 구조와는 달리 비공유 구조는 각 노드가 독립적으로 구성되어 데이터의 재조직 및 확장 과정을 통해 자유로운 노드의 확장 및 축소가 가능하다.
이러한 기능을 활용하여 서비스가 제공되는 온-라인 상태에서도 특정 노드로의 부하 집중 문제, 장애 발생 문제 또는 사용자 증가에 의해 기존 시스템의 처리량이 한계에 도달하는 문제가 발생할 경우 온-라인 재조직 및 온-라인 확장 기법을 통한 해결이 가능하다.
온-라인 재조직 기법은 서비스를 지속적으로 제공하면서 클러스터 내에 존재하는 기존의 데이터베이스 구성을 새롭게 변경하고, 변경된 구성 내용을 바탕으로 기존의 데이터를 생성, 삭제, 이동, 그리고 병합 과정을 통해 데이터베이스를 재조직 하는 기법이다. 재조직 과정을 온-라인 상태로 처리하기 위해서는 데이터 이동의 경우 별도의 트랜잭션 처리 로그를 두어 이동되는 데이터의 무결성을 유지시키는 기법과 트랜잭션 처리와 동시에 갱신 영역을 판별하고 판별된 갱신 영역이 전송 영역인지 아닌지에 따라 실시간 갱신 데이터 전송 여부를 결정하는 기법으로 나눌 수 있다.
온-라인 확장 기법은 온-라인 재조직 기법을 유휴 노드를 통한 노드 확장의 경우로 한정지어 사용하는 특수한 기법이다. 여기서 유휴 노드는 클러스터 서버에 포함은 되지만 서비스 처리에는 참여하지 않는 비활성 노드이다. 이 기법은 사용자가 급증하여 서버의 처리량을 늘릴 필요가 생길 경우를 대비해 항시 대기중인 유휴 노드를 두어 실시간 서버 확장을 가능케 한다. 유휴 노드를 포함하여 활용 가능한 모든 노드를 서버에 참여시킴으로써 서버의 처리량을 미리 확장시켜 놓는 방법이 더 효율적으로 보일 수 있으나, 사용자가 증가할 경우 발생하는 대부분의 문제는 특정 노드 또는 특정 데이터와 같이 부분적인 부하 집중으로 인해 발생하는 문제들로서 온-라인 재조직 기법을 통해 처리할 경우 현재 한계점에 이른 서버의 처리량에 더 큰 부하를 발생시킴으로써 더 큰 문제를 발생시키게 된다. 반면에 온-라인 확장 기법은 데이터 이동에 의해 발생 가능한 문제 발생 영역에서의 추가적인 부하가 단순 데이터 이동 및 처리를 통해 최소화되며, 동시에 유휴 노드는 별도의 서비스를 제공하지 않는 상태에서 노드 전체의 리소스를 온-라인 확장에 할당하여 온-라인 재조직 기법보다 빠른 처리가 가능하다. 따라서, 유휴 노드를 통해 서버의 부하를 최소로 하면서 단시간 내에 부하 집중 문제를 처리할 수 있는 온-라인 확장 기법이 유용하게 사용될 수 있다.
종래의 비공유 구조의 데이터베이스 클러스터의 경우 서비스가 동작되는 동안의 온-라인 재조직 및 온-라인 확장이 데이터베이스의 무결성을 위해 크게 제한되어 있었다. 재조직 및 확장 과정에서 사용자의 질의 처리가 지속적으로 서비스되기 위해서는 현재 재조직 영역에 포함되는 데이터의 무결성을 유지하기 위해 별도의 데이터베이스의 설정 변경, 로그 처리 방식의 변경, 추가적인 네트워크, 메모리, 저장 공간과 같은 리소스의 할당이 필요하다. 그 결과 온-라인 재조직의 수행을 위해서는 현재 제공되고 있는 데이터베이스 서비스의 처리 성능이 크게 떨어지게 되었다. 이러한 점을 해결하기 위해 여러 가지 기법이 적용되어 왔으나 대부분의 기법이 수행되는 경우 시스템의 성능을 크게 떨어뜨리게 되며, 온-라인 확장 기법도 이러한 문제점이 동일하게 나타나고 있었다.
따라서, 본 발명이 이루고자 하는 기술적 과제는 시스템 성능에 영향을 최소화하며, 동적인 환경에 알맞고, 효율적인 온-라인 재조직 및 온-라인 확장을 통해 무결성에 위배되지 않으면서도 대용량의 질의 처리에 있어서 최소 응답 시간을 유지하는 비공유 구조의 데이터베이스 클러스터 서버 시스템과 온라인 확장 방법을 제공하는데 있다.
본 발명의 다른 기술적 과제는 복제 기법을 통해 가용성을 최대화 하면서도 성능 저하를 일으키지 않는 데이터베이스 클러스터를 설계하고, 비용대비 효율이 높은 비공유 구조의 일반 데스크탑 노드들을 클러스터로 구성하여 하나 이상의 서버가 중지되더라도 복제 서버로 결함을 허용하는 무정지 서비스를 제공하는 비공유 구조의 데이터베이스 클러스터 서버 시스템과 온라인 확장 방법을 제공하는데 있다.
본 발명의 또 다른 기술적 과제는 급격한 사용자 증가에 실시간으로 대처하는 온-라인 확장 기법으로 추가적인 서버의 부하를 최소화하여 질의 처리량을 유지하면서도 안정적으로 실시간 확장을 가능케 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템과 온라인 확장 방법을 제공하는데 있다.
상기 기술적 과제를 달성하기 위하여, 본 발명에 의한 비공유 구조의 데이터베이스 클러스터 서버 시스템은 GUI기반의 질의 처리 툴, 클러스터 시스템을 관리하는 관리자 프로그램, 각 노드의 자원을 감시하는 모니터링 툴을 포함하고, 인터페이스 라이브러리를 통해 기본 질의 컴포넌트로 질의문을 전송하는 클라이언트; 상기 클라이언트로부터 수신되는 상기 질의문을 분석하여 데이터베이스 관리 컴포넌트로 전송하며, 질의 처리 결과를 상기 클라이언트로 제공하는 기본 질의 처리 컴포넌트; 상기 질의문의 분석결과에 따라 해당 질의의 연산 순서, 재조직 및 확장 여부, 트랜잭션 자원을 할당 정도를 결정하는 데이터베이스 관리 컴포넌트; 상기 질의문이 접근하는 데이터의 정보를 상기 기본 질의 처리 콤포넌트로 제공하며, 일관성 유지 프로토콜을 기반으로 임의의 시간에 모든 노드의 메타정보를 동일하게 유지되도록 관리하는 전역 메타 관리기; 서버의 구동, 중지, 확장, 축소, 설정 변경을 포함하는 서버 운영을 제어하는 중앙제어기; 및 소정의 데이터를 저장하는 데이터베이스;를 포함함을 특징으로 한다.
상기 다른, 또다른 기술적 과제를 달성하기 위하여, 본 발명에 의한 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법은 원본 노드인 제1 노드(N1)에 원본 데이터, 복제 노드인 제 2노드(N2)에 원본 데이터의 복제 데이터를 두는 제 1단계: 상기 제 2노드에서 Ta1'으로부터 Ta2로 확장 연산을 수행하는 제 2단계; 그리고 상기 제 2노드에서 상기Ta1'의 분할된 데이터인 상기Ta2를 해당 노드의 원본 데이터로 하여 유휴 노드인 제 3노드의 Ta2'로 동일 복제본을 전송하는 제 3단계;를 포함함을 특징으로 한다.
상기 다른, 또 다른 기술적 과제를 달성하기 위하여, 본 발명에 의한 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법은 원본 노드인 제1 노드(N1)에 원본 데이터, 복제 노드인 제 2노드(N2)에 원본 데이터의 복제 데이터를 두는 제 1단계; 상기 제 1노드의 소정의 데이터를 확장 노드인 제 3노드로 전송하며, 상기 제 2노드의 소정의 데이터를(여기서 제 2노드의 소정의 데이터는 상기 제 1노드의 소정의 데이터와 다른 부분의 데이터) 확장 노드인 제 4노드로 전송하는 제 2단계; 상기 제 2단계에서 데이터 전송이 완료되면 상기 각 확장 노드에서 기 전송된 서로 다른 부분의 데이터를 상기 타 확장 노드로 전송하여 완전한 형태의 데이터를 생성하는 제 3단계;를 포함함을 특징으로 한다.
이하, 본 발명에 따른 바람직한 실시예를 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며, 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
도 1은 데이터베이스 클러스터 서버의 구성 환경을 도시한 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 데이터베이스 클러스터 서버는 사용자들이 일반적으로 접속 클라이언트로 사용하게 되는 웹 브라우져(100), 웹 기반의 접속을 담당하는 웹 서버 클러스터(200) 및 응용 어플리케이션 서비스의 바탕을 제공하는 데이터베이스 클러스터(300)을 포함하는 환경에서 동작될 수 있다.
사용자들은 인터넷 서비스를 이용하기 위해 자신의 웹 브라우져를 통해 웹 서버로 접속하게 된다. 웹 서버는 ODBC(Open Database Connectivity), JDBC(Java Database Connectivity), ISAPI(Internet Server Application Programming Interface)의 웹 기반 CGI(Common Gateway Interface)와 CLI(Call Level Interface), 윈속(Winsock) 등의 네트워크 및 함수 기반의 인터페이스 라이브러리를 사용하여 작성되는 응용 어플리케이션을 통해 데이터베이스 클러스터 서버와 통신을 한다. 데이터베이스 클러스터(300)는 현재 서비스에 참여하여 질의 처리를 수행하는 활성 노드(Active Node)와 온-라인 확장을 위해 대기 중인 유휴 노드(Spare node)를 포함하며, 각 노드는 독립적인 데이터베이스를 갖는다.
도 2는 본 발명의 일 실시예에 따른 데이터베이스 클러스터 서버의 구성도이다.
도 2를 참조하면, 데이터베이스 클러스터 서버 시스템은 클라이언트(400), 전역 메타 관리기(500), 중앙 제어기(600), 기본 질의 처리 컴포넌트(700), 데이터베이스 관리 컴포넌트(800), 데이터베이스(900)를 포함한다.
클라이언트(400)는 인터페이스 라이브러리, GUI(Graphical User Interface)기반의 툴로써 직접 데이터베이스에 질의 요청을 담당하는 본 서버 전용의 툴, 일반적인 데이터베이스 관리 시스템의 형태를 가지면서 클러스터 시스템을 관리하는 관리자 프로그램 및 각 노드의 리소스 사용량을 감시하는 모니터링 툴 등을 포함한다.
전역 메타 관리기(500)는 기존의 단일 데이터베이스 시스템과는 달리 네트워크로 연결된 클러스터 노드의 메타 정보를 관리한다. 즉, 클러스터에 포함되는 활성 노드 및 유휴 노드의 정보, 릴레이션의 분할 및 복제 정보, 마스터 및 복제본의 설정 정보, 사용자 정보 등의 질의 처리와 관련된 정보를 관리한다. 또한, 온-라인 재조직, 온-라인 확장, 회복 처리와 같은 데이터베이스의 구성이 임시로 변경되어야 하는 특수한 경우 메타 정보를 변경 불가능하게 관리한다.
전역 메타 관리기(500)는 각 노드에 동일하게 분포되어 있으며, 각 노드의 메타 정보는 일부 데이터베이스 스키마의 변경이 있을시 내부 네트워크 연결 처리기(740)에 포함되는 일관성 유지 프로토콜을 통해 임의의 시간에 모든 노드의 메타 정보가 동일하도록 관리하는 일관성 유지 구조를 가진다.
중앙 제어기(600)는 서버의 구동, 중지, 확장, 축소, 설정 변경 등의 서버 운용에 관련된 기능을 제어하는 컴포넌트이다. 즉, 메타 정보에 등록이 되어있는 클러스터 노드 정보를 바탕으로 노드들의 구동, 중지, 확장, 축소, 이동과 같은 시스템 운영과 데이터베이스 구조에 대한 제어권을 관리한다.
또한 일반적인 질의 처리를 제외한 데이터베이스의 재구성 요청, 노드의 제어 요청, 클러스터 노드의 추가 및 삭제 요청, 서비스 시작 및 중지 요청에 대한 처리를 위한 인터페이스를 담당한다. 또한 기본 질의 처리 컴포넌트(700) 또는 데이터베이스 관리 컴포넌트(800)와의 메시지 송수신 처리 과정을 포함하는 컴포넌트이다.
관리자 프로그램은 중앙 제어기(600)와의 통신을 통해 서버를 제어하게 된다.
기본 질의 처리 컴포넌트(700)는 외부 연결 처리기(710), 질의 처리기(720), 트랜잭션 처리기(730), 내부 네트워크 연결 처리기(740), 저장 관리자(750)를 포함한다. 기본 질의 처리 컴포넌트(700)는 질의 처리 과정의 전반적인 수행을 담당하는 컴포넌트로서 단일 데이터베이스 관리 시스템의 구조와 거의 흡사하게 구성되어 있으나, 질의 처리를 위한 수행 과정이 클러스터를 고려하여 설계되었다.
기본 질의 처리 컴포넌트(700)는 외부 연결 처리기(710)로부터 질의가 입력되면 질의 처리기(720)에서 질의를 분석하여 전역 메타 관리기(500)로부터 해당 질의가 접근하는 데이터의 정보를 얻어오는 역할을 한다. 질의는 다시 트랜잭션 처리기(730)로 전달되고, 트랜잭션에 대한 세션을 할당받게 된다. 트랜잭션 처리기(730)는 클러스터 환경에서 각 노드의 트랜잭션 연동 및 관리를 담당한다.
만일 접근 영역에 포함되는 데이터가 현재 노드에 없으면 내부 네트워크 연결 처리기(740)를 통해 질의를 포워딩 시키며, 이때 세션 정보와 트랜잭션 정보를 함께 전송하여 해당 노드에서 포워딩 정보를 포함하는 별도의 세션을 할당받아 트랜잭션이 동작하게 된다.
기본 질의 처리 컴포넌트(700)는 질의 처리가 완료되면 다시 원래 질의를 받았던 노드로 결과를 반환하고, 결과를 클라이언트에게 전달한다. 저장 관리자(750)는 일반적인 데이터와 질의 처리 로그 외에 클러스터 서버의 처리 로그와 포워딩 로그, 회복 로그, 재조직 로그, 확장 로그를 데이터베이스(900)에 저장하여 관리한다.
데이터베이스 관리 컴포넌트(800)는 온-라인 확장 처리기(810), 회복 처리기(820) 및 온-라인 재조직 처리기(830)를 포함한다.
여기서는 온-라인 재조직 및 온-라인 확장과 같은 데이터베이스 재구성과 관련된 기능과 회복 처리 기능을 수행한다. 즉, 중앙 제어기(500), 전역 메타 관리기(600) 및 기본 질의 처리 컴포넌트(700)와 연계하여 데이터베이스의 재구성 및 노드의 회복, 확장 처리 과정을 담당한다.
온-라인 확장 처리기(810)는 데이터베이스 클러스터에 유휴 노드를 두고, 임의의 노드에 질의가 집중되거나 자원의 한계점에 이르는 문제가 발생하여 실시간 처리가 필요한 경우 유휴 노드를 활성 노드로 포함시키고 데이터를 해당 유휴 노드로 분할하여 이동시키는 과정을 포함한다.
온-라인 확장 처리기(810)는 데이터베이스 클러스터의 갱신 방식이 지연 갱신 방식을 사용하는 경우 마스터 데이터가 없는 복제 노드에서 온-라인 확장을 수행하고, 해당 복제 노드에 새롭게 분할되어 만들어지는 마스터 데이터를 저장하여 데이터 이동을 줄이는 기능을 한다.
온-라인 확장 처리기(810)는 데이터베이스 클러스터의 갱신 방식이 즉시 갱신 방식을 사용하는 경우 데이터 이동을 병렬로 수행하여 원본 노드에서의 데이터 이동 영역을 줄이고 확장 시간을 단축하는 기능을 한다.
도 3은 도 2에 도시된 시스템의 동작 흐름을 도시한 도면이다.
도 3을 참조하여 각 단계에 따른 흐름을 설명하면 다음과 같다. 310단계에서, 클라이어트(400)는 질의를 기본 질의 처리 컴포넌트(700)에 전송한다. 320단계에서, 기본 질의 처리 컴포넌트(700)의 질의 처리기(720)는 질의문을 분석한다. 330단계에서, 기본 질의 처리 컴포넌트(700)는 분석된 질의문을 데이터베이스 관리 컴포넌트(800)로 전송한다. 340단계에서, 데이터베이스 관리 컴포넌트(800)는 해당 질의의 연산순서를 결정한다. 345단계에서, 데이터베이스 관리 컴포넌트 (800)는 트랜잭션 자원을 할당한다. 360단계에서, 데이터베이스 관리 컴포넌트(800)는 질의문을 트랜잭션 처리기(730)로 전송한다. 370단계에서, 기본 질의 처리 컴포넌트(700)는 대상 노드가 현재 노드와 다르면 대상 노드로 질의를 보낸다. 분석 결과에 따라 타 노드로 보내지는 질의는 형식이 달라진다. 380단계에서, 기본 질의 처리 컴포넌트(700)는 데이터베이스(900)에 질의에 의한 결과를 커밋 단계로서 디스크 상에 물리적으로 반영한다. 390단계에서, 기본 질의 처리 컴포넌트(700)는 질의 처리 결과를 클라이언트(400)에 반환한다.
도 3을 참조하면, 클라이언트(400)로부터 입력받은 질의문은 외부 연결 처리기(710)를 통해 질의 처리기(720)에서 분석된다. 분석된 결과는 데이터베이스 관리 컴포넌트(800)에서 재조직 및 확장 여부, 연산의 순서, 트랜잭션 자원 할당 정도를 결정하는데 쓰인다.
데이터베이스 관리 컴포넌트(800)에서 데이터베이스 재구성이 결정되면 온-라인 재조직 처리기(830)는 현재 데이터베이스 클러스터(300)에 포함된 모든 노드의 전역 메타 관리기(500), 중앙 제어기(600) 및 기본 질의 처리 컴포넌트(700)와 연동하여 온-라인 재조직 과정을 수행한다. 그 외의 경우에 질의문은 일관성 유지 프로토콜을 기반으로 현재 노드 또는 타 노드로 전송되어 처리되고, 결과문은 다시 클라이언트(400)에게 반환된다.
도 4는 도 2에 도시된 온-라인 재조직 처리기의 구성도이다.
도 4를 참조하면, 온-라인 재조직 처리기(830)는 자원 관리기(831), 데이터 처리 관리기(832), 최적화 처리기(833), 로그 전송 처리기(834) 및 데이터 이동 처리기(835)를 포함한다.
온-라인 재조직 처리기(830)는 전역 메타 관리기(500), 중앙 제어기(600)와 연동하여 데이터베이스의 재구성을 위해서 노드 내 데이터의 생성, 삭제, 이동, 병합, 그리고 분할 연산을 수행한다.
온-라인 재조직의 과정은 데이터베이스 관리 컴포넌트에 의해 실행되는 데이터베이스 구성의 변경 질의 과정과 자원 관리기(831)와 데이터 처리 관리기(832)에 의해 자동적으로 수행되는 재조직 과정의 두 가지로 나뉜다.
데이터베이스 관리 컴포넌트(800)에 의해 실행되는 온-라인 재조직 과정은 별도의 최적화 과정이 없는 상태에서 로그 전송 처리기(834)와 데이터 이동 처리기(835)에 의해 처리된다. 자원 관리기(831)와 데이터 처리 관리기(832)에 의해 수행되는 온-라인 재조직 과정은 자원 관리기(831)와 데이터 처리 관리기(832)로부터 얻은 노드의 정보를 바탕으로 최적화 처리기(833)에서 모든 노드의 부하량이 균등하게 분배될 수 있도록 최적화된 데이터베이스의 변경된 구성을 찾는 과정으로 진행된다. 이 과정에서 쓰이는 최적화 알고리즘은 자원 관리기로부터 전체 질의의 갱신비율, 테이블당 질의처리 수, 노드별 응답시간, 질의 포워딩 비율, 네트워크 사용 비율 등의 수치를 전달받아 동작된다.
자원 관리기(831)는 클러스터에 포함되는 각 노드의 자원을 지속적으로 감시하여 온-라인 재조직 여부를 결정하는 컴포넌트이다. 특정 노드의 자원 사용량이 임계치를 넘어설 경우 자원 관리기(831)는 데이터 처리 관리기(832)로부터 해당 노드의 정보를 얻어 온-라인 재조직 처리 여부를 결정하고, 최적화 처리기(833)의 재조직 연산을 호출하게 된다.
데이터 처리 관리기(832)는 질의에 의한 갱신 영역, 접근 노드, 포워딩 (Forwarding) 빈도, 디스크 접근 빈도 등의 사용자 질의 처리에 대한 통계 정보를 관리한다. 이러한 정보를 바탕으로 데이터 처리 관리기(832)는 자원 관리기(831)와 마찬가지로 자원 관리기(831)로부터 해당 노드의 자원 정보를 얻어 온-라인 재조직 처리 여부를 결정하게 된다. 여기서 기준값으로 사용되는 노드의 자원, 통계치의 값들은 데이터베이스 관리자에 의해 변경될 수 있다.
최적화 처리기(833)는 온-라인 재조직 처리를 위해 로그 전송 처리기(834)와 데이터 이동 처리기(835)와 함께 릴레이션의 생성, 삭제, 분할, 병합, 이동 등의 기능을 수행한다. 네트워크 환경에서 무결성 유지를 위하여 사용되는 프로토콜로써 임의의 시간에 모든 노드가 동일한 순서로 트랜잭션 처리를 수행할 수 있도록 관리해주는 일관성 유지 프로토콜이 사용된다. 일관성 유지 프로토콜을 기반으로 하기 때문에 온-라인 재조직 과정의 수행을 위해 최적화 처리기(833), 로그 전송 처리기(834) 및 데이터 이동 처리기(835)에서 별도의 네트워크 관리를 수행하지 않아도 무결성 유지가 가능하다.
로그 전송 처리기(834) 및 데이터 이동 처리기(835)는 상기 온-라인 재조직을 위해 필요한 연산을 수행하며, 데이터의 무결성 유지를 위한 로그 전송을 담당하는 컴포넌트를 포함한다.
로그 전송 처리기(834)는 재조직 과정 도중에 갱신 질의가 발생하는 경우에 해당 질의의 갱신 지역과 현재까지 전송된 데이터 영역을 비교하여 전송 후 갱신된 영역을 골라내어 대상 노드로 해당 데이터를 전송을 수행한다.
도 5는 도 4에 도시된 온-라인 재조직 처리기의 동작 흐름을 도시한 도면이다. 도 5를 참조하면, 온-라인 재조직 과정은 질의 형태로 시작되며, 연산이 올바른지를 판단하여 올바른 경우에 한하여 온-라인 재조직을 구동시킨다.
도 5를 참조하여, 단계에 따라 온-라인 재조직 처리기(830)의 동작 흐름을 설명하면 다음과 같다.
510단계에서, 온-라인 재조직 처리기(830)로 재조직 질의가 입력된다. 520단계에서, 온-라인 재조직 처리기(830)는 전역 메타 관리기(500)를 통해 해당 질의에 필요한 데이터의 정보를 얻는다. 530단계에서, 온-라인 재조직 처리기(830)는 계획수립이 올바른지 여부를 판단하여, 올바른 경우에는 온라인 재조직을 구동하고, 올바르지 않은 경우에는 결과를 반환한다. 판단의 기준으로는 재조직의 대상이 되는 노드의 존재 및 결함 여부, 관리자에 의한 재조직 정책과의 상반되는 내용, 원본 데이터의 존재 유무, 대상 노드에 재조직 연산을 위한 충분한 공간의 유무 등이 있다. 540단계에서, 자원관리기(831)는 적절한 연산 수행 시기와 연산의 우선 순위를 결정한다. 550단계에서, 데이터 처리 관리기(832)는 해당 데이터의 원본 노드와 대상 노드를 찾고, 연산 수행에 필요한 단위 프로세스들을 생성한다. 560단계에서, 최적화 처리기(833)는 데이터베이스(900) 내에 저장되는 릴레이션의 디스크 영역와 인덱스에 대한 설정을 정하고, 데이터 이동 처리기(835)를 통해 데이터에 대한 연산을 수행한다. 570단계에서, 해당 테이터에 수행중인 질의가 유무를 판단한다. 해당 테이터에 수행중인 질의가 있는 경우에는 결과를 반환한다. 580단계에서, 해당 테이터에 수행중인 질의가 없는 경우에는 로그 전송 처리기(834)는 해당 데이터에 수행중인 질의의 여부를 판단하여 로그 전송을 수행한다. 590단계에서, 결과를 반환하고 종료한다.
도 6은 본 발명의 실시예에 따른 복제 노드에서의 확장 과정을 도시한 도면이다.
도 6을 참조하면, N1부터 N5까지의 노드들이 존재하며, 하얀 바탕과 회색 바탕의 박스는 각각 원본 데이터와 복제 데이터가 저장되는 저장공간을 의미한다. 현재 임의의 테이블 Ta1이 N1과 N2에 복제되어 존재하는 상태에서, N1에 원본 데이터가 있으며 N2에 그의 복제 데이터가 있는 경우, N1에서의 온-라인 확장과 기 확장된 상태에서 다시 N1에서 온-라인 확장이 발생하는 과정을 나타낸다. 초기 상태에서 온-라인 확장은 복제 노드인 N2의 Ta1'으로부터 확장 연산을 수행하며, Ta1'의 분할된 데이터를 해당 노드의 원본 데이터로 생성하고, 유휴 노드로 동일 복제본을 전송시킨다. 기 확장된 상태에서 온-라인 확장이 재 발생되는 경우 온-라인 확장 처리기(810)는 유휴 노드 두 대를 선정하여 분할된 복제본을 각각 원본 노드와 복제 노드로 전송한다.
도 6에 의한 온-라인 확장 과정은 모두 해당 데이터의 복제본을 갖는 복제 노드로부터 이루어진다. 본 확장 과정은 지연 갱신을 사용하는 경우 원본 노드의 질의 처리와 상관없이 복제 노드에서 온-라인 확장 과정을 수행한다. 따라서 확장에 의한 부하를 줄이며, 기존의 온-라인 확장 기법에 비해 빠른 처리가 가능하다. 또한 온-라인 확장 처리기(810)는 복제 노드를 선택하는데 있어서 가능한 마스터 데이터를 포함하지 않는 노드를 선택하는 알고리즘을 사용한다. 이러한 노드 선택 방식을 통해 온-라인 확장을 수행할 시 로컬 복사의 가능성을 높여 데이터 이동에 의한 부하를 줄인다.
도 7은 본 발명의 실시예에 따른 병렬 확장 과정을 도시한 도면이다.
도 7에 의하면, 온-라인 확장 과정은 원본 노드와 복제 노드의 구분이 없이 모든 복제 노드로부터 수행되며, 각각의 노드는 전송 영역을 서로 분담한다. 또한 각 노드에서의 데이터 전송이 완료되면 확장 노드 간에 자신의 데이터를 나머지 확장 노드로 전송함으로써 모든 확장 노드의 복제본이 서로 동일하도록 완전한 복제본을 만드는 데이터의 취합 과정이 이루어져 온-라인 확장을 완료하게 된다.
예를 들면 노드10에 x데이터, 노드11에 y데이터, 노드12에 z데이터가 있는 경우, x데이터를 노드11과 노드12에, y데이터를 노드10과 노드12에, z데이터를 노드10과 노드11에 전송하게 된다. 이러한 온-라인 확장은 전체 갱신의 경우에 사용된다.
이러한 온-라인 확장은 각 노드의 데이터 전송 영역을 축소시킴으로써 확장에 의한 부하를 줄이고, 확장 노드에서 데이터를 취합함으로써 현재 서비스를 제공중인 모든 원본 노드들은 데이터 전송 이후 자신의 전송 영역에 대한 로그 처리만을 담당함으로써 원본 노드의 부하를 줄이는 동시에 데이터 전송 및 취합과정이 병렬로 수행되어 복제본의 수에 따라 차이가 나지만 기존의 온-라인 확장 기법에 비해 빠른 처리 시간을 갖는다.
도 8은 도 2에 도시된 온-라인 확장 처리기의 동작 흐름을 도시한 도면이다.
도 8를 참조하여, 단계에 따라 온-라인 확장 처리기(810)의 동작 흐름을 설명하면 다음과 같다.
910단계에서, 온-라인 확장 처리기(810)는 확장 이벤트를 수신하면서 구동이 되며, 온-라인 재조직 처리기(830)의 자원 관리기(831)와 데이터 처리 관리기(832) 및 최적화 처리기(833)와 연동하여 확장의 대상이 되는 유휴 노드를 검색하여 새로운 전역 메타 정보를 생성한다. 920단계에서, 온-라인 확장 처리기(810)는 데이터베이스(900)의 스키마(Schema)를 변경하지 못하게 메타 정보에 로크를 건다. 930, 935단계에서, 온-라인 확장 처리기(810)는 데이터 베이스 클러스터에 포함되는 모든 노드로 온-라인 확장 이벤트와 새로운 메타 정보를 전송한다. 940단계에서, 대상 노드의 메타 정보를 변경하지 못하게 한다. 945단계에서, 메타 정보를 통해 확장 대상임을 확인한 노드들은 수신자와 삽입자 프로세스를 실행한다. 950단계에서, 대상 노드는 확장 준비를 한 후에 대기 메시지를 원본 노드에 전송한다. 960, 965단계에서, 원본 노드는 온-라인 확장 준비가 완료된 시점부터 데이터와 로그 전송을 시작한다. 970단계에서, 확장 노드는 데이터의 반영 후 로그를 다시 반영하여 데이터의 무결성을 유지한다. 온-라인 확장 처리기(810)는 확장 연산이 수행되는 동안 시스템을 확장 변경 모드로 변경을 한다. 975단계에서, 데이터의 이동이 종료되면 원본 노드로 데이터 전송 완료 메시지를 전송하여 온-라인 확장의 완료 단계로 넘어간다. 980단계에서, 원본 노드는 대상노드로 질의 입력 종료를 전송한다. 985, 987단계에서, 원본노드와 대상노드는 기존에 수행중인 트랜잭션이 종료될 때까지 기다린다. 990단계에서, 원본노드와 대상노드에 모든 연산의 종료를 전송한다. 993단계에서, 원본노드는 확장 종료 메세지를 온-라인 확장 처리기(810)에 전송한다. 996단계에서, 원본노드는 확장을 종료한다.
온-라인 확장의 완료 단계부터는 일시적으로 모든 트랜잭션의 수행이 대기 상태로 들어가게 되며, 로그의 전송 및 반영이 완료되는 시점부터 새로운 메타 정보가 적용이 된 상태에서 서비스를 재시작하게 된다.
도 9는 도 2에 도시된 회복 처리기의 구성도이다.
도 9를 참조하면, 회복 처리기(820)는 시스템 회복 처리기(821), 데이터 회복 처리기(822), 회복 로그 기록기(823), 시스템 통계 기록기(824), 오류 감지기(825), 통계 정보(826), 회복 처리 설정 정보(827)를 포함한다.
시스템 회복 처리기(821)는 시스템에서 결함이 발생하여 단시간 내에 복구가 불가능한 경우 동작되는 컴포넌트이다.
데이터 회복 처리기(822)는 네트워크 단절, 디스크 오류, 실행 오류와 같은 단시간 내에 복구 가능한 경우에 회복 처리를 담당하는 컴포넌트이다.
회복 로그 기록기(823)는 임의의 노드에서 장애가 발생한 시점부터 저장되는 로그를 관리하는 컴포넌트이다.
시스템 통계 기록기(824)는 각 노드의 오류 발생 통계를 기록하여 회복 후에도 잦은 결함이 생기는 노드에 대한 처리 정보를 제공하는 컴포넌트이다.
오류 감지기(825)는 노드의 네트워크 단절 여부, 시스템 오류 여부 등의 오류 정보를 감지하는 컴포넌트이다.
본 발명에서의 회복 처리는 데이터의 복제본과 온-라인 재조직 처리기를 기반으로 운영이 된다.
회복 처리기(820)에서는 장애 발생시 단기간 내 복구 가능한 경우와 복구 불가능한 경우로 나누어 온-라인 재조직 또는 온-라인 확장을 사용한 회복 처리를 수행하는 과정을 포함한다. 또한 장애 발생시 장애가 발생하기 전에 복제 노드로 쓰이던 데이터들은 장애 기간동안 마스터 데이터로써 쓰이게 되는 과정을 포함한다.
회복 처리기(820)는 단기간 오류의 발생시 해당 노드를 다시 복구시킨 후에 장애 기간 동안에 저장된 회복 로그를 반영함으로써 온-라인 상태로 회복 시킨다.
만일 장애가 복구 불가능하다고 판단되거나 장애 복구 시간이 기준 시간을 경과하게 되면, 유휴 노드를 활성 노드로 포함시킨 후 장애 발생 노드와 동일한 데이터를 복제 노드들로부터 전송 받아 서비스를 제공한다. 이러한 과정에서 온-라인 재조직 처리기(830)의 릴레이션 생성, 삭제, 이동, 병합, 분할 등의 모듈들이 쓰이게 된다. 이 때에 오류가 발생하기 전에 복제 노드로 쓰이던 데이터들은 오류 기간 동안 마스터 데이터로써 쓰이게 된다.
도 10은 도 9에 도시된 회복 처리기의 동작 흐름을 도시한 도면이다.
도 10를 참조하여, 단계에 따라 회복 처리기(820)의 동작 흐름을 설명하면 다음과 같다.
1100단계에서, 오류가 발생하면 회복 처리기(820)의 동작이 개시된다. 1110단계에서, 오류 감지기(824)는 오류 정보를 감지하여 데이터베이스 클러스터에 포함되는 활성 노드들로 전달한다. 1120단계에서, 온-라인 재조직 처리기(830)는 복구가 가능한지 여부를 판단한다. 복구가 불가능한 경우에는 결과를 반환한다. 1130단계에서, 회복 처리기(820)는 오류가 발생한 노드에 지정된 데이터를 확인한다. 1140단계에서, 온-라인 재조직 처리기(830)는 해당 릴레이션의 주 데이터 또는 복제본의 역할을 바꾸는 연산을 수행한다. 1150단계에서, 회복 로그 기록기(823)는 장애 발생으로 인해 복제본이 마스터 데이터로 변경된 회복 로그를 각 노드에 기록한다. 1160단계에서, 회복 처리기(820)는 복구가 완벽히 수행되었는지 여부를 판단한다. 복구가 완벽히 수행되지 아니한 경우에는 결과를 반환한다. 1170단계에서, 회복 로그 기록기(823)는 복구가 완벽히 수행되면 지금까지 각 노드에 저장된 회복 로그를 반영한다. 1180단계에서, 회복 로그 기록기(823)는 결과를 반환한다. 회복 처리기(820)는 동기화 과정이 끝나면 회복 처리를 종료하게 된다.
이상 설명한 바와 같이, 본 발명에 따르면 사용자의 증가 또는 질의 패턴의 변화로 인해 기존의 데이터베이스 구성이 서비스 처리 성능을 크게 저하시키거나 장애를 발생시키는 경우 온-라인 재조직, 온-라인 확장, 회복 처리 과정에 복제 데이터를 활용하여 처리함으로써 데이터베이스 클러스터 서버가 기존의 서버에 비해 안정적이면서도 적은 자원을 사용하여 빠른 처리를 할 수 있다.
또한 장애 발생시 서비스의 중단 없이 온-라인 복구가 가능하고, 서버의 부하가 증가할 경우 유휴 노드로의 확장을 통해 시스템의 처리량을 증가시키고, 사용자 응답시간을 최소화함으로써 고성능, 고가용성, 고확장성을 갖게 된다.
도 1은 데이터베이스 클러스터 서버의 구성 환경을 도시한 도면,
도 2는 본 발명의 일 실시예에 따른 데이터베이스 클러스터 서버의 구성도,
도 3은 도 2에 도시된 시스템의 동작 흐름을 도시한 도면,
도 4는 도 2에 도시된 온-라인 재조직 처리기의 구성도,
도 5는 도 4에 도시된 온-라인 재조직 처리기의 동작 흐름을 도시한 도면,
도 6은 본 발명의 일 실시예에 따른 복제 노드에서의 확장 과정을 도시한 도면,
도 7은 본 발명의 일 실시예에 따른 병렬 확장 과정을 도시한 도면,
도 8은 도 2에 도시된 온-라인 확장 처리기의 동작 흐름을 도시한 도면,
도 9는 도 2에 도시된 회복 처리기의 구성도,
도 10은 도 9에 도시된 회복 처리기의 동작 흐름을 도시한 도면이다.

Claims (17)

  1. 데이터베이스 클러스터 서버 시스템에 있어서,
    GUI기반의 질의 처리 툴, 클러스터 시스템을 관리하는 관리자 프로그램, 각 노드의 자원을 감시하는 모니터링 툴을 포함하고, 인터페이스 라이브러리를 통해 기본 질의 컴포넌트로 질의문을 전송하는 클라이언트;
    상기 클라이언트로부터 수신되는 상기 질의문을 분석하여 데이터베이스 관리 컴포넌트로 전송하며, 질의 처리 결과를 상기 클라이언트로 제공하는 기본 질의 처리 컴포넌트;
    상기 질의문의 분석결과에 따라 해당 질의의 연산 순서, 재조직 및 확장 여부, 트랜잭션 자원을 할당 정도를 결정하는 데이터베이스 관리 컴포넌트;
    상기 질의문이 접근하는 데이터의 정보를 상기 기본 질의 처리 콤포넌트로 제공하며, 일관성 유지 프로토콜을 기반으로 임의의 시간에 모든 노드의 메타정보를 동일하게 유지되도록 관리하는 전역 메타 관리기;
    서버의 구동, 중지, 확장, 축소, 설정 변경을 포함하는 서버 운영을 제어하는 중앙제어기; 및
    소정의 데이터를 저장하는 데이터베이스;를 포함함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.
  2. 제 1항에 있어서,
    상기 인터페이스 라이브러리는
    ODBC, JDBC의 데이터베이스 통신 프로토콜과 ISAPI의 웹 기반 CGI와 CLI, 윈속의 하부 엔진 전용의 통신 프로토콜을 포함함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.
  3. 제 1항에 있어서,
    상기 전역 메타 관리기는
    각 노드에 일부 데이터베이스 스키마의 변경이 있을시 일관성 유지 프로토콜을 통해 임의의 시간에 모든 노드의 메타 정보가 동일하도록 관리하는 일관성 유지 구조를 가지며,
    클러스터에 포함되는 활성 노드 및 유휴 노드의 정보, 릴레이션의 분할 및 복제 정보, 마스터 및 복제본의 설정 정보, 사용자 정보 등의 질의 처리와 관련된 정보를 관리하며,
    온-라인 재조직, 온-라인 확장, 회복 처리와 같은 상기 데이터베이스의 구성이 임시로 변경되어야 하는 특수한 경우 메타 정보를 변경 불가능하게 관리함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.
  4. 제 1항에 있어서,
    상기 중앙 제어기는
    메타 정보에 등록이 되어 있는 클러스터 노드 정보를 바탕으로 노드들의 구동, 중지, 확장, 축소, 이동과 같은 시스템 운영과 데이터베이스 구조에 대한 제어권을 관리하며,
    상기 기본 질의 처리 컴포넌트와 상기 데이터베이스 관리 컴포넌트와의 메시지 송수신 처리를 담당하며,
    일반적인 질의 처리를 제외한 상기 데이터베이스의 재구성 요청, 노드의 제어 요청, 클러스터 노드의 추가 및 삭제 요청, 서비스 시작 및 중지 요청에 대한 처리를 위한 인터페이스를 포함함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.
  5. 제 1항에 있어서,
    상기 기본 질의 처리 컴포넌트는
    외부 연결 처리기로부터 질의가 입력되면 질의 처리기에서 질의를 분석하여 상기 전역 메타 관리기로부터 해당 질의가 접근하는 데이터의 정보를 얻어오고, 만일 접근 영역에 포함되는 데이터가 현재 노드에 없으면 내부 네트워크 연결 처리기를 통해 질의를 포워딩 시키고, 질의 처리가 완료되면 다시 원래 질의를 받았던 노드로 결과를 반환하고, 결과를 상기 클라이언트에게 전달하며,
    일반적인 데이터와 질의 처리 로그 외에 클러스터 서버의 처리 로그와 포워딩 로그, 회복 로그, 재조직 로그, 확장 로그를 저장하여 관리하는 저장 관리자를 포함함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.
  6. 제 1항에 있어서,
    상기 데이터베이스 관리 컴포넌트는
    온-라인 확장 처리기, 회복 처리기 및 온-라인 재조직 처리기로 구성되며,
    상기 중앙 제어기와 상기 전역 메타 관리기, 그리고 상기 기본 질의 처리 컴포넌트와 연계하여 상기 데이터베이스의 재구성 및 노드의 회복, 확장 처리 과정을 수행함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.
  7. 제 6항에 있어서,
    상기 온-라인 확장 처리기는
    데이터베이스 클러스터에 유휴 노드를 두어, 임의의 노드에 질의가 집중되거나 자원의 한계점에 이르는 문제가 발생하여 실시간 처리가 필요한 경우 유휴 노드를 활성 노드로 포함시켜 데이터를 해당 유휴 노드로 분할하여 이동시키는 과정을 수행하며,
    데이터베이스 클러스터의 갱신 방식이 지연 갱신 방식을 사용하는 경우에는 마스터 데이터가 없는 복제 노드에서 온-라인 확장을 수행하고, 해당 복제 노드에 새롭게 분할되어 만들어지는 마스터 데이터를 저장하여 데이터 이동을 줄이며,
    데이터베이스 클러스터의 갱신 방식이 즉시 갱신 방식을 사용하는 경우에는 데이터 이동을 병렬로 수행함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.
  8. 제 6항에 있어서,
    상기 회복 처리기는
    시스템 통계 기록기, 오류 감지기, 시스템 회복 처리기, 데이터 회복 처리기, 회복 로그 기록기 및
    온-라인 재조직 처리기의 릴레이션 생성, 삭제, 이동, 병합, 분할 등의 모듈들과 온-라인 확장 처리기의 유휴 노드로의 확장 모듈을 포함하며,
    장애 발생시 단기간 내 복구 가능한 경우와 복구 불가능한 경우로 나누어 온-라인 재조직 또는 온-라인 확장을 사용한 회복 처리를 수행하며,
    장애 발생시 장애가 발생하기 전에 복제 노드로 쓰이던 데이터들은 장애 기간동안 마스터 데이터로써 쓰이도록 하며,
    단기간 오류의 발생시 해당 노드를 다시 복구시킨 후에 장애 기간 동안에 저장된 회복 로그를 반영함으로써 온-라인 상태로 회복 시키고, 장애가 복구 불가능하다고 판단되거나 장애 복구 시간이 기준 시간을 경과하게 되면 유휴 노드를 활성 노드로 포함시킨 후 장애 발생 노드와 동일한 데이터를 복제 노드들로부터 전송 받아 서비스를 제공함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.
  9. 제 6항에 있어서,
    상기 온-라인 재조직 처리기는
    자원 관리기, 데이터 처리 관리기, 최적화 처리기, 로그 전송 처리기, 및 데이터 이동 처리기를 포함하며,
    상기 전역 메타 관리기, 상기 중앙 제어기와 연동하여 상기 데이터베이스의 재구성을 위한 노드 내에 데이터의 생성, 삭제, 이동, 병합, 그리고 분할 연산을 수행함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.
  10. 제 9항에 있어서,
    상기 자원 관리기는
    클러스터에 포함되는 각 노드의 자원을 지속적으로 감시하여 온-라인 재조직 여부를 결정하며,
    특정 노드의 자원 사용량이 임계치를 넘어설 경우 상기 데이터 처리 관리기로부터 해당 노드의 정보를 얻어 온-라인 재조직 처리 여부를 결정하고 상기 최적화 처리기를 호출함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.
  11. 제 9항에 있어서,
    상기 데이터 처리 관리기는
    질의에 의한 갱신 영역, 접근 노드, 포워딩 빈도, 디스크 접근 빈도 등의 통계 정보를 관리하며,
    이러한 정보를 바탕으로 상기 자원 관리기로부터 해당 노드의 자원 정보를 얻어 온-라인 재조직 처리 여부를 결정함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.
  12. 제 9항에 있어서,
    상기 최적화 처리기는
    온-라인 재조직 처리를 위해 상기 로그 전송 처리기와 상기 데이터 이동 처리기와 함께 릴레이션의 생성, 삭제, 분할, 병합, 이동 등의 기능을 수행하며,
    상기 데이터 이동 처리기와 상기 로그 전송 처리기는 상기 온-라인 재조직을 위해 필요한 연산을 수행하고 데이터의 무결성 유지를 위한 로그 전송을 담당하며,
    상기 로그 전송 처리기는 재조직 과정 도중에 갱신 질의가 발생하는 경우 해당 질의의 갱신 지역과 현재까지 전송된 데이터 영역을 비교하여 전송 후 갱신된 영역을 골라내어 대상 노드로 해당 데이터를 전송함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.
  13. 원본 노드인 제1 노드(N1)에 원본 데이터, 복제 노드인 제 2노드(N2)에 원본 데이터의 복제 데이터를 두는 제 1단계:
    상기 제 2노드에서 Ta1'으로부터 Ta2로 확장 연산을 수행하는 제 2단계; 그리고
    상기 제 2노드에서 상기Ta1'의 분할된 데이터인 상기Ta2를 해당 노드의 원본 데이터로 하여 유휴 노드인 제 3노드의 Ta2'로 동일 복제본을 전송하는 제 3단계;를 포함함을 특징으로 하는 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법.
  14. 제 13항에 있어서,
    제 1단계의 복제 노드는 마스터 데이터를 포함하지 않는 노드임을 특징으로 하는 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법.
  15. 제 13항 또는 제 14항에 있어서,
    온-라인 확장이 재발생되는 경우에
    상기 온-라인 확장 처리기는 유휴 노드인 제 4노드, 제 5노드를 선정하여 분할된 복제본인 상기 제 2노드의 Ta1'을 각각 상기 제 4노드의 원본 노드, 상기 제 5노드의 복제 노드로 전송하는 제 4단계;를 더 포함함을 특징으로 하는 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법.
  16. 데이터베이스 클러스터 서버 시스템의 온라인 확장에 있어서,
    원본 노드인 제1 노드(N1)에 원본 데이터, 복제 노드인 제 2노드(N2)에 원본 데이터의 복제 데이터를 두는 제 1단계;
    상기 제 1노드의 소정의 데이터를 확장 노드인 제 3노드로 전송하며, 상기 제 2노드의 소정의 데이터를(여기서 제 2노드의 소정의 데이터는 상기 제 1노드의 소정의 데이터와 다른 부분의 데이터) 확장 노드인 제 4노드로 전송하는 제 2단계; 그리고 상기 제 2단계에서 데이터 전송이 완료되면 상기 각 확장 노드에서 기 전송된 서로 다른 부분의 데이터를 상기 타 확장 노드로 전송하여 완전한 형태의 데이터를 생성하는 제 3단계;를 포함함을 특징으로 하는 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법.
  17. 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법에 있어서,
    온-라인 확장 처리기(810)는 확장 이벤트를 수신하면서 구동이 되며, 온-라인 재조직 처리기(830)의 자원 관리기(831)와 데이터 처리 관리기(832) 및 최적화 처리기(833)와 연동하여 확장의 대상이 되는 유휴 노드를 검색하여 새로운 전역 메타 정보를 생성하는 단계(910단계);
    온-라인 확장 처리기(810)는 데이터베이스(900)의 스키마(Schema)를 변경하지 못하게 메타 정보에 로크를 거는 단계(920단계);
    온-라인 확장 처리기(810)는 데이터 베이스 클러스터에 포함되는 모든 노드로 온-라인 확장 이벤트와 새로운 메타 정보를 전송하는 단계(930, 935단계);
    대상 노드의 메타 정보를 변경하지 못하게 하는 단계(940단계);
    메타 정보를 통해 확장 대상임을 확인한 노드들은 수신자와 삽입자 프로세스를 실행하는 단계(945단계);
    대상 노드는 확장 준비를 한 후에 대기 메시지를 원본 노드에 전송하는 단계(950단계);
    원본 노드는 온-라인 확장 준비가 완료된 시점부터 데이터와 로그 전송을 시작하는 단계(960, 965단계);
    확장 노드는 데이터의 반영 후 로그를 다시 반영하여 데이터의 무결성을 유지하는 단계(970단계);
    데이터의 이동이 종료되면 원본 노드로 데이터 전송 완료 메시지를 전송하는 단계(975단계);
    원본 노드는 대상노드로 질의 입력 종료를 전송하는 단계(980단계);
    원본노드와 대상노드는 기존에 수행 중인 트랜잭션이 종료될 때까지 기다리는 단계(985, 987단계);
    원본노드와 대상노드에 모든 연산의 종료를 전송하는 단계(985, 987단계); 그리고 원본노드는 확장 종료 메세지를 온-라인 확장 처리기(810)에 전송하는 단계(993단계);를 포함함을 특징으로 하는 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법.
KR10-2003-0063344A 2003-09-09 2003-09-09 비공유 구조의 데이터베이스 클러스터 서버 시스템과온라인 확장 방법 KR100492167B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2003-0063344A KR100492167B1 (ko) 2003-09-09 2003-09-09 비공유 구조의 데이터베이스 클러스터 서버 시스템과온라인 확장 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0063344A KR100492167B1 (ko) 2003-09-09 2003-09-09 비공유 구조의 데이터베이스 클러스터 서버 시스템과온라인 확장 방법

Publications (2)

Publication Number Publication Date
KR20050026306A KR20050026306A (ko) 2005-03-15
KR100492167B1 true KR100492167B1 (ko) 2005-06-02

Family

ID=37384226

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0063344A KR100492167B1 (ko) 2003-09-09 2003-09-09 비공유 구조의 데이터베이스 클러스터 서버 시스템과온라인 확장 방법

Country Status (1)

Country Link
KR (1) KR100492167B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100622130B1 (ko) * 2004-12-21 2006-09-19 한국전자통신연구원 객체 기반 스토리지 시스템에서 고속의 데이터 입출력을위한 객체 저장소 관리 시스템 및 방법
KR100792049B1 (ko) * 2005-06-03 2008-01-07 엘지엔시스(주) 저속의 통신 환경에서 고품질의 유저 인터페이스를 제공하는 애플리케이션의 운용 방법 및 그 애플리케이션이 저장된 기록매체
KR100707875B1 (ko) * 2006-09-22 2007-04-16 주식회사 이루기술 데이터 베이스 비종속적 시스템 구축방법
KR101864509B1 (ko) * 2016-11-30 2018-06-04 영남대학교 산학협력단 빅데이터 분석 시스템 및 방법
CN115348185B (zh) * 2022-08-19 2023-12-05 招银云创信息技术有限公司 一种分布式查询引擎的控制方法及其控制装置

Also Published As

Publication number Publication date
KR20050026306A (ko) 2005-03-15

Similar Documents

Publication Publication Date Title
US11360854B2 (en) Storage cluster configuration change method, storage cluster, and computer system
US10929428B1 (en) Adaptive database replication for database copies
US5796999A (en) Method and system for selectable consistency level maintenance in a resilent database system
US7743036B2 (en) High performance support for XA protocols in a clustered shared database
US6898609B2 (en) Database scattering system
US10706021B2 (en) System and method for supporting persistence partition discovery in a distributed data grid
US20120254249A1 (en) Database Management System
CN113535656B (zh) 数据访问方法、装置、设备及存储介质
US11068499B2 (en) Method, device, and system for peer-to-peer data replication and method, device, and system for master node switching
US8082344B2 (en) Transaction manager virtualization
CN107623703B (zh) 全局事务标识gtid的同步方法、装置及***
CN113010496B (zh) 一种数据迁移方法、装置、设备和存储介质
CN112199427A (zh) 一种数据处理方法和***
CN104980307A (zh) 数据访问请求的处理方法、装置及数据库服务器
CN110807039A (zh) 一种云计算环境下数据一致性维护***及方法
CN112492022A (zh) 提高数据库可用性的集群、方法、***及存储介质
KR100492167B1 (ko) 비공유 구조의 데이터베이스 클러스터 서버 시스템과온라인 확장 방법
WO2022135471A1 (zh) 多版本并发控制和日志清除方法、节点、设备和介质
CN115510024A (zh) 一种实现大规模并行数据库高可用的方法及***
JP2012022379A (ja) 分散トランザクション処理システム、装置、方法およびプログラム
Guarnieri et al. Linearizable low-latency reads at the edge
CN117149885B (zh) 一种基于数据库主节点转发的读写分离实现方法
US11947555B1 (en) Intelligent query routing across shards of scalable database tables
WO2020207078A1 (zh) 数据处理方法、装置和分布式数据库***
CN117453813A (zh) 一种支持异构数据库***的集群方法

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: 20130215

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140421

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150506

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160401

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20171106

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee