KR101394475B1 - 데이터베이스 복구 속도 조절 방법 및 장치 - Google Patents

데이터베이스 복구 속도 조절 방법 및 장치 Download PDF

Info

Publication number
KR101394475B1
KR101394475B1 KR1020120076442A KR20120076442A KR101394475B1 KR 101394475 B1 KR101394475 B1 KR 101394475B1 KR 1020120076442 A KR1020120076442 A KR 1020120076442A KR 20120076442 A KR20120076442 A KR 20120076442A KR 101394475 B1 KR101394475 B1 KR 101394475B1
Authority
KR
South Korea
Prior art keywords
value
database
resource
recovery
deviation
Prior art date
Application number
KR1020120076442A
Other languages
English (en)
Other versions
KR20140009766A (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 KR1020120076442A priority Critical patent/KR101394475B1/ko
Publication of KR20140009766A publication Critical patent/KR20140009766A/ko
Application granted granted Critical
Publication of KR101394475B1 publication Critical patent/KR101394475B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 데이터베이스 복구 속도 조절 방법에 관한 것으로, 장애가 발생하였던 장치에 의해 수행되는 각 단계는 제1 시점에서 데이터베이스의 복구에 사용되고 있는 리소스를 측정하는 단계, 상기 측정된 시스템 리스소 값 및 미리 설정된 목표값에 기초하여 속도 조절 수치를 산출하는 단계 및 상기 산출된 속도 조절 수치에 기초하여 상기 데이터베이스의 복구 속도를 조절하는 단계를 포함한다.

Description

데이터베이스 복구 속도 조절 방법 및 장치{METHOD AND SERVER FOR CONTROLLING SPEED OF DATABASE RECOVERY}
본 발명은 데이터베이스를 갖는 복수의 장치를 포함하는 시스템에서 특정 장치의 장애 복구에 따라 데이터베이스를 복구하기 위한 보다 개선된 방법 및 장치에 관한 것으로, 보다 상세하게는 장치의 리소스 값에 기초하여 데이터베이스 본연의 기능을 수행하는 데에 지장이 없으면서도 동시에 데이터베이스의 복구도 가능하도록 하는 최적화된 속도를 산출하고 이에 기초하여 데이터베이스의 복구 속도를 조절하는, 데이터베이스 복구 속도 조절 방법 및 장치에 관한 것이다.
최근, 정보 통신의 발달로 다양한 종류의 전산화된 데이터 작업은 서버의 기능을 수행하는 장치와의 연결을 통해 수행되며 관리되고 있다. 이러한 데이터 작업은 병원, 약국, 은행 등에서의 데이터 작업 및 웹서버를 통한 웹 서비스의 제공에서부터 최근 각광받는 클라우드 컴퓨팅 서비스에 이르기까지 다양한 종류에서 사용될 수 있다.
종래에는 전산화된 데이터 작업을 지원하기 위해 로컬 지역 안에서 소정의 데이터를 포함하는 하나의 데이터베이스 서버를 갖고, 하나 이상의 클라이언트 가 상기 데이터베이스 서버에 네트워크로 연결되어 상기 데이터베이스 서버에 저장된 데이터를 이용하여 소정의 데이터 작업을 수행하는 형태로 구성되었으나, 이 경우 데이터베이스 서버의 장애 발생시 클라이언트 단말기에서는 데이터베이스 서버로의 접속을 통한 데이터 작업을 수행할 수 없다는 문제점이 발생하였다.
따라서, 상기 문제점을 해결하기 위해 최근에는 데이터베이스를 복수 개 구비하고 데이터의 일부를 다른 데이터베이스에 백업(backup)하여 데이터베이스 중 일부에 장애가 발생할지라도 동일한 데이터를 갖는 다른 데이터베이스를 통하여 클라이언트에 데이터 작업의 수행이 이루어질 수 있도록 서버 시스템을 구성하게 되었다.
한편, 정보 통신의 발달에 따른 데이터 트래픽(traffic)의 수 증가로 인하여 하나의 서버가 모든 클라이언트들의 요청을 수신하고, 이에 대한 처리 결과를 제공하는 것은 그 효율성, 성능, 안정성 그리고 속도 면에 있어 불리하므로 이러한 점을 해결하기 위해 서버의 기능을 수행하는 복수개의 장치로 이루어진 서버군(群)을 구성하게 되었다.
도 1은 앞서 설명한 두 가지의 서버 구성 방안, 즉 데이터의 일부가 다른 데이터베이스에 백업되고, 서버 시스템이 복수개의 서버군으로 이루어진 서버 시스템의 일 예를 도시한 도면이다.
도 1에 도시한 바와 같이, 서버 시스템 내에는 데이터베이스를 포함하는 복수개의 서버가 링 네트워크 방식으로 연결되어 있으며, 각각의 서버(예를 들어, 제1 서버(10)) 내에 존재하는 데이터베이스는 그 데이터의 적어도 일부가 다른 서버(예를 들어, 제2 서버(20) 또는 제5 서버(50) 중 어느 하나 이상) 내에 존재하는 데이터베이스에 백업되어 있으므로, 어느 한 서버 내의 데이터베이스 내에 데이터가 저장되는 경우 해당 데이터를 백업하는 다른 서버 내의 데이터베이스에도 저장하게 된다. 또한, 만일 제1 서버(10)에서 장애가 발생한다 할지라도 클라이언트는 백업된 다른 데이터베이스를 갖는 서버(예를 들어, 제2 서버(20) 또는 제5 서버(50) 등)를 통해 그 작업을 장애 없이 계속하여 수행할 수 있다. 비록 도 1에는 링 네트워크 방식으로 각각의 서버가 배치되었으나 본 발명에서의 시스템 구성은 방식은 예시적인 링 네트워크 방식에 한정되지 않는다.
도 1의 예와 같은 시스템의 경우 일부 서버의 장애 발생시에도 데이터 작업을 계속할 수 있다는 장점을 가지나, 일부 서버의 장애시에 계속하여 수행된 데이터 작업에 따라 저장될 데이터들이 존재하는 경우 이는 장애가 발생하지 않은 서버 내의 데이터베이스에만 저장되므로 장애가 복구된 이후에 장애가 발생했던 서버 내의 데이터베이스는 저장이 누락된 데이터들에 대한 복구 작업을 수행하여 원본, 그리고 백업된 데이터의 동기화를 유지하는 것이 필수적이다.
이러한 데이터베이스 동기화 복구 방법으로서 대한민국특허공개공보 제2002-0004270호 "이중화된 독립적인 두 시스템에서의 장애시 데이터베이스 동기화 복구 방법 및 시스템(엘지정보통신주식회사)"(문헌 1)에는 복구시 데이터베이스 전체를 백업하지 않고 체인지 리스트 테이블에 저장된 변경된 데이터만 장애 시스템에 반영하는 방식으로 복구 작업을 수행하는 방법 및 시스템이 개시된다.
그러나, 이러한 종래의 데이터베이스 복구 방법에 의하더라도 장애가 발생했던 데이터베이스를 갖는 서버는 데이터베이스 복구에 CPU의 모든 리소스를 사용하므로 정작 클라이언트의 요청에 적절히 대응하는 등 서버 본연의 업무를 수행할 수 없게 되어 장애가 해소되었음에도 불구하고 여전히 시스템의 효율성이 떨어지고, 이에 따라 다른 서버에 부하가 집중되어 추가적인 장애를 불러일으킬 수 있다는 문제점이 존재한다.
따라서, 서버의 장애 해소시 데이터베이스의 복구 작업의 속도가 최적화되도록 조절함으로써 데이터베이스의 복구 작업을 수행하면서도 동시에 성능 저하 없이 클라이언트의 데이터 작업 요청을 수행하도록 하여 전체 시스템의 효율성을 향상시키기 위한 방법이 절실히 요구되고 있는 실정이다.
[문헌 1] 대한민국특허공개공보 제2002-0004270호 이중화된 독립적인 두 시스템에서의 장애시 데이터베이스 동기화 복구 방법 및 시스템(엘지정보통신주식회사) 2002.01.16
본 발명의 목적은 장애가 발생했던 서버 내의 데이터베이스에서 데이터베이스 복구 작업의 속도의 적절한 조절이 가능하며, 이를 통해 클라이언트의 데이터 작업 요청에 따른 데이터베이스 본연의 작업수행에 있어 성능 저하가 발생하지 않아 전체 시스템의 효율을 향상시키고 추가적인 장애를 막을 수 있는 데이터베이스 복구 속도 조절 방법 및 장치를 제공함에 있다.
또한, 본 발명의 다른 목적은 장애가 발생하였던 서버 내의 데이터베이스는 데이터베이스 복구 작업 도중에도 여유분의 리소스를 이용하여 클라이언트의 데이터 작업 요청에 따른 데이터베이스 본연의 작업을 성능 저하 없이 수행하여 장애로부터 복구된 시점 이후의 데이터 동기화를 유지하므로 데이터베이스의 복구 작업 후 별도의 동기화 작업이 필요하지 않은 데이터베이스 복구 속도 조절 방법 및 장치를 제공함에 있다.
상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명 특유의 효과를 달성하기 위한, 본 발명의 특징적인 구성은 하기와 같다.
본 발명의 일 측면에 따르면, 데이터베이스 복구 속도 조절 방법에 있어서, 장애가 발생하였던 장치에 의해 수행되는 각 단계가, 제1 시점에서 데이터베이스의 복구에 사용되고 있는 리소스를 측정하는 단계, 상기 측정된 리스소 값 및 미리 설정된 목표값에 기초하여 속도 조절 수치를 산출하는 단계 및 상기 산출된 속도 조절 수치에 기초하여 상기 데이터베이스의 복구 속도를 조절하는 단계를 포함한다.
본 발명의 다른 측면에 따르면, 데이터베이스 복구 속도 조절 장치에 있어서, 제1 시점에서 데이터베이스의 복구에 사용되고 있는 리소스를 측정하는 리소스 측정부, 상기 측정된 리스소 값 및 미리 설정된 목표값에 기초하여 속도 조절 수치를 산출하는 PID 컨트롤러 및 상기 데이터베이스의 복구를 수행하는 DB 복구 제어부를 포함하고, 상기 DB 복구 제어부는 상기 산출된 속도 조절 수치에 기초하여 상기 데이터베이스의 복구 속도를 조절한다.
상술한 바와 같이, 본 발명에 따르면 장애가 발생했던 서버 내의 데이터베이스에서 데이터베이스 복구 작업의 속도의 적절한 조절이 가능하며, 이를 통해 클라이언트의 데이터 작업 요청에 따른 데이터베이스 본연의 작업수행에 있어 성능 저하가 발생하지 않아 전체 시스템의 효율을 향상시키고 추가적인 장애를 막을 수 있다는 장점이 있다.
또한, 본 발명에 따르면 장애가 발생하였던 서버 내의 데이터베이스는 데이터베이스 복구 작업 도중에도 여유분의 리소스를 이용하여 클라이언트의 데이터 작업 요청에 따른 데이터베이스 본연의 작업을 성능 저하 없이 수행하여 장애로부터 복구된 시점 이후의 데이터 동기화를 유지하므로 데이터베이스의 복구 작업 후 별도의 동기화 작업이 필요하지 않다는 장점이 있다.
도 1은 데이터의 일부가 다른 데이터베이스에 백업되고 서버 시스템이 복수개의 서버군으로 이루어진 서버 시스템의 일 예를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 데이터베이스 복구 속도 조절 기능을 갖는 장치를 복수 개 갖는 시스템을 포함하는 전체 구성을 나타내는 도면이다.
도 3a 내지 3c는 본 발명의 일 실시예에 따라 시스템에서 수행되는 데이터베이스 복구 절차를 도시한 블록도들이다.
도 4는 본 발명의 일 실시예에 따른 데이터베이스 복구 속도 조절 기능을 갖는 시스템 내에 포함된 개별 장치의 세부 구성을 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 데이터베이스 복구 속도 조절 방법을 도시한 흐름도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예에는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 사상 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 사상 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는 적절하게 설명된다면 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
본 발명은 각자 데이터베이스를 갖는 복수 개의 장치를 포함하는 시스템에서 장애가 발생한 장치 내의 데이터베이스를 복구하기 위해 장치의 현재 리소스 값을 구하고, 목표 리소스 값과의 비교를 통해 데이터베이스 복구 속도를 최적화하여 조절하는 개선된 데이터베이스 복구 방법 및 장치를 제안한다. 특히, 종래의 데이터베이스 복구 방법에 의하면 데이터베이스 복구에 장치의 모든 리소스가 사용되므로 복구 작업 도중 다른 작업을 전혀 수행할 수 없어 장치 전체의 효율 감소 및 부하 집중에 따른 추가 장애가 발생할 수 있다는 문제점을 해결하기 위해 본 발명의 실시예에서는 데이터베이스 복구 작업에 할당될 수 있는 목표 리소스 값을 설정한다. 그런 다음, 측정된 장치의 현재 리소스 값과 비교하여 PID 컨트롤러의 식에 대입함으로써 산출되는 결과값에 기초하여 데이터베이스 복구 속도를 적절히 조절할 수 있다.
이하, 본 발명의 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
전체 시스템 구성
도 2는 본 발명의 일 실시예에 따른 데이터베이스 복구 속도 조절 기능을 갖는 장치를 복수 개 갖는 시스템을 포함하는 전체 구성을 나타내는 도면이다.
하나 이상의 클라이언트(300)로부터의 통신 네트워크(200)를 통한 데이터 작업 요청에 따라 시스템(100)은 내부의 하나 이상의 장치를 통해 그 내부의 데이터베이스로 요청된 데이터 작업을 수행한다. 데이터 작업의 종류로서는 특정 데이터의 삽입, 변경, 삭제 또는 특정 조건을 만족하는 데이터의 추출 등을 포함할 수 있으나 이에 한정되는 것은 아니다.
본 발명의 일 실시예에 따른 시스템(100)은 복수개의 물리적인 장치를 포함하고 있고, 시스템(100) 내의 각 장치는 데이터베이스를 포함하고 있으며, 각 데이터베이스 내의 데이터 중 적어도 일부는 다른 장치 내의 데이터베이스에 백업되어 저장되어 있다. 시스템(100)은 복수개의 장치를 주기적으로 또는 실시간으로 관리하여 장애 발생 여부를 파악한다. 만일 복수 개의 장치 중 일부에 장애가 발생한 경우, 해당 장치의 장애 발생 시점을 기록하고 해당 장치가 정상 작동되는지 여부를 파악하여 정상 작동이 시작된 시점 역시 기록하여 둔다. 이렇게 기록된 장애 발생 시점부터 정상 작동이 시작된 시점까지 발생한 데이터들은 장애가 발생하였던 장치 내의 데이터베이스에 저장되지 않은 데이터에 해당하므로, 장애가 발생하지 않았던 다른 장치들의 데이터베이스에 백업되어 저장되었던 데이터들 중에서 해당 시점에 대한 데이터를 추출하여 장애가 발생하였던 장치 내의 데이터베이스에 저장하는 방식으로 특정 장치의 장애에 따라 데이터베이스 내의 일부 데이터가 동기화되지 못하였던 문제를 해결하며, 이를 데이터베이스 복구라 한다. 데이터베이스 복구시 장치의 미리 설정된 리소스 값인 목표값과 데이터베이스 장애 복구에 현재 사용되는 리소스 값을 대비하여 데이터베이스 복구 속도를 적절히 조절한다. 시스템(100) 내에 포함되는 각 장치의 상세한 구성, 그리고 각 구성요소의 기능 및 역할에 대해서는 상세히 후술하도록 한다.
한편, 본 발명의 일 실시예에 따른 통신 네트워크(200)는 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 단거리 통신망(PAN; Personal Area Network), 근거리 통신망(LAN: Local Area Network), 도시권 통신망(MAN; Metropolitan Area Network), 광역 통신망(WAN; Wide Area Network) 등 다양한 통신망 중 어느 하나 이상을 조합하여 구성될 수 있다. 또한, 상기 통신 네트워크(200)는 공지의 월드와이드웹(WWW; World Wide Web)일 수 있으며, 적외선(Infrared Data Association; IrDA) 또는 블루투스(Bluetooth)와 같이 단거리 통신에 이용되는 무선전송기술을 이용할 수도 있으나 이에 한정되는 것은 아니다.
한편, 본 발명의 일 실시예에 따른 클라이언트(300)는 통신 네트워크(200)를 통하여 시스템(100)과 통신하기 위한 입출력 기능을 포함하며 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 디지털 기기라면 모두 포함하는 광의의 개념이며, 클라이언트(300)의 종류로서 데스크톱 컴퓨터, 노트북 컴퓨터, 워크스테이션, 팜톱(palmtop) 컴퓨터, 개인 휴대 정보 단말기(personal digital assistant; PDA), 웹 패드 뿐만 아니라 휴대폰 등을 들 수 있으나 반드시 나열된 기기에 한정되는 것은 아니다. 또한, 본 발명에서 클라이언트(300)는 독자적으로 시스템(100)과 통신하는 각각의 기기를 지칭하는 단수의 개념으로 사용될 수도 있고, 독자적으로 시스템(100)과 통신하는 각각의 기기를 전부 포함한 집합적인 개념으로 사용될 수도 있다.
한편, 도 2에는 도시되지 않았으나 전체 구성은 시스템(100) 내에 또는 독립적인 구성요소로서 클라이언트의 데이터 작업 요청에 따른 데이터가 시스템(100) 내에 포함된 복수개의 장치 중 어느 장치 내에 있는 데이터베이스에 저장되고 어느 장치 내에 있는 데이터베이스에 백업되는지 여부를 결정하고, 클라이언트의 데이터 작업 요청을 해당하는 장치로 전송하는 분배기(locator)를 더 포함할 수 있다. 상기 분배기에 의한 결정은 데이터 작업을 요청하는 클라이언트의 특성, 또는 요청되는 데이터 자체의 특성 등에 따라 미리 결정된 분배 로직에 의해 수행될 수 있으며, 상기 분배 로직의 일 예로서 IP 주소 등의 클라이언트의 특성에 기초하여 특정 값으로 변환 또는 변형(예를 들어, 해시 값의 이용)한 분배 테이블을 이용하는 방식 등을 들 수 있으나 반드시 이에 한정되는 것은 아니고, 동일 또는 유사한 기능을 갖는 다양한 분배 방식이 사용될 수 있음은 자명하다.
이하, 도 3a 내지 도 3e를 참조하여 상기 시스템에서 본 발명의 실시예에 따른 데이터베이스 복구 절차를 설명한다.
데이터데이스 복구 절차
도 3a는 시스템(100) 내의 어떠한 서버에도 장애가 발생하지 않은 경우 클라이언트로부터의 요청을 수행하는 과정을 나타낸다. 도 3a에 따르면, 시스템(100) 내에는 5개의 장치(110, 120, 130, 140, 150)가 링 네트워크 방식으로 배치되어 있으며, 다수의 클라이언트(310, 320, 330, 340, 350)로부터의 데이터 작업 요청을 미리 할당된 장치에서 수행한다. 예를 들어, 클라이언트(310)로부터의 데이터 작업 요청은 제1장치(110)가 수행하고, 클라이언트(320)로부터의 데이터 작업 요청은 제2장치 (120)가 수행하게 된다. 또한, 각 장치는 클라이언트부터의 데이터 작업 요청에 따라 저장하는 데이터를 미리 지정된 다른 장치 내의 데이터베이스에 백업한다. 도 3a에 따르면, 제1장치(110)는 클라이언트(310)로부터의 요청에 따라 저장하는 데이터를 미리 지정된 다른 장치(120, 150) 내의 데이터베이스에도 백업하게 된다. 클라이언트에 대응하는 장치의 할당 및 특정 장치에 저장하는 데이터를 백업하는 다른 장치의 지정 등은 전술한 분배기(locator) 등에 의해 수행될 수 있다.
도 3b는 제1장치(110)에 장애가 발생한 경우에 클라이언트(310)로부터의 요청을 수행하는 과정을 나타낸다. 도 3b에 따르면, 미리 지정된 방식에 의해, 장애가 발생한 서버(110) 대신에 다른 장치(예컨대 제5장치(150))가 클라이언트(310)로부터의 데이터 작업 요청을 수행하게 되고, 데이터가 저장되는 경우에 데이터의 백업 역시 미리 할당된 다른 장치들(120, 140)에 의해 수행된다.
도 3c는 제1장치(110)의 장애가 복구된 시점 이후에 클라이언트의 요청 및 데이터베이스 복구를 수행하는 과정을 나타낸다. 도 3c에 따르면, 제1장치(110)의 장애가 복구된 시점에 제1장치(110)는 장애 복구 시간을 인지하여 기록하고, 내부 데이터베이스의 복구를 위해 제1장치(110)에 장애가 발생하였던 기간 동안 제1장치(110)를 대신하여 클라이언트(310)로부터 요청된 데이터를 저장한 제5장치 (150) 및/또는 해당 데이터를 백업한 장치들(120, 140)로부터 장애 발생 시점에서 장애 복구 시점까지 저장된 데이터를 요청한다. 요청에 따라 적어도 하나의 해당하는 장치(도 3c의 경우 제5장치(150))는 제1장치(110)에 장애가 발생하였던 시간 동안 제5장치(150)에 저장된 데이터를 장애가 복구된 제1장치(110)로 전달하며, 장애가 복구된 제1장치(110)는 전달받은 데이터를 내부 데이터베이스에 저장하는 방식으로 데이터베이스 복구를 수행한다. 이러한 데이터베이스 복구시 제1장치(110)는 계속하여 클라이언트(310)로부터의 데이터 요청 처리 및 다른 작업들을 수행하여야 하므로 데이터베이스 복구를 수행하면서도 클라이언트(310)로부터의 데이터 요청 처리 및 다른 작업들의 수행에 지장이 없도록 이하 도 4에서 상술하는 장치의 세부 구성들에 의해 데이터베이스 복구 속도를 제어하게 된다.
이하, 도 4를 참조하여 본 발명의 실시예에 따른 복구 속도 조절 기능을 수행하는, 시스템(100)에 포함되는 장치의 세부 구성들을 설명한다.
장치의 상세 구성
도 4는 본 발명의 일 실시예에 따른 데이터베이스 복구 속도 조절 장치의 세부 구성을 나타내는 도면이다. 도 4를 참조하면, 본 발명의 일 실시예에 따른 데이터베이스 복구 속도 조절 장치는 장애 인식 처리부(110), 리소스 측정부(120), 컨트롤러(130), 복구 제어부(140) 및 데이터베이스(150)를 포함한다.
먼저 본 발명의 일 실시예에 따른 장애 인식 처리부(110)는 장치의 장애 발생 여부 및 장애의 복구 완료 여부를 파악하는 기능을 수행한다. 장치 내의 장애 인식 처리부(110)로부터의 실시간, 또는 주기적인 요청에 따른 다른 장치들 또는 분배기로부터의 통지, 또는 복수개의 다른 장치들 또는 분배기로부터의 자발적인 실시간 또는 주기적인 통지에 기초해서 장애 인식 처리부(110)는 해당 장치에 장애가 발생하였는지 여부를 파악할 수 있다. 장애의 예로서는 해당 장치가 시스템(100) 내에 포함되는 다른 장치들과의 연결이 끊어지는 경우 또는 해당 장치의 동작 정지 등을 들 수 있으나 반드시 이에 한정되는 것은 아니다. 만일 해당 장치에 장애가 발생한 것을 파악한 경우, 장애 인식 처리부(110)는 추후 정상화된 이후의 장치 내부의 데이터베이스 복구에 대비하여 장애 발생 시점의 시간 등 필요한 정보를 저장해둘 수 있다. 한편, 장애가 발생한 장치는 정상적인 작동을 위해 재부팅, 재시작 등 다양한 처리 방안이 적용될 수 있으며 그 구체적인 절차 또는 방법은 이미 공지되어 있으므로 별도의 부가적인 설명은 생략하도록 한다.
한편, 장애가 발생한 장치 내의 데이터베이스는 데이터 작업을 수행할 수 없으므로 클라이언트(300)로부터의 요청에 따른 데이터 작업은 장애가 발생한 장치가 아닌, 상기 분배기에 의해 미리 결정된 시스템 내의 다른 장치에서 처리하고, 해당 장치 내의 데이터베이스에 저장되게 된다. 또한, 해당 데이터의 백업 역시 미리 결정된 다른 장치 내의 데이터베이스에 저장될 수 있다.
이후 장애가 발생한 장치가 복구되어 정상 작동이 시작된 경우, 전술한 바와 같이 장애 인식 처리부(110)로부터의 또는 다른 장치들이나 분배기로부터의 통신에 의해 장애 인식 처리부(110)는 해당 장치가 정상 작동할 수 있는 상태가 되었다는 것을 파악할 수 있다. 이때, 장애가 발생한 시점부터 정상 작동할 수 있는 상태가 된 것을 파악한 시점까지는 장치 내부의 데이터베이스에 데이터 동기화가 되어 있지 않으므로 해당 기간 동안에 발생한 데이터 작업 내용이 데이터베이스 복구 작업의 대상이 된다. 복구 작업으로서, 장애 인식 처리부(110)는 장치에 장애가 발생하였던 장애 복구 시점을 인식하여 저장하고, 후술할 데이터베이스 복구 제어부(140)에 의해 장애 기간 동안 해당 장치를 대신하여 클라이언트로부터의 데이터 작업 요청을 수행하여 데이터를 저장한 다른 장치 내의 데이터베이스로부터 장애가 발생하였던 기간에 해당하는 데이터를 추출하여 장애가 발생하였던 장치 내의 데이터베이스에 저장하는 방식으로 데이터베이스를 복구하여 데이터 동기화를 유지할 수 있으며, 데이터베이스 복구 속도는 후술하는 리소스 측정부(120), PID 컨트롤러(130) 및 데이터베이스 복구 제어부(140)의 기능에 의해 미리 설정된, 장치의 리소스 값을 유지하도록 적절하게 조절될 수 있다. 따라서, 장애가 발생하였던 장치는 데이터베이스의 복구 작업이 수행되면서도 여유분의 리소스를 이용하여 성능 저하 없이 클라이언트로부터의 데이터 작업 요청을 수행할 수 있으므로 효율 감소 및 부하의 집중으로 인한 장치의 추가적인 장애 발생을 피할 수 있다. 여기서, 미리 설정된 장치의 리소스 값은 사용자에 의해 설정되거나 또는 장치의 성능에 따라 차등적으로 결정되거나 또는 현재 업무 로드에 따라 유연하게 설정될 수도 있으며, 기본적으로 데이터베이스 복구 작업을 수행하면서도 장치의 성능 저하 없이 클라이언트의 요청을 수행할 수 있을 정도를 기준으로 그 값이 설정될 수 있다. 리소스의 예로서는 CPU 리소스, 메모리 리소스, I/O 리소스 등을 들 수 있으며 리소스 값의 구체적인 일 예로서 데이터베이스 복구 작업에 이용되는 CPU 점유율이 50%를 넘지 않도록 설정할 수 있다.
다음으로, 본 발명의 일 실시예에 따른 리소스 측정부(120)는 현재 데이터베이스 복구 작업에 이용되는 장치의 리소스 값을 측정하여 PID 컨트롤러(130)에 제공한다. 전술한 바와 같이 리소스의 예로서는 CPU 리소스, 메모리 리소스, I/O 리소스 등을 들 수 있으며 각 프로세스에 대한 리소스를 측정하는 구체적인 방법은 공지기술을 이용하여 적용될 수 있다.
본 발명의 일 실시예에 따른 PID 컨트롤러(130)에서는 리소스 측정부(120)에서 제공받은, 현재 데이터베이스 복구 작업에 이용되는 장치의 리소스 값 및 미리 설정된 리소스 값(목표값)에 기초하여 데이터베이스 복구 작업의 속도를 조절할지 여부, 만일 조절할 필요가 있다면 어떻게 얼마만큼 조절해야 할지 여부를 결정할지를 결정하기 위한 결과값을 산출한다. 보다 구체적으로, 데이터베이스 복구 작업의 속도를 조절하기 위해 PID 컨트롤러(130)에서는 장치의 현재 리소스 값 및 미리 설정된 리소스 값에 기초한 비례(Proportion), 적분(Intergral), 미분(Derivative)의 3가지 조합을 이용하여 결과값을 산출할 수 있다. 먼저, 단순히 데이터베이스 복구 작업의 수행 및 정지를 반복하는 On/Off 제어를 수행하는 경우 그 조작량의 변화가 너무 크고 실제 목표치에 대해 지나치게 반복하기 때문에 설정된 목표값 부근에서 언제까지나 왕래하는 진동을 계속하게 되는 단점이 발생하므로 조작량 자체를 목표값과 현재 값과의 차에 비례(Proportion)한 크기가 되도록 하여 서서히 조절하는 비례 제어를 사용할 수 있다. 또한, 비례 제어만 사용하는 경우 제어량이 목표값에 접근함에 따라 조작량이 너무 작아지고 그 이상 제어할 수 없는 상태에 이르므로 시간이 지나도 목표값에 다다르지 못하는 소위 잔류편차가 발생한다. 따라서, 잔류 편차를 없애고 목표값에 다다르기 위해 전술한 비례 제어에 더불어 잔류 편차를 시간적으로 누적하여, 어떤 크기로 된 곳에서 조작량을 증가하여 편차를 없애는 방식인 적분(Intergral) 제어를 추가할 수 있다. 마지막으로, 비례 제어 및 적분 제어만 사용하는 경우에는 최초 시점에서 목표값에 도달하도록 제어하기 위해 비교적 오랜 시간이 걸리므로, 보다 신속하게 목표값으로 제어하기 위해 전술한 비례 제어 및 적분 제어에 더불어 전회와의 편차에 대한 변화치에 기초한 제어인 미분(Derivative) 제어를 더 추가할 수 있다. 앞서 설명한 비례 제어, 적분 제어 그리고 미분 제어를 이용하고, 현재 데이터베이스 복구 작업에 이용되는 장치의 리소스 값 및 미리 설정된 리소스 값인 목표값에 기초하여 데이터베이스 복구 작업의 속도를 조절할지 여부를 결정하기 위한 식은 이하의 수학식 1과 같다.
Figure 112012056030270-pat00001
여기서, Kp, Ki, Kd는 각각 비례 계수, 적분 계수 및 미분 계수이고, e(t)는 특정 시점인 t 시점에서 데이터베이스 복구 작업에 이용되는 시스템 리소스 값 및 미리 설정된 시스템 리소스 값 간의 편차,
Figure 112012056030270-pat00002
는 최초부터 t 시점에 이르기까지의 복구 작업에 이용되는 시스템 리소스 값 및 미리 설정된 시스템 리소스 값 간의 편차의 누적, 그리고
Figure 112012056030270-pat00003
는 이전 시점(예컨대 t-1 시점이라 한다)인 t-1 시점에서의 데이터베이스 복구 작업에 이용되는 시스템 리소스 값 및 미리 설정된 시스템 리소스 값 간의 편차, 그리고 t 시점에서의 데이터베이스 복구 작업에 이용되는 시스템 리소스 값 및 미리 설정된 시스템 리소스 값 간의 편차의 차를 의미한다.
보다 구체적으로, 비례 계수, 적분 계수 및 미분 계수는 데이터베이스 복구 속도인 동기화 속도, 데이터베이스의 안정성, 장치의 안정성, 클라이언트로부터의 데이터 작업 요청을 수행하는 속도 및 빈도, 장치가 수행하는 일의 양 등 여러 가지 요소들의 중요도에 기초한 측정을 통해 가장 최적의 값으로 결정될 수 있으며, 상기 요소들 간의 중요도가 변경되면 비례 계수, 적분 계수 및 미분 계수의 값 역시 변경될 수 있고, 이에 따라 데이터베이스 복구 작업의 속도 역시 변경될 수 있다.
상기 수학식 1의 결과값인 u(t)는 데이터베이스 복구 속도의 조절이 필요한지, 만약 필요하다면 어느 정도로 조절할 것인지를 결정하는 값으로서, -100에서 +100의 숫자 범위 내에 존재하며, 그 값이 0일 경우에는 현재 데이터베이스의 복구 속도가 미리 설정된 리소스 값인 목표값과 동일하므로 현재 속도를 그대로 유지하도록, 마이너스 값인 경우에는 목표값보다 복구 속도가 높으므로 더 감소하도록, 플러스 값일 경우에는 목표값보다 복구 속도가 낮으므로 더 증가하도록 하며, u(t)의 절대값 수치에 따라 감소 또는 증가하고자 하는 정도를 결정한다. 데이터베이스 복구 속도의 구체적인 증가 또는 감소에 대해서는 데이터베이스 복구 제어부(140)의 설명에서 상세히 후술하도록 한다.
구체적인 수치 예시를 통해 t 시점에서의 결과값 u(t)를 산출해보도록 한다. 만일 비례 계수, 적분 계수 및 미분 계수가 각각 0.7, 0.65, 0.35라고 가정하고 미리 설정된 목표값인 리소스 중 CPU 리소스가 50%, t-2 시점에서의 CPU 리소스가 70%, t-1 시점에서의 CPU 리소스가 60%, t 시점에서의 CPU 리소스가 55%라고 가정하면, t 시점에서의 편차는 -5(=55-60), t-1 시점에서의 편차는 -10(=60-70)에 해당한다. 상기 수치들을 수학식 1에 대입하면, t 시점에서의 결과값 u(t)는 0.7*(-5) + 0.65*(-10-5) + 0.35*(-10-(-5)) = -15에 해당되므로 마이너스 값에 해당한다. 즉, 아직도 t 시점의 CPU 리소스(55%)가 목표값에 해당하는 CPU 리소스(50%)보다 높으므로 복구 속도를 보다 감소해야 한다는 것을 나타낸다.
한편, 전술한 바와 같이 CPU 리소스 등과 같이 하나의 리소스에 한정되지 않고, I/O 리소스 또는 메모리 리소스 등 복수개의 리소스를 고려하여 데이터베이스 복구 속도를 제어할 수 있다. 이 경우 결과값에 해당하는 U(t)를 구하는 식은 이하의 수학식 2와 같다.
Figure 112012056030270-pat00004
여기서, 고려할 리소스의 종류는 n개가 존재하고, 이 중 wi는 i번째 리소스에 대한 가중치이고, ui(t)는 t 시점에서 i번째 리소스에 대해 상기 수학식 1에 기초한 u(t) 값에 해당한다.
한편, 본 발명의 일 실시예에 따른 데이터베이스 복구 제어부(140)는 데이터베이스의 복구 작업을 수행하며, 이 때 앞서 PID 컨트롤러(130)에서 산출된 결과값(u(t))에 기초하여 데이터베이스의 복구 속도를 조절한다. 전술한 바와 같이, 복구 제어부(140)는 장애 인식 처리부(110)에 저장되고 인식된 장애 발생 기간 동안 유실된 데이터를 대신 저장한 장치 또는 이를 백업한 장치로부터 요청하고, 전송받아 내부의 데이터베이스에 저장하는 방식으로 데이터베이스의 복구 작업을 수행한다. 이 때 데이터베이스 복구 작업에 모든 리소스를 사용하는 경우 클라이언트로부터의 데이터 작업 요청 등 다른 작업을 수행하지 못할 뿐더러 유실된 데이터를 전송하는 다른 장치들 및 네트워크에도 부하가 집중되는 바 해당 장치 또는 시스템 내의 다른 장치에 추가적인 장애가 발생할 수 있다는 문제점을 갖는다. 따라서, 데이터베이스 복구 제어부(140)는 전술한 데이터베이스 복구 작업을 수행할 때에 PID 컨트롤러(130)에서 산출된 결과값에 기초하여 데이터베이스의 복구 속도를 적절히 조절하는 것이 필요한 것이다.
데이터베이스 복구 속도의 조절은 다양한 방식이나 기법을 이용하여 수행될 수 있으며, 그 일 예로서 usleep(int micro_seconds); 함수를 사용할 수 있다. 데이터베이스 복구 작업으로서 특정 장치의 장애 발생 기간에 저장되어야 할 모든 데이터를 대신 저장하거나 백업해 둔 장치 내의 데이터베이스로부터 추출하여 장애가 발생하였던 장치 내의 데이터베이스에 저장하도록 수행하는 경우, 별도의 지시가 없다면 해당 복구 작업에 장애가 발생하였던 장치의 모든 리소스를 사용할 것이다. 따라서, 앞서 PID 컨트롤러(130)를 통해 계산된 값이 0 또는 플러스 값에 해당하는 경우 별도의 지시 없이 그대로 두어 계속하여 리소스 값을 늘려가면서 복구 작업을 계속하도록 유도할 수 있으며, 만일 계산된 값이 마이너스인 경우에는 미리 설정된 리소스 값을 초과하여 데이터베이스 복구 작업이 계속되고 있으므로 복구 속도의 적절한 경감이 필요하다. 따라서, 일 예로서 usleep 함수를 이용하여 해당 복구 작업을 잠시 멈추게 함으로서 데이터베이스 복구 작업에 이용되는 리소스의 점유율을 낮추는 동시에 낮춰진 리소스를 이용하여 다른 작업들, 예컨대 클라이언트로부터의 데이터 작업 요청을 수행할 수 있게끔 한다. 또는, 만일 계산된 값이 플러스에 해당하는 경우 다른 작업들을 usleep 함수를 이용하여 잠시 멈추게 함으로써 데이터베이스 복구 작업에 이용되는 리소스의 점유율을 크게 증가시킬 수도 있다. usleep 함수의 경우 파라미터인 micro_seconds 값에 1/1000000을 곱한 초(second)만큼 해당 작업을 잠시 멈추게 하므로, 예를 들어 usleep(1000)을 수행하는 경우 데이터베이스 복구 작업이 1/1000 초만큼 중단되게 된다. micro_seconds 값은 앞서 PID 컨트롤러(130)에서 산출된 u(t)의 절대값에 비례하며, 일정 상수(예컨데, 1000)를 곱하여 결정될 수 있다.
마지막으로 본 발명의 일 실시예에 따른 데이터베이스(150)는 하나 이상의 물리적인 데이터베이스를 포함하며, 클라이언트의 요청에 의한 다양한 데이터 작업의 결과를 저장하는 공간을 의미한다. 또한, 저장된 데이터의 적어도 일부는 다른 서버 내의 데이터베이스에 백업되어 저장된다. 또한, 데이터베이스(150)는 장애 인식 처리부(110) 또는 데이터베이스 복구 제어부(140) 등 다른 구성요소와의 통신 및 이를 통한 데이터 접근, 수정 등의 작업을 수행하기 위한 DB Writer를 더 포함할 수 있다.
또한, 도 4에서는 도시하지 않았으나, 본 발명의 일 실시예에 따른 장치는 클라이언트의 요청을 수신하고, 클라이언트의 데이터 작업 요청을 분석한 후 내부의 데이터베이스와 연동하여 다양한 데이터 작업을 수행하기 위한 구성요소를 더 포함할 수 있음은 자명하다.
한편, 설명의 편의성을 위해 도 4에서 장애 인식 처리부(110), 리소스 측정부(120), PID 컨트롤러(130), 데이터베이스 복구 제어부(140) 및 데이터베이스(150)는 물리적인 장치당 하나만 존재하는 것으로 도시하였으나, 반드시 이에 한정되는 것은 아니며, 상기 구성요소들은 물리적으로 하나의 기계 내에 구현될 수도 있는 반면 일부 또는 그 각각이 물리적으로 다른 기계에 구현될 수도 있거나, 동일한 기능을 하는 물리적으로 복수 개 존재하는 기계가 병렬적으로 존재할 수도 있다. 이렇듯 본 발명은 각 구성부가 설치된 기계 또는 데이터베이스의 물리적인 개수 및 위치에 한정되지 않고 다양한 방식으로 설계 변경될 수 있음은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 자명할 것이다.
또한, 리소스의 측정 및 이를 통한 데이터베이스의 복구 속도 조절은 실시간으로 또는 특정 주기별로 이루어질 수 있으나, 장치의 과부하를 막기 위해 특정 주기별(예를 들어, 1초 단위)로 수행되는 것이 보다 바람직하다.
데이터베이스 복구 속도 조절 절차
도 5는 본 발명의 일 실시예에 따른 데이터베이스 복구 속도 조절 방법을 도시한 흐름도이다.
도 5를 참조하면, 특정 시점인 t 시점에서 리소스 측정부(120)는 현재 데이터베이스 복구 작업에 이용되고 있는 리소스 값을 측정(S401)한다. 전술한 바와 같이 리소스의 종류로서는 CPU 사용량, 메모리 사용량, I/O 사용량 등을 포함할 수 있다. 측정된 리소스 값은 PID 컨트롤러(130)로 제공되며, PID 컨트롤러는 미리 설정된 목표값인 리소스 값과 측정된 리소스 값을 대비하여 그 편차값을 산출(S402)한다. 산출된 편차값이 제로(0)가 아닌 경우 t 시점에서 데이터베이스 복구 작업에 이용되고 있는 리소스 값은 미리 설정된 목표값과는 상이하다는 것을 의미하므로 데이터베이스 복구 작업의 속도를 조절할 필요성이 발생한다. 다만, 잦은 속도 조절에 따른 장치의 과부하를 막기 위해 편차가 특정 수치 이하인 경우, 즉 측정된 리소스 값이 목표값에 근접한 경우에는 목표값에 도달하였다고 간주하여 인위적인 속도 조절을 하지 않도록 구현될 수 있다. 따라서, PID 컨트롤러(130)는 앞서 산출된 편차값의 절대값이 특정 수치인 오차 범위 이내(예를 들어, 1% 이내 등)에 포함되는지를 더 판단(S403)하고, 만일 오차 범위 이내에 포함되는 경우 측정된 리소스 값이 목표값에 도달했다고 간주하고 인위적인 데이터베이스 복구 속도의 조절을 하지 않거나 또는 미세 조정을 위해 미리 정해진 특정 값을 u(t)로서 데이터베이스 복구 제어부(140)에 전달(S404)한다.
한편, 단계 S403에서 산출된 편차값이 오차 범위를 벗어나는 경우 PID 컨트롤러(130)는 u(t) 값을 산출(S405)한다. u(t) 값의 산출 방식으로서, 전술한 바와 같이 고려해야 할 리소스가 하나인 경우 산출된 편차값에 더불어 최초부터 t 시점에 이르기까지 편차값의 누적, 그리고 이전 시점인 t-1 시점에서의 편차와 t 시점에서의 편차의 차를 각각 비례 계수, 적분 계수 그리고 미분 계수에 곱한 값을 합하는 상기 수학식 1을 이용하여 산출할 수 있다. 만일 고려해야 할 리소스가 복수개인 경우에는 상기 수학식 2를 이용하여 산출할 수 있다.
마지막으로, 데이터베이스 복구 제어부(140)에서는 앞서 PID 컨트롤러로부터 u(t) 값을 전달받고 상기 u(t) 값에 기초하여 데이터베이스의 복구 속도를 조절(S406)한다. 복구 속도를 조절하는 구체적인 한 방안으로서 전술한 바와 같이 usleep() 함수를 사용할 수 있으며, 이 경우 u(t) 값에 특정 상수(예를 들어, 1000)를 곱한 값을 usleep()함수의 파라미터로 입력하여 u(t) 값에 비례한 시간 동안 데이터베이스의 복구 또는 다른 작업들을 잠시 멈추게 하여 데이터베이스 복구 속도를 감소하거나 증가시키는 방식으로 조절한다.
이상으로, 본 발명의 일 실시예에 따른 데이터베이스 복구 속도 조절 방법을 설명하였다. 이와 같이, 데이터베이스 복구 속도의 적절한 조절을 통하여 장애가 발생하였던 장치는 내부 데이터베이스 복구를 통하여 장애 발생 기간 동안 유실되었던 데이터의 저장 및 이를 통해 다른 장치 내의 데이터베이스와 데이터 동기화를 이룰 수 있는 한편, 장애가 발생하였던 장치는 내부 데이터베이스 복구 도중에도 기존에 할당된 클라이언트로부터의 데이터 작업 요청을 수행하는데 전혀 지장을 받지 않아 종래 기술에 비해 시스템의 효율을 향상시키고 추가적인 장애를 막을 수 있다는 장점을 제공한다.
한편, 본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동되도록 구성될 수 있으며, 그 역도 마찬가지다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
10: 제1서버 20: 제2서버
30: 제3서버 40: 제4서버
50: 제5서버 100: 시스템
110: 장애 인식 처리부 120: 리소스 측정부
130: PID 컨트롤러 140: 데이터베이스 복구 제어부
150: 데이터베이스 200: 통신 네트워크
300: 클라이언트

Claims (15)

  1. 장애가 발생하였던 장치에 의해 수행되는 각 단계가,
    제1 시점에서 데이터베이스의 복구에 사용되고 있는 리소스를 측정하는 단계;
    상기 측정된 리스소 값 및 미리 설정된 목표값에 기초하여 속도 조절 수치를 산출하는 단계; 및
    상기 산출된 속도 조절 수치에 기초하여 상기 데이터베이스의 복구 속도를 조절하는 단계를 포함하고,
    상기 데이터베이스의 복구 속도를 조절하는 단계는,
    상기 산출된 속도 조절 수치가 미리 정해진 값보다 작은 경우 상기 데이터베이스의 복구 속도를 감소하고, 미리 정해진 값보다 큰 경우 상기 데이터베이스의 복구 속도를 증가하는 것을 특징으로 하는, 데이터베이스 복구 속도 조절 방법.
  2. 청구항 1에 있어서, 상기 리소스는,
    CPU 리소스, 메모리 리소스 또는 I/O 리소스 중 어느 하나 이상인 것을 특징으로 하는, 데이터베이스 복구 속도 조절 방법.
  3. 장애가 발생하였던 장치에 의해 수행되는 각 단계가,
    제1 시점에서 데이터베이스의 복구에 사용되고 있는 리소스를 측정하는 단계;
    상기 측정된 리스소 값 및 미리 설정된 목표값에 기초하여 속도 조절 수치를 산출하는 단계; 및
    상기 산출된 속도 조절 수치에 기초하여 상기 데이터베이스의 복구 속도를 조절하는 단계를 포함하고,
    상기 속도 조절 수치는,
    상기 제1 시점에서의 측정된 리소스 값 및 미리 설정된 상기 목표값 간의 편차인 제1 편차값, 최초부터 상기 제1 시점에 이르기까지 측정된 리소스 값 및 미리 설정된 상기 목표값 간의 편차의 누적인 제2 편차값, 그리고 상기 제1 시점과 상이한 제2 시점에서 측정된 리소스 값 및 미리 설정된 상기 목표값 간의 편차와 상기 제1 편차값의 차인 제3 편차값 중 어느 하나 이상에 기초하는 것을 특징으로 하는, 데이터베이스 복구 속도 조절 방법.
  4. 청구항 3에 있어서, 상기 속도 조절 수치를 산출하는 단계는,
    상기 제1 편차값의 절대값이 미리 설정된 오차 범위보다 큰 경우에만 수행되는 것을 특징으로 하는, 데이터베이스 복구 속도 조절 방법.
  5. 청구항 4에 있어서,
    상기 제1 편차값의 절대값이 미리 설정된 오차 범위 이하인 경우, 상기 속도 조절 수치를 미리 정해진 값으로 설정하는 것을 특징으로 하는, 데이터베이스 복구 속도 조절 방법.
  6. 삭제
  7. 청구항 3에 있어서, 상기 속도 조절 수치는 상기 데이터베이스의 복구 속도, 상기 데이터베이스의 안정성, 상기 장치의 안정성, 상기 장치가 수행하는 일의 양 중 적어도 어느 하나에 더 기초하는 것을 특징으로 하는, 데이터베이스 복구 속도 조절 방법.
  8. 청구항 1 내지 청구항 5 및 청구항 7 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터 판독 가능한 기록 매체.
  9. 제1 시점에서 데이터베이스의 복구에 사용되고 있는 리소스를 측정하는 리소스 측정부;
    상기 측정된 리스소 값 및 미리 설정된 목표값에 기초하여 속도 조절 수치를 산출하는 PID 컨트롤러; 및
    상기 데이터베이스의 복구를 수행하는 DB 복구 제어부를 포함하고,
    상기 DB 복구 제어부는 상기 산출된 속도 조절 수치에 기초하여 상기 데이터베이스의 복구 속도를 조절하고,
    상기 DB 복구 제어부는,
    상기 산출된 속도 조절 수치가 미리 정해진 값보다 작은 경우 상기 데이터베이스의 복구 속도를 감소하고, 미리 정해진 값보다 큰 경우 상기 데이터베이스의 복구 속도를 증가하는 것을 특징으로 하는, 데이터베이스 복구 속도 조절 장치.
  10. 청구항 9에 있어서, 상기 리소스는,
    CPU 리소스, 메모리 리소스 또는 I/O 리소스 중 어느 하나 이상인 것을 특징으로 하는, 데이터베이스 복구 속도 조절 장치.
  11. 제1 시점에서 데이터베이스의 복구에 사용되고 있는 리소스를 측정하는 리소스 측정부;
    상기 측정된 리스소 값 및 미리 설정된 목표값에 기초하여 속도 조절 수치를 산출하는 PID 컨트롤러; 및
    상기 데이터베이스의 복구를 수행하는 DB 복구 제어부를 포함하고,
    상기 DB 복구 제어부는 상기 산출된 속도 조절 수치에 기초하여 상기 데이터베이스의 복구 속도를 조절하고,
    상기 속도 조절 수치는,
    상기 제1 시점에서의 측정된 리소스 값 및 미리 설정된 상기 목표값 간의 편차인 제1 편차값, 최초부터 상기 제1 시점에 이르기까지 측정된 리소스 값 및 미리 설정된 상기 목표값 간의 편차의 누적인 제2 편차값, 그리고 상기 제1 시점과 상이한 제2 시점에서 측정된 리소스 값 및 미리 설정된 상기 목표값 간의 편차와 상기 제1 편차값의 차인 제3 편차값 중 어느 하나 이상에 기초하는 것을 특징으로 하는, 데이터베이스 복구 속도 조절 장치.
  12. 청구항 11에 있어서, 상기 PID 컨트롤러는,
    상기 제1 편차값의 절대값이 미리 설정된 오차 범위보다 큰 경우에만 속도 조절 수치를 산출하는 것을 특징으로 하는, 데이터베이스 복구 속도 조절 장치.
  13. 청구항 12에 있어서, 상기 PID 컨트롤러는,
    상기 제1 편차값의 절대값이 미리 설정된 오차 범위 이하인 경우, 상기 속도 조절 수치를 미리 정해진 값으로 설정하는 것을 특징으로 하는, 데이터베이스 복구 속도 조절 장치.
  14. 삭제
  15. 청구항 11에 있어서, 상기 속도 조절 수치는 상기 데이터베이스의 복구 속도, 상기 데이터베이스의 안정성, 상기 장치의 안정성, 상기 장치가 수행하는 일의 양 중 적어도 어느 하나에 더 기초하는 것을 특징으로 하는, 데이터베이스 복구 속도 조절 장치.
KR1020120076442A 2012-07-13 2012-07-13 데이터베이스 복구 속도 조절 방법 및 장치 KR101394475B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120076442A KR101394475B1 (ko) 2012-07-13 2012-07-13 데이터베이스 복구 속도 조절 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120076442A KR101394475B1 (ko) 2012-07-13 2012-07-13 데이터베이스 복구 속도 조절 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140009766A KR20140009766A (ko) 2014-01-23
KR101394475B1 true KR101394475B1 (ko) 2014-05-14

Family

ID=50142785

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120076442A KR101394475B1 (ko) 2012-07-13 2012-07-13 데이터베이스 복구 속도 조절 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101394475B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254256B (zh) * 2020-02-10 2023-08-22 华为技术有限公司 数据重构方法、存储设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004227132A (ja) * 2003-01-21 2004-08-12 Nec Corp データバックアップシステム及び方法
US20050283504A1 (en) * 2004-06-17 2005-12-22 Yoshio Suzuki Disaster recovery system suitable for database system
KR100763781B1 (ko) * 2007-06-19 2007-10-05 (주)아이에스에이테크 서버 관리 시스템 및 마이그레이션 방법
JP2008061196A (ja) * 2006-09-04 2008-03-13 Ntt Communications Kk 障害復旧システム、障害復旧方法、障害復旧プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004227132A (ja) * 2003-01-21 2004-08-12 Nec Corp データバックアップシステム及び方法
US20050283504A1 (en) * 2004-06-17 2005-12-22 Yoshio Suzuki Disaster recovery system suitable for database system
JP2008061196A (ja) * 2006-09-04 2008-03-13 Ntt Communications Kk 障害復旧システム、障害復旧方法、障害復旧プログラム
KR100763781B1 (ko) * 2007-06-19 2007-10-05 (주)아이에스에이테크 서버 관리 시스템 및 마이그레이션 방법

Also Published As

Publication number Publication date
KR20140009766A (ko) 2014-01-23

Similar Documents

Publication Publication Date Title
US9489268B2 (en) System and method to proactively maintain a consistent recovery point objective (RPO) across data centers
JP6457447B2 (ja) データセンターのネットワークトラフィックスケジューリング方法及び装置
US20220261362A1 (en) Quality of service policy sets
KR101862718B1 (ko) 블록-기반 저장을 위한 데이터 볼륨 지속성 상태 감소
US9773015B2 (en) Dynamically varying the number of database replicas
US7925856B1 (en) Method and apparatus for maintaining an amount of reserve space using virtual placeholders
JP4621273B2 (ja) データ同期方法、データ同期プログラム、データベースサーバ装置、および、データベースシステム
JP7167174B2 (ja) 分散ストレージ・ネットワークにおける動的認可バッチ処理
US10169166B2 (en) Real-time fault-tolerant architecture for large-scale event processing
US9600487B1 (en) Self healing and restartable multi-steam data backup
US20070078809A1 (en) Robust data availability system having decentralized storage and multiple access paths
CN107872517B (zh) 一种数据处理方法及装置
CN108228393A (zh) 一种可扩展的大数据高可用的实现方法
US11934665B2 (en) Systems and methods for ephemeral storage snapshotting
US20160335165A1 (en) System and method for providing server application services with high availability and a many-to-one hardware configuration
CN118245471A (zh) 数据库管理方法、计算机设备、存储介质和程序产品
KR101394475B1 (ko) 데이터베이스 복구 속도 조절 방법 및 장치
JP4515262B2 (ja) フォールトトレランススキームを動的に切換えるための方法
CN112214303A (zh) Kubernetes集群自动缩放系统
US9141508B2 (en) Assigning read requests based on busyness of devices
US20120233309A1 (en) Methods of managing loads on a plurality of secondary data servers whose workflows are controlled by a primary control server
US20130226867A1 (en) Apparatus and method for converting replication-based file into parity-based file in asymmetric clustering file system
TW201627873A (zh) 用於在分散式計算中處理重發請求的方法與設備
CN110336884B (zh) 服务器集群更新方法和装置
US20230385159A1 (en) Systems and methods for preventing data loss

Legal Events

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

Payment date: 20170328

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180405

Year of fee payment: 5