KR20030011301A - 매끄러운 실시간 응답 및 연속적인 가용성을 제공하는분산 컴퓨팅 시스템 집단화 모델 - Google Patents

매끄러운 실시간 응답 및 연속적인 가용성을 제공하는분산 컴퓨팅 시스템 집단화 모델 Download PDF

Info

Publication number
KR20030011301A
KR20030011301A KR1020027013730A KR20027013730A KR20030011301A KR 20030011301 A KR20030011301 A KR 20030011301A KR 1020027013730 A KR1020027013730 A KR 1020027013730A KR 20027013730 A KR20027013730 A KR 20027013730A KR 20030011301 A KR20030011301 A KR 20030011301A
Authority
KR
South Korea
Prior art keywords
shared memory
virtual shared
backup
server
worker process
Prior art date
Application number
KR1020027013730A
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 KR20030011301A publication Critical patent/KR20030011301A/ko

Links

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/14Error detection or correction of the data by redundancy in operation
    • 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/2043Error 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 where the redundant components share a common memory address space
    • 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)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

분산 컴퓨팅 시스템은 주요한 가상 공유 메모리를 갖는 주서버와 백업 가상 공유 메모리를 갖는 백업 서버를 포함한다. 주서버는 가상 공유 메모리와 백업 가상 공유 메모리를 동기화하기 위해 백업 서버에 주기적으로 상태 테이블을 제공한다. 복수의 클라이언트 컴퓨터 자원은 네트워크 구조를 통해 주서버와 백업 서버에 연결되어 있다. 클라이언트 컴퓨터 자원은 워커 프로세스와 데이터 객체 사이에 미리 정해진 할당없이 주요한 가상 공유 메모리 안에서 처리된 데이터 객체에 독립적으로 오퍼레이션을 수행하기 위해 각각 적용되는 복수의 워커 프로세스를 부가적으로 포함한다. 주서버 또는 백업 서버를 사용할 수 없는 경우에, 워커 프로세스는 백업 가상 공유 메모리 안에서 처리된 대응하는 데이터 객체에 오퍼레이션을 수행한다. 클라이언트 컴퓨터 자원은 들어오는 데이터 패킷을 수용하고 나가는 데이터 패킷을 전송하기 위해 적용되는 복수의 입력/출력(I/O) 포트를 부가적으로 포함한다.

Description

매끄러운 실시간 응답 및 연속적인 가용성을 제공하는 분산 컴퓨팅 시스템 집단화 모델{DISTRIBUTED COMPUTING SYSTEM CLUSTERING MODEL PROVIDING SOFT REAL-TIME RESPONSIVENESS AND CONTINUOUS AVAILABILITY}
끊임없이 증가하는 과학적, 공학적, 상업적 어플리케이션의 복잡성으로, 큰 컴퓨팅 능력을 제공하는 시스템에 대한 높은 요구가 있다. 많은 이런 어플리케이션에서, 메인프레임 컴퓨터 시스템은 매우 높은 속도로 엄청난 계산을 수행하기 위한 그들의 가용성의 관점에서 전통적인 해결책을 나타낸다. 이런 메인프레임 컴퓨터는 큰 결점을 갖고, 주요하게 각각의 특별한 어플리케이션에 대해 특별히 개발된 주문된 하드웨어와 소프트웨어의 사용때문에 비용이 많이 든다. 게다가, 메인프레임 컴퓨터는 요구되는 증가로 부가적인 용량을 제공하기 위해 쉽게 계산되지 않는다. 메인프레임 컴퓨터의 부가적인 결점은 하나의 장애를 나타내는 것이다. 전기통신 어플리케이션과 같이 높은 정도의 가용성을 요하는 어플리케이션에 대한 여분의 컴퓨터 시스템을 제공하는 것이 필요하고 이에 따라 그러한 시스템의 비용과 복잡성이증가한다.
메인프레임 컴퓨터 시스템에 대신하는 것으로서, 분산 컴퓨터 시스템은 클라이언트-서버 네트워크에 연결된 복수의 컴퓨팅 장치(개인용 컴퓨터나 워크스테이션)로 개발되었다. 분산 컴퓨팅 시스템에서, 전 시스템의 계산 능력은 분리된 컴퓨팅 장치의 집합으로 부터 파생된다. 이러한 분산 시스템의 주요한 이점은 각각의 컴퓨팅 장치가 사용되는 표준 상용 하드웨어와 소프트웨어에 의해 제공되기 때문에비용과 범위성(scalability)을 감소시키고, 컴퓨팅 시스템은 네트워크에 단순히 더 많은 컴퓨팅 장치를 부가하는 것에 의해 필요한 만큼 확장된다. 분산된 컴퓨팅 시스템의 결점은 분리된 컴퓨팅 장치들에서 수행되는 분산된 프로세스를 통합할 수 있는 소프트웨어 어플리케이션을 개발하기가 어렵다는 것이다. 이러한 프로세스들은 컴퓨팅 장치들 간의 데이터 공유와 다중 실행 장치의 개발, 프로세스의 스케줄링 그리고 프로세스들의 동기화를 포함한다. 분산 컴퓨팅 시스템의 다른 결점은 장애 허용을 제공하는 것이다. 컴퓨팅 장치가 길게 수행하는 병렬 어플리케이션을 실행하고 있을때 실행 시간 또는 컴퓨팅 장치가 증가하면 장애 확률이 증가하고 하나의 컴퓨팅 장치의 충돌은 전체 실행에 장애의 원인이 될 수 있다.
다양한 장애 허용 병렬 프로그래밍 모델이 분산 컴퓨팅 시스템의 이러한 결점을 처리하기 위해 개발된다. 하나의 이런 모델은 가상 공유 메모리에 기반을 둔 병렬 계산 모델 린다이다. 린다에서, 공유 메모리를 통해 커뮤니케이션함으로써 함께 작동하는 어플리케이션에서 프로세스는 투플 공간을 참조한다. 투플 공간안에 각각의 투플은 정수, 소수, 문자, 데이터 요소의 배열등을 포함해 다양한 형태의어떤 것을 취하는 전형적인 데이터 요소의 시퀀스를 포함한다. 프로세스는 투플 생성을 위한 아웃(out), 프로세스 생성을 위한 에벌(eval), 소거 복구를 위한 인(in), 비소거 복구를 위한 알디(rd)를 포함하는 4개의 기본 오퍼레이션을 사용하는 투플 공간에 접근한다. 린다의 이점은 투플 공간을 통한 통신과 동기화가 프로세스가 각각 다른 상호 작용에 대해 식별하지 않아도 된다는 관점에서 익명이라는 것이다. 퍼시스턴트 린다(Persistent Linda) 또는 피린다(PLinda)로 알려진 다양한 린다는 장애 허용을 지원하고 병렬 계산을 위한 이상적인 계산 장치에 적용될 수 있다. 피린다가 기본적인 린다 오퍼레이션에 확장 세트를 부가하는 것은 비휘발성 메모리(디스크 저장소)에 투플 공간을 주기적으로 체크(저장)함으로써 장애 허용을 제공한다. 이러한 방법으로, 투플 공간은 큰 재앙이 되는 시스템 장애가 회복되어 질 수 있다. 가상 공유 메모리를 사용하는 이런 장애 허용 병렬 프로그래밍 모델이 수학적 및/또는 과학적인 문제의 어떤 형태를 해결하는데 이점이 있는 반면에, 많은 다른 실시간 어플리케이션에서 실용적이지 않다. 특히, 높은 에너지 물질의 데이터의 분석 또는 금융 기관의 돈 계산등과 같은 어플리케이션은 고도의 계산의 정확성을 요한다. 이러한 어플리케이션에서, 주기적인 유지 보수를 조절하기 위한 시스템 가용성의 낮은 레벨은 업그레이드되고/또는 시스템 장애는 계산 결과가 계산되는 만큼 긴 손익상쇄(trade-off)로 수용할 수 있다. 린다 또는 피린다 프로그래밍 모델은 이러한 어플리케이션에 적당하다. 반면에, 어떤 실시간 어플리케이션은 시스템 가용성의 높은 레벨을 요구하고 그대신 계산 정확성의 낮은 레벨을 받아들일 수 있다. 예를들어, 전기 통신 서버가 전 시스템이 시간의 거의 100%를 이용할수 있게 유지하는 만큼 길게 때때로 데이터 패킷을 놓는(drop) 것을 수용할 수 있다. 이렇게 가용 요구를 높게 요구하는 것은 시스템 다운타임(일년에 3분 보다 적은)의 매우 제한된 총량을 허락한다. 결과적으로, 유지 보수를 스케줄하는 것이 매우 어렵고/또는 시스템 업그레이드하거나 전영역 시스템의 어떤 부분의 장애는 완전히 받아들일 수 없다.
따라서, 실시간 응답 및 연속적인 가용성을 제공하는 장애 허용 병렬 프로그래밍 모델을 갖는 분산 컴퓨팅 시스템에 대한 중요한 필요가 존재한다.
본 발명은 분산 컴퓨터 프로세싱 시스템에 관한 것이고 특히, 실시간 응답 및 연속적인 가용성을 제공하기 위해 가상 공유 메모리를 사용하는 복수의 컴퓨팅 장치의 집단화 모델에 관한 것이다.
도 1은 본 발명에 따른 분산 컴퓨팅 시스템 집단화 모델의 실시예를 도시한 블럭다이어그램이다.
도 2는 가상 공유 메모리 안에서 데이터 객체를 포함하는 트랜잭션(데이터 파일의 내용에 영향을 미치는 모든 거래)을 도시한 로직다이어그램이다.
도 3은 데이터 객체로 수행되는 워커 프로세스 예를 도시한 플로우 차트이다.
도 4는 들어오는 데이터 패킷으로 수행되는 입력 워커 프로세스 예를 도시한 플로우 차트이다.
도 5는 나가는 데이터 패킷으로 수행되는 출력 워커 프로세스 예를 도시한 플로우 차트이다.
본 발명은 종래 기술의 다양한 결함을 극복한 실시간 응답 및 연속적인 가용성을 제공하는 분산 컴퓨팅 시스템이다. 분산 컴퓨팅 시스템의 실시예는 주요한 가상 공유 메모리를 갖는 주서버와 백업 가상 공유 메모리를 갖는 백업 서버를 포함한다. 주서버는 가상 공유 메모리와 백업 가상 공유 메모리를 동기화시키기 위해 주기적으로 백업 서버에 상태 테이블을 제공한다. 클라이언트 컴퓨터 자원의 복수는 네트워크 아키텍처를 통해 주서버와 백업 서버에 연결된다. 클라이언트 컴퓨터 자원은 게다가 워커(worker) 프로세스와 데이터 객체 사이에 미리 정해진 할당 없이 주요한 가상 공유 메모리 안에서 처리된 데이터 객체로 독립적으로 오퍼레이션을 수행하기 위해 각각 적용된 복수의 워커(worker) 프로세스를 포함한다. 주서버의 비가용성의 때에는, 워커(worker) 프로세스는 백업 서버안에 백업 가상 공유 메모리의 데이터 객체에 대응하는 오퍼레이션을 수행한다. 클라이언트 컴퓨터 자원은 들어오는 데이터 패킷을 받고 나가는 데이터 패킷을 전송하기 위해 적합한 복수의입력/출력(I/O) 포트를 부가적으로 포함한다.
워커(worker) 프로세스에 복수의 형태가 있고, 각 워커(worker) 프로세스는 다른 형태의 기능을 수행하기 위해 적용된다. 워커(worker) 프로세스의 한 형태는 I/O 포트로 부터 들어오는 데이터 패킷을 회수하고 데이터 객체에 대응해서 주요한 가상 공유 메모리에 위치하게 하기 위해 적용되는 입력 워커(worker) 프로세스를 포함한다. 다른 형태의 워커(worker) 프로세스는 주요한 가상 공유 메모리로 부터 데이터 객체를 제거하고 I/O 포트에 데이터 패킷을 넘겨주기 위해 적용되는 출력 워커(worker) 프로세스를 포함한다. 남은 워커(worker) 프로세스는 상기 주요한 가상 공유 메모리, 미리 정의한 기능과 일치하는 데이터 객체 프로세싱과 수정된 데이터 객체를 주요한 가상 메모리에 돌려주는 것으로 부터 미리 정의된 유형을 갖는 데이터 객체를 잡는 것에 의해 동작한다.
분산 컴퓨팅 시스템 집단화 모델의 더 완벽한 이해는 다음의 바람직한 실시예의 상세한 설명에 의해 부가적인 이점과 목적이 기술 분야에서 통상의 지식을 갖은 사람들에게 제공될 것이다. 참조는 우선 간단하게 도시된 첨부 도면에 의해 만들어 질 것이다.
본 발명은 실시간 응답 및 연속적인 가용성을 제공하는 병렬 프로그래밍 모델, 장애 허용을 갖는 분산 컴퓨팅 시스템에 대한 요구를 만족시킨다.
우선 도 1을 참조하면, 블럭 다이어그램은 본 발명의 실시예에 따른 분산 컴퓨팅 시스템 집단화 모델을 도시한다. 분산 컴퓨팅 시스템은 주서버(22), 백업서버(32), 허브(14,16)를 통해 지역 네트워크 안에서 함께 연결된 복수의 클라이언트(1에서 N)(42,44,48)를 포함하는 복수의 노드를 갖는다. 주서버와 백업서버(22,23)는 투플 공간 오퍼레이션(아래 기술된)의 시맨틱(semantics)을 실행하는 어플리케이션 데이터 변환 프로토콜을 사용하는 각각과 클라이언트(42,44,48)와 통신한다. 이 투플 공간 어플리케이션 프로토콜은 이더넷(Ethernet)이나 토큰 링(Token Ring)과 같은 전통적인 네트워크 프로토콜에 기초를 두어 의존하거나 양립할 수 있다. 주서버(22), 백업서버(32), 클라이언트(42,44,48) 각각은 네트워크 통신 노드를 나타낸다.
도 1의 분산 컴퓨팅 시스템의 통신 노드 각각은 물리적으로 분리된 컴퓨팅장치(개인용 컴퓨터, 워크 스테이션등)를 포함하거나 하나의 컴퓨팅 장치 안에서 분리되어 실행하는 프로세스에 의해 제공되는 복수의 통신 노드를 포함한다. 예를들어, 주서버(22)와 하나 또는 그 이상의 클라이언트(42,44,48)가 실제로 하나의 컴퓨팅 장치 안에서 제공되어 진다. 이런 컴퓨팅 장치 각각은 전형적으로 프로세서와 랜던 억세스 메모리(RAM)을 포함한다. 여기서 사용되는 프로세서는 넓게 마이크로프로세서, 디지털 싱글 프로세서(DSPs), 어플리케이션 스페시픽 인티그래이티드 회로(AICSs), 필드 프로그래머블 게이트 어레이(FPGAs)등을 포함한다. 주서버(22)와 백업서버(23) 뿐만 아니라 클라이언트 각각(42,44,48)은 복수의 입력/출력(I/O) 포트를 포함한다. I/O 포트는 어떤 노드를 통해 네트워클로 부터/에로 제공된 데이터 및/또는 신호를 허용한다. 돌아가서, I/O 포트는 다른 컴퓨터 네트워크나 또는 인터넷과 같은 다른 외부 시스템과 연결되어 진다. 콘솔(12)은 노드(14,16) 중에 하나를 통해서 주서버와 백업서버(22,32)와 연결되고 클라이언트(42,44,48)와 유사한 계산 장치에서 실행하는 프로세스를 포함한다. 클라이언트와 달리, 콘솔(12)은 사용자가 네트워크 안에서 명령과 정보 관리를 하는 것과 네트워크의 오퍼레이션 상태를 모니터하는 것을 허락하는 특별한 기능을 제공한다. 콘솔(12)은 게다가 입력 장치(키보드, 마우스, 스캐너등)및 사용자에게 비주얼 출력을 제공하기 위한 비디오 모니터 또는 다른 비주얼 디스플레이 장치와 연결된다.
주서버(22)는 게다가 가상 공유 메모리(또 여기서 투플 공간으로 참조되는 것)(24)를 제공하기 위한 투플 공간 어플리케이션 프로토콜을 사용하는 콘솔(12) 뿐아니라 클라이언트(42,44,48) 각각에 의해 접근할 수 있는 비휘발성 메모리 예를들어 디스크 저장(26) 및 랜덤 억세스 메모리(RAM)를 포함한다. 유사하게, 백업서버(32)는 게다가 가상 공유 메모리(또 여기서 투플 공간으로 참조되는 것)(34)를 제공하기 위한 콘솔(12) 뿐아니라 클라이언트(42,44,48) 각각에 의해 접근할 수 있는 비휘발성 메모리 예를들어 디스크 저장(36) 및 랜덤 억세스 메모리(RAM)를 포함한다. 아래에서 더 기술되는 바와 같이, 가상 공유 메모리(24) 및 백업 가상 공유 메모리(34) 각각은 데이터 객체(예 투플)가 그 안에 위치되는 공간을 제공한다. 투플이 이종성이라는 것은 데이터 객체의 다른 유형이 가상 공유 메모리(24)를 공유한다는 의미이다. 주서버(22)의 가상 공유 메모리(24)와 백업 서버(32)의 백업 가상 공유 메모리(34)는 주서버(22)와 백업 서버(32) 사이에 상태 테이블의 통신에 의해 함께 동기화된다. 투플 공간은 관계 데이터베이스, 집단화 데이터베이스, 데이터 객체 보관소등에 대한 프로그래밍 인터페이스로 사용되어 지고 가상 공유 메모리(24,34) 부분은 이러한 데이터베이스 형태의 실행에 의존하다. 주서버(22)의 투플 공간 안에 투플의 상태가 투플을 더함, 변함 또는 삭제함에 의해 변화될 때마다 상태 테이블이 업데이트되고 백업 서버(32)에 투플 공간에 변화를 반영한다. 상태 테이블은 또한 투플 공간의 영원한 보존을 제공하고 주서버(22) 및 백업 서버(32)의 하나 또는 둘다의 장애 발생시 접근되어 지기 위해 디스크 메모리(26)에 저장되어 진다.
클라이언트(42,44,48) 각각은 투플 공간 안에서 데이터 객체(투플) 프로세싱, 저장, 검색을 위한 프로세싱 자원을 제공한다. 클라이언트와 투플들 사이에 관계를 할당하지 않아서, 어떤 클라이언트는 클라이언트에서 실행하는 워커 프로세스의 유형과 특별한 투플 사이에 계산 만큼 긴 어떤 투플을 접근할 수 있다(아래에서 더 상세히 기술된다). 부가적인 프로세싱 자원은 허브(14,16)의 하나에 부가적인 클라이언트를 단순히 연결함으로써 네트워크에 부가되어 진다. 더욱이, 클라이언트(42,44,48)를 제공하는 컴퓨팅 장치는 프로세싱 능력 및/또는 속도의 면에서 같을 필요는 없다.
이제 도 2를 참조하면, 로직 다이어그램은 투플 공간(104) 또는 가상 공유 메모리 안에서 데이터 객체를 포함하는 오퍼레이션 예를 도시한다. 투플 공간(104)은 공통적인 데이터 형태를 갖는 첫 번째 투플 형태(122,124,126,128)(원으로 표현됨)와 첫 번째 투플의 형태로 부터 분리되어 공통적인 데이터 형태를 갖는 두 번째 투플 형태(132,134,136)(사각형으로 표현됨)를 포함하는 복수의 투플을 포함한다. 비록 단순화하기 위해 투플의 두개 형태로 도시되었지만, 현재 투플 공간 안에서 투플 형태의 숫자가 제한되지 않는다는 것이 인식되어 져야 한다. 투플의 각 형태는 구분된 데이터 형식을 갖고 정보의 다른 형태를 표현하기 위해 사용되어 진다. 로직 다이어그램은 게다가 클라이언트(상술한)의 하나 또는 그 이상에서 실행되는 복수의 워커 프로세스(112,114,116,118)를 도시한다. 각각의 워커 프로세스는 투플 공간(104) 안에서 투플에 오퍼레이션을 수행한다. 예를들어, 워커 프로세스(112)는 투플 공간(104)으로 부터 첫 번째 형태의 투플(122)을 검색하고 투플안에 포함된 데이터에 몇 가지 프로세싱을 수행한 다음, 투플 공간(104)에 두 번째 형태의 투플(132)에 돌려준다. 투플의 두 번째 형태의 예에서(132), 투플 안에 포함된 데이터는 첫 번째 상태로 부터 두 번째 상태로 변환된 것을 갖는다. 상술한 바와 같이, 주서버(22)에서 오퍼레이팅하는 주프로세스(106)는 투플 공간(104)의 상태를 유지하고 백업 서버에서 오퍼레이팅하는 백업 프로세스(108)에 상태 테이블(110)을 제공한다. 상태 테이블(110)의 복사본이 투블 공간(104)의 상태에 변화가 있을 때 마다 전송되어 진다.
시스템 구성 세팅 또는 사용자 계산 및 청구서 작성 정보와 같은 데이터 객체의 어떤 중요한 형태는 주서버(22)와 백업 서버(32) 둘다 장애가 발생한 경우 회복되어 지게 할 수 있게 하기 위해 이러한 방법으로 투블을 저장하는 것이 바람직하다. 이러한 목적으로, 투플은 그것을 생성한 워커 프로세스에 의해 영원한 것으로 정의되어 지고, 주서버(22)와 백업 서버(32)는 디스크 또는 플레쉬 메모리와 같은 비휘발성 메모리 안에 그런 영원한 투플의 내용을 저장하고, 부가적으로 가상 공유 메모리에 복사본을 둔다. 하나 또는 두개 서버의 장애로 부터 회복된 때에, 영원한 투플은 비휘발성 메모리 안에 저장된 데이터로 부터 가상 공유 메모리 안에 다시 구성된다.
투플 공간 안에 투플에서 수행된 오퍼레이션은 트랜잭션으로 그룹화된다. 특히, 트랜잭션은 원자성, 고립성, 내구성의 특성을 갖는 오퍼레이션 세트를 포함한다. 원자성은 트랜잭션 안에 모든 오퍼레이션이 필수적으로 효과를 내거나(커미트) 또는 실행되지 않는(어볼트) 특성을 참조한다. 그래서, 트랜잭션의 부분적인 실행이 있을 수 없다. 고립성은 만약에 다중인 경우, 진행중에 동시에 트랜잭션이 발생한때, 만약 동시에 실행되는 다른 트랜잭션이 없는 경우에 한 트랜잭션 안에 오퍼레이션이 효과가 있다는 특성을 참조한다. 내구성은 트랜잭션이 실행될때, 그것의효과는 나중에 발생한 어떤 장애에도 불구하고 계속 유지된다는 특성을 참조한다. 트랜잭션은 만약 투플이 그것의 내용이 디스크나 또는 다른 안정된 매체에 저장되어 영원한 것으로 정의되어 질 경우 내구적인 것이다. 적당히 적용되어 질때, 트랜잭션은 바람직한 데이터 일관성 조건이 투플 공간 안에서 유지되어 지고, 심지어 예상되어 지지 않은 하드웨어 또는 소프트웨어 장애의 발생의 경우에도 유지되어 진다. 이것은 다른 경우 보다 더 효과적으로(가능한 몇몇 경우에) 장애로 부터의 회복을 만들고 아래에 더 기술하는 것처럼 시스템의 높은 가용성에 공헌한다. 게다가, 데이터는 주서버(22)와 백업 서버(32) 사이에 그리고 클라이언트들(42,44,48)과 주서버의 장애로 부터 회복하는 동안 백업 서버 사이에 프로토콜을 이동하고 트랜잭션 특성은 클라이언트 또는 주서버의 장애 발생시 잡는 것을 확신한다.
도 3은 간략화된 트랜잭션을 포함하는 워커 프로세스(300) 예를 도시한다. 302 단계에서, 워커 프로세스는 투플 공간(104)으로 부터 이용 가능한 투플을 잡는다. 이 단계는 린다 "in" 또는 "rd" 오퍼레이션을 실행하고 여기서 투플의 유형화된 형태가 인수로써 선택되어 지고 투플은 연관된 방법으로 유형화된 형태를 맞추기 위해 투플 공간(104)으로 부터 검색되어 진다. 만약 "in" 오퍼레이션이 수행되면, 투플은 파괴되고 투플 공간으로 부터 영원히 제거된다. 반대로, 만약 "rd" 오퍼레이션이 수행되면, 투플의 복사본이 투플 공간 안에 남아있다. 위에서 지적했듯이, 투플에 워커 프로세스의 할당이나 매핑(mapping)이 없고, 어떤 워커 프로세스는 워커 프로세스에 의해 정의된 유형에 맞는 어떤 이용 가능한 투플을 잡을 수 있다. 304 단계에서, 투플 안에 포함된 데이터는 데이터에 미리 정해진 기능을 실행하는 것에 의한 몇가지 방법으로 수행되어 진다. 복수의 워커 프로세스는 같은 기능을 수행하거나, 또는 각각의 워커 프로세스가 유일한 기능을 수행한다. 발명의 바람직한 실시예에서, 투플 공간은 다중스레딩(multithreading)을 허락하고 하나의 워커 프로세스는 그것으로 부터 다중 기능을 수행한다. 306 단계에서, 워커 프로세스는 결과와 투플 공간(104)에 새로운 투플을 되돌림을 만든다. 이 단계는 린다 "out" 오퍼레이션을 실행하고 그에의해 유형화된 표현의 시퀀스가 인수로써 취해진다. 새로운 투플은 그 시퀀스로 부터 구성되고, 투플 공간 안으로 삽입되어 진다. 워커 프로세스는 그때 시작으로 되돌아가고 그것 자체를 반복한다. 이러한 방법으로, 워커 프로세스는 계속 이용 가능한 투플을 잡고 적절히 그것들을 수행할 것이다. 더 복잡한 트랜잭션은 다중 "in", "rd" 및 "out" 오퍼레이션을 포함하는 것을 인식해야 한다.
보통, 워커 프로세스는 투플에 관한 어떤 상태 데이터를 유지하지 않는다. 워커 프로세스의 장애 발생의 경우에, 프로세스 안에서 형성된 어떤 중간의 데이터가 잃어버려 진다. 그러나, 트랜잭션 특성 덕분에, 투플 공간의 내용은 워커 프로세스의 완성하려고 하는 효과 또는 트랜잭션을 다루기 위한 워커 프로세스 단지 전보다 우세한 조건에 반사된다. 후자의 경우에, 다른 워커 프로세스(같은 형태)는 트랜잭션을 다룰 수 있다.
분산 컴퓨팅 시스템은 실시간 프로세싱 환경에서 작동하려고 하기 때문에, 특수한 워커 프로세스가 입력과 출력 기능을 수행하기 위해 제공되어 진다. 도 4는 도 1의 블럭 다이어그램을 참조해서 입력 워커 프로세스(400) 예를 도시한다. 기술분야에서 알려진 바와 같이, 주서버(22), 백업 서버(32) 또는 클라이언트(42,44,48)의 I/O 포트 중 하나에서 수용하는 들어오는 데이터 패킷은 입력 버퍼를 제공하는 메모리 공간에 써진다. 통신 노드의 오퍼레이팅 시스템은 전형적으로 입력 버퍼로 부터 데이터 패킷의 검색을 다루는데 적용되어 지는 어플리케이션 프로그램 인터페이스(API)를 포함한다. 402 단계에서, 입력 워커 프로세스는 수용된 데이터 패킷의 존재에 대해 I/O 포트의 입력 버퍼를 확인한다. 다음으로, 404 단계에서, 입력 워커 프로세스는 데이터 패킷이 존재하는지에 대해 결정한다. 만약 어떤 데이터 패킷도 존재하지 않으면, 입력 워커 프로세스는 데이터 패킷이 도착할 때까지 기다릴 것이다. 데이터 패킷이 입력 버퍼에 도달할 때, 프로세스 데이터 패킷이 입력 버퍼로 부터 검색되어 지는 406 단계로 넘어간다. 그때, 408 단계에서, 데이터 패킷은 투플로 변환되고 린다 "out" 오퍼레이션을 사용해서 투플 공간(104) 안으로 삽입된다. 입력 워커 프로세스는 그때 시작으로 돌아가고 다시 반복한다. 입력 워커 프로세스의 오퍼레이션에 의해, 외부 시스템으로 부터 분산 컴퓨팅 시스템에 의해 수용된 어떤 들어오는 데이터 패킷은 더 프로세싱을 할 수 있게 하기 위해 투플 공간(104) 안으로 옮겨진다.
도 5는 도1의 블럭 다이어그램을 참조한 출력 워커 프로세스(500)의 예를 도시한다. 기술 분야에서 알려진 바에 따라, 주서버(22), 백업 서버(32) 또는 클라이언트(42,44,48)의 I/O 포트 중 하나로 부터 전송된 나가는 데이터 패킷은 출력 버퍼를 제공하는 메모리 공간에 써진다. 통신 노드의 오퍼레이팅 시스템은 전형적으로 출력 버퍼로 나가는 데이터 패킷의 로딩을 다루기 위해 적용되는 장치 드라이버를 포함한다. 502 단계에서, 출력 워커 프로세스는 린다 "in" 오퍼레이션을 사용하는 투플 공간(104)으로 부터 이용 가능한 투플을 잡고 그것에 의하여 투플은 연관된 방법으로 유형화된 형태를 맞추는 투플 공간(104)으로 부터 검색된다. 다음으로, 504 단계에서, 출력 워커 프로세스는 출력 버퍼로 검색된 투플의 데이터를 포함하는 데이터 패킷을 로드(load)한다. 출력 워커 프로세스는 그때 시작으로 돌아가서 다시 반복한다. 출력 워커 프로세스의 오퍼레이션에 의해, 프로세스된 데이터를 포함하는 어떤 투플은 데이터 패킷으로 전환되고 분산된 컴퓨팅 시스템으로 부터 외부 시스템에 전송된다.
상술한 바와 같이, 어떤 노드와 투플 공간 사이의 통신은 알려진 네트워크 프로토콜에 따라 수행된다. 그런 프로토콜에 따라, 데이터 프레임은 프레임의 헤더에 목적지 주소를 특정하는 노드들 사이에 통신한다. 도 1을 다시 참조하면, 클라이언트가 투플 공간에 투플을 쓰기 위해서 주서버(22)에 데이터 프레임을 전송할때, 헤더는 프레임 헤더로 주서버를 확인할 것이다. 보내는 노드는 데이터 프레임의 전송과 함께 타이머를 작동시킨다. 주서버(22)는 데이터 프레임의 수신의 성공을 반영하여 클라이언트에 승인(acknowledgment)을 되돌려 보낸다. 주서버(22)가 분산 컴퓨팅 시스템의 오퍼레이션 동안 실패하는 경우에, 승인은 보내는 노드로 돌아 오지 않을 것이다. 만약 승인이 타이머에 의해 정해진 미리 정해진 시간의 주기 안에서 수용되어 지지않는 다면, 보내는 노드는 데이터 프레임을 프레임 헤더에서 지정한 백업 서버(32)에 다시 보낸다. 백업투플 공간(34)은 주투플 공간(24)과 동일시되기 때문에, 분산 컴퓨팅 시스템은 비록 주서버(22)가 실패하더라도 충격없이계속 작동할 것이다. 주서버(22)가 동작 상태로 돌아왔을때, 백업서버(32)는 각각의 투플 공간(24,34)을 동기화하기 위해 주서버(22)에 상태 테이블의 복사본을 넘겨 줄 것이다.
상술한 분산 컴퓨팅 시스템에 큰 이점이 있다. 워커 프로세스와 투플 사이에 할당이 없기 때문에, 작업 장치는 가상적인 프로세스 스레드(thread)의 부분으로 수행된다. 전통적인 컴퓨팅 구조에서, 작업 장치는 미리 정의된 명령의 스레드의 부분으로 수행되었다. 전통적인 멀티테스킹(multitasking) 환경은 다른 트랜잭션 또는 메세지를 프로세싱하는 각각의 스레드를 갖는 같은 프로그램 안에서 동시 발생의 위치를 취하는 실행의 다중 스레드를 갖는다. 반대로, 본 분산 컴퓨팅 시스템의 투플 공간은 가상 프로세스 스레드를 제공하고 그에 따라 작업 장치가 실행되어 지거나 물리적으로 다른 컴퓨팅 장치에서 실행되는 복수의 워커 프로세스에 의해 수행된다. 이 가상 프로세스 스레드는 신뢰성, 범위성 및 부하 균형의 면에서 전통적인 컴퓨팅 구조에 구별되는 이점을 갖는다.
특히, 분산 컴퓨팅 시스템은 높은 신뢰성과 주서버(22)와 백업서버(32) 각각에 여분의 투플 공간(24,34)의 면에서 연속적인 가용성을 제공한다. 만약 주서버 및 백업서버의 하나가 장애 또는 정기 유지 보수등과 같은 것 때문에 사용할 수 없게 되면, 분산 컴퓨팅 시스템은 수행에 있어서 충격을 인지하지 않고 오퍼레이팅을 계속할 수 있다. 클라이언틀들(42,44,48) 중 어떤 것 또는 실행중인 워커 프로세스의 장애는 오직 그 클라이언트에 의해 프로세싱되는 개별적인 투플에만 영향을 미치고 전체 시스템에는 영향이 없다. 최악의 경우에, 개별적으로 들어오는 데이터패킷은 잃게 되고(하나의 폰 콜에 일치하는), 이것은 많은 어플리케이션에 대해 수용된다.
게다가, 분산 컴퓨팅 시스템은 자연적인 부하 균형을 제공한다. 워커 프로세스들과 투플들 사이에 할당이 없기 때문에, 투플 공간에서 이용 가능한 작업은 워커 프로세스의 자동 특성의 자연적 부산물로서 이용 가능한 클라이언트 컴퓨팅 자원들 사이에 분산되어 진다. 유사하게, 부가적인 워커 프로세스는 부하에 적응시키기 위해 필요한 때 생성되어 질 수 있다. 개별적인 워커 프로세스는 워커 프로세스에 의해 잡히게 되기 전에 투플이 투플 공간에서 남아있는 시간의 총량을 측정함으로써와 같이 시스템을 통한 데이터의 작업 처리율을 측정하는 기능을 제공하기 위해 적용되어 진다. 만약 시간의 총량이 미리 정한 한계를 초과하는 경우에는(너무 많은 작업 및 충분하지 않은 워커),워커 프로세스는 부가적인 워커 프로세스를 진출시킬수 있고 반대로, 만약 시간의 총량이 미리 정한 한계를 밑도는 경우에는(너무 적은 작업 및 너무 많은 워커), 워커 프로세스는 워커 프로세스를 한정할 수 있다. 이러한 방법으로, 작업 처리율이 조정될 수 있다.
클라이언트들과 서버들 사이에 데이터 전송 프로토콜이 성질은 서버 프로토콜의 구조 만큼 완화(soft) 실시간 프로세싱을 허락한다. 작업 장치의 프로세싱에 엄격한 시간적 한계가 있는 경질(hard) 실시간 프로세싱과 달리, 본 분산 컴퓨팅 시스템은 I/O 포트에 도달하는 요구 패킷의 수용과 I/O 포트로 부터 전송된 응답 패킷 사이에 지연이 최상의 트랜잭션을 위해 조정할 수 있는 한계 아래로 유지되어 지는 것을 확신하려고 한다. 이것은 투플 공간에서 작동하는 워커 프로세스의 숫자를 조정함으로써 성취되어지고, 여기서 만약 프로세싱 지연이 미리 정해진 한계를 초과하면 부가적인 워커 프로세스가 더해진다. 완화(soft) 실시간 프로세싱은 전기 통신 어플리케이션과 같이 엄격한 시간 제한 안에서의 프로세싱을 요구하지 않는 어플리케이션의 많은 형태에 대해 수용되어 진다.
분산 컴퓨팅 시스템은 또한 높은 범위성을 제공한다. 클라이언트 컴퓨팅 자원은 시스템의 용량을 증가시키기 위해 네트워크에 더해질 수 있고, 허브(14,16)의 용량을 바꿈으로써 주요하게 제한되어 질 수 있다. 유사하게, 새로운 기능은 클라이언트 컴퓨팅 자원에 단순히 새로운 또는 다른 워커 프로세스를 더함으로써 네트워크로 이동되어 질 수 있다.
상술한 분산 컴퓨팅 시스템은 특히 많은 실시간 어플리케이션에 잘 맞는다는 것을 알아야한다. 예의 방법으로, 분산 컴퓨팅 시스템은 복수의 트렁크 라인 사이에 폰 콜의 스위칭을 조정하는 전기 통신 서버, 스위치, 서비스 스위칭 포인트(SSP)로 작동하기 위해 적용되어 질 수 있다. 기술 분야에서 알려진 바에 따르면, 협대역 스위칭 신호는 목적지를 확인하기 위한 SSP와 트렁크 라인에 폰 트래픽과 연관된 다른 정보들 사이에 통신되어 진다. SSP는 스위칭 신호 데이터 패킷을 받고 다양한 루팅 알고리즘에 따른 폰 트래픽의 루팅(routing)을 결정한다. 본 분산 컴퓨팅 시스템의 실시예에 따라 구성된 SSP는 가상 프로세스 스레드에 따른 알고리즘을 실행하는 복수의 워커 프로세스를 포함한다. 예를들어, SSP는 투플 공간에 상응하는 투플을 쓰고 들어오는 스위칭 신호를 받는 입력 워커 프로세스를 포함한다. 다른 워커 프로세스는 투플을 잡고, 프로세싱의 첫째 단계를 수행하고 투플공간에 수정된 투플을 쓴다. 그러나 다른 워커 프로세스는 수정된 투플을 잡고 프로세싱의 둘째 단계를 수행하고 투플 공간에 더 수정된 투플을 쓴다. 마지막으로, 출력 워커 프로세스는 더 수정된 투플을 잡고 폰 콜의 루팅을 제어하는 출력 스위칭 신호를 만든다. 인터넷 프로토콜 허브, 라우터, 스위치, 웹서버, 보이스 프로세서, 이메일 서버등과 같은 많은 다른 실시간 어플리케이션은 본 분산 컴퓨팅 시스템으로 부터 같은 이점이 있다. 본 분산 컴퓨팅 시스템은 부분적인 시스템 장애의 경우에 빠르게 시스템을 회복하기 위해(서비스 가용성을 유지) 수용된 트랜잭션이 때때로 잃어 버려 지는 것이 허용되기 때문에 높은 가용성 전기 통신 어플리케이션에 잘 맞는다.
분산 컴퓨팅 시스템 집단화 모델의 바람직한 실시예의 기술로, 기술 분야에서 통상의 지식을 가진 사람들에게 발명의 이점이 성취되어 질 것이라는 것이 명백하다. 또한 다양한 변형, 적용 및 대안의 실시예는 본 발명의 범위 내에서 만들어 진다는 것이 인식되어 져야 한다. 발명은 다음의 청구 범위에 의해 정의되어 진다.

Claims (15)

  1. 주요한 가상 공유 메모리를 갖는 주서버;
    상기 가상 공유 메모리와 백업 가상 공유 메모리를 동기화시키기 위해 상기 주서버가 백업 서버에 주기적으로 상태 테이블을 제공하는 백업 가상 공유 메모리를 갖는 백업 서버; 및
    적어도 하나의 데이터 객체에 적어도 하나의 워커 프로세스의 미리 정해진 할당없이 상기 주요한 가상 공유 메모리와 상기 백업 가상 공유 메모리 안에서 처리된 적어도 하나의 데이터 객체에 독립적으로 오퍼레이션을 수행하는데 적용된 적어도 하나의 워커 프로세스를 포함하는 네트워크를 통해 상기 주서버 및 백업 서버에 연결된 적어도 하나의 클라이언트를 포함하고,
    상기 주서버 또는 백업 서버 어느 하나가 이용될 수 없는 경우, 상기 적어도 하나의 워커 프로세스가 상기 주요한 가상 공유 메모리 및 상기 백업 가상 공유 메모리의 남은 이용 가능한 하나 안에서 처리된 상기 적어도 하나의 데이터 객체에 상기 오퍼레이션을 수행하는 것을 특징으로 하는 분산 컴퓨팅 시스템.
  2. 제 1항에 있어서, 상기 적어도 하나의 클라이언트는 들어오는 데이터 패킷을 수용하고 나가는 데이터 패킷을 전송하기 위해 적용되는 복수의 입력/출력(I/O) 포트를 부가적으로 포함함을 특징으로 하는 분산 컴퓨팅 시스템.
  3. 제 2항에 있어서, 상기 적어도 하나의 워커 프로세서는 상기 복수의 I/O 포트의 적어도 하나로 부터 데이터 패킷을 검색하고 상기 주요한 가상 공유 메모리 및 상기 백업 가상 공유 메모리의 적어도 하나에 대응하는 데이터 객체를 위치시키기 위해 적용된 입력 워커 프로세스를 부가적으로 포함함을 특징으로 하는 분산 컴퓨팅 시스템.
  4. 제 2항에 있어서, 상기 적어도 하나의 워커 프로세스는 상기 주요한 가상 공유 메모리 및 상기 백업 가상 공유 메모리의 적어도 하나로 부터 데이터 객체를 제거하고 상기 복수의 I/O 포트의 하나에 데이터 패킷을 전달하기 위해 적용된 출력 워커 프로세스를 부가적으로 포함함을 특징으로 하는 분산 컴퓨팅 시스템.
  5. 제 1항에 있어서,
    상기 적어도 하나의 클라이언트가 상기 적어도 하나의 워커 프로세스를 제공하는 실행할 수 있는 소프트웨어 명령을 부가적으로 포함하고,
    상기 워커 프로세스는 상기 주요한 가상 공유 메모리와 상기 백업 가상 공유 메모리의 적어도 하나로 부터 미리 정의된 유형을 갖는 데이터 객체를 잡는 단계;
    미리 정의된 기능에 따른 데이터 객체 프로세싱 단계; 및
    상기 주요한 가상 공유 메모리와 상기 백업 가상 공유 메모리의 적어도 하나에 수정된 데이터 객체를 돌려보내는 단계를 포함하는 것을 특징으로 하는 분산 컴퓨팅 시스템.
  6. 제 1항에 있어서, 상기 주서버는 영속적인 저장 장치, 상기 영속적인 저장 장치에 선택적으로 저장된 상기 적어도 하나의 데이터 객체를 부가적으로 포함하는 것을 특징으로 하는 분산 컴퓨팅 시스템.
  7. 제 1항에 있어서, 상기 주서버는 상기 가상 공유 메모리 안에서 어떤 데이터 객체의 상태가 변화할 때 상기 백업 서버에 상기 상태 테이블을 제공하는 것을 특징으로 하는 분산 컴퓨팅 시스템.
  8. 제 1항에 있어서, 상기 적어도 하나의 데이터 객체는 데이터 객체의 복수의 유형을 부가적으로 포함하는 것을 특징으로 하는 분산 컴퓨팅 시스템.
  9. 제 1항에 있어서, 상기 적어도 하나의 워커 프로세스는 워커 프로세스의 복수의 유형을 부가적으로 포함하는 것을 특징으로 하는 분산 컴퓨팅 시스템.
  10. 복수의 데이터 객체가 위치되는 주요한 가상 공유 메모리를 제공하는 단계;
    상기 가상 공유 메모리와 동기화되는 백업 가상 공유 메모리를 제공하는 단계;
    상기 데이터 객체에 상기 워커 프로세스의 미리 정해진 할당없이 상기 주요한 가상 공유 메모리 안에서 처리된 상기 복수의 데이터 객체의 하나에 워커 프로세스를 실행하는 단계를 포함하고,
    상기 주요한 가상 공유 메모리가 사용되어 질 수 없을 때, 상기 백업 가상 공유 메모리 안에서 처리된 상기 데이터 객체에 자동적으로 상기 워커 프로세스를 실행하는 데이터 프로세싱 방법.
  11. 제 10항에 있어서, 외부 네트워크로 부터 들어오는 데이터 패킷을 수용하고 상기 주요한 가상 공유 메모리에 대응하는 데이터 객체를 위치시키는 것을 부가적으로 포함하는 것을 특징으로 하는 데이터 프로세싱 방법.
  12. 제 10항에 있어서, 상기 주요한 가상 공유 메모리로 부터 데이터 객체를 제거하고 외부 네트워크에 대응하는 데이터 패킷을 전송하는 것을 부가적으로 포함하는 것을 특징으로 하는 데이터 프로세싱 방법.
  13. 제 10항에 있어서,
    상기 실행 단계는 상기 주요한 가상 공유 메모리로 부터 미리 정의된 유형을 갖는 데이터 객체를 잡는 단계;
    미리 정의된 기능에 따른 데이터 객체 프로세싱 단계; 및
    상기 주요한 가상 공유 메모리에 수정된 데이터 객체를 되돌려주는 단계를 부가적으로 포함하는 것을 특징으로 하는 데이터 프로세싱 방법.
  14. 제 10항에 있어서, 비휘발성 메모리 안에 상기 복수의 데이터 객체의 적어도 하나를 선택적으로 저장하는 것을 부가적으로 포함하는 것을 특징으로 하는 데이터 프로세싱 방법.
  15. 제 10항에 있어서, 상기 주요한 가상 공유 메모리와 상기 백업 가상 공유 메모리 사이에 상태 테이블을 전송함을 부가적으로 포함하는 것을 특징으로 하는 데이터 프로세싱 방법.
KR1020027013730A 2000-04-13 2001-04-10 매끄러운 실시간 응답 및 연속적인 가용성을 제공하는분산 컴퓨팅 시스템 집단화 모델 KR20030011301A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/548,525 2000-04-13
US09/548,525 US6735717B1 (en) 2000-04-13 2000-04-13 Distributed computing system clustering model providing soft real-time responsiveness and continuous availability

Publications (1)

Publication Number Publication Date
KR20030011301A true KR20030011301A (ko) 2003-02-07

Family

ID=24189209

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027013730A KR20030011301A (ko) 2000-04-13 2001-04-10 매끄러운 실시간 응답 및 연속적인 가용성을 제공하는분산 컴퓨팅 시스템 집단화 모델

Country Status (8)

Country Link
US (1) US6735717B1 (ko)
EP (1) EP1272932A2 (ko)
JP (1) JP2003531435A (ko)
KR (1) KR20030011301A (ko)
CN (1) CN1429365A (ko)
AU (1) AU2001253315A1 (ko)
BR (1) BR0110037A (ko)
WO (1) WO2001080005A2 (ko)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035880B1 (en) 1999-07-14 2006-04-25 Commvault Systems, Inc. Modular backup and retrieval system used in conjunction with a storage area network
US6658436B2 (en) 2000-01-31 2003-12-02 Commvault Systems, Inc. Logical view and access to data managed by a modular data and storage management system
US7003641B2 (en) 2000-01-31 2006-02-21 Commvault Systems, Inc. Logical view with granular access to exchange data managed by a modular data and storage management system
US7434219B2 (en) 2000-01-31 2008-10-07 Commvault Systems, Inc. Storage of application specific profiles correlating to document versions
US7318107B1 (en) * 2000-06-30 2008-01-08 Intel Corporation System and method for automatic stream fail-over
DE60237433D1 (de) * 2001-02-24 2010-10-07 Ibm Neuartiger massivparalleler supercomputer
US7076485B2 (en) * 2001-03-07 2006-07-11 The Mitre Corporation Method and system for finding similar records in mixed free-text and structured data
US7028217B2 (en) * 2001-06-04 2006-04-11 Lucent Technologies Inc. System and method of general purpose data replication between mated processors
US7203742B1 (en) * 2001-07-11 2007-04-10 Redback Networks Inc. Method and apparatus for providing scalability and fault tolerance in a distributed network
US7107298B2 (en) 2001-09-28 2006-09-12 Commvault Systems, Inc. System and method for archiving objects in an information store
WO2003046721A1 (en) * 2001-11-23 2003-06-05 Commvault Systems, Inc. Selective data replication system and method
US7113938B2 (en) 2002-02-14 2006-09-26 Gravic, Inc. Method of increasing system availability by splitting a system
US20030172106A1 (en) * 2002-02-14 2003-09-11 Iti, Inc. Method of increasing system availability by assigning process pairs to processor pairs
US8015303B2 (en) * 2002-08-02 2011-09-06 Astute Networks Inc. High data rate stateful protocol processing
GB0218707D0 (en) * 2002-08-12 2002-09-18 Mitel Knowledge Corp Role-based presence enabled service for communication system
US7814218B1 (en) 2002-10-17 2010-10-12 Astute Networks, Inc. Multi-protocol and multi-format stateful processing
US8151278B1 (en) 2002-10-17 2012-04-03 Astute Networks, Inc. System and method for timer management in a stateful protocol processing system
US7596621B1 (en) 2002-10-17 2009-09-29 Astute Networks, Inc. System and method for managing shared state using multiple programmed processors
US7802001B1 (en) 2002-10-18 2010-09-21 Astute Networks, Inc. System and method for flow control within a stateful protocol processing system
US7454569B2 (en) 2003-06-25 2008-11-18 Commvault Systems, Inc. Hierarchical system and method for performing storage operations in a computer network
US7539760B1 (en) * 2003-09-12 2009-05-26 Astute Networks, Inc. System and method for facilitating failover of stateful connections
US7536421B2 (en) * 2003-10-31 2009-05-19 Landmark Technology Partners, Inc. Intelligent client architecture computer system and method
US7546324B2 (en) 2003-11-13 2009-06-09 Commvault Systems, Inc. Systems and methods for performing storage operations using network attached storage
JP2005293315A (ja) * 2004-03-31 2005-10-20 Nec Corp データミラー型クラスタシステム及びデータミラー型クラスタシステムの同期制御方法
US20060015764A1 (en) * 2004-07-13 2006-01-19 Teneros, Inc. Transparent service provider
EP1766900A2 (en) * 2004-07-13 2007-03-28 Teneros, Inc. Transparent service provider
US7363366B2 (en) * 2004-07-13 2008-04-22 Teneros Inc. Network traffic routing
US7366846B2 (en) * 2005-01-14 2008-04-29 International Business Machines Corporation Redirection of storage access requests
WO2006076811A1 (en) * 2005-01-21 2006-07-27 Handshake Vr Inc. Haptic-visual scene development and deployment
US7440957B1 (en) * 2005-11-30 2008-10-21 At&T Intellectual Property Ii, L.P. Updates through views
WO2007140475A2 (en) * 2006-05-31 2007-12-06 Teneros, Inc. Extracting shared state information from message traffic
US7734669B2 (en) 2006-12-22 2010-06-08 Commvault Systems, Inc. Managing copies of data
US8396838B2 (en) 2007-10-17 2013-03-12 Commvault Systems, Inc. Legal compliance, electronic discovery and electronic document handling of online and offline copies of data
US7840839B2 (en) * 2007-11-06 2010-11-23 Vmware, Inc. Storage handling for fault tolerance in virtual machines
RU2470484C2 (ru) * 2007-12-17 2012-12-20 Телефонактиеболагет Лм Эрикссон (Пабл) Избыточность мобильных узлов базовой сети
US8065559B2 (en) * 2008-05-29 2011-11-22 Citrix Systems, Inc. Systems and methods for load balancing via a plurality of virtual servers upon failover using metrics from a backup virtual server
US8769048B2 (en) 2008-06-18 2014-07-01 Commvault Systems, Inc. Data protection scheduling, such as providing a flexible backup window in a data protection system
US8352954B2 (en) 2008-06-19 2013-01-08 Commvault Systems, Inc. Data storage resource allocation by employing dynamic methods and blacklisting resource request pools
US9128883B2 (en) 2008-06-19 2015-09-08 Commvault Systems, Inc Data storage resource allocation by performing abbreviated resource checks based on relative chances of failure of the data storage resources to determine whether data storage requests would fail
US8725688B2 (en) 2008-09-05 2014-05-13 Commvault Systems, Inc. Image level copy or restore, such as image level restore without knowledge of data object metadata
US20100070474A1 (en) 2008-09-12 2010-03-18 Lad Kamleshkumar K Transferring or migrating portions of data objects, such as block-level data migration or chunk-based data migration
US9600315B2 (en) * 2010-10-22 2017-03-21 Netapp, Inc. Seamless takeover of a stateful protocol session in a virtual machine environment
CN102480382B (zh) * 2010-11-29 2016-03-30 中兴通讯股份有限公司 在话务台系统中服务大客户客户端的方法及系统
US9021198B1 (en) 2011-01-20 2015-04-28 Commvault Systems, Inc. System and method for sharing SAN storage
US8849762B2 (en) 2011-03-31 2014-09-30 Commvault Systems, Inc. Restoring computing environments, such as autorecovery of file systems at certain points in time
US10157184B2 (en) 2012-03-30 2018-12-18 Commvault Systems, Inc. Data previewing before recalling large data files
US9633216B2 (en) 2012-12-27 2017-04-25 Commvault Systems, Inc. Application of information management policies based on operation with a geographic entity
US9459968B2 (en) 2013-03-11 2016-10-04 Commvault Systems, Inc. Single index to query multiple backup formats
US9298553B2 (en) * 2014-02-08 2016-03-29 International Business Machines Corporation Methods, apparatus and system for selective duplication of subtasks
US10169121B2 (en) 2014-02-27 2019-01-01 Commvault Systems, Inc. Work flow management for an information management system
US9648100B2 (en) 2014-03-05 2017-05-09 Commvault Systems, Inc. Cross-system storage management for transferring data across autonomous information management systems
US20150263900A1 (en) * 2014-03-11 2015-09-17 Schlumberger Technology Corporation High performance distributed computing environment particularly suited for reservoir modeling and simulation
US9823978B2 (en) 2014-04-16 2017-11-21 Commvault Systems, Inc. User-level quota management of data objects stored in information management systems
US9740574B2 (en) 2014-05-09 2017-08-22 Commvault Systems, Inc. Load balancing across multiple data paths
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9444811B2 (en) 2014-10-21 2016-09-13 Commvault Systems, Inc. Using an enhanced data agent to restore backed up data across autonomous storage management systems
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US10275376B2 (en) * 2016-03-02 2019-04-30 Western Digital Technologies, Inc. Efficient cross device redundancy implementation on high performance direct attached non-volatile storage with data reduction
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US10838821B2 (en) 2017-02-08 2020-11-17 Commvault Systems, Inc. Migrating content and metadata from a backup system
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US10891069B2 (en) 2017-03-27 2021-01-12 Commvault Systems, Inc. Creating local copies of data stored in online data repositories
US10776329B2 (en) 2017-03-28 2020-09-15 Commvault Systems, Inc. Migration of a database management system to cloud storage
US11074140B2 (en) 2017-03-29 2021-07-27 Commvault Systems, Inc. Live browsing of granular mailbox data
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US10795927B2 (en) 2018-02-05 2020-10-06 Commvault Systems, Inc. On-demand metadata extraction of clinical image data
US10761942B2 (en) 2018-03-12 2020-09-01 Commvault Systems, Inc. Recovery point objective (RPO) driven backup scheduling in a data storage management system using an enhanced data agent
US10789387B2 (en) 2018-03-13 2020-09-29 Commvault Systems, Inc. Graphical representation of an information management system
US10860443B2 (en) 2018-12-10 2020-12-08 Commvault Systems, Inc. Evaluation and reporting of recovery readiness in a data storage management system
US11308034B2 (en) 2019-06-27 2022-04-19 Commvault Systems, Inc. Continuously run log backup with minimal configuration and resource usage from the source machine

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4710926A (en) * 1985-12-27 1987-12-01 American Telephone And Telegraph Company, At&T Bell Laboratories Fault recovery in a distributed processing system
US5177744A (en) * 1990-09-04 1993-01-05 International Business Machines Corporation Method and apparatus for error recovery in arrays
US5157663A (en) * 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system
EP0541281B1 (en) * 1991-11-04 1998-04-29 Commvault Systems, Inc. Incremental-computer-file backup using signatures
US5812748A (en) * 1993-06-23 1998-09-22 Vinca Corporation Method for improving recovery performance from hardware and software errors in a fault-tolerant computer system
US5978565A (en) * 1993-07-20 1999-11-02 Vinca Corporation Method for rapid recovery from a network file server failure including method for operating co-standby servers
US5701482A (en) * 1993-09-03 1997-12-23 Hughes Aircraft Company Modular array processor architecture having a plurality of interconnected load-balanced parallel processing nodes
US5664090A (en) * 1993-12-15 1997-09-02 Kabushiki Kaisha Toshiba Processor system and method for maintaining internal state consistency between active and stand-by modules
JPH07262034A (ja) * 1994-03-18 1995-10-13 Fujitsu Ltd データ引き継ぎシステム
US5621885A (en) * 1995-06-07 1997-04-15 Tandem Computers, Incorporated System and method for providing a fault tolerant computer program runtime support environment
US5802265A (en) * 1995-12-01 1998-09-01 Stratus Computer, Inc. Transparent fault tolerant computer system
US5796934A (en) * 1996-05-31 1998-08-18 Oracle Corporation Fault tolerant client server system
US5867657A (en) 1996-06-06 1999-02-02 Microsoft Corporation Distributed scheduling in a multiple data server system
US6085217A (en) * 1997-03-28 2000-07-04 International Business Machines Corporation Method and apparatus for controlling the assignment of units of work to a workload enclave in a client/server system
US6292905B1 (en) 1997-05-13 2001-09-18 Micron Technology, Inc. Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure
US6490610B1 (en) * 1997-05-30 2002-12-03 Oracle Corporation Automatic failover for clients accessing a resource through a server
JPH1153326A (ja) 1997-07-30 1999-02-26 Internatl Business Mach Corp <Ibm> 分散処理システム、クライアントノード、サーバノードおよび分散処理方法
JP3901806B2 (ja) 1997-09-25 2007-04-04 富士通株式会社 情報管理システム及び二次サーバ
US6195760B1 (en) * 1998-07-20 2001-02-27 Lucent Technologies Inc Method and apparatus for providing failure detection and recovery with predetermined degree of replication for distributed applications in a network
US6253230B1 (en) 1998-09-22 2001-06-26 International Business Machines Corporation Distributed scalable device for selecting a server from a server cluster and a switched path to the selected server
US6247141B1 (en) * 1998-09-24 2001-06-12 Telefonaktiebolaget Lm Ericsson (Publ) Protocol for providing replicated servers in a client-server system
US6378128B1 (en) 1998-10-08 2002-04-23 Microsoft Corporation System and method for dynamically modifying an install-set
US6347397B1 (en) 1999-03-29 2002-02-12 International Business Machines Corporation System, method, and program for providing an object-oriented install architecture
US6502134B1 (en) * 1999-05-05 2002-12-31 Nextpage, Inc. Tuple-based information space for data exchange between applications
KR20010037622A (ko) * 1999-10-19 2001-05-15 정선종 분산 시스템에서 메모리 체크포인트를 이용한 독립 체크포인팅 방법

Also Published As

Publication number Publication date
CN1429365A (zh) 2003-07-09
BR0110037A (pt) 2003-07-08
EP1272932A2 (en) 2003-01-08
JP2003531435A (ja) 2003-10-21
WO2001080005A3 (en) 2002-05-16
WO2001080005A2 (en) 2001-10-25
US6735717B1 (en) 2004-05-11
AU2001253315A1 (en) 2001-10-30

Similar Documents

Publication Publication Date Title
KR20030011301A (ko) 매끄러운 실시간 응답 및 연속적인 가용성을 제공하는분산 컴퓨팅 시스템 집단화 모델
US20040034807A1 (en) Roving servers in a clustered telecommunication distributed computer system
US10862965B2 (en) System and method for topics implementation in a distributed data computing environment
Nightingale et al. Flat datacenter storage
US6336147B1 (en) Method and apparatus for managing connections for communication among objects in a distributed object system
US8261020B2 (en) Cache enumeration and indexing
US8108612B2 (en) Location updates for a distributed data store
US8117156B2 (en) Replication for common availability substrate
US7634497B2 (en) Technique for improving scalability and portability of a storage management system
US20050283658A1 (en) Method, apparatus and program storage device for providing failover for high availability in an N-way shared-nothing cluster system
Srinivasan et al. Aerospike: Architecture of a real-time operational dbms
US11550820B2 (en) System and method for partition-scoped snapshot creation in a distributed data computing environment
US10860378B2 (en) System and method for association aware executor service in a distributed computing environment
US11269684B1 (en) Distributed streaming system supporting real-time sliding windows
US10133489B2 (en) System and method for supporting a low contention queue in a distributed data grid
US10798146B2 (en) System and method for universal timeout in a distributed computing environment
Islam et al. Transaction management with tree-based consistency in cloud databases
Shahapure et al. Replication: A technique for scalability in cloud computing
US11500701B1 (en) Providing a global queue through replication
Gankevich et al. Novel approaches for distributing workload on commodity computer systems
US11080113B1 (en) Fifo queue replication
US11334246B2 (en) Nanoservices—a programming design pattern for managing the state of fine-grained object instances
Helland Fail-fast Is Failing... Fast! Changes in compute environments are placing pressure on tried-and-true distributed-systems solutions.
US10871971B2 (en) Method, electronic device and computer program product for dual-processor storage system
Bindschaedler An Architecture for Load Balance in Computer Cluster Applications

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid