KR20090085058A - 분산 서버 시스템, 백업 관리자에 의한 수행을 위한 방법, 및 하나 이상의 장치 판독가능 매체 - Google Patents

분산 서버 시스템, 백업 관리자에 의한 수행을 위한 방법, 및 하나 이상의 장치 판독가능 매체 Download PDF

Info

Publication number
KR20090085058A
KR20090085058A KR1020097009826A KR20097009826A KR20090085058A KR 20090085058 A KR20090085058 A KR 20090085058A KR 1020097009826 A KR1020097009826 A KR 1020097009826A KR 20097009826 A KR20097009826 A KR 20097009826A KR 20090085058 A KR20090085058 A KR 20090085058A
Authority
KR
South Korea
Prior art keywords
backup
manager
workers
distributed server
response
Prior art date
Application number
KR1020097009826A
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 KR20090085058A publication Critical patent/KR20090085058A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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/2041Error 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 more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • 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/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

분산 서버 시스템이 주 관리자, 주 관리자에 통신 가능하게 연결된 하나 이상의 백업 관리자, 및 하나 이상의 백업 관리자에 통신 가능하게 연결된 하나 이상의 작업자를 포함할 수 있다. 하나 이상의 백업 관리자는 분산 서버 시스템의 상태를 백업하라는 명령을 수신할 수 있다. 백업 관리자는 하나 이상의 통신 가능하게 연결된 작업자에게 작업을 전송할 수 있다. 백업 관리자는 또한 하나 이상의 통신 가능하게 연결된 작업자로부터 수신된 응답을 집계하여 집계된 응답을 주 관리자에게 전송할 수 있다.
분산 서버 시스템, 주 관리자, 백업 관리자, 작업자, 응답을 집계

Description

분산 서버 시스템, 백업 관리자에 의한 수행을 위한 방법, 및 하나 이상의 장치 판독가능 매체{MESSAGE FORWARDING BACKUP MANAGER IN A DISTRIBUTED SERVER SYSTEM}
분산 서버 시스템들은 임의 개수의 통신 가능하게(communicatively) 연결된 컴퓨터 시스템에게 작업 태스크들을 분배하는 중앙 서버를 포함할 수 있다. 중앙 서버는 일반적인 서버 클래스 소프트웨어 애플리케이션 또는 소프트웨어 서비스를 실행하는 서버 컴퓨터일 수 있다. 통신 가능하게 연결된 컴퓨터 시스템들은 이산 서버 클래스 컴퓨터 시스템들, 또는 퍼스널 컴퓨터 시스템들 등일 수 있다. 통신 가능하게 연결된 컴퓨터 시스템들은 동일한 물리적 위치에 위치될 수 있거나 네트워크에 의해 연결된 서로다른 물리적 위치에 분산될 수도 있다.
중앙 서버에 의해 분배된 작업 태스크들(work tasks)은 컴퓨터 시스템에 의해 컴퓨터 소프트웨어로 실행될 수 있는 태스크, 명령, 또는 함수 호출 중 임의의 타입일 수 있다. 예를 들면, 작업 태스크는 계산, 또는 데이터를 저장하라는 명령일 수 있다. 중앙 서버는 임의의 일반적인 컴퓨터 통신 방법을 사용하여, 통신 가능하게 연결된 컴퓨터 시스템에 작업 태스크를 전송할 수 있다. 예를 들면, 중앙 서버는 HTTP(hypertext transport protocol), HTTP를 통한 RPC(remote procedure call), 또는 DCOM(distributed component object model) 시스템 등을 사용하여 작 업 태스크를 전송할 수 있다.
중앙 서버는 또한 소프트웨어 애플리케이션들 또는 소프트웨어 서비스들을 실행하여 분산 서버 시스템의 현재의 "상태(state)"를 관리 및/또는 유지하게 할 수 있다. 보다 상세하게는, 중앙 서버는 분산 서버 시스템 외부에 있는 엔터티에 전체적인 분산 서버 시스템을 나타낼 수 있다. 따라서, 분산 서버 시스템의 상태에 관한 정보를 검색하는 외부 엔터티는 중앙 서버와 통신할 수 있고 중앙 서버는 전체적인 분산 서버 시스템의 현재 상태로 응답할 수 있다. 통신 가능하게 연결된 컴퓨터 시스템들은 또한 분산 서버 시스템의 현재 상태를 유지할 수 있지만, 이는, 현재 상태가 중앙 서버에 의해 관리되기 때문에 통신 가능하게 연결된 컴퓨터 시스템들이 그렇게 할 필요는 없을 수 있다. 또한, 중앙 서버는 통신 가능하게 연결된 컴퓨터 시스템들 각각이, 통신 가능하게 연결된 컴퓨터 시스템 서로에 대하여 동일한 "상태"에 있다고 보장할 수 있다.
이러한 분산 서버 시스템에 의해 수행되는 작업 태스크들의 양은 중앙 서버에 통신 가능하게 연결된 컴퓨터 시스템들의 개수와 관련이 있을 수 있다. 예를 들면, 각각의 통신 가능하게 연결된 컴퓨터 시스템은 작업 태스크들을 수행할 수 있는 고정된 레이트를 가질 수 있다. 통신 가능하게 연결된 컴퓨터 시스템들이 수행할 수 있는 것 보다 더 많은 총 작업 태스크들이 분산 서버 시스템에 할당된다면, 분산 서버 시스템은 작업 태스크들의 전체 완료(overall completion)에 있어서 감속(slowdown)을 겪을 수 있다. 분산 서버 시스템의 작업 태스크 용량(capacity)을 증가시키기 위해 더 많은 통신 가능하게 연결된 컴퓨터 시스템들이 분산 서버 시스템에 추가되어서 이러한 전체적인 작업 태스크 완료의 감속을 줄일 수 있다.
그러나, 통신 가능하게 연결된 컴퓨터 시스템들을 분산 서버 시스템에 더 많이 추가함으로서, 하나 이상의 통신 문제가 발생할 수 있다. 예를 들면, 중앙 서버는 작업 태스크들을 효율적으로 전송하고 적은 개수의 통신 가능하게 연결된 컴퓨터 시스템들로부터 통신을 수신하는 것이 가능할 수 있다. 분산 서버 시스템의 작업 용량은 각각의 추가된 통신 가능하게 연결된 컴퓨터 시스템과 함께 증가할 수 있다. 이에 따라서, 중앙 서버에 의해 수행되는 통신의 양이 또한 증가할 수 있다. 그 결과, 중앙 서버는 중가된 통신의 수를 효율적으로 관리하지 못할 수 있고 이러한 분산 서버 시스템에 의해 수행될 수 있는 작업 태스크의 전체적인 개수에 감소가 생길 수 있다.
이러한 분산 서버 시스템은 정보를 중복하여(redundantly) 저장하도록 구성된 하나 이상의 백업 컴퓨터 시스템을 사용할 수 있다. 이러한 백업 컴퓨터 시스템들은 또한 백업 관리자 또는 백업 서버들로 알려져 있을 수 있다. 백업 관리자 또는 백업 서버는 중앙 서버를 중복 저장되었을 수 있는 특정 "상태"로 복원(restore)하도록 구성될 수 있다. 그러나, 하나 이상의 백업 관리자 또는 서버에게 상태의 변화를 통신하는 중에, 중앙 서버는 또한 수행되는 통신들의 총 개수를 증가시켜, 다시 분산 서버 시스템 내의 통신 성능을 저감시키는 결과를 초래할 수 있다.
중앙 서버의 통신 용량에 악영향을 주지 않고도 통신 가능하게 연결된 컴퓨터 시스템들의 수를 증가시킬 수 있는 시스템이 유용할 것이다.
독자에게 기초적인 이해를 주기 위하여 본 개시의 단순화된 설명이 이하에 제시된다. 이 설명은 본 개시의 광범위한 개요가 아니며 본 발명의 핵심/주요 요소들을 확인하거나 본 발명의 범위를 지정하는 것도 아니다. 이 설명의 목적은 나중에 제시될 보다 상세한 설명에 대한 서두로서, 본원에 개시되는 몇몇 컨셉들을 단순화된 형태로 제시하기 위한 것이다.
본 예시는 분산 서버 시스템 내의 메시지 전송 백업 관리자를 위한 메커니즘 및 기술을 제공한다. 서버는 다른 컴퓨터 시스템을 대리하여 소프트웨어 서비스를 구현 및 실행하는 컴퓨터 시스템일 수 있다. 이들 다른 컴퓨터 시스템은 클라이언트 또는 다른 서버들 등으로 공지되어 있을 수 있다. 서버는, 다른 컴퓨터 시스템들이 그 서버에 대한 요청을 통신할 수 있도록, 일반적인 컴퓨터 통신 네트워크를 사용하여 다른 컴퓨터 시스템들에 통신 가능하게 연결될 수 있다. 서버는 그 요청에 대하여 적합한 응답을 준비하여 통신할 수 있다.
분산 서버는 하나 이상의 서버 소프트웨어 서비스를 실행하는 하나의 컴퓨터 시스템 또는 중앙 서버에 통신 가능하게 연결된 다수의 컴퓨터 시스템 등 중에서 어느 한쪽을 포함할 수 있다. 분산 서버 시스템 내의 주(primary) 관리자 서버는 하나 이상의 다른 컴퓨터 시스템 또는 서버에 통신 가능하게 연결될 수 있다. 주 관리자는 클라이언트 요청들을 수신하여, 전체 동작 또는 동작의 일부를 통신 가능하게 연결된 컴퓨터 시스템들에게 위임할 수 있다. 통신 가능하게 연결된 컴퓨터 시스템들은 그 동작을 수행하고 응답으로 성공 또는 실패를 나타내는 메시지를 전송할 수 있다. 이러한 동작들 또는 동작들의 일부는 "작업(work)"이라고 알려져 있을 수 있다.
주 관리자는 또한 분산 서버 시스템의 "상태"를 유지할 수 있다. 이러한 상태는 주 관리자에 의해 관리되는 소프트웨어 애플리케이션들 또는 정보의 현재 상태를 참조할 수 있다. 예를 들면, 중앙 관리자는 분산 서버 시스템에 의해 저장된 데이터베이스의 현재 상태를 유지할 수 있다.
임의 개수의 통신 가능하게 연결된 컴퓨터 시스템들이 백업 관리자들 또는 백업 서버들로서 동작하도록 지정될 수 있다. 주 관리자는 하나 이상의 이러한 백업 관리자에게 분산 서버 시스템의 상태에 관한 정보를 중복 저장하도록 하는 명령어 또는 정보를 전송할 수 있다. 주 관리자는 또한 하나 이상의 백업 관리자에게 임의의 다른 정보 또는 데이터를 전송할 수도 있다. 주 관리자에서 상태 정보, 명령어, 또는 데이터 중 어떠한 것이라도 손실되거나 손상되는 경우에는, 그 상태 정보, 명령어, 또는 데이터가 백업 관리자들 중 임의의 것으로부터 복구될 수 있다. 이러한 백업 관리자들은 또한 주 관리자에게 백업 동작이 성공적이었음을 통지하라는 실행가능한 명령어들을 포함할 수 있다.
주 관리자는 하나 이상의 이러한 백업 관리자들에게 통신 가능하게 연결될 수 있다. 백업 서버들 각각은 "작업자(workers)"라고도 불리는 하나 이상의 작업자 컴퓨터 시스템들에 통신 가능하게 연결될 수 있다. 주 관리자는 분산 서버 시스템의 현재 "상태"와 연관된 식별자를 종료(close)하는 동작을 시작하라는 명령을 하나 이상의 백업 관리자들에게 통신할 수 있다. 그 명령은 또한 분산 서버 시스템의 현재 상태를 지속, 즉 저장하라는 명령어들을 더 포함할 수 있다.
일단 각 백업 서버가 명령과 연관된 동작을 완료하면, 각 백업 서버는 성공 또는 실패를 가리키는 메시지를 주 관리자에게 다시 전송할 수 있다. 주 관리자는 모든 백업 서버들이 응답할 때까지 대기할 수 있거나, 하나 이상의 백업 서버들이 응답이 없으면(non-responsive), 주 관리자는 응답이 없는 것에 할당된 임의의 작업자들을 응답한 백업 서버에 재할당하기로 선택할 수 있다. 다른 방법으로는, 주 관리자는 단지 백업 서버가 응답하지 않았음에 유념하여 응답이 없는 백업 서버에 할당된 임의의 작업자들을 재할당하기 위해 최종 시각까지 기다릴 수 있다.
그 후 주 관리자는 "작업(work)"을 브로드캐스트하라는 명령을 하나 이상의 백업 관리자 각각에게 통신할 수 있다. 이러한 "작업"은 현재 상태 식별자가 가리키는 현재 태스크 또는 동작과 연관된 태스크 또는 동작일 수 있다. 백업 관리자들 각각은 그 후 하나 이상의 통신 가능하게 연결된 작업자 중 각각에게 작업을 수행하라고 명령을 전송할 수 있다. 각 작업자가 작업을 완료하면, 각 작업자는 새로운 작업을 독립적으로 결정할 수도 있거나, 수행될 필요가 있는 임의의 새로운 작업을 결정하기 위해 다른 작업자들과 통신할 수도 있다. 그러면 각 작업자는 해당 작업자가 할당된 백업 관리자와 통신하고, 현재 상태 식별자와 연관된 작업이 완료되었는지 확인하여, 새로운 작업을 요청할 수 있다.
그 후 하나 이상의 백업 관리자들 중 각각은 하나 이상의 작업자들 각각으로부터 수신된 정보를 집계할 수 있다. 작업자들 중 하나가 응답이 없는 경우에는, 백업 관리자는 응답이 없는 상태를 고려한 정보를 그 집계된 정보에 추가할 수 있다. 그러면 하나 이상의 백업 서버들 각각은 현재 상태 식별자가 종료됨을 가리키기 위해 주 관리자와 통신할 수 있다. 하나 이상의 관리자 중 각각은 또한 작업자들 중 임의의 작업자로부터 수신된 임의의 새로운 작업 요청들을 또한 전송할 수 있다.
수반하는 특징들 중 많은 것들이 첨부한 도면과 관련하여 고려되는 이하의 상세한 설명을 참조함으로써 더 잘 이해됨에 따라 그것들은 보다 쉽게 인식될 것이다.
본 설명은 수반하는 도면을 고려하여 파악되는 이하의 상세한 설명으로부터 보다 잘 이해될 것이다.
도 1은 종래의 분산 서버 시스템을 도시하는 블록도.
도 2는 분산 서버 시스템의 예시적인 메시지 전송 백업 서버를 도시하는 블록도.
도 3은 도 2의 분산 서버 시스템의 상태와 연관된 식별자를 종료하는 것과 연관된 예시적인 통신들을 도시하는 도면.
도 4는 느리거나 응답이 없는 백업 서버들을 다루기 위한, 주 관리자를 위한 예시적인 방법을 도시하는 도면.
도 5는 느리거나 응답이 없는 백업 서버들을 다루기 위한, 백업 관리자를 위한 예시적인 방법을 도시하는 도면.
도 6은 설명된 시스템들 및 방법들을 구현하기 위한 예시적인 컴퓨터 장치를 도시하는 도면.
수반하는 도면들에서는 동일한 부분을 지정하기 위해 동일한 참조 부호들이 사용된다.
첨부된 도면들에 관련하여 이하에 제공되는 상세한 설명은 본 예시들의 설명을 위한 것이며 본 예시가 구성되거나 활용될 수 있는 유일한 형태들을 제시하기 위한 것은 아니다. 본 설명은 예시를 구성 및 동작하기 위한 단계들의 순서 및 예시의 기능을 개시한다. 그러나, 동일하거나 등가의 기능들 또는 순서들이 상이한 예시들에 의해 달성될 수 있다.
비록 예시들은 분산 서버 시스템의 메시지 전송 백업 관리자에서 구현되는 것으로 본원에서 설명 및 묘사되지만, 설명되는 시스템은 제한이 아닌 예시로 제공된다. 당업자가 이해할 바와 같이, 본 예시들은 각종 상이한 타입의 동적 조각모음(fragment) 매핑 시스템에서의 응용에 적합하다.
도 1은 종래의 분산 서버 시스템(100)을 도시하는 블록도이다. 종래의 분산 서버 시스템(100)은 종래의 중앙 서버(120), 종래의 백업 서버(140), 종래의 백업 서버(150), 종래의 서버(160), 종래의 서버(170), 및 종래의 서버(180)를 포함할 수 있다.
예시적인 종래의 분산 서버 시스템(100) 내에서, 종래의 백업 서버(140) 및 종래의 백업 서버(150) 각각은 종래의 중앙 서버(120)에 통신 가능하게 연결될 수 있다. 종래의 서버(160), 종래의 서버(170), 및 종래의 서버(180) 각각은 또한 종 래의 중앙 서버(120)에 통신 가능하게 연결될 수 있다. 이러한 종래의 분산 서버 시스템(100)은 본래 논리적(logical)일 수 있는데, 즉, 이러한 통신 가능한 연결이 물리적으로는 존재하지 않는 대신에 이러한 통신 가능한 연결은 종래의 분산 서버 시스템(100)의 참가자들(participants) 간의 일련의 통신을 나타낼 수 있다.
종래의 분산 서버 시스템(100)은 임의 타입의 종래의 분산 서버 아키텍처일 수 있다. 예를 들면, 종래의 분산 서버 시스템(100)은 종래의 분산 데이터베이스 서버 시스템, 또는 종래의 분산 미디어 서버 시스템 등일 수 있다. 종래의 중앙 서버(120)는 다른 컴퓨터 시스템들에게 소프트웨어 서비스를 제공하도록 구성된 임의 타입의 종래의 서버 컴퓨터 시스템일 수 있다. 종래의 중앙 서버(120)는 외부의 엔터티로부터 요청을 수신할 수 있다. 예를 들면, 이러한 다른 서버는 종래의 중앙 서버(120)와 동일한 네트워크 도메인에서 실행되는 월드 와이드 웹 서버, 또는 인터넷을 통하여 통신 가능하게 연결된 외부 클라이언트 등등 중 어느 한쪽일 수 있다.
종래의 중앙 서버(120)는 종래의 서버(160), 종래의 서버(170), 및/또는 종래의 서버(180) 중 임의의 서버에게 태스크를 수행하라는 요청을 전송할 수 있다. 종래의 서버(160), 종래의 서버(170), 및/또는 종래의 서버(180)는 태스크를 수행하고 태스크의 완료를 가리키는 종래의 중앙 서버(120)에 응답할 수 있다. 또한, 종래의 중앙 서버(120)는 정보를 백업, 또는 중복하여 저장하라는 명령을 종래의 백업 서버(140) 및/또는 종래의 백업 서버(150) 중 임의의 것에 전송할 수 있다.
종래의 분산 서버 시스템(100)의 전체적인 작업 수행 용량을 증가시키기 위 해 임의 개수의 종래의 서버가 종래의 분산 서버 시스템(100)에 추가될 수 있다. 더 많은 종래의 서버들이 종래의 중앙 서버(120)에 통신 가능하게 연결될수록, 종래의 중앙 서버(120)에 의해 전송 및 수신되는 통신의 양은 종래의 중앙 서버(120)가 통신 감속을 겪는 지점을 증가시킬 수 있다.
대응하는 통신 병목을 동반하지 않고도 보다 많은 종래의 서버들이 분산 서버 시스템에 추가될 수 있는 시스템이 유용할 수 있다.
도 2는 분산 서버 시스템(200)의 예시적인 메시지 전송 백업 서버를 도시하는 블록도이다. 분산 서버 시스템(200)은 주 관리자(210), 백업 관리자(220), 백업 관리자(230), 작업자(240), 작업자(250), 및 작업자(260)를 포함할 수 있다.
분산 서버 시스템(200)내에서, 주 관리자(210)는 백업 관리자(220) 및 백업 관리자(230) 각각에 통신 가능하게 연결될 수 있다. 백업 관리자(220)는 작업자(240) 및 작업자(250) 각각에 통신 가능하게 연결될 수 있다. 백업 관리자(230)는 작업자(260)에 통신 가능하게 연결될 수 있다. 이러한 분산 서버 시스템(200)은 단지 예시에 불과하다. 임의 개수의 백업 관리자가 주 관리자(210)에 통신 가능하게 연결될 수 있다. 또한, 임의 개수의 작업자들이 임의 개수의 백업 관리자에 통신 가능하게 연결될 수 있다. 예를 들면, 백업 서버들의 개수는 에이전트 서버들의 개수의 2제곱근일 수 있다. 이러한 분산 서버 시스템(200)은 또한 본래 논리적일 수 있는데, 즉, 이들 통신 가능한 연결이 물리적으로는 존재하지 않을 수 있는 대신에 이러한 통신 가능한 연결은 분산 서버 시스템(200)의 참가자들 간의 일련의 통신을 나타낼 수 있다.
통신 가능한 연결들 각각은 WAN(wide area network) 또는 LAN(local area network) 등과 같은 컴퓨터 네트워크를 사용하여 만들어 질 수 있다. 대안적인 예시에서, 주 관리자, 백업 관리자, 및 작업자들 각각은 하나의 컴퓨터 시스템에서 실행하는 소프트웨어 서비스일 수 있고, 통신 가능한 연결들 각각은 마이크로소프트 윈도우즈(Microsoft WindowsTM)와 같은 운영 체제에 포함된 소프트웨어 통신 서비스들을 사용하여 만들어질 수 있다.
주 관리자(210)는 서버 클래스 운영 체제 및 연관된 소프트웨어 서비스를 실행하는 서버 컴퓨터 시스템일 수 있다. 주 관리자(210)는 또한 분산 서버 시스템(200)의 "상태(state)"와 연관된 하나 이상의 식별자들을 생성 및 관리하는 소프트웨어 서비스를 실행할 수도 있다. 이러한 상태는 분산 서버 시스템(200) 대신에 주 관리자(210)에 의해 관리 및 유지되는 정보의 일시적 표시 또는 별도의 스냅샷에 관할 수 있다. 즉, 상태는 시스템에서 시간상 주어진 시점에 임의 개수의 데이터 또는 명령어 등의 정렬을 나타낼 수 있다. 이처럼, 주 관리자(210)는 특정 시점에 분산 서버 시스템(200)의 상태를 고유하게 식별할 수 있는 상태에 대응하는 식별자를 할당할 수 있다.
주 관리자(210)는 또한 작업 "태스크(tasks)"를 관리 및 분산하도록 구성될 수 있다. 작업 "태스크"는 컴퓨터 시스템에 의해 실행될 수 있는 임의 타입의 기능일 수 있다. 예를 들면, "작업(work)"은 숫자 계산, 데이터 또는 다른 정보를 저장하라는 명령, 또는 임의의 다른 타입의 컴퓨터 소프트웨어 기능일 수 있다. 주 관리자(210)는 또한 작업을 상태 식별자와 연관시킬 수 있다. 특히, 주 관리자(210)는 현재 상태와 현재 상태 식별자를, 수행된 작업의 총량으로 간주할 수 있다. 더욱 상세하게는, 분산 서버 시스템(200)의 현재 상태는 분산 서버 시스템(200)의 상태가 개시된 이래로 "작업(work)"의 각 별도의 유닛의 누적합(cumulative sum)에 대응할 수 있다.
주 관리자(210)는 백업 관리자(220) 및 백업 관리자(230) 각각에게 상태 식별자와 연관된 상태를 유지하라는 요청을 전송할 수 있다. 백업 관리자(220) 및 백업 관리자(230) 각각은 각 상태 식별자 및 주 관리자(210)로부터 수신된 그 상태 식별자와 연관된 상태를 중복 저장하도록 구성될 수 있다. 이 방식으로, 백업 관리자(220) 또는 백업 관리자(230) 중 어느 한쪽은, 주 관리자(210)가 그 기능을 중단(cease functioning)하게 하는 실패를 주 관리자(210)가 겪는 다면, 주 관리자(210)의 기능을 대신하여 떠맡을(assume) 수 있다. 또한, 일단 백업 관리자(220) 및 백업 관리자(230) 각각이, 상태가 지속되는 주 관리자(210)에 통신했을 수 있다면, 주 관리자(210)는 현재 상태 식별자와 연관된 작업을 작업자(240), 작업자(250), 및/또는 작업자(260) 각각에 브로드캐스트하라는 명령을 백업 관리자(220) 및 백업 관리자(230) 각각에 통신할 수 있다.
작업자(240), 작업자(250), 및 작업자(260) 각각은 백업 관리자(220) 및/또는 백업 관리자(230) 중 임의의 것으로부터 수신된 작업 태스크와 연관된 기능을 실행하는 것이 가능할 수 있다. 또한, 작업자(240), 작업자(250), 및 작업자(260) 각각은 또한 통신 가능하게 연결될 수 있어서 정보 또는 데이터 등을 서로 공유하 는 것이 가능할 수 있다. 일단 작업자(240), 작업자(250), 및 작업자(260) 각각이 자신에게 할당된 작업 태스크를 완료하게 되면, 각각은 백업 관리자(220) 또는 백업 관리자(230) 중 어느 한쪽에 이러한 정보를 다시 통신할 수 있다.
백업 관리자(220) 및 백업 관리자(230) 각각이 작업자(240), 작업자(250), 또는 작업자(260) 중 임의의 것으로부터 수신된 응답을 집계할 수 있다. 그러면 백업 관리자(220) 및 백업 관리자(230) 각각은 주 관리자(210)에 집계된 응답을 다시 전송할 수 있다. 작업자(240), 작업자(250), 작업자(260) 중 임의의 것이 응답을 늦게하거나 응답하는 데 실패하는 경우에는, 백업 관리자(220) 및 백업 관리자(230) 각각은 집계된 응답에서 응답이 늦거아 실패한 작업자의 아이덴티티(identity)를 가리킬 수 있다.
앞서 논의한 바와 같이, 백업 관리자(220) 및 백업 관리자(230) 각각은 분산 서버 시스템(200)의 상태를 백업하거나 중복 저장할 수 있고 주 관리자(210)의 임무를 언제든지 떠맡을 수 있다. 따라서, 분산 서버 시스템(200)의 구성은 동적일 수 있고 통신 가능한 연결들은 분산 서버 시스템(200)에 포함된 느리거나 실패한 관리자 또는 작업자들을 반영하여 변할 수 있다. 즉, 주 관리자(210)와 백업 관리자(220) 및 백업 관리자(230) 간에 통신 가능한 연결이 재구성될 수 있어서 백업 관리자(220) 또는 백업 관리자(230) 중 어느 한쪽이 주 관리자(210)의 기능적 임무를 떠맡을 수 있다.
앞서 논의한 바와 같이, 주 관리자(210)는 응답의 집계를 검사하여 작업자가 느리거나 응답이 없는지를 판단할 수 있다. 그러면 주 관리자(210)는 대응하는 백 업 관리자에게 응답이 느리거나 실패한 작업자를 분산 서버 시스템(200)에서 제거하라고 통지할 수 있다. 그 후 주 관리자(210)는 남아있는 작업자들 각각에게, 느리거나 실패한 작업자에게 할당되었던 작업을 수행하라는 새로운 브로드캐스트 메시지를 발행하여 상태와 연관된 모든 작업이 완료되게 할 수 있다.
설명된 기능은 임의 개수의 서버 컴퓨터 시스템에서 구현될 수 있다. 예를 들면, 하나의 컴퓨터 시스템은 중앙 관리자, 백업 관리자, 작업자, 또는 그것들의 임의의 조합에 관련된 소프트웨어 서비스들을 실행할 수 있다. 도 3의 기능은 도 2에서 주 관리자(210)의 상태와 연관된 식별자를 종료하는 것과 연관이 있는 예시적인 통신들을 도시한다.
도 2의 주 관리자(210)는 도 2의 백업 관리자(220) 또는 도 2의 백업 관리자(230) 중 임의의 것에 명령(310)을 전송할 수 있다. 이러한 명령은 도 2를 참조하여 논의된 상태 식별자와 연관된 상태를 종료하기를 시작하라는 명령어를 포함할 수 있다. 이러한 명령은 또한 현재 상태 식별자와 연관된 상태를 지속하라는 명령을 포함할 수 있다.
그러면 백업 관리자(220) 및 백업 관리자(230) 각각은 주 관리자(210)에 의해 요청받은 대로 상태를 지속할 수 있다. 일단 백업 관리자(220) 및 백업 관리자(230) 각각이 현재 상태 식별자와 연관된 상태를 지속하게 되면, 백업 관리자(220) 및 백업 관리자(230) 각각은 현재 상태 식별자와 연관된 상태가 지속됨을 가리키는 응답(320)을 전송할 수 있다. 주 관리자(210)는 처리하기 전에 백업 관리자 각각으로부터 모든 응답이 수신되기를 기다릴 수 있다.
주 관리자(210)는 백업 관리자(220) 및 백업 관리자(230) 각각이 이제 상태 식별자와 연관된 상태에 대응하는 작업을, 작업자 각각에게 브로드캐스트할 수 있다고 가리키는 명령을 백업 관리자(220) 및 백업 관리자(230) 각각에게 전송할 수 있다. 그러면 백업 관리자(220) 및 백업 관리자(230) 각각은 도 2의 작업자(240), 도 2의 작업자(250), 및 도 2의 작업자(260) 각각에게, 현재 상태 식별자와 연관된 상태를 종료하고 작업자에게 할당된 현재 상테 식별자와 연관된 작업을 수행하라는 명령(340)을 전송할 수 있다. 각 작업자에게 전송된 명령(340)은 동일할 수 있고 각 작업자는 명령(340)의 일부로서 전송받은 작업 중 임의의 할당되지 않은 부분을 무시할 수 있다. 대안적인 구현예에서, 명령(340)은 작업자들 각각을 위해 개별적으로 생성될 수 있어서 명령(340)이 전송된 작업자에게 할당된 작업만을 포함할 수 있다.
작업자(240), 작업자(250), 및 작업자(260) 각각이 일단 작업을 완료하게 되면, 각각은 현재 상태 식별자와 연관된 상태를 국소적으로 종료할 수 있다. 그러면 작업자(240), 작업자(250), 및 작업자(260) 각각은 수행될 임의의 추가 작업을 결정할 수 있다. 이러한 결정은 작업자(240), 작업자(250), 및 작업자(260) 각각이 서로 통신할 때에 정해 질 수 있다. 대안적인 구현예에서, 작업자(240), 작업자(250), 및 작업자(260) 각각은 현재 상태 식별자와 연관된 상태를 독립적으로 검사하여 수행될 임의의 추가 작업을 결정할 수 있다. 작업자(240), 작업자(250), 및 작업자(260) 각각은 그것들에게 할당된 백업 관리자, 즉 백업 관리자(220) 또는 백업 관리자(230) 중 한쪽에게, 작업자(240), 작업자(250), 및 작업자(260) 각각이 현재 상태 식별자와 연관된 상태를 종료했음을 가리키는 메시지를 전송할 수 있다. 이러한 메시지는 또한 수행될 임의의 추가적인 새 작업에 대한 요청을 포함할 수 있다.
그 후 백업 관리자(220) 및 백업 관리자(230) 각각은 주 관리자(210)에게, 현재 상태 식별자와 연관된 상태가 종료되었음을 가리키는 메시지(360)를 전송할 수 있다. 또한, 메시지(360)는 작업자로부터 수신된 수행될 임의의 새 작업을 포함할 수 있다.
도 4는 느리거나 응답이 없는 백업 관리자를 다루기 위한 주 관리자를 위한 예시적인 방법(400)을 도시한다. 이러한 주 관리자는 도 2의 주 관리자(210)일 수 있다.
블록(410)은 현재 상태 식별자와 연관된 상태를 종료하라는 명령이 하나 이상의 백업 관리자에게 전송되는 동작에 관련할 수 있다. 이들 백업 관리자는 도 2의 백업 관리자(220) 및 도 2의 백업 관리자(230)일 수 있다. 이러한 현재 상태 식별자 종료 명령은 도 3의 명령(310) 또는 도 3의 명령(330)일 수 있다.
블록(420)은 응답이 소정의 시간 간격 내에 수신되었는지의 여부를 판정하는 동작에 관련할 수 있다. 이러한 시간 간격은 임의의 길이일 수 있다. 다른 방법으로는, 이러한 시간 간격이, 분산 서버 시스템의 예상된 전체적 성능 레벨과 연관될 수 있다. 긍정적 판정에 응답하여, 흐름은 블록(430)으로 계속된다. 부정적 판정에 응답하여, 흐름은 블록(440)으로 계속된다.
블록(430)은 주 관리자의 정상 동작이 계속되는 동작에 관련할 수 있다. 정 상 동작은 주 관리자의 기능에 따라 수행되는 임의의 동작에 관한 것일 수 있다.
블록(440)은 최소수의 응답이 수신되었는지의 여부를 판정하는 동작에 관련할 수 있다. 임의의 정보에 기초하여, 분산 서버 시스템에 포함된 백업 관리자의 전체 개수 또는 백업 관리자에 연결된 작업자의 개수 등을 포함하여, 최소수가 판정된다. 긍정 판정에 응답하여, 흐름은 블록(450)으로 계속된다. 부정 판정에 응답하여, 흐름은 블록(460)으로 계속된다.
블록(450)은 느리거나 응답이 없는 백업 관리자가 바이패싱되는 동작을 언급할 수 있다. 이러한 바이패스는 느리거나 응답이 없는 백업 관리자에게 할당된 임의의 작업자를 응답이 있는 백업 관리자에게 임시로 재할당함으로써 수행될 수 있다.
블록(460)은 백업 관리자의 수가 분산 데이터베이스 시스템 내 소정의 수행 레벨을 보장하기에는 너무 적거나, 분산 데이터베이스 시스템이 올바로 기능하기에는 너무 적다고 판정된 경우의 동작을 언급할 수 있다. 동작은 또한 소정의 시간 동안 대기하는 동작을 포함할 수 있다. 대기 시간 내에 추가적으로 응답한 백업 관리자들이 없다면, 분산 데이터베이스 시스템은 추가적으로 응답한 백업 관리자들이 추가될 수 있을 때까지 기능을 중단할 수 있다. 흐름은 블록(420)으로 되돌아간다.
도 5는 느리거나 응답이 없는 작업자를 다루기 위한 백업 관리자를 위한 예시적인 방법(500)을 도시한다. 이러한 백업 관리자는 도 2의 백업 관리자(220) 또는 도 2의 백업 관리자(230)일 수 있다. 이러한 관리자는 백업 관리자(230)일 수 있다. 블록(510)은 상태에 대응하는 작업을 수행하라는 명령이 하나 이상의 작업자들에게 전송되는 동작에 관련할 수 있다. 대안적인 실시예에서, 작업자가 현재 상태 식별자와 연관된 상태를 종료해야 한다고 가리키는 명령이 전송된다. 그러나, 동작은 작업자로부터 응답이 필요할 수 있는 임의의 명령을 포함할 수 있다.
블록(520)은 블록(510)에서 명령을 전송받은 각 작업자가 소정의 시간 간격 내에 응답을 받았는지의 여부를 판정하는 동작에 관련할 수 있다. 이러한 시간 간격은 임의의 시간 간격일 수 있고, 분산 서버 시스템에 연관된 수행의 전체적인 레벨과 연관될 수 있다. 긍정 판정에 응답하여, 흐름은 블록(530)으로 계속된다. 부정 판정에 응답하여, 흐름은 블록(540)으로 계속된다.
블록(530)은 백업 관리자가 모든 작업자의 응답을 하나의 메시지로 집계하여 집계된 메시지를 중앙 관리자에게 전송하는 동작을 참조할 수 있다.
블록(540)은 백업 관리자가 모든 작업자의 응답을 하나의 메시지로 집계하여 집계된 메시지를 중앙 관리자에게 전송하는 동작을 참조할 수 있다. 집계된 메시지는 블록(520)에서 식별된 임의의 느리거나 응답이 없는 작업자의 아이덴티티를 가리키는 정보를 포함할 수 있다.
도 6은 상술한 서버 컴퓨터 시스템들 또는 클라이언트 컴퓨터 시스템들 중 임의의 것과 같은 설명된 시스템, 방법, 및 소프트웨어 서비스들을 구현하기 위한 예시적인 컴퓨터 장치(600)를 도시한다. 가장 기본적인 구성에서, 컴퓨팅 장치(600)는 통상적으로 적어도 하나의 중앙처리장치(CPU; 605) 및 메모리(610)를 포함한다.
세밀한 구성 및 컴퓨팅 장치의 타입에 따라, 메모리(610)는 휘발성(예를 들면, RAM), 비휘발성(예를 들면, ROM, 플래시 메모리, 등등) 또는 그 둘의 몇몇 조합일 수 있다. 또한, 컴퓨팅 장치(600)는 추가적인 특징/기능을 더 가질 수 있다. 예를 들면, 컴퓨팅 장치(600)는 다중 CPU를 포함할 수 있다. 설명된 방법들은 컴퓨팅 장치(600) 내의 임의의 처리장치에 의해 임의의 발식으로 실행될 수 있다. 예를 들면, 설명된 프로세스는 다중 CPU에 의해 동시에(in parallel) 실행될 수 있다.
컴퓨팅 장치(600)는 또한 자기 또는 광 디스ㅌ크 또는 테입을 제한이 아니라 포함하는 추가적인 저장소(이동식 및/또는 비이동식)를 포함할 수 있다. 이러한 추가적인 저장소는 도 6에서 저장소(615)로 도시된다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 명령어, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 메모리(610) 및 저장소(615)는 컴퓨터 저장 매체의 모든 예시이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 기타 광 저장소, 자기 카세트, 자기 테입, 자기 디스크 저장소 또는 기타 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 장치(600)에 의해 액세스될 수 있는 임의의 기타 매체를 포함하지만 이에 한정되는 것은 아니다. 임의의 이러한 컴퓨터 저장 매체는 컴퓨팅 장치(600)의 일부일 수 있다.
컴퓨팅 장치(600)는 또한 장치가 다른 장치들과 통신하게 해주는 통신 장치 (들)(640)를 포함할 수 있다. 통신 장치(들)(640)는 통신 매체의 일례이다. 통신 장치는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에서 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호내의 정보가 암호화되는 방식으로 그 신호의 하나 이상의 특성을 설정 또는 변경시킨 신호를 의미한다. 예시로서, 통신 매체는 유선 네트워크 또는 다이렉트 유선 접속과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 본원에 사용된 컴퓨터 판독가능 매체 또는 장치 판독가능 매체라는 용어는 둘 다 컴퓨터 저장 매체 및 통신 매체를 포함한다. 설명된 방법들은 임의의 컴퓨터 판독가능 매체에서 데이터 및 컴퓨터 실행가능 명령어 등과 같은 임의의 형태로 암호화될 수 있다.
컴퓨팅 장치(600)는 또한 키보드, 마우스, 펜, 음성 입력 장치 등의 입력 장치(들)(635)을 가질 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(들)(630)이 또한 포함될 수 있다. 이들 장치들 모두는 당업자에게 잘 알려져 있어서 길게 논의될 필요가 없다.
당업자는 프로그램 명령어를 저장하기 위해 활용되는 저장 장치들이 네트워크를 통해 분산될 수 있음을 알아 낼 것이다. 예를 들면, 원격 컴퓨터는 소프트웨어로서 설명된 예시적인 처리를 저장할 수 있다. 논리 또는 단말기 컴퓨터는 원격 컴퓨터에 액세스하여 프로그램을 실행할 소프트웨어의 일부 또는 전부를 다운로드 할 수 있다. 다른 방법으로는, 논리 컴퓨터는 필요한 소프트웨어의 일부분들을 다운로드하거나, 일부 소프트웨어 명령어는 논리 단말기에서 실행하고 일부는 원격 컴퓨터(또는 컴퓨터 네트워크)에서 실행함으로써 분산적으로 처리할 수 있다. 당업자는 당업자에게 공지된 종래 기술을 활용함으로써, DSP와 같은 전용 회로, 또는 프로그램가능 논리 어레이 등에 의해 소프트웨어의 전부 또는 일부가 수행될 수 있음을 또한 알아챌 것이다.

Claims (20)

  1. 분산 서버 컴퓨터 시스템(a distributed server computer system)으로서,
    분산 서버 관리 소프트웨어 서비스들을 제공하기 위한, 주 관리자;
    상기 주 관리자에 통신 가능하게 연결되어, 상기 주 관리자에 의해 요청된 대로 정보를 백업하고 상기 주 관리자로부터 수신된 요청에 응답하여 적어도 하나의 요청을 전송하기 위한 하나 이상의 백업 관리자; 및
    상기 하나 이상의 백업 관리자에 통신 가능하게 연결되어, 상기 하나 이상의 백업 관리자에 의해 상기 주 관리자로부터 전송된 적어도 하나의 요청을 수신하기 위한 하나 이상의 작업자(workers)
    를 포함하는, 분산 서버 컴퓨터 시스템.
  2. 제1항에 있어서, 상기 하나 이상의 백업 관리자는 또한 상기 하나 이상의 작업자로부터 응답을 수신하기 위한 것인, 분산 서버 컴퓨터 시스템.
  3. 제1항에 있어서, 상기 하나 이상의 백업 관리자는 또한 상기 하나 이상의 작업자로부터 수신된 각 응답을 집계하기 위한 것인, 분산 서버 컴퓨터 시스템.
  4. 제1항에 있어서, 상기 하나 이상의 백업 관리자는 또한 상기 하나 이상의 작업자로부터 수신된 각 응답을 집계하기 위한 것이고, 또한 상기 하나 이상의 작업 자 중의 한 작업자가 응답하지 않는다면 응답 대신에 상기 하나 이상의 작업자 중의 상기 한 작업자의 연결 상태에 관한 정보로 대용(substitute)하는, 분산 서버 컴퓨터 시스템.
  5. 제1항에 있어서, 상기 주 관리자 및 상기 하나 이상의 백업 관리자는 하나의 물리적 컴퓨터 시스템 상에서 실행되는, 분산 서버 컴퓨터 시스템.
  6. 제1항에 있어서, 상기 주 관리자 및 상기 하나 이상의 작업자는 하나의 물리적 컴퓨터 시스템 상에서 실행되는, 분산 서버 컴퓨터 시스템.
  7. 제1항에 있어서, 상기 주 관리자는 또한 상기 하나 이상의 작업자들 중 임의의 하나가 상기 하나 이상의 백업 관리자로부터 응답이 없는 백업 관리자들에게 할당된 경우에는, 상기 하나 이상의 작업자 중 상기 임의의 하나를, 상기 하나 이상의 백업 관리자로부터 응답이 있는 백업 관리자에게 재할당하기 위한 것인, 분산 서버 컴퓨터 시스템.
  8. 제1항에 있어서, 상기 주 관리자는 또한 상기 하나 이상의 작업자 중 응답이 없는 작업자에게 할당된 작업을, 상기 하나 이상의 작업자 중 응답이 있는 작업자에게 재할당하기 위한 것인, 분산 서버 컴퓨터 시스템.
  9. 분산 서버 컴퓨터 시스템에서 백업 관리자에 의한 수행을 위한 방법으로서,
    상기 분산 서버 시스템의 상태와 연관된 식별자의 종료를 시작하라는 요청을 주 관리자로부터 수신하는 단계;
    상기 식별자에게 대응하는 상기 상태가 종료되었음을 가리키는 응답을 상기 주 관리자에게 전송하는 단계;
    상기 식별자와 연관된 태스크들을 브로드캐스트하라는 요청을 상기 주 관리자로부터 수신하는 단계; 및
    상기 식별자와 연관된 상기 태스크들을 하나 이상의 작업자에게 브로드캐스트하는 단계
    를 포함하는, 백업 관리자에 의한 수행을 위한 방법.
  10. 제9항에 있어서, 상기 분산 서버 시스템의 상기 상태를 지속하는 단계를 더 포함하는, 백업 관리자에 의한 수행을 위한 방법.
  11. 제9항에 있어서, 상기 하나 이상의 작업자로부터 작업이 수행되었음을 가리키는 응답을 수신하는 단계를 더 포함하는, 백업 관리자에 의한 수행을 위한 방법.
  12. 제9항에 있어서, 상기 하나 이상의 작업자로부터의 상기 응답을 집계하는 단계를 더 포함하는, 백업 관리자에 의한 수행을 위한 방법.
  13. 제9항에 있어서, 상기 식별자와 연관된 상기 태스크들을 상기 하나 이상의 작업자에게 브로드캐스트하는 단계는, 상기 분산 서버 시스템의 상기 상태와 연관된 상기 식별자를 종료하라는 요청을 더 포함하는, 백업 관리자에 의한 수행을 위한 방법.
  14. 제9항에 있어서, 수행될 새 작업을 포함하는 응답을 상기 하나 이상의 작업자로부터 수신하는 단계를 더 포함하는, 백업 관리자에 의한 수행을 위한 방법.
  15. 제9항에 있어서, 상기 분산 서버 시스템의 상태와 연관된 상기 식별자가 종료되었음을 가리키는 응답을 상기 주 관리자에게 전송하는 단계를 더 포함하는, 백업 관리자에 의한 수행을 위한 방법.
  16. 제9항에 있어서, 상기 하나 이상의 작업자로부터 수신된 하나 이상의 새 작업 요청을 포함하는 응답을 상기 주 관리자에게 전송하는 단계를 더 포함하는, 백업 관리자에 의한 수행을 위한 방법.
  17. 장치 실행가능 명령어를 갖는 하나 이상의 장치 판독가능 매체로서, 상기 장치 실행가능 명령어는,
    분산 서버 시스템의 상태와 연관된 식별자를 종료하라는 명령을 하나 이상의 백업 관리자에게 전송하기;
    하나 이상의 백업 서버 각각으로부터 응답을 수신하기 위해 제1 소정 기간 간격동안 대기하기;
    응답을 한 상기 백업 서버들의 개수가 소정의 수보다 큰지를 판정하기; 및
    응답을 하지 않은 하나 이상의 백업 서버에 할당된 하나 이상의 작업자를 응답을 한 하나 이상의 백업 서버에 재할당하기
    를 포함하는 단계들을 수행하기 위한, 하나 이상의 장치 판독가능 매체.
  18. 제17항에 있어서, 응답을 하지 않은 상기 하나 이상의 백업 서버가 응답하기까지 제2 소정 시간 간격동안 대기하기를 더 포함하는, 하나 이상의 장치 판독가능 매체.
  19. 제17항에 있어서, 상기 하나 이상의 작업자의 응답여부에 관한 정보를 상기 하나 이상의 백업 서버로부터 수신하기를 더 포함하는, 하나 이상의 장치 판독가능 매체.
  20. 제17항에 있어서, 상기 백업 관리자는 상기 분산 서버 시스템의 상기 상태와 연관된 식별자를 종료하라는 상기 명령을 상기 하나 이상의 작업자에게 전송하는, 하나 이상의 장치 판독가능 매체.
KR1020097009826A 2006-11-10 2007-08-29 분산 서버 시스템, 백업 관리자에 의한 수행을 위한 방법, 및 하나 이상의 장치 판독가능 매체 KR20090085058A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/558,887 2006-11-10
US11/558,887 US7685227B2 (en) 2006-11-10 2006-11-10 Message forwarding backup manager in a distributed server system

Publications (1)

Publication Number Publication Date
KR20090085058A true KR20090085058A (ko) 2009-08-06

Family

ID=39364835

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097009826A KR20090085058A (ko) 2006-11-10 2007-08-29 분산 서버 시스템, 백업 관리자에 의한 수행을 위한 방법, 및 하나 이상의 장치 판독가능 매체

Country Status (7)

Country Link
US (1) US7685227B2 (ko)
EP (1) EP2092432B1 (ko)
JP (2) JP2010509677A (ko)
KR (1) KR20090085058A (ko)
CN (1) CN101535978B (ko)
TW (1) TWI375155B (ko)
WO (1) WO2008057649A1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008104437A1 (en) * 2007-02-28 2008-09-04 International Business Machines Corporation A method for resolving a unit of work
US8769223B2 (en) * 2008-03-31 2014-07-01 Symantec Corporation System and method for setting an activation state for a device used in a backup operation
US8050191B2 (en) * 2009-05-26 2011-11-01 Motorola Mobility, Inc. Distributed information storage and retrieval of communication network performance data
US8533299B2 (en) 2010-04-19 2013-09-10 Microsoft Corporation Locator table and client library for datacenters
US8996611B2 (en) * 2011-01-31 2015-03-31 Microsoft Technology Licensing, Llc Parallel serialization of request processing
US9170892B2 (en) 2010-04-19 2015-10-27 Microsoft Technology Licensing, Llc Server failure recovery
US9454441B2 (en) 2010-04-19 2016-09-27 Microsoft Technology Licensing, Llc Data layout for recovery and durability
US9813529B2 (en) 2011-04-28 2017-11-07 Microsoft Technology Licensing, Llc Effective circuits in packet-switched networks
US8677068B2 (en) * 2010-06-18 2014-03-18 Lsi Corporation Scalable storage devices
US8843502B2 (en) 2011-06-24 2014-09-23 Microsoft Corporation Sorting a dataset of incrementally received data
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US20130067095A1 (en) * 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
CN102662793A (zh) * 2012-03-07 2012-09-12 江苏引跑网络科技有限公司 一种可保证数据一致性的分布式数据库热备份与恢复方法
US9778856B2 (en) 2012-08-30 2017-10-03 Microsoft Technology Licensing, Llc Block-level access to parallel storage
JP2014063414A (ja) * 2012-09-24 2014-04-10 Toshiba Corp 制御システム
US9621412B2 (en) 2012-12-27 2017-04-11 Telecom Italia S.P.A. Method for guaranteeing service continuity in a telecommunication network and system thereof
US11422907B2 (en) 2013-08-19 2022-08-23 Microsoft Technology Licensing, Llc Disconnected operation for systems utilizing cloud storage
US9256489B2 (en) * 2013-10-30 2016-02-09 International Business Machines Corporation Synchronized debug information generation
US10594784B2 (en) 2013-11-11 2020-03-17 Microsoft Technology Licensing, Llc Geo-distributed disaster recovery for interactive cloud applications
US9798631B2 (en) 2014-02-04 2017-10-24 Microsoft Technology Licensing, Llc Block storage by decoupling ordering from durability
TWI626547B (zh) * 2014-03-03 2018-06-11 國立清華大學 於分散式資料庫中將系統狀態一致地還原至欲還原時間點之方法及系統
US9442803B2 (en) * 2014-06-24 2016-09-13 International Business Machines Corporation Method and system of distributed backup for computer devices in a network
US9459933B1 (en) * 2015-01-30 2016-10-04 Amazon Technologies, Inc. Contention and selection of controlling work coordinator in a distributed computing environment
EP3099027B1 (en) 2015-05-26 2017-09-13 Urban Software Institute GmbH Computer system and method for message routing with content and reference passing
CN105005518B (zh) * 2015-08-24 2018-12-04 上海天旦网络科技发展有限公司 自动聚合冗余系统交易数据的系统及其处理器和方法
US10866757B2 (en) * 2018-09-26 2020-12-15 EMC IP Holding Company LLC System and method for providing backup services to high availability applications

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868818A (en) * 1987-10-29 1989-09-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Fault tolerant hypercube computer system architecture
JPH0721135A (ja) * 1993-07-02 1995-01-24 Fujitsu Ltd 二重化監視機能を持つデータ処理システム
JPH07306794A (ja) * 1994-05-12 1995-11-21 Mitsubishi Electric Corp 分散システム及び分散システムの高信頼化方法
JPH10207847A (ja) * 1997-01-27 1998-08-07 Hitachi Ltd 分散システムにおける自動負荷分散方式
US5987453A (en) * 1997-04-07 1999-11-16 Informix Software, Inc. Method and apparatus for performing a join query in a database system
US6026414A (en) * 1998-03-05 2000-02-15 International Business Machines Corporation System including a proxy client to backup files in a distributed computing environment
US6360330B1 (en) * 1998-03-31 2002-03-19 Emc Corporation System and method for backing up data stored in multiple mirrors on a mass storage subsystem under control of a backup server
JPH11353202A (ja) 1998-06-10 1999-12-24 Ntt Mobil Commun Network Inc 分散データ処理システム
US6053699A (en) * 1998-07-27 2000-04-25 General Electric Company Steam turbine having a brush seal assembly
US6704278B1 (en) * 1999-07-02 2004-03-09 Cisco Technology, Inc. Stateful failover of service managers
US6496949B1 (en) * 1999-08-06 2002-12-17 International Business Machines Corp. Emergency backup system, method and program product therefor
US6748447B1 (en) * 2000-04-07 2004-06-08 Network Appliance, Inc. Method and apparatus for scalable distribution of information in a distributed network
US20020019844A1 (en) * 2000-07-06 2002-02-14 Kurowski Scott J. Method and system for network-distributed computing
JP2002026950A (ja) * 2000-07-07 2002-01-25 Nippon Telegr & Teleph Corp <Ntt> サーバツリー構造の構築方法及びシステム、サーバ並びに記録媒体
TW561358B (en) * 2001-01-11 2003-11-11 Force Corp Z File switch and switched file system
US7414989B2 (en) * 2003-05-07 2008-08-19 Motorola, Inc. ACK/NACK determination reliability for a communication device
CN1292346C (zh) * 2003-09-12 2006-12-27 国际商业机器公司 用于在分布式计算体系结构中执行作业的系统和方法
GB0410150D0 (en) * 2004-05-07 2004-06-09 Ibm Methods,apparatus and computer programs for recovery from failures in a computing environment
US20060143517A1 (en) * 2004-12-22 2006-06-29 Microsoft Corporation Replicated virtual machine
JP2008003907A (ja) * 2006-06-23 2008-01-10 Hitachi Ltd 情報処理振分制御方法およびそのコンピュータ

Also Published As

Publication number Publication date
JP2013257893A (ja) 2013-12-26
TW200823682A (en) 2008-06-01
JP5624655B2 (ja) 2014-11-12
EP2092432A1 (en) 2009-08-26
EP2092432B1 (en) 2018-06-27
EP2092432A4 (en) 2015-06-03
JP2010509677A (ja) 2010-03-25
US20080114827A1 (en) 2008-05-15
TWI375155B (en) 2012-10-21
CN101535978A (zh) 2009-09-16
WO2008057649A1 (en) 2008-05-15
CN101535978B (zh) 2011-04-06
US7685227B2 (en) 2010-03-23

Similar Documents

Publication Publication Date Title
KR20090085058A (ko) 분산 서버 시스템, 백업 관리자에 의한 수행을 위한 방법, 및 하나 이상의 장치 판독가능 매체
USRE47501E1 (en) Application program interface access to hardware services for storage management applications
US8751573B2 (en) Cloud-processing management with a landscape directory
US20160275123A1 (en) Pipeline execution of multiple map-reduce jobs
US8671134B2 (en) Method and system for data distribution in high performance computing cluster
CN112384895A (zh) 使用函数检查点实现服务枢纽的函数可移植性
US8589537B2 (en) Methods and computer program products for aggregating network application performance metrics by process pool
JP5778815B1 (ja) 基盤運用管理システムおよび基盤運用管理方法
US8683587B2 (en) Non-intrusive monitoring of services in a services-oriented architecture
US11153405B2 (en) Transparent pattern processing in a service mesh
US10474491B2 (en) Method and apparatus for managing cloud server in cloud environment
US8543680B2 (en) Migrating device management between object managers
US11178197B2 (en) Idempotent processing of data streams
US8180846B1 (en) Method and apparatus for obtaining agent status in a network management application
KR102119456B1 (ko) 분산 클라우드 환경에서의 분산 브로커 코디네이터 시스템 및 방법
US9973569B2 (en) System, method and computing apparatus to manage process in cloud infrastructure
US10313429B2 (en) Distributed resource management method and system
CN114598700A (zh) 通信方法及通信系统
JP5801432B2 (ja) 基盤運用管理システムおよび基盤運用管理方法
US9921934B1 (en) Storage process metrics
US11188389B2 (en) Distributed system that promotes task-machine affinity
KR100669153B1 (ko) 표준 관리 블럭에 기반을 둔 계층적 시스템 관리 시스템및 관리 방법
JP3019774B2 (ja) ネットワークシステムのリモート運用管理システム、リモート運用管理方法、およびリモート運用管理プログラムを記憶する媒体
CN116974454A (zh) 用于数据处理的方法、电子设备和计算机程序产品

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
N231 Notification of change of applicant
J301 Trial decision

Free format text: TRIAL NUMBER: 2015101002894; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20150526

Effective date: 20160523

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20150526

Effective date: 20160523