KR101231563B1 - 실시간 데이터 복제 - Google Patents

실시간 데이터 복제 Download PDF

Info

Publication number
KR101231563B1
KR101231563B1 KR1020100081277A KR20100081277A KR101231563B1 KR 101231563 B1 KR101231563 B1 KR 101231563B1 KR 1020100081277 A KR1020100081277 A KR 1020100081277A KR 20100081277 A KR20100081277 A KR 20100081277A KR 101231563 B1 KR101231563 B1 KR 101231563B1
Authority
KR
South Korea
Prior art keywords
database
replication
data
asynchronous
replica
Prior art date
Application number
KR1020100081277A
Other languages
English (en)
Other versions
KR20110029071A (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20110029071A publication Critical patent/KR20110029071A/ko
Application granted granted Critical
Publication of KR101231563B1 publication Critical patent/KR101231563B1/ko

Links

Images

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation

Landscapes

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

Abstract

데이터의 동기 복제와 비동기 복제의 조합을 이용하여 로컬 데이터베이스를 복제 데이터베이스에 복제한다. 동기 복제와 비동기 복제 간의 통상적인 트레이드오프는 하이브리드 복제를 이용함으로써 최적화되고, 이러한 하이브리드 복제는 새로운 데이터를 삽입하는 데 동기 복제를 이용하고 기존의 데이터를 갱신하는 데 비동기 복제를 이용하는 것이다. 이러한 식으로 비동기와 동기를 조합하여 이용함으로써 효율적인 복제 데이터베이스를 제공하게 되며, 여기서 복제 데이터베이스는 데이터의 갱신 시 일부 지연을 허용할 수 있지만 새로운 데이터가 손실되지 않는다.

Description

실시간 데이터 복제{REAL TIME DATA REPLICATION}
본 발명은 일반적으로 컴퓨터 자원들의 복제에 관한 것으로서, 보다 상세하게는, 동기 방법과 비동기 방법을 조합하여 빠르고 효율적인 실시간 데이터 복제를 제공하는 데이터 복제에 관한 것이다.
신뢰성 있는 고속 데이터 처리 시스템에 대한 필요성이 계속 증가하고 있다. 이러한 데이터 처리 시스템에서는 하드웨어 고장, 소프트웨어 고장, 자연 재해 등에 의해 야기되는 인터럽션 발생 시 어느 시점이라도 중요(critical) 데이터를 제공할 수 있는 데이터 저장소가 필요하다. 필요한 데이터 가용성을 달성하기 위해, 많은 데이터 시스템에서는 원격 데이터 저장소를 활용하여 중요 데이터를 백업하고 저장한다. 원격 데이터 저장소로의 빠른 데이터 백업의 공통 수단은 데이터베이스 복제에 의한 것이다.
데이터베이스 복제를 이용하면, 데이터베이스 관리 시스템은 다수의 로컬 저장 장치 또는 로컬 저장 장치와 원격 저장 장치에 데이터를 기입할 것인지를 잘 결정할 수 있지만, 이러한 동기에는 상당한 성능 불이익이 야기된다. 다수의 저장 장치에 데이터를 동시에 복제하는 기술은 미러링(mirroring)이라고도 알려져 있다. 데이터 복제는 통상적으로 동기식이거나 비동기식이다. 동기 데이터 복제에서는, 복제 데이터베이스가 주 데이터베이스(primary database)의 현재 정보로 갱신된 상태로 유지된다. 이러한 식으로, 중요 데이터에 항상 접근할 수 있다. 트랜잭션과 기록 일관성을 보장함으로써 원격 사이트로의 대량의 데이터 송신이 각 데이터베이스 갱신과 함께 필요한 경우 데이터 송신 지연이 흔히 발생한다. 결국, 애플리케이션 성능은 받아들이기 힘든 수준까지 저하될 수 있다.
데이터베이스 복제 시스템은 비동기 복제도 이용한다. 비동기 시스템에서, 복제 데이터베이스의 데이터는 특정 간격으로 또는 일괄 갱신된다. 비동기 시스템은 시스템 자원들을 덜 이용하지만, 주 데이터베이스에 고장이 발생하는 경우 복제 데이터베이스에서의 데이터 무손실을 보장하지 않는다. 따라서, 복제 데이터베이스에서의 무손실을 요구하는 애플리케이션은 종종 비동기 복제를 채용할 수 없으며 이에 따라 보다 느린 동기 복제 기술에 의존한다.
비동기 시스템은 보다 빠르며 시스템 자원들을 덜 이용하지만, 복제 데이터베이스에서의 데이터 무손실을 보장하지 않는다. 동기 복제 시스템에서는 데이터 무손실을 보장할 수 있지만 보다 느리며 시스템 자원들에 대한 비용이 많이 든다. 따라서, 비동기 데이터 복제와 동기 데이터 복제 간의 트레이드오프(tradeoff)가 존재한다.
본 발명의 설명과 청구범위는 로컬 데이터베이스로부터 복제 데이터베이스로의 데이터의 동기 복제와 비동기 복제의 조합을 이용하는 데이터 복제에 관한 것이다. 동기 복제와 비동기 복제 간의 통상적인 트레이드오프는 하이브리드 복제를 이용함으로써 최적화되고, 이러한 하이브리드 복제는 새로운 데이터를 삽입하는 데 동기 복제를 이용하고 기존의 데이터를 갱신하는 데 비동기 복제를 이용하는 것이다. 이러한 식으로 비동기와 동기를 조합하여 이용함으로써 효율적인 복제 데이터베이스(replicated database)를 제공하게 되며, 여기서 복제 데이터베이스는 데이터의 갱신 시 일부 지연을 허용할 수 있지만 새로운 데이터가 손실되지 않는다.
전술한 특징과 기타 특징은 첨부 도면에 도시되어 있듯이 이하의 보다 상세한 설명으로부터 명백할 것이다.
유사 부호들이 유사 요소들을 가리키는 첨부도면과 함께 본 발명을 설명한다.
도 1은 본 명세서에서 설명하는 바와 같이 데이터베이스를 복제하는 하이브리드 복제 메커니즘을 갖는 컴퓨터 시스템의 블록도이다.
도 2는 종래 기술에 따른 복제 시스템의 블록도이다.
도 3은 하이브리드 데이터 복제를 이용하는 복제 시스템의 블록도이다.
도 4는 본 명세서에서 설명하는 바와 같이 하이브리드 데이터 복제를 이용하여 데이터베이스를 복제하는 방법의 흐름도이다.
본 발명의 설명과 청구범위는 로컬 데이터베이스로부터 복제 데이터베이스(replicated database)로의 데이터의 동기 복제와 비동기 복제의 조합을 이용하는 데이터 복제에 관한 것이다. 동기 복제와 비동기 복제 간의 통상적인 트레이드오프는 하이브리드 복제를 이용함으로써 최적화되고, 이러한 하이브리드 복제는 새로운 데이터를 삽입하는 데 동기 복제를 이용하고 기존의 데이터를 갱신하는 데 비동기 복제를 이용하는 것이다. 이러한 식으로 비동기와 동기를 조합하여 이용함으로써 효율적인 복제 데이터베이스를 제공하게 되며, 여기서 복제 데이터베이스는 데이터의 갱신 시 일부 지연을 허용할 수 있지만 새로운 데이터가 손실되지 않는다.
당업자라면 인식하듯이, 본 발명의 양태들은 시스템, 방법, 또는 컴퓨터 프로그램 제품으로서 구체화될 수 있다. 이에 따라, 본 발명의 양태들은 완전한 하드웨어의 실시예, (펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함한) 완전한 소프트웨어의 실시예, 또는 본 명세서에서 모두 일반적으로 "회로", "모듈", 또는 "시스템"이라 칭할 수 있는 소프트웨어 양태와 하드웨어 양태를 결합한 실시예의 형태를 취할 수 있다. 또한, 본 발명의 양태들은 내부에 컴퓨터 판독가능 프로그램 코드가 구체화된 하나 이상의 컴퓨터 판독가능 매체(들)에 구체화된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 이상의 컴퓨터 판독가능 매체(들)의 임의의 조합을 활용해도 된다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 신호 매체 또는 컴퓨터 판독가능 저장 매체일 수 있다. 컴퓨터 판독가능 저장 매체는 예를 들어 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 기기, 또는 장치, 또는 이들의 임의의 적절한 조합을 포함할 수 있지만, 이러한 예로 한정되지는 않는다. 컴퓨터 판독가능 저장 매체의 보다 구체적인 예(비배타적인 리스트)로는, 휴대용 컴퓨터 디스켓, 하드 디스크, RAM, ROM, EPROM이나 플래시 메모리, 광섬유, CD-ROM, 광 저장 장치, 자기 저장 장치, 또는 이들의 임의의 적절한 조합이 가능하다. 본 발명의 문맥에서 볼 때, 컴퓨터 판독가능 저장 매체는 명령 실행 시스템, 기기 또는 장치가 사용하기 위한 또는 이러한 명령 실행 시스템, 기기 또는 장치와 함께 사용하기 위한 프로그램을 포함하거나 저장할 수 있는 임의의 유형의 매체일 수 있다. 컴퓨터 판독가능 신호 매체는 예를 들어 기저대역에서 또는 반송파의 일부로서 내부에 컴퓨터 판독가능 프로그램 코드가 구체화된 전파 데이터 신호를 포함할 수 있다. 이러한 전파 신호는 전자기 형태, 광학 형태, 또는 이들의 적절한 조합을 포함한 다양한 형태들 중 임의의 형태를 취할 수 있지만, 이러한 예로 한정되지는 않는다. 컴퓨터 판독가능 신호 매체는, 컴퓨터 판독가능 저장 매체가 아니며 명령 실행 시스템, 기기 또는 장치가 사용하기 위한 또는 이러한 명령 실행 시스템, 기기 또는 장치와 함께 사용하기 위한 프로그램을 통신하고, 전파하고, 또는 송신할 수 있는 임의의 컴퓨터 판독가능 매체일 수 있다. 컴퓨터 판독가능 매체에 구체화되는 프로그램 코드는, 무선, 유선, 광섬유 케이블, RF 등 또는 전술한 예들의 임의의 적절한 조합을 포함한 임의의 적절한 매체를 이용하여 송신될 수 있지만, 이러한 예로 한정되지는 않는다.
본 발명의 양태들을 위한 동작들을 실행하기 위한 컴퓨터 프로그램 코드는, Java, Smalltalk, C++ 등과 같은 오브젝트 지향 프로그래밍 언어, 및 "C" 프로그래밍 언어나 유사 프로그래밍 언어와 같은 종래의 절차적 프로그래밍 언어를 포함하는 하나 이상의 프로그래밍 언어들의 임의의 조합으로 기입될 수 있다. 프로그램 코드는, 사용자의 컴퓨터 상에서 완전하게, 독립형 소프트웨어 패키지로서 사용자의 컴퓨터 상에서 부분적으로, 사용자의 컴퓨터와 원격 컴퓨터에서 부분적으로, 또는 원격 컴퓨터나 서버 상에서 완전하게 실행될 수 있다. 후자의 경우, 원격 컴퓨터는 LAN 또는 WAN을 포함한 임의의 유형의 네트워크를 통해 사용자의 컴퓨터에 접속될 수 있고, 또는 (예를 들어, 인터넷 서비스 제공자를 이용하여 인터넷을 통해) 외부 컴퓨터에 대한 접속을 행할 수 있다. 본 발명의 양태들은 본 발명의 실시예들에 따른 방법, 기기(시스템) 및 컴퓨터 프로그램 제품의 블록도 및/또는 흐름도를 참조하여 설명한다. 흐름도 및/또는 블록도의 각 블록, 및 흐름도 및/또는 블록도의 블록들의 조합이 컴퓨터 프로그램 명령들에 의해 구현될 수 있다는 것을 이해할 것이다. 이러한 컴퓨터 프로그램 명령들은 범용 컴퓨터, 전용 컴퓨터, 또는 머신을 생성하기 위한 기타 프로그래밍가능 데이터 처리 기기의 프로세서에 제공될 수 있으며, 컴퓨터 또는 기타 프로그래밍가능 데이터 처리 기기의 프로세서를 통해 실행되는 이러한 명령들은 흐름도 및/또는 블록도의 블록이나 블록들에서 특정된 기능/액션을 구현하기 위한 수단을 생성한다. 또한, 이러한 컴퓨터 프로그램 명령들은, 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램 명령들이 흐름도 및/또는 블록도의 블록이나 블록들에서 특정된 기능/액션을 구현하는 명령들을 포함하는 제조 물품을 생성하도록, 컴퓨터, 기타 프로그래밍가능 데이터 처리 기기, 또는 기타 장치가 특정한 방식으로 기능할 수 있게 하는 컴퓨터 판독가능 매체에 저장될 수 있다. 또한, 컴퓨터 프로그램 명령들은 컴퓨터, 기타 프로그래밍가능 데이터 처리 기기, 또는 기타 장치 상으로 로딩되어, 일련의 연산 단계들을 컴퓨터, 기타 프로그래밍가능 데이터 처리 기기, 또는 기타 장치 상에서 수행하여 컴퓨터 구현 프로세스를 생성할 수 있으며, 이때 컴퓨터 또는 기타 프로그래밍가능 기기 상에서 실행되는 명령들은 흐름도 및/또는 블록도의 블록이나 블록들에서 특정된 기능/액션을 구현하기 위한 프로세스들을 제공한다.
도 1을 참조해 보면, 컴퓨터 시스템(100)은 본 명세서에서 설명하는 바와 같이 하이브리드 복제 메커니즘을 포함하는 컴퓨터 시스템의 하나의 적절한 구현 예이다. 컴퓨터 시스템(100)은 IBM사의 iSeries 컴퓨터 시스템이다. 그러나, 당업자라면 그 컴퓨터 시스템이 복잡한 멀티 유저 컴퓨팅 기기인지, 단일 유저 워크스테이션인지, 또는 임베딩형 제어 시스템인지에 상관없이 본 발명이 임의의 컴퓨터 시스템에 동일하게 적용된다는 것을 인식할 것이다. 도 1에 도시한 바와 같이, 컴퓨터 시스템(100)은 하나 이상의 프로세서(110), 주 메모리(120), 대용량 저장 장치 인터페이스(130), 디스플레이 인터페이스(140), 및 네트워크 인터페이스(150)를 포함한다. 이러한 시스템 구성 요소들은 시스템 버스(160)에 의해 상호 접속된다. 대용량 저장 장치 인터페이스(130)는 직접 접근 저장 장치들(155)과 같이 컴퓨터 판독가능 매체를 갖는 대용량 저장 장치들을 컴퓨터 시스템(100)에 접속하는 데 사용된다. 직접 접근 저장 장치(155)의 한가지 특정 유형은 CD-RW(195)에 데이터를 저장하고 이 CD-RW로부터 데이터를 판독할 수 있는 판독가능 및 기입가능형 CD-RW 드라이브이다.
주 메모리(120)는 바람직하게 운영 체제(121)를 포함한다. 운영 체제(121)는 당업계에 i5/OS로서 알려져 있는 멀티태스킹 운영 체제이다. 그러나, 당업자라면 본 발명의 사상과 범위가 임의의 한가지 운영 체제로 제한되지 않는다는 것을 인식할 것이다. 메모리는 하이브리드 복제 메커니즘(123)을 포함하는 데이터베이스 매니저(122)를 더 포함한다. 메모리는 로컬 데이터베이스(124)의 적어도 일부를 더 포함한다. 로컬 데이터베이스(124)는 직접 접근 저장 장치(155)에 저장되어도 되고 필요 시 이 데이터베이스의 일부들이 메모리(120)에 로딩되어도 된다. 메모리 내의 이러한 엔티티들을 후술한다.
컴퓨터 시스템(100)은 컴퓨터 시스템(100)의 프로그램들이 주 메모리(120)와 DASD 장치(155)와 같은 다수의 보다 작은 용량의 엔티티들에 접근하는 것이 아니라 하나의 대용량 엔티티에만 접근할 수 있는 것처럼 거동할 수 있게 하는 널리 알려져 있는 가상 어드레싱 메커니즘을 활용한다. 따라서, 운영 체제(121), 데이터베이스 매니저(122), 하이브리드 복제 메커니즘(123) 및 로컬 데이터베이스(124)가 주 메모리(120)에 상주하는 것으로 도시되어 있지만, 당업자라면 이러한 항목들 모두가 반드시 주 메모리(120)에 동시에 완전하게 포함될 필요가 없다는 점을 인식할 것이다. 또한, 본 명세서에서 이용되는 "메모리"라는 용어는 일반적으로 컴퓨터 시스템(100)의 완전한 가상 메모리를 가리키며, 컴퓨터 시스템(100)에 연결된 다른 컴퓨터 시스템의 가상 메모리를 포함해도 된다는 점에 주목하기 바란다.
프로세서(110)는 하나 이상의 마이크로프로세서 및/또는 집적 회로로 구성될 수 있다. 프로세서(110)는 주 메모리(120)에 저장된 프로그램 명령을 실행한다. 주 메모리(120)는 프로세서(110)가 접근할 수 있는 프로그램과 데이터를 저장한다. 컴퓨터 시스템(100)이 기동하면, 프로세서(110)는 초기에 운영 체제(121)를 구성하는 프로그램 명령을 실행한 후 데이터베이스 매니저(122)와 하이브리드 복제 메커니즘(123)을 구성하는 프로그램 명령을 실행한다.
컴퓨터 시스템(100)은 하나의 프로세서와 하나의 시스템 버스만을 포함하는 것으로 도시되어 있지만, 당업자라면 다수의 프로세서 및/또는 다수의 버스를 갖는 컴퓨터 시스템을 이용하여 가상화 매니저를 실시해도 된다는 것을 인식할 것이다. 또한, 사용되는 인터페이스들 각각은 바람직하게 프로세서(110)로부터 연산 집약형 처리를 오프 로딩(off-load)하는 데 사용되는 별도의 완전히 프로그래밍된 마이크로프로세서를 포함한다. 그러나, 당업자라면 이러한 기능들이 I/O 아답터를 이용하여 수행되어도 된다는 점을 인식할 것이다.
디스플레이 인터페이스(140)는 하나 이상의 디스플레이(165)를 컴퓨터 시스템(100)에 직접 접속하는 데 사용된다. 넌인텔리전트(즉, 덤(dumb)) 단말 또는 완전히 프로그래밍 가능한 워크스테이션일 수 있는 이러한 디스플레이(165)는 시스템 관리자 및 사용자에게 컴퓨터 시스템(100)과 통신하는 능력을 제공하는 데 사용된다. 그러나, 디스플레이 인터페이스(140)는 하나 이상의 디스플레이(165)와의 통신을 지원하도록 제공되지만, 사용자와의 모든 필요한 상호 작용 및 기타 프로세스가 네트워크 인터페이스(150)를 통해 발생할 수 있기 때문에 컴퓨터 시스템(100)이 디스플레이(165)를 반드시 필요로 하는 것은 아니라는 점에 주목하기 바란다.
네트워크 인터페이스(150)는 컴퓨터 시스템(100)을 네트워크(170)를 통해 기타 컴퓨터 시스템이나 워크스테이션(175)에 접속하는 데 사용된다. 이러한 기타 컴퓨터 시스템(175)은 바람직하게 하나 이상의 복제 데이터베이스(125)를 포함한다. 네트워크 인터페이스(150)는 네트워크(170)가 오늘날의 아날로그 및/또는 디지털 기술을 포함하는지 또는 미래의 일부 네트워킹 메커니즘을 통해서인지에 상관없이 넓은 의미에서 전자 장치들을 상호 접속하는 임의의 적절한 방식을 나타낸다. 또한, 서로 다른 많은 네트워크 프로토콜들을 이용하여 네트워크를 구현할 수 있다. 이러한 프로토콜들은 컴퓨터들이 네트워크를 통해 통신할 수 있게 하는 특정한 컴퓨터 프로그램들이다. TCP/IP(송신 제어 프로토콜/인터넷 프로토콜)는 적절한 네트워크 프로토콜의 일례이다.
도 2는 종래 기술에 따른 데이터 복제를 이용하는 컴퓨터 시스템(200)의 블록도이다. 시스템(200)은 네트워크(212)에 접속된 두 개의 컴퓨터(210)를 포함한다. 각 컴퓨터(210)는 로컬 데이터베이스(216)를 복제 데이터베이스(218)에 함께 복제하는 복제 메커니즘(214)을 포함한다. 로컬 데이터베이스(216)는 동기(220) 또는 비동기(222) 복제를 이용하여 복제 데이터베이스에 복제될 수 있다. 종래 기술의 시스템(200)은 애플리케이션의 필요 및 전체 시스템 하드웨어의 제약에 따라 동기(220) 또는 비동기(222) 복제를 채용한다. 그러나, (도 2의 부재 번호 200과 같은) 종래 기술의 시스템은 하나 또는 나머지 하나의 동기나 비동기 복제를 이용한다는 점에 주목하기 바란다. 종래 기술의 시스템은 본 발명에서 설명하는 방식과는 달리 동기 복제와 비동기 복제를 모두 이용하지는 않는다.
도 3은 본 발명에서 설명하고 청구하는 바와 같이 하이브리드 데이터 복제를 이용하는 컴퓨터 시스템(300)의 블록도이다. 하이브리드 데이터 복제는 동기 복제와 비동기 복제의 조합을 이용하여 효율적인 복제 데이터베이스를 제공하며, 여기서 복제 데이터베이스는 데이터 갱신 시 일부 지연을 허용할 수 있지만 새로운 데이터가 손실되지 않는다. 시스템(300)은 도 1에 도시한 컴퓨터(100)의 특징들을 포함할 수 있으며 도 1의 컴퓨터들(100, 175)에 대응할 수 있는 두 개의 컴퓨터를 포함한다. 두 개의 컴퓨터(100, 175)는 네트워크(170)로 접속된다. 컴퓨터들(100, 175)은 로컬 데이터베이스(124)를 복제 데이터베이스(125)에 함께 복제하는 하이브리드 복제 메커니즘(123, 312)을 포함한다. 로컬 데이터베이스(124)는 하이브리드 복제(310)를 이용하여 복제 데이터베이스(125)에 복제된다. 본 발명에서 이용하고 있듯이, 하이브리드 복제는, (삽입(INSERT)(312) 연산과 같이) 새로운 데이터를 데이터베이스 메모리에 추가하는 트랜잭션을 위해 동기 복제를 이용하고 (갱신(UPDATE)(312) 데이터베이스 트랜잭션과 같이) 데이터베이스 메모리의 기존의 데이터를 갱신하거나 대체하는 트랜잭션을 위해 비동기 복제를 이용한다는 것을 의미한다. 본 발명에서 이용하고 있듯이, 삽입 연산은 새로운 데이터베이스 레코드를 데이터베이스에 삽입하는 데이터베이스 연산이다. 마찬가지로, 갱신 트랜잭션은 데이터베이스의 기존의 레코드를 변경하거나 갱신하는 데이터베이스 연산이다. 청구 발명은 전술한 바와 같이 메모리 갱신 및 삽입의 유사한 특성들을 갖는 다른 데이터 메모리 연산들에 명확하게 확장된다.
이제, 전술한 바와 같이 하이브리드 데이터베이스 복제를 이용하는 일례를 고려한다. 이 예의 적용 분야는 적 타겟에 대하여 30ms마다 적 위치를 스위핑하는 군사 레이더 시스템이다. 이 상황에서, 주 관심은 모든 새로운 위협을 놓치지 않고 이러한 모든 새로운 위협을 레이더 디스플레이에 나타내는 것이다. 레이더 시스템에 의해 검출되는 적의 위협은 로컬 데이터베이스에 저장된다. 데이터베이스 복제 시스템을 채용하여 위협 정보를 보유하고 있는 데이터베이스를 복제하여 주 데이터베이스의 손상에 대비한다. 시스템 고장이 발생하면, 복제 데이터베이스는 주 시스템 상에 모든 타겟을 보유해야 한다. 위협의 위치는 다음 스위핑 시 갱신되며, 이에 따라 최신 위치 데이터의 대부분은 중요하지 않다.
레이더의 예를 계속 설명해 보면, 레이더 시스템이 시간 t=0에서 위협 A와 B를 판독한다고 가정한다. 이러한 위협들 및 이들의 좌표는 삽입 트랜잭션에 의해 백업 데이터베이스 상에 동기 복제된다. 30ms 스위핑 시, 레이더는 타겟 A와 B에 대한 새로운 위치를 검출한다. 새로운 좌표들은 갱신 트랜잭션에 의해 비동기 복제된다. 60ms 스위핑 시, 레이더는 타겟 A와 B 및 새로운 타겟 C에 대한 새로운 위치를 검출한다. A와 B에 대한 새로운 좌표들은 갱신 트랜잭션에 의해 비동기 복제되고, 새로운 타겟 C에 대한 좌표는 동기 복제된다. 시간 69ms에서, 주 데이터베이스에 고장이 발생한다고 가정한다. 그 결과, 복제 시스템의 데이터를 판독한다. 백업 데이터는 모든 타겟들에 대한 데이터를 보유하지만, A와 B에 대한 좌표들은 고장 전에 완료되지 않은 비동기 트랜잭션으로 인해 오래된 것일 수 있다. 이러한 오래된 데이터는 심각한 문제점은 아니지만 백업 데이터베이스의 모든 타겟들을 고려하는 것이 중요하다. 다음 레이더 스위핑 시, A, B, C에 대한 새로운 좌표들은 갱신 트랜잭션에 의해 복제 데이터베이스에 갱신된다. 위 설명을 이하의 표와 같이 요약할 수 있다.
시간 레이더 검출 복제 트랜잭션
0 ms A, B Tx - A, B 를 동기 삽입
30 ms A, B Tx - A, B 를 비동기 갱신
60 ms A, B, C Tx - A, B 를 비동기 갱신
Tx - C 를 동기 삽입
69 ms 고장 백업 시스템을 이용
90 ms A, B, C Tx - A, B, C 를 비동기 갱신
도 4는 로컬 데이터베이스로부터 복제 데이터베이스로의 데이터의 동기 복제 및 비동기 복제의 조합을 이용하는 데이터 복제 방법(400)을 도시한다. 이 방법(400)의 단계들은 바람직하게 하이브리드 복제 메커니즘(312)(도 3)과 함께 하이브리드 복제 메커니즘(123)(도 1 및 도 3)에 의해 수행되어 데이터베이스 트랜잭션을 처리하여 이 데이터베이스 트랜잭션을 복제 데이터베이스에 복제한다. 먼저, 트랜잭션이 완료되었는지를 결정한다(단계 410), 트랜잭션이 완료되었다면(단계 410에서 예), 방법을 종료한다. 트랜잭션이 완료되지 않았다면(단계 410에서 아니오), 트랜잭션이 삽입인지를 결정한다(단계 420). 트랜잭션이 삽입이 아니면(단계 420에서 아니오), 트랜잭션 데이터를 국부적으로 갱신하고 비동기 복제를 이용하여 복제 데이터베이스에 복제한다(단계 430). 다음으로, 트랜잭션을 완료로 표시하고(단계 440) 단계(410)로 진행한다. 트랜잭션이 삽입이면(단계 420에서 예), 트랜잭션 데이터를 로컬 데이터베이스에 삽입하고 동기 복제를 이용하여 이 데이터를 복제 데이터베이스에 복제한다(단계 450). 다음으로, 복제가 성공적이었는지를 결정한다(단계 460). 동기 복제가 성공적이었다면(단계 460에서 예), 트랜잭션을 완료로 표시하고(단계 440) 단계(410)로 진행한다. 동기 복제가 성공적이지 않았다면(단계 460에서 아니오), 복제를 시도한 횟수를 검사한다(단계 470). 재시도가 N번이면(단계 470에서 예), 오류를 보고한다(단계 480). 재시도가 N번이 아니었다면(단계 470에서 아니오), 복제를 재시도하고(단계 490) 단계(460)로 진행한다. 도 4의 숫자 N은 오류를 보고하기 전에 복제를 몇 번이나 시도하는지를 결정하는 정수 임계값이라는 점에 주목한다.
도면의 흐름도와 블록도는 본 발명의 다양한 실시예에 따라 시스템, 방법 및 컴퓨터 프로그램 제품의 가능한 구현 예의 아키텍처, 기능 및 동작을 도시한다. 이러한 점에서, 흐름도 또는 블록도의 각 블록은 모듈, 세그먼트, 또는 코드의 일부를 나타낼 수 있으며, 이는 특정된 논리 함수(들)를 구현하기 위한 하나 이상의 실행가능 명령을 포함한다. 또한, 일부 대체 구현 예에서는, 블록에 기재된 기능들이 도면에서의 순서와는 다르게 발생할 수 있다는 점을 주목하기 바란다. 예를 들어, 연속해서 도시된 두 개의 블록은, 실제로, 거의 동시에 실행되어도 되고, 또는 이 블록들은 연관된 기능에 따라 때때로 역순으로 실행되어도 된다. 또한, 블록도 및/또는 흐름도의 각 블록, 및 블록도 및/또는 흐름도의 블록들의 조합은 특정된 기능이나 액션을 수행하는 전용 하드웨어 기반 시스템에 의해 또는 전용 하드웨어와 컴퓨터 명령의 조합에 의해 구현될 수 있다는 점에 주목하기 바란다.
전술한 바와 같이, 데이터베이스 매니저는 로컬 데이터베이스로부터 복제 데이터베이스로의 데이터의 동기 복제와 비동기 복제를 조합하는 하이브리드 복제 메커니즘을 활용한다. 이러한 식으로 비동기와 동기를 조합하여 이용함으로써 효율적인 복제 데이터베이스를 제공하게 되며, 여기서 복제 데이터베이스는 데이터의 갱신 시 일부 지연을 허용할 수 있지만 새로운 데이터의 무손실을 필요로 한다.
당업자라면 청구범위 내에서 많은 변경이 가능하다는 것을 인식할 것이다. 따라서, 본 발명을 구체적으로 도시하고 설명하고 있지만, 당업자라면 청구범위의 사상과 범위로부터 벗어나지 않고 형태 및 상세에 있어서 본 발명에서 이러한 변경과 기타 변경을 행해도 된다는 것을 이해할 것이다.
123 하이브리드 복제 메커니즘
124 데이터베이스
125 복제 데이터베이스
170 네트워크
310 하이브리드 복제
312 하이브리드 복제 메커니즘
312 삽입(INSERT)
314 갱신(UPDATE)

Claims (10)

  1. 적어도 하나의 프로세서;
    로컬 데이터베이스를 갖고 상기 적어도 하나의 프로세서에 연결된 메모리; 및
    새로운 데이터를 복제 데이터베이스(replicated database)에 추가하는 트랜잭션을 위한 동기 데이터 복제 및 상기 복제 데이터베이스의 데이터를 갱신하는 트랜잭션을 위한 비동기 데이터 복제를 이용하여 상기 복제 데이터베이스에 트랜잭션을 송신하는 복제 메커니즘;을 포함하는,
    데이터 복제 장치.
  2. 제1항에 있어서,
    상기 새로운 데이터를 복제 데이터베이스에 추가하는 트랜잭션은 데이터베이스 삽입(INSERT) 동작이고, 상기 복제 데이터베이스의 데이터를 갱신하는 비동기 복제 트랜잭션은 데이터베이스 갱신(UPDATE) 동작인, 데이터 복제 장치.
  3. 제1항에 있어서,
    상기 복제 데이터베이스는 상기 적어도 하나의 프로세서로부터 원격 배치된 다른 하나의 컴퓨터 시스템에 연관된, 데이터 복제 장치.
  4. 제1항에 있어서,
    상기 복제 데이터베이스는 하이브리드 복제를 이용하여 갱신되는 레이더 정보를 보유하는, 데이터 복제 장치.
  5. 적어도 하나의 프로세서;
    로컬 데이터베이스를 갖고 상기 적어도 하나의 프로세서에 연결된 메모리;
    동기 데이터 복제 및 비동기 데이터 복제를 이용하여 복제 데이터베이스(replicated database)에 트랜잭션을 송신하는 데이터베이스 복제 메커니즘 -상기 데이터베이스 복제 메커니즘은 상기 복제 데이터베이스에 새로운 데이터를 추가하는 트랜잭션을 위해 상기 복제 데이터베이스가 현재 정보로 갱신되도록 유지하는 동기 데이터 복제를 이용하고, 상기 데이터베이스 복제 메커니즘은 상기 복제 데이터베이스의 데이터를 갱신하는 트랜잭션을 위해 비동기 데이터 복제를 이용하고, 상기 비동기 데이터 복제는 데이터를 특정 간격으로 일괄 갱신함-;을 포함하고,
    상기 복제 데이터베이스에 새로운 데이터를 추가하는 상기 트랜잭션은 데이터베이스 삽입(INSERT) 동작이고, 상기 복제 데이터베이스의 데이터를 갱신하는 비동기 복제 트랜잭션은 데이터베이스 갱신(UPDATE) 동작인 것인,
    데이터 복제 장치.
  6. 제5항에 있어서,
    상기 복제 데이터베이스는 상기 적어도 하나의 프로세서로부터 원격 배치된 다른 하나의 컴퓨터 시스템에 연관된, 데이터 복제 장치.
  7. 제5항에 있어서,
    상기 복제 데이터베이스는 하이브리드 복제를 이용하여 갱신되는 레이더 정보를 보유하는, 데이터 복제 장치.
  8. 적어도 하나의 프로세서;
    로컬 데이터베이스를 갖고 상기 적어도 하나의 프로세서에 연결된 메모리;
    상기 적어도 하나의 프로세서로부터 원격 배치된 다른 하나의 컴퓨터 시스템과 연관된 복제 데이터베이스; 및
    동기 데이터 복제 및 비동기 데이터 복제를 이용하여 복제 데이터베이스에 트랜잭션을 송신하는 데이터베이스 복제 메커니즘 -상기 데이터베이스 복제 메커니즘은 상기 복제 데이터베이스에 새로운 데이터를 추가하는 트랜잭션을 위해 상기 복제 데이터베이스가 현재 정보로 갱신되도록 유지하는 동기 데이터 복제를 이용하고, 상기 데이터베이스 복제 메커니즘은 상기 복제 데이터베이스의 데이터를 갱신하는 트랜잭션을 위해 비동기 데이터 복제를 이용하고, 상기 비동기 데이터 복제는 데이터를 특정 간격으로 일괄 갱신함-;을 포함하고
    상기 복제 데이터베이스에 새로운 데이터를 추가하는 상기 트랜잭션은 데이터베이스 삽입(INSERT) 동작이고, 상기 복제 데이터베이스의 데이터를 갱신하는 비동기 복제 트랜잭션은 데이터베이스 갱신(UPDATE) 동작인 것인,
    데이터 복제 장치.
  9. 삭제
  10. 삭제
KR1020100081277A 2009-09-14 2010-08-23 실시간 데이터 복제 KR101231563B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/558,898 2009-09-14
US12/558,898 US8364636B2 (en) 2009-09-14 2009-09-14 Real time data replication

Publications (2)

Publication Number Publication Date
KR20110029071A KR20110029071A (ko) 2011-03-22
KR101231563B1 true KR101231563B1 (ko) 2013-02-07

Family

ID=43731498

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100081277A KR101231563B1 (ko) 2009-09-14 2010-08-23 실시간 데이터 복제

Country Status (3)

Country Link
US (2) US8364636B2 (ko)
JP (1) JP5496839B2 (ko)
KR (1) KR101231563B1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341115B1 (en) * 2009-12-26 2012-12-25 Emc Corporation Dynamically switching between synchronous and asynchronous replication
US8966027B1 (en) * 2010-05-24 2015-02-24 Amazon Technologies, Inc. Managing replication of computing nodes for provided computer networks
US9043283B2 (en) 2011-11-01 2015-05-26 International Business Machines Corporation Opportunistic database duplex operations
US8849764B1 (en) * 2013-06-13 2014-09-30 DataGravity, Inc. System and method of data intelligent storage
US10102079B2 (en) 2013-06-13 2018-10-16 Hytrust, Inc. Triggering discovery points based on change
US10089192B2 (en) 2013-06-13 2018-10-02 Hytrust, Inc. Live restore for a data intelligent storage system
US9213706B2 (en) * 2013-06-13 2015-12-15 DataGravity, Inc. Live restore for a data intelligent storage system
WO2015145536A1 (ja) 2014-03-24 2015-10-01 株式会社日立製作所 データベース管理システム及びデータベース間の同期制御方法
US9571575B2 (en) * 2014-08-29 2017-02-14 Netapp, Inc. Granular sync/semi-sync architecture
CN105099793B (zh) * 2015-09-24 2019-02-05 华为技术有限公司 热备方法、装置及系统
US10372726B2 (en) * 2016-08-09 2019-08-06 International Business Machines Corporation Consistent query execution in hybrid DBMS
US10338834B1 (en) * 2016-09-29 2019-07-02 Veritas Technologies Llc Application performance in replication environments
US10817197B2 (en) 2018-05-04 2020-10-27 Microsoft Technology Licensing, Llc Data partitioning in a distributed storage system
US11120046B2 (en) * 2018-05-04 2021-09-14 Microsoft Technology Licensing Llc Data replication in a distributed storage system
US10705754B2 (en) * 2018-06-22 2020-07-07 International Business Machines Corporation Zero-data loss recovery for active-active sites configurations
US11445017B2 (en) * 2019-02-21 2022-09-13 International Business Machines Corporation Maintaining user data and metadata consistency in an asynchronous replication environment
US11281548B2 (en) * 2019-10-03 2022-03-22 EMC IP Holding Company LLC 2-phase sync replication recovery to optimize recovery point objective (RPO)
US11416468B2 (en) 2020-07-21 2022-08-16 International Business Machines Corporation Active-active system index management
US11874851B2 (en) * 2021-05-27 2024-01-16 EMC IP Holding Company LLC Contextual replication profile creation based on data criticality

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040034670A1 (en) * 2002-07-31 2004-02-19 At&T Wireless Services, Inc. Efficient synchronous and asynchronous database replication
US20050149578A1 (en) * 2003-11-04 2005-07-07 Sustman Paul A. Hybrid real-time data replication
US20060238406A1 (en) * 2005-04-20 2006-10-26 Sicom Systems Ltd Low-cost, high-performance radar networks

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3503957B2 (ja) * 1992-11-25 2004-03-08 富士通株式会社 遠隔データベースの制御方法及び装置
US5806074A (en) * 1996-03-19 1998-09-08 Oracle Corporation Configurable conflict resolution in a computer implemented distributed database
US6324654B1 (en) * 1998-03-30 2001-11-27 Legato Systems, Inc. Computer network remote data mirroring system
JPH11338647A (ja) * 1998-05-25 1999-12-10 Hitachi Ltd 二重化データの形成方法
US6615223B1 (en) * 2000-02-29 2003-09-02 Oracle International Corporation Method and system for data replication
US7177866B2 (en) * 2001-03-16 2007-02-13 Gravic, Inc. Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only
CN1240244C (zh) * 2001-05-11 2006-02-01 诺基亚公司 网络环境内的数据单元信息管理
US7827136B1 (en) * 2001-09-20 2010-11-02 Emc Corporation Management for replication of data stored in a data storage environment including a system and method for failover protection of software agents operating in the environment
US7020665B2 (en) * 2002-03-07 2006-03-28 Microsoft Corporation File availability in distributed file storage systems
US7082446B1 (en) * 2002-04-15 2006-07-25 Steel Eye Technology, Inc. Hybrid transaction/intent log for data replication
US7426559B2 (en) * 2002-05-09 2008-09-16 International Business Machines Corporation Method for sequential coordination of external database application events with asynchronous internal database events
US7039661B1 (en) * 2003-12-29 2006-05-02 Veritas Operating Corporation Coordinated dirty block tracking
JP2005242403A (ja) * 2004-02-24 2005-09-08 Hitachi Ltd 計算機システム
US7707179B2 (en) * 2004-04-23 2010-04-27 Waratek Pty Limited Multiple computer architecture with synchronization
WO2006015612A1 (en) * 2004-08-12 2006-02-16 Telecom Italia S.P.A. A system, a method and a device for updating a data set through a communication network
US7933868B2 (en) * 2004-11-04 2011-04-26 Microsoft Corporation Method and system for partition level cleanup of replication conflict metadata
JP4887618B2 (ja) * 2004-11-19 2012-02-29 日本電気株式会社 ストレージシステムとそのレプリケーション方法並びにプログラム
JP4708084B2 (ja) * 2005-05-10 2011-06-22 富士通株式会社 レプリケーションプログラム及びデータベースシステム
US7868812B2 (en) * 2005-08-12 2011-01-11 Patriot Technologies, Llp Surveillance and warning system
US8589574B1 (en) * 2005-12-29 2013-11-19 Amazon Technologies, Inc. Dynamic application instance discovery and state management within a distributed system
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US8126848B2 (en) * 2006-12-07 2012-02-28 Robert Edward Wagner Automated method for identifying and repairing logical data discrepancies between database replicas in a database cluster
US8005787B2 (en) * 2007-11-02 2011-08-23 Vmware, Inc. Data replication method
US7870095B2 (en) * 2007-12-03 2011-01-11 International Business Machines Corporation Apparatus, system, and method for replication of data management information
US7962458B2 (en) * 2008-06-12 2011-06-14 Gravic, Inc. Method for replicating explicit locks in a data replication engine
US8214329B2 (en) * 2008-08-26 2012-07-03 Zeewise, Inc. Remote data collection systems and methods
US7974943B2 (en) * 2008-10-30 2011-07-05 Hewlett-Packard Development Company, L.P. Building a synchronized target database
US8880468B2 (en) * 2010-07-06 2014-11-04 Nicira, Inc. Secondary storage architecture for a network control system that utilizes a primary network information base
US8918362B2 (en) * 2011-05-23 2014-12-23 Microsoft Corporation Replication processes in a distributed storage environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040034670A1 (en) * 2002-07-31 2004-02-19 At&T Wireless Services, Inc. Efficient synchronous and asynchronous database replication
US20050149578A1 (en) * 2003-11-04 2005-07-07 Sustman Paul A. Hybrid real-time data replication
US20060238406A1 (en) * 2005-04-20 2006-10-26 Sicom Systems Ltd Low-cost, high-performance radar networks

Also Published As

Publication number Publication date
US20110066592A1 (en) 2011-03-17
JP2011060292A (ja) 2011-03-24
KR20110029071A (ko) 2011-03-22
US20130041869A1 (en) 2013-02-14
US8364636B2 (en) 2013-01-29
JP5496839B2 (ja) 2014-05-21

Similar Documents

Publication Publication Date Title
KR101231563B1 (ko) 실시간 데이터 복제
US10936447B2 (en) Resynchronizing to a first storage system after a failover to a second storage system mirroring the first storage system
EP3179359B1 (en) Data sending method, data receiving method, and storage device
EP3036634B1 (en) Disconnected operation for systems utilizing cloud storage
US10216589B2 (en) Smart data replication recoverer
US10157000B2 (en) Data operation method and device
US10922009B2 (en) Mirroring write operations across data storage devices
US8818936B1 (en) Methods, systems, and computer program products for processing read requests received during a protected restore operation
US9514013B2 (en) Maintaining inactive copy relationships for secondary storages of active copy relationships having a common primary storage for use in case of a failure of the common primary storage
JP2018073231A (ja) ストレージシステムおよびストレージ装置
WO2020060620A1 (en) Storage segment server covered cache
US9727626B2 (en) Marking local regions and providing a snapshot thereof for asynchronous mirroring
US7707372B1 (en) Updating a change track map based on a mirror recovery map
GB2527828A (en) Copy-on-read process in disaster recovery
US20130144977A1 (en) Shared-bandwidth multiple target remote copy
US20160041780A1 (en) Copying data in virtual sequential access volumes
WO2017026070A1 (ja) ストレージシステム及びストレージ管理方法
CN113392152B (zh) 用于更新信息的方法、电子设备和计算机程序产品
US20200110760A1 (en) Database server, database management method, and storage medium

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee