KR100599912B1 - 복제 서버용 프로토콜 - Google Patents

복제 서버용 프로토콜 Download PDF

Info

Publication number
KR100599912B1
KR100599912B1 KR1020017003798A KR20017003798A KR100599912B1 KR 100599912 B1 KR100599912 B1 KR 100599912B1 KR 1020017003798 A KR1020017003798 A KR 1020017003798A KR 20017003798 A KR20017003798 A KR 20017003798A KR 100599912 B1 KR100599912 B1 KR 100599912B1
Authority
KR
South Korea
Prior art keywords
server
primary server
client
backup
primary
Prior art date
Application number
KR1020017003798A
Other languages
English (en)
Other versions
KR20010079917A (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 KR20010079917A publication Critical patent/KR20010079917A/ko
Application granted granted Critical
Publication of KR100599912B1 publication Critical patent/KR100599912B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/99931Database or file accessing

Abstract

폴트-톨러런트 클라이언트-서버 시스템은 1차 서버, 백업 서버, 및 클라이언트를 갖는다. 클라이언트는 임의의 백업 처리와 독립적으로 클라이언트에 회답을 송신하는 것을 포함하여, 요청을 수신하고 처리하는 1차 서버에 요청을 송신한다. 요청은 1차 서버의 상태 정보를 포함한다. 1차 서버는 또한 1차 서버의 상태 정보를 백업 서버로 주기적으로 송신하는 것을 포함하는 백업 처리를 수행한다. 클라이언트는 1차 서버로부터 회답을 수신하고, 1차 서버의 상태 정보를 백업 서버로 송신한다. 1차 서버의 상태 정보는 1차 서버에서 백업 서버로의 1차 서버의 상태 정보의 가장 최근 전송 이후에 1차 서버가 취급해오고 있는 모든 요청-회답 쌍을 포함한다. 백업 처리를 수행하는 1차 서버의 수단은 소정의 시간 간격에 기초하여 주기적으로 활성화될 수 있다. 대안적으로, 1차 서버의 상태 정보를 저장하는 1차 서버의 메모리가 소정의 양까지 채워질 때 활성화될 수 있다.
1차 서버, 백업 서버, 폴트-톨러런트 클라이언트-서버 시스템, 클라이언트

Description

복제 서버용 프로토콜{PROTOCOL FOR REPLICATED SERVERS}
본 발명은 폴트-톨러런트 서버 시스템(fault tolerant server system)에 관한 것으로, 특히 리던던트 서버(redundant server)를 포함한 폴트-톨러런트 서버 시스템에 관한 것이다.
원격 통신 시스템에서의 높은 서비스 이용가능성은 폴트-톨러런트 컴퓨터 또는 분산형 시스템 구조에 의해 달성될 수 있다. 그러나, 이 리던던시의 이용은 다른 시스템 특성에 불리하게 영향을 줄 수 있다. 예를 들어, 하드웨어 레벨상에서의 리던던시의 이용은 비용, 물리적인 부피, 전력 소비, 폴트(fault)율 등을 증가시킨다. 이것은 시스템내에서 다중 레벨의 리던던시를 사용하는 것을 불가능하게 할 수 있다.
예를 들어, 분산형 시스템은 강인성(robustness)을 증가시키기 위해 컴퓨터들 간의 복제를 포함할 수 있다. 이들 각 컴퓨터들이 폴트-톨러런트라면, 비용이 배로 들 것이다. 또한, 소프트웨어 폴트를 복구할 수 있도록 소프트웨어내에 백업 카피(backup copy)가 보유되 있다면, 분산형 시스템에서의 다중 카피를 위한 여분의 메모리 비용은 폴트-톨러런트 하드웨어의 비용에 비해 배로 들 것이다. 비용을 절감하기 위해, 다중 레벨의 리던던시의 사용을 피하는 것이 타당하다. 이러한 설계 선택의 결론은 단일 레벨만의 리던던시가 사용될 것이라는 것 때문에, 가능한 많은 폴트들과 다른 외란(disturbance)들을 극복하도록 선택되야한다.
외란들은 하드웨어 폴트 또는 소프트웨어 폴트에 의해 야기될 수 있다. 하드웨어 폴트들은 영구적 또는 임시적으로 특징지어질 수 있다. 이 경우에, 이러한 폴트들은 폴트-톨러런트 컴퓨터에 의해 극복될 수 있다. 컴퓨터 하드웨어의 급속한 개발이 이루어진다면, 시스템내의 집적 회로 및/또는 장치들의 총 갯수는 계속 감소될 것이고, 이러한 집적 회로 및 장치 각각은 그 신뢰도가 계속 향상될 것이다. 전체적으로, 요즈음 하드웨어 폴트는 시스템 외란의 주요 원인이 아니며, 미래에는 그 영향이 훨씬 덜할 것이다. 결과적으로, 단지 가능한 하드웨어 폴트들을 처리하는 개별 리던던시, 즉 폴트-톨러런트 컴퓨터를 판단하는 것이 점점 더 어려워질 것이다.
이와 동일한 사항이 소프트웨어 폴트에 대해서는 그러하지 않다. 소프트웨어의 복잡성은 계속 증가하고, 짧은 개발 시간에 대한 요구는 점점 더 복잡한 소프트웨어가 모든 가능한 구조, 동작 모드 등에서 테스트되는 것을 방해한다. 통상의 경우 풀(full) 디버깅에 대해 더 나은 방법들이 예상될 수 있다. 매우 특별한 경우에만 발생하는 폴트들, 소위 "아이젠버그(Heisenbugg)"에 대하여, 풀 테스트를 행하기 위해 가능하거나 또는 경제적일 수 있는 어떠한 예상도 존재하지 않는다. 그 대신, 이들 종류의 폴트들은 시스템내의 리던던시에 의해 극복될 필요가 있다.
느슨하게 결합된 처리의 복제는 임시 폴트들을 포함하여, 거의 모든 하드웨어 및 소프트웨어 폴트들을 극복할 수 있다. 하나의 예로서, I.lEE and R.K. Iyer의 "Software Dependability in the Tandem Guardian System", IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, vol.21, No.5, May 1995에는, 하드웨어 폴트를 극복하기 위해 시스템 내에 체크포인팅 계획(scheme)이 설계되었으나, 체크포인팅(즉, 대기 컴퓨터에 현재 상태를 카피함) 및 재개(즉, 예를 들어 최근의 체크포인트 이후에 발생해오는 트랜잭션(transaction)의 로그(log)를 판독하고 그 후, 새로운 것을 처리하기 시작함으로써, 최근의 체크포인팅된 상태에서부터 실행을 개시함)는 소프트웨어 폴트의 75%에서 96% 사이의 어느 %를 극복한다는 보고가 있다. 인용된 보고에 주어진 설명은 테스트하는 동안 식별되지 않은 소프트웨어 폴트들이 포착하기 어렵고, 매우 특별한 조건에 의해 트리거링(trigger)된다는 내용이다. 이들 조건들(예를 들어, 메모리 상태, 타이밍, 공전(race) 조건 등)은 그것이 접수된 후에는 백업 처리에서 재발하지 않았다. 결과적으로, 상기 소프트웨어 폴트는 재발하지 않는다.
네트워크에서의 복제와 관련된 문제는, 분산에 이바지하지 않는 중앙 자원의 조정과 같은 몇몇의 서비스가 존재한다는 것이다. 이러한 타입의 서비스는 성능적인 이유에 대하여, 하나의 처리 및 수단으로 구현되어져서, 그것의 스택 및 힙(heap)에 그것의 데이터를 보관하여야만 한다. 그 후, 리던던시를 얻기 위해, 그 후 이러한 타입의 처리는 분산형 네트워크내에서 복제되야만 한다. 고성능 원격 통신 제어 시스템에서, 이 복제는 매우 낮은 오버헤드를 가지며, 어떠한 여분의 지연 없이 행해져야 한다.
<발명의 개시>
따라서, 폴트-톨러런트 클라이언트-서버 시스템을 구현하기 위한 방법 및 장 치를 제공하는 것이 본 발명의 목적이다.
본 발명의 일면에 따라, 상기 목적 및 다른 목적들은 1차 서버(primary server), 백업 서버, 및 클라이언트를 포함한 폴트-톨러런트 클라이언트-서버 시스템에서 달성된다. 클라이언트는 1차 서버에 요청(request)을 송신한다. 1차 서버는 1차 서버에 의해 행해진 임의의 백업 처리와 독립적으로 클라이언트로 응답을 송신하는 것을 포함하여, 그 요청을 수신하고 처리하고, 상기의 응답은 1차 서버의 상태 정보를 포함한다. 백업 처리에 독립적인 응답을 전송함으로써, 높은 레벨의 병행성(concurrence)이 달성되어, 시스템을 보다 효율적으로 만들 수 있다. 또한, 1차 서버는 백업 서버로 1차 서버의 상태 정보를 주기적으로 전송하는 것을 포함하여, 백업 처리를 행한다. 클라이언트는 1차 서버로부터 응답을 수신하고, 클라이언트에서 백업 프로세서로 1차 서버의 상태 정보를 송신한다.
본 발명의 다른 면에 있어서, 1차 서버의 상태 정보는, 1차 서버에서 백업 서버로의 가장 최근의 1차 서버의 상태 정보의 전송 이후에 1차 서버가 취급해왔던 모든 요청(request)-회답(reply) 쌍을 포함한다.
또한, 본 발명의 다른 면에 있어서, 1차 서버는 저장 수단에 1차 서버의 상태 정보를 저장한다. 1차 서버에서 백업 처리를 수행하는 활동은 소정의 양까지 채워질 저장 수단에 응답하여 수행될 수 있다.
또한 대안적 실시예에서, 1차 서버에서 백업 처리를 수행하는 활동은 소정의 시간 간격에 기초하여 주기적으로 수행될 수 있다.
본 발명의 목적 및 본 발명의 장점들은 도면에 대한 다음의 상세한 설명을 읽음으로써 이해될 수 있을 것이다.
도 1은 클라이언트-서버 애플리케이션에서 리던던트 서버의 사용을 도시하는 블럭도.
도 2는 폴트-톨러런트 클라이언트-서버 애플리케이션에서의 메시지 흐름을 도시한 다이어그램.
도 3은 본 발명의 일면에 따라, 클라이언트와 1차 서버와 백업 서버 간의 메시지 흐름을 도시한 다이어그램.
도 4a 및 도 4b는 처리들 간의 통신에서, 인과 순서화(causal ordering)의 사용에 의해 성취되는 효율적 향상을 도시.
이제, 본 발명의 여러 특징들이 도면에 관련하여 설명될 것이며, 도면에서 유사한 부분은 동일한 참조 부호로 식별된다.
도 1은 클라이언트-서버 애플리케이션에서 리던던트 서버의 사용을 도시한 블럭도이다. 특히, 복수의 클라이언트 애플리케이션 C가 도시되어 있다. 1차 서버 S(101)는 제1 프로세서(103)상에서 동작된다. 제1 프로세서(103)와 분리된 제2 프로세서(105)는 1차 서버 S(101)와 병행하여 백업 서버 S'(107)를 동작시킨다. 결론적으로, 하나가 오동작(failure)하면, 다른 하나는 그 문제를 인지하는 임의의 클라이언트 C 없이 인수하고, 1차 서버 S(101) 및 백업 서버 S'(107)은 클라이언트 애플리케이션 C로부터 임의의 특별한 요청을 처리한 후에 발생하는 가상 시간 T에 동일한 간격 상태를 가져야 한다. (백업 서버 S'(107)는 1차 서버 S(101)를 추적하기 때문에, 백업 서버 S'(107)은 1차 서버 S(101)보다, 실시간에서 가상 시간에 늦게 도달한다.) 복제된 서버 처리의 존재는 서버를 사용하는 클라이언트 애플리케이션 C에 보여져서는 안된다. 이러한 계획을 구현하기 위해서는 다음 문제들을 해결할 필요가 있다.
어드레싱: 클라이언트 애플리케이션 C는 서버가 1차 서버 S(101) 또는 백업 서버 S'(107)(또는 둘 다)에 의해 수행되지는 지와는 상관없이, 일관된 방식으로 서버를 어드레싱해야 한다.
복제 및 동기화: 폴트 및 정정(repair) 통지 뿐 아니라, 다른 클라이언트 애플리케이션 C로부터 입력 요청은 프로세서들 간의 물리적 네트워크에서의 상이함으로 인해 1차 서버 S(101) 및 백업 서버 S'(107)에 상이한 순서로 도달할 수 있다. 그러나, 이들 요청들은 동일한 순서로 정렬되야 한다.
폴트 및 정정 통지: 서버 처리 오동작 및 새로운 서버 처리의 개시는 여전히 작업중인 서버에 의해 탐지되야 한다.
상태 전달: 오동작 후에 서버 처리가 재개되면, 작업중인 서버는 처리 요청을 시작하기 전에, 새로운 서버로 그것의 내부 상태를 전달하여야만 한다.
상기 문제들을 처리할 때, 본 발명의 바람직한 실시예는 다음의 목표를 만족시키려고 한다.:
-단 한번에 복제 문제를 해결한다. 복제 구현은 많은 곤란함(pitfall)을 가지며 검증하기 복잡하다. 극복되야 할 많은 가능한 폴트들이 있다.
-낮은 오버헤드만을 추가하고, 복제된 처리로의 통신상에만 이것을 부과한다.
-오동작의 경우, 새로운 처리를 재통합할 때, 및 통상의 동작 동안 최악 응답 시간이 미리 모두 알려져야만 하고, 수용가능한 레벨로 유지되어야 한다.
-어떠한 추가 메시지도 임계 타이밍 경로에 추가되서는 안된다. 많은 종래의 구현 기술들은 이 목표를 위반했다. 예를 들어, 1차 서버는 2차 서버에 메시지를 송신하고, 클라이언트에 회답을 송신하기 전에 회답을 되돌려받아야만 할 수도 있다. 시스템의 실시간 응답 시간은 추가된 리던던시에 의해 느려지지 않기 위해서는 이것을 피하는 것이 바람직하다.
-많은 클라이언트들 및 동적 클라이언트들을 취급한다. 원격 통신 애플리케이션은 통상, 서버에 대하여 많은 가능한 클라이언트들을 갖는다. 이것은 예를 들어, 서버 처리가 오동작하거나 회복할 때, 클라이언트 내의 정보를 갱신해야만 하는 알고리즘을 사용할 수 없음을 의미한다. 또한, 클라이언트 처리는 통상 짧은 수명(클라이언트 처리는 호출 동안에만 존재할 수 있음)을 갖는다. 이것은 서버가 클라이언트의 상황을 계속 알고있도록 요구하는 알고리즘이 사용될 수 없음을 의미한다.
프로토콜을 간단히 만들기 위해, 본 발명의 바람직한 실시예는 여러 제한들을 부과한다. 이들 제한들 중 몇 개의 제한들은 프로토콜을 보다 일반적으로 만듦으로써 쉽게 제거될 수 있다. 그러나, 여기서 그 제한들을 포함하므로써 수반된 기반 메커니즘의 설명을 용이하게 할 수 있다.
-1차 및 백업의 오직 2개의 서버만이 포함된다. 본 기술에 통상의 숙련자들은 프로토콜이 확장되어 그 이상을 포함할 수 있음을 인식할 것이다.
-한번에 하나의 폴트, 즉 단일 클라이언트 또는 서버 오동작에 대한 톨러런스. 시스템은 다른 폴트가 톨러런팅되기 전에 극복되야 한다(예를 들어, 콜드(cold) 대기를 개시함으로써).
-간단한 네트워크 구성. 각각 하나의 서버 쌍을 갖는, 예를 들어, 네트워크가 2개로 나뉘어진 복잡한 네트워크 폴트의 경우는 고려되지 않는다.
-큰 메시지는 안됨. 벌크 데이터 전달 등은 아마 버퍼 또는 큐를 오버플로우시킬 것이다.
-유동적인(soft) 실시간 응답. 통상의 경우(즉, 임의의 기능 불량(malfunctioning) 서버 없이), 비-복제된 서버를 사용하는 시스템에 대하여 거의 동일한 응답 시간을 보장하는 것이 가능하다. 그러나, 긴 응답 시간은 오동작, 회복, 및 재통합 시간에 용인되야 한다. 이런 긴 응답 시간은 소정의 최대 시간을 초과하지 않음이 보장될 수 있다.
-서버의 결정적(deterministic) 동작. 하기에 보다 상세히 설명되는 바와 같이, 백업 서버는 1차 서버로부터 주기적 갱신 메시지를 수신할 것이다. 백업 서버에서 이들 갱신 메시지를 처리하는 것은 갱신 메시지를 전송할 때 1차 서버의 상태와 동일한 간격 상태로 도달할 것임을 보장하기 위해, 결정적이어야만 한다. 서버 소프트웨어는, 시간 클럭(time-of-day clock)(호출되는 때에 따라, 상이한 결과를 반환함)으로의 호출과 같은 비-결정적 시스템 호출은 포함할 수 없는데, 이것은 상기 호출이 백업 서버를 1차 서버의 상태와 상이한 내부 상태로 도달하게 하기 때문이다.
따라서, 백업 서버의 상태는 1차 서버로부터 수신되는 정보에 의해 100% 특정지워져야 한다. 이것은 2가지 방법 중 어느 하나로 달성될 수 있다.:
a) 1차 서버에 제공된 요청은 또한, 백업 서버로 전달되고, 그 후 요청의 동일한 처리를 행함으로써 1차 서버와 동일한 상태에 도달하거나, 또는
b) 처리 결과(즉, 서버의 내부 상태의 변화 뿐 아니라, 1차 서버에 의해 생성된 클라이언트로의 회답)가 백업 서버로 송신된다.
-오직 단순한 애플리케이션만. 후술되는 본 발명의 프로토콜 설명에서, 복제된 서버는 다른 서버들로부터의 서비스를 요청할 수 없다. 프로토콜은 이러한 경우를 취급하기 위해 확장되야 할 것이다. 이러한 하나의 확장에서, 제2 서버는 그 후 반복된 서버로부터 오는 요청을 검출하고, 동일한(또는 유사한) 프로토콜을 따른다.
초기에, 해결될 필요가 있는 4개의 문제들이 언급되었다. 이들 중 하나, 즉 복제 및 동기화에 대한 본 발명의 해법이 이제 설명될 것이다. 바람직한 실시예에서, 복제 및 동기화는 클라이언트와 서버 간에 사용되는 통신 프로토콜의 일부로 구현된다. 이 접근법의 장점은 다음과 같다.:
-프로토콜이 설계될 때, 단 한번 구현된다.
-복제는 애플리케이션으로부터 숨겨져 있다. 프로토콜은 복제된 서버들의 어드레싱을 취급한다.
본 발명의 프로토콜은 희망된 복제 및 동기화의 효율적인 구현을 위해 설계된다.
1) 2개의 대안적 구현이 가능하다.
a) 구현은 통신 방법으로 확장될 수 있다. 이것은 1차 서버에서 클라이언트로부터의 요청을 처리하기 위한 어떠한 여분의 시스템 호출도 존재하지 않음을 의미한다.
b) 또 다른 대안으로서, 프로토콜은 프로토콜 스택으로 집적될 수 있다. 이것은 보다 효율적인 구현을 만드는 것을 가능하게 한다.
폴트톨러런스가 현존하는 운영 시스템 상부의 소프트웨어 층에 의해 구현되는 소위 "미들웨어(middleware)" 해결은 제2 대안(즉, 대안 "b")이 아닌 제1 대안(즉, 대안 "a")으로부터 이익을 얻을 것이다.
2) 서버들 간의 복제는 실시간 임계 루프 밖에 있을 수 있다. 클라이언트는 1차 서버 S(101)가 응답할 수 있는 만큼 빨리 회답을 받을 수 있다.
3) 오버헤드를 최소화하기 위해, 리던던시를 유지하는 데 필요한 추가 정보가 회답에 첨부된다.
4) 오버헤드를 최소화하고, 폴트 후의 회복 시간이 소정의 최대치를 초과하지 않음을 보장할 수 있도록, 백업 서버 S'(107)로의 갱신/동계(heartbreak)가 주기적으로 행해진다. 백업 서버가 아닌 1차 서버에 의해 처리될 수 있는 요청 수는 2개의 주기적 갱신들 간에 도달할 수 있는 요청 수로 한정될 것이다.
5) 복제는 메인 프로세서 상에 어떠한 오버헤드도 전혀 제공하지 않는 I/O 프로세서 내에서 지원될 수 있다.
프로토콜은 요청이 처리되는 순서에 대한 정보 뿐 아니라, 처리된 요청들이 항상 2개의 개별 컴퓨터에서 2개의 독립적 위치에 항상 유지되는 것을 보장한다. 이 계획은 2개의 관측에 기초된다.
1) 1차 서버 상태의 리던던트 카피는 종래에 수행되는 것보다 늦은 시간에 확립될 수 있는 한편, 폴트톨러런스를 여전히 유지한다. 즉, 종래의 시스템에서 서버의 상태 정보는 클라이언트로 회답을 송신하기 전에, 1차 서버에서 백업 서버로 전달된다. 그러나, 본 발명은 클라이언트에 회답을 송신하기 전에, 어떠한 다른 프로세서도 그 결과를 보지 않기 때문에, 이것은 낡은 방법임을 인식한다. 결과적으로, 1차 서버 고장(crash)은 요청의 처리 전에 발생해왔던 것으로 고려된다. 이것은 클라이언트가 회답을 수신하는 시간까지의 정황이다. 그 후, 이것은 폴트톨러런스를 갖기 위해, 서버 상태의 리던던트 카피의 존재를 확립하기 위한 가장 최근의 가능한 시간이다.
2) 수반된 3개의 독립부, 서비스를 요청하는 클라이언트 애플리케이션 C, 1차 서버 S(101), 및 백업 서버 S'(107)가 있다. 임의의 시간에, 결정적 정보가 2개의 리던던트 카피에 유지되는 것으로 충분하다. 그러나, 이들 카피는 1차 서버 S(101) 및 백업 서버 S'(107)(종래의 2-상(two-phase) 커미트(commit) 프로토콜에서와 같이)에 의해서만 유지될 필요는 없다. 오히려, 또한 (임시로) 정보를 유지하기 위해 클라이언트가 사용될 수 있다.
단순한 서버 애플리케이션에 대하여, 복제는 도 2에 도시된 바와 같이 메시지 순서에 기초한다. 클라이언트 애플리케이션 C는 클라이언트 프로세서에서 작동하는 프로토콜 스택(205)을 통해 1차 서버(101)에 액세싱한다. 응답부(counterpart) 프로토콜 스택(215, 215')은 또한, 1차 서버 프로세서 및 백업 서버 프로세서 PRO1 및 PRO2에서 작동한다. 요청(201)은 클라이언트 애플리케이션 C에서 1차 서버 S(101)로 송신된다. 1차 서버 S(101)의 프로토콜 스택(215)은 요청에 일련 번호를 첨부하고, 그 후 요청을 처리한다. 그 요청을 처리한 결과로서, 1차 서버 S(101)는 회답 메시지(203)를 생성하여, 프로토콜 스택(215)을 통해 클라이언트 애플리케이션 C로 즉시 송신한다. 본 발명의 일면에 따라서, 서버의 프로토콜 스택(215)은 백업 경로(209)를 통해 백업 서버 S'(107)의 프로토콜 스택(215')에 주기적으로 내용을 통신하는, 큐에 입력 요청(201)을 저장하는 추가적 기능을 행한다. 본 발명의 다른 면에 따라서, 클라이언트 C로의 회답 메시지(203)는 입력 요청의 일련의 연속 중 어느 포인트(즉, 일련 번호)에서 클라이언트의 요청(201)이 처리되었는지를(최근 플러쉬(flush) 이래) 가리키는 정보를 포함한다.
클라이언트 애플리케이션의 프로토콜 스택(205)은 회답 메시지(203)를 수신할 때, 두가지를 행한다: 1) 회답 메시지(203)를 클라이언트 애플리캐이션 C로 패스하고, 2) 예를 들어, 회답 뿐만 아니라 최초의(original) 요청을 포함할 수 있는 메시지(207)를 그 메시지를 백업 서버 S'(107)로 패스하는 백업 서버의 프로토콜 스택(215)으로 송신한다. 몇몇 실시예에서, 백업 서버의 프로토콜 스택(215')은 확인 메시지(211)를 클라이언트의 프로토콜 스택(205)으로 송신하여, 클라이언트의 메시지를 수신하였음을 확인할 수 있다.
백업 서버가 클라이언트 애플리캐이션의 프로토콜 스택(205)으로부터 정보를 수신하는 것에 추가하여, 1차 서버의 프로토콜 스택(215)에 있는 큐(queue)가 소정의 값에 도달할 때마다, 혹은 대안적으로 소정 양의 시간이 경과했을 때, 1차 서버의 프로토콜 스택(215)에 있는 큐는 백업 경로(209)를 경유하여 백업 서버 S'(107)로 플러슁된다. 극히 중요한 여분의 정보를 백업 서버 S'(107)에 공급하는 것에 추가하여, 플러슁 활동은 또한 백업 S'(107)에게 1차 서버 S(101)가 여전히 살아있음을 표시하는 하트비트(heartneat)로 기능한다. 플러쉬/하트비트 사이의 시간은 폴트가 있을 때 복구를 위한 최대 시간을 설정한다.
백업 서버 S'(107)는 하나 이상의 하트비트를 1차 서버 S(101)로부터 수신하는데 실패하고 클라이언트 C로부터 요청을 수신하는 것을 개시할 때, 실행을 접수한다.
복구가 가능하다는 것을 보증하기 위하여 백업 서버로 패스되어야만 하는 정보는 a) 최초 요청, 및 b) 회답 메시지에 첨부된 일련 번호이다. 이 정보를 가지고, 백업은 (크래시 후에) 요청이 1차 서버에 의해 처리되었던 순서화 동일한 순서에 있는 요청을 정렬하고, 그 다음에 동일한 처리를 수행할 수 있을 것이다. 비록 1차 서버의 프로토콜 스택(215)에서 오는 정보의 경우에, 입력 요청의 카피가 처리되어졌던 순서대로 전형적으로 패스될 수 있기 때문에, 일련 번호가 덜 중요하다 할지라도, 동일한 정보는 클라이언트 애플리캐이션의 프로토콜 스택(205) 및 1차 서버의 프로토콜 스택(215) 둘 다로부터 백업 서버 S'(107)로 패스될 수 있다.
전체 1차 서버 회답 메시지(일련 번호를 포함함)를 백업으로 패싱하는 것은 백업 서버가 폴트 검출을 개선하는 것을 가능하게 한다. 메시지 순서를 정렬하기 위하여 일련 번호를 이용하는 것 이외에, 백업 서버 S'(107)는 또한 그 후에 그 자신의 회답을 1차 서버 S(101)로부터의 것과 비교함으로써 그것이 1차 서버와 함께 동기화 되어 있다는 것을 검증할 수 있다. 그러나, 이 목적을 위해서, 회답의 체크섬(checksum)과 같이, 이 정보에 대한 치환을 패스하는 것으로도 충분하다는 점을 유의하여야만 한다.
폴트 검출을 위해, 완전한 회답 정보는 어느 한쪽의 소스로부터(즉, 클라이언트 C를 경유하여, 또는 1차 서버 S(101)로부터의 주기적 갱신을 통하여) 혹은 둘 다로부터 패스될 수 있다. 일 실시예에 있어서, 완전한 회답 정보는 클라이언트의 프로토콜 스택(205)을 경유하여 더 긴 경로를 가야만 하는 정보의 양을 최소화하기 위하여 1차 서버의 프로토콜 스택(215)으로부터 오직 주기적 갱신을 통하여만 패스된다.
텍스트의 회답 메시지에 일련 정보를 첨부하는 여러 대안들 또한 있다. 한 대안은 요청이 처리되었던 일련 번호를 단지 첨부하는 것이다. 다른 대안은 최종 주기의 갱신 이후의 일련의 전체 요청을 포함하는 것이다. 이 대안들은 동일 목적에 쓰이고, 그들 각각은 백업 서버 S'(107)가 1차 서버 S(101)의 것과 동일한 상태를 달성하기위해 따라야 하는 동작의 순서를 규정하기 때문에, 각각은 "서버의 상태 정보"로서 간주될 수 있다.
다수의 폴트 경우, 및 본 발명이 그 폴트들을 처리하는 방법이 이제 설명될 것이다:
회답이 송신되기 전의 1차 서버 고장
이 경우, 클라이언트 C는 1차 서버 S(101)로부터 확인(즉, 회답 메시지(203))을 수신하지 않을 것이다. 응답으로, 클라이언트 C의 프로토콜 스택(205)은 최초 요청(201)을 1차 및 2차 서버 S(101), S'(107) 둘 다에게로 재전송할 것이다. 만약 그렇지 않은 경우라면(즉, 비-폴트(non-fault) 경우), 클라이언트 애플리캐이션 C는 요청을 오직 1차 서버 S(101)에게만 송신한다. (클라이언트 애플리캐이션은 오직 단일 논리 서버만을 어드레싱하기 때문에, 일반적으로 이러한 폴트-톨러런트 관련 활동을 인식하지 못한다는 점을 유의해야 한다. 두 서버, S(101)와 S'(107)로의 어드레스 변환 및 통신은 클라이언트 프로세서 내의 프로토콜 스택(205)에 의해 취급된다.) 2차 서버 S'(107)가 1차 서버 S(101)로부터의 하트비트를 놓치면, 그것은 접수를 한다. 그렇지 않으면, 그것은 클라이언트 C로부터 수신된 요청을 간단히 버린다.
회답이 송신된 후 정보가 백업에 플러슁되기 전의 1차 서버 고장
백업 서버 S'(107)를 최종 회답이 송신되었을 때 존재했던 상태로 갱신하기 위하여 필요한 정보는 클라이언트의 프로토콜 스택(205)에 의해 공급된 갱신 메시지로부터 검색될 수 있다. "회답 경로"에 있는 1차 서버 S(101)로부터 클라이언트 C로의 메시지는 백업 서버 S'(107)로의 갱신 정보 뿐만 아니라 클라이언트 애플리캐이션으로의 회답 모두를 포함한다. 클라이언트 애플리캐이션은 추가적인 갱신 정보가 아닌, 오직 클라이언트 C로부터의 회답 정보를 수신하는 것을 필요로 한다. 도 2에 도시된 것처럼, 갱신 정보는 클라이언트의 프로토콜 스택(205)으로부터 백업 서버 S'(107)로 보내진다(백업 서버의 프로토콜 스택(215')을 경유). 이 갱신 정보는 백업 서버 S'(107)가 다른 한편으로 1차 서버 S(101)에 의해 직접적으로 통신되는 주기적 갱신에 의해 수신한 것과 동일한 정보이다. 이미 존재하는 메시지에 몇몇 여분의 정보를 추가하는 비용은 그것을 위해 여분의 메시지를 송신해야만 하는 것에 비교하면 작다.
초기 요청을 송신한 후의 클라이언트 고장
이 경우에, 백업 서버 S'(107)는 1차 서버가 그의 큐를 플러슁할 때 그 자신을 갱신하기 위하여 정보를 수신한다.
1차 시스템 고장
동일 프로세서(103)에서 실행하고 있는 임의의 클라이언트뿐만 아니라 1차 서버 S(101)는 손실될 것이다. 백업 서버 S'(107)는 최종으로 플러슁된 큐로부터 남아있는 커맨드를 실행하고, 그 후에 1차 서버의 프로세서(103)의 외부에서 실행하고 있는 클라이언트로의 최종 회답에 의해 주어진 정도까지 갱신을 한다.
메시지 손실
즉각적인 확인을 얻지못한 메시지는 수신하는 프로세스(또는 프로세서)가 폴트하다고 간주되기 전에는 한번 혹은 두번 재전송된다.
클라이언트의 프로토콜 스택(205)은 도 3을 참조하여 이제 더욱 상세히 설명될 것이다. 단계 (301)에서, 클라이언트 애플리캐이션 실행은 요청이 1차 서버로 송신되게 한다. 단계 (302)에서, 요청은 프로토콜 스택(205)에서 처리되어 1차 서버로 송신된다. 프로토콜은 메시지 손실에서 재전송을 행하고, 메시지의 카피는 이를 위하여 보존된다. 단계 (303)에서, 회답은 1차 서버로부터 되돌아온다. 회답은 지체없이 클라이언트 애플리캐이션 프로세스로 되돌려 전송된다. 요청의 카피 및 연관된 회답은 복제 프로토콜을 위해 보존된다. 이 예에서, 1차 서버는 상대적으로 빨리 응답한다고 여겨지기 때문에, 1차 서버로부터 클라이언트로 송신되는 별도의 확인은 없다. 즉, 1차 서버로부터 되돌아온 회답은 회답으로써 기능하기에 충분하다. 상대적으로 느린 1차 서버를 포함하는 다른 실시예에 있어서, 프로토콜이 회답의 전송 이전에 1차 서버로부터 클라이언트로 송신되는 별도의 확인을 포함하는 것을 필요로 할 수 있다.
단계 (304)에서, 애플리캐이션 프로세스는 수행될 복제를 기다리지 않고 실행을 재시작할 수 있다. 단계 (305)에서, 프로토콜 스택(205)은 아직 백업 서버로 복제되지 않은 요청을 위해 지정된 큐에 회답 뿐만 아니라 요청도 저장한다.
단계 (306)에서, 클라이언트는 회답뿐만 아니라 최초의 요청을 포함하는 메시지를 백업 서버로 송신한다. 응답하여, 백업 서버는 클라이언트의 메시지를 안전하게 수신했음을 확인하기 위하여 확인을 클라이언트로 되돌린다(단계 307). 백업 서버로부터의 다른 회답이 기대되지 않기 때문에 확인이 없으면 클라이언트는 그의 메시지가 수신되었는지를 알수 있는 다른 방법이 없다는 점을 유의해야 할 것이다.
초기에, 몇개의 다른 문제점, 즉, 폴트와 정정 통지 및 상태 전송이 언급되었다. 이 문제점들에 대한 독창적인 해결책이 이제 설명될 것이다.
폴트와 정정 통지에 대하여, 1차와 2차 서버 사이의 통신은 또한 하트비트로서 기능한다. 제2 서버는 규칙적으로 갱신되지 않으면, 임의의 미해결의 클라이언트 타임아웃을 수신하기에 충분히 오래 기다리고, 그 후에 접수한다. 서버 프로세스는 재시작할 때, 활동중인 1차 서버가 있는지를 체크한다.
상태 전송에 대하여, 이것은 실패된 서버를 재시작할 때에 사용된다. 실행중인 서버의 상태는 그 후에 그들이 1차/백업 쌍으로써 다시 작동하기 전에, 재시작된 것에 카피되어야만 한다. 이 상태 전송과, 시스템 소프트웨어와 하드웨어를 업그레이드할 때 필요한 상태 전송의 타입 사이에 근본적인 차이는 없다. 또한, 최신의 프로세서에 적은 수의 하드웨어 고장이 있으면, 상태 전송 메카니즘은 시스템 업그레이드를 위해 최적화되야 한다.
본 발명의 일면ㅇ;, 폴트와 정정 통지 뿐만 아니라, 다른 클라이언트로부터의 요청이 비록 그들이 1차 및 백업 서버 S(101)와 S'(107)에 다른 상이한 순서로 도착하더라도, 동일한 순서로 정렬되야 한다는 요구라는 것을 상기할 것이다. 따라서, 몇몇 실시예에서, 메시지 사이에 인과 의존성(또한 본 명세서에서 "인과 순서화(causal ordering)"로서도 칭해짐)을 강화시키기 위한 메카니즘을 제공하는 것이 유익할 수 있다. 본질적으로, 이것은 수신되었던 엄밀한 순서보다는 오히려 논리적으로 발행되었던 순서대로 메시지의 처리를 참조한다. 인과 순서화의 더욱 완전한 설명은 Ithaca, New York, USA의 Cornell University에 의해 개발된 ISIS 툴-키트의 기재와 관련하여 찾아질 수 있다. 설명은 K.P. Birman과 R.van Renesse의 "Reliable Distributed Computing with the ISIS toolkit"(IEEE COMPUTER SOCIETY PRESS, ISBN 0-8186-5342-6, 1994년 출판)에서 찾아질 수 있다. 인과 순서화는 적은 오버세드와 함께 구현될 수 있고, 고도의 병행성을 허용함으로서 시스템 효율을 개선시킬 수 있다. 도 4a와 도 4b는 이러한 효율성의 개선을 도시한다. 도 4a에서, 프로세서 Pro1은 자원(resource)에 대한 요청을 자원 조정기(resource handler) Pro2로 송신한다(단계 401). 하부 시스템에서 인과 순서화에 대한 지원이 없다면, Pro2는 메시지를 자원 Pro3로 송신하여 그것을 초기화하여야만 한다(단계 402). 자원이 준비되었다고 회답한 후에(단계 403), Pro2는 이제 회답을 Pro1로 송신하도록 허용되면서, 자원이 이용가능하다는 것을 알린다(단계 404). 프로세서 Pro1은 이제 메시지를 자원 Pro3로 송신할 수 있다(단계 405). 각 프로세서의 동작이 지정된 제한에 의해 구속되어 하나의 프로세서가 먼저-송신된 메시지 전에 후에-송신된 메시지를 수신하는 것(및 그 결과로서 처리하는 것)을 방지하는 것이 관찰될 것이다.
도 4b를 참조하면, 이것은 하부 시스템이 인과 순서화를 지원하는 예를 도시한다. 다시, 그 예는 자원에 대한 요청을 자원 조정기 Pro2로 송신하는 프로세서 Pro1와 함게 시작한다(단계 406). 이제, 자원 조정기 Pro2는 Pro3로부터의 회답을 기다릴 필요가 없다. 대신에, 자원 조정기는 자원이 이용가능하다는 것을 알리는 회답을 Pro1에 송신한다(단계 407). 거의 동일한 시간에, Pro2는 메시지를 자원 Pro3로 송신하여 그것을 초기화 시킨다(단계 408). 이러한 병행성 때문에, 프로세서 Pro1은 인과 순서화가 없는 예에서보다 훨씬 빨리 그의 메시지를 자원 Pro3로 송신할 수 있다(단계 409)(도 4a). 심지어 Pro2로부터의 메시지가 지연된다고 하더라도(대안 단계 408'), 인과 메시지 순서화가 Pro3는 Pro1으로부터 메시지를 수신하기 전에 초기화 메시지를 처리할 것임을 보증하기 때문에, 이것은 어떤 문제점도 만들지 않는다.
클라이언트가 복제된 서버를 호출하는 제한된 경우에 대한 완전한 인과 순서화 모델을 구현하는 것이 필요하지 않은데, 그 이유는 그러한 경우에 일련 번호는 복제된 서버가 적절한 순서대로 요청을 처리할 수 있게 하기에 충분하기 때문이다. 그러나, 프로토콜이 복제된 서버가 다른 복제된 서버를 호출하도록 허용하는 것과 같은 더욱 일반적인 경우로 확장되는 때에는 완전한 모델이 요구된다.
본 발명은 특정 실시예를 참조하여 설명되었다. 그러나, 본 기술에 숙련된 사람들은 상술된 바람직한 실시예 이외에도 특정 형태로 본 발명을 구현하는 것이 가능하다는 것을 인식할 것이다. 이것은 본 발명의 취지를 벗어나지 않고 행해질 수 있다. 바람직한 실시예는 단지 예시적일 뿐이며, 임의의 방식으로 본 발명을 제한해서는 안된다. 본 발명의 영역은 전술된 설명보다는 첨부되는 청구 범위에 의해 주어지며, 본 청구 범위의 영역에 속하는 모든 변형과 등가물은 여기에 포함되도록 의도된다.

Claims (10)

  1. 폴트-톨러런트(fault-tolerant)의 클라이언트-서버 시스템에 있어서,
    1차 서버,
    백업 서버, 및
    클라이언트를 포함하고,
    상기 클라이언트는,
    요청을 상기 1차 서버로 송신하는 수단,
    상기 1차 서버로부터 응답-상기 응답은 1차 서버의 상태 정보를 포함함-을 수신하는 수단, 및
    상기 1차 서버의 상태 정보를 상기 백업 서버로 송신하는 수단을 포함하고,
    상기 1차 서버는,
    상기 요청을 수신하고 처리하는 수단,
    상기 요청에 응답하여, 임의의 백업 처리와 독립하여 상기 응답-상기 응답은 상기 1차 서버의 상태 정보를 포함함-을 클라이언트로 송신하는 수단, 및
    상기 1차 서버의 상태 정보를 상기 백업 서버로 주기적으로 송신하는 것을 포함하는 백업 처리를 수행하는 수단을 포함하고,
    상기 백업 서버는,
    상기 1차 서버로부터 상기 1차 서버의 상태 정보를 수신하는 수단, 및
    상기 클라이언트로부터 상기 1차 서버의 상태 정보를 수신하는 수단을 포함하는 폴트-톨러런트의 클라이언트-서버 시스템.
  2. 제1항에 있어서,
    상기 1차 서버의 상태 정보는 상기 1차 서버로부터 상기 백업 서버로 1차 서버의 상태 정보를 가장 최근에 전송한 이후에 상기 1차 서버가 처리했던 모든 요청-회답 쌍을 포함하는 폴트-톨러런트의 클라이언트-서버 시스템.
  3. 제1항에 있어서,
    상기 1차 서버의 상태 정보는 회답으로부터 유도된 체크섬(checksum)을 포함하는 폴트-톨러런트의 클라이언트-서버 시스템.
  4. 제1항에 있어서,
    상기 백업 처리를 수행하기 위한 상기 1차 서버의 수단은 소정의 시간 간격에 기초하여 주기적으로 활성화되는 폴트-톨러런트의 클라이언트-서버 시스템.
  5. 제1항에 있어서,
    상기 1차 서버는 상기 1차 서버의 상태 정보를 저장하는 수단을 더 포함하고,
    상기 백업 처리를 수행하기 위한 상기 1차 서버의 수단은 소정의 양까지 채워지는 상기 1차 서버의 상태 정보를 저장하는 수단에 응답하여 활성화되는 폴트-톨러런트의 클라이언트-서버 시스템.
  6. 1차 서버, 백업 서버, 및 클라이언트를 포함하는 폴트-톨러런트의 클라이언트-서버 시스템을 동작시키는 방법에 있어서,
    상기 클라이언트로부터 상기 1차 서버로 요청을 송신하는 단계,
    상기 1차 서버에서, 상기 1차 서버에 의해 수행되고 있는 임의의 백업 처리에 독립적인, 상기 클라이언트에 응답을 송신하는 단계를 포함하는, 상기 요청을 수신 및 처리하는 단계-상기 응답은 1차 서버의 상태 정보를 포함함-,
    상기 1차 서버의 상태 정보를 상기 백업 서버로 주기적으로 송신하는 단계를 포함하는, 상기 1차 서버에서 백업 처리를 수행하는 단계,
    상기 클라이언트에서, 상기 1차 서버로부터 상기 응답을 수신하는 단계, 및
    클라이언트로부터 상기 백업 프로세서로 상기 1차 서버의 상태 정보를 송신하는 단계
    를 포함하는 방법.
  7. 제6항에 있어서,
    상기 1차 서버의 상태 정보는 상기 1차 서버로부터 상기 백업 서버로 1차 서버의 상태 정보를 가장 최근에 전송한 이후에, 상기 1차 서버가 취급했던 모든 요청-회답 쌍을 포함하는 방법
  8. 제6항에 있어서,
    상기 1차 서버의 상태 정보는 회답으로부터 유도된 체크섬을 포함하는 방법.
  9. 제6항에 있어서,
    상기 1차 서버에서 백업 처리를 수행하는 상기 단계는 소정의 시간 간격에 기초하여 주기적으로 수행되는 방법.
  10. 제6항에 있어서,
    상기 1차 서버는 상기 1차 서버의 상태 정보를 저장 수단에 저장하는 단계를 더 수행하고,
    상기 1차 서버에서 백업 처리를 수행하는 상기 단계는 소정 양까지 채워지는 상기 저정 수단에 응답하여 수행되는 방법.
KR1020017003798A 1998-09-24 1999-09-23 복제 서버용 프로토콜 KR100599912B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/159,771 US6247141B1 (en) 1998-09-24 1998-09-24 Protocol for providing replicated servers in a client-server system
US09/159,771 1998-09-24

Publications (2)

Publication Number Publication Date
KR20010079917A KR20010079917A (ko) 2001-08-22
KR100599912B1 true KR100599912B1 (ko) 2006-07-19

Family

ID=22573949

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017003798A KR100599912B1 (ko) 1998-09-24 1999-09-23 복제 서버용 프로토콜

Country Status (10)

Country Link
US (1) US6247141B1 (ko)
EP (1) EP1116115B1 (ko)
JP (1) JP4481498B2 (ko)
KR (1) KR100599912B1 (ko)
CN (1) CN1213376C (ko)
AU (1) AU6380499A (ko)
BR (1) BR9913941A (ko)
CA (1) CA2344311C (ko)
DE (1) DE69905594T2 (ko)
WO (1) WO2000017755A2 (ko)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397247B1 (en) * 1998-03-25 2002-05-28 Nec Corporation Failure prediction system and method for a client-server network
US8010627B1 (en) * 1998-09-25 2011-08-30 Sprint Communications Company L.P. Virtual content publishing system
US6629263B1 (en) * 1998-11-10 2003-09-30 Hewlett-Packard Company Fault tolerant network element for a common channel signaling (CCS) system
US6880008B1 (en) * 1999-03-31 2005-04-12 Sony Corporation System and method for retrieving a backup file having a file name exactly corresponding to the date and time of a client request, if no exact match for the date and time corresponding to the client request is found, to search for the backup file having the file name with a date and time that are closest to but prior to the specified date and time
US6457011B1 (en) * 1999-07-23 2002-09-24 Microsoft Corporation Method of updating a shared database in a computer network
US6324692B1 (en) * 1999-07-28 2001-11-27 Data General Corporation Upgrade of a program
US6345282B1 (en) * 1999-09-30 2002-02-05 Nortel Networks Limited Multi-processor data synchronization method and apparatus
US6667980B1 (en) * 1999-10-21 2003-12-23 Sun Microsystems, Inc. Method and apparatus for providing scalable services using a packet distribution table
US6564336B1 (en) * 1999-12-29 2003-05-13 General Electric Company Fault tolerant database for picture archiving and communication systems
US6789213B2 (en) * 2000-01-10 2004-09-07 Sun Microsystems, Inc. Controlled take over of services by remaining nodes of clustered computing system
US6769008B1 (en) 2000-01-10 2004-07-27 Sun Microsystems, Inc. Method and apparatus for dynamically altering configurations of clustered computer systems
US6735206B1 (en) 2000-01-10 2004-05-11 Sun Microsystems, Inc. Method and apparatus for performing a fast service lookup in cluster networking
US6735205B1 (en) 2000-01-10 2004-05-11 Sun Microsystems, Inc. Method and apparatus for fast packet forwarding in cluster networking
US6587866B1 (en) * 2000-01-10 2003-07-01 Sun Microsystems, Inc. Method for distributing packets to server nodes using network client affinity and packet distribution table
US6757836B1 (en) 2000-01-10 2004-06-29 Sun Microsystems, Inc. Method and apparatus for resolving partial connectivity in a clustered computing system
US6748437B1 (en) 2000-01-10 2004-06-08 Sun Microsystems, Inc. Method for creating forwarding lists for cluster networking
US6862613B1 (en) 2000-01-10 2005-03-01 Sun Microsystems, Inc. Method and apparatus for managing operations of clustered computer systems
US6735717B1 (en) * 2000-04-13 2004-05-11 Gnp Computers, Inc. Distributed computing system clustering model providing soft real-time responsiveness and continuous availability
US7007190B1 (en) * 2000-09-06 2006-02-28 Cisco Technology, Inc. Data replication for redundant network components
US6816980B1 (en) 2000-09-15 2004-11-09 Zeronines Technology, Inc. Fault tolerant, state-compatible computer system and method
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
US6854072B1 (en) * 2000-10-17 2005-02-08 Continuous Computing Corporation High availability file server for providing transparent access to all data before and after component failover
US7069334B2 (en) 2000-12-27 2006-06-27 Intel Corporation Image restoration and reconfiguration support for crashed devices
US7203755B2 (en) * 2000-12-29 2007-04-10 Webex—Communications, Inc. System and method for application sharing in collaborative setting
US20030164853A1 (en) 2000-12-29 2003-09-04 Min Zhu Distributed document sharing
US20030167418A1 (en) * 2000-12-29 2003-09-04 Min Zhu Fault-tolerant server for collaborative computing
US6901448B2 (en) * 2000-12-29 2005-05-31 Webex Communications, Inc. Secure communications system for collaborative computing
US7130883B2 (en) 2000-12-29 2006-10-31 Webex Communications, Inc. Distributed network system architecture for collaborative computing
US7069298B2 (en) 2000-12-29 2006-06-27 Webex Communications, Inc. Fault-tolerant distributed system for collaborative computing
US20020091881A1 (en) * 2001-01-10 2002-07-11 International Business Machines Corporation Managing a failure to access a database in a computer system
US6950961B2 (en) * 2001-02-13 2005-09-27 Hewlett-Packard Development Company, L.P. Highly available, monotonic increasing sequence number generation
US7454614B2 (en) * 2001-03-29 2008-11-18 Microsoft Corporation Method and apparatus for fault tolerant TCP handshaking
US7028217B2 (en) * 2001-06-04 2006-04-11 Lucent Technologies Inc. System and method of general purpose data replication between mated processors
WO2003027848A2 (en) * 2001-08-03 2003-04-03 Matsushita Electric Industrial Co., Ltd. Backup-restoration system and right management server
US7107355B2 (en) * 2002-02-11 2006-09-12 Sun Microsystems, Inc. High availability lightweight directory access protocol service
US8688787B1 (en) 2002-04-26 2014-04-01 Zeronines Technology, Inc. System, method and apparatus for data processing and storage to provide continuous e-mail operations independent of device failure or disaster
US8140888B1 (en) * 2002-05-10 2012-03-20 Cisco Technology, Inc. High availability network processing system
US20040153709A1 (en) * 2002-07-03 2004-08-05 Burton-Krahn Noel Morgen Method and apparatus for providing transparent fault tolerance within an application server environment
WO2004012061A2 (en) 2002-07-29 2004-02-05 Eternal Systems, Inc. Consistent message ordering for semi-active and passive replication
US7266607B2 (en) * 2002-08-27 2007-09-04 International Business Machines Corporation Quasi-high availability hosted applications
DE10253037B4 (de) * 2002-11-14 2007-07-12 Roland Schaad Verfahren zur funktionellen Aufrechterhaltung eines Datenverarbeitungsnetzwerkes nach Auftreten eines Hardware- und/oder Softwarefehlers
JP4141875B2 (ja) 2003-03-27 2008-08-27 株式会社日立製作所 リカバリ処理方法及びその実施システム並びにその処理プログラム
US7114096B2 (en) * 2003-04-02 2006-09-26 International Business Machines Corporation State recovery and failover of intelligent network adapters
US20040225738A1 (en) * 2003-05-09 2004-11-11 Patel Dipak M. Methods, systems and computer program products for replicating servers and network traffic for problem determination and/or tuning
US7251745B2 (en) * 2003-06-11 2007-07-31 Availigent, Inc. Transparent TCP connection failover
CN100364244C (zh) * 2003-09-02 2008-01-23 华为技术有限公司 多接口对多接口的备份方法
US7394832B1 (en) * 2003-09-09 2008-07-01 Nortel Networks Limited Technique for synchronizing redundant network elements
US9209989B2 (en) * 2004-06-01 2015-12-08 Inmage Systems, Inc. Causation of a data read operation against a first storage system by a server associated with a second storage system according to a host generated instruction
US8949395B2 (en) 2004-06-01 2015-02-03 Inmage Systems, Inc. Systems and methods of event driven recovery management
US7676502B2 (en) * 2006-05-22 2010-03-09 Inmage Systems, Inc. Recovery point data view shift through a direction-agnostic roll algorithm
US7979656B2 (en) 2004-06-01 2011-07-12 Inmage Systems, Inc. Minimizing configuration changes in a fabric-based data protection solution
US7698401B2 (en) * 2004-06-01 2010-04-13 Inmage Systems, Inc Secondary data storage and recovery system
US8224786B2 (en) * 2004-06-01 2012-07-17 Inmage Systems, Inc. Acquisition and write validation of data of a networked host node to perform secondary storage
US8055745B2 (en) * 2004-06-01 2011-11-08 Inmage Systems, Inc. Methods and apparatus for accessing data from a primary data storage system for secondary storage
US8868858B2 (en) * 2006-05-19 2014-10-21 Inmage Systems, Inc. Method and apparatus of continuous data backup and access using virtual machines
US8180882B2 (en) 2004-07-22 2012-05-15 Tyco Electronics Subsea Communications Llc Distributed messaging system and method for sharing network status data
US7343454B2 (en) * 2004-11-16 2008-03-11 International Business Machines Corporation Methods to maintain triangle ordering of coherence messages
AU2006206756B2 (en) * 2005-01-07 2009-07-30 Thomson Reuters Enterprise Centre Gmbh Systems, methods, and software for distributed loading of databases
US7895308B2 (en) * 2005-05-11 2011-02-22 Tindall Steven J Messaging system configurator
US7877552B2 (en) * 2005-05-24 2011-01-25 Marathon Technologies Corporation Symmetric multiprocessor fault tolerant computer system
CN100362482C (zh) * 2005-07-21 2008-01-16 上海华为技术有限公司 一种双机备份实现方法及系统
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
US8683144B2 (en) * 2005-09-16 2014-03-25 Inmage Systems, Inc. Causation of a data read against a first storage system to optionally store a data write to preserve the version to allow viewing and recovery
US8601225B2 (en) * 2005-09-16 2013-12-03 Inmage Systems, Inc. Time ordered view of backup data on behalf of a host
CN100452768C (zh) * 2005-11-29 2009-01-14 华为技术有限公司 源特定组播和源无关组播配合的组播方法及其接入设备
US20070203974A1 (en) * 2006-02-09 2007-08-30 Baskey Michael E Method and system for generic application liveliness monitoring for business resiliency
US7735010B2 (en) * 2006-04-05 2010-06-08 Lexisnexis, A Division Of Reed Elsevier Inc. Citation network viewer and method
US8875135B2 (en) * 2006-04-17 2014-10-28 Cisco Systems, Inc. Assigning component operations of a task to multiple servers using orchestrated web service proxy
US8321377B2 (en) 2006-04-17 2012-11-27 Microsoft Corporation Creating host-level application-consistent backups of virtual machines
US8554727B2 (en) * 2006-05-19 2013-10-08 Inmage Systems, Inc. Method and system of tiered quiescing
US8838528B2 (en) * 2006-05-22 2014-09-16 Inmage Systems, Inc. Coalescing and capturing data between events prior to and after a temporal window
US8527470B2 (en) 2006-05-22 2013-09-03 Rajeev Atluri Recovery point data view formation with generation of a recovery view and a coalesce policy
US8527721B2 (en) * 2008-12-26 2013-09-03 Rajeev Atluri Generating a recovery snapshot and creating a virtual view of the recovery snapshot
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US7434096B2 (en) * 2006-08-11 2008-10-07 Chicago Mercantile Exchange Match server for a financial exchange having fault tolerant operation
US7634507B2 (en) * 2006-08-30 2009-12-15 Inmage Systems, Inc. Ensuring data persistence and consistency in enterprise storage backup systems
US7610510B2 (en) * 2007-02-16 2009-10-27 Symantec Corporation Method and apparatus for transactional fault tolerance in a client-server system
US8209417B2 (en) * 2007-03-08 2012-06-26 Oracle International Corporation Dynamic resource profiles for clusterware-managed resources
US20080250097A1 (en) * 2007-04-04 2008-10-09 Adadeus S.A.S Method and system for extending the services provided by an enterprise service bus
US7782801B2 (en) * 2007-05-29 2010-08-24 Red Hat, Inc. Flush support for virtual synchrony
US8683033B2 (en) * 2007-09-17 2014-03-25 International Business Machines Corporation Apparatus, system, and method for server failover to standby server during broadcast storm or denial-of-service attack
US20090150459A1 (en) * 2007-12-07 2009-06-11 International Business Machines Corporation Highly available multiple storage system consistency heartbeat function
US8028194B2 (en) * 2008-07-25 2011-09-27 Inmage Systems, Inc Sequencing technique to account for a clock error in a backup system
US8069227B2 (en) * 2008-12-26 2011-11-29 Inmage Systems, Inc. Configuring hosts of a secondary data storage and recovery system
US8682954B2 (en) * 2009-07-15 2014-03-25 International Business Machines Corporation Replication in a network environment
JP5560113B2 (ja) * 2010-06-25 2014-07-23 株式会社日立製作所 計算機システム及び計算機の管理方法
CN102300028A (zh) * 2010-06-28 2011-12-28 株式会社东芝 数据处理装置、图像处理系统以及数据处理方法
US20130268801A1 (en) * 2010-12-10 2013-10-10 Nec Corporation Server management apparatus, server management method, and program
US8868862B2 (en) * 2011-12-29 2014-10-21 Alcatel Lucent Method and apparatus for synchronization in primary-backup replication schemes
JP2013161252A (ja) * 2012-02-03 2013-08-19 Fujitsu Ltd 冗長コンピュータ制御プログラム、方法、及び装置
JP5982842B2 (ja) * 2012-02-03 2016-08-31 富士通株式会社 コンピュータ障害監視プログラム、方法、及び装置
CN103823727B (zh) * 2014-02-13 2016-04-13 深圳市同洲电子股份有限公司 一种直播录制的备份方法和装置
US9558078B2 (en) 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots
JP6676352B2 (ja) * 2015-11-27 2020-04-08 株式会社三菱Ufj銀行 データ処理装置
CN105955989B (zh) * 2015-12-31 2020-12-22 华云数据控股集团有限公司 一种云平台数据库主从服务器的建立方法
US10320626B1 (en) 2016-04-07 2019-06-11 Wells Fargo Bank, N.A. Application discovery and dependency mapping
US10782890B2 (en) * 2016-09-21 2020-09-22 International Business Machines Corporation Log snapshot procedure control on an automated data storage library
US10839852B2 (en) 2016-09-21 2020-11-17 International Business Machines Corporation Log snapshot control on an automated data storage library

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5005122A (en) * 1987-09-08 1991-04-02 Digital Equipment Corporation Arrangement with cooperating management server node and network service node
US4879716A (en) 1987-12-23 1989-11-07 Bull Hn Information Systems Inc. Resilient data communications system
US5307481A (en) 1990-02-28 1994-04-26 Hitachi, Ltd. Highly reliable online system
US5157663A (en) 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system
JPH04271454A (ja) 1991-02-27 1992-09-28 Toshiba Corp 疎結合計算機システム
EP0537903A2 (en) * 1991-10-02 1993-04-21 International Business Machines Corporation Distributed control system
WO1993009494A1 (en) 1991-10-28 1993-05-13 Digital Equipment Corporation Fault-tolerant computer processing using a shadow virtual processor
JP3213766B2 (ja) 1992-03-16 2001-10-02 株式会社日立製作所 レプリケートファイル更新システム
EP0680634B1 (en) 1993-01-21 1997-05-14 Apple Computer, Inc. Apparatus and method for backing up data from networked computer storage devices
US5434994A (en) 1994-05-23 1995-07-18 International Business Machines Corporation System and method for maintaining replicated data coherency in a data processing system
US5673381A (en) 1994-05-27 1997-09-30 Cheyenne Software International Sales Corp. System and parallel streaming and data stripping to back-up a network
US5566297A (en) 1994-06-16 1996-10-15 International Business Machines Corporation Non-disruptive recovery from file server failure in a highly available file system for clustered computing environments
US5581753A (en) 1994-09-28 1996-12-03 Xerox Corporation Method for providing session consistency guarantees
US5634052A (en) * 1994-10-24 1997-05-27 International Business Machines Corporation System for reducing storage requirements and transmission loads in a backup subsystem in client-server environment by transmitting only delta files from client to server
US5513314A (en) 1995-01-27 1996-04-30 Auspex Systems, Inc. Fault tolerant NFS server system and mirroring protocol
US5696895A (en) 1995-05-19 1997-12-09 Compaq Computer Corporation Fault tolerant multiple network servers
US5796934A (en) 1996-05-31 1998-08-18 Oracle Corporation Fault tolerant client server system
US5758359A (en) 1996-10-24 1998-05-26 Digital Equipment Corporation Method and apparatus for performing retroactive backups in a computer system

Also Published As

Publication number Publication date
CA2344311C (en) 2008-04-01
WO2000017755A3 (en) 2000-06-08
EP1116115A2 (en) 2001-07-18
DE69905594D1 (de) 2003-04-03
BR9913941A (pt) 2001-06-12
JP2002525748A (ja) 2002-08-13
CN1342280A (zh) 2002-03-27
AU6380499A (en) 2000-04-10
CN1213376C (zh) 2005-08-03
WO2000017755A2 (en) 2000-03-30
CA2344311A1 (en) 2000-03-30
US6247141B1 (en) 2001-06-12
JP4481498B2 (ja) 2010-06-16
EP1116115B1 (en) 2003-02-26
DE69905594T2 (de) 2003-11-27
KR20010079917A (ko) 2001-08-22

Similar Documents

Publication Publication Date Title
KR100599912B1 (ko) 복제 서버용 프로토콜
US7194652B2 (en) High availability synchronization architecture
US7284236B2 (en) Mechanism to change firmware in a high availability single processor system
US7627694B2 (en) Maintaining process group membership for node clusters in high availability computing systems
US7188237B2 (en) Reboot manager usable to change firmware in a high availability single processor system
US7076689B2 (en) Use of unique XID range among multiple control processors
AU752846B2 (en) Method and apparatus for providing failure detection and recovery with predetermined degree of replication for distributed applications in a network
US9069729B2 (en) Method and system for providing high availability to distributed computer applications
Silva et al. Fault-tolerant execution of mobile agents
EP0818001B1 (en) Fault-tolerant processing method
EP1533701B1 (en) System and method for failover
AU752844B2 (en) Method and apparatus for providing failure detection and recovery with predetermined replication style for distributed applications in a network
US5440726A (en) Progressive retry method and apparatus having reusable software modules for software failure recovery in multi-process message-passing applications
US6338146B1 (en) Method and apparatus for fault-tolerant, scalable and non-blocking three-phase flushing for committing database transactions in a cluster of multiprocessors
US7065673B2 (en) Staged startup after failover or reboot
JPH11502658A (ja) 故障許容処理方法
Garcia-Molina et al. Issues in disaster recovery
JP3467750B2 (ja) 分散オブジェクト処理システム
Ling et al. A self-tuning, self-protecting, self-healing session state management layer
Murray et al. Somersault software fault-tolerance
Mukai et al. A networkwide backup system with inter‐memory autonomic copy mechanism
JPH09204318A (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
LAPS Lapse due to unpaid annual fee