KR20140097511A - 기본-백업 복제 방안에서의 동기화 방법 및 장치 - Google Patents

기본-백업 복제 방안에서의 동기화 방법 및 장치 Download PDF

Info

Publication number
KR20140097511A
KR20140097511A KR1020147017895A KR20147017895A KR20140097511A KR 20140097511 A KR20140097511 A KR 20140097511A KR 1020147017895 A KR1020147017895 A KR 1020147017895A KR 20147017895 A KR20147017895 A KR 20147017895A KR 20140097511 A KR20140097511 A KR 20140097511A
Authority
KR
South Korea
Prior art keywords
epoch
backup
output
current epoch
previous
Prior art date
Application number
KR1020147017895A
Other languages
English (en)
Inventor
케다르 남조쉬
프라모드 코폴
타노스 스타토포울로스
고든 티 윌퐁
Original Assignee
알까뗄 루슨트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 알까뗄 루슨트 filed Critical 알까뗄 루슨트
Publication of KR20140097511A publication Critical patent/KR20140097511A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/1479Generic software techniques for error detection or fault masking
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2038Error 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 processing functionality is redundant with a single idle spare processing component
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

기본 백업 복제 성능(primary-backup replication capability)에 관한 내용이 개시된다. 기본 프로세스 및 백업 프로세스는 기본 프로세스의 상태 정보를 백업 프로세스의 상태 청보와 동기화시키도록 구성된 동기화 프로세스에 참여한다. 동기화 프로세스는 에포크(epoch)라고 불리는 시구간 동안 동작한다. 현재 에포크 동안 기본 프로세스는 이전 에포크 이후 기본 프로세스의 상태 정부에 대한 변화를 나타내는 상태 갱신 정보를 계산한다. 현재 에포크 동안 기본 프로세스는 현재 에포크 전용 연관 출력 버퍼에 현재 에포크 동안 생성된 출력 메시지를 저장한다. 기본 프로세스는 이전 에포크에 대한 상태 갱신 확인(state update acknowledgement)을 백업 프로세스로부터 수신하는 것과는 독립적으로 새로운 에포크를 개시한다. 기본 프로세스가 현재 에포크에 대한 상태 갱신 확인을 수신하고 모든 이전 에포크의 모든 출력 버퍼가 비워진 후 현재 에포크를 위해 저장된 출력 메시지가 연관 출력 버퍼로부터 배포된다.

Description

기본-백업 복제 방안에서의 동기화 방법 및 장치{METHOD AND APPARATUS FOR SYNCHRONIZATION IN PRIMARY-BACKUP REPLICATION SCHEMES}
본 발명은 일반적으로 기본-백업 복제 방안에서 동기화를 제공하는 기법에 관한 것이다.
클라우드 컴퓨팅은 컴퓨팅 서비스를 제공하는 방식을 바꾸고 있다. 데이터 센터의 성능을 최대한 이용하기 위해, 많은 서비스들은 로드에 따라 스케일링되고 고장을 견디도록 설계된다. 원격통신, 게임 등의 상호작용형 서비스와 같은 다양한 서비스들은 지연이나 지터(jitter)와 같은 네트워크 성능 파라미터가 비교적 엄격히 제한된다. 이들 기준 - 탄력성(elasticity), 내고장성(fault-tolerance), 네트워크 성능 -은 다양한 방식으로 상충할 수 있다. 프로세스에 내고장성을 추가하는 다양한 내고장성 메커니즘이 존재하지만, 이러한 내고장성을 제공하기 위해서는 전형적으로 네트워크 오버헤드가 발생한다는 단점을 감수해야만 한다. 이러한 내고장성 메커니즘 중 하나가 기본-백업 복제(primary-backup replication)로서, 여기서는 기본 프로세스의 고장 이후 백업 프로세스가 기본 프로세스를 따라잡을 수 있도록 기본 프로세스의 상태가 백업 프로세서의 상태와 동기화된다. 그러나, 메모리와 디스크 모두의 회복을 허용하는 방안을 포함하는 기존의 많은 기본-백업 복제 방안에는 주된 프로세스와 백업 프로세스 사이의 동기화로 인해 적어도 기본 프로세스와 백업 프로세스 사이의 왕복 지연(round-trip delay)만큼의 지연이 추가된다는 단점이 존재한다. 이로 인해 지연에 민감한 서비스의 네트워크 성능이 심각하게 저하되게 된다.
종래 기술의 여러 문제점들이 기본-백업 복제를 제공하는 실시예들에 의해 해소된다.
적어도 일부 실시예에서, 기본 프로세스와 백업 프로세스는 기본 프로세스의 상태 정보를 백업 프로세스의 상태 청보와 동기화시키도록 구성된 동기화 프로세스에 참여한다. 동기화 프로세스는 에포크(epoch)라고 불리는 시구간 동안 동작한다. 각 에포크에 대해, 해당 에포크 동안 생성된 출력 메시지를 저장하는 데 사용되도록 연관된 출력 버퍼가 할당된다. 현재 에포크 동안 기본 프로세스는 이전 에포크 이후 기본 프로세스의 상태 정부에 대한 변화를 나타내는 상태 갱신 정보를 계산한다. 현재 에포크 동안 기본 프로세스는 현재 에포크 전용 연관 출력 버퍼에 현재 에포크 동안 생성된 출력 메시지를 저장한다. 기본 프로세스는 이전 에포크에 대한 상태 갱신 확인(state update acknowledgement)을 백업 프로세스로부터 수신하는 것과는 독립적으로 새로운 에포크를 개시한다. 기본 프로세스가 현재 에포크에 대한 상태 갱신 확인을 수신하고 모든 이전 에포크의 모든 출력 버퍼가 비워진 후 현재 에포크를 위해 저장된 출력 메시지가 연관 출력 버퍼로부터 배포된다.
일 실시예에서, 기본 프로세스와 백업 프로세스 간 상태를 동기화하도록 장치가 구성된다. 이 장치는 프로세서와 적어도 하나의 메모리를 포함한다. 적어도 하나의 메모리는 기본 프로세스의 상태 정보를 상기 백업 프로세스의 상태 정보와 동기화하도록 구성된 동기화 프로세스의 복수의 에포크(a plurality of epochs) 각각과 연관된 복수의 출력 버퍼를 유지하도록 구성된다. 프로세서는 현재 에포크 동안, 이전 에포크 이후 기본 프로세스의 상태 정보에 대한 변화를 나타내는 상대 갱신 정보를 현재 에포크에 대해 계산하고, 현재 에포크 동안 생성된 출력 메시지를 현재 에포크와 연관된 출력 버퍼에 저장한다. 프로세서는 또한 이전 에포크에 대한 상태 갱신 확인(acknowledgement)을 백업 프로세스로부터 수신하는 것과 무관하게 새로운 에포크를 개시하도록 구성되는데, 이전 에포크에 대한 상태 갱신 확인은 이전 에포크 동안 기본 프로세스에 의해 결정된 상태 갱신 정보를 백업 프로세스가 수신했음을 확인하는 것이다.
일 실시예에서는 기본 프로세스와 백업 프로세스 간 상태를 동기화하는 방법이 제공된다. 이 방법은 프로세서와 적어도 하나의 메모리를 사용한다. 기본 프로세스의 상태 정보를 백업 프로세스의 상태 정보와 동기화하도록 구성된 동기화 프로세스의 현재 에포크 동안, 현재 에포크에 대해 상태 갱신 정보가 계산되는데, 상태 갱신 정보는 이전 에포크 이후 상기 기본 프로세스의 상기 상태 정보에 대한 변화를 나타내는 것이고, 현재 에포크 동안 생성된 출력 메시지는 현재 에포크와 연관된 출력 버퍼에 저장된다. 이전 에포크에 대한 상태 갱신 확인을 상기 백업 프로세스로부터 수신하는 것과 무관하게 새로운 에포크가 개시되는데, 이전 에포크에 대한 상태 갱신 확인은 이전 에포크 동안 기본 프로세스에 의해 결정된 상태 갱신 정보를 백업 프로세스가 수신했음을 확인하는 것이다.
일 실시예에서는 컴퓨터에 의해 실행되어 컴퓨터로 하여금 기본 프로세스와 백업 프로세스 간 상태를 동기화하는 방법을 수행하도록 하는 인스트럭션을 저장하는 컴퓨터 판독가능 저장 매체가 제공된다. 기본 프로세스의 상태 정보를 백업 프로세스의 상태 정보와 동기화하도록 구성된 동기화 프로세스의 현재 에포크 동안, 현재 에포크에 대해 상태 갱신 정보가 계산되는데, 상태 갱신 정보는 이전 에포크 이후 상기 기본 프로세스의 상기 상태 정보에 대한 변화를 나타내는 것이고, 현재 에포크 동안 생성된 출력 메시지는 현재 에포크와 연관된 출력 버퍼에 저장된다. 이전 에포크에 대한 상태 갱신 확인을 상기 백업 프로세스로부터 수신하는 것과 무관하게 새로운 에포크가 개시되는데, 이전 에포크에 대한 상태 갱신 확인은 이전 에포크 동안 기본 프로세스에 의해 결정된 상태 갱신 정보를 백업 프로세스가 수신했음을 확인하는 것이다.
본 명세서의 기재 내용은 첨부하는 도면을 참고하여 후속하는 상세한 설명을 읽음으로써 용이하게 이해될 것이다.
도 1은 비동기식 파이프라인형 체크포인트(Asynchronous Pipelined Checkpointing) 기본-백업 복제 방안을 지원하도록 구성된 시스템의 상위 레벨 블럭도이다.
도 2는 도 1의 시스템 내의 비동기식 파이프라인형 체크포인트 기본-백업 복제 방안의 예시적인 작동 다이어그램을 나타낸다.
도 3은 도 2와 관련하여 도시되고 기술된 바와 같이 에포크를 이용하여 기본-백업 복제를 제공하는 방법의 일 실시예를 제공한다.
도 4는 도 2와 관련하여 도시되고 기술된 바와 같이 에포크와 연관된 정보를 관리함으로써 기본-백업 복제를 제공하는 방법의 일 실시예를 제공한다.
도 5는 본 명세서에 기술된 기능들을 수행하는 데 사용되기에 적합한 컴퓨터의 상위 레벨 블럭도를 보여준다.
이해를 돕기 위해, 여러 도면에 공통되는 구성요소에 대해서는 동일한 참조부호를 사용하였다.
본 발명의 일 실시예가 적용되는 클라이언트-서버 시스템을 나타내는 네트워크 다이어그램이다.
본 명세서에는 전반적으로 기본-백업 복제 성능이 도시되고 기술되어 있지만 이와 다른 다양한 성능들도 본 명세서 내에 제공될 수 있다.
본 발명이 (본 명세서에서 비동기식 파이프라인형 체크포인트 기본-백업 복제 방안이라고 지칭되는) 체크포인트 기반 기본-백업 복제를 제공하는 기본-백업 복제 성능의 실시예들을 사용하여 주로 도시되고 설명되었지만, 기본-백업 복제 성능의 다양한 실시예들을 사용하여 이벤트 기반 기본-백업 복제(예컨대, 입력, 인터럽트 등과 같은 비결정적 이벤트에 기초한 기본-백업 복제)를 위한 기본-백업 복제를 제공할 수 있다는 점에 유의해야 한다.
도 1은 비동기식 파이프라인형 체크포인트 기본-백업 복제 방안을 지원하도록 구성된 시스템의 상위 레벨 블럭도를 도시한다.
도 1에 도시된 바와 같이, 시스템(100)은 기본 프로세스(110P)와 백업 프로세스(110B)(총칭하여 프로세스들(100)), 연관 환경(120)을 포함한다. 도 1에 더 도시되어 있듯이, 기본 프로세스는 그와 연관된 출력 버퍼 모듈(112)을 구비한다.
기본 프로세스(110P)는 환경(120)과 상호작용하도록 구성된다. 기본 프로세스(110P)는 환경(120)으로부터 입력 메시지를 수신하여 수신된 입력 메시지를 처리하도록 구성된다. 기본 프로세스(110P)는 (예를 들어, 기본 프로세스(110P)에 의해 수신된 입력 메시지에 독립적인 지역 프로세싱에 기초하여 및/또는 기본 프로세스(110P)에 의해 수신된 입력 메시지의 처리에 기초하여) 출력 메시지를 생성하고, 출력 메시지를 환경(120)에 제공하도록 구성된다. 기본 프로세스(110P)는 출력 버퍼 모듈(112)을 사용하여 생성된 출력 메시지를 저장하도록 구성된다. 출력 버퍼 모듈(112)(및 그와 연관된 출력 버퍼들 b1 내지 bn)은 (이를테면 각각의 버퍼를 위해 개별적인 큐를 사용하거나, 각각의 출력 버퍼를 구별하도록 큐 마커(queue marker)를 포함하는 단일 큐를 사용하는 등) 임의의 적절한 방식으로 구현될 수 있다. 기본 프로세스(110P)는 수신된 입력 메시지를 저장하기 위해 (명확성을 위해 생략된) 하나 이상의 입력 버퍼를 사용하도록 구성될 수도 있다. 기본 프로세스(110P)와 환경(120) 사이의 통신은 양방향이라는 점에 유의해야 하는데, 출력 버퍼 모듈(112)을 보다 잘 도시하기 위해 기본 프로세스(110P)로의 입력 및 기본 프로세스(110P)로부터의 출력용으로 두 개의 상이한 통신 경로를 사용하는 것으로 도시하였지만, 이는 임의의 적절한 방식으로 제공될 수 있다.
백업 프로세스(110B)는 기본 프로세스(110P)를 백업하도록 구성된다. 백업 프로세스(110B)는 기본 프로세스(110P)가 실패한 경우 활성화된 프로세스로서 동작하도록 구성된다. 백업 프로세스(110B)가 활성화되면 전술한 기본 프로세스(110P)의 동작과 유사한 방식으로 동작하도록 구성된다. 백업 프로세스(110B)가 활성화되면 백업 프로세스(110B)와 환경(120) 사이의 통신이 양방향성이라는 점에 유의해야 하는데, 백업 프로세스(110B)로의 입력 및 백업 프로세스(110B)로부터의 출력용으로 두 개의 상이한 통신 경로를 사용하는 것으로 도시하였지만, 이는 임의의 적절한 방식으로 제공될 수 있다.
기본 프로세스(110P)의 실패 시 백업 프로세스(110B)가 활성화된 프로세스 역할을 수행하기 위해서는, 기본 프로세스(110P)와 백업 프로세스(110B)가 동기화되어야 한다. 따라서, 기본 프로세스(110P)의 상태와 일치하도록 백업 프로세스(110B)의 상태를 주기적으로 동기화하는 체크포인트 기반 동기화가 수행된다. 기본 프로세스(110P)와 백업 프로세스(110B) 사이의 상태 동기화는 디스크 상태 및 메모리 상태의 동기화를 포함한다. 기본 프로세스(110P)와 백업 프로세스(110B) 사이의 디스크 상태 및 메모리 상태가 모두 일치하도록 보장하기 위해서는 상태 정보의 기초가 되는 네트워크 출력이 기본 프로세스(110P)로부터 환경(120)으로 배포될 수 있기 전에 기본 프로세스(110P)와 백업 프로세스(110B)를 동기화해야 한다. 일 실시예에서는 비동기식 파이프라인형 체크포인트 기본-백업 복제 방안을 이용하여 동기화를 수행하는데, 이는 도 2 내지 4를 참조하여 이하에서 도시되고 설명될 것이다.
프로세스들(110)은 애플리케이션, 클라우드 컴퓨팅 환경의 가상 머신(Virtual Machines: VM)과 같은 기본-백업 복제가 사용될 수 있는 임의의 적절한 유형의 프로세스를 포함할 수 있다. 상태 정보 및 연관된 상태 정보 확인(state information acknowledgment)을 교환하기 위한 프로세스들(110)간의 통신은 임의의 적절한 방식으로 제공될 수 있다. 예컨대, 프로세스들(110) 사이의 통신은 단일의 물리적 장치 내에서 두 프로세스들(110)이 구현되는 장치 안의 내부 통신을 통해 이루어질 수 있다 (예시적으로 기본 프로세스(110P)와 백업 프로세스(110B) 사이의 점선을 이용). 이를테면, 프로세스들(110) 사이의 통신은 프로세스들(110)이 상이한 물리적 장치 상에서 실행되는 통신 네트워크를 통해 수행될 수도 있다 (예시적으로, 환경(120) 및/또는 임의의 적절한 환경이나 네트워크를 통해 수행). 명확성을 위해 도시하지 않았지만, 프로세스들(110)은 다양한 프로세서들 및 그와 연관된 메모리(그리고, 선택적으로, 기타 다양한 하드웨어 및 소프트웨어)를 구비하는 하나 이상의 물리적 머신 상에서 실행될 수 있다.
환경(120)은 통신 네트워크나 기타 유형의 환경과 같은 임의의 적절한 환경을 포함할 수 있다. 명확성을 위해 생략하였지만, 환경(120)은 기본 프로세스(110P)(그리고, 활성화된 경우 백업 프로세스(110B))가 다양한 유형의 메시지들을 교환할 수 있는 여러 노드를 포함할 수 있다. 예를 들어, 기본 프로세스(110P)(및 활성화된 경우의 백업 프로세스(110B))는 환경(120)으로부터 여러 유형의 입력 메시지를 수신하여 처리할 수 있고, 마찬가지로, 기본 프로세스(110P)(및 활성화된 경우의 백업 프로세스(110B))는 다양한 유형의 출력 메시지를 생성하여 환경(120)으로 전파할 수 있다.
도 2는 도 1의 시스템 내의 비동기식 파이프라인형 체크포인트 기본-백업 복제 방안의 예시적인 동작을 나타낸다.
도 2의 예시적인 동작 다이어그램(200)에 도시한 바와 같이, 기본 프로세스(110P: P로 표시)와 백업 프로세스(110B: B로 표시)는 기본 프로세스(110P)와 백업 프로세스(110B) 사이의 상태를 동기화시키기 위해 상호작용한다.
기본 프로세스(110P)는 에포크(epoch)로 지칭되는 시구간 내에서 동작한다 (예시적으로, ei는 i번째 에포크를 나타냄).
현재 에포크 ei는 이전 에포크 ei -1(선행 에포크라고도 지칭할 수 있음)이 종료된 후 임의의 시점에 개시되고, 마찬가지로 새로운 에포크 ei +1(다음 에포크라고도 지칭할 수 있음)는 현재 에포크 ei가 종료된 후 임의의 시점에 개시될 수 있다.
현재 에포크 ei 동안, 기본 프로세스(110P)는 자신의 상태 정보에 변화를 가져올 수도 있는 동작들(즉, 기본 프로세스(110P)의 동작들)을 수행한다. 기본 프로세스(110P)는 백업 프로세스(110B)의 상태 갱신 정보를 결정하는데, 예시적으로, mi는 현재 에포크 ei 동안 기본 프로세스(110P)가 백업 프로세스(110B)에 대해 계산한 현재 상태 갱신 정보를 나타내는 데 사용된다. 현재 에포크 ei 동안 기본 프로세스(110P)에 의해 결정된 현재 상태 갱신 정보 mi는 이전 상태 갱신 정보 mi -1이 이전 에포크 ei -1 동안 기본 프로세스(110P)에 의해 결정된 이후 기본 프로세스(110P)의 상태에 대한 변화(즉, 기본 프로세스(110P)의 상태와 백업 프로세스(110B)의 상태 사이의 차이)를 나타낸다. 기본 프로세스(110P)는 현재 에포크 ei 동안 자신의 동작들을 완료한 후에 또는 현재 에포크 ei 동안 자신의 동작들을 수행하면서, 현재 상태 갱신 정보 mi를 계산할 수 있다.
현재 에포크 ei 중에 기본 프로세스(110P)는 기본 프로세스(110P)가 동작하고 있는 환경에 제공될 출력 메시지를 생성할 수 있다. 기본 프로세스(110P)는 출력 메시지를 임의의 적절한 방식으로 생성할 수 있다. 예컨대, 기본 프로세스(110P)는 기본 프로세스(110P)에서 수신된 임의의 입력 메시지와는 독립적으로 수행되는 기본 프로세스(110P)에서의 지역적 처리에 기초하여 출력 메시지를 생성할 수도 있다. 예컨대, 기본 프로세스(110P)는 입력 메시지를 수신하고, 입력 메시지를 처리하여, 연관된 출력 메시지를 생성할 수 있다. 입력 메시지의 처리 및 출력 메시지의 생성은 기본 프로세스(110P)가 수행하는 동작들의 일부로 취급될 수도 있다. 현재 에포크 ei 동안 생성된 출력 메시지는 현재 에포크 ei만을 위한 연관된 출력 버퍼에 저장된다 (예시적으로, bi는 i번째 에포크에 대한 i번째 출력 버퍼를 나타냄).
기본 프로세스는 현재 에포크 ei의 종료 후 임의의 시점에서 새로운 에포크 ei+1를 개시한다. 기본 프로세스(110P)는 이어서 (이제는 기본 프로세스(110P)에 대한 현재 에포크가 된) 새로운 에포크 ei +1에 대한 동작 수행을 개시할 수 있다. 즉, 기본 프로세스(110P)는 자신의 동작을 수행하고, 새로운 에포크 ei +1에 대해 새로운 상태 갱신 정보 mi +1을 계산하고, 새로운 에포크 ei +1 동안 출력 메시지를 생성하여 저장할 수 있다. 기본 프로세스(110P)는 (1) 백업 프로세스(110B)가 임의의 이전 에포크에 대해 연관된 상태 갱신 정보를 수신하고 적용하였음을 나타내는 임의의 상태 갱신 확인을 백업 프로세스(110B)로부터 수신하는 것, (2) 현재 에포크 ei에 대한 상태 갱신 정보를 백업 프로세스(110B) 쪽으로 전송하는 것, (3) 백업 프로세스(110B)가 현재 에포크 ei에 대한 상태 갱신 정보를 수신하고 적용하였음을 나타내는 상태 갱신 확인을 백업 프로세스(110B)로부터 수신하는 것과는 독립적으로 새로운 에포크 ei + 1를 개시한다는 점에 주목해야 한다. 또한, 현재나 과거 상태 갱신 확인의 수신과는 독립적으로 새로운 에포크 ei + 1를 개시한 이후, 기본 프로세스는 임의의 주어진 시점에 계속 중인 에포크의 개수에 대한 어떠한 제한도 없이 계속해서 새로운 에포크를 개시하고 새로운 에포크에 대한 상태 갱신 정보를 전송할 수 있다는 사실에도 유의해야 한다. 기본 프로세스(110P)는 이러한 방식으로 연속적인 에포크에 대해 계속한다.
기본 프로세스(110P)는 현재 에포크 ei 동안 결정된 현재 상태 갱신 정보를 백업 프로세스(110B)로 전송하는데, 예컨대, mi는 기본 프로세스(110P)로부터 백업 프로세스(110B)로 전송된 현재 상태 갱신 정보를 나타내는 데 사용된다. 기본 프로세스(110P)는 새로운 에포크 ei +1의 개시와는 독립적으로 현재 에포크 ei에 대한 현재 상태 갱신 정보 mi를 백업 프로세스(110B)로 전송할 수 있다. 일 실시예에서는, 이를테면, 기본 프로세스(110P)가 현재 에포크 ei 동안 현재 에포크 ei에 대한 현재 상태 갱신 정보 mi를 백업 프로세스(110B)로 전송할 수 있는데, 예컨대, 현재 상태 갱신 정보 mi는 현재 에포크 ei 동안 기본 프로세스(110P)에 의해 백업 프로세스(110B)로 푸쉬되지만, 반드시 현재 에포크 ei 동안 백업 프로세스(110B)에 의해 수신되는 것은 아니다. 일 실시예에서는, 예를 들어, 기본 프로세스(110P)가 현재 에포크 ei에 대한 현재 상태 갱신 정보 mi를 다음 에포크 ei +1 동안 백업 프로세스(110B)로 전송할 수도 있는데, 이를테면, 현재 상태 갱신 정보 mi는 현재 에포크 ei가 종료된 후 기본 프로세스(110P)에 의해 백업 프로세스(110B)로 푸쉬될 수 있다. 이러한 실시예들의 조합도 지원될 수 있어서, 이를테면 기본 프로세스(110P)에 의해 현재 상태 갱신 정보 mi를 백업 프로세스(110B)로 푸쉬하는 것은 현재 에포크 ei 끝부분 및 다음 에포크 ei +1의 시작부분 모두 동안 발생할 수도 있다. 상태 갱신 정보는 임의의 적절한 방식으로 기본 프로세스(110P)로부터 백업 프로세스(110B)로 전송될 수 있는데, 예컨대, 임의의 적절한 통신 매체를 통해 전송되는 하나 이상의 메시지를 이용할 수 있다.
기본 프로세스(110P)의 에포크와는 독립적으로 백업 프로세스(110B)는 기본 프로세스(110P)에 의해 전송된 에포크 ei에 대한 상태 갱신 정보 mi를 수신하고, 연관된 상태 갱신 확인을 기본 프로세스(110P)로 전송하는데, 예시적으로 ai는 에포크 ei의 상태 갱신 정보 mi에 대응하여 백업 프로세스(110B)로부터 기본 프로세스(110P)로 전송된 상태 갱신 확인을 나타내는 데 사용된다. 상태 갱신 확인은 임의의 적절한 방식으로 백업 프로세스(110B)로부터 기본 프로세스(110P)로 전송될 수 있는데, 예를 들어, 임의의 적절한 통신 매체를 통해 전송된 임의의 적절한 유형의 메시지를 사용할 수 있다. 기본 프로세스(110P)는 (1) 에포크 ei에 대해 백업 프로세스(110B)로부터 상태 갱신 확인 ai를 수신하고, (2) 에포크 ei 이전의 모든 에포크에 대한 모든 출력 메시지가 각각의 연관된 출력 버퍼로부터 환경(120)으로 배포된 후 에포크 ei의 출력 버퍼 bi로부터 출력 메시지들을 배포한다.
출력 메시지들이 에포크 ei의 출력 버퍼 bi로부터 환경(120)으로 배포되는 시점에서는 기본 프로세스(110P)가 더 이상 에포크 ei 내에서 동작하고 있는 것이 아니지만, 출력 메시지가 에포크 ei의 출력 버퍼 bi로부터 환경(120)으로 배포될 때까지는 에포크 ei가 기본 프로세스(110P)에서 계속 중인 것으로 간주한다는 점에 유의해야 한다. 따라서, 전술한 바와 같이, 기본 프로세스(110P)는 에포크 ei의 출력 메시지가 에포크 ei의 출력 버퍼 bi로부터 환경(120)으로 배포되는 조건을 감시하도록 구성되어, 예컨대, 에포크 ei에 대한 상태 갱신 확인 ai가 백업 프로세스(110B)로부터 수신되었는지를 감시하고, 에포크 ei 이전의 모든 에포크에 대한 모든 출력 메시지가 각각의 연관된 출력 버퍼로부터 환경(120)으로 배포되었는지를 검출하기 위해 이전 에포크들의 출력 버퍼의 현재 상태를 감시한다.
버퍼 bi는 에포크 ei 동안 생성된 출력 메시지를 저장하도록 각 에포크 ei에 대해 인스턴스화(instantiated)되고, 유사하게 에포크 ei의 bi는 버퍼 bi로부터 출력 메시지가 배포된 후 종료된다. 따라서, 각 버퍼는 특정한 길이의 시간(즉, 각각의 연관된 에포크의 시작으로부터 해당 에포크의 출력 버퍼로부터 출력 메시지가 배포될 때까지) 동안 존재하며, 임의의 주어진 시점에서는 소정 개수의 버퍼만이 존재하게 된다.
전술한 바와 같이, 각 버퍼는 특정한 길이의 시간 동안 존재하므로 현재 계속 중인 버퍼의 개수에 대한 제한은 다음과 같이 계산된다. 첫째로, ei가 현재 에포크이거나 기본 프로세스(110P)가 백업 프로세스(110B)로부터의 상태 갱신 확인을 기다리고 있을 때 에포크 ei가 계속 중인 것으로 간주된다면, 계속 중인 에포크 e 하나 당 하나의 버퍼 b가 존재해야 한다는 점에 유의해야 한다. 둘째로, 에포크 ei가 종료되는 시점과 기본 프로세스(110P)가 백업 프로세스(110B)로부터 연관된 상태 갱신 확인을 수신하는 시점 사이의 시차를 T라 하면, 이는 대략 기본 프로세스(110P)와 백업 프로세스(110B) 사이의 왕복 시간(round-trip time)이 될 것이다. 셋째로, /에포크/는 에포크의 (시간) 길이를 나타내는 것으로 한다. (k-1)/에포크/ ≥T가 되도록 k를 선택하면 최대 k 개의 계속 중인 에포크가 존재하게 될 것이고, 따라서, k 개의 버퍼로 충분할 것이다. 비동기식 파이프라인형 체크포인트 기본-백업 복제 방안은 APCn으로 표시하도록 하고, n은 확인되지 않은 체크포인트를 나타내도록 한다(n = k-1).
비동기식 파이프라인형 체크포인트 기본-백업 복제 방안의 동작은 도 2의 예시적인 동작 다이어그램(200)을 보다 구체적으로 고려하면 더욱 잘 이해될 것이다.
도 2의 에포크 e1을 설명하면 다음과 같다. 에포크 e1 동안 생성된 출력 메시지는 그 에포크 e1과 연관된 버퍼 b1에 저장된다. 에포크 ei 완료시, 기본 프로세스(110P)는 상태 갱신 정보 m1을 백업 프로세스(110B)로 전송하는데, 전송 지연으로 인해 제 3 에포크 e3이 종료할 때쯤이 되어야 백업 프로세스(110B)에서 수신될 것이다. 백업 프로세스(110B)는 상태 갱신 정보를 처리하는데, 이는 제 3 에포크 e3의 종료 시점으로부터 제 4 에포크 e4의 시작 시점까지 수행된다. 백업 프로세스(110B)는 상태 정보 확인 a1을 기본 프로세스(110P)로 전송하는데, 전송 지연으로 인해 제 6 에포크 e6이 시작할 때쯤이 되어야 기본 프로세스(110P)에서 수신될 것이다. (이전 에포크의 버퍼들이 비워졌다고 가정하면) 상태 갱신 확인 a1이 제 6 에포크 e6 동안 수신되면 에포크 e1 동안 버퍼 b1에 저장되는 출력 메시지가 환경(120)으로 배포된다. 이 시점에서, 제 1 에포크 e1은 기본 프로세스(110P)를 위해 더 이상 계속 중이 아니게 된다.
도 2의 에포크 e2에 대해 설명하면 다음과 같다. 에포크 e2 동안 생성된 출력 메시지는 에포크 e2와 연관된 버퍼 b2에 저장된다. 에포크 e2의 완료시, 기본 프로세스(110P)는 상태 갱신 정보 m2를 백업 프로세스(110B)로 전송하는데, 이는 전송 지연으로 인해 제 4 에포크 e4의 종료시까지는 백업 프로세스(110B)에 의해 수신되지 않는다. 백업 프로세스(110B)는 상태 갱신 정보를 처리하는데, 이는 제 4 에포크 e4의 종료 시점으로부터 제 5 에포크 e5의 시작 시점까지 수행된다. 백업 프로세스(110B)는 상태 갱신 확인 a2를 기본 프로세스(110P)로 전송하는데, 이는 전송 지연으로 인해 제 7 에포크 e7의 시작 무렵까지는 기본 프로세스(110P)에 의해 수신되지 않는다. 이제 제 7 에포크 e7 동안 상태 갱신 확인 a2가 수신되면 (이전 에포크들의 버퍼들이 비워졌다고 가정하면), 에포크 e2 동안 버퍼 b2에 저장된 출력 메시지가 환경(120)으로 배포된다. 이때, 제 2 에포크 e2는 더 이상 기본 프로세스(110P)를 위해 계속 중이 아니게 된다. 제 2 에포크 e2로부터, 다음 에포크(제 3 에포크 e3)의 개시는 백업 프로세스(110B)가 임의의 이전 에포크(즉, 에포크 e0, e1, e2)에 대한 연관된 상태 갱신 정보를 수신하여 처리하였는지를 나타내는 임의의 상태 갱신 확인을 백업 프로세스(110B)로부터 수신하였는지 여부와는 독립적이 되는데, 이는 제 3 에포크 e3이 에포크 e1의 상태 갱신 확인 a1과 에포크 e2의 갱신 확인 a2가 기본 프로세스(110P)에 의해 수신되는 것보다 먼저 개시되기 때문이다.
도 3은 도 2와 관련하여 도시되고 설명된 에포크들을 이용하여 기본-백업 복제를 제공하는 방법의 일 실시예를 도시한다.
단계(310)에서, 방법(300)이 시작된다.
단계(320)에서 에포크 ei가 초기화된다. 에포크 ei는 에포크 ei에 대해 할당된 연관 버퍼 bi를 갖는다.
단계(330)에서 기본 프로세스는 에포크 ei 동안 기능들을 수행한다. 기본 프로세스는 동작들(이들 중 적어도 일부는 기본 프로세스의 상태 정보에 변화를 가져옴)을 수행하고, 에포크 ei에 대한 상태 갱신 정보를 계산하며, 생성된 출력 메시지를 에포크 ei와 연관된 버퍼 bi에 저장한다. 이들 기능들은 에포크 ei 내의 임의의 적절한 시점에 수행될 수 있다는 점(예컨대, 상태 갱신 정보는 동작들이 수행되는 것과 동시에 및/또는 그 이후에 계산될 수 있고, 출력 메시지는 에포크 ei 전체에 걸쳐 임의의 시점에 생성되고 저장될 수 있으며, 다양한 조합이 가능)에 유의하여야 한다.
단계(340)에서 방법(300)은 에포크 ei가 완료되었는지 판단한다. 에포크 ei는 에포크 ei에 대한 상태 갱신 정보가 결정된 후 임의의 시점에 완료된 것으로 간주될 수 있다. 에포크 ei가 완료되지 않으면, 방법(300)은 단계(330)로 돌아가서, 기본 프로세스가 계속하여 기능들 중 일부 또는 전부를 계속하여 수행하는데, 이들 기능의 예로는 에포크 ei에 대해 상태 갱신 정보를 결정하는 것, 에포크 ei와 연관된 버퍼 bi에 생성된 출력 메시지를 저장하는 것 등이 있다. 에포크 ei가 완료되면, 방법(300)은 (1) 단계(320)로 돌아가서 다음 에포크(i = i+1)를 개시하고, (2) 단계(350)로 진행한다. 다음 에포크 ei +1이 개시되기는 했지만, 출력 메시지가 환경으로 배포될 때까지는 에포크 ei 동안 생성된 출력 메시지를 저장하기 위해 에포크 ei는 계속된다.
단계(350)에서 기본 프로세스는 에포크 ei와 연관된 정보의 관리를 개시한다. 이는 상태 갱신 정보를 백업 프로세스로 전송하는 것과 에포크 ei와 연관된 버퍼 bi 내에 저장된 출력 메시지의 배포를 제어하는 동작을 수행하는 것을 포함할 수 있다. 에포크 ei와 연관된 정보를 관리하기 위한 예시적인 프로세스는 도 4를 참조하여 도시되고 기술될 것이다.
도 3에서, 방법(300)은 (다음 에포크 ei +1의 초기화를 위해) 단계(340)로부터 방법(300)이 단계(320)로 돌아가고, (단계 ei와 연관된 정보의 관리를 위해) 단계(350)로 진행하도록 구성된다. 이는 단계들(320 ~ 340)의 실행 각각을 위해 단계(350)의 개별적인 실행이 필요함을 의미한다. 따라서, 임의의 주어진 시점에는 에포크 ei를 위한 단계들(320 ~ 340)의 현재 실행 및 에포크 ei를 위한 단계들(320 ~ 340)의 실행시에 여전히 계속 중인 하나 이상의 이전 에포크들을 위한 단계(350)의 하나 이상의 동시 실행이 존재하게 된다.
도 4는 도 2와 관련하여 도시하고 설명된 바와 같이 에포크들과 연관된 정보를 관리함으로써 기본-백업 복제를 제공하는 방법의 일 실시예를 도시하고 있다.
전술한 바와 같이, 도 4의 방법(400)은 도 3의 방법(300)에 의해 초기화된 각 에포크 ei에 대해 도 3의 방법(300)의 단계(350)로서 사용되기에 적합하다.
단계(410)에서 방법(400)이 시작된다. 이때, 에포크 ei에 대한 상태 갱신 정보는 기본 프로세스에 의해 (예컨대, 도 3의 방법(300)의 단계들(320 ~ 340)을 이용하여) 계산되어 있다고 가정한다.
단계(420)에서 기본 프로세스가 에포크 ei에 대한 상태 갱신 정보를 백업 프로세스로 전송한다.
단계(430)에서 기본 프로세스는 에포크 ei에 대한 상태 갱신 확인이 백업 프로세스로부터 수신되었는지를 감시한다.
단계(440)에서 기본 프로세스는 에포크 ei에 대한 상태 갱신 확인이 수신되었는지 판단한다. 에포크 ei에 대한 상태 갱신 확인이 수신되지 않았으면, 방법(400)은 단계(430)로 돌아가고, 기본 프로세스는 에포크 ei에 대한 상태 갱신 확인의 수신 여부를 계속해서 감시한다. 에포크 ei에 대한 상태 갱신 확인이 수신되면, 방법(400)은 단계(450)로 진행한다.
단계(450)에서 기본 프로세스는 모든 이전 에포크들의 모든 출력 메시지들이 환경으로 배포되었는지를 판단한다. 모든 이전 에포크들의 모든 출력 메시지들이 환경으로 배포되었으면, 방법(400)은 단계(450)에 남고, 기본 프로세스는 에포크 ei의 버퍼 bi의 출력 메시지들과 관련하여 진행하기 전에 모든 이전 에포크들의 모든 출력 메시지들이 환경으로 배포될 때까지 대기한다. 모든 이전 에포크들의 모든 출력 메시지들이 환경으로 배포되면, 방법(400)은 단계(460)로 진행한다.
단계(460)에서 기본 프로세스는 에포크 ei의 버퍼 bi의 출력 메시지를 환경으로 배포한다.
단계(470)에서 방법(400)이 종료한다. 도 3과 관련하여 설명하였듯이, 도 4의 방법(400)은 도 3의 방법(300)에 의해 초기화되는 각 에포크마다 반복된다. 따라서, 임의의 주어진 시점에는 방법(400)의 다수의 실행과 도 3의 방법(300)의 실행이 서로 동시에 활성화되어 있을 것이다.
전술한 바와 같이, 도 3의 방법(300)과 도 4의 방법(400)은 에포크 ei가 완료되고 새로운 에포크 ei +1이 개시된 후 에포크 ei의 상태 갱신 정보가 기본 프로세스로부터 백업 프로세스로 전송되는 실시예에 대해 도시되고 기술되었지만, 에포크 ei의 상태 갱신 정보는 (도 4에 도시한 바와 같이) 단계(350)의 일부로서 에포크 ei 후의 임의의 적절한 시점(예컨대, 단계(330)의 일부로서 에포크 ei 동안(미도시))에 기본 프로세스로부터 백업 프로세스로 전송될 수 있다.
기본 및 백업 구성요소가 프로세스인 기본-백업 복제 방안에서 동기화를 제공하는 것과 관련하여 주로 도시하고 설명하였지만, 본 명세서에 도시되고 설명된 다양한 실시예들은 다른 유형의 기본 및 백업 구성요소를 위해 기본-백업 복제 방안에서 동기화(이를테면 네트워크 노드 또는 기타 다양한 장치 유형의 기본 및 백업 장치 사이의 동기화)를 제공하는 데 사용될 수 있고 기본 및 백업 애플리케이션 사이의 동기화 등을 위해서도 사용될 수 있음을 이해할 것이다.
도 5는 전술한 기능들을 수행하는 데 사용되기에 적절한 컴퓨터의 상위 레벨 블럭도이다.
도 5에 도시한 바와 같이, 컴퓨터(500)는 프로세서 구성요소(502)(예를 들어, 중앙 처리 장치(CPU) 및/또는 기타 적절한 프로세서(들))와 메모리(504)(예컨대, RAM, ROM 등)를 포함한다. 컴퓨터(500)는 협력(cooperating) 모듈/프로세스(505) 및/또는 (키보드, 키패드, 마우스 등과 같은 사용자 입력 장치일 수 있는) 다양한 입/출력 장치, (디스플레이, 스피커 등과 같은) 사용자 출력 장치, 출력 포트, 수신기, 송신기, (테이프 드라이브, 플로피 드라이브, 하드 디스크 드라이브, 컴팩트 디스크 드라이브 등과 같은) 저장 장치도 포함할 수 있다.
본 명세서에 도시되고 기술된 기능들은 (예컨대, 하나 이상의 프로세서 상의 소프트웨어 구현을 통해) 소프트웨어로 구현될 수도 있고, (범용 컴퓨터, 하나 이상의 ASIC(application specific integrated circuits), 및/또는 기타 임의의 하드웨어 균등물을 이용하여) 하드웨어로 구현될 수도 있다.
본 명세서에 도시되고 기술된 기능들은 (예컨대, 하나 이상의 프로세서에 의한 실행을 통해 범용 컴퓨터 상에서 실행되어 특수 목적 컴퓨터를 구현하는 것과 같이) 소프트웨어로 구현될 수도 있고, (하나 이상의 ASIC 및/또는 하나 이상의 기타 하드웨어 균등물을 이용하여) 하드웨어로 구현될 수도 있다.
일 실시예에서, 협력 프로세스(505)는 메모리(404)에 로딩되어 프로세서(502)에 의해 실행됨으로써 전술한 기능들을 구현할 수 있다. 따라서, (연관된 데이터 구조를 포함하는) 협력 프로세스(500)는 RAM 메모리, 자기 또는 광학 드라이브나 디스켓 등의 컴퓨터 판독가능 저장 매체 상에 저장될 수 있다.
도 5에 도시된 컴퓨터(500)는 본 명세서에 기술된 기능적 구성요소들 및/또는 본 명세서에 기술된 기능적 구성요소들의 일부를 구현하기에 적절한 일반적인 아키텍쳐와 성능을 제공한다는 점을 이해할 것이다. 예컨대, 컴퓨터(500)는 프로세스(110P), 기본 프로세스(110P)를 호스트하도록 구성된 장치, 백업 프로세스(110B), 백업 프로세스(110B)를 호스트하도록 구성된 장치, 환경(120) 장치 중 하나 이상을 구현하는 데 적합한 일반적인 아키텍쳐와 성능을 제공한다.
본 명세서에서 소프트웨어 방법으로서 논의된 단계들 중 일부는 다양한 방법의 단계들을 수행하는 프로세서와 협력하는 회로와 같은 하드웨어 내에서 구현될 수 있음을 이해해야 한다. 본 명세서에 기술된 기능/구성요소의 일부는 컴퓨터 프로그램 제품으로서 구현될 수 있어서, 컴퓨터에 의해 처리되는 경우 본 명세서에 기술된 방법 및/또는 기법을 호출하거나 제공하도록 컴퓨터를 작동시킬 것이다. 본 발명에 따른 방법을 호출하는 인스트럭션은 고정식 또는 착탈가능 매체에 저장될 수 있고, 브로드캐스팅 또는 기타 신호 포함 매체 내의 데이터 스트림을 통해 전송될 수 있으며, 인스트럭션에 따라 동작하는 컴퓨팅 장치 내의 메모리에 저장될 수도 있다.
다양한 실시예들의 특징들은 청구항에 명시된다. 다양한 실시예들의 이러한 특징 및 다른 특징들은 다음의 넘버링된 조항들에 명시된다.
1. 기본 프로세스와 백업 프로세스 간 상태를 동기화하는 장치로서,
상기 기본 프로세스의 상태 정보를 상기 백업 프로세스의 상태 정보와 동기화하도록 구성된 동기화 프로세스의 복수의 에포크(a plurality of epochs) 각각과 연관된 복수의 출력 버퍼를 유지하도록 구성된 적어도 하나의 메모리와,
프로세서
를 포함하되, 상기 프로세서는
현재 에포크 동안, 이전 에포크 이후 상기 기본 프로세스의 상기 상태 정보에 대한 변화를 나타내는 상태 갱신 정보를 상기 현재 에포크에 대해 계산하고, 상기 현재 에포크와 연관된 상기 출력 버퍼 내에 상기 현재 에포크 동안 생성된 출력 메시지를 저장하도록 구성되고,
상기 이전 에포크에 대한 상태 갱신 확인(acknowledgement) - 상기 이전 에포크에 대한 상기 상태 갱신 확인은 상기 이전 에포크 동안 상기 기본 프로세스에 의해 결정된 상태 갱신 정보를 상기 백업 프로세스가 수신했음을 확인하는 것임 - 을 상기 백업 프로세스로부터 수신하는 것과 무관하게 새로운 에포크를 개시하도록 구성되는 장치.
2. 조항 1에 있어서,
상기 프로세서는 상기 현재 에포크 동안 입력 메시지를 수신하고, 상기 출력 메시지의 적어도 일부를 생성하기 위해 상기 입력 메시지를 처리하도록 구성되는 장치.
3. 조항 1에 있어서,
상기 프로세서는 상기 현재 에포크 동안 상기 출력 메시지의 적어도 일부를 생성하기 위해 국부적 처리를 수행하도록 구성되는 장치.
4. 조항 1에 있어서,
상기 프로세서는 상기 현재 에포크에 대해 상기 백업 프로세스로부터 상태 갱신 확인이 수신되고 모든 이전 에포크의 출력 메시지가 각각의 출력 버퍼로부터 배포되면, 상기 현재 에포크와 연관된 상기 출력 버퍼로부터 상기 출력 메시지를 배포하도록 구성되는 장치.
5. 조항 4에 있어서,
상기 프로세서는 상기 출력 버퍼로부터의 상기 출력 메시지를 상기 기본 프로세스 및 상기 백업 프로세스와 연관된 환경으로 배포하도록 구성되는
장치.
6. 조항 5에 있어서,
상기 환경은 통신 네트워크 및 상기 기본 프로세스와 통신하도록 구성된 적어도 하나의 다른 프로세스를 포함하는 장치.
7. 조항 1에 있어서,
상기 프로세서는 상기 현재 에포크와 연관된 상기 상태 갱신 정보가 상기 백업 프로세스에 의해 수신되어 처리되었음을 나타내는 상기 백업 프로세스로부터의 확인을 감시하도록 구성되는 장치.
8. 조항 7에 있어서,
상기 프로세서는 상기 확인이 수신되면 모든 이전 에포크의 출력 메시지가 각각의 출력 버퍼로부터 배포되었는지를 판단하도록 구성되는 장치.
9. 조항 8에 있어서,
상기 프로세서는 모든 이전 에포크의 출력 메시지가 각각의 출력 버퍼로부터 배포되지 않았다고 판단되면 상기 현재 에포크와 연관된 상기 출력 버퍼로부터의 상기 출력 메시지 배포를 지연시키도록 구성되는 장치.
10. 조항 8에 있어서,
상기 프로세서는 모든 이전 에포크의 상기 출력 메시지가 각각의 출력 버퍼로부터 배포되었다고 판단되면 상기 현재 에포크와 연관된 상기 출력 버퍼로부터 상기 출력 메시지를 배포하도록 구성되는 장치.
11. 기본 프로세스와 백업 프로세스 간 상태를 동기화하는 방법으로서,
프로세서와 적어도 하나의 메모리를 사용하여,
기본 프로세스의 상태 정보를 백업 프로세스의 상태 정보와 동기화하도록 구성된 동기화 프로세스의 현재 에포크에 대한 상태 갱신 정보를 계산하는 단계 - 상기 상태 갱신 정보는 상기 현재 에포크 동안 계산되고, 상기 상태 갱신 정보는 이전 에포크 이후 상기 기본 프로세스의 상기 상태 정보에 대한 변화를 나타냄 - 와,
상기 현재 에포크 동안 생성된 출력 메시지를 상기 현재 에포크와 연관된 출력 버퍼에 저장하는 단계 - 상기 출력 메시지는 상기 현재 에포크 동안 저장됨 - 와,
상기 이전 에포크에 대한 상태 갱신 확인(acknowledgement) - 상기 이전 에포크에 대한 상기 상태 갱신 확인은 상기 이전 에포크 동안 상기 기본 프로세스에 의해 결정된 상태 갱신 정보를 상기 백업 프로세스가 수신했음을 확인하는 것임 - 을 상기 백업 프로세스로부터 수신하는 것과 무관하게 새로운 에포크를 개시하는 단계를 수행하는 단계를 포함하는 방법.
12. 조항 11에 있어서,
상기 현재 에포크 동안, 입력 메시지를 수신하고, 상기 출력 메시지의 적어도 일부를 생성하기 위해 상기 입력 메시지를 처리하는 단계를 더 포함하는 방법.
13. 조항 11에 있어서,
상기 현재 에포크 동안, 상기 출력 메시지의 적어도 일부를 생성하기 위해 국부적 처리를 수행하는 단계를 더 포함하는 방법.
14. 조항 11에 있어서,
상기 현재 에포크에 대한 상태 갱신 확인이 상기 백업 프로세스로부터 수신되고 모든 이전 에포크의 출력 메시지가 각각의 출력 버퍼로부터 배포되었다고 판단되면, 상기 현재 에포크와 연관된 상기 출력 버퍼로부터 상기 출력 메시지를 배포하는 단계를 더 포함하는 방법.
15. 조항 14에 있어서,
상기 출력 메시지는 상기 출력 버퍼로부터 상기 기본 프로세스 및 상기 백업 프로세스와 연관된 환경으로 배포되는 것인 방법.
16. 조항 15에 있어서,
상기 환경은 통신 네트워크 및 상기 기본 프로세스와 통신하도록 구성된 적어도 하나의 다른 프로세스를 포함하는 것인 방법.
17. 조항 11에 있어서,
상기 현재 에포크와 연관된 상기 상태 갱신 정보가 상기 백업 프로세스에 의해 수신되고 처리되었음을 나타내는 상기 백업 프로세스로부터의 확인을 모니터링하는 단계를 더 포함하는 방법.
18. 조항 17에 있어서,
상기 확인이 수신되면, 모든 이전 에포크의 출력 메시지들이 각각의 출력 버퍼로부터 배포되었는지 판단하는 단계를 더 포함하는 방법.
19. 조항 18에 있어서,
모든 이전 에포크의 출력 메시지가 각각의 출력 버퍼로부터 배포되지 않았다고 판단되면 상기 현재 에포크와 연관된 상기 출력 버퍼로부터의 상기 출력 메시지 배포를 지연시키는 단계를 더 포함하는 방법.
20. 조항 18에 있어서,
모든 이전 에포크의 상기 출력 메시지가 각각의 출력 버퍼로부터 배포되었다고 판단되면 상기 현재 에포크와 연관된 상기 출력 버퍼로부터 상기 출력 메시지를 배포하는 단계를 더 포함하는 방법.
21. 컴퓨터에 의해 실행되어 상기 컴퓨터로 하여금 기본 프로세스와 백업 프로세스 간 상태를 동기화하는 방법을 수행하도록 하는 인스트럭션을 저장하는 컴퓨터 판독가능 저장 매체로서,
상기 방법은
기본 프로세스의 상태 정보를 백업 프로세스의 상태 정보와 동기화하도록 구성된 동기화 프로세스의 현재 에포크에 대한 상태 갱신 정보를 계산하는 단계 - 상기 상태 갱신 정보는 상기 현재 에포크 동안 계산되고, 상기 상태 갱신 정보는 이전 에포크 이후 상기 기본 프로세스의 상기 상태 정보에 대한 변화를 나타냄 - 와,
상기 현재 에포크 동안 생성된 출력 메시지를 상기 현재 에포크와 연관된 출력 버퍼에 저장하는 단계 - 상기 출력 메시지는 상기 현재 에포크 동안 저장됨 - 와,
상기 이전 에포크에 대한 상태 갱신 확인(acknowledgement) - 상기 이전 에포크에 대한 상기 상태 갱신 확인은 상기 이전 에포크 동안 상기 기본 프로세스에 의해 결정된 상태 갱신 정보를 상기 백업 프로세스가 수신했음을 확인하는 것임 - 을 상기 백업 프로세스로부터 수신하는 것과 무관하게 새로운 에포크를 개시하는 단계 를 포함하는 것인 컴퓨터 판독가능 저장 매체.
본 발명의 내용을 포함하는 다양한 실시예들이 본 명세서에 도시되고 기술되었지만, 당업자는 이들 내용을 포함하는 다른 다양한 실시예들을 용이하게 고안할 수 있을 것이다.
110P: 기본 프로세스 110B: 백업 프로세스
112: 출력 버퍼 모듈 b1 ~ bN: 출력 버퍼
120: 환경

Claims (10)

  1. 기본 프로세스와 백업 프로세스 간 상태를 동기화하는 장치로서,
    상기 기본 프로세스의 상태 정보를 상기 백업 프로세스의 상태 정보와 동기화하도록 구성된 동기화 프로세스의 복수의 에포크(a plurality of epochs) 각각과 연관된 복수의 출력 버퍼를 유지하도록 구성된 적어도 하나의 메모리와,
    프로세서
    를 포함하되, 상기 프로세서는
    현재 에포크 동안, 이전 에포크 이후 상기 기본 프로세스의 상기 상태 정보에 대한 변화를 나타내는 상태 갱신 정보를 상기 현재 에포크에 대해 계산하고, 상기 현재 에포크와 연관된 상기 출력 버퍼 내에 상기 현재 에포크 동안 생성된 출력 메시지를 저장하도록 구성되고,
    상기 이전 에포크에 대한 상태 갱신 확인(acknowledgement) - 상기 이전 에포크에 대한 상기 상태 갱신 확인은 상기 이전 에포크 동안 상기 기본 프로세스에 의해 결정된 상태 갱신 정보를 상기 백업 프로세스가 수신했음을 확인하는 것임 - 을 상기 백업 프로세스로부터 수신하는 것과 무관하게 새로운 에포크를 개시하도록 구성되는
    장치.
  2. 제 1 항에 있어서,
    상기 프로세서는 상기 현재 에포크 동안 입력 메시지를 수신하고, 상기 출력 메시지의 적어도 일부를 생성하기 위해 상기 입력 메시지를 처리하도록 구성되는
    장치.
  3. 제 1 항에 있어서,
    상기 프로세서는 상기 현재 에포크 동안 상기 출력 메시지의 적어도 일부를 생성하기 위해 국부적 처리를 수행하도록 구성되는
    장치.
  4. 제 1 항에 있어서,
    상기 프로세서는 상기 현재 에포크에 대해 상기 백업 프로세스로부터 상태 갱신 확인이 수신되고 모든 이전 에포크의 출력 메시지가 각각의 출력 버퍼로부터 배포되면, 상기 현재 에포크와 연관된 상기 출력 버퍼로부터 상기 출력 메시지를 배포하도록 구성되는
    장치.
  5. 제 4 항에 있어서,
    상기 프로세서는 상기 출력 버퍼로부터의 상기 출력 메시지를 상기 기본 프로세스 및 상기 백업 프로세스와 연관된 환경으로 배포하도록 구성되는
    장치.
  6. 제 1 항에 있어서,
    상기 프로세서는 상기 현재 에포크와 연관된 상기 상태 갱신 정보가 상기 백업 프로세스에 의해 수신되어 처리되었음을 나타내는 상기 백업 프로세스로부터의 확인을 감시하도록 구성되는
    장치.
  7. 제 6 항에 있어서,
    상기 프로세서는 상기 확인이 수신되면 모든 이전 에포크의 상기 출력 메시지가 각각의 출력 버퍼로부터 배포되었는지를 판단하도록 구성되는
    장치.
  8. 제 7 항에 있어서,
    상기 프로세서는
    모든 이전 에포크의 상기 출력 메시지가 각각의 출력 버퍼로부터 배포되지 않았다고 판단되면 상기 현재 에포크와 연관된 상기 출력 버퍼로부터의 상기 출력 메시지 배포를 지연시키고,
    모든 이전 에포크의 상기 출력 메시지가 각각의 출력 버퍼로부터 배포되었다고 판단되면 상기 현재 에포크와 연관된 상기 출력 버퍼로부터 상기 출력 메시지를 배포하도록 구성되는
    장치.
  9. 기본 프로세스와 백업 프로세스 간 상태를 동기화하는 방법으로서,
    프로세서와 적어도 하나의 메모리를 사용하여,
    기본 프로세스의 상태 정보를 백업 프로세스의 상태 정보와 동기화하도록 구성된 동기화 프로세스의 현재 에포크에 대한 상태 갱신 정보를 계산하는 단계 - 상기 상태 갱신 정보는 상기 현재 에포크 동안 계산되고, 상기 상태 갱신 정보는 이전 에포크 이후 상기 기본 프로세스의 상기 상태 정보에 대한 변화를 나타냄 - 와,
    상기 현재 에포크 동안 생성된 출력 메시지를 상기 현재 에포크와 연관된 출력 버퍼에 저장하는 단계 - 상기 출력 메시지는 상기 현재 에포크 동안 저장됨 - 와,
    상기 이전 에포크에 대한 상태 갱신 확인(acknowledgement) - 상기 이전 에포크에 대한 상기 상태 갱신 확인은 상기 이전 에포크 동안 상기 기본 프로세스에 의해 결정된 상태 갱신 정보를 상기 백업 프로세스가 수신했음을 확인하는 것임 - 을 상기 백업 프로세스로부터 수신하는 것과 무관하게 새로운 에포크를 개시하는 단계
    를 수행하는 단계를 포함하는
    방법.
  10. 컴퓨터에 의해 실행되어 상기 컴퓨터로 하여금 기본 프로세스와 백업 프로세스 간 상태를 동기화하는 방법을 수행하도록 하는 인스트럭션을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 방법은
    기본 프로세스의 상태 정보를 백업 프로세스의 상태 정보와 동기화하도록 구성된 동기화 프로세스의 현재 에포크에 대한 상태 갱신 정보를 계산하는 단계 - 상기 상태 갱신 정보는 상기 현재 에포크 동안 계산되고, 상기 상태 갱신 정보는 이전 에포크 이후 상기 기본 프로세스의 상기 상태 정보에 대한 변화를 나타냄 - 와,
    상기 현재 에포크 동안 생성된 출력 메시지를 상기 현재 에포크와 연관된 출력 버퍼에 저장하는 단계 - 상기 출력 메시지는 상기 현재 에포크 동안 저장됨 - 와,
    상기 이전 에포크에 대한 상태 갱신 확인(acknowledgement) - 상기 이전 에포크에 대한 상기 상태 갱신 확인은 상기 이전 에포크 동안 상기 기본 프로세스에 의해 결정된 상태 갱신 정보를 상기 백업 프로세스가 수신했음을 확인하는 것임 - 을 상기 백업 프로세스로부터 수신하는 것과 무관하게 새로운 에포크를 개시하는 단계
    를 포함하는 것인
    컴퓨터 판독가능 저장 매체.
KR1020147017895A 2011-12-29 2012-11-19 기본-백업 복제 방안에서의 동기화 방법 및 장치 KR20140097511A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/339,497 US8868862B2 (en) 2011-12-29 2011-12-29 Method and apparatus for synchronization in primary-backup replication schemes
US13/339,497 2011-12-29
PCT/US2012/065755 WO2013101362A2 (en) 2011-12-29 2012-11-19 Method and apparatus for synchronization in primary-backup replication schemes

Publications (1)

Publication Number Publication Date
KR20140097511A true KR20140097511A (ko) 2014-08-06

Family

ID=47428981

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147017895A KR20140097511A (ko) 2011-12-29 2012-11-19 기본-백업 복제 방안에서의 동기화 방법 및 장치

Country Status (6)

Country Link
US (1) US8868862B2 (ko)
EP (1) EP2798496B1 (ko)
JP (1) JP2015508537A (ko)
KR (1) KR20140097511A (ko)
CN (1) CN104054058B (ko)
WO (1) WO2013101362A2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10284417B2 (en) 2015-06-22 2019-05-07 Arista Networks, Inc. Method and system for sharing state between network elements
US9910697B2 (en) * 2015-10-13 2018-03-06 Palantir Technologies Inc. Fault-tolerant and highly-available configuration of distributed services
CN106776155A (zh) * 2016-12-08 2017-05-31 西安交大捷普网络科技有限公司 一种应用态连接同步方法
US11102106B2 (en) 2018-04-04 2021-08-24 Arista Networks, Inc. Dynamic flooding for link state protocols
US11671329B2 (en) 2018-04-04 2023-06-06 Arista Networks, Inc. Computation of network flooding topologies
US11218399B2 (en) 2018-06-20 2022-01-04 Arista Networks, Inc. Embedded area abstraction
US11296948B2 (en) 2020-01-09 2022-04-05 Arista Networks, Inc. Topology partition detection
CN111651211A (zh) * 2020-05-06 2020-09-11 珠海格力电器股份有限公司 一种防止示教器系统崩溃的方法、计算机可读存储介质及示教器

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247141B1 (en) * 1998-09-24 2001-06-12 Telefonaktiebolaget Lm Ericsson (Publ) Protocol for providing replicated servers in a client-server system
US6453386B1 (en) * 1999-09-30 2002-09-17 International Business Machines Corporation Method and system for performing variable aging to optimize a memory resource
US7216136B2 (en) * 2000-12-11 2007-05-08 International Business Machines Corporation Concurrent collection of cyclic garbage in reference counting systems
US6990608B2 (en) * 2002-04-25 2006-01-24 Hewlett-Packard Development Company, L.P. Method for handling node failures and reloads in a fault tolerant clustered database supporting transaction registration and fault-in logic
JP2006285448A (ja) * 2005-03-31 2006-10-19 Oki Electric Ind Co Ltd 冗長システム
US7966538B2 (en) * 2007-10-18 2011-06-21 The Regents Of The University Of Michigan Microprocessor and method for detecting faults therein
US9723074B2 (en) 2011-11-15 2017-08-01 Alcatel Lucent Method and apparatus for in the middle primary backup replication

Also Published As

Publication number Publication date
EP2798496A2 (en) 2014-11-05
JP2015508537A (ja) 2015-03-19
CN104054058A (zh) 2014-09-17
US20130173876A1 (en) 2013-07-04
WO2013101362A3 (en) 2013-10-10
US8868862B2 (en) 2014-10-21
CN104054058B (zh) 2017-10-13
EP2798496B1 (en) 2019-01-09
WO2013101362A2 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
KR20140097511A (ko) 기본-백업 복제 방안에서의 동기화 방법 및 장치
US10917457B2 (en) Command processing in distributed computing systems
USRE47852E1 (en) Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency
US9569517B1 (en) Fault tolerant distributed key-value storage
Guerraoui et al. The next 700 BFT protocols
EP2156307B1 (en) Distributed, fault-tolerant and highly available computing system
US8335813B2 (en) Systems, methods, and protocols for process migration and group membership management
Bouteiller et al. Correlated set coordination in fault tolerant message logging protocols
CN103262044A (zh) 虚拟机失效转移管理的方法及其支持系统
JP4479930B2 (ja) ノードシステム、サーバ切換え方法、サーバ装置、データ引き継ぎ方法、およびプログラム
CN103634411A (zh) 一种具有状态一致性的市场数据实时广播系统及方法
Scales et al. The design and evaluation of a practical system for fault-tolerant virtual machines
AU2015336250C1 (en) Recovery and fault-tolerance under computational indeterminism
Dinh-Tuan et al. MS2M: A message-based approach for live stateful microservices migration
JP5716460B2 (ja) クラスタシステムおよびその制御方法
JP2009217765A (ja) 複数宛先への同期送信方法、その実施システム及び処理プログラム
Poke et al. A dual digraph approach for leaderless atomic broadcast
Poke et al. A Dual Digraph Approach for Leaderless Atomic Broadcast (Extended Version)
Cason et al. Time hybrid total order broadcast: Exploiting the inherent synchrony of broadcast networks
Baldoni et al. Fault-tolerant Sequencer: Specification and an Implementation
Srivastava Redundancy management for network devices
Lugano et al. A pragmatic protocol for database replication in interconnected clusters
Ahn Scalable Message Logging Algorithm for Geographically Distributed Broker-based Sensor Networks.
Chen et al. An efficient forward and backward fault-tolerant mobile agent system
Yaothanee et al. A checkpointing mechanism for virtual clusters using memory-bound time-multiplexed data transfers

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right