KR100847610B1 - 다수의 서비스 포인트를 갖는 자율 컴퓨팅에서의 동적으로구성가능한 고장 내성 - Google Patents

다수의 서비스 포인트를 갖는 자율 컴퓨팅에서의 동적으로구성가능한 고장 내성 Download PDF

Info

Publication number
KR100847610B1
KR100847610B1 KR1020067000153A KR20067000153A KR100847610B1 KR 100847610 B1 KR100847610 B1 KR 100847610B1 KR 1020067000153 A KR1020067000153 A KR 1020067000153A KR 20067000153 A KR20067000153 A KR 20067000153A KR 100847610 B1 KR100847610 B1 KR 100847610B1
Authority
KR
South Korea
Prior art keywords
processor
processors
cluster
clusters
distance
Prior art date
Application number
KR1020067000153A
Other languages
English (en)
Other versions
KR20060063870A (ko
Inventor
마하라즈 무커지
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20060063870A publication Critical patent/KR20060063870A/ko
Application granted granted Critical
Publication of KR100847610B1 publication Critical patent/KR100847610B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • 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
    • 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
    • G06F15/177Initialisation or configuration control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Abstract

적어도 하나의 프로세서 클러스터를 갖는 시스템을 제공하도록 복수의 프로세서(2)를 갖는 시스템(1)을 구성하는 방법이 기술되어 있으며, 각각의 클러스터는 하나의 서비스 포인트(10)를 갖는다. 시스템 내에서의 각각의 프로세서부터 다른 프로세서까지의 거리가 계산된다(302). 이어서, 복수의 전체 거리가 계산되고(303), 여기서 각각의 전체 거리는 하나의 프로세서와 연관되어 있다. 복수의 전체 거리로부터 최소 전체 거리가 결정된다(304). 하나의 프로세서가 서비스 포인트가 되도록 할당되고, 이 프로세서는 최소 전체 거리와 연관되어 있는 프로세서이다.
자율 컴퓨팅, 프로세서 클러스터, 서비스 포인트, 고장 내성

Description

다수의 서비스 포인트를 갖는 자율 컴퓨팅에서의 동적으로 구성가능한 고장 내성{DYNAMICALLY CONFIGURABLE FAULT TOLERANCE IN AUTONOMIC COMPUTING WITH MULTIPLE SERVICE POINTS}
본 발명은 자율 컴퓨팅(autonomic computing)에 관한 것으로서, 보다 상세하게는 효율적이고 고장 내성이 있으며 자가 구성(self-configuring)적 및 자가 치유(self-healing)적인 동작을 위해 시스템 내의 프로세서들을 클러스터링하고 또 서비스 포인트를 할당하는 방법에 관한 것이다.
일반적으로 자가 모니터링(self-monitoring)을 하고 자가 구성을 하며 고장 내성이 있고(fault-tolerant) 또 자가 치유를 하는 멀티프로세서 컴퓨팅 시스템의 설계를 말하는 것인 자율 컴퓨팅은 중요한 이론적 및 실제적 관심의 주제이다. 성공적인 자율 컴퓨팅 시스템을 구축함에 있어서의 한가지 중요한 고려사항은 시스템의 자가 치유 메카니즘을 향상시키기 위해 시스템의 고장 내성(fault tolerance)을 그 자체 내에 내장하는 것이다. 자가 치유 메카니즘이라면 고장의 경우에 시스템이 즉각 고장의 특성을 검지하고 그 고장을 교정하려고 시도해야만 한다. 시스템이 고장을 교정할 수 없는 경우, 시스템은 고장이 있는 프로세서의 작업을 하나 이상의 다른 프로세서에 할당함으로써 그에 따른 성능 열화를 최소화하게 된다. 일 반적인 컴퓨터 아키텍처에서, 이러한 고장 검지 및 관리 작업은 프로세서들 중 하나, 즉 마스터 프로세서에 의해 행해진다.
자율 컴퓨팅 시스템을 구성하는 프로세서들은 지리적으로 넓은 지역에 걸쳐 분산되어 있을 수 있다. 게다가, 프로세서들은 많은 서로 다른 유형의 오퍼레이팅 시스템을 실행하고 또 분산 네트워크에 의해 연결되어 있는 많은 여러가지 유형일 수 있다. 여러가지 프로세서들은 종종 지리적으로 클러스터를 이루어 배열되어 있다. 이러한 배열에서는 전체 시스템의 고장 내성을 관리하는 하나의 마스터 프로세서를 가질 수 없다. 따라서, 프로세서들 중 어떤 것들이 고장 관리를 하는 것이 유리하다. 이들 프로세서를 본 명세서에서 서비스 포인트(service point)라고 한다.
서비스 포인트를 이용하는 일반적인 시스템이 도 1a에 도시되어 있다. 시스템(1)은 몇개의 상호연결된 프로세서(2)를 포함하며, 이들 프로세서 중 하나가 서비스 포인트(10)가 되도록 할당되어 있다. 일반적으로, 서비스 포인트는 다른 프로세서들까지 가장 가까운 거리를 갖는 프로세서가 되도록 선택된다. 용어 "거리(distance)"는 본 명세서에서 프로세서들 간에 소요되는 통신 시간의 척도로서 사용된다. 서비스 포인트는 그 자신의 통상의 컴퓨팅 부하 이외에 이하의 몇가지 업무, (1) 시스템 내에서 다른 곳에 있는 고장난 프로세서를 검지하는 일, (2) 고장난 프로세서의 작업을 다른 프로세서들에 재할당함으로써 고장난 프로세서를 대체하는 일, (3) 다른 프로세서들에 의해 수행되는 작업들을 모니터링하는 일, 및 (4) 최적 성능을 보장하기 위해 시스템 상의 부하를 분산시키는 일을 갖는다. 도 1b 는 프로세서(3)가 서비스 포인트(10)에 의해 검지된 고장을 가지고 있다가 시스템으로부터 제거되는 상황을 나타낸 것으로서, 시스템의 나머지는 계속하여 동작한다.
여분의 계산 능력을 사용하는 고장 내성(fault tolerance)이 얼마 동안 사용되었지만, 현재의 자율 컴퓨팅 시스템의 자가 치유 및 자가 구성 특징은 몇가지 새로운 문제를 야기하며, 예를 들어 이하의 것들이 있다.
(1) 자율 시스템의 자가 구성가능(self-configurable) 및 자가 조정가능(self-adjustable) 특징은 프로세서들 전부(원거리에 위치한 것을 포함함)가 균일하고 또 상호교환가능한 경우에 훨씬 더 잘 동작한다. 이것은 서비스 포인트가 특수한 프로세서이어서는 안되고 오히려 여분의 부하를 처리하는 일련의 동일한 프로세스로부터 선택되어야만 함을 의미한다.
(2) 보통, 병렬 및 확장가능 컴퓨터 아키텍처에서, 서비스 포인트의 수는 고정되어 있으며 활성 프로세서(active processor)의 수의 비율로서 지정될 수 없다. 그렇지만, 너무 적은 서비스 포인트를 가지면 자가 치유 메카니즘이 너무 느려지게 하고, 너무 많은 서비스 포인트를 가지면 시스템의 전체 성능을 떨어뜨린다.
(3) 자율 컴퓨팅 시스템이 동적 환경에서 동작하기 때문에, 시스템 성능을 최적화하기 위해 클러스터링 및 서비스 포인트 할당을 동적으로 최적화하는 것이 중요하다. 유의할 점은 주문형 컴퓨팅 환경(on-demand computing environment)에서 프로세서의 총수(및 클러스터의 구성 및 서비스 포인트의 할당)는 컴퓨팅 부하에 따라 항상 변한다는 것이다.
자율 컴퓨팅 시스템의 자가 구성 환경에서, 일반적으로 서비스 포인트를 사전할당할 수는 없다. 따라서, 상황의 요건에 따라, 임의의 현재의 프로세서가 서비스 포인트가 되도록 동적으로 할당될 수 있다. 반면에, 너무 많은 서비스 포인트를 생성하면 시스템에 대한 계산 부하가 커지게 된다. 따라서, 서비스 포인트의 수를 동작 중인 프로세서의 어떤 비율로 제한하는 것이 바람직하다.
따라서, 현재의 문제점은, 분산 및 동적 환경에서 일련의 프로세서, 및 동작 중인 프로세서의 총수에 대한 서비스 포인트의 최대수의 비의 분수값을 나타내는 수가 주어진 경우, 서비스 포인트들 및 각각의 서비스 포인트가 서비스하는 프로세서들을 결정하는 것이다.
클러스터링의 아이디어는 많은 다른 분야에 성공적으로 적용되었다. 그렇지만, 상기한 응용 분야들 모두에서, 클러스터의 수는 사전에 지정될 수 없다. 여분의 서비스 포인트에 대한 오버헤드가 항상 한계가 있도록 클러스터의 수에 상한을 두는 것이 필요하다. 고정된 한계를 갖는 클러스터링의 문제점은 일반적으로 처치하기 어려운 것으로 알려져 있다, 즉 효율적인 최적의 해결 방안이 존재하지 않는다. 그렇지만, 차선책이지만 효율적인 해결 방안이 여전히 필요하다. 보다 상세하게는, 시스템의 최적 성능(자가 구성 및 자가 치유를 포함함)을 보장하기 위해 시스템 내의 여러가지 프로세서들을 클러스터에 동적으로 할당하고 또 각 클러스터 내에 서비스 포인트들을 할당하는 효율적인 절차가 필요하다.
본 발명은 적어도 하나의 프로세서 클러스터 - 각각의 클러스터는 하나의 서비스 포인트를 가짐 - 를 갖는 시스템을 제공하도록 복수의 프로세서를 갖는 시스템을 구성하는 방법을 제공함으로써 상기한 필요성을 해소한다. 본 발명에 따르면, 이것은 시스템 내의 각각의 프로세서로부터 다른 프로세서까지의 거리를 계산하는 단계에 의해 행해진다. 이어서, 복수의 전체 거리가 계산되고, 각각의 전체 거리는 하나의 프로세서와 연관되어 있다. 최소 전체 거리가 복수의 전체 거리로부터 결정된다. 하나의 프로세서가 서비스 포인트가 되도록 할당되고, 이 프로세서는 최소 전체 거리와 연관되어 있는 프로세서이다.
본 발명의 다른 실시예에 따르면, 본 방법은 시스템을 복수의 클러스터로 분할하는 단계를 더 포함한다. 이 분할 프로세스는, 각각의 프로세서와 연관된 전체 거리에 따라 프로세서들을 정렬하는 단계, 각각의 프로세서를 2개의 클러스터 중 하나에 할당하는 단계, 각각의 클러스터 내의 프로세서들에 대한 최소 전체 거리를, 그 클러스터 내의 프로세서들과 연관된 복수의 전체 거리에 따라서 결정하는 단계, 및 각각의 클러스터에 대한 서비스 포인트로서 상기 클러스터 내에서 최소 전체 거리와 연관되어 있는 프로세서를 할당하는 단계를 포함할 수 있다.
본 발명의 또다른 실시예에 따르면, 2개의 클러스터 중 하나는 2개의 클러스터로 세분됨으로써 시스템을 3개의 클러스터로 분할한다. 3개의 클러스터 내의 프로세서들과 연관된 복수의 전체 거리에 따라 이들 3개의 클러스터 각각 내의 프로세서들에 대해 최소 전체 거리가 결정된다. 최소 전체 거리에 따라 프로세서들이 3개의 클러스터에 할당되고, 그 클러스터에 대한 서비스 포인트로서 각각의 클러스터 내에서 최소 전체 거리와 연관되어 있는 프로세서가 할당된다.
본 발명의 부가의 실시예에 따르면, 프로세서들은 서로 다른 유형일 수 있고, 프로세서들은 그 유형에 따라 클러스터에 할당된다.
본 시스템은 프로세서가 시스템에 부가 또는 시스템으로부터 제거될 때 동적으로 구성될 수 있다. 게다가, 시스템을 분할하는 단계는 프로세서가 시스템으로부터 제거될 때 동적으로 변경될 수 있다.
각각의 클러스터에서, 서비스 포인트가 시스템으로부터 제거되는 경우 서비스 포인트의 기능을 떠맡기 위해, 다른 프로세서가 백업 서비스 포인트로서 할당될 수 있다.
본 발명의 다른 실시예에 따르면, 적어도 하나의 프로세서 클러스터 - 각각의 클러스터는 하나의 서비스 포인트를 가짐 - 를 갖는 시스템을 제공하도록 복수의 프로세서를 갖는 시스템을 구성하는 방법을 수행하는 명령어들을 저장하고 있는 컴퓨터 판독가능 저장 매체가 제공된다. 이 방법은 시스템 내의 각각의 프로세서로부터 다른 프로세서까지의 거리를 계산하는 단계, 복수의 전체 거리를 계산하는 단계 - 각각의 전체 거리는 하나의 프로세서와 연관되어 있음 -, 복수의 전체 거리로부터 최소 전체 거리를 결정하는 단계, 및 서비스 포인트로서 최소 전체 거리와 연관되어 있는 프로세서를 할당하는 단계를 포함한다.
도 1a는 서비스 포인트를 갖는 시스템에서의 프로세서들의 일반적인 배열을 나타낸 도면.
도 1b는 고장난 프로세서가 시스템으로부터 제거된 후의 도 1a의 시스템을 나타낸 도면.
도 2는 본 발명에 따라 프로세서들 간의 거리가 결정되는 다수의 프로세서들을 갖는 시스템을 나타낸 도면.
도 3a는 본 발명에 따라 서비스 포인트를 갖는 클러스터들로 구성되어질 다수의 프로세서를 갖는 시스템을 나타낸 도면.
도 3b는 본 발명에 따라 한 프로세서로부터 다른 프로세서들까지의 전체 거리를 계산하는 절차를 개략적으로 나타낸 도면.
도 3c는 본 발명의 일 실시예에 따라 알고리즘(N,1)에서의 단계들을 상세히 나타낸 플로우차트.
도 3d는 2개의 클러스터로 세분된 시스템을 개략적으로 나타낸 도면.
도 3e는 본 발명의 일 실시예에 따라 알고리즘(N,2)에서의 단계들을 상세히 나타낸 플로우차트.
도 3f-1은 본 발명의 일 실시예에 따라 클러스터가 세분되어 있는 시스템을 개략적으로 나타낸 도면.
도 3f-2는 시스템에서의 클러스터들의 대안적인 세분을 개략적으로 나타낸 도면.
도 3g는 본 발명의 일 실시예에 따라 알고리즘(N,p)에서의 단계들을 상세히 나타낸 플로우차트.
도 3h는 도 3a의 시스템에서 클러스터를 구성하고 서비스 포인트를 할당하는 프로세스의 결과를 나타낸 도면.
도 4a는 본 발명의 다른 실시예에 따라 서비스 포인트를 갖는 클러스터들로 구성되어질 서로 다른 유형의 다수의 프로세서를 갖는 시스템을 나타낸 도면.
도 4b는 도 4a의 시스템에서 클러스터를 구성하고 서비스 포인트를 할당하는 프로세스의 결과를 나타낸 도면.
도 5a는 한 프로세서가 시스템으로부터 제거되는 경우의 다수의 프로세서를 갖는 시스템을 나타낸 도면.
도 5b는 프로세서가 제거된 후의 도 5a의 시스템을 나타낸 도면.
도 5c는 하나의 프로세서가 시스템에 부가되어지는 경우의 다수의 프로세서를 갖는 시스템을 나타낸 도면.
도 5d는 하나의 프로세서가 시스템으로부터 제거되어지는 경우의 2개의 클러스터를 갖는 시스템을 나타낸 도면.
도 5e는 프로세서가 제거된 후에 클러스터가 재구성된 경우의 도 5d의 시스템을 나타낸 도면.
도 6는 클러스터의 서비스 포인트가 시스템으로부터 제거된 경우 서비스 포인트를 각각 갖는 클러스터들로 구성된 다수의 프로세서를 갖는 시스템을 나타낸 도면.
이하의 설명에서, 시스템이 일련의 N개의 프로세서 c1, c2,...,cN(도 2 참조)을 갖는 것으로 가정한다. d(i,i)=0 이고 d(i,j)가 삼각형 부등식, d(i,j)+d(j,k)≥d(i,k)을 만족시키도록, 프로세서 ci 및 cj 간의 거리 함수 d(i,j) 가 정의된다. 프로세서 간의 통신의 관점에서, 이것은 j번째 프로세서를 통한 통신이 i번째와 k번째 프로세서 간의 직접 통신보다 더 느려야만 함을 의미한다. 거리 d(i,j)는 통신 네트워크의 속도, 데이터 볼륨 및 데이터 교환율, 및 프로세서의 지리적 위치의 함수이다.
분수값 f는 서비스 포인트로서 기능하는 여분의 부하를 떠맡을 수 있는 N개의 프로세서의 최대 비율로서 정의된다. 그러면, 숫자 p = N * f는 서비스 포인트로서 기능하는 프로세서의 최대 수를 나타낸다. 따라서, 시스템은 최대 p개의 클러스터를 가질 수 있다.
본 발명에 따르면, 다음과 같이 복잡도를 증가시키는 몇가지 경우에서, p개의 클러스터를 갖는 N개의 프로세서들의 시스템에서 클러스터 및 서비스 포인트를 할당하는 방법이 제공된다.
경우 1: 균일한 프로세서들의 정적 시스템.
프로세서 c1, c2,..., cN의 시스템은 p개의 서로 다른 클러스터로 분할되고, 클러스터에 속하는 모든 프로세서의 클러스터의 대응하는 서비스 포인트까지의 최대 거리의 합이 최소가 되도록 서비스 포인트를 갖는 각각의 클러스터가 식별된다.
예를 들어, 도 3a는 p=4개의 클러스터로 분할되어질 N=20개의 프로세서를 갖는 시스템을 나타낸 것이다. 이 예에서, 비율 f는 따라서 1/5이고, 실제로 f는 훨씬 더 작으며, 일반적으로 1/50 내지 1/100 범위에 있다.
본 방법은 먼저 p=1이고 p=2인 간단한 경우에 대해, 즉 1개 및 2개의 클러스터에 대해 기술한다. 이들 2가지 경우는 비자명한 경우(nontrivial case)의 기초 를 형성한다.
p=1인 경우, 즉 단일의 클러스터의 경우, 이하의 알고리즘이 사용된다.
알고리즘(N,1):
i=1 내지 i=N에 대해:
d_i=SUM{d(i,j)}로 설정함(단, j=1 내지 N 이고 j ≠ i);
i = 1 내지 N에 대해 d_i가 가장 작도록 하는 i를 출력함.
도 3b는 프로세서 c1에 대한 거리 d(1,j)를 계산하는 N=10개의 프로세서를 갖는 시스템을 나타낸 것이다. 거리 d(1,2), d(1,3),..., d(1,10)의 합이 프로세서 c1에 대한 전체 거리(total distance)이다.
도 3c는 알고리즘(N,1)을 설명하는 플로우차트이다. 첫번째 프로세서(단계 301에서 i=1)부터 시작하여, 그 프로세서와 다른 프로세서들 간의 거리가 계산된다(단계 302). 이들 거리의 합이 클러스터 내의 i번째 프로세서에 대한 전체 거리이다(단계 303). 전체 거리가 최소인(단계 304) 프로세서가 클러스터에 대한 서비스 포인트가 된다.
p=2의 경우, 즉 2개의 클러스터인 경우, 알고리즘(N,1)의 방법이 반복적으로 사용되는 이하의 알고리즘이 사용된다. 최초 단계에서, N개의 프로세서의 전체 세트가 단일의 클러스터로서 취급된다, 즉 N개의 프로세서 각각이 그 프로세서로부터 다른 프로세스들까지의 거리의 합을 나타내는 전체 거리를 갖는다. i번째 프로세서에 대한 이 거리는 d(i,1)로서 표기한다. N개의 프로세서는 이어서 이 거리에 따라 정렬될 수 있다.
알고리즘(N,2):
1. 거리 d(i,1)에 따라 프로세서들을 정렬함.
2. 2개의 클러스터 L1 및 L2를 초기화함. 단, L1은 N개의 프로세서 전부를 포함하고, L2는 0개의 프로세서를 포함한다.
2.i 알고리즘(N,1)을 사용하여 L1에 대한 서비스 포인트 및 그의 가장 작은 거리를 계산함
2.ii d_0를 그 거리로 초기화함.
3. 프로세서 c1, c2,..., cN을 그의 정렬된 순서로 스캔함.
3.i 각각의 프로세서 c_i에 대해, 이를 L1으로부터 제거하고 이를 L2에 배치함.
3.ii L1 및 L2 둘다에 대한 서비스 포인트 및 거리 d_1i 및 d_2i의 최소합을 계산함
3.iii 거리의 합 d_i = d_1i + d_2i를 설정함.
4. i = 1 내지 N에 대해 d_i가 최소가 되도록 거리 di를 선택하고 그 거리에 대한 클러스터 L1 및 L2를 출력함.
도 3d는 2개의 클러스터 L1 및 L2로 분할된 N=10개의 프로세서를 갖는 시스템(30)을 개략적으로 나타낸 것이다. 도 3e는 알고리즘(N,2)을 설명하는 플로우차트를 나타낸 것이다. 전술한 바와 같이, 알고리즘(N,1)을 사용하여 시스템 내의 각 프로세서에 대한 전체 거리가 먼저 계산되고(단계 321), 이어서 프로세서들은 이 거리에 따라 정렬된다(단계 322). 클러스터의 초기 할당에서, 10개의 프로세서 모두는 클러스터 L1에 있고, 클러스터 L2에는 프로세서가 없다. 초기의 최소 전체 거리 d_0는 따라서 알고리즘(N,1)을 사용하여 이전에 계산된 것과 동일하다(단계 323). 각각의 프로세서[알고리즘(N,1)을 사용하여 계산된 거리에 의해 가장 작은 거리부터 시작하여 정렬된 순서로 진행함]는 성공적으로 클러스터 L1에서 클러스터 L2로 이동되고(단계 324), 각각의 클러스터에 대한 최소 전체 거리가 각각의 반복에 대해 알고리즘(H,1)을 사용하여 계산된다(단계 325). i번째 반복에서, 최소 거리는 클러스터 L1에 대해 d_1i로 표기되고 클러스터 L2에 대해 d_2i로 표기된다. 이어서, 합성된 최소 거리 d_i = d_1i + d_2i가 계산된다. N번의 반복 중 하나에서, d_i의 값이 최소가 되고, 이 값이 대응하는 클러스터 할당을 갖는 시스템에 대한 전체 거리로서 선택된다(단계 327).
p개의 클러스터의 비자명한 경우에, 상기 알고리즘(N,2)이 반복적으로 사용된다. 각각의 단계에서, 생성된 클러스터들 각각은 알고리즘(N,2)을 사용하여 2개의 부분으로 분할되고, 전체 거리 함수를 최소화하는 클러스터 할당이 식별된다.
예를 들어, 도 3d에 도시된 N=10개의 프로세서들의 시스템은 알고리즘(N,2)가 수행될 때 2개의 클러스터 L1 및 L2로 분할된다. 이어서, 그 다음 단계에서, 클러스터 L1은 2개의 클러스터 L1.1 및 L1.2로 분할되지만 L2는 그대로 있다(도 3f-1). 이어서, 전체 거리(d2.1로 표기함)가 L1.1, L2.1 및 L2의 클러스터 거리의 합으로서 계산된다. 이어서, 클러스터 L2가 2개의 클러스터 L2.1 및 L2.2로 분할되고, L1은 그대로 있다(도 3f-2). 다시 전체 거리(이제 d2.2로 표기됨)가 L1, L2.1 및 L2.2의 클러스터 거리의 합으로서 계산된다. d2.1 및 d2.2 중 더 작은 것 이 그에 대응하는 클러스터 구성과 함께 선택된다. 따라서, D2.1<d2.2인 경우, 클러스터 L1.1, L1.2 및 L2가 선택된다. 세분된 L1.1 및 L1.2는 각각 L1 및 L3으로 이름이 변경되고, 이 클러스터 세트에 대한 전체 거리 d3를 d2.1과 같게 설정한다.
동일한 방식으로, 임의의 반복적 단계 q+1(단, q=2,..., N-1임)에서, 기존의 클러스터 L1,..., L_q가 있다. 이어서, 클러스터 L1,..., L_q 각각을 한번에 하나씩 다른 클러스터들 모두는 그대로 두면서 2개의 부분 L_{j.1} 및 L_{j.2}(단, j=1,..., q임)로 분할함으로써 q+1개 클러스터의 세트가 q개 생성된다. 이어서, 이들 클러스터 각각에 대해 거리 d_{q.1},..., {d_{q.q}}가 계산된다. 이들 거리 중 가장 작은 거리가 대응하는 클러스터 구성과 함께 선택된다. d_{m,j} = min{d_{q.1},..., {d_{q.q}}}인 것으로 가정한다. 이어서, 대응하는 클러스터 {L1, L2,..., Lm.1, Lm.2,..., Lq}가 선택된다. 이어서, 거리 d_{q+1}이 d_{m,j}와 같게 설정되고, Lm = Lm.1이고 L_{q+1} = Lm.2이다. 이 프로세스는 q+1개의 클러스터의 세트를 산출하며 각각의 클러스터는 그 자신의 서비스 포인트를 갖는다.
p개의 클러스터에 대한 알고리즘은 다음과 같다.
알고리즘(N,p):
0. 알고리즘(N,2)을 사용하여 일련의 프로세서를 2개의 클러스터로 분할함.
1. i=2 내지 p에 대해:
1.1 j=1 내지 i에 대해
1.1.1 알고리즘(N,2)을 사용하여 Lj를 Lj.1 및 Lj.2로 분할함
1.1.2 클러스터들의 전체 거리를 합산하고 이를 d_{i.j}라고 함
1.2 d_{i+1} = min{d_{i,j} | 단, j=1 내지 i}
최소값이 발생하는 j의 값을 j=m이라고 한다.
1.3 Lm = Lm.1로 설정함
1.4 L_{i+1} = Lm.2로 설정함
2. 결과 L1,..., Lp를 반환함
도 3g는 상기한 알고리즘(N,p)에 대한 플로우차트를 나타낸 것이다. 본 시스템은 먼저 알고리즘(N,2)을사용하여 2개의 클러스터로 분할된다(단계 351). 이어서, 알고리즘(N,2)을 사용하여 j번째 클러스터가 2개로 분할되는 반복이 수행되고(단계 352), 모든 클러스터(2개의 세분된 클러스터를 포함함)에 대한 전체 거리가 계산된다(단계 353). 이들 전체 거리의 최소값을 찾아내고(단계 354), 그에 대응하는 클러스터 구성이 선택된다(단계 355). 이어서, 도 3f-1 및 도 3f-2를 참조하여 전술한 바와 같이 클러스터의 이름이 변경된다(단계 356). 클러스터는 p개의 클러스터의 세트가 발견될 때까지 재분할된다(단계 357). 이어서, 시스템은 p개의 클러스터의 세트를 가지며, 그 각각은 하나의 서비스 포인트를 갖는다. N=20개의 프로세서 및 p=4개의 클러스터에 대한, 이 프로세스의 결과가 도 3h(도 3a와 비교)에 개략적으로 도시되어 있다. 시스템(30)은 각자의 서비스 포인트(311, 312, 313, 314)를 갖는 4개의 클러스터(31, 32, 33, 34)로 분할된다.
경우 2: 비균일 프로세서들의 정적 시스템.
도 4a는 프로세서들이 모두 균일하지는 않지만 그의 오퍼레이팅 시스템 및/또는 기술에 따라 사전 그룹화되어 있고 또 한 유형의 프로세서에 대한 서비스 포 인트가 동일한 유형이어야만 하는 시스템(40)을 개략적으로 나타낸 것이다. 시스템(40)에서, 프로세서들은 2가지 유형(41, 42)으로 되어 있다. 서로 다른 유형의 프로세서가 TCP/IP 등의 프로세서 독립적인 프로토콜을 실행하는 네트워크를 통해 서로 통신할 수 있음을 잘 알 것이다. 예를 들어, 자율 컴퓨팅 환경은 인텔 칩 상에서 실행되는 일련의 Windows 기반 프로세서 및 AIX를 실행하는 일련의 서버를 사용하여 구축될 수 있다. 인텔 시스템에 대한 서비스 포인트는 인텔 시스템이어야만 하고, AIX 시스템에 대한 서비스 포인트는 AIX 기반 시스템이어야만 한다. 따라서, 시스템(40)은 클러스터 내의 모든 프로세서들이 동일한 유형이 되도록 클러스터들로 분할되어야만 한다.
이 경우에 대한 해결방안은 상기한 경우 1의 해결방안으로부터 얻을 수 있다. m가지 서로 다른 유형의 프로세서가 있고 또 이들 서로 다른 유형 각각에 대한 서비스 포인트가 그 자신의 종류로부터만 올 수 있다고 가정하자. 이 경우, 먼저 m<p(단, p는 클러스터의 최대 수임)인지를 검사한다. m>=p인 경우(실제 시스템에서 이런 경우는 그다지 없음), 클러스터들은 프로세서들의 유형에 따라 간단히 그룹화된다. m<p인 경우, 클러스터들은 프로세서들을, 동일한 유형의 클러스터들만을 포함하는 m개의 클러스터 L1, ..., Lm으로 그룹화함으로써 초기화된다. 이어서, 알고리즘(N,p)이 이들 m개의 클러스터에 적용된다. N=20, m=2 및 p=4인 경우에 대하여, 이 프로세스의 결과가 도 4b에 개략적으로 도시되어 있다. 프로세서(41)는 클러스터(411, 412, 413)로 그룹화되어 있고, 프로세서(42)는 클러스터(420)로 그룹화되어 있다.
경우 3: 동적 시스템: 프로세서들이 시스템에 들어가고 또 그로부터 나감.
이 경우는 프로세서들의 수가 동적으로 변하고 있는 경우 2의 확장이다. 프로세서들은 고장으로 인해 또는 이들이 주문형 환경(on-demand environment)에서 동작하고 있기 때문에 시스템에 들어가거나 그로부터 나갈 수 있다. 게다가, 프로세서의 수의 변화는 클러스터의 수 또는 배열의 변화를 가져올 수 있고, 따라서 클러스터도 역시 동적으로 변화하고 있다. 게다가, 프로세서들이 2가지 이상의 유형으로 되어 있는 경우(따라서 2개 이상의 서로 다른 그룹 내에 있는 경우), 그룹의 수는 동적으로 변화하고 있을 수 있다. 예를 들어, 도 5a는 클러스터(50) 내의 프로세서(501)가 시스템으로부터 제거되어지는 상황을 나타낸 것이다. 이 클러스터는 도 5b에 나타낸 바와 같이 클러스터(51)로서 재구성된다. 프로세서(501)의 제거의 결과 클러스터(51)의 서비스 포인트의 재할당이 일어날 수 있다.
클러스터 내의 프로세서들과 서비스 포인트 간의 전체 거리는 시스템의 성능의 손실을 회피하기 위해 동적으로 최소화되어야만 한다. 하나 이상의 프로세서가 시스템에 부가되거나 시스템으로부터 제거될 때마다, 알고리즘(N,p)을 사용하여 클러스터를 재계산할 수 있다. 이 방식은 컴퓨팅 오버헤드의 관점에서 아주 고비용이 들고 또 상당한 성능 열화를 야기할 수 있다. 따라서, 2가지 경우, 즉 (i) 프로세서를 시스템에 부가하는 경우, 및 (ii) 프로세서를 시스템으로부터 제거하는 경우 각각에 대해 시스템을 동적으로 업데이트할 필요가 있다. 이들 2가지 경우에대한 절차에 대해 이하에서 기술한다. 클러스터의 최적의 세트가 알고리즘(N,p)를 사용하여 이전에 발견된 것으로 가정한다.
(i) 새로운 프로세서가 시스템에 부가된다. 이 경우, 기존의 클러스터 모두의 모든 서비스 포인트에 대해 부가된 프로세서를 테스트한다. 이어서, 새로운 프로세서는 전체 거리를 최소화하는 클러스터에 부가된다. 이어서, 새로운 서비스 포인트를 찾아내기 위해 알고리즘(N,1)이 새로운 프로세서가 부가된 그 클러스터에서 사용된다. 유의할 점은 이 절차가 시스템을 반드시 최적화시키지는 않지만 아주 빠르다는 것이다. 이 절차는 도 5c에 개략적으로 도시되어 있다. 도 5c에서, 시스템(55)은 2개의 클러스터(551, 552)를 포함하고, 새로운 프로세서(560)을 부가하려고 한다. 프로세서(560)는 클러스터(552)에 부가되는데, 그 이유는 시스템의 전체 거리가 그렇게 함으로써 최소로 유지되기 때문이다.
(ii) 기존의 프로세서가 시스템으로부터 제거된다. 이 경우, 먼저 어느 클러스터로부터 그 프로세서가 제거되는지가 결정된다. 이 상황에 대한 2가지 경우가 있다.
a) 제거된 프로세서가 서비스 포인트로부터 가장 멀리 있는 것이 아닌 경우, 이는 그 클러스터에 대한 최대 거리에 영향을 주지 않는다. 그러한 경우, 프로세서가 제거되고 이 클러스터에 대해 알고리즘(N,1)을 사용하여 새로운 서비스 포인트가 재계산된다. 이 상황은 도 5d에 도시되어 있으며, 여기서 시스템(57)은 클러스터(571, 572)를 포함하고, 프로세서(574)가 제거되어진다. 그 결과, 클러스터 구성에는 아무런 변화도 일어나지 않는다.
b) 제거된 프로세서가 서비스 포인트로부터 가장 멀리 있는 것인 경우, 그의 제거는 클러스터의 서비스 포인트로부터의 최대 거리에 영향을 미친다. 그러한 경 우, 프로세서는 먼저 클러스터로부터 제거된다. 일반적으로, 이어서 시스템은 최적 성능을 유지하기 위해 재조정(rebalance)되어야만 한다. 프로세서가 현재의 클러스터로부터 제거될 때, 다른 클러스터로부터의 다른 프로세서를 현재의 클러스터에 배치함으로써 시스템을 보다 효율적이 되도록 할 수 있다. 이 상황은 도 5e에 도시되어 있으며, 여기서 프로세서(577)가 시스템으로부터 제거되었다(도 5d와 비교함). 그 결과, 시스템의 전체 거리를 최소화하기 위해 새로운 클러스터(578, 579)가 형성된다. 이를 달성하기 위해, 먼저 클러스터의 최종 세트를 생성하기 위한 알고리즘(N,p)의 각 단계에서, 이전에 생성된 클러스터가 알고리즘(N,2)을 사용하여 분할된다는 것에 유의해야 한다. 따라서, 클러스터를 생성하는 전체 프로세스는 이진 트리로 표현될 수 있다. 최종 클러스터 모두는 이 이진 트리의 리프 노드(leaf node)이다.
프로세서가 클러스터로부터 제거될 때, 프로세서가 제거된 클러스터의 다른 형제 노드(sibling node)를 고려한다. 형제 노드 내의 프로세서들은 형재 노드로부터 현재의 클러스터로 프로세서를 이동시키는 것이 시스템의 전체 거리를 최소화하는지에 관해 검사된다. 전체 시스템의 전체 거리가 영향을 받지 않는 경우, 아무런 조치도 취할 필요가 없다. 그렇지만, 프로세서를 이동함으로써 전체 거리가 감소되는 경우, 형제 노드로부터 프로세서가 제거되고 현재의 클러스터에 배치되며, 따라서 전체 거리는 다시 최소화된다. 형제 노드가 리프 노드 또는 기존의 클러스터인 경우, 어떤 추가의 조치도 취할 필요가 없다. 그렇지 않은 경우, 프로세서의 제거 후에 그의 자식들을 조정(balance)하기 위해 알고리즘(N,2)이 사용된다.
상기한 조정은 특성상 로컬적이며, 아주 빠르게 수행될 수 있다. 그렇지만, 전체 시스템을 전역적으로 조정(balancing)하지는 않는다. 따라서, 다수의 동적 조정 후에, 시스템은 상당히 균형을 잃을(off balance) 수 있고, 때때로 알고리즘(N,p)을 사용하여 시스템을 재최적화할 필요가 있을 수 있다.
경우 4: 서비스 포인트에 대한 백업.
시스템의 고장 안전 동작(fail-safe operation)을 보장하기 위해, 본 발명은 또한 각 클러스터에 대한 이중 서비스 포인트(dual service point)를 제공하는 방법을 포함하며, 여기서 백업 서비스 포인트는 활성 서비스 포인트 내에 저장된 정보의 미러 이미지를 유지하고 또 업데이트 동안 서비스 포인트의 고장의 경우에 활성 서비스 포인트로서 기능하기 시작한다. 서비스 포인트가 시스템의 보통의 프로세서와 전혀 다르지 않다는 것을 잘 알 것이다. 따라서, 서비스 포인트가 고장이 나서 시스템으로부터 제거될 수 있는 경우가 있을 수 있다. 이러한 경우에 시스템 고장을 방지하기 위해, 서비스 포인트의 서비스 정보가 동일한 클러스터 내의 다른 프로세서에 저장되어 있다. 예를 들어, 도 6에 도시된 시스템(60)은 4개의 클러스터(61, 62, 63, 64)를 포함하며, 여기서 클러스터(61)의 서비스 포인트는 프로세서(601)이고 프로세서(602)는 백업 프로세서이다. 활성 서비스 포인트(601)에서의 고장의 경우에, 백업 서비스 포인트(602)는 서비스 포인트의 기능을 떠맡는다. 알고리즘(N,1)이 필요한 경우 클러스터를 재조정(rebalance)하기 위해 사용될 수 있다.
경우 5: 서비스 포인트의 동적 수.
보다 일반적인 문제는 서비스 포인트의 수 p에 대한 최대 허용가능 한계도 변경되는 상황이다. 이것은 많은 수의 프로세서가 한꺼번에 시스템에 부가되거나 시스템으로부터 제거될 때 일어날 수 있다. 이것은 또한 비율값 f(p = N * f에 따라 서비스 포인트의 최대 허용가능 수 p를 제공함)도 역시 변경되는 경우에 일어날 수 있다. 고려할 2가지 경우가 있다.
(i) 새로운 최대 허용가능 서비스 포인트 수 p1이 p보다 더 크다. 이 경우에, 알고리즘(N,p)은 현재의 클러스터 수와 함께 사용되지만, 이 알고리즘은 새로운 클러스터 수 p1로 수행된다. 이것은 경우 1에 기술된 해결방안과 유사하며, 이 경우 첫번째 단계에서, p개의 클러스터 각각은 한번씩 분할되고 다른 것들은 그대로 있다. 각각의 경우에 가장 가까운 서비스 포인트까지의 거리의 총합이 계산되고, 총합을 최소화하는 클러스터 구성이 선택된다. 이 프로세스는 p+1, ..., p1에 대해 반복적으로 수행된다.
(ii) 새로운 최대 허용가능 서비스 포인트 수 p2가 p보다 작다. 이 경우, p개의 클러스터 각각이 발생된 순서를 상기해 볼 필요가 있다(경우 1의 상기 설명을 참조). 클러스터는 p2개의 클러스터만이 남을 때까지 역순으로 재결합된다.
본 발명은 고장 관리 업무를 수행하는 서비스 포인트를 할당함으로써 복수의 프로세서를 갖는 컴퓨팅 시스템을 고장 내성이 있고 또 자가 치유하도록 구성하는 것이 요망되는 경우에 그 시스템에 적용가능하다. 상세하게는, 본 발명은 프로세서의 수 및 서비스 포인트의 할당이 동적으로 변화하는 동적 환경 내의 자율 컴퓨 팅 시스템에 적용가능하다.
본 발명이 특정의 실시예와 관련하여 기술되어 있지만, 상기 설명으로부터 많은 대안, 수정 및 변형이 당업자에게는 자명한 것임은 명백하다. 따라서, 본 발명은 본 발명 및 이하의 청구항의 범위 및 정신 내에 속하는 이러한 대안, 수정 및 변형 모두를 포괄하는 것으로 보아야 한다.

Claims (9)

  1. 적어도 하나의 프로세서 클러스터를 갖는 시스템을 제공하도록 복수의 프로세서(2)를 갖는 시스템을 구성하는 방법으로서, 각각의 클러스터는 하나의 서비스 포인트를 갖는 것인, 상기 방법에 있어서,
    상기 시스템 내의 각각의 프로세서로부터 다른 프로세서까지의 거리를 계산하는 단계(302);
    복수의 전체 거리를 계산하는 단계(303)로서, 각각의 전체 거리는 하나의 프로세서와 연관된 것인, 상기 복수의 전체 거리를 계산하는 단계;
    상기 복수의 전체 거리로부터 최소 전체 거리를 결정하는 단계(304); 및
    그 연관된 최소 전체 거리를 갖는 프로세서를 서비스 포인트로서 할당하는 단계
    를 포함하는 것인 방법.
  2. 제1항에 있어서, 상기 시스템을 복수의 클러스터(L1, L2)로 분할하는 단계를 더 포함하는 방법.
  3. 제2항에 있어서, 상기 분할하는 단계는,
    각각의 프로세서와 연관된 전체 거리에 따라 상기 프로세서들을 정렬(sort)하는 단계(322);
    각각의 프로세서를 2개의 클러스터들 중 하나에 할당하는 단계(324);
    상기 클러스터 내의 프로세서들과 연관된 복수의 전체 거리에 따라 각각의 클러스터 내의 상기 프로세서들에 대한 최소 전체 거리를 결정하는 단계(325); 및
    상기 클러스터 내에서 상기 최소 전체 거리와 연관되어 있는 상기 프로세서를 각각의 클러스터에 대한 상기 서비스 포인트로서 할당하는 단계
    를 더 포함하는 방법.
  4. 제3항에 있어서,
    상기 2개의 클러스터들 중 하나를 2개의 세분된 클러스터로 세분함으로써 상기 시스템을 3개의 클러스터로 분할하는 단계(352);
    상기 3개의 클러스터들 내의 프로세서들과 연관된 상기 복수의 전체 거리에 따라 상기 3개의 클러스터들 각각의 내에 있는 상기 프로세서들에 대한 최소 전체 거리를 결정하는 단계(354);
    상기 최소 전체 거리에 따라 상기 프로세서들을 상기 3개의 클러스터에 할당하는 단계(355, 356); 및
    상기 클러스터 내에서 연관된 최소 전체 거리를 갖는 상기 프로세서를 상기 3개의 클러스터 각각에 대한 서비스 포인트로서 할당하는 단계
    를 더 포함하는 방법.
  5. 제1항에 있어서, 상기 프로세서들은 서로 상이한 유형들(41, 42)이며,
    상기 프로세서들은 그 유형에 따라 클러스터(411, 412, 413, 420)에 할당되는 것인, 방법.
  6. 제1항에 있어서, 상기 구성하는 동작은 프로세서(560)가 상기 시스템에 추가될 때 동적으로 수행되는 것인, 방법.
  7. 제1항에 있어서, 상기 구성하는 동작은 프로세서(574)가 상기 시스템으로부터 제거될 때 동적으로 수행되는 것인, 방법.
  8. 제2항 내지 제4항 중의 어느 한 항에 있어서, 상기 시스템을 분할하는 단계는 프로세서(577)가 상기 시스템으로부터 제거될 때 동적으로 변경되는 것인, 방법.
  9. 제1항에 있어서, 또 다른 프로세서(602)를 백업 서비스 포인트로서 할당하는 단계를 더 포함하는 방법.
KR1020067000153A 2003-07-31 2004-06-30 다수의 서비스 포인트를 갖는 자율 컴퓨팅에서의 동적으로구성가능한 고장 내성 KR100847610B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/604,585 2003-07-31
US10/604,585 US7111188B2 (en) 2003-07-31 2003-07-31 Dynamically configurable fault tolerance in autonomic computing with multiple service points

Publications (2)

Publication Number Publication Date
KR20060063870A KR20060063870A (ko) 2006-06-12
KR100847610B1 true KR100847610B1 (ko) 2008-07-21

Family

ID=34103114

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067000153A KR100847610B1 (ko) 2003-07-31 2004-06-30 다수의 서비스 포인트를 갖는 자율 컴퓨팅에서의 동적으로구성가능한 고장 내성

Country Status (11)

Country Link
US (2) US7111188B2 (ko)
EP (1) EP1652028B1 (ko)
JP (1) JP4405511B2 (ko)
KR (1) KR100847610B1 (ko)
CN (1) CN100555230C (ko)
AT (1) ATE469393T1 (ko)
BR (1) BRPI0413122A (ko)
CA (1) CA2529664A1 (ko)
DE (1) DE602004027385D1 (ko)
TW (1) TWI338229B (ko)
WO (1) WO2005015346A2 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US7490325B2 (en) 2004-03-13 2009-02-10 Cluster Resources, Inc. System and method for providing intelligent pre-staging of data in a compute environment
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US8271980B2 (en) 2004-11-08 2012-09-18 Adaptive Computing Enterprises, Inc. System and method of providing system jobs within a compute environment
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9075657B2 (en) 2005-04-07 2015-07-07 Adaptive Computing Enterprises, Inc. On-demand access to compute resources
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
US7917573B2 (en) * 2005-11-30 2011-03-29 International Business Machines Corporation Measuring and reporting processor capacity and processor usage in a computer system with processors of different speed and/or architecture
US20080059489A1 (en) * 2006-08-30 2008-03-06 International Business Machines Corporation Method for parallel query processing with non-dedicated, heterogeneous computers that is resilient to load bursts and node failures
US8041773B2 (en) * 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US8275866B2 (en) * 2007-11-13 2012-09-25 At&T Intellectual Property I, L.P. Assigning telecommunications nodes to community of interest clusters
US8881163B2 (en) * 2007-12-07 2014-11-04 Microsoft Corporation Kernel processor grouping
US8869035B2 (en) * 2009-06-29 2014-10-21 International Business Machines Corporation Increasing resilience of a network service
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9336302B1 (en) 2012-07-20 2016-05-10 Zuci Realty Llc Insight and algorithmic clustering for automated synthesis
CN103647830B (zh) * 2013-12-13 2017-09-15 浪潮电子信息产业股份有限公司 一种集群管理系统中多层次配置文件的动态管理方法
CN103955404B (zh) * 2014-03-28 2017-05-03 哈尔滨工业大学 一种基于NoC多核同构系统的负载判断方法
US9363008B2 (en) 2014-07-22 2016-06-07 International Business Machines Corporation Deployment criteria for unmanned aerial vehicles to improve cellular phone communications
US11205103B2 (en) 2016-12-09 2021-12-21 The Research Foundation for the State University Semisupervised autoencoder for sentiment analysis
MX2020008905A (es) 2018-06-12 2020-12-03 Vtv Therapeutics Llc Usos terapeuticos de activadores de glucoquinasa en combinacion con insulina o analogos de insulinas.
TWI691852B (zh) 2018-07-09 2020-04-21 國立中央大學 用於偵測階層式系統故障之偵錯裝置及偵錯方法、電腦可讀取之記錄媒體及電腦程式產品
US11288117B2 (en) * 2019-08-06 2022-03-29 Oracle International Corporation Predictive system remediation
CN113252978A (zh) * 2021-05-11 2021-08-13 国网浙江省电力有限公司营销服务中心 一种目标供电台区相位识别方法和识别装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807557B1 (en) 2000-05-31 2004-10-19 International Business Machines Corporation Method, system and program products for providing clusters of a computing environment

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2048306A1 (en) * 1990-10-02 1992-04-03 Steven P. Miller Distributed configuration profile for computing system
US5598532A (en) * 1993-10-21 1997-01-28 Optimal Networks Method and apparatus for optimizing computer networks
US5909540A (en) * 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
US6230303B1 (en) * 1997-02-24 2001-05-08 Lucent Technologies Inc. Proximity-based cluster allocation for hardware-software co-synthesis of heterogeneous distributed embedded systems
TW325618B (en) * 1997-06-10 1998-01-21 Inst Information Industry Broadcasting processing method of wireless modem network group
US6594775B1 (en) * 2000-05-26 2003-07-15 Robert Lawrence Fair Fault handling monitor transparently using multiple technologies for fault handling in a multiple hierarchal/peer domain file server with domain centered, cross domain cooperative fault handling mechanisms
US6973473B1 (en) * 2000-05-31 2005-12-06 International Business Machines Corporation Method, system and program products for managing identifiers of components of a clustered environment
US6982960B2 (en) * 2001-03-09 2006-01-03 Motorola, Inc. Protocol for self-organizing network using a logical spanning tree backbone
CN1195363C (zh) * 2002-12-30 2005-03-30 清华大学 基于线性构造的服务质量路由性能评价方法
CN1195364C (zh) * 2002-12-30 2005-03-30 清华大学 基于宽度优先搜索的性能可调启发式服务质量路由方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807557B1 (en) 2000-05-31 2004-10-19 International Business Machines Corporation Method, system and program products for providing clusters of a computing environment

Also Published As

Publication number Publication date
KR20060063870A (ko) 2006-06-12
CN1829973A (zh) 2006-09-06
US20050027829A1 (en) 2005-02-03
US20060248141A1 (en) 2006-11-02
TW200515174A (en) 2005-05-01
WO2005015346A3 (en) 2005-09-22
US7328363B2 (en) 2008-02-05
JP2007500895A (ja) 2007-01-18
BRPI0413122A (pt) 2006-10-03
EP1652028A2 (en) 2006-05-03
DE602004027385D1 (de) 2010-07-08
ATE469393T1 (de) 2010-06-15
TWI338229B (en) 2011-03-01
CN100555230C (zh) 2009-10-28
EP1652028B1 (en) 2010-05-26
EP1652028A4 (en) 2009-03-18
WO2005015346A2 (en) 2005-02-17
US7111188B2 (en) 2006-09-19
CA2529664A1 (en) 2005-02-17
JP4405511B2 (ja) 2010-01-27

Similar Documents

Publication Publication Date Title
KR100847610B1 (ko) 다수의 서비스 포인트를 갖는 자율 컴퓨팅에서의 동적으로구성가능한 고장 내성
US11650971B2 (en) System and method for large-scale data processing using an application-independent framework
US7650331B1 (en) System and method for efficient large-scale data processing
US8478878B2 (en) Placement of virtual machines based on server cost and network cost
US20190294513A1 (en) Adaptive multipath fabric for balanced performance and high availability
US5640584A (en) Virtual processor method and apparatus for enhancing parallelism and availability in computer systems
Tsai et al. Two-tier multi-tenancy scaling and load balancing
US20180367607A1 (en) Top-of-rack switch replacement for hyper-converged infrastructure computing environments
US20080256149A1 (en) System and method for dependent failure-aware allocation of distributed data-processing systems
US11463514B2 (en) Methods and apparatuses for balancing utilization of computer resources
Joshi et al. Fault tolerance mechanisms for virtual data center architectures
US7647592B2 (en) Methods and systems for assigning objects to processing units
CN115129463A (zh) 算力调度方法及装置、系统及存储介质
CN111866210A (zh) 一种虚拟ip均衡分配方法、系统、终端及存储介质
WO2017197481A1 (en) Methods and systems for failure recovery in a virtual network environment
CN115665032A (zh) 利用分段路由数据和网络数据确定和实现优化网络规划
KR100478346B1 (ko) 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드밸런싱 방법 및 그 시스템
CN115225642A (zh) 超融合系统的弹性负载均衡方法及系统
CN110764742B (zh) 一种气候观测数据线性相关度高速计算方法及系统
CN113826079A (zh) 为装置组标识符选择接口
Melhem Bi-level reconfigurations of fault tolerant arrays
CN116233137B (zh) 一种基于集群的负载分担和备份方法及装置
WO2016188135A1 (zh) 集群路由器cpu资源的配置方法及集群路由器
CN114285729B (zh) 分布式集群管理节点部署方法、装置、设备及存储介质
KR20180052927A (ko) 가상 머신 기반의 서비스 펑션 체이닝에 있어서 가상 머신의 배치 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee