KR101052121B1 - 리플리카 서버 수행을 개선하는 방법 및 리플리카 서버시스템 - Google Patents

리플리카 서버 수행을 개선하는 방법 및 리플리카 서버시스템 Download PDF

Info

Publication number
KR101052121B1
KR101052121B1 KR1020077001665A KR20077001665A KR101052121B1 KR 101052121 B1 KR101052121 B1 KR 101052121B1 KR 1020077001665 A KR1020077001665 A KR 1020077001665A KR 20077001665 A KR20077001665 A KR 20077001665A KR 101052121 B1 KR101052121 B1 KR 101052121B1
Authority
KR
South Korea
Prior art keywords
replica
input data
primary
data
processing
Prior art date
Application number
KR1020077001665A
Other languages
English (en)
Other versions
KR20070046078A (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 KR20070046078A publication Critical patent/KR20070046078A/ko
Application granted granted Critical
Publication of KR101052121B1 publication Critical patent/KR101052121B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Abstract

리플리카 서버 시스템에서 리플리카 서버 수행을 개선하는 방법이 개시된다. 방법은 1차 리플리카로부터 2차 리플리카로 입력 데이터를 수신하는 동시에 전송하는 단계; 상기 1차 리플리카 상에 상기 입력 데이터를 저장하는 단계; 상기 입력 데이터를 저장한 후에 1차 리플리카에서 상기 입력 데이터를 처리하여 원래 출력 데이터를 생성하는 단계, 상기 입력 데이터를 수신할 때, 2차 리플리카로부터 1차 리플리카로 확인 데이터를 전송하는 단계; 및 상기 2차 리플리카로부터 상기 확인 데이터를 수신할 때, 상기 1차 리플리카로부터 상기 원래 출력 데이터를 전송하는 단계를 포함한다. 특히 방법을 수행하기 위해서 리플리카 서버 시스템이 또한 포함된다.
리플리카 서버 시스템, 1차 리플리카, 2차 리플리카, 확인 데이터, 출력 데이터, 입력 데이터

Description

리플리카 서버 수행을 개선하는 방법 및 리플리카 서버 시스템{METHOD OF IMPROVING REPLICA SERVER PERFORMANCE AND A REPLICA SERVER SYSTEM}
본 발명은 리플리카 서버 시스템(replica server system)에 관한 것이다.
정보 기술 시스템의 절대 안전한(failsafe) 동작은 가장 최근의 사회 활동을 위한 기본적인 중요성이다. 이로 인해서, 실패 상황을 처리하도록 행해지는 여러 예방 시스템이 있다.
이런 시스템은 메모리 백업 시스템을 통해 정보를 안전하게 할 뿐만 아니라 완전한 시스템 기능을 안전하게 할 수 있다. 후자는 완벽하게 반영되거나 잉여된 시스템을 포함할 수 있는데 여기서 모든 동작은 1차 시스템 구성 요소 및 2차 시스템 구성 요소(컴퓨터, 프로세서, 서버 등)에서 수행된다.
하나의 이런 절대 안전한 시스템은 미국 특허 제 6,526,487호에 개시되는데, 여기서 메모리 내용물은 동조된다. 1차 컴퓨터 시스템은 메모리에 저장될 데이터에 대한 기록 요청을 수신하는 지연 버퍼 및 메모리를 포함한다. 지연 버퍼의 내용물은 백업 컴퓨터 시스템으로 전송된다. 전송기가 완벽할 때, 백업 컴퓨터 시스템은 데이터가 수신되었다는 것을 확인하고, 그에 따라 제 1 컴퓨터 시스템은 기록 요청을 수행함으로써 계속된다. 이로써, 두 개의 시스템은 모든 시간에 동조되고, 확인 이 수신되기 전에 어떤 실패가 발생하는 것은 기록 요청이 실행되지 않는 결과를 가져올 것이다.
재정 분야, 예컨대, 주식, 채권, 복합 금융 상품 등을 위한 전자 교환 시스템에서, 메모리 상의 고속 절대 안전한 서버(failsafe high-speed in-memory server)를 사용한다. 이런 시스템은 또한 리플리카 서버 시스템이라 칭해진다. 상술된 시스템과 유사하게, 리플리카 서버 시스템은 1차 리플리카 및 2차 리플리카를 포함하는데, 둘 다는 동일하며, 동일한 상태이다. 1차 리플리카가 실패할 때, 2차 리플리카가 즉시 책임을 떠안을 것이다. 물론, 시스템은 여러 2차 리플리카를 포함하여 안전성을 증가시킬 수 있다. 1차 리플리카의 실패시, 2차 리플리카들 중 하나는 새로운 1차 리플리카가 될 것이지만, 다른 것들은 2차 리플리카로써 남아있다.
리플리카 서버 시스템 및 다른 유사한 시스템의 하나의 두드러진 단점은 지체 시간(lag time)이다. 리플리카 서버에서, 1차 리플리카는 음력 데이터를 수신하고, 이를 버퍼에 저장하고 (버퍼를 플러싱(flushing) 함으로써) 영구적인 메모리 예컨대, 디스크에 그것을 기록하고, 2차 리플리카(또는 리플리카들)로 입력 데이터를 전송하고, 버퍼 내의 입력 데이터를 저장하기 위해서 2차 리플리카를 기다리고, 그 자신의 영구적인 메모리(디스크) 상에 입력 데이터를 기록하며 입력 데이터를 수신했다고 확인하여 그 결과 1차 리플리카가 입력 데이터를 처리하여 처리된 데이터를 (I/O 인터페이스를 통해서) 출력할 수 있다(그러므로 또한 버퍼 내에 출력 데이터를 저장한다).
일반적으로 수천(또는 그 이상)의 같은 종류의 거래 또는 이벤트를 처리할 수 있도록 가정되는 시스템을 위해 소비하는 바로 그 시간은 특히 디스크(또는 사용되는 영구적인 메모리 어느 것이든지)에 기록하는 것이다. 기본적으로 기록은 일반적인 디스크 구동 동안(15000 rpm 및 3.8 ms의 탐색 시간)에 5.8ms 걸린다. 또한 기록 수행을 강화해온 사용 가능한 어떤 시스템(RAID 및 SAN 시스템뿐만 아니라 RAM 디스크)이 있지만, 세 개의 시스템은 매우 비싸다.
리플리카 서버 시스템의 다른 문제점은 용량인데, 즉 각 시간 유닛을 수행할 수 있는 이벤트 또는 거래의 수이다.
재정적인 거래(예컨대, 전자 교환)를 처리하는 리플리카 서버 시스템에서, 플러싱은 제 1 리플리카 및 2차 리플리카(들) 둘 다에서 새롭게 도입된 입력 데이터를 위해 행해진다. 각각의 이벤트 동안에 5.8ms의 상기 주의된 플러싱 시간을 고려하여, 시스템을 위한 제한은 초당 거의 170 거래(TPS)일 수 있다. 이런 비율을 강화하기 위해서, 오늘날의 전자 교환은 기록 수행을 강화하는 고가의 시스템을 사용할 필요가 있다. 그러나 본 발명은 비용을 낮추기 위해서 교환(매우 많은 수의 거래) 상에 높은 유동성을 필요로 한다.
2차 리플리카는 또한 입력 데이터를 처리하여 사본 또는 리플리카 출력 결과를 생성한다. 1차 리플리카 및 2차 리플리카가 먼 거리, 다른 대륙에서조차 위치될 때, 네트워크 지연 시간이 또한 중요하다. 여기서, 그러나 기술적인 시스템의 상태는 대륙간 통신을 위해 적절하게 낮은 지연 시간을 제공할 수 있다. 예를 들어, 뉴욕과 시카고 사이에 100MB 광대역을 성취할 수 있다. 이것은 1ms 또는 그 이하의 네트워크 지연 시간을 반송하는데, 이는 60-500ms의 왕복 운동 시간을 반송할 수 있는 전화 또는 위성 통신에 비해 배우 개선되었다. 그러므로 플러싱 기록 시간과 함께, 총 지체 시간은 아주 클 수 있다.
재정 시스템에서 이런 절차는 물론 가능한 안전한 것이다. 그러나 비록 그렇다 하더라도, 또한 시스템의 중단되지 않은 동작에 대한 치명적인 영향을 야기할 수 있는 다른 문제점이 존재한다. 시스템적인 오류에 대한 취약성은 항상 존재하고 예컨대, 0으로 나누는 것과 같은 논리적인 오류에 의해 야기될 수 있다. 이런 오류는 실제로 모든 리플리카가 실패하는 결과를 야기할 수 있고, 이런 오류가 분명해지는 것은 확인 이후까지가 아니기 때문이다. 그러나 정보를 처리하기 전에 모든 정보가 디스크(영구적인 메모리) 상에 기록되기 때문에, 공지된 시스템은 재저장될 수 있고, (크래시(crash)를 야기하는 동작을 건너뛴 이후에) 그들의 동작을 다시 시작할 수 있다. 이런 재저장은 물론 시간이 걸리고 그 사이에 모든 동작은 (재정적인 상품에서 모두 처리하는 전자 교환의 경우에) 중단된다.
그러므로 더 신속하고 보다 더 신뢰할 수 있는 리플리카 서버 시스템에 대한 요구가 있다. 특히 절대 안전한 모드에서 동작할 수 있는 반면 많은 수의 같은 종류의 거래를 하는 시스템에 대한 요구가 있다.
본 발명에 따라 리플리카 서버 수행을 개선하는 방법 및 시스템이 제공된다.
방법의 실시예에서, 1차 리플리카에 의해 수신된 입력 데이터가 즉시 2차 리플리카로 전송된다. 일단, 2차 리플리카가 입력 데이터를 수신하면, 그것은 확인 데이터를 다시 보내서 이를 확인한다. 동시에, 1차 리플리카는 버퍼에 입력 데이터를 저장하고 지연 없이 이를 처리하여 출력 데이터를 생성한다. 확인 데이터가 수신될 때, 출력 데이터가 1차 리플리카로부터 보내진다.
특히, 이런 방법에서, 전체 시스템의 안전을 유지하기 위해서 모든 이벤트에 대한 버퍼를 플러싱할 필요가 없으므로, 시간을 소비하는 기록 시간을 피한다. 시간을 버퍼링하여 처리하는 것은 네트워크 지연 시간(2차 리플리카로의 입력 데이터 전송 및 1차 리플리카로의 확인 데이터 전송)이 일반적으로 길기 때문에 일반적으로 입력으로부터 출력으로의 총 시간을 증가시키지 않을 것이다.
느린 네트워크에서, 또한 단일 이벤트(입력 대 출력) 동안의 총 시간을 달성하지 않고 네트워크 지연 시간 내에 각각의 이벤트 동안에 데이터를 디스크에 기록할 수 있다. 그러나 플러싱을 건너뛰어서 용량이 매우 증가된다. 일반적인 PC는 플러싱하는 것보다 1000배 이상 플러싱하지 않고 거의 170000 TPS로 처리할 수 있다.
안전성은 리플리카 서버 시스템을 위해 또한 유지된다. 2차 리플리카로부터의 확인을 수신할 때까지 출력 데이터가 전송되지 않기 때문에 1차 리플리카 및 2차 리플리카에 대한 완벽하게 동조된 시스템을 실제로 유지할 필요가 없다. 어떠한 출력도 시스템으로부터 전송되지 않는 한, 입력 시퀀스가 무의미하다. 1차 리플리카가 실패할 때, 2차 리플리카는 중단되지 않고 계속하고 기간에 1차 리플리카와 동일한 순서로 버퍼로부터 입력 신호를 처리하며 출력 데이터를 생성한다.
방법의 다른 실시예에서, 2차 리플리카는 다음 입력 데이터가 1차 리플리카로부터 수신될 때까지 입력 데이터를 처리하는 것이 지연되어, 1차 리플리카가 또한 동작한다는 것을 나타낼 것이다. 이는 임의의 시스템적인 실패를 2차 리플리카(또는 하나 이상의 2차 리플리카가 사용될 때는 2차 리플리카들)로 전송하는 것을 막는다. 그러므로 시스템 안정성은 거의 완벽하게 절대 안전하다. 하나의 2차 리플리카가 동작하는 한, 프로세싱은 중단되지 않고 계속될 것이다. 1차 리플리카는 실패하고, 시스템적인 에러가 추측될 때, 2차 리플리카는 상응하는 입력 데이터를 처리하는 것이 아니라 대신 신용하지 않는 동작으로써 그것을 분류하고, 입력 데이터의 (외부) 소스를 동작하기 위해서 거절을 되돌려 보낸다. 말할 필요도 없이, 이는 또한 불필요한 플러싱의 사용을 행한다. 어떠한 시스템적인 오류도 2차 리플리카에서 계속되지 않을 것이기 때문에 기록된 데이터로부터 전체 리플리카 시스템을 재저장할 필요가 없다.
수신된 입력 데이터의 수가 1차 리플리카에 대한 처리 시간을 초과한다면(예를 들어, 입력(B,C,D)이 도달하여 입력(A)이 처리되기 전까지도 2차 리플리카로 도달될 때), 제 2 리플리카가 계속되어 1차 리플리카가 입력(A)을 처리하는 것을 끝내기 전에 입력(A)을 처리하기 시작한다. 이런 상황은 무효로 될 수 있고 다수의 방법으로 방지될 수 있다.
한 방법은 입력(A)이 계속될 때까지 새로운 입력 데이터(즉, 입력 B,C 및 D등)를 거절할 것이다. 이들의 단점은 물론 수행될 수 있는 거래의 수를 제한하는 것이다.
다른 방법은 5개 또는 어떤 다른 적합한 수의 입력 데이터가 도달할 때까지 2차 리플리카에서 입력(A)의 처리와 함께 기다리는 것이고, 입력의 수는 선택되어 1차 리플리카가 입력(A)을 처리하는 시간을 갖는 것을 확인한다. 이런 방법의 명백한 단점은 물론 비록 새로운 입력 데이터가 존재하지 않고 1차 리플리카가 동작할지라도, 2차 리플리카가 항상 다수의 동작 후에 지체되어야만 한다는 것이다.
제3 바람직한 대안은 입력 데이터가 일반적으로 처리되는 것(또는 그것이 마지막으로 처리되는 것)을 나타내는 1차 리플리카로부터 정보 데이터를 전송하는 것이다. 이로써, 2차 리플리카에서 처리하는 것은 입력(A)이 1차 리플리카에서의 실패를 야기하지 않는다는 것을 정보 데이터가 나타낼 때까지 지연될 수 있다. 제3 대안의 주요 이점은 1차 리플리카가 비록 새로운 입력 데이터가 어떤 시간 동안(예컨대, 0.1초)에 도달하지 않을지라도 그의 기능을 나타내는 정보 데이터를 전송할 수 있다는 것이다. 그러므로 1차 리플리카 및 2차 리플리카는 때때로 (입력 데이터의 수 및 주파수에 따라) 완벽하게 동조될 것이다.
리플리카 서버 시스템의 과부하를 피해야 하기 때문에, 2차 리플리카로의 전달을 위해 줄지어 있는 입력 데이터의 수를 제한할 필요가 있을 수 있다. 이런 경우에, 1차 리플리카는 대기 행렬 제한이 이루어질 때, 임의의 입력 데이터를 거절해야만 할 것이다.
본 발명을 따르는 리플리카 서버 시스템의 한 실시예에서, 1차 리플리카는 1차 입력, 1차 출력, 1차 기억 장치 및 제 1 프로세서를 포함하고, 제 2 리플리카는 2차 입력, 2차 출력, 2차 기억 장치 및 2차 프로세서를 포함하는데, 이로써 상기 1차 리플리카는 수신된 입력 데이터를 2차 리플리카로 전송하도록 구성되고, 상기 입력 데이터를 저장하고, 원래 출력 데이터를 생성하기 위해서 상기 입력 데이터를 처리하며 상기 입력 데이터가 상기 2차 리플리카에 의해서 수신되는 확인 데이터를 수신한 후에 1차 출력을 통해 상기 원래 출력 데이터를 전송하고, 상기 2차 리플리카는 상기 입력 데이터를 수신할 때 상기 확인 데이터를 발생하도록 구성된다. 상기 2차 리플리카는 또한 2차 기억 장치에 상기 입력 데이터를 저장하고 리플리카 출력 데이터를 생성하도록 상기 2차 프로세서 내의 상기 입력 데이터를 처리하도록 구성된다.
본 애플리케이션에서, "저장" 및 "기록" 사이에서 명확한 구별이 행해진다는 것을 주의해야 하는데, 여기서 전자는 I/O 인터페이스에서의 일반적인 버퍼링을 나타내거나 상응하는 기억 장치를 나타내고, 후자는 플러싱 및 또는 유사한 시간을 소비하는, 영구적인 메모리로의 데이터 전송을 나타낸다. 버퍼 또는 기억 장치에 저장된 데이터는 (버퍼 또는 기억 장치가 다 차게 될 때) 더 긴 시간 간격으로 메모리에 기록될 수 있지만, 이는 공지된 리플리카 서버 시스템에 비해 본 발명을 따르는 리플리카 서버 시스템에 대한 전체적인 개선을 방해하지 않을 것이다.
유리하게는 적어도 다음 입력 데이터가 수신될 때까지 상기 2차 리플리카가 또한 상기 2차 프로세서 내의 상기 입력 데이터의 프로세싱을 지연하도록 구성된다. 그러므로 시스템적인 에러는 피해진다. 상술된 방법과 같이, 2차 리플리카는 입력 데이터를 처리하기 전에 5개 또는 그 이상의 다음 입력 데이터를 기다릴 수 있다.
대안으로, 리플리카 서버 시스템은 또한 입력 데이터가 성공적으로 처리된다는 것을 1차 리플리카로부터 정보 데이터가 나타낼 때, 2차 리플리카에서 프로세싱을 지연할 수 있다.
본 발명을 따르는 리플리카 서버 시스템의 다른 예에서, 리플리카 서버 시스템은 1차 리플리카 수단, 2차 리플리카 수단, 상기 1차 리플리카 수단 및 상기 2차 리플리카 사이에서 내부적으로 통신하고 상기 1차 리플리카 수단 및 외부 소스 사이에서 외부적으로 통신하는 수단으로서, 상기 통신 수단은 상기 1차 리플리카 수단에 의해서 수신된 입력 데이터를 상기 2차 리플리카 수단으로 전송하도록 구성되는 통신 수단; 상기 1차 리플리카 수단에 상기 입력 데이터를 저장하는 수단, 상기 1차 리플리카 수단에서 상기 입력 데이터를 처리하여 원래 출력 데이터를 생성하는 수단, 상기 입력 데이터를 수신하여 상기 통신 수단을 통해서 상기 1차 리플리카 수단으로 상기 확인 데이터를 전송할 때, 상기 제2 리플리카 수단에서 확인 데이터를 발생시키는 수단, 및 상기 원래 출력 데이터가 생성되고 상기 확인 데이터가 상기 1차 리플리카 수단에 의해서 수신될 때 상기 통신 수단을 통해 상기 원래 출력 데이터를 출력하는 수단을 포함한다. 2차 리플리카 수단은 제 2 리플리카 수단에 상기 입력 데이터를 저장하는 수단 및 상기 2차 리플리카 수단에서 상기 입력 데이터를 처리하는 수단을 더 포함하여, 리플리카 출력 데이터를 생성한다.
바람직한 실시예에서, 상기 2차 리플리카 수단은 적어도 하나의 다음 입력 수단이 상기 전달 수단을 통해 상기 1차 리플리카 수단으로부터 수신될 때까지 상기 2차 리플리카 수단에 상기 데이터를 저장하는 상기 수단 및 상기 2차 리플리카 수단에서 상기 입력 데이터를 처리하는 상기 수단을 억제하는 수단을 포함한다.
또한, 본 발명의 이런 실시예에 대해서, 1차 리플리카 수단은 그의 처리 상태를 나타내는 정보 데이터를 발생시키고 입력 데이터가 성공적으로 처리된다는 것을 정보 데이터가 나타낼 때까지 2차 리플리카 수단에서의 처리가 지연될 수 있다.
도1은 본 발명에 대한 동작 환경이 도시된 리플리카 서버 시스템의 제1 실시예의 개략도;
도2A는 기술적인 리플리카 서버 시스템의 상태에 대한 이벤트 주기를 나타내는 개략적인 이벤트 라인을 도시하는 도면;
도2B는 본 발명을 따르는 리플리카 서버 시스템에 대한 이벤트 주기를 나타내는 개략적인 이벤트 라인을 도시하는 도면; 및
도3은 본 발명에 대한 동작 환경이 도시된 리플리카 서버 시스템의 제1 실시예의 개략도.
도1은 일반적으로 본 발명을 따르는 리플리카 서버 시스템(100)을 도시한다. 리플리카 서버 시스템(100)은 특히 정보를 저장하는 1차 기억 장소(102) 및 데이터를 처리하는 1차 프로세서(103)를 포함하는 1차 리플리카(101)를 포함한다.
1차 기억 장소(102)는 공지된 종류의 버퍼 기억 장소인 것이 바람직하지만, 또한, 하드 디스크 메모리 기록할 수 있는 CD 또는 DVD디스크 또는 데이터에 대한 임의의 다른 공지된 영구적인 메모리 용량을 포함할 수 있다. 그러나 종래 리플리카 시스템과는 달리, 리플리카 서버 시스템(100)은 일반적으로 각각의 이벤트 이후에 디스크 상에 데이터를 기록하기 위해 플러시하지 않을 것이다(이는 또한 포함될 수 있을지라도- 플러싱이 일반적으로 프로세서에서의 가장 용량-제한적인 단계이기 때문에 본 발명의 대부분의 양의 효과를 감소시킬 것이다). 버퍼가 가득 찰 때, 일반적인 플러싱은 물론 수행된 거래의 레지스터를 획득하기 하는 일이 발생할 수 있다(일어날 것이다).
1차 프로세서(103)는 기술 중심 프로세서 또는 컴퓨터, 서버 등에 사용되는 프로세서들의 결합물의 어떤 상태일 수 있다.
게다가, 리플리카 서버 시스템(100)은 제1 2차 리플리카(104) 및 제2 2차 리플리카(107)를 포함한다. 기본적으로 리플리카 서버 시스템(100)은 시스템의 애플리케이션에 적용할 수 있는 어떤 수의 2차 리플리카들을 포함할 수 있다. 제1 2차 리플리카(104)는 특히 제1 2차 기억 장치(104) 및 제1 2차 프로세서를 포함하고, 제2 2차 리플리카(107)는 특히 제2 2차 기억 장치(105) 및 제2 2차 프로세서(106)를 포함하는데, 이들 모두는 1차 리플리카(101)에 사용된 것과 동일한 유형의 구성 요소를 가질 수 있다. 하드웨어 정도까지는, 1차 리플리카(101) 및 두 개의 2차 리플리카들(104,107)이 개별적일 수 있다(바람직하게는 개별적이다).
1차 리플리카(101) 및 2차 리플리카들(104,107)은 통신 유닛(110) 및 통신 링크(111)를 통해 내부적으로 통신한다. 통신 유닛(110)은 또한 통신 네트워크(112)를 통해 외부 소스(113)와의 통신을 제공한다. 통신 네트워크(112)는 예컨대, 이더넷 LAN, 전화기, 위성 등을 통해 다른 외부 소스(113)에 대한 여러 통신 채널을 사용할 수 있다. 외부 소스(113)는 단말기, 컴퓨터, 전자 교환 또는 리플리카 서버 시스템(100)에 의해 처리될 데이터를 생성하는 어떤 다른 장치(들)를 포함할 수 있다. 외부 소스(113)는 또한 리플리카 서버 시스템(100)으로부터 출력 데이 터를 수신한다.
외부 소스(113)로부터 수신된 일반적으로 쓰이고 있는 입력 데이터는 통신 유닛(110) 및 통신 링크(111)를 통해서 1차 리플리카(101)로 경로가 지정된다. 입력 데이터는 그 후에 통신 유닛(110) 및 통신 링크(111)를 통해서 1차 리플리카(101)로부터 2차 리플리카들(104,107)로 전송된다. 바람직하게는 입력 데이터가 그것을 수신할 때 즉시 1차 리플리카(101)로부터 전송된다.
통신 네트워크(112)와 유사하게, 통신 링크(111)는 주로 2차 리플리카들(104,107)의 위치에 따라 여러 다른 종류의 유선 또는 무선 구성 요소를 포함할 수 있다. 예를 들어, 제1 2차 리플리카(104)는 1차 리플리카(101)의 근접하게 위치될 수 있고, 광대역 접속을 사용하는 반면, 제2 2차 리플리카(107)는 멀리 떨어져 위치되어 위성을 통해 1차 리플리카(101)로 링크될 수 있다.
2차 리플리카들(104,107)이 입력 데이터를 수신할 때, 그들이 입력 데이터를 수신했다는 확인 데이터(인정)를 발생할 것이고, 1차 리플리카(101)로 확인 데이터를 전송할 것이다. 바람직하게는, 확인이 입력 데이터를 수신할 때 즉시 행해진다.
그동안, 입력 데이터는 1차 기억 장치(102) 상에 저장되어 1차 리플리카(101)의 1차 프로세서(103) 내에서 처리된다. 이로써, 원래 출력 데이터가 생성된다. 그러나 이런 출력은 입력 데이터가 2차 리플리카들(104,107)에 의해서 수신되어왔다는 것을 나타내는 확인 데이터를 수신할 때까지 1차 리플리카(101)로부터 전송되지 않는다. 이것이 발생할 때, 원래 출력 데이터는 통신 유닛(110)을 통해 외부 소스(113)로 전송된다. 1차 리플리카(101)가 2차 리플리카들(104,107) 중 하 나로부터의 제1 확인을 기다리는 것을 허용하기 위해서 리플리카 서버 시스템(100)의 안정성이 충분하다. 이는 지연 시간을 필수적으로 감소시킬 수 있다; 참고. 근처에 위치되고 신속한 광대역 통신 링크(예컨대, 이더넷 LAN 100MB)를 통해 접속된 제1 2차 리플리카(104) 및 멀리 위치되어/되거나 느린 통신 링크(위성)를 통해 접속된 제2 2차 리플리카(107)를 갖는 상기 예. 명백하게, 이것은 개별적인 이벤트들 또는 거래 동안의 지연시간 즉, 시간 유닛당 동작 가능한 거래의 수가 아니라 입력으로부터 출력까지의 짧은 시간을 감소시킬 것이다.
일단 1차 리플리카(101)가 입력 데이터를 전송한다면, 새로운 입력 데이터(다음 입력 데이터)를 수신할 준비를 한다. 상술된 바와 같이, 일단 다음 입력 데이터가 1차 리플리카(101)에 의해서 수신된다면, 2차 리플리카들(104,107)로 다음 입력 데이터를 전송하고, 그 후에 이런 다음 입력 데이터를 저장하고 처리함으로써 계속된다.
서버 리플리카 시스템(100)을 동작하는 이런 방법은 2차 리플리카들(104,107)이 일반적으로 1차 리플리카와 동조되지 않을 것이라는 것을 의미한다. 사실, 1차 리플리카(101)는 2차 리플리카들(104,107)에 앞서 수백 또는 수천의 이벤트일 수 있다. 이는 역시 매우 안전한 동작에 관한 어떤 문제를 야기하지 않는다. 1차 리플리카(101)는 적어도 하나의 2차 리플리카들(104,107)로부터 확인 데이터를 수신한 후에 (원래) 출력 데이터만을 전송한다. 그러므로 1차 리플리카에서의 실패는 2차 리플리카들(104,107) 중 하나가 새로운 1차 리플리카로 지정되고 그것에 의해 아직도 수신되지 않은 이벤트를 감지하기 때문에 근소한 지연만을 야기할 것이다. 2차 리플리카들(104,107)이 1차 리플리카(101)를 통해 수신되었다는 입력 데이터는 모든 리플리카(101,104,107)에 의해 동일한 순서로 처리된다는 것이 보장된다. 그러나 1차 리플리카(101)에 의해 수신되는 최종 입력 데이터는 1차 리플리카(101)가 실패할 때 2차 리플리카들(104,107)로 전송되지 않을 수 있다. 이런 경우에, 외부 소스(113)는 입력 데이터를 새로운 1차 리플리카(2차 리플리카들(104,107) 중 하나)로 재전송할 수 있다. 여러 외부 소스(113)가 존재하기 때문에, 1차 리플리카(101)에 의해서 손실된 입력 데이터의 순서는 새로운 1차 리플리카(104,107)에 의해 동일한 순서로 수신되지 않을 수 있다. 이는 어떠한 출력도 이런 입력 데이터 손실에 기초하여 1차 리플리카(101)에 의해 전송되지 않기 때문에 중요하지 않다.
어떤 경우에, 2차 리플리카들(104,107)이 다음 입력 데이터를 수신할 때, 1차 리플리카(101)가 논리 에러와 같은 어떤 시스템적인 에러로 인해 동작을 그만두지 않는다고 가정될 수 있다. 2차 리플리카들(104,107)은 그 후에 개별적인 2차 기억 장소(105,108) 상에 입력 데이터를 저장함으로써 계속 될 수 있고 개별적인 2차 프로세서(106,109) 상의 입력 데이터를 처리할 수 있다.
그러나 1차 리플리카(101)가 수신되고 다수의 입력 데이터, 예컨대, 입력(B), 입력(C) 및 입력(D)이 입력(A)을 처리하기 전에 전송되기 때문에 이런 절차가 적합하지 않은 상황이 발생할 수 있다. 이런 경우에, 2차 리플리카들(104,107)은 입력(A)이 또한 1차 리플리카(101)에서 시스템적인 에러를 야기할 수 있기 때문에, 그들이 입력(B)을 수신한다는 이유만으로 입력(A)을 처리하는 것이 허용될 수 없다.
이런 문제점을 해결하는 한 방법은 입력(A)이 성공적으로 처리될 때까지 1차 리플리카(101)로부터 입력(B)의 전달을 지연하는 것이다. 그러나 이는 시스템의 수행 상에서 방해될 것이고 바람직하지 않다.
더 용이한 대안은 프로세싱이 2차 리플리카(104,107)에서 행해질 때까지 특정한 수의 입력 데이터를 기다리는 것이다. 예를 들어, 입력(A)은 입력(E)이 2차 리플리카들(14,107)에 의해 수신될 때까지 처리되지 않는다. 적합한 수의 입력을 선택함으로써, 일반적인 처리 시간에 관하여 선택된, 평균 입력 데이터 주파수, 즉 기능은 확인될 수 있다. 이것에 대한 하나의 가능성 있는 단점은 1차 리플리카(101)에서 특정한 실패가 야기되는 입력(예컨대, 입력(B) 또는 입력(C))을 삭제할 수 없을 수 있다는 것이다. 이로써, 몇몇 입력 데이터는 새로운 1차 리플리카의 규칙을 취하는 2차 리플리카의 기능을 확인하기 위해서 거부되어야만 한다.
더 바람직한 해결책은 1차 리플리카(101)의 처리 상태에 대한 확인 데이터를 생성하고 이를 2차 리플리카들(104,107)로 전송하는 제 1 리플리카(101)를 갖는 것이다. 입력(B), 입력(C) 등을 2차 리플리카들(104,107)로 전송할 때, 1차 리플리카(101)는 예컨대, 입력(A)을 처리하는 정보를 부가한다. 일단 1차 리플리카(101)가 정보(B)를 처리한다는 통지를 시작한다면, 2차 리플리카들(104,107)은 입력(A)을 처리하기 시작할 수 있다.
처리하기 위한 1차 리플리카(101)를 위한 대기 행렬에 어떠한 입력 데이터도 없다면, 또한 2차 리플리카품들(104,107)로 그것이 (심장 박동 수로) 동작할 수 있 다는 것을 나타내는 정보 데이터를 전송할 수 있다. 이는 2차 리플리카들(104,107)이 (1차 리플리카(101)에서 어떤 실수를 야기하지 않는다고 공지된) 마지막으로 수신된 입력 데이터를 처리하도록 허용하는 특정한 상황에 필요하다. 이로써, 1차 리플리카(101) 및 2차 리플리카들(104,107)이 어떤 시간에 동일한 상태(즉, 충분히 동조됨)일 수 있다. 또한, 일반적인 동작성에 관한 경고를 계속 유지할 수 있다. 어떤 기준 시간(time span) 동안에 1차 리플리카(101)로부터의 어떠한 정보 데이터도 존재하지 않는다면, 실패했다고 가정되며 2차 리플리카들(104,107) 중 하나가 새로운 1차 리플리카로 지정될 것이고 외부 소스(113)로부터 모든 입력 데이터를 수신할 것이다.
또한, 1차 리플리카(101) 및 2차 리플리카들(104,107)이 만족스럽게 동작한다는 것을 보장하기 위해서 부가적인 안정성 측정치를 포함할 수 있다.
또한, 입력 데이터를 처리할 때까지 2차 리플리카들(104,107)로부터 확인을 지연함으로써(다음 입력 데이터 또는 적합한 정보 데이터를 수신할 때 그들이 행함), 비교는 세 개의 리플리카들(101,104,107)에 의해서 획득된 결과(원래 리플리카 출력 데이터)로 구성될 수 있다. 모든 세 개의 리플리카가 동일한 결과에 이른다면, 모두 양호하다. 하나가 다른 두 개와 다른 결과를 가져온다면, 그 리플리카는 (2차 리플리카(101)일지라도) 중단된다. 모든 세 개의 리플리카(101,104,107)들이 여러 결과를 가져온다면, 모든 것은 실패했다고 가정되며 전체 리플리카 서버 시스템(100)은 중단되어 제어되어야만 한다.
이는 또한 비잔틴 실패 허용 오차(Byzantine fault tolerance)라 공지된 실 패 검출 방법에 상응한다.
도2A 및 도2B에서, 본 발명의 시간 절약 효과가 더 명백해질 것이다. 도2A는 기술적인 리플리카 서버 시스템의 상태에 대한 기본적인 동작 단계를 도시하여 시작한다.
입력 데이터는 1차 리플리카로 라인(220)으로 나타내지는 바와 같이 도달한다. 입력 데이터는 디스크 상에 저장되고(이벤트 라인(201)으로 나타내짐), 어떤 디스크 기록 시간을 취하는 절차는 W1로 나타내진다. 이에 따라, 입력 데이터는 2차 리플리카로 전송된다(이벤트 라인(202)에 의해서 나타내짐). 이런 프로세스는 2차 리플리카가 위치되고, 네트워크 지연 시간(N1)으로 나타내지는 곳에 따라 시간이 걸린다. 다시, 입력 데이터는 디스크에 기록되고, 제2 디스크 기록 시간(W2)을 총 시간에 더한다. 일단 입력 데이터가 또한 2차 리플리카에 기록되면, 확인은 1차 리플리카로 되돌아 간다. 제2 네트워크 지연 시간(N2)은 절차 동안의 총 시간에 더해진다. 마침내, 1차 리플리카는 처리 시간(P1)을 필요로 하는 입력 데이터를 처리할 수 있는데, 203으로 나타내지는 결과를 출력한다.
이벤트 라인(201,202)은 선형 실시간 표시자로 나타내지지 않는다는 것을 주의해야만 한다. 기록 시간(W1,W2)은 일반적으로 광범위하게 예컨대 처리 시간(P1)보다 길어진다. 도2A 및 도2B는 본 발명의 효과 및 이득을 도시하도록 의도되지만, 서버 리플리카 시스템 동작의 실시간 스케줄을 도시하지 않는다.
대체로, 기록 시간(W1), 네트워크 지연 시간(N1), 기록 시간(W2), 네트워크 지연 시간(N2) 및 처리 시간(P1)은 하나의 동작(거래)을 수행하는데 필요로 되는 계산된 시간(T1=W1+N1+W2+N2+P1)의 양이다.
또한 도2A에서, 다음 입력 데이터는 점선으로 나타내지고, 204로 나타내진다. 동일한 프로세스는 모두 점선으로 나타내지는 다음 입력 데이터로 반복되는데, 이는 205로 나타내지는 출력 데이터로 끝난다.
도2B에서, 본 발명을 통해 획득되는 한 양상이 명백해진다. 입력 데이터는 210에서 나타내지고 1차 리플리카로 도달한다(이벤트 라인(211)으로 나타내짐). 입력 데이터는 즉시 2차 리플리카로 전송되고(이벤트 라인(212)으로 나타내짐), 이는 2차 리플리카의 위치에 따라 어떤 시간이 걸린다. 여기서, 위치는 도2A와 동일하다고 가정된다. 그러므로 정보를 전송하기 위해서 네트워크 지연 시간(N1)을 필요로 한다. 제2 리플리카가 입력 데이터를 수신하자마자, 확인(확인 데이터)이 1차 리플리카로 다시 전송된다. 처리된 데이터는 213에서 출력될 수 있고, 즉, 입력 데이터가 처리되자마자 확인이 2차 리플리카로부터 수신된다.
보여지는 바와 같이, 네트워크 지연 시간(N1,N2)이 이런 경우에 기록 시간 및 처리 시간을 초과한다. 그러므로 한 동작에서 소모되는 총 시간(T2)은 이런 경우에 T2=N1+N2인 양이다. 동작 동안에 전체 기록 시간 및 처리 시간은 총 시간으로부터 단축된다. 이런 경우에, 개별적인 이벤트 동안, 플러시된 디스크 기록이 사용되든지 아니든지 총 시간(T2)이 실제로 중요하지 않다. 그러나 플러시된 디스크 기록을 사용하지 않는 것은 시간당 처리될 수 있는 수 또는 이벤트를 증가시킬 것이다. 다시 말해서, 다음 이벤트는 플러시된 디스크 기록이 사용되는 경우보다 매우 더 먼저 도달할 수 있다.
또한, 도2B에서, 다음 입력 데이터(214)를 따르는 전체 프로세스가 점선으로 나타내지고, 다음 출력 데이터(215)에서 끝난다. 이로부터 명백해지는 바로써, 2차 리플리카에서의 입력 데이터의 기록 및 처리는 다음 입력 데이터(224)가 2차 리플리카에 도달할 때까지 실행되지 않는다. 이는 1차 리플리카가 또한 동작하고 있고 시스템적인 에러(예컨대, 0으로 나눔)로 인해 실패했다는 것을 나타낸다.
또한, 도1에 관하여 언급된 바와 같이, 1차 리플리카는 2차 리플리카로 그의 처리 상태에 관한 정보 데이터를 전송할 수 있다. 이런 경우에, 일단 입력 데이터가 성공적으로 처리되었다는 정보 데이터가 나타내지면 2차 리플리카에서 저장 및 프로세싱이 발생할 것이다.
이제 도3을 참조하면, 리플리카 서버 시스템(300)의 제2 바람직한 실시예가 개략적으로 도시되었다.
리플리카 서버 시스템(300)은 1차 리플리카(301) 및 2차 리플리카(302)를 포함한다. 1차 리플리카(301)는 1차 통신 모듈(303), 1차 기억 장소(304) 및 1차 프로세서(305)를 포함한다. 2차 리플리카(302)는 마찬가지로 2차 통신 모듈(306), 2차 기억 장소(307) 및 2차 프로세서(308)를 포함한다. 도1에서의 1차 실시예와 같이, 통신, 저장 및 프로세싱이 가능한 공지된 구성요소가 사용될 수 있다. 마찬가지로, 여러 구성 요소는 유닛을 분리할 수 있고, 하나 이상의 유닛으로 통합될 수 있다. 다른 기능은 또한 리플리카들(301,302) 내에 포함될 수 있다.
1차 통신 모듈 및 2차 통신 모듈(306)은 1차 리플리카(301) 및 2차 리플리카(302) 사이에서 통신을 가능하게 하도록 (유선 또는 무선으로) 링크된다. 1차 통 신 모듈(303)은 또한 통신 링크(309)를 통해서 외부 소스(도시되지 않음)와 통신할 수 있다. 1차 리플리카(301)의 실패 경우에, 2차 리플리카(302)는 새로운 1차 리플리카가 될 것이다. 이런 경우에, 라우터(310)는 2차 리플리카(302)가 외부 소스와의 통신을 가능하게 할 것이다. 라우터(301)의 기능은 1차 통신 모듈(303) 및 2차 통신 모듈(306)에서 (하드웨어 또는 소프트웨어) 구현될 수 있다.
입력 데이터가 통신 링크(309)를 통해 외부 소스로부터 도달할 때, 1차 리플리카(301)는 입력 데이터를 2차 리플리카(302)로 전송할 것이고, 그 후에 1차 기억 장소(304)의 입력 데이터를 저장함으로써 계속되어 1차 프로세서(305)에서 입력 데이터를 처리한다. 일단 확인 또는 확인 데이터가 2차 리플리카(302)로부터 수신되면, 처리된 데이터는 외부 소스로 다시 출력될 수 있다. 다음 입력 데이터가 수신되어 2차 리플리카(302)로 전송될 때 또는 입력 데이터가 성공적으로 처리되었다고 1차 리플리카(301)로부터의 정보 데이터가 나타낼 때, 2차 리플리카는 입력 데이터를 저장하여 처리할 수 있다.
도1에 관하여 설명된 모든 기능은 이런 실시예에서 또한 적용될 수 있다. 도시된 실시예들 사이의 결합이 또한 가능하다. 예를 들어, 도3에서의 실시예는 하나의 2차 리플리카 이상을 포함할 수 있고, 도1에서의 리플리카들은 리플리카들 사이의 내부 통신을 위해서 통신 수단을 모두 포함할 수 있다.
다른 실시예는 상술된 실시예에 대한 단순하고 간단한 수정으로 바뀔 수 있다. 이들은 또한 첨부된 청구항에 의해 설명되는 바와 같이, 본 발명의 범위 내에 존재하는 것으로 보여진다.

Claims (12)

  1. 정보를 저장하는 1차 기억 장치 및 1차 프로세싱 수단과 연관된 1차 리플리카, 및 2차 기억 장치 및 2차 프로세싱 수단과 연관된 2차 리플리카를 포함하는 리플리카 서버 시스템에서 리플리카 서버 수행을 개선하는 방법에 있어서,
    - 입력 데이터를 수신할 때, 상기 1차 리플리카로부터 상기 2차 리플리카로 입력 데이터를 전송하는 단계,
    - 상기 1차 기억 장치 상에 상기 입력 데이터를 저장하는 단계,
    - 상기 입력 데이터의 저장 이후에 상기 1차 프로세싱 수단에서 상기 입력 데이터를 처리하여 원래 출력 데이터를 생성하는 단계,
    - 상기 입력 데이터를 수신할 때, 상기 2차 리플리카로부터 상기 1차 리플리카로 확인 데이터를 전송하는 단계, 및
    - 상기 2차 리플리카로부터 상기 확인 데이터를 수신할 때 상기 1차 리플리카로부터 상기 원래 출력 데이터를 전송하는 단계를 포함하는 것을 특징으로 하는 리플리카 서버 시스템에서 리플리카 서버 수행 개선 방법.
  2. 제 1항에 있어서,
    상기 입력 데이터가 상기 2차 기억 장치 상에 저장되고, 상기 입력 데이터가 상기 2차 프로세싱 수단에서 처리되어, 리플리카 출력 데이터를 생성하는 것을 특징으로 하는 리플리카 서버 시스템에서 리플리카 서버 수행 개선 방법.
  3. 제 2항에 있어서,
    상기 2차 프로세싱 수단에서 상기 저장 및 프로세싱이 적어도 다음 입력 데이터가 상기 1차 리플리카로부터 수신될 때까지 지연되는 것을 특징으로 하는 리플리카 서버 시스템에서 리플리카 서버 수행 개선 방법.
  4. 제 2항에 있어서,
    상기 입력 데이터의 처리에 관련된 정보 데이터가 상기 1차 리플리카로부터 전송되고 상기 입력 데이터가 상기 1차 프로세싱 수단에 의해서 성공적으로 처리된다고 나타낼 때까지 상기 제1 프로세싱 수단에서 저장 및 프로세싱이 지연되는 것을 특징으로 하는 리플리카 서버 시스템에서 리플리카 서버 수행 개선 방법.
  5. 리플리카 서버 시스템에 있어서,
    1차 입력, 1차 출력, 1차 기억 장치 및 상기 1차 기억 장치에 관련된 1차 프로세서를 포함하는 1차 리플리카를 포함하고, 상기 1차 프로세서는 2차 입력, 2차 출력, 2차 기억 장치 및 상기 2차 기억 장치에 관련된 2차 프로세서를 포함하는 2차 리플리카에 접속되고, 상기 1차 리플리카는 수신된 입력 데이터를 상기 2차 리플리카로 전송하고, 상기 1차 기억 장치 상에 상기 입력 데이터를 저장하고, 상기 1차 프로세서 상의 상기 입력 데이터를 처리하여 원래 출력 데이터를 생성하며, 상기 입력 데이터가 수신되었다는 확인 데이터를 상기 2차 리플리카로부터 수신한 수에 상기 1차 출력을 통해 상기 원래 출력 데이터를 전송하도록 구성되고, 상기 2차 리플리카는 상기 2차 입력 상에 상기 입력 데이터를 수신할 때 상기 확인 데이터를 발생시키도록 구성되는 것을 특징으로 하는 리플리카 서버 시스템.
  6. 제 5항에 있어서,
    상기 2차 리플리카가 상기 2차 기억 장치에 상기 입력 데이터를 저장하고, 상기 원래 출력 데이터로 상기 리플리카 출력 데이터를 생성하기 위해서 상기 2차 프로세서에서 상기 입력 데이터를 처리하도록 더 구성되는 것을 특징으로 하는 리플리카 서버 시스템.
  7. 제 6항에 있어서,
    상기 2차 리플리카가 상기 2치 기억 장치에 상기 입력 데이터를 저장하고 다음 입력 데이터가 상기 1차 리플리카로부터 수신될 때까지 상기 2차 프로세서에서 상기 입력 데이터를 처리하는 것을 지연하도록 더 구성되는 것을 특징으로 하는 리플리카 서버 시스템.
  8. 제 6항에 있어서,
    상기 1차 리플리카는 입력 데이터가 처리되었다고 나타내는 정보 데이터를 발생시키고 상기 정보 데이터를 상기 2차 리플리카로 전송하도록 구성되고, 상기 2 차 리플리카는 상기 제2 기억 장소에 상기 입력 데이터를 저장하고 상기 입력 데이터가 상기 1차 리플리카에 의해서 성공적으로 처리되었다는 것을 나타내는 정보 데이터가 수신될 때까지 상기 2차 프로세서에서 상기 입력 데이터를 처리하도록 구성되는 것을 특징으로 하는 리플리카 서버 시스템.
  9. 1차 리플리카 수단;
    2차 리플리카 수단;
    상기 1차 리플리카 수단 및 상기 2차 리플리카 사이에서 내부적으로 통신하고 상기 1차 리플리카 수단 및 외부 소스 사이에서 외부적으로 통신하는 수단으로서, 상기 통신 수단은 상기 1차 리플리카 수단에 의해서 수신된 입력 데이터를 상기 2차 리플리카 수단으로 전송하도록 구성되는 통신 수단;
    상기 1차 리플리카 수단에 상기 입력 데이터를 저장하는 수단;
    상기 1차 리플리카 수단에서 상기 입력 데이터를 처리하여 원래 출력 데이터를 생성하는 수단;
    상기 입력 데이터를 수신하여 상기 통신 수단을 통해서 상기 1차 리플리카 수단으로 상기 확인 데이터를 전송할 때, 상기 제2 리플리카 수단에서 확인 데이터를 발생시키는 수단; 및
    상기 원래 출력 데이터가 생성되고 상기 확인 데이터가 수신될 때 상기 통신 수단을 통해 상기 원래 출력 데이터를 출력하는 수단을 포함하는 것을 특징으로 하는 리플리카 서버 시스템.
  10. 제 9항에 있어서,
    상기 2차 리플리카 수단은:
    상기 2차 리플리카 수단에 상기 입력 데이터를 저장하는 수단; 및
    상기 2차 리플리카 수단에서 상기 입력 데이터를 처리하여 리플리카 출력 데이터를 생성하는 수단을 더 포함하는 것을 특징으로 하는 리플리카 서버 시스템.
  11. 제 10항에 있어서,
    상기 2차 리플리카 수단이 상기 2차 리플리카 수단에 상기 입력 데이터를 저장하는 상기 수단 및 다음 입력 데이터가 상기 1차 리플리카 수단으로부터 수신될 때까지 상기 2차 리플리카 수단에서 상기 입력 데이터를 처리하는 상기 수단을 방해하는 수단을 포함하는 것을 특징으로 하는 리플리카 서버 시스템.
  12. 제 10항에 있어서,
    상기 1차 리플리카 수단은 입력 데이터가 상기 1차 리플리카 수단에 의해서 처리되었다는 것을 나타내는 정보 데이터를 발생시키는 수단을 더 포함하는데, 상기 정보 데이터는 상기 통신 수단을 통해 상기 2차 리플리카 수단에 전송될 수 있고, 상기 2차 리플리카 수단은 상기 2차 리플리카 수단에 상기 입력 데이터를 저장하는 수단 및 상기 1차 리플리카 수단에서 상기 입력 데이터를 처리하는 수단이 상기 입력 데이터를 처리했다는 것을 나타내는 상기 정보 데이터를 상기 2차 리플리 카가 수신할 때까지 상기 2차 리플리카 수단에서 상기 입력 데이터를 처리하는 수단을 방해하는 수단을 포함하는 것을 특징으로 하는 리플리카 서버 시스템.
KR1020077001665A 2004-07-23 2005-06-30 리플리카 서버 수행을 개선하는 방법 및 리플리카 서버시스템 KR101052121B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/897,436 2004-07-23
US10/897,436 US7321906B2 (en) 2004-07-23 2004-07-23 Method of improving replica server performance and a replica server system
PCT/EP2005/053090 WO2006008226A2 (en) 2004-07-23 2005-06-30 Method of improving replica server performance and a replica server system

Publications (2)

Publication Number Publication Date
KR20070046078A KR20070046078A (ko) 2007-05-02
KR101052121B1 true KR101052121B1 (ko) 2011-07-26

Family

ID=35559426

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077001665A KR101052121B1 (ko) 2004-07-23 2005-06-30 리플리카 서버 수행을 개선하는 방법 및 리플리카 서버시스템

Country Status (11)

Country Link
US (1) US7321906B2 (ko)
EP (1) EP1771789B1 (ko)
KR (1) KR101052121B1 (ko)
AT (1) ATE443890T1 (ko)
AU (1) AU2005263685C1 (ko)
CA (1) CA2572820A1 (ko)
DE (1) DE602005016807D1 (ko)
MX (1) MX2007000075A (ko)
PL (1) PL1771789T3 (ko)
WO (1) WO2006008226A2 (ko)
ZA (1) ZA200701434B (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774492B2 (en) * 2001-07-26 2010-08-10 Citrix Systems, Inc. System, method and computer program product to maximize server throughput while avoiding server overload by controlling the rate of establishing server-side net work connections
US7978716B2 (en) * 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US8739274B2 (en) * 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US8046830B2 (en) * 2004-07-23 2011-10-25 Citrix Systems, Inc. Systems and methods for network disruption shielding techniques
AU2005266945A1 (en) * 2004-07-23 2006-02-02 Citrix Systems, Inc. A method and systems for securing remote access to private networks
EP1776825B1 (en) * 2004-08-13 2012-12-19 Citrix Systems, Inc. A method for maintaining transaction integrity across multiple remote access servers
US8700695B2 (en) * 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US8706877B2 (en) * 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US8954595B2 (en) * 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US8255456B2 (en) * 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
EP1842354B1 (en) 2005-01-24 2014-11-05 Citrix Systems, Inc. Systems and methods for performing caching of dynamically generated objects in a network
US20060190700A1 (en) * 2005-02-22 2006-08-24 International Business Machines Corporation Handling permanent and transient errors using a SIMD unit
US7631021B2 (en) * 2005-03-25 2009-12-08 Netapp, Inc. Apparatus and method for data replication at an intermediate node
US8301700B1 (en) 2010-08-06 2012-10-30 Open Invention Network Llc System and method for event-driven live migration of multi-process applications
US8589953B1 (en) 2010-08-06 2013-11-19 Open Invention Network, Llc System and method for transparent consistent application-replication of multi-process multi-threaded applications
US9141481B1 (en) 2010-08-06 2015-09-22 Open Invention Network, Llc System and method for reliable non-blocking messaging for multi-process application replication
US9043640B1 (en) * 2005-08-26 2015-05-26 Open Invention Network, LLP System and method for event-driven live migration of multi-process applications
US8621275B1 (en) 2010-08-06 2013-12-31 Open Invention Network, Llc System and method for event-driven live migration of multi-process applications
US8281184B1 (en) 2010-08-06 2012-10-02 Open Invention Network Llc System and method for reliable non-blocking messaging for multi-process application replication
US8584145B1 (en) 2010-08-06 2013-11-12 Open Invention Network, Llc System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications
US8301839B2 (en) * 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US7921184B2 (en) * 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US9201745B2 (en) * 2008-01-23 2015-12-01 Omx Technology Ab Method of improving replica server performance and a replica server system
US8261286B1 (en) 2008-06-18 2012-09-04 Amazon Technologies, Inc. Fast sequential message store
US10362131B1 (en) * 2008-06-18 2019-07-23 Amazon Technologies, Inc. Fault tolerant message delivery
US9135127B1 (en) 2010-08-06 2015-09-15 Open Invention Network, Llc System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications
GB2508659A (en) * 2012-12-10 2014-06-11 Ibm Backing up an in-memory database
WO2014197963A1 (en) * 2013-06-13 2014-12-18 Tsx Inc. Failover system and method
US9569517B1 (en) * 2013-11-27 2017-02-14 Google Inc. Fault tolerant distributed key-value storage

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304980B1 (en) 1996-03-13 2001-10-16 International Business Machines Corporation Peer-to-peer backup system with failure-triggered device switching honoring reservation of primary device
US7111004B2 (en) 2003-06-18 2006-09-19 International Business Machines Corporation Method, system, and program for mirroring data between sites

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5157663A (en) * 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system
US5745753A (en) * 1995-01-24 1998-04-28 Tandem Computers, Inc. Remote duplicate database facility with database replication support for online DDL operations
US5757669A (en) * 1995-05-31 1998-05-26 Netscape Communications Corporation Method and apparatus for workgroup information replication
GB9601584D0 (en) * 1996-01-26 1996-03-27 Hewlett Packard Co Fault-tolerant processing method
US5941999A (en) * 1997-03-31 1999-08-24 Sun Microsystems Method and system for achieving high availability in networked computer systems
US6289357B1 (en) * 1998-04-24 2001-09-11 Platinum Technology Ip, Inc. Method of automatically synchronizing mirrored database objects
US6178441B1 (en) * 1998-09-21 2001-01-23 International Business Machines Corporation Method and system in a computer network for the reliable and consistent ordering of client requests
US6411991B1 (en) * 1998-09-25 2002-06-25 Sprint Communications Company L.P. Geographic data replication system and method for a network
US6446090B1 (en) * 1999-10-08 2002-09-03 Unisys Corporation Tracker sensing method for regulating synchronization of audit files between primary and secondary hosts
US6338126B1 (en) * 1999-12-06 2002-01-08 Legato Systems, Inc. Crash recovery without complete remirror
US6658540B1 (en) * 2000-03-31 2003-12-02 Hewlett-Packard Development Company, L.P. Method for transaction command ordering in a remote data replication system
US20010047412A1 (en) * 2000-05-08 2001-11-29 Weinman Joseph B. Method and apparatus for maximizing distance of data mirrors
US6760861B2 (en) * 2000-09-29 2004-07-06 Zeronines Technology, Inc. System, method and apparatus for data processing and storage to provide continuous operations independent of device failure or disaster
US6782399B2 (en) * 2001-06-15 2004-08-24 Hewlett-Packard Development Company, L.P. Ultra-high speed database replication with multiple audit logs
US6859865B2 (en) * 2001-11-09 2005-02-22 Nortel Networks Limited System and method for removing latency effects in acknowledged data transfers
US7032131B2 (en) * 2002-03-26 2006-04-18 Hewlett-Packard Development Company, L.P. System and method for ensuring merge completion in a storage area network
US7181581B2 (en) * 2002-05-09 2007-02-20 Xiotech Corporation Method and apparatus for mirroring data stored in a mass storage system
US6842825B2 (en) * 2002-08-07 2005-01-11 International Business Machines Corporation Adjusting timestamps to preserve update timing information for cached data objects
US7134044B2 (en) 2002-08-16 2006-11-07 International Business Machines Corporation Method, system, and program for providing a mirror copy of data
US7240080B2 (en) * 2003-07-30 2007-07-03 International Business Machines Corporation Method and apparatus for determining using least recently used protocol if one or more computer files should be written to one or more information storage media and synchronously providing one or more computer files between first and storage devices
JP2005062928A (ja) * 2003-08-11 2005-03-10 Hitachi Ltd 複数のサイトにリモートコピーを行うシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304980B1 (en) 1996-03-13 2001-10-16 International Business Machines Corporation Peer-to-peer backup system with failure-triggered device switching honoring reservation of primary device
US7111004B2 (en) 2003-06-18 2006-09-19 International Business Machines Corporation Method, system, and program for mirroring data between sites

Also Published As

Publication number Publication date
US20060020635A1 (en) 2006-01-26
CA2572820A1 (en) 2006-01-26
AU2005263685A1 (en) 2006-01-26
AU2005263685B2 (en) 2011-08-04
US7321906B2 (en) 2008-01-22
ATE443890T1 (de) 2009-10-15
PL1771789T3 (pl) 2010-03-31
EP1771789B1 (en) 2009-09-23
AU2005263685C1 (en) 2012-01-12
ZA200701434B (en) 2008-07-30
DE602005016807D1 (de) 2009-11-05
KR20070046078A (ko) 2007-05-02
MX2007000075A (es) 2007-03-28
WO2006008226A3 (en) 2006-04-27
EP1771789A2 (en) 2007-04-11
WO2006008226A2 (en) 2006-01-26

Similar Documents

Publication Publication Date Title
KR101052121B1 (ko) 리플리카 서버 수행을 개선하는 방법 및 리플리카 서버시스템
US7793060B2 (en) System method and circuit for differential mirroring of data
US6260125B1 (en) Asynchronous write queues, reconstruction and check-pointing in disk-mirroring applications
US7437598B2 (en) System, method and circuit for mirroring data
US7444541B2 (en) Failover and failback of write cache data in dual active controllers
US7694177B2 (en) Method and system for resynchronizing data between a primary and mirror data storage system
JP4074072B2 (ja) データの完全性を備えるリモートコピーシステム
US20060212668A1 (en) Remote copy method and storage system
EP2948849B1 (en) System and method for replicating data
CN103548011A (zh) 分布式存储环境中的异步复制
JP2005025683A (ja) 記憶システム及び記憶装置システム
US20210011626A1 (en) Mirroring write operations across data storage devices
US7797571B2 (en) System, method and circuit for mirroring data
KR20070059095A (ko) 통신 네트워크를 통한 데이터 세트 업데이트 시스템, 방법및 장치
CN108833164B (zh) 服务器控制方法、装置、电子设备及存储介质
CN106897288B (zh) 数据库的服务提供方法和系统
US10049021B2 (en) Redundant system and redundancy method
JP2006039976A (ja) リモートコピーシステム
US9218313B2 (en) Shared-bandwidth multiple target remote copy
US8850117B2 (en) Storage apparatus and method maintaining at least an order of writing data
JP2007334668A (ja) メモリダンプ方法、クラスタシステム、それを構成するノードおよびプログラム
JP4721057B2 (ja) データ管理システム,データ管理方法及びデータ管理用プログラム
CN102368268B (zh) 一种实现多元数据一致性的方法
JP6912105B2 (ja) ディスクアレイシステム、ディスクアレイシステムの制御方法、および、ディスクアレイ装置
WO2022176497A1 (ja) ストレージシステム、データ処理方法、及びデータ処理プログラム

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150702

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160711

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190710

Year of fee payment: 9