KR100492167B1 - Shared-nothing database cluster server system and On-line scaling method - Google Patents

Shared-nothing database cluster server system and On-line scaling method 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
Korean (ko)
Other versions
KR20050026306A (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 KR10-2003-0063344A priority Critical patent/KR100492167B1/en
Publication of KR20050026306A publication Critical patent/KR20050026306A/en
Application granted granted Critical
Publication of KR100492167B1 publication Critical patent/KR100492167B1/en

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단계;를 포함함을 특징으로 하는 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법에 관한 것이다.The present invention relates to a non-shared database cluster server and an online extension technique, including: a client; A basic query processing component; A database management component; Global meta manager; Central controller; And a database; the first step of placing the original data in the non-shared database cluster server and the original node, the first node N1, and the duplicate data of the original data in the second node N2, the replication node. ; The predetermined data of the first node is transmitted to the third node, which is an expansion node, and the predetermined data of the second node (where the predetermined data of the second node is different from the predetermined data of the first node). Data) transmitting to a fourth node which is an expansion node; And a third step of, when data transmission is completed in the second step, transmitting data of different parts previously transmitted from each expansion node to the other expansion node to generate a complete data. An online expansion method of a cluster server system.

Description

비공유 구조의 데이터베이스 클러스터 서버 시스템과 온라인 확장 방법{Shared-nothing database cluster server system and On-line scaling method} Shared-nothing database cluster server system and on-line scaling method

본 발명은 비공유 구조의 데이터베이스 클러스터 서버 시스템과 온라인 확장 방법에 관한 것으로, 더욱 구체적으로는 인터넷 또는 모바일 환경과 같이 다수의 사용자에 의해 패턴이 불규칙적이고 질의의 수가 일시적으로 급증할 수 있는 동적 환경에서 대용량의 질의를 안정적·지속적으로 처리하기 위한 데이터베이스 클러스터 서버 시스템과 온라인 확장 방법에 관한 것이다. The present invention relates to a non-shared database cluster server system and an online expansion method. More specifically, the present invention relates to a large capacity in a dynamic environment in which a pattern is irregular by a large number of users and the number of queries may increase temporarily. This paper relates to a database cluster server system and an online expansion method for stably and continuously processing queries.

일반적으로 데이터베이스 클러스터에 관한 기술은 공유 디스크 구조(Shared Disk), 공유 메모리 구조(Shared Memory), 비공유 구조로 나눌 수 있다.In general, the technology of a database cluster can be divided into a shared disk structure, a shared memory structure, and a non-shared structure.

공유 디스크 구조와 공유 메모리 구조는 시스템 구성 비용, 통신 부하, 관리 비용이 큰 반면, 비공유 구조는 확장성이 높고, 비용 대비 효율이 높다. 이러한 이유로 비공유 구조가 여러 연구용 및 상용 데이터베이스 클러스터들에 의해 채택되고 있다. The shared disk structure and the shared memory structure have a high system configuration cost, communication load, and management cost, while the non-shared structure has high scalability and high cost efficiency. For this reason, a nonshared structure is being adopted by several research and commercial database clusters.

비공유 구조의 데이터베이스 클러스터 시스템은 독립적으로 동작되는 시스템들을 클러스터의 노드로 포함시키고, 이를 고속의 네트워크로 연결시키는 형태를 갖는다. 데이터베이스에 저장되는 전체 데이터는 가용성을 위해 각각의 클러스터 노드에 복제(Replication) 또는 분할(Fragmentation)된 형태로 저장된다. 이러한 저장 형태를 바탕으로 임의의 노드에서 장애가 발생하여 서비스가 불가능할 경우 그 복제본을 갖는 노드의 데이터로 대신 서비스를 제공한다. A non-shared database cluster system includes systems that operate independently as nodes of a cluster and connects them to a high speed network. The entire data stored in the database is stored in the form of replication or fragmentation on each cluster node for availability. Based on this storage type, if a service fails due to a failure in any node, the service is provided instead of the data of the node having the replica.

비공유 구조의 데이터베이스 클러스터는 질의 처리시 복제본의 갱신 방법에 따라 원본 데이터와 복제본을 동시에 갱신시키는 즉시 갱신(eager update)과 원본 노드의 갱신 연산이 완료되면 먼저 클라이언트에게 결과를 반환하고 나머지 복제본에 대한 갱신 연산을 수행하는 지연 갱신(lazy update) 방식으로 나눌 수 있다. The non-shared database cluster will return the result to the client first when the update operation of the original node and the update node completes the update of the original data and the replica at the same time according to the method of updating the replica during query processing. It can be divided into a lazy update method that performs an operation.

또한 갱신 영역에 따라 전체 갱신(update everywhere) 방식과 마스터 갱신(master update) 방식으로 나눌 수 있는데 전체 갱신의 경우 무결성은 보장할 수 있으나, 갱신 연산에 대한 처리가 힘들며, 마스터 갱신은 갱신 연산에는 효율적이지만 일부 무결성에 있어서 문제점을 가진다. In addition, depending on the update area, it can be divided into the whole update method and the master update method. In the case of the total update, the integrity can be guaranteed, but the processing of the update operation is difficult, and the master update is efficient for the update operation. But there is a problem with some integrity.

또한 데이터의 저장 형태에 따라 완전 복제(Fully Replication) 방식과 분할 및 복제를 함께 사용하는 부분 복제(Partially Replication) 방식으로 나뉜다. 완전 복제 방식은 저장 구조 및 관리가 간단하며, 장애가 발생할 경우 주어진 복제 노드를 즉시 사용할 수 있어 높은 가용성을 제공한다. 그러나, 갱신 질의 처리의 경우 모든 복제 노드의 동시성 유지 및 동일 갱신 연산의 처리를 위해 고비용의 연산을 수행하게 되어 질의 처리 시간이 크게 증가하게 된다. 반면에 부분 복제 방식은 완전 복제 방식에 비해 저장 구조 및 장애 처리 기법이 복잡하며, 데이터의 특성 및 저장 구조에 따라 성능의 차이를 갖지만 읽기 및 갱신 질의에 대해 대체적으로 안정적인 성능을 갖는다.In addition, depending on the type of data storage, it is divided into Full Replication and Partially Replication using Partition and Replication together. Full replication provides simple storage structure and management, and provides high availability by immediately using a given replication node in the event of a failure. However, in the case of update query processing, expensive operations are performed to maintain concurrency of all replica nodes and to process the same update operation, thereby greatly increasing query processing time. On the other hand, partial replication has more complicated storage structure and failure handling scheme than full replication, and the performance is different depending on the characteristics and storage structure of data.

비공유 구조의 데이터베이스 클러스터는 일반적으로 공유 메모리 및 공유 디스크 구조의 시스템에 비해 높은 확장성을 갖는다. 하드웨어 또는 소프트웨어의 기능 확장을 위해 서버를 중지시킨 후 재가동 시켜야 하는 공유 메모리, 디스크 구조와는 달리 비공유 구조는 각 노드가 독립적으로 구성되어 데이터의 재조직 및 확장 과정을 통해 자유로운 노드의 확장 및 축소가 가능하다. Non-shared database clusters generally have higher scalability than systems with shared memory and shared disk structures. Unlike shared memory and disk structures, which require the server to be stopped and restarted for hardware or software expansion, the non-shared structure allows each node to be configured independently, freely expanding and contracting nodes through data reorganization and expansion. Do.

이러한 기능을 활용하여 서비스가 제공되는 온-라인 상태에서도 특정 노드로의 부하 집중 문제, 장애 발생 문제 또는 사용자 증가에 의해 기존 시스템의 처리량이 한계에 도달하는 문제가 발생할 경우 온-라인 재조직 및 온-라인 확장 기법을 통한 해결이 가능하다.Leverage these features to ensure on-line reorganization and on-line when a problem occurs where the throughput of an existing system reaches its limit due to load concentration issues, failures, or increased users, even when the service is provided on-line. The solution can be solved through the line extension technique.

온-라인 재조직 기법은 서비스를 지속적으로 제공하면서 클러스터 내에 존재하는 기존의 데이터베이스 구성을 새롭게 변경하고, 변경된 구성 내용을 바탕으로 기존의 데이터를 생성, 삭제, 이동, 그리고 병합 과정을 통해 데이터베이스를 재조직 하는 기법이다. 재조직 과정을 온-라인 상태로 처리하기 위해서는 데이터 이동의 경우 별도의 트랜잭션 처리 로그를 두어 이동되는 데이터의 무결성을 유지시키는 기법과 트랜잭션 처리와 동시에 갱신 영역을 판별하고 판별된 갱신 영역이 전송 영역인지 아닌지에 따라 실시간 갱신 데이터 전송 여부를 결정하는 기법으로 나눌 수 있다.On-line reorganization technique continuously changes the existing database configuration in the cluster while continuously providing services, and reorganizes the database by creating, deleting, moving, and merging existing data based on the changed configuration. Technique. In order to process the reorganization process on-line, a separate transaction processing log is placed in the case of data movement to maintain the integrity of the data being moved, and the update area is determined simultaneously with transaction processing, and whether the determined update area is the transmission area or not. As a result, the method can be divided into a technique for determining whether to transmit real-time update data.

온-라인 확장 기법은 온-라인 재조직 기법을 유휴 노드를 통한 노드 확장의 경우로 한정지어 사용하는 특수한 기법이다. 여기서 유휴 노드는 클러스터 서버에 포함은 되지만 서비스 처리에는 참여하지 않는 비활성 노드이다. 이 기법은 사용자가 급증하여 서버의 처리량을 늘릴 필요가 생길 경우를 대비해 항시 대기중인 유휴 노드를 두어 실시간 서버 확장을 가능케 한다. 유휴 노드를 포함하여 활용 가능한 모든 노드를 서버에 참여시킴으로써 서버의 처리량을 미리 확장시켜 놓는 방법이 더 효율적으로 보일 수 있으나, 사용자가 증가할 경우 발생하는 대부분의 문제는 특정 노드 또는 특정 데이터와 같이 부분적인 부하 집중으로 인해 발생하는 문제들로서 온-라인 재조직 기법을 통해 처리할 경우 현재 한계점에 이른 서버의 처리량에 더 큰 부하를 발생시킴으로써 더 큰 문제를 발생시키게 된다. 반면에 온-라인 확장 기법은 데이터 이동에 의해 발생 가능한 문제 발생 영역에서의 추가적인 부하가 단순 데이터 이동 및 처리를 통해 최소화되며, 동시에 유휴 노드는 별도의 서비스를 제공하지 않는 상태에서 노드 전체의 리소스를 온-라인 확장에 할당하여 온-라인 재조직 기법보다 빠른 처리가 가능하다. 따라서, 유휴 노드를 통해 서버의 부하를 최소로 하면서 단시간 내에 부하 집중 문제를 처리할 수 있는 온-라인 확장 기법이 유용하게 사용될 수 있다.The on-line extension technique is a special technique that uses the on-line reorganization technique only in the case of node expansion through idle nodes. An idle node is an inactive node that is included in the cluster server but does not participate in service processing. This technique enables real-time server expansion by having idle nodes always waiting in case the user needs to increase the server throughput. It may seem more efficient to pre-scale the server's throughput by involving all available nodes, including idle ones, in the server. These problems are caused by heavy load concentration, and when dealt with through on-line reorganization techniques, they cause more problems by placing a greater load on the server's throughput. On-line scaling, on the other hand, minimizes the additional load in the problem-prone areas that can be caused by data movement through simple data movement and processing, while at the same time, idle nodes do not provide resources for the entire node. Assigning to on-line extensions allows for faster processing than on-line reorganization techniques. Therefore, an on-line scaling technique that can handle the load concentration problem in a short time while minimizing the load of the server through the idle node can be usefully used.

종래의 비공유 구조의 데이터베이스 클러스터의 경우 서비스가 동작되는 동안의 온-라인 재조직 및 온-라인 확장이 데이터베이스의 무결성을 위해 크게 제한되어 있었다. 재조직 및 확장 과정에서 사용자의 질의 처리가 지속적으로 서비스되기 위해서는 현재 재조직 영역에 포함되는 데이터의 무결성을 유지하기 위해 별도의 데이터베이스의 설정 변경, 로그 처리 방식의 변경, 추가적인 네트워크, 메모리, 저장 공간과 같은 리소스의 할당이 필요하다. 그 결과 온-라인 재조직의 수행을 위해서는 현재 제공되고 있는 데이터베이스 서비스의 처리 성능이 크게 떨어지게 되었다. 이러한 점을 해결하기 위해 여러 가지 기법이 적용되어 왔으나 대부분의 기법이 수행되는 경우 시스템의 성능을 크게 떨어뜨리게 되며, 온-라인 확장 기법도 이러한 문제점이 동일하게 나타나고 있었다.In the case of a conventional non-shared database cluster, on-line reorganization and on-line expansion during service operation were greatly limited for the integrity of the database. In order for the user's query processing to continue to be serviced during the reorganization and expansion process, it is necessary to change the configuration of a separate database, change the log processing method, and additional network, memory, and storage space to maintain the integrity of the data included in the current reorganization area. Resource allocation is required. As a result, the processing performance of the currently provided database service for the on-line reorganization is greatly reduced. Various techniques have been applied to solve this problem, but when most of the techniques are performed, the performance of the system is greatly degraded.

따라서, 본 발명이 이루고자 하는 기술적 과제는 시스템 성능에 영향을 최소화하며, 동적인 환경에 알맞고, 효율적인 온-라인 재조직 및 온-라인 확장을 통해 무결성에 위배되지 않으면서도 대용량의 질의 처리에 있어서 최소 응답 시간을 유지하는 비공유 구조의 데이터베이스 클러스터 서버 시스템과 온라인 확장 방법을 제공하는데 있다. Accordingly, the technical problem to be achieved by the present invention is to minimize the impact on system performance, to be suitable for dynamic environments, and to minimize response in processing a large volume of queries without violating integrity through efficient on-line reorganization and on-line expansion. To provide a non-shared database cluster server system that maintains time and an online expansion method.

본 발명의 다른 기술적 과제는 복제 기법을 통해 가용성을 최대화 하면서도 성능 저하를 일으키지 않는 데이터베이스 클러스터를 설계하고, 비용대비 효율이 높은 비공유 구조의 일반 데스크탑 노드들을 클러스터로 구성하여 하나 이상의 서버가 중지되더라도 복제 서버로 결함을 허용하는 무정지 서비스를 제공하는 비공유 구조의 데이터베이스 클러스터 서버 시스템과 온라인 확장 방법을 제공하는데 있다. Another technical problem of the present invention is to design a database cluster that does not cause performance degradation while maximizing availability through a replication technique, and to configure a cost-effective, non-shared, common desktop node into a cluster, even if one or more servers are stopped. It is to provide a non-shared database cluster server system and an online expansion method that provide fault-tolerant services.

본 발명의 또 다른 기술적 과제는 급격한 사용자 증가에 실시간으로 대처하는 온-라인 확장 기법으로 추가적인 서버의 부하를 최소화하여 질의 처리량을 유지하면서도 안정적으로 실시간 확장을 가능케 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템과 온라인 확장 방법을 제공하는데 있다. Another technical problem of the present invention is a non-shared database cluster server system and on-line which enables stable real-time expansion while maintaining query throughput by minimizing additional server load with an on-line expansion technique that copes with rapid user growth in real time. To provide an extension method.

상기 기술적 과제를 달성하기 위하여, 본 발명에 의한 비공유 구조의 데이터베이스 클러스터 서버 시스템은 GUI기반의 질의 처리 툴, 클러스터 시스템을 관리하는 관리자 프로그램, 각 노드의 자원을 감시하는 모니터링 툴을 포함하고, 인터페이스 라이브러리를 통해 기본 질의 컴포넌트로 질의문을 전송하는 클라이언트; 상기 클라이언트로부터 수신되는 상기 질의문을 분석하여 데이터베이스 관리 컴포넌트로 전송하며, 질의 처리 결과를 상기 클라이언트로 제공하는 기본 질의 처리 컴포넌트; 상기 질의문의 분석결과에 따라 해당 질의의 연산 순서, 재조직 및 확장 여부, 트랜잭션 자원을 할당 정도를 결정하는 데이터베이스 관리 컴포넌트; 상기 질의문이 접근하는 데이터의 정보를 상기 기본 질의 처리 콤포넌트로 제공하며, 일관성 유지 프로토콜을 기반으로 임의의 시간에 모든 노드의 메타정보를 동일하게 유지되도록 관리하는 전역 메타 관리기; 서버의 구동, 중지, 확장, 축소, 설정 변경을 포함하는 서버 운영을 제어하는 중앙제어기; 및 소정의 데이터를 저장하는 데이터베이스;를 포함함을 특징으로 한다.In order to achieve the above technical problem, the non-shared database cluster server system according to the present invention includes a GUI-based query processing tool, an administrator program for managing the cluster system, a monitoring tool for monitoring the resources of each node, the interface library A client for transmitting a query to the basic query component through; A basic query processing component that analyzes the query received from the client and transmits the query to the database management component and provides the query processing result to the client; A database management component for determining an operation order, reorganization and expansion of a corresponding query, and a degree of allocating transaction resources according to an analysis result of the query statement; A global meta manager which provides information of data accessed by the query statement to the basic query processing component and manages to maintain the same meta information of all nodes at any time based on a consistency maintaining protocol; A central controller controlling server operation including starting, stopping, expanding, reducing, and changing settings of the server; And a database storing predetermined data.

상기 다른, 또다른 기술적 과제를 달성하기 위하여, 본 발명에 의한 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법은 원본 노드인 제1 노드(N1)에 원본 데이터, 복제 노드인 제 2노드(N2)에 원본 데이터의 복제 데이터를 두는 제 1단계: 상기 제 2노드에서 Ta1'으로부터 Ta2로 확장 연산을 수행하는 제 2단계; 그리고 상기 제 2노드에서 상기Ta1'의 분할된 데이터인 상기Ta2를 해당 노드의 원본 데이터로 하여 유휴 노드인 제 3노드의 Ta2'로 동일 복제본을 전송하는 제 3단계;를 포함함을 특징으로 한다.In order to achieve the above, another technical problem, the online expansion method of the database cluster server system according to the present invention is the original data to the first node (N1), which is the original node, the original data to the second node (N2), which is a replication node. A first step of placing duplicate data of a second step of performing an expansion operation from Ta1 'to Ta2 at the second node; And transmitting, by the second node, the same copy to Ta2 'of the third node, which is an idle node, using Ta2, which is the divided data of Ta1', as the original data of the corresponding node. .

상기 다른, 또 다른 기술적 과제를 달성하기 위하여, 본 발명에 의한 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법은 원본 노드인 제1 노드(N1)에 원본 데이터, 복제 노드인 제 2노드(N2)에 원본 데이터의 복제 데이터를 두는 제 1단계; 상기 제 1노드의 소정의 데이터를 확장 노드인 제 3노드로 전송하며, 상기 제 2노드의 소정의 데이터를(여기서 제 2노드의 소정의 데이터는 상기 제 1노드의 소정의 데이터와 다른 부분의 데이터) 확장 노드인 제 4노드로 전송하는 제 2단계; 상기 제 2단계에서 데이터 전송이 완료되면 상기 각 확장 노드에서 기 전송된 서로 다른 부분의 데이터를 상기 타 확장 노드로 전송하여 완전한 형태의 데이터를 생성하는 제 3단계;를 포함함을 특징으로 한다.In order to achieve the above, another technical problem, the online expansion method of the database cluster server system according to the present invention is the original data to the first node (N1), which is the original node, the original data to the second node (N2), which is a replication node. A first step of placing duplicate data of the; The predetermined data of the first node is transmitted to the third node, which is an expansion node, and the predetermined data of the second node (where the predetermined data of the second node is different from the predetermined data of the first node). Data) transmitting to a fourth node which is an expansion node; And a third step of generating complete data by transmitting data of different parts previously transmitted from each expansion node to the other expansion node when data transmission is completed in the second step.

이하, 본 발명에 따른 바람직한 실시예를 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며, 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.Hereinafter, with reference to a preferred embodiment according to the present invention will be described in detail. In the following description, only parts necessary for understanding the operation according to the present invention will be described, it should be noted that the description of other parts will be omitted so as not to distract from the gist of the present invention.

도 1은 데이터베이스 클러스터 서버의 구성 환경을 도시한 도면이다.1 is a diagram illustrating a configuration environment of a database cluster server.

도 1을 참조하면, 본 발명의 실시예에 따른 데이터베이스 클러스터 서버는 사용자들이 일반적으로 접속 클라이언트로 사용하게 되는 웹 브라우져(100), 웹 기반의 접속을 담당하는 웹 서버 클러스터(200) 및 응용 어플리케이션 서비스의 바탕을 제공하는 데이터베이스 클러스터(300)을 포함하는 환경에서 동작될 수 있다. Referring to FIG. 1, a database cluster server according to an exemplary embodiment of the present invention includes a web browser 100 that users generally use as an access client, a web server cluster 200 that is responsible for web-based access, and an application application service. It can be operated in an environment including a database cluster 300 that provides a basis for.

사용자들은 인터넷 서비스를 이용하기 위해 자신의 웹 브라우져를 통해 웹 서버로 접속하게 된다. 웹 서버는 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)를 포함하며, 각 노드는 독립적인 데이터베이스를 갖는다.Users connect to a web server through their web browser to use Internet services. Web servers include networks such as Open Database Connectivity (ODBC), Java Database Connectivity (JDBC), Internet Server Application Programming Interface (ISAPI), Web-based Common Gateway Interface (CGI), Call Level Interface (CLI), and Winsock. It communicates with the database cluster server through an application written using a function-based interface library. The database cluster 300 includes an active node that participates in a current service and performs a query processing, and a spare node that is waiting for on-line expansion, and each node has an independent database.

도 2는 본 발명의 일 실시예에 따른 데이터베이스 클러스터 서버의 구성도이다.2 is a configuration diagram of a database cluster server according to an embodiment of the present invention.

도 2를 참조하면, 데이터베이스 클러스터 서버 시스템은 클라이언트(400), 전역 메타 관리기(500), 중앙 제어기(600), 기본 질의 처리 컴포넌트(700), 데이터베이스 관리 컴포넌트(800), 데이터베이스(900)를 포함한다.Referring to FIG. 2, a database cluster server system includes a client 400, a global meta manager 500, a central controller 600, a basic query processing component 700, a database management component 800, and a database 900. do.

클라이언트(400)는 인터페이스 라이브러리, GUI(Graphical User Interface)기반의 툴로써 직접 데이터베이스에 질의 요청을 담당하는 본 서버 전용의 툴, 일반적인 데이터베이스 관리 시스템의 형태를 가지면서 클러스터 시스템을 관리하는 관리자 프로그램 및 각 노드의 리소스 사용량을 감시하는 모니터링 툴 등을 포함한다. The client 400 is an interface library, a GUI (Graphical User Interface) based tool, a server-specific tool for directly inquiring database requests, an administrator program for managing a cluster system in the form of a general database management system, and each. It includes a monitoring tool for monitoring the resource usage of the node.

전역 메타 관리기(500)는 기존의 단일 데이터베이스 시스템과는 달리 네트워크로 연결된 클러스터 노드의 메타 정보를 관리한다. 즉, 클러스터에 포함되는 활성 노드 및 유휴 노드의 정보, 릴레이션의 분할 및 복제 정보, 마스터 및 복제본의 설정 정보, 사용자 정보 등의 질의 처리와 관련된 정보를 관리한다. 또한, 온-라인 재조직, 온-라인 확장, 회복 처리와 같은 데이터베이스의 구성이 임시로 변경되어야 하는 특수한 경우 메타 정보를 변경 불가능하게 관리한다. Unlike the existing single database system, the global meta manager 500 manages meta information of cluster nodes connected through a network. That is, it manages information related to query processing such as information of active nodes and idle nodes included in the cluster, partition and replication information of relations, configuration information of master and replicas, and user information. In addition, it manages the meta information unalterably in special cases where the configuration of the database such as on-line reorganization, on-line expansion, and recovery processing must be changed temporarily.

전역 메타 관리기(500)는 각 노드에 동일하게 분포되어 있으며, 각 노드의 메타 정보는 일부 데이터베이스 스키마의 변경이 있을시 내부 네트워크 연결 처리기(740)에 포함되는 일관성 유지 프로토콜을 통해 임의의 시간에 모든 노드의 메타 정보가 동일하도록 관리하는 일관성 유지 구조를 가진다.The global meta manager 500 is equally distributed to each node, and the meta information of each node can be changed at any time through the coherence protocol included in the internal network connection handler 740 when there are some database schema changes. It has a structure of maintaining consistency so that meta information of nodes is the same.

중앙 제어기(600)는 서버의 구동, 중지, 확장, 축소, 설정 변경 등의 서버 운용에 관련된 기능을 제어하는 컴포넌트이다. 즉, 메타 정보에 등록이 되어있는 클러스터 노드 정보를 바탕으로 노드들의 구동, 중지, 확장, 축소, 이동과 같은 시스템 운영과 데이터베이스 구조에 대한 제어권을 관리한다. The central controller 600 is a component that controls functions related to server operation such as starting, stopping, expanding, reducing, and changing settings of the server. That is, based on the cluster node information registered in the meta information, it manages the control of the system operation and database structure such as start, stop, expand, shrink and move nodes.

또한 일반적인 질의 처리를 제외한 데이터베이스의 재구성 요청, 노드의 제어 요청, 클러스터 노드의 추가 및 삭제 요청, 서비스 시작 및 중지 요청에 대한 처리를 위한 인터페이스를 담당한다. 또한 기본 질의 처리 컴포넌트(700) 또는 데이터베이스 관리 컴포넌트(800)와의 메시지 송수신 처리 과정을 포함하는 컴포넌트이다. In addition, it handles interfaces for processing database reconfiguration requests, node control requests, cluster node addition and deletion requests, and service start and stop requests except general query processing. It is also a component that includes a message transceiving process with the basic query processing component 700 or the database management component 800.

관리자 프로그램은 중앙 제어기(600)와의 통신을 통해 서버를 제어하게 된다.The manager program controls the server through communication with the central controller 600.

기본 질의 처리 컴포넌트(700)는 외부 연결 처리기(710), 질의 처리기(720), 트랜잭션 처리기(730), 내부 네트워크 연결 처리기(740), 저장 관리자(750)를 포함한다. 기본 질의 처리 컴포넌트(700)는 질의 처리 과정의 전반적인 수행을 담당하는 컴포넌트로서 단일 데이터베이스 관리 시스템의 구조와 거의 흡사하게 구성되어 있으나, 질의 처리를 위한 수행 과정이 클러스터를 고려하여 설계되었다. The basic query processing component 700 includes an external connection processor 710, a query processor 720, a transaction processor 730, an internal network connection processor 740, and a storage manager 750. The basic query processing component 700 is a component that is responsible for the overall execution of the query processing process, and is almost similar to the structure of a single database management system. However, the process for query processing is designed in consideration of the cluster.

기본 질의 처리 컴포넌트(700)는 외부 연결 처리기(710)로부터 질의가 입력되면 질의 처리기(720)에서 질의를 분석하여 전역 메타 관리기(500)로부터 해당 질의가 접근하는 데이터의 정보를 얻어오는 역할을 한다. 질의는 다시 트랜잭션 처리기(730)로 전달되고, 트랜잭션에 대한 세션을 할당받게 된다. 트랜잭션 처리기(730)는 클러스터 환경에서 각 노드의 트랜잭션 연동 및 관리를 담당한다. When the query is input from the external connection processor 710, the basic query processing component 700 analyzes the query in the query processor 720 to obtain information on the data accessed by the query from the global meta manager 500. . The query is passed back to the transaction handler 730 and is assigned a session for the transaction. The transaction processor 730 is responsible for transaction interworking and management of each node in the cluster environment.

만일 접근 영역에 포함되는 데이터가 현재 노드에 없으면 내부 네트워크 연결 처리기(740)를 통해 질의를 포워딩 시키며, 이때 세션 정보와 트랜잭션 정보를 함께 전송하여 해당 노드에서 포워딩 정보를 포함하는 별도의 세션을 할당받아 트랜잭션이 동작하게 된다.If the data included in the access area does not exist in the current node, the query is forwarded through the internal network connection processor 740. At this time, the session information and transaction information are transmitted together to receive a separate session including the forwarding information from the corresponding node. The transaction will run.

기본 질의 처리 컴포넌트(700)는 질의 처리가 완료되면 다시 원래 질의를 받았던 노드로 결과를 반환하고, 결과를 클라이언트에게 전달한다. 저장 관리자(750)는 일반적인 데이터와 질의 처리 로그 외에 클러스터 서버의 처리 로그와 포워딩 로그, 회복 로그, 재조직 로그, 확장 로그를 데이터베이스(900)에 저장하여 관리한다.The basic query processing component 700 returns the result to the node that originally received the query when the query processing is completed, and delivers the result to the client. The storage manager 750 stores and manages the processing log, forwarding log, recovery log, reorganization log, and extension log of the cluster server in addition to the general data and query processing log.

데이터베이스 관리 컴포넌트(800)는 온-라인 확장 처리기(810), 회복 처리기(820) 및 온-라인 재조직 처리기(830)를 포함한다. The database management component 800 includes an on-line expansion processor 810, a recovery processor 820 and an on-line reorganization processor 830.

여기서는 온-라인 재조직 및 온-라인 확장과 같은 데이터베이스 재구성과 관련된 기능과 회복 처리 기능을 수행한다. 즉, 중앙 제어기(500), 전역 메타 관리기(600) 및 기본 질의 처리 컴포넌트(700)와 연계하여 데이터베이스의 재구성 및 노드의 회복, 확장 처리 과정을 담당한다.It performs functions related to database reorganization and recovery processing, such as on-line reorganization and on-line expansion. That is, the central controller 500, the global meta manager 600, and the basic query processing component 700 are in charge of reconstruction of the database, recovery of nodes, and expansion processes.

온-라인 확장 처리기(810)는 데이터베이스 클러스터에 유휴 노드를 두고, 임의의 노드에 질의가 집중되거나 자원의 한계점에 이르는 문제가 발생하여 실시간 처리가 필요한 경우 유휴 노드를 활성 노드로 포함시키고 데이터를 해당 유휴 노드로 분할하여 이동시키는 과정을 포함한다.The on-line scalability processor 810 has idle nodes in the database cluster, includes queries as active nodes and includes data as idle nodes when real-time processing is needed because queries are concentrated on arbitrary nodes or when resource limits are reached. Splitting and moving to an idle node.

온-라인 확장 처리기(810)는 데이터베이스 클러스터의 갱신 방식이 지연 갱신 방식을 사용하는 경우 마스터 데이터가 없는 복제 노드에서 온-라인 확장을 수행하고, 해당 복제 노드에 새롭게 분할되어 만들어지는 마스터 데이터를 저장하여 데이터 이동을 줄이는 기능을 한다.If the update method of the database cluster uses a delayed update method, the on-line extension processor 810 performs on-line expansion on a replication node without master data, and stores newly created partitioned master data on the corresponding replication node. To reduce data movement.

온-라인 확장 처리기(810)는 데이터베이스 클러스터의 갱신 방식이 즉시 갱신 방식을 사용하는 경우 데이터 이동을 병렬로 수행하여 원본 노드에서의 데이터 이동 영역을 줄이고 확장 시간을 단축하는 기능을 한다.When the update method of the database cluster uses an immediate update method, the on-line extension processor 810 performs data movement in parallel to reduce the data movement area at the original node and shorten the expansion time.

도 3은 도 2에 도시된 시스템의 동작 흐름을 도시한 도면이다.FIG. 3 is a diagram illustrating an operation flow of the system shown in FIG. 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)에 반환한다.Referring to Figure 3 describes the flow of each step as follows. In step 310, the client 400 sends a query to the basic query processing component 700. In step 320, the query processor 720 of the basic query processing component 700 analyzes the query statement. In step 330, the basic query processing component 700 transmits the analyzed query statement to the database management component 800. In step 340, the database management component 800 determines the operation order of the query. In step 345, the database management component 800 allocates transactional resources. In step 360, the database management component 800 sends the query statement to the transaction processor 730. In step 370, the basic query processing component 700 sends a query to the target node if the target node is different from the current node. Depending on the analysis result, the query sent to other nodes has a different format. In step 380, the basic query processing component 700 physically reflects the results of the query to the database 900 on disk as a commit step. In step 390, the basic query processing component 700 returns the query processing results to the client 400.

도 3을 참조하면, 클라이언트(400)로부터 입력받은 질의문은 외부 연결 처리기(710)를 통해 질의 처리기(720)에서 분석된다. 분석된 결과는 데이터베이스 관리 컴포넌트(800)에서 재조직 및 확장 여부, 연산의 순서, 트랜잭션 자원 할당 정도를 결정하는데 쓰인다. Referring to FIG. 3, the query received from the client 400 is analyzed by the query processor 720 through the external connection processor 710. The analyzed results are used by the database management component 800 to determine whether to reorganize and expand, the order of operations, and the degree of transaction resource allocation.

데이터베이스 관리 컴포넌트(800)에서 데이터베이스 재구성이 결정되면 온-라인 재조직 처리기(830)는 현재 데이터베이스 클러스터(300)에 포함된 모든 노드의 전역 메타 관리기(500), 중앙 제어기(600) 및 기본 질의 처리 컴포넌트(700)와 연동하여 온-라인 재조직 과정을 수행한다. 그 외의 경우에 질의문은 일관성 유지 프로토콜을 기반으로 현재 노드 또는 타 노드로 전송되어 처리되고, 결과문은 다시 클라이언트(400)에게 반환된다.Once the database reorganization is determined by the database management component 800, the on-line reorganization handler 830 may then be configured to the global meta manager 500, the central controller 600, and the basic query processing component of all nodes currently included in the database cluster 300. In conjunction with 700 to perform an on-line reorganization process. In other cases, the query is sent to the current node or another node for processing based on the consistency protocol, and the result is returned to the client 400.

도 4는 도 2에 도시된 온-라인 재조직 처리기의 구성도이다.4 is a block diagram of the on-line reorganization processor shown in FIG.

도 4를 참조하면, 온-라인 재조직 처리기(830)는 자원 관리기(831), 데이터 처리 관리기(832), 최적화 처리기(833), 로그 전송 처리기(834) 및 데이터 이동 처리기(835)를 포함한다.Referring to FIG. 4, the on-line reorganization processor 830 includes a resource manager 831, a data processing manager 832, an optimization processor 833, a log transfer processor 834, and a data movement processor 835. .

온-라인 재조직 처리기(830)는 전역 메타 관리기(500), 중앙 제어기(600)와 연동하여 데이터베이스의 재구성을 위해서 노드 내 데이터의 생성, 삭제, 이동, 병합, 그리고 분할 연산을 수행한다.The on-line reorganization processor 830 works with the global meta manager 500 and the central controller 600 to perform data generation, deletion, moving, merging, and partitioning of data in a node for reconstruction of the database.

온-라인 재조직의 과정은 데이터베이스 관리 컴포넌트에 의해 실행되는 데이터베이스 구성의 변경 질의 과정과 자원 관리기(831)와 데이터 처리 관리기(832)에 의해 자동적으로 수행되는 재조직 과정의 두 가지로 나뉜다. The on-line reorganization process is divided into two processes: a change query process of a database configuration executed by a database management component and a reorganization process performed automatically by a resource manager 831 and a data processing manager 832.

데이터베이스 관리 컴포넌트(800)에 의해 실행되는 온-라인 재조직 과정은 별도의 최적화 과정이 없는 상태에서 로그 전송 처리기(834)와 데이터 이동 처리기(835)에 의해 처리된다. 자원 관리기(831)와 데이터 처리 관리기(832)에 의해 수행되는 온-라인 재조직 과정은 자원 관리기(831)와 데이터 처리 관리기(832)로부터 얻은 노드의 정보를 바탕으로 최적화 처리기(833)에서 모든 노드의 부하량이 균등하게 분배될 수 있도록 최적화된 데이터베이스의 변경된 구성을 찾는 과정으로 진행된다. 이 과정에서 쓰이는 최적화 알고리즘은 자원 관리기로부터 전체 질의의 갱신비율, 테이블당 질의처리 수, 노드별 응답시간, 질의 포워딩 비율, 네트워크 사용 비율 등의 수치를 전달받아 동작된다.The on-line reorganization process executed by the database management component 800 is handled by the log transfer processor 834 and the data movement processor 835 without any separate optimization process. The on-line reorganization process performed by the resource manager 831 and the data processing manager 832 is performed by all nodes in the optimization processor 833 based on the information of the nodes obtained from the resource manager 831 and the data processing manager 832. The process proceeds to finding a modified configuration of the database that is optimized to distribute the load evenly. The optimization algorithm used in this process is operated by receiving the numerical values such as the update rate of the entire query, the number of query processing per table, the response time per node, the query forwarding rate, and the network usage rate from the resource manager.

자원 관리기(831)는 클러스터에 포함되는 각 노드의 자원을 지속적으로 감시하여 온-라인 재조직 여부를 결정하는 컴포넌트이다. 특정 노드의 자원 사용량이 임계치를 넘어설 경우 자원 관리기(831)는 데이터 처리 관리기(832)로부터 해당 노드의 정보를 얻어 온-라인 재조직 처리 여부를 결정하고, 최적화 처리기(833)의 재조직 연산을 호출하게 된다. The resource manager 831 is a component that continuously monitors resources of each node included in the cluster to determine whether to reorganize on-line. If the resource usage of a particular node exceeds the threshold, the resource manager 831 obtains the information of the node from the data processing manager 832 to determine whether to perform on-line reorganization processing, and invokes the reorganization operation of the optimization processor 833. Done.

데이터 처리 관리기(832)는 질의에 의한 갱신 영역, 접근 노드, 포워딩 (Forwarding) 빈도, 디스크 접근 빈도 등의 사용자 질의 처리에 대한 통계 정보를 관리한다. 이러한 정보를 바탕으로 데이터 처리 관리기(832)는 자원 관리기(831)와 마찬가지로 자원 관리기(831)로부터 해당 노드의 자원 정보를 얻어 온-라인 재조직 처리 여부를 결정하게 된다. 여기서 기준값으로 사용되는 노드의 자원, 통계치의 값들은 데이터베이스 관리자에 의해 변경될 수 있다. The data processing manager 832 manages statistical information on user query processing, such as a query update area, an access node, a forwarding frequency, and a disk access frequency. Based on this information, the data processing manager 832 obtains resource information of the node from the resource manager 831 like the resource manager 831 and determines whether to process on-line reorganization. Here, the resource and statistics values of the node used as reference values may be changed by the database administrator.

최적화 처리기(833)는 온-라인 재조직 처리를 위해 로그 전송 처리기(834)와 데이터 이동 처리기(835)와 함께 릴레이션의 생성, 삭제, 분할, 병합, 이동 등의 기능을 수행한다. 네트워크 환경에서 무결성 유지를 위하여 사용되는 프로토콜로써 임의의 시간에 모든 노드가 동일한 순서로 트랜잭션 처리를 수행할 수 있도록 관리해주는 일관성 유지 프로토콜이 사용된다. 일관성 유지 프로토콜을 기반으로 하기 때문에 온-라인 재조직 과정의 수행을 위해 최적화 처리기(833), 로그 전송 처리기(834) 및 데이터 이동 처리기(835)에서 별도의 네트워크 관리를 수행하지 않아도 무결성 유지가 가능하다.The optimization processor 833 performs a function of creating, deleting, dividing, merging, and moving relations together with the log transfer processor 834 and the data movement processor 835 for on-line reorganization processing. As a protocol used for maintaining integrity in a network environment, a coherence protocol is used that manages all nodes to perform transaction processing in the same order at any time. Based on the consistency protocol, integrity can be maintained without performing separate network management in the optimization processor 833, the log transfer processor 834, and the data movement processor 835 to perform the on-line reorganization process. .

로그 전송 처리기(834) 및 데이터 이동 처리기(835)는 상기 온-라인 재조직을 위해 필요한 연산을 수행하며, 데이터의 무결성 유지를 위한 로그 전송을 담당하는 컴포넌트를 포함한다.Log transfer processor 834 and data movement processor 835 perform the operations required for the on-line reorganization, and include components responsible for log transfer to maintain the integrity of the data.

로그 전송 처리기(834)는 재조직 과정 도중에 갱신 질의가 발생하는 경우에 해당 질의의 갱신 지역과 현재까지 전송된 데이터 영역을 비교하여 전송 후 갱신된 영역을 골라내어 대상 노드로 해당 데이터를 전송을 수행한다.When an update query occurs during the reorganization process, the log transfer processor 834 compares the update region of the query with the data region transmitted up to now, selects the updated region after transmission, and transmits the corresponding data to the target node. .

도 5는 도 4에 도시된 온-라인 재조직 처리기의 동작 흐름을 도시한 도면이다. 도 5를 참조하면, 온-라인 재조직 과정은 질의 형태로 시작되며, 연산이 올바른지를 판단하여 올바른 경우에 한하여 온-라인 재조직을 구동시킨다. FIG. 5 is a diagram illustrating an operation flow of the on-line reorganization processor illustrated in FIG. 4. Referring to FIG. 5, the on-line reorganization process starts with a query form and determines whether the operation is correct to drive the on-line reorganization only in the correct case.

도 5를 참조하여, 단계에 따라 온-라인 재조직 처리기(830)의 동작 흐름을 설명하면 다음과 같다.Referring to Figure 5, it will be described the operation flow of the on-line reorganization processor 830 according to the steps as follows.

510단계에서, 온-라인 재조직 처리기(830)로 재조직 질의가 입력된다. 520단계에서, 온-라인 재조직 처리기(830)는 전역 메타 관리기(500)를 통해 해당 질의에 필요한 데이터의 정보를 얻는다. 530단계에서, 온-라인 재조직 처리기(830)는 계획수립이 올바른지 여부를 판단하여, 올바른 경우에는 온라인 재조직을 구동하고, 올바르지 않은 경우에는 결과를 반환한다. 판단의 기준으로는 재조직의 대상이 되는 노드의 존재 및 결함 여부, 관리자에 의한 재조직 정책과의 상반되는 내용, 원본 데이터의 존재 유무, 대상 노드에 재조직 연산을 위한 충분한 공간의 유무 등이 있다. 540단계에서, 자원관리기(831)는 적절한 연산 수행 시기와 연산의 우선 순위를 결정한다. 550단계에서, 데이터 처리 관리기(832)는 해당 데이터의 원본 노드와 대상 노드를 찾고, 연산 수행에 필요한 단위 프로세스들을 생성한다. 560단계에서, 최적화 처리기(833)는 데이터베이스(900) 내에 저장되는 릴레이션의 디스크 영역와 인덱스에 대한 설정을 정하고, 데이터 이동 처리기(835)를 통해 데이터에 대한 연산을 수행한다. 570단계에서, 해당 테이터에 수행중인 질의가 유무를 판단한다. 해당 테이터에 수행중인 질의가 있는 경우에는 결과를 반환한다. 580단계에서, 해당 테이터에 수행중인 질의가 없는 경우에는 로그 전송 처리기(834)는 해당 데이터에 수행중인 질의의 여부를 판단하여 로그 전송을 수행한다. 590단계에서, 결과를 반환하고 종료한다.In step 510, the reorganization query is input to the on-line reorganization processor 830. In step 520, the on-line reorganization processor 830 obtains information of data necessary for the query through the global meta manager 500. In step 530, the on-line reorganization processor 830 determines whether the planning is correct, and if it is correct drive the online reorganization, and if it is not correct returns the result. Criteria for judgment include the existence and defect of the node to be reorganized, the contents conflicting with the reorganization policy by the administrator, the existence of the original data, and the existence of sufficient space for the reorganization operation on the target node. In operation 540, the resource manager 831 determines an appropriate operation time and priority of operation. In operation 550, the data processing manager 832 finds a source node and a target node of the corresponding data, and generates unit processes necessary for performing an operation. In operation 560, the optimization processor 833 sets a setting for a disk area and an index of a relation stored in the database 900, and performs operations on data through the data movement processor 835. In step 570, it is determined whether there is a query being performed on the data. If there is a query running on the data, the result is returned. In step 580, when there is no query being performed on the data, the log transmission processor 834 determines whether or not the query is being performed on the data and performs log transmission. In step 590, the result is returned and terminated.

도 6은 본 발명의 실시예에 따른 복제 노드에서의 확장 과정을 도시한 도면이다.6 is a diagram illustrating an expansion process in a replication node according to an embodiment of the present invention.

도 6을 참조하면, N1부터 N5까지의 노드들이 존재하며, 하얀 바탕과 회색 바탕의 박스는 각각 원본 데이터와 복제 데이터가 저장되는 저장공간을 의미한다. 현재 임의의 테이블 Ta1이 N1과 N2에 복제되어 존재하는 상태에서, N1에 원본 데이터가 있으며 N2에 그의 복제 데이터가 있는 경우, N1에서의 온-라인 확장과 기 확장된 상태에서 다시 N1에서 온-라인 확장이 발생하는 과정을 나타낸다. 초기 상태에서 온-라인 확장은 복제 노드인 N2의 Ta1'으로부터 확장 연산을 수행하며, Ta1'의 분할된 데이터를 해당 노드의 원본 데이터로 생성하고, 유휴 노드로 동일 복제본을 전송시킨다. 기 확장된 상태에서 온-라인 확장이 재 발생되는 경우 온-라인 확장 처리기(810)는 유휴 노드 두 대를 선정하여 분할된 복제본을 각각 원본 노드와 복제 노드로 전송한다.Referring to FIG. 6, nodes from N1 to N5 are present, and boxes of white and gray backgrounds represent storage spaces in which original data and duplicate data are stored. If any table Ta1 is currently duplicated in N1 and N2, and there is original data in N1 and its duplicate data in N2, on-line expansion in N1 and on- again in N1 with the previously extended state. Indicates how line expansion occurs. In the initial state, the on-line extension performs an extension operation from Ta1 'of N2, which is a replication node, generates the divided data of Ta1' as original data of the node, and transmits the same copy to an idle node. When the on-line expansion is re-occurred in the previously expanded state, the on-line expansion processor 810 selects two idle nodes and transmits the divided replicas to the original node and the replication node, respectively.

도 6에 의한 온-라인 확장 과정은 모두 해당 데이터의 복제본을 갖는 복제 노드로부터 이루어진다. 본 확장 과정은 지연 갱신을 사용하는 경우 원본 노드의 질의 처리와 상관없이 복제 노드에서 온-라인 확장 과정을 수행한다. 따라서 확장에 의한 부하를 줄이며, 기존의 온-라인 확장 기법에 비해 빠른 처리가 가능하다. 또한 온-라인 확장 처리기(810)는 복제 노드를 선택하는데 있어서 가능한 마스터 데이터를 포함하지 않는 노드를 선택하는 알고리즘을 사용한다. 이러한 노드 선택 방식을 통해 온-라인 확장을 수행할 시 로컬 복사의 가능성을 높여 데이터 이동에 의한 부하를 줄인다. The on-line expansion process according to FIG. 6 is all made from the replication node having a copy of the corresponding data. This extension process performs on-line extension process in the replication node regardless of query processing of the original node when using delayed update. This reduces the load due to expansion and enables faster processing than traditional on-line expansion techniques. The on-line expansion processor 810 also uses an algorithm to select nodes that do not contain possible master data in selecting duplicate nodes. This node selection method reduces the load due to data movement by increasing the possibility of local copy when performing on-line expansion.

도 7은 본 발명의 실시예에 따른 병렬 확장 과정을 도시한 도면이다.7 is a diagram illustrating a parallel expansion process according to an embodiment of the present invention.

도 7에 의하면, 온-라인 확장 과정은 원본 노드와 복제 노드의 구분이 없이 모든 복제 노드로부터 수행되며, 각각의 노드는 전송 영역을 서로 분담한다. 또한 각 노드에서의 데이터 전송이 완료되면 확장 노드 간에 자신의 데이터를 나머지 확장 노드로 전송함으로써 모든 확장 노드의 복제본이 서로 동일하도록 완전한 복제본을 만드는 데이터의 취합 과정이 이루어져 온-라인 확장을 완료하게 된다. According to FIG. 7, the on-line expansion process is performed from all the replication nodes without distinguishing between the original node and the replication node, and each node shares the transmission area with each other. In addition, when data transfer is completed in each node, the data is transferred between the expansion nodes to the remaining expansion nodes to complete the on-line expansion by collecting data that makes a complete copy so that all the expansion nodes have identical copies. .

예를 들면 노드10에 x데이터, 노드11에 y데이터, 노드12에 z데이터가 있는 경우, x데이터를 노드11과 노드12에, y데이터를 노드10과 노드12에, z데이터를 노드10과 노드11에 전송하게 된다. 이러한 온-라인 확장은 전체 갱신의 경우에 사용된다. For example, if there is x data in node 10, y data in node 11, and z data in node 12, x data is stored in node 11 and node 12, y data is stored in node 10 and node 12, and z data is stored in node 10. To node 11. This on-line extension is used in case of full update.

이러한 온-라인 확장은 각 노드의 데이터 전송 영역을 축소시킴으로써 확장에 의한 부하를 줄이고, 확장 노드에서 데이터를 취합함으로써 현재 서비스를 제공중인 모든 원본 노드들은 데이터 전송 이후 자신의 전송 영역에 대한 로그 처리만을 담당함으로써 원본 노드의 부하를 줄이는 동시에 데이터 전송 및 취합과정이 병렬로 수행되어 복제본의 수에 따라 차이가 나지만 기존의 온-라인 확장 기법에 비해 빠른 처리 시간을 갖는다.This on-line expansion reduces the data transmission area of each node to reduce the load caused by the expansion, and by collecting data from the expansion nodes, all original nodes that are currently providing services log only their own transmission area after data transmission. By reducing the load on the source node, the data transfer and aggregation process is performed in parallel, which differs depending on the number of replicas, but has a faster processing time than the existing on-line expansion scheme.

도 8은 도 2에 도시된 온-라인 확장 처리기의 동작 흐름을 도시한 도면이다.FIG. 8 is a diagram illustrating an operation flow of the on-line expansion processor illustrated in FIG. 2.

도 8를 참조하여, 단계에 따라 온-라인 확장 처리기(810)의 동작 흐름을 설명하면 다음과 같다.Referring to FIG. 8, the operation flow of the on-line expansion processor 810 according to the steps will be described below.

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단계에서, 원본노드는 확장을 종료한다.In operation 910, the on-line expansion processor 810 is driven while receiving an expansion event, and includes a resource manager 831, a data processing manager 832, and an optimization processor 833 of the on-line reorganization processor 830. In conjunction, it searches for idle nodes to be extended and creates new global meta information. In step 920, the on-line extension processor 810 locks the meta information so that the schema of the database 900 cannot be changed. In step 930 and 935, the on-line extension processor 810 transmits the on-line extension event and new meta information to all nodes included in the database cluster. In operation 940, the meta information of the target node may not be changed. In step 945, the nodes identified as the extension targets through the meta information execute the receiver and the inserter process. In step 950, after preparing for expansion, the target node sends a standby message to the source node. In steps 960 and 965, the source node starts transmitting data and logs from the point where the on-line expansion preparation is completed. In step 970, the expansion node maintains the integrity of the data by reflecting the log again after the data is reflected. The on-line extension processor 810 changes the system to an extension change mode while an extension operation is being performed. In step 975, when the movement of the data is completed, the data transmission completion message is transmitted to the original node, and the process proceeds to the completion stage of the on-line expansion. In step 980, the source node sends the query input termination to the target node. In steps 985 and 987, the source node and the target node wait until the existing transaction ends. In step 990, the end of all operations are transmitted to the source node and the target node. In step 993, the original node sends an extension termination message to the on-line extension processor 810. In step 996, the original node ends the expansion.

온-라인 확장의 완료 단계부터는 일시적으로 모든 트랜잭션의 수행이 대기 상태로 들어가게 되며, 로그의 전송 및 반영이 완료되는 시점부터 새로운 메타 정보가 적용이 된 상태에서 서비스를 재시작하게 된다.From the completion phase of the on-line extension, all transactions are temporarily put into a waiting state, and the service is restarted with the new meta information applied from the point when log transmission and reflection are completed.

도 9는 도 2에 도시된 회복 처리기의 구성도이다.9 is a configuration diagram of the recovery processor shown in FIG. 2.

도 9를 참조하면, 회복 처리기(820)는 시스템 회복 처리기(821), 데이터 회복 처리기(822), 회복 로그 기록기(823), 시스템 통계 기록기(824), 오류 감지기(825), 통계 정보(826), 회복 처리 설정 정보(827)를 포함한다. Referring to FIG. 9, the recovery processor 820 may include a system recovery processor 821, a data recovery processor 822, a recovery log recorder 823, a system statistics recorder 824, an error detector 825, and statistical information 826. ), Recovery processing setting information 827 is included.

시스템 회복 처리기(821)는 시스템에서 결함이 발생하여 단시간 내에 복구가 불가능한 경우 동작되는 컴포넌트이다. The system recovery processor 821 is a component that is operated when a failure occurs in the system and recovery is impossible in a short time.

데이터 회복 처리기(822)는 네트워크 단절, 디스크 오류, 실행 오류와 같은 단시간 내에 복구 가능한 경우에 회복 처리를 담당하는 컴포넌트이다. The data recovery processor 822 is a component that is in charge of recovery processing in the case of recovering within a short time such as network disconnection, disk error, and execution error.

회복 로그 기록기(823)는 임의의 노드에서 장애가 발생한 시점부터 저장되는 로그를 관리하는 컴포넌트이다.The recovery log recorder 823 is a component that manages logs that are stored from a time point when a failure occurs in any node.

시스템 통계 기록기(824)는 각 노드의 오류 발생 통계를 기록하여 회복 후에도 잦은 결함이 생기는 노드에 대한 처리 정보를 제공하는 컴포넌트이다.The system statistics recorder 824 is a component that records error occurrence statistics of each node and provides processing information on nodes which frequently occur after recovery.

오류 감지기(825)는 노드의 네트워크 단절 여부, 시스템 오류 여부 등의 오류 정보를 감지하는 컴포넌트이다.The error detector 825 is a component that detects error information such as whether the node is disconnected from the network or whether a system error occurs.

본 발명에서의 회복 처리는 데이터의 복제본과 온-라인 재조직 처리기를 기반으로 운영이 된다. The recovery process in the present invention is based on a copy of the data and on-line reorganization processor.

회복 처리기(820)에서는 장애 발생시 단기간 내 복구 가능한 경우와 복구 불가능한 경우로 나누어 온-라인 재조직 또는 온-라인 확장을 사용한 회복 처리를 수행하는 과정을 포함한다. 또한 장애 발생시 장애가 발생하기 전에 복제 노드로 쓰이던 데이터들은 장애 기간동안 마스터 데이터로써 쓰이게 되는 과정을 포함한다.The recovery processor 820 includes a process of performing recovery processing using on-line reorganization or on-line extension when a failure occurs in a short time and recoverable in a short time. In addition, when a failure occurs, data that was used as a replication node before failure occurs includes a process of being used as master data during the failure period.

회복 처리기(820)는 단기간 오류의 발생시 해당 노드를 다시 복구시킨 후에 장애 기간 동안에 저장된 회복 로그를 반영함으로써 온-라인 상태로 회복 시킨다. The recovery processor 820 recovers an on-line state by reflecting the recovery log stored during the failure period after recovering the node again when a short-term error occurs.

만일 장애가 복구 불가능하다고 판단되거나 장애 복구 시간이 기준 시간을 경과하게 되면, 유휴 노드를 활성 노드로 포함시킨 후 장애 발생 노드와 동일한 데이터를 복제 노드들로부터 전송 받아 서비스를 제공한다. 이러한 과정에서 온-라인 재조직 처리기(830)의 릴레이션 생성, 삭제, 이동, 병합, 분할 등의 모듈들이 쓰이게 된다. 이 때에 오류가 발생하기 전에 복제 노드로 쓰이던 데이터들은 오류 기간 동안 마스터 데이터로써 쓰이게 된다.If it is determined that the failure is not recoverable or the failure recovery time has passed the reference time, the idle node is included as an active node and the same data as the failed node is received from the replication nodes to provide a service. In this process, modules such as relation generation, deletion, movement, merging, and division of the on-line reorganization processor 830 are used. At this time, the data that was used as a replication node before the error occurred is used as the master data during the error period.

도 10은 도 9에 도시된 회복 처리기의 동작 흐름을 도시한 도면이다.FIG. 10 is a diagram illustrating an operation flow of the recovery processor illustrated in FIG. 9.

도 10를 참조하여, 단계에 따라 회복 처리기(820)의 동작 흐름을 설명하면 다음과 같다.Referring to FIG. 10, the operation flow of the recovery processor 820 will be described as follows.

1100단계에서, 오류가 발생하면 회복 처리기(820)의 동작이 개시된다. 1110단계에서, 오류 감지기(824)는 오류 정보를 감지하여 데이터베이스 클러스터에 포함되는 활성 노드들로 전달한다. 1120단계에서, 온-라인 재조직 처리기(830)는 복구가 가능한지 여부를 판단한다. 복구가 불가능한 경우에는 결과를 반환한다. 1130단계에서, 회복 처리기(820)는 오류가 발생한 노드에 지정된 데이터를 확인한다. 1140단계에서, 온-라인 재조직 처리기(830)는 해당 릴레이션의 주 데이터 또는 복제본의 역할을 바꾸는 연산을 수행한다. 1150단계에서, 회복 로그 기록기(823)는 장애 발생으로 인해 복제본이 마스터 데이터로 변경된 회복 로그를 각 노드에 기록한다. 1160단계에서, 회복 처리기(820)는 복구가 완벽히 수행되었는지 여부를 판단한다. 복구가 완벽히 수행되지 아니한 경우에는 결과를 반환한다. 1170단계에서, 회복 로그 기록기(823)는 복구가 완벽히 수행되면 지금까지 각 노드에 저장된 회복 로그를 반영한다. 1180단계에서, 회복 로그 기록기(823)는 결과를 반환한다. 회복 처리기(820)는 동기화 과정이 끝나면 회복 처리를 종료하게 된다.In operation 1100, when an error occurs, the operation of the recovery processor 820 is started. In operation 1110, the error detector 824 detects the error information and delivers the error information to the active nodes included in the database cluster. In step 1120, the on-line reorganization processor 830 determines whether recovery is possible. If recovery is not possible, return a result. In operation 1130, the recovery processor 820 checks the data designated for the node in which the error occurred. In step 1140, the on-line reorganization processor 830 performs an operation of changing the role of the main data or the replica of the relation. In operation 1150, the recovery log recorder 823 records a recovery log in which the replica is converted into master data due to a failure, to each node. In operation 1160, the recovery processor 820 determines whether the recovery is completely performed. If the recovery was not completed, the result is returned. In step 1170, the recovery log recorder 823 reflects the recovery log stored in each node so far when the recovery is completely performed. In operation 1180, the recovery log recorder 823 returns a result. The recovery processor 820 ends the recovery process after the synchronization process is completed.

이상 설명한 바와 같이, 본 발명에 따르면 사용자의 증가 또는 질의 패턴의 변화로 인해 기존의 데이터베이스 구성이 서비스 처리 성능을 크게 저하시키거나 장애를 발생시키는 경우 온-라인 재조직, 온-라인 확장, 회복 처리 과정에 복제 데이터를 활용하여 처리함으로써 데이터베이스 클러스터 서버가 기존의 서버에 비해 안정적이면서도 적은 자원을 사용하여 빠른 처리를 할 수 있다. As described above, according to the present invention, when an existing database configuration significantly degrades service processing performance or causes a failure due to an increase in users or a change in a query pattern, on-line reorganization, on-line expansion, and recovery process By using replicated data to process, the database cluster server can be processed faster and with less resources than the existing server.

또한 장애 발생시 서비스의 중단 없이 온-라인 복구가 가능하고, 서버의 부하가 증가할 경우 유휴 노드로의 확장을 통해 시스템의 처리량을 증가시키고, 사용자 응답시간을 최소화함으로써 고성능, 고가용성, 고확장성을 갖게 된다.Also, in case of failure, on-line recovery is possible without interruption of service, and when the load of the server increases, the system can be expanded to an idle node to increase the throughput of the system and minimize user response time, thereby providing high performance, high availability, and high scalability. Will have

도 1은 데이터베이스 클러스터 서버의 구성 환경을 도시한 도면,1 is a diagram illustrating a configuration environment of a database cluster server;

도 2는 본 발명의 일 실시예에 따른 데이터베이스 클러스터 서버의 구성도,2 is a configuration diagram of a database cluster server according to an embodiment of the present invention;

도 3은 도 2에 도시된 시스템의 동작 흐름을 도시한 도면,3 is a flow diagram illustrating the operation of the system shown in FIG. 2;

도 4는 도 2에 도시된 온-라인 재조직 처리기의 구성도,4 is a block diagram of the on-line reorganization processor shown in FIG.

도 5는 도 4에 도시된 온-라인 재조직 처리기의 동작 흐름을 도시한 도면,5 is a view illustrating an operation flow of the on-line reorganization processor shown in FIG. 4;

도 6은 본 발명의 일 실시예에 따른 복제 노드에서의 확장 과정을 도시한 도면,6 is a diagram illustrating an expansion process in a replication node according to an embodiment of the present invention;

도 7은 본 발명의 일 실시예에 따른 병렬 확장 과정을 도시한 도면,7 is a diagram illustrating a parallel expansion process according to an embodiment of the present invention;

도 8은 도 2에 도시된 온-라인 확장 처리기의 동작 흐름을 도시한 도면, 8 is a flowchart illustrating an operation of the on-line expansion processor shown in FIG. 2;

도 9는 도 2에 도시된 회복 처리기의 구성도,9 is a configuration diagram of the recovery processor shown in FIG.

도 10은 도 9에 도시된 회복 처리기의 동작 흐름을 도시한 도면이다.FIG. 10 is a diagram illustrating an operation flow of the recovery processor illustrated in FIG. 9.

Claims (17)

데이터베이스 클러스터 서버 시스템에 있어서,For a database cluster server system: GUI기반의 질의 처리 툴, 클러스터 시스템을 관리하는 관리자 프로그램, 각 노드의 자원을 감시하는 모니터링 툴을 포함하고, 인터페이스 라이브러리를 통해 기본 질의 컴포넌트로 질의문을 전송하는 클라이언트;A client including a GUI-based query processing tool, an administrator program for managing a cluster system, and a monitoring tool for monitoring resources of each node, and transmitting a query to a basic query component through an interface library; 상기 클라이언트로부터 수신되는 상기 질의문을 분석하여 데이터베이스 관리 컴포넌트로 전송하며, 질의 처리 결과를 상기 클라이언트로 제공하는 기본 질의 처리 컴포넌트;A basic query processing component that analyzes the query received from the client and transmits the query to the database management component and provides the query processing result to the client; 상기 질의문의 분석결과에 따라 해당 질의의 연산 순서, 재조직 및 확장 여부, 트랜잭션 자원을 할당 정도를 결정하는 데이터베이스 관리 컴포넌트;A database management component for determining an operation order, reorganization and expansion of a corresponding query, and a degree of allocating transaction resources according to an analysis result of the query statement; 상기 질의문이 접근하는 데이터의 정보를 상기 기본 질의 처리 콤포넌트로 제공하며, 일관성 유지 프로토콜을 기반으로 임의의 시간에 모든 노드의 메타정보를 동일하게 유지되도록 관리하는 전역 메타 관리기;A global meta manager which provides information of data accessed by the query statement to the basic query processing component and manages to maintain the same meta information of all nodes at any time based on a consistency maintaining protocol; 서버의 구동, 중지, 확장, 축소, 설정 변경을 포함하는 서버 운영을 제어하는 중앙제어기; 및 A central controller controlling server operation including starting, stopping, expanding, reducing, and changing settings of the server; And 소정의 데이터를 저장하는 데이터베이스;를 포함함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.And a database storing predetermined data. 제 1항에 있어서, The method of claim 1, 상기 인터페이스 라이브러리는 The interface library ODBC, JDBC의 데이터베이스 통신 프로토콜과 ISAPI의 웹 기반 CGI와 CLI, 윈속의 하부 엔진 전용의 통신 프로토콜을 포함함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.A non-shared database cluster server system including ODBC, JDBC database communication protocols, ISAPI's Web-based CGI and CLI, and Winsock's underlying engine. 제 1항에 있어서, The method of claim 1, 상기 전역 메타 관리기는 The global meta manager 각 노드에 일부 데이터베이스 스키마의 변경이 있을시 일관성 유지 프로토콜을 통해 임의의 시간에 모든 노드의 메타 정보가 동일하도록 관리하는 일관성 유지 구조를 가지며,It has a consistency structure that manages the meta information of all nodes to be the same at any time through the consistency protocol when each node changes some database schema. 클러스터에 포함되는 활성 노드 및 유휴 노드의 정보, 릴레이션의 분할 및 복제 정보, 마스터 및 복제본의 설정 정보, 사용자 정보 등의 질의 처리와 관련된 정보를 관리하며,Manages information related to query processing such as information on active and idle nodes in a cluster, partition and replication information on relations, configuration information on master and replicas, and user information. 온-라인 재조직, 온-라인 확장, 회복 처리와 같은 상기 데이터베이스의 구성이 임시로 변경되어야 하는 특수한 경우 메타 정보를 변경 불가능하게 관리함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.A non-shared structured database cluster server system, characterized in that the meta information is unmodifiably managed in a special case in which the configuration of the database is temporarily changed, such as on-line reorganization, on-line expansion, and recovery processing. 제 1항에 있어서, The method of claim 1, 상기 중앙 제어기는The central controller 메타 정보에 등록이 되어 있는 클러스터 노드 정보를 바탕으로 노드들의 구동, 중지, 확장, 축소, 이동과 같은 시스템 운영과 데이터베이스 구조에 대한 제어권을 관리하며,Based on the cluster node information registered in the meta information, it manages the control of system operation and database structure such as start, stop, expand, shrink and move nodes. 상기 기본 질의 처리 컴포넌트와 상기 데이터베이스 관리 컴포넌트와의 메시지 송수신 처리를 담당하며,In charge of message transmission and reception between the basic query processing component and the database management component, 일반적인 질의 처리를 제외한 상기 데이터베이스의 재구성 요청, 노드의 제어 요청, 클러스터 노드의 추가 및 삭제 요청, 서비스 시작 및 중지 요청에 대한 처리를 위한 인터페이스를 포함함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.A non-shared database cluster server system including an interface for processing a database reconfiguration request, a node control request, a cluster node addition and deletion request, and a service start and stop request except general query processing. 제 1항에 있어서, The method of claim 1, 상기 기본 질의 처리 컴포넌트는The basic query processing component 외부 연결 처리기로부터 질의가 입력되면 질의 처리기에서 질의를 분석하여 상기 전역 메타 관리기로부터 해당 질의가 접근하는 데이터의 정보를 얻어오고, 만일 접근 영역에 포함되는 데이터가 현재 노드에 없으면 내부 네트워크 연결 처리기를 통해 질의를 포워딩 시키고, 질의 처리가 완료되면 다시 원래 질의를 받았던 노드로 결과를 반환하고, 결과를 상기 클라이언트에게 전달하며,When a query is input from the external connection processor, the query processor analyzes the query to obtain the information of the data accessed by the query from the global meta manager, and if the data included in the access area is not present in the current node, the internal network connection processor Forwards the query, returns the result back to the node that originally received the query, and delivers the result to the client when the query is completed, 일반적인 데이터와 질의 처리 로그 외에 클러스터 서버의 처리 로그와 포워딩 로그, 회복 로그, 재조직 로그, 확장 로그를 저장하여 관리하는 저장 관리자를 포함함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.A non-shared database cluster server system including a storage manager that stores and manages processing logs, forwarding logs, recovery logs, reorganization logs, and extended logs of a cluster server in addition to general data and query processing logs. 제 1항에 있어서, The method of claim 1, 상기 데이터베이스 관리 컴포넌트는 The database management component 온-라인 확장 처리기, 회복 처리기 및 온-라인 재조직 처리기로 구성되며,It consists of an on-line expansion processor, a recovery processor, and an on-line reorganization processor. 상기 중앙 제어기와 상기 전역 메타 관리기, 그리고 상기 기본 질의 처리 컴포넌트와 연계하여 상기 데이터베이스의 재구성 및 노드의 회복, 확장 처리 과정을 수행함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.And a reconstruction of the database, a node recovery, and an expansion process in association with the central controller, the global meta manager, and the basic query processing component. 제 6항에 있어서,The method of claim 6, 상기 온-라인 확장 처리기는 The on-line expansion processor 데이터베이스 클러스터에 유휴 노드를 두어, 임의의 노드에 질의가 집중되거나 자원의 한계점에 이르는 문제가 발생하여 실시간 처리가 필요한 경우 유휴 노드를 활성 노드로 포함시켜 데이터를 해당 유휴 노드로 분할하여 이동시키는 과정을 수행하며,If there is an idle node in the database cluster and a query is concentrated on a random node or a problem occurs that reaches a resource limit, real-time processing is required, and the idle node is included as an active node to split and move data to the corresponding idle node. Performing, 데이터베이스 클러스터의 갱신 방식이 지연 갱신 방식을 사용하는 경우에는 마스터 데이터가 없는 복제 노드에서 온-라인 확장을 수행하고, 해당 복제 노드에 새롭게 분할되어 만들어지는 마스터 데이터를 저장하여 데이터 이동을 줄이며,If the update method of the database cluster uses a delayed update method, on-line expansion is performed on a replication node without master data, and data movement is reduced by storing newly created partitioned master data on the corresponding replication node. 데이터베이스 클러스터의 갱신 방식이 즉시 갱신 방식을 사용하는 경우에는 데이터 이동을 병렬로 수행함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.A non-shared database cluster server system characterized in that data movement is performed in parallel when an update method of a database cluster uses an immediate update method. 제 6항에 있어서, The method of claim 6, 상기 회복 처리기는 The recovery processor 시스템 통계 기록기, 오류 감지기, 시스템 회복 처리기, 데이터 회복 처리기, 회복 로그 기록기 및System Statistics Recorder, Error Detector, System Recovery Processor, Data Recovery Processor, Recovery Log Recorder, and 온-라인 재조직 처리기의 릴레이션 생성, 삭제, 이동, 병합, 분할 등의 모듈들과 온-라인 확장 처리기의 유휴 노드로의 확장 모듈을 포함하며,It includes modules for creating, deleting, moving, merging, and splitting relations of the on-line reorganization processor and extension modules to idle nodes of the on-line extension processor. 장애 발생시 단기간 내 복구 가능한 경우와 복구 불가능한 경우로 나누어 온-라인 재조직 또는 온-라인 확장을 사용한 회복 처리를 수행하며,In the event of a failure, recovery can be performed using on-line reorganization or on-line expansion, divided into recoverable and non-recoverable cases within a short period of time. 장애 발생시 장애가 발생하기 전에 복제 노드로 쓰이던 데이터들은 장애 기간동안 마스터 데이터로써 쓰이도록 하며,When a failure occurs, data that was used as a replication node before the failure occurs is used as master data during the failure period. 단기간 오류의 발생시 해당 노드를 다시 복구시킨 후에 장애 기간 동안에 저장된 회복 로그를 반영함으로써 온-라인 상태로 회복 시키고, 장애가 복구 불가능하다고 판단되거나 장애 복구 시간이 기준 시간을 경과하게 되면 유휴 노드를 활성 노드로 포함시킨 후 장애 발생 노드와 동일한 데이터를 복제 노드들로부터 전송 받아 서비스를 제공함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.In the event of a short-term failure, the node is restored to the on-line state by reflecting the recovery log stored during the failure period, and when the failure is determined to be unrecoverable or the failure recovery time passes the reference time, the idle node is moved to the active node A non-shared database cluster server system, comprising: providing a service by receiving the same data as a failed node from a replica node after inclusion. 제 6항에 있어서, The method of claim 6, 상기 온-라인 재조직 처리기는The on-line reorganization processor 자원 관리기, 데이터 처리 관리기, 최적화 처리기, 로그 전송 처리기, 및 데이터 이동 처리기를 포함하며,A resource manager, a data processing manager, an optimization processor, a log transfer processor, and a data movement handler, 상기 전역 메타 관리기, 상기 중앙 제어기와 연동하여 상기 데이터베이스의 재구성을 위한 노드 내에 데이터의 생성, 삭제, 이동, 병합, 그리고 분할 연산을 수행함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.And a non-shared structured database cluster server system in association with the global meta manager and the central controller to generate, delete, move, merge, and divide data in a node for reconstruction of the database. 제 9항에 있어서, The method of claim 9, 상기 자원 관리기는The resource manager 클러스터에 포함되는 각 노드의 자원을 지속적으로 감시하여 온-라인 재조직 여부를 결정하며,On-line reorganization is determined by continuously monitoring the resources of each node in the cluster. 특정 노드의 자원 사용량이 임계치를 넘어설 경우 상기 데이터 처리 관리기로부터 해당 노드의 정보를 얻어 온-라인 재조직 처리 여부를 결정하고 상기 최적화 처리기를 호출함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.The non-shared database cluster server system of claim 1, wherein when the resource usage of a specific node exceeds a threshold, information about the node is obtained from the data processing manager to determine whether to perform on-line reorganization processing and to call the optimization processor. 제 9항에 있어서, The method of claim 9, 상기 데이터 처리 관리기는The data processing manager 질의에 의한 갱신 영역, 접근 노드, 포워딩 빈도, 디스크 접근 빈도 등의 통계 정보를 관리하며,It manages statistical information such as update area, query node, forwarding frequency, disk access frequency by query, 이러한 정보를 바탕으로 상기 자원 관리기로부터 해당 노드의 자원 정보를 얻어 온-라인 재조직 처리 여부를 결정함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.The non-shared structure of the database cluster server system, characterized in that for obtaining the resource information of the node from the resource manager based on this information whether or not on-line reorganization processing. 제 9항에 있어서, The method of claim 9, 상기 최적화 처리기는The optimization processor 온-라인 재조직 처리를 위해 상기 로그 전송 처리기와 상기 데이터 이동 처리기와 함께 릴레이션의 생성, 삭제, 분할, 병합, 이동 등의 기능을 수행하며,It performs functions such as creating, deleting, dividing, merging, and moving relations with the log transfer processor and the data movement processor for on-line reorganization processing. 상기 데이터 이동 처리기와 상기 로그 전송 처리기는 상기 온-라인 재조직을 위해 필요한 연산을 수행하고 데이터의 무결성 유지를 위한 로그 전송을 담당하며,The data movement processor and the log transfer processor are responsible for performing the operations necessary for the on-line reorganization and log transmission for maintaining the integrity of data. 상기 로그 전송 처리기는 재조직 과정 도중에 갱신 질의가 발생하는 경우 해당 질의의 갱신 지역과 현재까지 전송된 데이터 영역을 비교하여 전송 후 갱신된 영역을 골라내어 대상 노드로 해당 데이터를 전송함을 특징으로 하는 비공유 구조의 데이터베이스 클러스터 서버 시스템.When the update query occurs during the reorganization process, the log transfer processor compares the update area of the query with the data area transmitted so far, selects the updated area after transmission, and transmits the corresponding data to the target node. Database cluster server system in structure. 원본 노드인 제1 노드(N1)에 원본 데이터, 복제 노드인 제 2노드(N2)에 원본 데이터의 복제 데이터를 두는 제 1단계:The first step of placing the original data in the first node (N1), the source node, and the duplicate data of the original data in the second node (N2), the replication node: 상기 제 2노드에서 Ta1'으로부터 Ta2로 확장 연산을 수행하는 제 2단계; 그리고A second step of performing an expansion operation from Ta1 'to Ta2 in the second node; And 상기 제 2노드에서 상기Ta1'의 분할된 데이터인 상기Ta2를 해당 노드의 원본 데이터로 하여 유휴 노드인 제 3노드의 Ta2'로 동일 복제본을 전송하는 제 3단계;를 포함함을 특징으로 하는 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법.And transmitting, by the second node, the same copy to Ta2 'of the third node, which is an idle node, using Ta2, which is the divided data of Ta1', as the original data of the corresponding node. How to scale up a cluster server system online. 제 13항에 있어서,The method of claim 13, 제 1단계의 복제 노드는 마스터 데이터를 포함하지 않는 노드임을 특징으로 하는 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법.The replica node of the first step is a node that does not contain master data. 제 13항 또는 제 14항에 있어서,The method according to claim 13 or 14, 온-라인 확장이 재발생되는 경우에If on-line expansion reoccurs 상기 온-라인 확장 처리기는 유휴 노드인 제 4노드, 제 5노드를 선정하여 분할된 복제본인 상기 제 2노드의 Ta1'을 각각 상기 제 4노드의 원본 노드, 상기 제 5노드의 복제 노드로 전송하는 제 4단계;를 더 포함함을 특징으로 하는 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법.The on-line expansion processor selects the fourth node and the fifth node as idle nodes, and transmits Ta1 'of the second node, which is a divided copy, to the source node of the fourth node and the replica node of the fifth node, respectively. The fourth step of the; further comprising the online expansion method of the database cluster server system. 데이터베이스 클러스터 서버 시스템의 온라인 확장에 있어서,In online expansion of a database cluster server system, 원본 노드인 제1 노드(N1)에 원본 데이터, 복제 노드인 제 2노드(N2)에 원본 데이터의 복제 데이터를 두는 제 1단계;A first step of placing duplicate data of the original data in the first node N1, which is a source node, and a second node N2, which is a duplicate node; 상기 제 1노드의 소정의 데이터를 확장 노드인 제 3노드로 전송하며, 상기 제 2노드의 소정의 데이터를(여기서 제 2노드의 소정의 데이터는 상기 제 1노드의 소정의 데이터와 다른 부분의 데이터) 확장 노드인 제 4노드로 전송하는 제 2단계; 그리고 상기 제 2단계에서 데이터 전송이 완료되면 상기 각 확장 노드에서 기 전송된 서로 다른 부분의 데이터를 상기 타 확장 노드로 전송하여 완전한 형태의 데이터를 생성하는 제 3단계;를 포함함을 특징으로 하는 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법.The predetermined data of the first node is transmitted to the third node, which is an expansion node, and the predetermined data of the second node (where the predetermined data of the second node is different from the predetermined data of the first node). Data) transmitting to a fourth node which is an expansion node; And a third step of, when data transmission is completed in the second step, transmitting data of different parts previously transmitted from each expansion node to the other expansion node to generate a complete data. How to scale up a database cluster server system online. 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법에 있어서,In the online expansion method of the database cluster server system, 온-라인 확장 처리기(810)는 확장 이벤트를 수신하면서 구동이 되며, 온-라인 재조직 처리기(830)의 자원 관리기(831)와 데이터 처리 관리기(832) 및 최적화 처리기(833)와 연동하여 확장의 대상이 되는 유휴 노드를 검색하여 새로운 전역 메타 정보를 생성하는 단계(910단계);The on-line extension processor 810 is driven while receiving an extension event, and works in conjunction with the resource manager 831, the data processing manager 832, and the optimization processor 833 of the on-line reorganization processor 830. Generating new global meta information by searching for a target idle node (step 910); 온-라인 확장 처리기(810)는 데이터베이스(900)의 스키마(Schema)를 변경하지 못하게 메타 정보에 로크를 거는 단계(920단계);The on-line extension processor 810 locks meta information to prevent the schema of the database 900 from being changed (step 920); 온-라인 확장 처리기(810)는 데이터 베이스 클러스터에 포함되는 모든 노드로 온-라인 확장 이벤트와 새로운 메타 정보를 전송하는 단계(930, 935단계);The on-line extension processor 810 transmits an on-line extension event and new meta information to all nodes included in the database cluster (steps 930 and 935); 대상 노드의 메타 정보를 변경하지 못하게 하는 단계(940단계);Preventing change of meta information of the target node (step 940); 메타 정보를 통해 확장 대상임을 확인한 노드들은 수신자와 삽입자 프로세스를 실행하는 단계(945단계);The nodes which have been identified to be extended through the meta information may include executing a receiver and an inserter process (step 945); 대상 노드는 확장 준비를 한 후에 대기 메시지를 원본 노드에 전송하는 단계(950단계);After the target node prepares for expansion, transmitting a standby message to the source node (step 950); 원본 노드는 온-라인 확장 준비가 완료된 시점부터 데이터와 로그 전송을 시작하는 단계(960, 965단계);Starting source and log transmissions from the time point at which preparation for on-line expansion is completed (steps 960 and 965); 확장 노드는 데이터의 반영 후 로그를 다시 반영하여 데이터의 무결성을 유지하는 단계(970단계);In step 970, the expansion node maintains the integrity of the data by reflecting the log again after the data is reflected; 데이터의 이동이 종료되면 원본 노드로 데이터 전송 완료 메시지를 전송하는 단계(975단계);Transmitting a data transmission completion message to the original node when the movement of data is completed (step 975); 원본 노드는 대상노드로 질의 입력 종료를 전송하는 단계(980단계);The source node sends a query input termination to the target node (step 980); 원본노드와 대상노드는 기존에 수행 중인 트랜잭션이 종료될 때까지 기다리는 단계(985, 987단계);Waiting for the source node and the target node to terminate the existing transaction (steps 985 and 987); 원본노드와 대상노드에 모든 연산의 종료를 전송하는 단계(985, 987단계); 그리고 원본노드는 확장 종료 메세지를 온-라인 확장 처리기(810)에 전송하는 단계(993단계);를 포함함을 특징으로 하는 데이터베이스 클러스터 서버 시스템의 온라인 확장 방법.Transmitting the end of all operations to the source node and the target node (steps 985 and 987); And sending the extension end message to the on-line extension processor (810) (step 993).
KR10-2003-0063344A 2003-09-09 2003-09-09 Shared-nothing database cluster server system and On-line scaling method KR100492167B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2003-0063344A KR100492167B1 (en) 2003-09-09 2003-09-09 Shared-nothing database cluster server system and On-line scaling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0063344A KR100492167B1 (en) 2003-09-09 2003-09-09 Shared-nothing database cluster server system and On-line scaling method

Publications (2)

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

Family

ID=37384226

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0063344A KR100492167B1 (en) 2003-09-09 2003-09-09 Shared-nothing database cluster server system and On-line scaling method

Country Status (1)

Country Link
KR (1) KR100492167B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100622130B1 (en) * 2004-12-21 2006-09-19 한국전자통신연구원 Crash recovery system and method for a distributed file server using object based storage
KR100792049B1 (en) * 2005-06-03 2008-01-07 엘지엔시스(주) Operating method of an application that offers a high quality user interface in the slow speed communication environment and recording media where the application is saved
KR100707875B1 (en) * 2006-09-22 2007-04-16 주식회사 이루기술 Non-data base dependent general-purpose real time control system methode
KR101864509B1 (en) * 2016-11-30 2018-06-04 영남대학교 산학협력단 Method and system for analyzing bigdata
CN115348185B (en) * 2022-08-19 2023-12-05 招银云创信息技术有限公司 Control method and control device of distributed query engine

Also Published As

Publication number Publication date
KR20050026306A (en) 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 (en) Data access method, device, equipment and storage medium
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
KR20140122240A (en) Managing partitions in a scalable environment
CN107623703B (en) Synchronization method, device and system for Global Transaction Identifier (GTID)
CN113010496B (en) Data migration method, device, equipment and storage medium
CN112199427A (en) Data processing method and system
CN104980307A (en) Processing method of data access requests, processing device of data access requests and database server
CN110807039A (en) Data consistency maintenance system and method in cloud computing environment
CN112492022A (en) Cluster, method, system and storage medium for improving database availability
KR100492167B1 (en) Shared-nothing database cluster server system and On-line scaling method
WO2022135471A1 (en) Multi-version concurrency control and log clearing method, node, device and medium
CN115510024A (en) Method and system for realizing high availability of large-scale parallel database
JP2012022379A (en) Distributed transaction processing system, device, method and program
CN117149885B (en) Read-write separation implementation method based on database master node forwarding
US11947555B1 (en) Intelligent query routing across shards of scalable database tables
WO2020207078A1 (en) Data processing method and device, and distributed database system
CN117453813A (en) Cluster method supporting heterogeneous database system

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