KR20040062407A - 자원 경쟁을 관리하기 위한 방법 및 장치 - Google Patents

자원 경쟁을 관리하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20040062407A
KR20040062407A KR1020030099765A KR20030099765A KR20040062407A KR 20040062407 A KR20040062407 A KR 20040062407A KR 1020030099765 A KR1020030099765 A KR 1020030099765A KR 20030099765 A KR20030099765 A KR 20030099765A KR 20040062407 A KR20040062407 A KR 20040062407A
Authority
KR
South Korea
Prior art keywords
resource
cluster
user
request
resources
Prior art date
Application number
KR1020030099765A
Other languages
English (en)
Other versions
KR100586285B1 (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 KR20040062407A publication Critical patent/KR20040062407A/ko
Application granted granted Critical
Publication of KR100586285B1 publication Critical patent/KR100586285B1/ko

Links

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
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Abstract

본 발명은 경쟁 체인을 식별하여 멀티시스템 클러스터 내의 자원에 엑세스하는 유저들 중에서 경쟁을 관리하는 방법 및 장치에 관한 것으로서, 각 유저는 체인 내의 자원 앞에서 유저가 보유한 자원을 대기 중이며 유저의 요구가 체인 내의 최우선순위 대기자의 적어도 요구인 것처럼 체인의 헤드에 있는 유저에게 시스템 자원을 할당한다. 최적 자원 할당을 위해 필요한 경쟁 데이터는 시스템간 데이터 흐름이 최소이며 시스템이 크로스 시스템 경쟁의 완전 관점을 가지고 있지 않을지라도 시스템 클러스터에 걸쳐서 효과적으로 분배된다. 각 시스템은 보유자 또는 대기자로서 로컬 유저를 갖는 경쟁 상태의 자원을 추적하고 경쟁 체인에 포함된 자원의 클러스터로 자원을 그룹화하며, 각 자원은 클러스터 내의 또 다른 자원을 대기중인 로컬 유저에 의해서 보유되고 클러스터내의 또 다른 자원을 보유하는 로컬 유저에 의해서 대기된다. 각 시스템은 그 자신의 로컬 경쟁 데이터에 기초해서 클러스터로 자원을 그룹화하고 클러스터 내의 어느 자원에 대한 시스템 상에서의 최우선순위 대기자의 요구를 클러스터에 대해서 나타내는 클러스터 데이터를 기억한다. 로컬 자원 관리자가 시스템에 로컬 보유자 또는 대기자를 갖는 자원의 경쟁 상태에서의 변화를 통지할 때마다, 시스템은 영향을 받은 자원에 대한 그의 클러스터 데이터를 갱신한다. 시스템은 그 자원에 대한 최우선순위 로컬 대기자의 요구 및 로컬 경쟁 데이터에 기초해서 클러스터 할당을 각각 영향을 받은 자원에 대해서 전송함으로써 갱신된 클러스터 데이터를 브로드캐스트한다. 또 다른 시스템으로부터 클러스터 데이터를 수신하자 마자, 시스템은 수신된 클러스터를 그 자신의 클러스터 데이터와 결합하여 크로스 시스템 경쟁에 기초해서 클러스터로 자원을 복합 그룹화하고 클러스터 내의 어느 자원에 대한 시스템에 걸쳐서 최우선순위 대기자의 요구를 각 복합 클러스터에 대해서 지시한다. 시스템은 이 정보를 이용하여 시스템 자원을 로컬 유저에게 할당하며 로컬 유저는 클러스터 내의 자원을 보유중이며 그의 요구가 클러스터 내의 어느 자원에 대한 최우선순위 대기자의 적어도 요구인 것처럼 어느 다른 자원을 대기하지는 않는다.

Description

자원 경쟁을 관리하기 위한 방법 및 장치{METHOD AND APPARATUS FOR MANAGING RESOURCE CONTENTION}
관련 상호 출원
본 출원은 여기서 참조문헌으로 결합되는 발명의 명칭이 "멀티시스템 클러스터에서 자원 경쟁을 관리하기 위한 방법 및 장치"인 미국 특허 출원 제_____호의 동일 발명자의 공동 소유의 계류중인 출원과 관련이 있다.
본 발명은 정보 취급 시스템에서 직렬화 자원에 엑세스하기 위한 유저들 중에서 경쟁을 관리하기 위한 방법 및 장치에 관한 것이다.
자원 경쟁은 정보 취급 시스템에서 널리 알려진 현상이다. 자원 경쟁은 제2 유저가 이미 보유하고 있는 자원에 제1 유저(예, 프로세스 또는 다른 작업 유니트)가 엑세스하려고 할 때 발생하며, 제2 유저가 요청한 엑세스는 제1 유저의 요청 엑세스와는 불일치한다. 이는 예컨대 두 유저가 문제의 자원에 배타적인 엑세스를 요청 중이라면 발생할 것이다. 자원 관리자는 하나 이상의 유저에게 보유자로서 자원으로의 엑세스를 허용하고 자원을 이용 가능할 때까지 대기자의 풀에 임의의 나머지 유저를 둠으로써 자원 관리자가 제어하는 자원에 대한 경쟁 요청자 중에서 경쟁을 관리하는 소프트웨어 콤포넌트이다.
다중 자원 관리자 및 다중 작업 유니트를 갖는 IBM 사의 운영 체제인 z/OS(상표명)와 같은 컴퓨터 운영 체제에서, 자원 경쟁 관리는 복잡한 문제이다. 경쟁은 체인 형태를 취하거나 또 다른 형태를 취할 수가 있으며 경쟁은 자원을 크로스할 수가 있다. 예컨대 작업 A가 자원 R1을 대기하고 자원 R2는 보유하고 있으며, 작업 B는 자원 R1을 보유하고 자원 R3는 대기하고 있으며, 자원 R3는 작업 C에 의해서 보유되고 있다. 경쟁은 자원 관리자를 크로스할 수가 있다. 예컨대 R1은 GRS 인큐(enqueue)일 수가 있으며 R2는 DB2(상표명) 래치일 수가 있다. z/OS의 글로벌(전역) 자원 순차화(GRS) 콤포넌트는 인큐를 관리하고, IMS(상표명) 자원 로크 관리자(IRLM)는 DB2 자원을 별도로 관리한다.
크로스 자원 경쟁은 통상 각각의 자원 보유자 및 대기자의 토롤로지를 추적하고 임의의 교차점을 찾아서 단일 자원 관리자(예, GRS)내에서 해결된다. 크로스 시스템 경쟁은 통상 클러스터 데이터 전체를 알고 있는 자원 관리자(독립 시스템으로서 라기 보다는 하나의 유니트로서 클러스터를 관리하는 자원 관리자)에 의해서 해결된다. 크로스 자원 관리자 경쟁은 통상 보고 제품이 모든 인터페이스에 질의하고 마치 그것이 자원 관리자인 것처럼 데이터를 상관함으로써 해결된다. 그 문제가 경쟁 상태에 있는 자원수의 O(2n)정도이기 때문에, 계산적으로도 복잡하다.
z/OS의 기본 MVS(상표명) 콤포넌트가 간단한 효율적인 솔루션("인큐 프로모션으로 널리 알려짐)을 가진다. 즉 작업 요구에 주의를 기울이지 않고 경쟁에서 자원을 보유하는 임의의 작업으로의 CPU 및 MPL 엑세스를 자동적으로(그리고 임시로) 부스트한다. 이것은 마치 실제의 토폴로지에 관계없이 자원에 대한 "중요한" 대기자가 있었던 것처럼 보유자를 관리하는 것과 같다. 이러한 동작을 이해하기 위해 다음과 같은 예를 상정한다. 즉 다음을 상정한다.
1. 작업 A는 자원 R1을 보유한다.
2. 작업 B는 자원 R2을 보유하고 R1을 대기한다.
3. 작업 C는 R2를 대기한다.
전체적으로 이는 체인 C →B →A로서 표현될 수가 있고, 여기서 대문자는 작업을 표시하며, 기호 "→"(체인에서 "링크")는 기호의 좌측에 있는 작업이 기호의 우측에 있는 작업이 보유한 자원을 대기중 임을 표시한다. 따라서, 상기 체인은 작업 C가 작업 A가 보유한 자원을 대기중이고 작업 A가 보유한 자원을 대기중 임을 의미한다.
이것이 GRS 자원이라고 가정하면, 종래의 MVS 구현은 작업 A 및 작업 B에 도움을 주는데 두 작업이 제한된 시간 동안 각각 동일하게 촉진하면서 경쟁하에 있는 자원을 유지하기 때문이다. 그러나 작업 B를 돕는 것은 좋지가 않은데, B는 사실상 A를 대기중이기 때문이다. B는 자체적으로 멀티태스크하고 있다면, 그 도움은 실제로 자원 경쟁에 관해 어떤 것을 행함이 없이 경쟁하는 작업에 해를 가할 수가 있다.
도 1은 본 발명에 따른 컴퓨터 시스템을 도시하는 도면.
도 2a 내지 도 2c는 각종 타입의 경쟁 체인을 도시하는 도면.
도 3은 경쟁 체인의 헤드에 있는 유저에게 자원을 할당하기 위한 절차를 도시하는 도면.
도 4는 수개의 시스템 상의 트랜젝션과 자원 중에서 전형의 경쟁 시나리오를 도시하는 도면.
도 5는 로컬 자원 관리자로부터의 통지에 응답하여 추종되는 일반적인 절차를 도시하는 도면.
도 6은 원격 시스템으로부터 경쟁 데이터의 브로드캐스트 수신에 응답하여 추종되는 일반적인 절차를 도시하는 도면.
도 7a 내지 도 7g는 각종 동작예에서의 멀티시스템 경쟁 상태를 도시하는 도면.
도 8a 내지 도 8h는 본 발명의 일실시예에서 경쟁 데이터를 저장하는 각종 데이터 구조를 도시하는 도면.
도 9는 도 4에 도시한 경쟁 시나리오가 어떻게 클러스터 시스템들 중 하나에의해 캡쳐되는 지를 도시하는 도면.
본 발명의 주제인 본 발명의 일형태는 정보 취급 시스템에서 자원에 엑세스하는 유저들 중에서 경쟁을 관리하기 위한 방법 및 장치를 포함하며 각각의 유저는 할당된 요구(need)를 갖고 있고 엑세스하려고 하는 자원에 대한 보유자 또는 대기자일 수가 있다. 이러한 본 발명의 일형태에 따르면, 유저는 유저들의 체인 헤드에있는 대기자가 아님이 식별되고 체인의 다음의 유저를 가진 각각의 유저는 다음 유저가 대기 중인 자원을 보유중이다. 체인의 헤드에 있는 유저는 그의 요구가 체인에서 가장 필요로 하는 대기자의 적어도 요구인 것처럼 관리되고, 바람직하게는 그의 요구가 가장 필요로 하는 대기자의 적어도 요구인 것처럼 유저에게 시스템의 자원을 할당함으로써 관리되고 있다.
본 발명의 특징적인 형태로서, 경쟁 체인은 자원의 클러스터를 식별하여 확인되고-클러스터 내의 각 자원은 클러스터 내의 또 다른 자원을 대기중인 유저에 의해서 보유되거나 혹은 클러스터 내의 또 다른 자원을 보유 중인 유저에 의해서 대기된다-, 클러스터 내의 어느 자원을 가장 필요로 하고 있는 대기자의 요구를 판정함으로써 확인된다. 클러스터 내의 자원을 보유하고 있고 어느 다른 자원을 대기하고 있지 않은 유저와 자원 보유자의 요구가 클러스터 내의 어느 자원에 대해 가장 절실히 요구하고 있는 대기자의 적어도 요구인 것처럼 자원의 보유자가 관리되며 바람직하게는 그의 요구가 가장 필요로 하는 대기자의 요구인 것처럼 유저에게 시스템 자원을 할당하여 관리되고 있다.
클러스터를 식별하는 단계는 자원의 경쟁 상태에서 변경 통지를 수신하여 양호하게 수행된다. 따라서 자원이 클러스터 내의 또 다른 자원을 대기 중인 유저에 의해서 현재 보유 중이거나 혹은 클러스터 내의 또다른 자원을 보유 중인 유저에 의해서 대기되고 있으면 그 자원은 클러스터에 새로이 할당된다. 한편, 클러스터 내의 또 다른 자원을 대기 중인 유저에 의해서 자원이 더 이상 보유되고 있지 않거나 혹은 클러스터 내의 또 다른 자원을 보유 중인 유저에 의해서 대기 중이면 자원이 클러스터로부터 제거된다.
이처럼 본 발명의 형태는 체인의 헤드에 있는 작업(예, 요구 계수가 4인 작업 A)이 그 자원을 릴리즈할 때까지 작업이 체인의 어느 곳에서 보다 필요로 하는 작업(예, 요구 1의 작업 C)의 요구 계수를 갖고 있는 것처럼 실행될 수가 있도록 "요구" 계수를 기본 시스템 자원 할당 메카니즘으로 통합하는 것을 고려한다. 요구 개념을 이전 실시예에 통합하면 그것이 어떻게 달리 행동하는 지를 양호하게 이해할 수가 있다. 다음을 상정한다.
1. 요구 계수 4를 가진 작업 A는 자원 R1을 보유하고 있다(이 명세서에서 낮은 수는 더 큰 요구 계수를 의미하며, 낮은 수의 요구 계수는 "도움을 위한 우선순위"로서 고려될 수가 있다).
2. 요구 계수 5를 가진 작업 B는 자원 R2을 보유하고 자원 R1을 대기한다.
3. 요구 계수 1를 가진 작업 C는 R2를 대기한다.
전체적으로, 이는 체인 C(1) →B(5) →A(4)로서 표현 가능하고, 여기서 대문자는 작업을 표시하며, 괄호의 숫자는 작업의 요구 계수를 표시하고, 기호 →(체인에서의 링크)는 기호의 좌측에 있는 작업이 기호의 우측에 있는 작업에 의해서 보유된 자원을 대기 중임을 표시한다. 따라서 상기 체인은 요구 계수 1을 가진 작업 C는 요구 계수 5를 가진 작업 B가 보유하는 자원을 대기 중이며, 작업 B는 요구 계수가 4인 작업 A가 보유하고 있는 자원을 대기 중이다.
이런 식으로 "요구" 계수를 이용하면 외관상으로는 분명하지 않은 수 개의이점을 가져온다. 첫째, 작업 B가 또한 또 다른 자원을 대기중임을 알 수 있기 때문에 작업 B 처럼 작업을 돕는 것을 피하고, 그에 따라 아무리 나빠도 비상관 경쟁 작업에 대해 손상을 주고 기껏해야 쓸모없는 조치를 피한다. 둘째, 시스템 자원 할당자에게 지식을 부여하여 단지 제한된 시간 동안 만이 아니라 무기한으로 그것이 달리 다른 작업에 도움을 주는 것 보다는 작업 A에 도움을 주는 것을 가능하게 한다. 종래의 구현예가 체인을 무시하고 일부 제한된 기간 동안 작업 A 및 B를 "중요한" 작업으로 취급하는 동안, 작업 A는 진정 요구 계수 1을 갖거나 작업 C가 대기 중인 동안 "가장 중요한" 작업을 갖는다고 이해한다. 세째, 시스템 자원 할당자에게 지식을 부여하여 예컨대 네트워크 내에서 가장 필요로 하는 작업이 현재의 보유자이면 체인의 헤드에 있는 보유자를 돕는 것을 삼가하게 한다.
이러한 본 발명의 제1 형태는 복수의 상기 시스템을 포함하는 시스템 클러스터에서 혹은 단일 시스템에서 실시될 수 있다. 자원 클러스터를 식별하는 본 발명의 변형례는 이후 설명하는 바와 같이 로컬 경쟁 데이터의 서브세트만의 교환을 필요로 할 때 멀티시스템 구현예에서 사용하기 특히 적합하다.
상기 동시 계류중인 출원의 주제인 본 발명의 또 다른 형태는 경쟁 상태에 있는 멀티시스템 자원 수의 정도 O(n)의 매우 작은 데이터 부근을 통과하면서 다중 시스템에 걸친 자원 할당 엑세스를 관리하는 프로토콜을 고려한다.
상기한 단일 시스템 발명의 형태들을 결합하는 본 발명의 다른 형태는 복수의 시스템을 포함하는 시스템 클러스터 내의 자원에 엑세스하는 유저 중에서 경쟁을 관리하기 위한 방법 및 장치를 고려하며, 각각의 유저는 할당된 요구를 가지며엑세스를 구하는 자원에 대한 보유자 또는 대기자일 수가 있다. 이러한 본 발명의 형태에 따르면, 로컬 시스템으로서 동작하는 각 시스템은 로컬 시스템에서의 경쟁에 기초해서 로컬 클러스터에서의 자원의 그룹화를 표시하고 로컬 클러스터에서 하나 이상의 자원에 대한 요구를 표시하는 각 로컬 클러스터를 저장한다. 각각의 시스템은 또한 원격 시스템으로서 동작하고, 원격 시스템에서의 경쟁에 기초해서 원격 클러스터에서 자원의 그룹화를 각 원격 시스템이 표시하며, 원격 클러스터에서 하나 이상의 자원에 대한 요구를 각 원격 클러스터가 표시하는 시스템 클러스터에서 다른 시스템으로부터 원격 클러스터 데이터를 수신한다. 각 로컬 시스템은 시스템에 걸친 경쟁에 기초해서 복합 클러스터에서의 자원의 그룹화를 표시하고 그 복합 클러스터에서 하나 이상의 자원에 대한 요구를 각 복합 클러스터가 표시하는 복합 클러스터 데이터를 생성하도록 로컬 클러스터 데이터 및 원격 클러스터 데이터를 결합한다. 다음에 각 로컬 시스템은 이 복합 클러스터 데이터를 이용하여 복합 클러스터 내의 자원의 로컬 시스템에서의 보유자를 관리한다.
로컬, 원격 및 복합 클러스터 데이터는 문제의 클러스터 내의 어느 자원에 대해 가장 필요로 하는 대기자의 요구를 표시하며, 복합 클러스터 내의 자원의 로컬 시스템 상의 보유자는 어느 다른 자원을 대기하고 있지 않는 보유자를 식별하고 보유자의 요구가 대응 복합 클러스터 내의 어느 자원에 대해 가장 필요로 하는 대기자의 적어도 요구인 것처럼 그 보유자에게 시스템 자원을 할당함으로써 양호하게 관리된다.
각 로컬 시스템은 로컬 시스템 상의 유저가 또 다른 자원을 대기하면서 한자원을 보유 중이면 한 쌍의 자원을 공통 로컬 클러스터에 할당하고, 로컬 시스템 상의 유저와 관련하여 자원의 경쟁 상태의 변화 표시를 수신하여 로컬 클러스터 데이터를 갱신한다. 각 로컬 시스템은 또한 어느 갱신 데이터를 포함하는 그의 로컬 클러스터 데이터를 수신 시스템에 대한 원격 클러스터 데이터로서 전송된 클러스터 데이터를 취급하는 원격 시스템에 전송한 다음, 그에 따라 복합 클러스터 데이터를 갱신한다. 전송된 로컬 클러스터 데이터는 자원과, 그 자원이 로컬 시스템에 대한 경쟁에 기초해서 할당되는 클러스터와, 그 자원의 로컬 시스템에 대한 요구를 표시한다.
요구 척도(a measure of neediness) 및 클러스터에 참여하는 자원 관리자 인스턴스로부터의 부분 데이터(충분한 자원 토폴로지가 아닌)를 이용하는 것은, 한 자원을 가장 필요로 하는 대기자(크로스의 "상기 모든" 자원 중 이행적 폐쇄(transitive closure) 상태의 어느 대기자를 포함하는 대기자)가 체인의 헤드에 있는 자원의 어느 보유자 보다 필요로 하는 대기자이면, 각 시스템은 개별적으로 이해하는 것이 가능하다. 다음에 시스템은 대기자의 요구 척도가 가장 절실한 블록화 작업 정도인것 처럼 자원은 보유자에게 할당할 수 있다.
프로토콜은 각 시스템으로부터 보유자와 대기자의 전체 리스트 대신에 대략 자원 당 하나의 정보 세트를 패스한 결과, 시스템은 클러스터에 걸쳐서 경쟁의 완전한 뷰를 갖고 있지 않는다. 데이터 자체는 클러스터 유일의 자원명, 송신 시스템에 대한 가장 필요로 하는 대기자의 요구값 및 송신 시스템 유일의 토큰 만으로 구성되어 있다. 토큰이 2가지 자원에 대해 매칭되면, 그들의 관리는 통합되어야한다(토큰은 송신 시스템의 로컬 데이터에 만 기초해서 할당된다). 프로토콜은 또한 토폴로지의 일부 작업이 경쟁 상태에 있지 않은 다른 자원을 보유하고 있을 지라도 경쟁 상태의 자원에 대한 데이터 만을 송신한다. 송신 시스템 클러스터 정보는 각종 방식으로 부호화 가능하다. 따라서 송신 시스템 상의 로컬 경쟁에 만 의존하는 토큰을 송신하기 보다는 로컬 시스템은 양호한 실시예에서와 같이 넌트리비얼(non-trivial) 클러스터 할당(즉, 하나 이상의 자원을 포함하는 클러스터에 할당)의 표시와 함께 원격 경쟁에 기초한 클러스터명은 로컬 또는 원격 정보에 기초하고 있다.
본 발명은 컴퓨터 운영 체제의 일부로서 또는 이러한 운영 체제와 관련하여 동작하는 "미들웨어" 소프트웨어로서 양호하게 구현된다. 이러한 소프트웨어 구현예는 본 발명의 방법 단계를 수행하기 위한 하드웨어 머신에 의해서 실행 가능한 프로그램 명령어의 형태로 된 로직을 포함한다. 명령어의 프로그램은 반도체, 마그네틱, 광학 또는 다른 스토리지 기술을 이용하는 하나 이상의 볼륨을 포함하는 프로그램 스토리지 장치에서 구현 가능하다.
도 1은 본 발명에 따른 컴퓨터 시스템 클러스터(100)를 도시한다. 클러스터(100)는 어느 적절한 타입의 상호 연결부(104)에 의해서 함께 결합된 개개의 시스템(102)(Sy1,Sy2,Sy3)을 포함하고 있다. 비록 예증적으로 3 개의 시스템이 도시되고 있지만, 본 발명은 어느 특정수의 시스템에 제한되지는 않는다. 클러스터(100)는 각종 시스템으로부터 요구자들에 의해서 경쟁하고 있는 하나 이상의 글로벌 또는 멀티시스템 자원(106)을 갖고 있다.
클러스터의 각각의 시스템(102)은 하나 이상의 물리적 머신의 별개의 논리 부분 또는 별개의 물리적 머신을 포함할 수 있다. 각 시스템은 시스템 서비스를 제공하고 본 발명의 기능을 수행하고 시스템 자원의 이용을 관리하는 유용한 기능들을 수행하는 운영 체제(OS)(108)를 포함하고 있다. 본 발명은 어느 특정 하드웨어 또는 소프트웨어 플랫폼에 제한되지 않으며, 각 시스템(102)은 서버(IBM zSeries(등록 상표))의 로직 부분 또는 IBM zSeries(등록 상표)에서 실행하는 IBM z/OD 운영 체제의 인스턴스를 포함한다.
각 시스템(102)은 멀티시스템 자원(106)에 대한 엑세스에 대해서 서로 경쟁하는 하나 이상의 요구자(110)와 옵션으로 동일 시스템 상의 요구자에게 만 이용 가능한 로컬 자원(112)을 포함한다. 요구자(110)는 자원(106 또는 112)에 대한 엑세스에 대해서 경쟁하는 어느 엔티티를 포함할 수 있고 시스템 자원을 할당하기 위한 단일 엔티티로서 취급된다.
(요구자(110)에게 할당되는 시스템 자원은 요구자들 가운데 경쟁의 주체인 자원(106,112)과 구별되어야 한다. 시스템 자원은 스루풋(throughput) 또는 응답 시간 등의 일부 성능 척도를 향상하도록 요청자 자신에게 일반적으로 투명한 방식으로 요구자(110)에게 할당된다. 한편 자원(106,110)은 실행의 일부로서 요구자에 의해서 명시적으로 요청된다. 요구자의 구분이 필요한 경우, 후자 부류의 자원은 때론 "직렬화 자원" 등과 같은 용어를 사용하여 지칭한다.)
각 운영 체제(108)는 하나 이상의 자원 관리자(114) 및 작업 부하 관리자(WLM)(116)를 포함하는 본 발명의 중요한 몇 개의 구성요소를 포함한다.
각 자원 관리자(114)는 하나 이상의 요구자에 의한 자원으로의 엑세스를 보유자로서 허여하고 자원이 이용 가능할 때까지 대기자의 풀에 어느 잔류 요청자를 배치함으로써 자원 관리자가 제어하는 자원(106 또는 112)에 대한 경쟁 요구자(110) 중에서 경쟁을 관리한다. 본 발명은 어느 특정 자원 관리자에게 제한되지 않으며, 자원 관리자(멀티시스템 자원(106)용으로 사용되는)는 여기서 참조 문헌으로 인용되는 IBM 간행물 z/OS MVS Planning: Global Resource Serialization, SA22-7600-02(2002년 3월)의 문헌에 기술된 z/OS 운영 체제의 글로벌 자원 직렬화(GRS) 콤포넌트일 수 있다. 또한 자원 관리자(114)가 운영 체제(108)의 일부(GRS가 z/OS의 일부이므로)로서 그려지는 동안, 다른 자원 관리자(IRLM 등)는 운영 체제와 독립적으로 존재할 수 있다.
작업 부하 관리자(WLM)(116)는 시스템 자원을 작업(또는 작업이 속하는 서비스 클래스) 유니트에 할당되는 "요구"값에 기초해서 작업 유니트(어드레스 공간, 인클리브(enclave) 등일 수 있음)에 할당하고 처리되는 작업의 다른 유니트에 대한 작업 유니트의 상대 우선순위를 어떤 의미에서 반영한다. 본 발명은 어느 특정 작업 부하 관리자에 제한되지 않으며, 이러한 작업 부하 관리자는 여기서 참조 문헌으로 인용되는 IBM 간행물 z/OS MVS Planning: Workload Management, SA22-7602-04(2002년 10월)와 z/OS MVS Programming: Workload Management Services, SA22-7619-03(2002년 10월)의 문헌에 기술된 IBM z/OS 운영 체제의 작업 부하 관리 콤포넌트이다. 이러한 작업 부하 관리 콤포넌트는 여기서 참조 문헌으로 인용되는 IBM 간행물 z/OS MVS 초기화 및 튜닝 가이드, SA22-7591-01(2002년 3월), 특히 32장(3-1 페이지 내지 3-84페이지)의 문헌에 기술된 바와 같이 IBM z/OS 운영 체제의 시스템 자원 관리자(SRM) 콤포넌트와 관련하여 동작한다. 이들 콤포넌트와 상호 작용하는 특정 방식이 본 발명의 일부가 아니므로 이들 콤포넌트는 도 1의 "WLM"으로 표시된 박스 116로 참조된다.
요구값은 유저나 방식에 할당되는 특정 방식이 아니며 시스템 자원은 할당된 요구값이 본 발명의 일부라는 것에 기초해서 유저에게 할당된다. 공지된 다수의 기술 중 임의의 기술은 둘다에 대해서 사용 가능하다. 그 요구값은 시스템 클러스터에 걸쳐서 유사한 의미를 갖는 값이어야 한다. 도시한 실시예에서 그 값은 시스템에 걸쳐서 안전하게 비교될 수 있는 능동적인 WLM 정책에 기초해서 계산된 동적값이다. 순서가 임의적이면서 여기서 낮은 수는 요구 또는 우선순위가 높다는 것을 나타내며, 따라서 요구 계수 1을 갖는 유저는 요구 계수 5를 갖는 유저 보다 요구 우선순위가 높다.
도 2a 내지 도 2c는 시스템 클러스터(100) 내의 자원(106,112) 중에서 발생하는 각종 경쟁 체인을 도시하고 있다. 이들 체인은 공식적으로는 지시된 그래프로서 보다 널리 알려져 있으나 여기서는 체인이라는 용어를 사용할 것이다. 이들 체인에서 화살표로 표시된 각 링크는 유저(화살표의 꼬리에서 노드로 표시)가 또 다른 유저(화살표의 머리에서 노드로 표시)가 보유한 자원을 대기 중인 경우의 관계를 표시한다. 이러한 관계의 "이행적 폐쇄"는 하나의 노드가 화살표를 추종하면, 모든 노드는 궁극적으로는 경쟁 상태의 어느 자원을 대기하지 않고 체인의 헤드에 있는 보유자를 지정하도록 체인의 어느 노드를 포함하는 그러한 관계를 포함함으로써 형성된 체인이다(체인이 하나 이상의 헤드를 가질 수 있는 지는 도 2 d의 설명에서 기술된다).
도 2a는 상기한 배경과 요약 부분에 기술된 경쟁 시나리오를 도시하며, 유저 C는 유저 A가 보유한 자원 R1을 대기 중인 유저 B가 보유하는 자원 R2을 대기중이다. 여기서 기술하고 있는 바와 같이, 대기자가 아니라 보유자인 체인의 헤드에 있는 유저 A에게는 그의 요구가 마치 대기자 B와 C의 가장 필요로 하는 적어도 요구인 것처럼 시스템 자원이 할당되는데, 이는 두 대기자가 자원 R1을 갖는 최종 A로부터 이익을 얻기 때문이다. 유저 B는 또한 보유자이며, 우선적인 할당이 주어지지 않는데 이는 유저 B가 자원을 대기 중이고 실행 중이 아니기 때문이다. 따라서 보다 많은 자원을 B에 할당하는데 있어서 시점이 없다(나중에는 B가 보유자로서 자원 R1을 획득할 수 있을 것이다).
도 2a에 도시한 경쟁 시나리오는 스트레이트 체인이며, 각 유저는 단일 유저가 보유한 자원을 보유중이거나 대기중이다. 그러나 일반적으로 경쟁 체인은 분기될 수 있어, 단일 유저는 복수 유저에 의해서 대기중인 자원을 보유하거나 복수 유저에 의해서 보유된 자원을 대기중일 수가 있다. 일부 자원은 또한 동시에 발생하는 복수 보유자를 허용하는 공유 엑세스에 대해서 요청될 수가 있다.
도 2b는 이제 추가 유저 D가 유저 B가 보유한 자원 R3을 대기 중이라는 점에서 도 2a에 도시한 시나리오와는 다른 제1 타입의 분기(branching)를 갖는 경쟁 시나리오를 도시한다. 여기서 유저 A에게는 마치 그의 요구가 대기자 B,C,D의 가장 필요로 하는 요구인 것처럼 시스템 자원이 할당되는 데, 모든 대기자는 자원 R1을가진 최종 A로부터 이익을 얻을 것이기 때문이다.
도 2c는 이제 유저 C가 유저 A에 의해서 제어되는 자원 R4을 대기중인 유저 D에 의해서 제어되는 추가 자원 R3을 대기 중이라는 점에서 도 2a에 도시한 시나리오와는 다른 두 타입의 분기를 갖는 경쟁 시나리오를 도시하고 있다. 다시 여기서 유저 A에게는 마치 그의 요구가 적어도 대기자 B, C의 가장 필요로 하는 요구인 것처럼 시스템 자원이 할당되는데 이들 모든 대기자에게는 자원 R을 갖는 최종 A로부터 이익을 얻을 것이기 때문이다.
마지막으로 도 2d는 이제 유저 C가 또한 유저 E가 보유하는 자원 R4을 대기중인 유저 D에 의해서 보유되는 자원 R3을 대기 중이라는 점에서 도 2a에 도시한 체인과는 다른 제2 타입의 분기를 갖는 경쟁 시나리오를 도시하고 있다. 이론적으로 이것은 하나의 헤드를 갖는 2 개의 부분적으로 중복하는 체인으로서 해석될 수가 있는데, 하나의 체인은 C →B →A가 되고 다른 체인은 C →D →E가 된다. 제1 체인에서, 유저 A에게는 마치 그의 요구가 대기자 B 및 C의 가장 필요로 하는 요구인 것처럼 시스템 자원이 할당되며, 제2 체인에서 유저 E에게는 마치 그의 요구가 대기자 C 및 D의 가장 필요로 하는 요구인 것처럼 시스템 자원이 할당된다.
도 3을 참조하여 이를 요약하면, 이상적인 구현예에서 유저 체인의 헤드에 있는 대기자가 아닌 유저를 우선 식별할 것이며 체인 내에서 다음 유저를 갖는 각 유저는 다음 유저가 대기중인 자원을 보유중이다(단계 302). 도 2d에서 이것은 유저 A-C로 구성된 체인에 대한 유저 A와 유저 C-E로 구성된 체인 내의 유저 E일 것이다. 다음에 시스템 자원을 유저의 요구가 마치 그 체인 내의 가장 필요로 하는대기자의 요구인 것처럼 체인의 헤드에 있는 유저에게 할당할 것이다(단계 304). 즉, 체인의 헤드에 있는 유저의 요구 보다 우선순위가 높은 요구를 가진 대기자가 있다면, 그 유저에게는 그 요구가 유저의 요구 보다 우선순위가 높은 요구였다면 그 대기자의 요구에 기초해서 시스템 자원이 할당될 것이다.
2 개의 체인으로서 이렇게 다루는데 있어서, 유저 A의 자원 할당은 유저 D의 요구에 의존하지 않는데, 그 이유는 유저 D의 분기(화살표 방향으로 진행하는)는 유저 A로 진행하지 않으며, 따라서 유저 D는 선호 유저 A로부터 이익을 취하지 않기 때문이다. 같은 이유로 유저 E의 자원 할당은 유저 B의 요구에 의존하지 않는다. 따라서, 양호한 실시예에서, 이들 체인(더 정확히 말하자면 이들 체인에서 링크를 구성하는 자원)은 2 개의 별개의 자원 클러스터, 즉 자원 R1-R2을 포함하는 제1 클러스터와 자원 R3-R4을 포함하는 제2 클러스터로서 해석된다. 제1 클러스터에서, 유저 A에게는 마치 그의 요구가 제1 클러스터에서 어느 자원(R1 및 R2)에 대한 대기자(B 및 C)의 가장 우선순위가 높은(가장 필요로 하는) 적어도 요구인 것처럼 시스템 자원이 할당된다. 마찬가지로 제2 클러스터에서 유저 E에게는 그의 요구가 어느 자원(R3 및 R4)에 대한 대기자(C 및 D)의 가장 우선순위가 높은 적어도 요구인 것처럼 시스템 자원이 할당된다.
모든 상기 실시예에서, 경쟁 체인은 순환적인데 이는 경쟁 체인의 화살표의 방향을 따라 링크를 추종함으로써 폐쇄 경로를 형성할 수 없다는 것을 의미한다. 이러한 폐쇄 경로가 있다면, 거기에는 자원 교착상태(resource deadlock)에 포함된 하나 이상의 유저를 종결함으로써 단지 파손될 수가 있는 자원 교착상태가 있을 것이다.
다음은 멀티시스템 구현예의 상세에 대해서 살펴보기로 한다. 도 4는 몇 개의 시스템 상의 자원과 트랜젝션 중에서 전형의 경쟁 시나리오를 도시한다. 동 도면에서 시스템 Sy1 상의 트랜젝션 T ×A(1의 요구 계수를 갖는)은 시스템 Sy2 상의 트랜젝션 T ×D(4의 요구 계수를 갖는) 및 트랜젝션 T ×B(2의 요구 계수를 갖는)이 보유하는 자원 Ra을 대기 중이다. 시스템 Sy2 상의 트랜젝션 T ×B는 시스템 Sy3 상의 트랜젝션 T ×E(5의 요구 계수를 갖는)와 같이 시스템 Sy3상의 거래 T ×C(3의 요구 계수를 갖는)가 보유한 자원 Rb을 대기중이다.
이 예에서 우리는 시스템 Sy1-Sy3이 어떻게 경쟁을 관리하는 지를 알기 위해서 시스템 Sy2을 살펴볼 것이다. 본 발명의 일형태에 따르면, 시스템 Sy2는 클러스터 내에 경쟁의 완전한 글로벌 그림을 저장하거나 유지하지 않고 다음의 표에 나타난 바와 같은 경쟁 정보의 서브세트를 저장하거나 유지한다.
시스템 Sy2
자원클러스터 자원명 로컬 시스템 정보 원격 대기자 정보 NQO
보유자 대기자 시스템명 NQO
Cab Ra TxB(2)TxD(4) Sy1 1 1
Cab Rb TxB(2) Sy3 5 2
Cab 클러스터 링크된 Ra, Rb
상기 표에 도시한 바와 같이, 시스템 Sy2은 보유자 또는 대기자 중 어느 하나로서 자원에 대해 경쟁 중인 그의 로컬 트랜젝션 T ×B 및 T ×D에 대한 경쟁 데이터("로컬 시스템 정보")의 완전한 세트를 저장한다. 로컬 트랜젝션이 경쟁 상태에 있는 각 자원에 대해, Sy2는 로컬 보유자 및 대기자의 고유의 "요구"값을 포함하는 로컬 보유자 및 대기자를 추적한다. 시스템 Sy2은 또한 공통 클러스터 Cab에자원 Ra 및 Rb을 할당하는데, 이는 적어도 하나의 로컬 트랜젝션(T ×B)이 하나의 요청 자원(Ra)의 소유자이자 또 다른 요청 자원(T ×B)의 대기자이기 때문이다.
상기 표에 도시되고 그밖에 달리 WLM의 로컬 인스턴스에 의해서 추적된 데이터(그대로 저장하거나 다른 데이터로부터 필요에 따라 그것을 도출한 데이터)는 로컬 클러스터 데이터, 원격 클러스터 데이터, 복합 클러스터 데이터를 포함한다. 로컬 클러스터 데이터는 로컬 시스템에서의 경쟁에 기초한 로컬 클러스터 내의 자원의 그룹화 및 각 로컬 클러스터에 대해 로컬 클러스터에서의 어느 자원에 대해 최우선 순위 요구 대기자의 요구를 나타낸다. 마찬가지로 원격 클러스터 데이터는 특정 원격 시스템에 대해 원격 시스템에서의 경쟁에 기초한 원격 클러스터 내의 자원의 그룹화 및 각 원격 클러스터에 대해 원격 클러스터에서의 어느 자원에 대한 최우선 순위 요구 대기자의 요구를 나타낸다. 마지막으로, 대응 로컬 데이터 및 원격 데이터를 결합하여 생성한 복합 클러스터 데이터는 시스템에 걸친 경쟁에 기초해서 복합 시스템에서의 자원의 그룹화와 각 복합 클러스터에 대해 복합 클러스터에서의 어느 자원에 대한 최우선 순위 요구 대기자의 요구를 나타낸다.
상기 테이블에서, "로컬 시스템 정보" 아래의 항목들은 로컬 클러스터 데이터를 나타내는데, 이 데이터는 자원을 대기하거나 경쟁 하의 자원을 보유하고 있는 로컬 유저라는 의미에서 로컬 경쟁에만 기초하고 있기 때문이다. 자원에 대한 최우선 순위 요구의 로컬 대기자의 요구는 "로컬 시스템 정보" 아래의 "대기자" 컬럼을 찾아서 확인 가능하다. 따라서 자원 Ra에 대해서 로컬 대기자(그에 따라 최우선 순위 요구의 로컬 대기자는 없음)는 없고, 자원 Rb에 대해서 최우선 순위 요구의 대기자(T ×B)는 2의 요구 계수를 갖는다. 로컬 경쟁에 기초해서 클러스터 내에서의 자원의 그룹화는 테이블에서는 명시적으로 도시되고 있지 않으나 로컬 유저가 또 다른 자원을 대기중인 동안 하나의 자원을 보유중인 경우 자원 엔트리쌍들을 찾아서 도출 가능하다. 따라서 상기 테이블에서 자원 Ra의 보유자로서 그리고 자원 Rb의 대기자로서의 유저 T ×B의 목록은 자원 Ra 및 Rb가 로컬 경쟁 데이터에 기초해서 공통 클러스터에 할당됨을 의미한다.
마찬가지로, "원격 대기자 정보" 아래의 항목은 원격 클러스터 데이터를 나타내는데, 데이터가 특정 원격 시스템에서의 경쟁에만 기초하고 때문이다. "시스템명" 컬럼의 자원에 대해 열거된 각 원격 시스템에 대해서, 최우선 순위 요구의 대기자의 요구는 인접한 "NQO" 컬럼에서 표시된다. 특정 원격 시스템으로부터의 경쟁 데이터에 기초해서 클러스터 내에서의 자원의 그룹화는 상기 테이블에서 동일하지 않으나, 복합 클러스터 할당을 얻기 위해 로컬 클러스터 할당 정보와 결합 가능하도록 로컬 WLM 인스턴스에 의해서 추적된다. 클러스터의 결합은 손쉬운 방법으로 행해진다. 따라서 제1 시스템이 자원 A 및 B를 공통 클러스터에 할당하고(그의 로컬 경쟁 데이터에 기초해서), 제2 시스템이 자원 B 및 C를 공통 클러스터에 할당하며, 제3 시스템이 자원 C 및 D를 공통 클러스터에 할당하면, 최종 결합 클러스터는 자원 A,B,C 및 D를 포함한다.
한편, 제1 컬럼("자원 클러스터")은 복합 클러스터 데이터를 나타내는데, 클러스터로의 자원의 할당이 로컬 클러스터 데이터 및 원격 클러스터 데이터에 기초하고 있기 때문이다. 또한 최종 컬럼("NQO")은 복합 클러스터 데이터를 나타내는데, 열거된 요구가 모든 시스템(로컬 시스템에 보고된 바와 같은)에 걸쳐서 자원에 대한 최우선순위 대기자의 요구이기 때문이다.
시스템 Sy2은 상기한 테이블의 형태로 경쟁 데이터를 저장하나, 보다 일반적으로는 이후 설명하는 바와 같이 조종의 편이를 최적화하기 위해 데이터 구조수를 데이터에 걸쳐서 분배할 것이다.
도 5는 로컬 자원 관리자로부터의 경쟁 통지에 응답하여 WLM의 로컬 인스턴스에 의해서 추종되는 일반적인 절차(500)를 도시하고 있다. 특정 순서의 단계들이 기술되고 있을지라도 각 단계를 수행할 때 필요한 입력 데이터가 이용 가능한 한 그 순서는 변경 가능하다.
절차(500)는 WLM 인스턴스가 그것이 로컬 유저와 관련이 있을 때 자원의 경쟁 상태의 변경을 로컬 자원 관리자로부터 통지를 받을 때 시작한다. 이러한 변경은 다음 중 어느 하나를 의미한다.
1. 로컬 유저는 또 다른 유저가 보유한 자원의 대기자가 된다.
2. 로컬 유저는 더 이상 자원의 대기자가 아니다. 이것은 로컬 유저가 보유자로서 자원을 획득하거나 로컬 유저가 보유자 또는 대기자 중 어느 하나로서 자원에 더 이상 관심이 없기 때문일 수가 있다(가능하게는 이후 실시예에서 기술되는 바와 같이 종료되어 더 이상 존재하지 않기 때문).
3. 로컬 유저가 보유한 자원은 이제 경쟁 상태에 있다.
4. 로컬 유저가 보유한 자원은 더 이상 경쟁 상태에 있지 않다.
로컬 자원 관리자로부터의 통지에 의해 자원과 로컬 보유자 및 대기자가 식별된다. 양호한 실시예에서, WLM은 별도로 도시하지 않은 SRM 콤포넌트로부터 보유자 및 대기자의 각각의 "요구"(본 발명에 따라 변경되는 요구가 아닌 진정한 요구)를 구한다. 즉 이 데이터의 특정 소스는 본 발명의 일부를 형성하지 않는다.
자원 관리자 인스턴스로부터의 통지에 응답하여, WLM의 로컬 인스턴스는 먼저 문제의 자원에 대한 로컬 경쟁 데이터를 갱신한다(단계 504). 이러한 갱신은 로컬 시스템 상에서 경쟁 상태의 새로운 자원에 대한 새로운 엔트리를 변경하는 것과 로컬 시스템 상에서 사전 경쟁 상태에 있는 자원에 대한 기존 엔트리를 수정하는 것과, 혹은 로컬 시스템에서 더 이상 경쟁 상태에 있지 않은 자원에 대한 기존 엔트리를 삭제하는 것을 포함할 수 있다. 이러한 로컬 경쟁 데이터는 유저의 "요구"와 함께 자원을 보유하거나 대기하는 어느 로컬 유저에게 통지하는 것을 포함한다.
로컬 경쟁 데이터를 갱신한 후, WLM의 로컬 인스턴스는 필요하다면 자원의 클러스터 할당을 갱신한다(단계 506). 디폴트에 의해 어떤 자원은 멤버로서 자체만을 포함하는 트리비얼 클러스터(trivial cluster)에 할당된다. 어떤 자원은 상기 할당이 로컬 경쟁 데이터에 의해 혹은 원격 경쟁 데이터에 의해 지시되면 적어도 하나의 다른 자원을 포함하는 넌트리비얼 클러스터(non-trivial cluster)에 할당된다. 어떤 자원은 동일한 로컬 유저가 또 다른 자원을 대기하는 동안에 한 자원을 보유 중임을 로컬 경쟁 데이터가 표시하면, 즉 그 자원이 또 다른 자원을 보유 중인 유저에 의해서 대기되거나 다른 자원을 대기 중인 유저가 보유한 자원임을 데이터가 표시하면 로컬 경쟁 데이터에 기초해서 또 다른 자원을 포함하는 클러스터에 할당된다. 적어도 하나의 원격 시스템이 두 자원을 원격 자원에 로컬인 경쟁 데이터에 기초해서 공통 클러스터에 할당함을 데이터가 표시하면, 한 자원이 원격 경쟁 데이터에 기초해서 또 다른 자원을 포함하는 클러스터에 할당된다. 따라서 이러한 클러스터 할당 단계는 (1)자원에 대한 클러스터 할당을 변경하지 않고 남겨두는 단계, 혹은 (2)변경된 로컬 경쟁 데이터 및 어느 기존의 원격 데이터가 이러한 할당을 지시하면 자원을 넌트리비얼 클러스터에 새로이 할당하는 단계, 혹은 (3)변경된 로컬 경쟁 데이터 및 어느 기존의 원격 데이터가 이러한 할당을 더 이상 지시하지 않으면 기존의 자원을 분해하는 단계를 포함할 수 있다. 자원의 클러스터 할당이 변경되면, 그 변경에 의해 영향을 받은 다른 자원에 대한 클러스터 정보가 이때 유사하게 수정된다.
동시에 WLM의 로컬 인스턴스는 자원에 대한 로컬 경쟁 데이터에 만 기초하는 자원에 대해 귀속된 "요구"값을 갱신한다(단계 508). 이러한 귀속된 요구는 자원에 대한 로컬 경쟁 데이터에 의해 지시되는 바와 같이 자원에 대한 어느 로컬 대기자의 최우선순위 요구이다. 이 단계가 클러스터 할당 단계를 추종하는 것으로서 도시되고 있지만, 단계들의 순서는 중요하지가 않은데, 그 이유는 단계가 다른 단계의 결과를 이용하고 있지 않기 때문이다.
자원에 대해 귀속된 요구값과 클러스터 할당을 갱신한 어느 시점에서, WLM의 로컬 인스턴스는 (1)로컬 및 원격 경쟁 데이터에 기초해서 자원에 대해 귀속된 요구값(상기 테이블의 "NQO" 컬럼), (2)로컬 및 원격 경쟁 데이터에 기초해서 복합 클러스터 내의 자원의 그룹화 및 (3)전체로서 자원 클러스터에 대해 귀속된 "요구"값을 포함한다(단계 510). 명명된 최종 요구는 복합 클러스터를 구성하는 어느 자원의 단순히 최우선 순위의 요구이며, 그 요구 또한 클러스터를 구성하는 자원에 대한 로컬 경쟁 데이터와 원격 경쟁 데이터에 기초한다.
다음에 WLM의 로컬 인스턴스는 갱신된 로컬 경쟁 데이터의 개요를 클러스터 내의 다른 시스템으로 브로드캐스트한다(단계 512). 이 데이터 개요는 다음을 포함한다.
1. 로컬 시스템명(local system name).
2. 자원명. 자원이 멀티시스템 자원이면, 자원명은 클러스터에 걸쳐서 확인된 바와 같은 자원의 실제명이다. 자원이 로컬 자원이면, 그 자원명은 이후 실시예 2에 기술된 바와 같이 실제 로컬 자원명에 대한 "프록시"로서 기능하는 일반적인 로컬 자원명이다.
3. 클러스터가 할당되는 클러스터를 식별하는 클러스터 ID. 이 값은 엄격히 로컬값이다. 수신 시스템은 두 자원이 송신 시스템 상의 동일 클러스터에 속하는 지를 확인하기 위해 이 값을 비교하나, 이 값의 구조 또는 콘텐츠를 취하지 않는다. 이후 실시예에서, 클러스터명은 읽는 사람이 용이하게 이해하도록 연상 장치(mnemonic device)로서 클러스터 내의 멀티시스템 자원의 연결(concatenation)로서 주어진다. 그러나, 양호한 실시예에서 "클러스터명"은 실제로 수신 시스템이 동일한 송신 시스템에서 발신하는 다른 클러스터 ID와의 동일성에 대해서 만 테스트할 수 있는 실제로 불명료한 "클러스터 ID"이다.
4. 송신 시스템의 "로컬 시스템 정보"에만 의존하는 자원에 대한 "요구", 즉 자원에 대한 최우선 순위의 대기자. 이는 송신 시스템이 그의 데이터 만이 고려되면 요구가 있어야만 한다는 것을 이 시스템이 고려하는 보우트(vote)로서 간주될 수 있다. 자원에 대한 로컬 대기자가 없다면, 로컬 요구가 없음을 표시하는 더미값이 이후 설명되는 실시예 1에 기술된 바와 같이 전송된다.
5. 송신 시스템에 관한 트랜젝션이 자원을 강제로 클러스터 내에 포함되게 하는지 여부의 표시, 즉 로컬 경쟁 데이터에 기초해서 넌트리비얼 클러스터에 자원이 할당되는지 여부의 표시. 이것은 예/아니오가 아니라 부울값(boolean value)이며 여기서는 로컬/원격의 값으로 주어질 것이다. 로컬은 (1)송신 시스템이 하나의 자원에 대한 대기자이자 또 다른 자원의 보유자인 적어도 하나의 트랜젝션을 가지며, (2)동일 트랜젝션이 이 자원의 대기자 또는 보유자 중 어느 하나라는 것을 의미한다(따라서 송신 시스템은 그룹으로서 관리될 트랜젝션에 연결된 자원 그룹을 필요로 한다). 원격은 송신 시스템의 로컬 데이터의 그 어느 것도 자원이 넌트리비얼 클러스터의 일부가 되는 것을 필요로 하지 않는다 것을 의미한다. 트리비얼 클러스터는 정확히 하나의 자원을 가지며, 항상 클러스터링 코드를 하나의 비트로 용이하게 만들기 위해 '원격'값을 가진다.
클러스터 재할당이 있었으면, WLM은 또한 재할당에 의해 영향을 받는 다른 자원에 대해 유사한 정보를 브로드캐스트한다.
마지막으로, 로컬 WLM 인스턴스는 로컬 유저의 "요구"값에 대해서 필요한 조정을 행한다(단계 514). 특히 WLM은 로컬 보유자의 요구가 자원을 담고 있는 클러스터 내의 최우선 순위의 대기자의 고유의 요구와 적어도 일치하도록 또 다른 자원(경쟁 체인의 헤드에 있는)의 대기자가 아닌 자원의 로컬 보유자의 "요구"를조정한다. 조정된 값은 로컬 유저에게 할당된(다른 유저에 귀속된 값으로 사용된) 고유의 요구값이 아니라 보유자에게 시스템 자원을 할당하기 위해 실제로 사용되는 귀속된 "요구"값이다. 따라서, 특정 요구값에 귀속하기 위한 이유가 없어지면, 유저에게 귀속된 요구값은 고유의 요구값 또는 덜 귀속된 요구값 중 어느 하나로 되돌아 간다.
도 6은 원격 시스템 상의 WLM 인스턴스로부터의 원격 경쟁 데이터의 브로드캐스트 수신에 응답하여 WLM의 로컬 인스턴스에 의해 추종된 일반적인 절차(600)를 도시한다(단계 602). 이러한 브로드캐스트는 각각의 영향을 받은 자원에 대해서 단계(512)의 설명에서 열거된 정보를 포함하고 있다.
이러한 통지를 받고, WLM의 로컬 인스턴스는 우선 문제의 자원에 대한 원격 경쟁 데이터를 갱신한다(단계 604). 단계(304)에서 기술된 로컬 경쟁 데이터를 갱신함에 따라서, 그 갱신은 로컬 시스템에서 경쟁 상태에 있는 자원에 대한 신규 엔트리를 새롭게 생성하는 것 또는, 로컬 시스템에서 경쟁 상태에 있는 자원에 대한 기존의 엔트리를 사전에 수정하는 것 또는, 로컬 시스템에서 더 이상 경쟁 상태에 있지 않은 자원에 대한 기존 엔트리를 삭제하는 것을 포함한다. 이러한 원격 경쟁 데이터는 자원에 대한 원격 시스템 상의 최상위 우선순위 대기자의 요구와 함께 자원의 대기자가 갖는 원격 시스템의 ID를 포함한다.
자원에 대한 원격 경쟁 데이터를 갱신 한 후, WLM의 로컬 인스턴스는 단계(510)에서와 같이 자원에 대한 그의 복합 클러스터 데이터를 갱신한다. 단계(510)에서와 같이, 갱신된 복합 클러스터는 (1)로컬 경쟁 데이터 및 원격 경쟁데이터에 기초한 귀속된 자원의 요구값과, (2)로컬 경쟁 데이터 및 원격 경쟁 데이터에 기초한 복합 클러스터 내에서의 자원의 그룹화와, (3)로컬 경쟁 데이터 및 원격 경쟁 데이터에 기초한 전체로서 자원 클러스터에 대해 귀속된 "요구"값을 포함한다(단계 606).
마지막으로 단계(514)에서와 같이 로컬 WLM 인스턴스는 자원을 담고 있는 클러스터 내의 최우선순위 대기자의 고유의 요구에 적어도 일치하도록 또 다른 자원의 대기자(경쟁 체인의 헤드에 있는)가 아닌 자원의 로컬 보유자의 "요구"를 조정함으로써 로컬 유저의 "요구"값에 대한 필요한 조정을 행한다(단계 608).
상세한 실시예 및 시나리오는 다음과 같다.
실시예 1("단순" 이행적 폐쇄의 경우)
이 실시예는 크로스 시스템의 이행적 폐쇄의 경우이다. 하나 이상의 자원을 포함하며 하나의 자원을 보유하는 비요구 유저는 움직이는 상이한 자원에서 대기중인 또 다른(요구하는) 유저를 얻기 위해 도움을 받는다. 그 토폴로지는 상이한 시스템 상에서 동일한 자원에 대한 보유자와 대기자를 갖는 멀티시스템이다.
이는 멀티시스템 자원 만이 동일 자원 클러스터 내에 포함되는 경우 발생한다는 것을 보여주며 그것은 "단순" 이행적 폐쇄의 경우이다.
이 실시예에서의 주석은 다음과 같다. 각 보유자 및 대기자가 트랜젝션(T ×n, 예 T ×A, T ×B)이며, NQO(eNQueue Order)값을 가진다. NQO값은 보다 작은값이 요구되는 값이다(도움에 보다 가치가 있는). 각 시스템에는 번호가 매겨지며(Sy1,Sy2), 이들 모든 시스템은 동일한 "시스템 클러스터"내에 있다. 각자원은 소문자(Ra,Rb)를 가지며 범위에 있어 멀티시스템이다. 각 자원 클러스터는 클러스터 내의 자원의 리스트를 보여주는 하나 이상의 소문자(Ca,Cb)를 가진다. 자원을 얻기위한 요청은 그밖에 달리 주석되지 않으면 배타적인 제어를 위한 것이다.
시간 순서적인 사건 순서는 다음과 같다.
시간(t) 사건
1 경쟁 없음
2 Sy1: T ×B는 Ra를 얻는다.
3 Sy2: T ×C는 Rb를 얻는다.
6 Sy1: T ×B는 Rb를 요청하고 T ×C가 그것을 보유하기 때문에 일시중지된다.
7 Sy1 T ×A는 Ra를 요청하고 T ×B가 그것을 보유하기 때문에 일시중지된다.
10 Sy1 T ×C는 Rb를 해제한다.
11 Sy1 T ×B는 재개되고 Rb를 얻는다.
12 Sy1 T ×B는 Rb를 해제한다.
13 Sy1 T ×B는 Ra를 해제한다.
14 Sy1 T ×A는 재개되고 Ra를 얻는다(경쟁없음)
t<6인 경우, 경쟁은 없어 양 시스템 상에는 WLM 경쟁 데이터가 없다.
t=6일 때, 경쟁을 전개한다(Sy1: T ×B는 Rb를 요청하고 T ×C가 그것을 보유하고 있기 때문에 일시 중지된다). 결과로서, Sy1:
1. 자원 Rb에 대한 경쟁 추적을 시작한다.
2. Rb만으로 구성된 자원 클러스터를 생성한다.
3. Rb에 대한 로컬 대기자 리스트에 T ×B를 가산한다.
이 때 Sy1에 관한 상태는 다음과 같다.
시스템 Sy1
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cb Rb TxB(4)
Sy1이 다음에 그의 자원 토폴로지를 재평가하는 경우, Cb에 대한 NQP가 계산된다.
1. Sy1이 알고 있는 Rb의 토폴로지에 포함된 최우선순위 엔티티(사실상 이 시점에서는 오직 하나)가 T ×B이므로, Rb의 NQO로서 T ×B의 NQO(4)를 이용한다.
2. Cb의 모든 자원에 대해 NQO를 계산하면, Cb의 모든 자원 NQO의 최우선순위로서 Cb에 대한 NQO를 계산한다. 이는 4의 NQO를 Rb에서 Cb로 전파한다.
3. Rb가 멀티시스템 자원이므로, Sy1은 Rb의 정보를 시스템 클러스터 내의 모든 다른 시스템으로 브로드캐스트한다. 전술한 바와 같이, Rb를 위해 전송된 정보는 시스템명, 자원명, 클러스터 ID, 송신 시스템의 "로컬 시스템"에 만 의존한 자원의 NQO 및 송신 시스템 상의 트랜젝션이 강제로 자원을 클러스터내에 포함시킴을 "로컬"로 설정될 때 표시하는 부울값(로컬/원격)을 포함한다.
4. 상기 설명에 기초해서, 송신된 데이터는 Sy1,Rb,Cb,4,원격이다.
이 때 Sy1의 상태는 다음과 같다.
시스템 Sy1
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cb Rb TxB(4) 4
Sy2는 이러한 정보를 수신하며, 동시에 Sy2상에서 실행되는 자원 관리자 인스턴스는 Rb에 관한 경쟁을 Sy2에 통보한다. 동작 순서는 무의미하나 전술한 순서로 열거될 것이다. 코드 내의 "트릭"은 원격 데이터 도달 시 Sy2 상의 자원 관리자가 경쟁에 이겼으면, 그 코드는 이미 구축된 등가 클러스터를 갖고 있고 원격 정보를 기존의 데이터에 부가함을 인정하여야 한다는 것이다.
Sy1으로부터 원격 정보를 수신한 후의 Sy2의 상태는 다음과 같다.
시스템 Sy2
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cb Rb Sy1 4
일단 Sy2의 로컬 자원 관리자가 Sy2에 Rb에 관한 경쟁을 통보한 다음에, Sy1 및 Sy2의 상태는 다음과 같다.
시스템 Sy1
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cb Rb TxB(4) 4
시스템 Sy2
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cb Rb TxC(5) Sy1 4 4
Rb에 대한 Sy2상의 로컬 NQO는 5가 아니라 4이며, 4는 T ×C의 NQO이다. 첫째 자원 보유자의 NQO는 결코 자원에 NQO에 영향을 미치지 않는다. 즉 보유자가 동작중이며, WLM의 정책 조정 코드는 이미 NQO를 명시적으로 이용하고 있기 때문이다. 둘째, Sy2는 이제 시스템 클러스터의 어딘가에 NQO가 4인 트랜젝션이 대기중임을 안다. 즉 4는 5 보다 우선순위가 높은 것으로서 정의되며, Rb에 대한 NQO는 4 보다 우선순위가 낮아야 만 한다.
t=7일 때 또 다른 자원에서 경쟁이 전개된다(Sy2: T ×A는 Ra를 요청하며 T ×B가 그것을 보유하고 있기 때문에 일시중지된다). 도 7a는 t=7인 다음의 토폴로지를 도시하고 있다.
자원 Ra 또한 멀티시스템 범위를 가지므로, 이는 아래와 같은 최종 상태로 Rb에 대해서 발생된 바와 같이 유사한 핸드 쉐이킹 비트가 된다.
시스템 Sy1
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Ca Ra Sy2 1 1
Cb Rb TxB(4) 4
시스템 Sy2
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Ca Ra TxA(1) 1
Cb Rb TxC(5) Sy1 4 4
일단 Sy1상의 자원 관리자 인스턴스가 Sy1에 Ra에 관한 경쟁을 알린 다음, Sy1은 (새로운) 클러스터 Cab에서 Ca 및 Cb를 연결하는 중대한 단계를 행한다. 단순히 Ra에 대한 경쟁을 통보받은 후, 유효(그러나 지금까지 불완전한) 상태가 될 수 있다(이것이 2개의 이산(discrete) 단계이거나 혹은 하나의 통합된 단계인지는 코드 구현예를 따르며, 그들은 이산적으로 도시되고 있다).
시스템 Sy1
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Ca Ra TxB(4) Sy2 1 1
Cb Rb TxB(4) 4
Sy1이 다음에 그의 토폴로지를 재평가하면, 그것은 단일 트랜젝션(TxB)이 2 개의 상이한 자원(Ra 및 Rb)과 함께 포함되는 로컬 정보에 기초하여 알며, 그에 따라 그 자원의 관리는 통합되어야 한다(즉, Ra 및 Rb는 동일한 자원 클러스터 Cab에 있어야 한다). 클러스터의 NQO는 그의 멤버 자원(이 경우 1)의 최우선순위 NQO이다.
시스템 Sy1
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cab Ra TxB(4) Sy2 1 1
Cab Rb TxB(4) 4
Cab 클러스터 링크된 Ra 및 Rb 1
Ra 및 Rb가 함께 관리되어야 하는 "신호"는 경쟁 하의 하나 이상의 자원을 보유중이고 경쟁 하의 하나 이상의 다른 자원을 대기중인 적어도 하나의 트랜젝션의 존재이다.
토폴로지에 대한 그의 뷰를 재평가한 후, Sy1(전과 같이)은 클러스터의 다른 시스템에 대한 그의 뷰를 브로드캐스트한다.
1. Sy1, Ra, Cab, 더미 NQO값, 로컬.
2. Sy1, Rb, Cab, 4, 로컬.
더미 NQO값은 단순히 WLM이 발행할 수 있는 것 보다 우선순위가 낮은 요구이다. Sy1은 로컬 대기자가 없기 때문에 로컬 NQO값은 가지고 있지 않고, 그의 로컬 데이터에 기초하여 Ra 및 Rb가 유니트로서 관리되어야 한다는 "가상 메시지"를 송신할 필요가 있다.
Sy2는 다음의 결과를 산출하는 데이터(Ra 및 Rb가 유니트로서 관리되어야 하고 Ca 및 Cb는 병합되어야 한다는 사실을 포함하는)를 통합한다.
시스템 Sy2
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cab Ra TxA(1) 1
Cab Rb TxC(5) Sy1 4 4
Cab 클러스터 링크된 Ra 및 Rb 1
이제 두 시스템 어느 것도 완전한 토폴로지의 카피를 갖고 있지 않을지라도 두 시스템은 문제(최상위 우선순위 대개자의 NQO값)의 중요성에 동의한다
t=10일 때, 경쟁은 풀리기 시작한다(Sy2: TxC가 Rb를 릴리즈한다). Rb의 Sy2의 뷰는 이제 원격 데이터 만을 포함한다.
시스템 Sy1
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cab Ra TxB(4) Sy2 1 1
Cab Rb TxB(4) 4
Cab 클러스터 링크된 Ra 및 Rb 1
시스템 Sy2
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cab Ra TxA(1) 1
Cab Rb Sy1 4 4
Cab 클러스터 링크된 Ra 및 Rb 1
t=11인 경우, Sy1상의 자원 관리자 인스턴스는 Rb가 이용 가능하고 그것을 그의 대기 행렬 상의 제1 대기자에게 제공한다는 것을 안다(Sy1: T ×B는 재개되고 Rb를 얻는다). 이제 자원 관리자의 대기 행렬이 비었기 때문에, WLM에 Rb의 경쟁이 끝났음을 알린다. Sy1은 그의 자원 클러스터로부터 Rb를 제거하는데, 이는 각 시스템내에 어느 단일 자원은 단지 단일 클러스터에 만 속하기 때문이다(비록 2개의 시스템이 타이밍 윈도우로 인해 상이한 클러스터에서 동일한 자원을 갖고 있을 지라도)
시스템 Sy1
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cb Rb TxB(4) Sy2 1 1
동시에 Sy2 상의 자원 관리자 인스턴스는 Rb가 더 이상 경쟁에 참여하지 않고(자원 관리자의 구현예에 따라 이는 t=10인 경우 보다 앞서 발생한다), 그의 자원 토폴로지로부터 Rb를 제거한다.
시스템 Sy2
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cb Rb TxA(1) 1
t=12인 경우, 릴리즈된 자원이 더 이상 경쟁 상태에 있지 않기 때문에 변경은 없다(Sy1: TxB가 Rb를 릴리즈한다).
t=13인 경우, 경쟁은 완전히 풀린다(Sy1: TxB는 Ra를 릴리즈한다). Sy1 상의 자원 관리자 인스턴스는 WLM에 Ra의 경쟁의 끝을 통보한다.
시스템 Sy1
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
t=14인 경우, Sy2는 경쟁의 끝을 안다(Sy2:TxA는 재개되고 Ra를 얻는다(경쟁없음)). Sy2 상의 자원 관리자 인스턴스는 WLM에게 Ra의 경재의 끝을 신호 전송한다.
시스템 Sy2
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
실시예 2(로컬 자원이 있는 이행적 폐쇄의 경우)
이 실시예는 또 다른 크로스 시스템의 이행적 폐쇄의 경우이다. 즉 하나 이상의 자원이 포함되어 있으며, 하나의 자원을 보유하고 있는 비요구 유저는 움직이는 상이한 자원을 대기중인 또 다른(요구) 유저를 얻기 위해 도움을 받아야 만 한다. 다시 토폴로지는 상이한 시스템에서 동일 자원에 대한 보유자이자 대기자인 멀티시스템이다. 또한, 실시예 1과 비교해서, 각 시스템은 순수하게 로컬(비멀티시스템)인 자원과 동일 트랜젝션을 포함하는 경쟁을 갖는다. 이는 멀티시스템과 단일 시스템 모두가 동일한 자원 클러스터내에 포함되어 있는 경우 발생한다는 것을 보여주고 있다.
주석은 멀티시스템 자원이 대문자 R(Ra,Rb)를 사용하고 로컬 자원은 소문자 r(rc,rd)를 사용한다는 점을 제외하곤 실시예 1과 동일하다. 로컬(=RL)은 "원격 시스템에 대해서 범위가 로컬인 자원의 일부 미지 세트"에 대한 프록시명이다. 실제값은 상관이 없으며, 유일한 요건은 모든 참가자는 그 값에 동의하고 어느 유효한 자원명과 충돌하지 않도록 하는 것이다.
사건의 순서는 시간 순서적으로 다음과 같다.
시간(t) 사건
1 경쟁 없음
2 Sy1: TxB는 Ra를 얻는다.
3 Sy2: TxC는 Rb를 얻는다.
4 Sy1: TxB는 r1을 얻는다.
5 Sy2: TxA는 rj를 얻는다.
6 Sy1: TxB는 Ra를 요청하고, TxC가 그것을 보유하고 있어 일시 중지된다.
7 Sy2: TxA는 Ra를 요청하고, TxB가 그것을 보유하고 있어 일시 중지된다.
8 Sy1: TxS는 r1을 요청하고, TxB가 그것을 보유하고 있어 일시 중지된다.
9 Sy2: TxT는 rj를 요청하고, TxA가 그것을 보유하고 있어 일시 중지된다.
10 Sy2: TxC가 Rb를 릴리즈한다.
11 Sy1: TxB가 재개되고 Rb를 얻는다.
12 Sy1: TxB가 Rb를 릴리즈한다.
13 Sy1: TxB가 Ra를 릴리즈한다.
14 Sy1: TxA가 재개되고 Ra를 얻는다(멀티시스템 경쟁이 없음).
15 Sy1: TxB는 r1을 릴리즈한다.
16 Sy1: TxS가 재개되고 r1을 얻는다.
17 Sy2: TxA는 rj을 릴리즈한다.
18 Sy2: TxT이 재개되고 rj를 얻는다.
t<8인 경우, 각 시스템에서 경쟁 상태는 실시예 1에서와 정확히 같으므로 여기서 더 이상의 설명은 생략하기로 한다.
t=8인 경우, 경쟁은 로컬(비멀티시스템) 자원 r1(TxS는 r1을 요청하고, TxB가 그것을 보유하고 있어 일시 중지된다)에서 전개된다. 자원 r1은 단지 Sy1 상의 자원 클러스터내에서 통합된다. r1에 대한 NQO는 TxS로부터 3이며, 클러스터 Cab1는 여전히 Ra 때문에 1의 NQO를 가진다.
시스템 Sy1
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cab1 Ra TxB(4) Sy2 1 1
Cab1 Rb TxB(4) 4
Cab1 rl TxB(4) TxS(3) 3
Cab1 클러스터 연결된 Ra,Rb,rl 1
Sy1이 그의 클러스터 뷰를 브로드캐스트할 때, Ra 및 Rb가 다른 시스템에 비주얼 상태이어야 하는 클러스터내에 자원이기 때문에 rl을 직접적으로 브로드캐스트하지 않을 것이다. 대신에 모든 Syl의 로컬 자원(우리는 단지 rl 될 것이라고 아는)에 대해 프록시(R로컬)를 브로드캐스트할 것이다.
1. Sy1, Ra, Cabl, 더미 NQO값, 로컬.
2. Sy1, Ra, Cabl, 4, 로컬.
3. Sy1, R로컬, Cabl, 3, 로컬.
이러한 데이터를 수신하여 그의 토폴로지를 갱신한 다음에, Sy2는 이것이 다음의 상태가 될 것이라고 판단한다.
시스템 Sy2
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
CabL Ra TxA(1) 1
CabL Rb TxC(5) Sy1 4 4
CabL R로컬 Sy1 3 3
CabL 클러스터 Sy1:연결된 Ra,Rb,rl 1
t=9인 경우, 또 다른 로컬 자원은 다른 시스템 상의 경쟁을 도시한다(Sy2: TxT는 rj를 요청하고 TxA가 그것을 보유하고 있기 때문에 일시중지된다). 도 7b는 t=9 다음의 토폴로지를 도시한다.
유사한 처리가 Sy1에서 행해진 바와 같이 Sy2에서 발생하며, 다음에 Sy2는그의 데이터를 Sy1에 브로드캐스트한다. Sy2는 다음을 브로드캐스트한다.
1. Sy2, Ra, CabL, 1, 로컬
2. Sy2, Ra, Cabl, 더미 NQO값, 원격.
3. Sy2, R로컬, Cabl, 2, 로컬.
상기 브로드캐스트에서, Sy2상의 로컬 자원의 프록시명은 이후 설명하는 바와 같이 프록시가 전체로서 시스템 클러스터가 아니라 각 자원 클러스터에 대해서 정의되기 때문에 클러스터명에 의해서 묵시적으로 자격이 주어진다. 또한, Ra 및 R로컬에 대한 브로드캐스트 만이 부울값 "로컬"을 포함하고 있는데, 이는 단지 이들 두 자원이 로컬 데이터에 기초해서 공통 클러스터에 할당 가능하기 때문이다.
시스템 Sy1
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cab1L Ra TxB(4) Sy2 1 1
Cab1L Rb TxB(4) 4
Cab1L rl TxB(4) TxS(3) 3
CablL R로컬 Sy2 2 2
Cab1L 클러스터 연결된 Ra,Rb,rl Sy2:연결된 Ra,Rb,R로컬 1
시스템 Sy2
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
CabLj Ra TxA(1) 1
CabLj Rb TxC(5) Sy1 4 4
CabLj R로컬 Sy1 3 3
CabLj rj TxA(1) TxT(2) 2
CabLj 클러스터 연결된 Ra,Rb,rj Sy1:연결된 Ra,Rb,R로컬 1
우리가 "Sy2,2" 엔트리를 Sy2상의 R로컬에 대한 "원격 대기 정보"에 가산하거나 더미 트랜젝션을 Sy2상의 "로컬 시스템 정보 대기자"에 가산하여 모든 로컬 자원의 경쟁을 요약할 수 없는 이유가 있다. 상기 테이블은 이러한 최적화없이 도시되고 있다. 그것은 R로컬이 상기 방법들 중 하나를 통해 로컬 상태 데이터를 요약하도록 아마도 브로드캐스트 코드를 보다 단순화할 것이다. 다음에 R로컬은 멀티시스템 범위로 생성되며 브로드캐스트 코드에서 특별한 경우는 필요하지 않을 것이다. 분명히 특별한 경우가 필요한 다른 경우가 있다. 사실상 시스템 당 하나가 아니라 자원 클러스터 당 하나의 R로컬을 허용하여야 한다.
t=10인 경우, 경쟁은 풀리기 시작한다(Sy2: TxC는 Rb를 릴리즈한다). 이제 Rb의 Sy2의 뷰는 단지 원격 데이터 만을 포함한다.
시스템 Sy1
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cab1L Ra TxB(4) Sy2 1 1
Cab1L Rb TxB(4) 4
Cab1L rl TxB(4) TxS(3) 3
CablL R로컬 Sy2 2 2
Cab1L 클러스터 연결된 Ra,Rb,rl Sy2:연결된 Ra,Rb,R로컬 1
시스템 Sy2
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
CabLj Ra TxA(1) 1
CabLj Rb Sy1 4 4
CabLj R로컬 Sy1 3 3
CabLj rj TxA(1) TxT(2) 2
CabLj 클러스터 연결된 Ra,Rb,rj Sy1:연결된 Ra,Rb,R로컬 1
t=11인 경우, Sy1상의 자원 관리자는 Rb가 이용 가능하며 그것을 그의 대기 행렬 상의 제1 대기자에게 제공한다는 것을 안다(Sy1: TxB는 재개되고 Rb를 얻는다). 자원 관리자의 대기 행렬이 이제 빈 상태이므로, WLM에게 통보하여 Rb의 경쟁이 끝났음을 알린다. 동시에 Sy2상의 자원 관리자 인스턴스는 Rb가 더 이상 경쟁 관계에 있지 않음을 전달받는다(자원 관리자의 구현예에 따라서 이는 t=10에서와 같이 초기에 발생 가능하다). 두 시스템은 그의 자원 클러스터에서 Rb를 제거하여야 하는데 그 이유는 각 시스템 내에서 어느 단일 자원은 단일 클러스터에 만 속할수가 있다. 두 시스템은 자원 토폴로지로 인해 영구히 혹은 타이밍 윈도우로 인해 일시적으로 동일 모멘트에서 상이한 클러스터 내에 동일한 자원을 가질 수가 있다. 2 개 이상의 시스템이 포함되면 비대칭 토폴로지의 실시예가 드러난다.
시스템 Sy1
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Ca1L Ra TxB(4) Sy2 1 1
Ca1L rl TxB(4) TxS(3) 3
CalL R로컬 Sy2 2 2
Ca1L 클러스터 연결된 Ra,Rb,rl Sy2:연결된 Ra,Rb,R로컬 1
시스템 Sy2
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
CaLj Ra TxA(1) 1
CaLj R로컬 Sy1 3 3
CaLj rj TxA(1) TxT(2) 2
CaLj 클러스터 연결된 Ra,Rb,rj Sy1:연결된 Ra,Rb,R로컬 1
t=12인 경우, 릴리즈된 자원이 더 이상 경쟁 상태에 있지 않으므로 변화는 없다(Sy1: TxB를 Rb를 릴리즈한다).
t=13인 경우, 멀티시스템 경쟁은 완전히 풀린다(Sy1: TxB를 Ra를 릴리즈한다). Sy1상의 자원 관리자는 Ra의 경쟁의 끝을 신호 전송하기 위해 WLM에 통지한다.
이제 Sy1 상의 자원 클러스터가 단지 멀티시스템 경쟁에 포함된 원결 로컬 자원의 프록시 및 로컬 자원으로 만 구성되어 있기 때문에, 프록시는 클러스터로부터 제거될 수가 있다. Sy2는 Ra의 경쟁의 끝을 통보 받았으므로, 클러스터의 일부로서 그의 프록시를 여전히 유지한다.
시스템 Sy1
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cl rl TxB(4) TxS(3) 3
시스템 Sy2
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
CaLj Ra TxA(1) 1
CaLj R로컬 Sy1 3 3
CaLj rj TxA(1) TxT(2) 2
CaLj 클러스터 연결된 Ra,Rb,rj Sy1:연결된 Ra,Rb,R로컬 1
t=14일 때, Sy2는 마찬가지로 경쟁의 끝을 안다(Sy2: TxA는 재개되고 Ra를 얻는다). Sy2상의 자원 관리자 인스턴스는 Ra의 경쟁의 끝을 WLM에게 통보한다.
시스템 Sy2
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cj rj TxA(1) TxT(2) 2
t=15일 때, 한 로컬 자원 상의 경쟁은 TxS가 재개될 때 끝난다(Sy1: TxB는 rl을 릴리즈한다). 일단 자원 관리자가 Sy1에게 rl상의 경쟁이 종료하였음을 통보하고, Syl의 토폴로지는 다시 빈 상태가 된다.
t=17일 때, 최종 경쟁이 종료하고(Sy2: TxA는 rj를 릴리즈한다), TxT가 재개된다. 일단 자원 관리자는 Sy2에게 rl상의 경쟁이 종료하였음을 알리고, Sy2의 토폴로지는 다시 빈 상태가 된다.
실시예 3: 클러스터를 쪼개기(Breaking a Cluster)(BreakClu1)
이 실시예는 포함된 자원들 중 어느 하나에 대한 경쟁을 끝내지 않고 자원 클러스터를 소형 클러스터로 쪼개는 것을 포함한다. Ra 및 Rb를 연결하는 트랜젝션은 취소되고 각 자원이 다른 대기자를 갖고 있기 때문에 두 자원은 여전히 그 후에 경쟁 상태에 있다. 주석은 실시예 1에서와 같다.
사건들의 순서는 시간 순서적으로 다음과 같다.
시간(t) 사건
1 경쟁 없음
2 Sy1: TxD는 Rb를 얻는다.
3 Sy2: TxA는 Ra를 얻는다.
4 Sy1: TxD는 Ra를 요청하고, TxA가 그것을 보유하고 있어 일시 중지된다.
5 Sy1: TxB는 Ra를 요청하고, TxA가 그것을 보유하고 있어 일시 중지된다.
6 Sy1: TxE는 Rb을 요청하고, TxD가 그것을 보유하고 있어 일시 중지된다.
7 Sy2: TxC는 Rb를 요청하고, TxD가 그것을 보유하고 있어 일시 중지된다.
8 Sy2: TxD가 연산자 또는 시간에 의해 제거되고 롤백된다(취소된다).
t<4의 경우, 두 시스템 상에 WLM 경쟁 데이터가 없으므로, 경쟁은 없다.
시간 t=4와 t=7 사이에서 발생하는 사건은 앞의 실시예에서 커버되었다. 도 7c는 t=7 다음의 토폴로지를 도시한다. 이 때의 상태 데이터는 다음과 같다.
시스템 Sy1
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cab Ra TxB(4)TxD(2) 2
Cab Rb TxD(2) TxE(3) Sy2 5 3
Cab 클러스터 링크된 Ra 및 Rb 2
시스템 Sy2
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cab Ra TxA(1) Sy1 2 2
Cab Rb TxC(5) Sy1 3 3
Cab 클러스터 Sy1:링크된 Ra, Rb 2
트랜젝션 TxD가 t=8에서 끝날 때(어떤 이유로든), 각 시스템 상의 자원 관리자 인스턴스는 모든 대기 요청을 제거하고 TxD는 미해결의 (Ra)를 가지고 보유한(Rb) 모든 자원을 릴리즈한다. 일단 WLM이 이들 토롤로지의 변화에 대해서 통보를 받으면, Sy1은 자원 클러스터 Cab가 2개의 피스로 쪼개져야 만 하는 것을 안다. 두 개가 링크 연결되어 있고 연결되어야 한는 원격 시스템의 데이터가 없기 때문에 Sy1이 로컬로 판정된다. 그러나 두 자원은 여전히 경쟁 상태에 있다. 다음에 Sy1은 그의 토폴로지 데이터를 브로드캐스트하고, Sy2상의 "Sy1:Ra, Rb 링크된" 데이터는 제거되며, Sy2는 또한 그의 토폴로지를 갱신한다. 자원 관리자 인스턴스가 소유권을 재할당하기 전에 WLM이 이 모든 것을 달성한다고 가정하면, 그 최종 상태는 다음과 같다.
시스템 Sy1
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Ca Ra TxB(4) 4
Cb Rb TxB(3) Sy2 5 3
시스템 Sy2
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Ca Ra TxA(1) Sy1 4 4
Cb Rb TxC(5) Sy1 3 3
따라서 이는 포함된 자원들 중 하나에 대한 경쟁의 끝에 종속하기 보다는 Ra 및 Rb 를 함께 관리하기 위해 "메모리"를 제거하기 위한 어떤 메카니즘을 갖는 것을 의미한다. 일부 대안은 다음과 같다.
1. Sy1은 소정의 자원 클러스터를 필요로 함을 더 이상 믿지 않음을 나타내는 데이터를 명시적으로 송신한다. 예컨대, Ra, Ca, 4, 원격을 송신한다. Sy2가 Sy1의 초기 데이터를 Ra로 대체하면, Sy1으로부터 들어오는 Ra 및 Rb를 함께 관리하기 위한 어떤 요건을 더 이상 알지 못한다. Sy2가 클러스터를 계속하기 위해 다른 "보우트(vote)"를 갖고 있지 않으면, Sy2는 로컬로 클러스터를 쪼갤 수가 있다.
2. Sy1의 데이터는 구 데이터가 된다(그래서 "곧" 대체되지 않으면 삭제된다). 이는 아마도 데이터가 수령자에 의해 삭제된 후 "타임 투 라이브(TTL)"값을 송신함으로써 구현될 것이다. 이 메카니즘은 장애가 있는 시스템, 손상 시스템, 버그, 복구 문제 등에 대한 안전한 네트를 제공할 수가 있다. TTL은 또한 통신 대기시간을 투명하게 하고 공통 인터벌에 동의하는 송신자 및 수신자를 필요로 하지 않는 다는 이점을 갖고 있다.
대부분의 강건한 솔루션은 아마도 모두 3개가 있을 것이다. 경쟁의 끝을 신호 전송하는 자원 관리자를 전역적으로 다루는 경우를 고려하자. 그 경우란 "클러스터를 쪼개기" 메시지를 송신하기 충분히 긴 자원 상에서 보유할 필요가 없도록 "Ra" 블록을 로컬로 삭제하는 경우이다. 자원에 대한 경쟁이 원격이 아니라 로컬로 종료하고, 로컬 시스템의 보우트가 넌트리비얼 클러스터를 강제로 구축되게 하는 것이라면, TTL값은 원격 시스템에서 클러스터의 파괴를 야기한다. 클러스터를 쪼갤 필요가 있고 경쟁이 종료하지 않았으면, 여전히 "Ra" 블록을 가지며 "클러스터 쪼개기" 메시지는 어쨋든 송신한 것의 자연스런 결과이다.
실시예 4: 클러스터 쪼개기(BreakClu2)
이 실시예에서, 공통 보유자에 의해서 만 결합된 자원 클러스터는 하나의 자원의 "n" 클러스터로서 혹은 "n" 자원의 하나의 자원 클러스터로서 취급 가능하다. 이 결과는 문서화를 가치있게 하기 충분히 놀랍다.
주석은 실시예 1에서와 같다.
사건들의 순서는 시간 순서적으로 다음과 같다.
시간(t) 사건
1 경쟁 없음
2 Sy2: TxA는 Ra 및 Rb를 얻는다.
3 Sy1: TxB는 Ra를 요청하고, TxA가 그것을 보유하고 있어 일시 중지된다.
4 Sy1: TxC는 Ra를 요청하고, TxA가 그것을 보유하고 있어 일시 중지된다.
5 Sy1: TxD는 Rb을 요청하고, TxA가 그것을 보유하고 있어 일시 중지된다.
6 Sy1: TxE는 Rb를 요청하고, TxA가 그것을 보유하고 있어 일시 중지된다.
도 7d는 t=6 다음의 토폴로지를 도시하고 있다.
t=6을 통해 발생한 사건들은 앞의 실시예에서 망라되었다. 여기서 흥미있는 것은 하나가 다른 것을 어떻게 정의하는 냐에 따라서, 하나는 하나의 자원 클러스터 또는 두개의 자원 클러스터로서 이 상황을 다룰 수가 있다. 한 자원의 보유자이자 상이한 자원의 대기자로서 동일 트랜젝션을 가진 시스템에 의해 자원 클러스터를 식별할 수 있는 앞의 실시예로부터의 정의를 이용하면(다음에 시스템 클러스터에 모든 시스템에 걸쳐서 이 지식을 개괄하면), 명확히 상기 도면은 예측될 수 있는 있는 하나가 아닌 2개의 자원 클러스터를 도시한다.
자원 클러스터 Cab를 형성하는 데 있어서 값이 없고, 그렇게 하는데 포함되는 오버헤드가 있기 때문에(보다 정확히 말하자면, 클러스터가 쪼개져야 만 하는 지를 판단할 때 포함된 오버헤드가 있기 때문에), 이러한 정의가 계속해서 사용될 것이다. 따라서 상기 도면에 대응하는 상태 데이터는 다음과 같다.
시스템 Sy1
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Ca Ra TxB(4),TxC(5) 4
Cb Rb TxD(2)TxE(1) 1
시스템 Sy2
자원클러스터 자원명 로컬시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Ca Ra TxA(3) Sy1 4 4
Cb Rb TxA(3) Sy1 1 1
이러한 정의가 갖는 고유의 가정은 WLM이 각 자원을 시험할 작업을 돕고 NQO값에 기초해서 필요에 따라 보유자를 도우려고 할 때이다. 이 토폴로지가 단일 자원 클러스터로서 취급되면, TxA는 클러스터 Cab로부터 1의 NQO를 물려받을 것이다. 이를 2개의 클러스터로서 취급하면, WLM은 다음과 같이 결론지어진다.
1. 3의 보유자 NQO가 4의 자원 클러스터의 NQO 보다 요구 우선순위가 높기 때문에 Ca는 도움을 필요로 하지 않는다.
2. 1의 클러스터 NQO가 3의 TxA의 NQO 보다 요구 우선순위가 높기 때문에 Cb는 도움을 필요로 한다.
이러한 시나리오가 하나 또는 두 자원 클러스터로서 취급되는지 관계없이 TxA는 1의 NQO를 물려받는 것을 종료하기 때문에, 둘다를 선택할 수가 있다. 2개의 "트리비얼"(단일 자원) 클러스터를 관리하는 것은 복합 클러스터가 분해될 필요가 있을 때를 위한 테스트로 인해 단일 복합 클러스터 보다 효율적이기 때문에, 이 경우는 2개의 트리비얼 자원 클러스터로서 취급된다.
실시예 5: 단순 3 웨이 시나리오(3wayEasy)
이 실시예는 단순 3 웨이 시스템 시나리오이다. 그것은 또한 이행적 폐쇄의 경우이다. 그의 비대칭 토폴로지는 시스템을 강제하여 자원 관리자로부터 온 로컬 대기자/보유자 정보가 없는 자원을 추적한다. 주석은 실시예 1에서와 같다.
사건의 시간적인 순서는 다음과 같다.
시간(t) 사건
1 경쟁 없음
2 Sy2: TxB는 Ra를 얻는다.
3 Sy3: TxC는 Rb를 얻는다.
4 Sy1: TxA는 Ra를 요청하고, TxB가 그것을 보유하고 있어 일시 중지된다.
5 Sy2: TxB는 Rb를 요청하고, TxC가 그것을 보유하고 있어 일시 중지된다.
6 Sy3: TxC는 Rb를 릴리즈한다.
7 Sy2: TxB는 Rb를 얻는다.
8 Sy2: TxB는 Ra를 얻는다.
9 Sy1: TxA는 Ra를 얻는다.
t=5를 통해 발생하는 사건들은 이전 실시예들에서 망라되었다. 도 7e는 t=5 다음의 토폴로지를 도시한다. 이 때의 상태 데이터는 다음과 같다.
시스템 Sy1
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cab Ra TxA(1) 1
Cab Rb Sy2 2 2
Cab 클러스터 Sy2:링크된 Ra 및 Rb 1
시스템 Sy2
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cab Ra TxB(2) Sy1 1 1
Cab Rb TxB(2) 2
Cab 클러스터 링크된 Ra 및 Rb 1
시스템 Sy3
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cab Ra Sy1 1 1
Cab Rb TxC(3) Sy2 2 2
Cab 클러스터 Sy2:링크된 Ra 및 Rb 1
여기서 흥미있는 것은 Sy3가 Ra와 관련이 없다는 것이며, TxC의 NQO가 1(Sy1상의 TxA로부터 계승된)이어야 함을 판정하기 위해 Ra에 대한 적어도 일부 데이터를 추적한다. 이는 Sy1 및 Sy2가 어느 다른 시스템이 Ra와 연관되는 지를 알지 못하지만, 이것은 모든 시스템들이 그의 최근 토폴로지 데이터(즉, 물론 이동 타겟)를 브로드캐스트한 후 단지 "발견가능" 할지라도 많은 곤란을 야기하지 않아야 한다. 이처럼 Sy1 및 Sy2는 어쨋든 그들의 데이터를 브로드캐스트하여야 한다. 부가적인 부담은 Sy3가 그의 피어(peer)로부터 수신하는 요약 데이터를 부기하여야 하며 야기된 복잡한 트랜젝션 베이스 로직의 Ra와 연관되지 않고 가능한 한 길게 머무른다는 것이다. 이것은 아마도 클러스터의 NQO와 NQO로 이끌린 시스템의 ID를 브로드캐스트함으로써 제거될 수 있으나, 클러스터를 다시 작은 피스로 쪼개기 위한 시간에 이르렀을 때 그 표면에는 일부 문제가 있다. 각 자원을 트래킹하는 것은 NQO로 가져갈 수 있는 어떤 것에 대해 작은 값을 지불하는 것 같다.
이러한 상태로부터 풀리면 이전 실시예에서와 같이 진행한다.
실시예 6: 클러스터의 쪼개기 기능이 있는 3웨이 시나리오(3wayBreakClu)
이 실시예는 3 시스템 이행적 폐쇄의 경우이며, 큰 클러스터는 우리를 몰고 가는 "경쟁의 끝" 사건없이 보다 작은 것으로 쪼개진다. 이 실시예는 또한 자원의 복수 공유 보유자를 가진 토폴로지를 도시한다. 주석은 실시예 1에서와 같다.
사건의 시간적인 순서는 다음과 같다.
시간(t) 사건
1 경쟁 없음
2 Sy2: T ×B는 공유 Ra를 얻는다.
3 Sy2: T ×D는 공유 Rb를 얻는다.
4 Sy3: TxC는 Rb를 얻는다.
5 Sy1: T×A는 Ra를 요청하고 T ×B가 그것을 보유하기 때문에 일시중지된다
6 Sy2: T ×B는 Rb를 요청하고 T ×C가 그것을 보유하기 때문에 일시중지된다.
7 Sy1 T ×E는 Rb를 요청하고 T ×C가 그것을 보유하기 때문에 일시중지된다.
8 Sy3: T ×C는 Rb를 릴리즈한다.
9 Sy2: T ×B는 Rb를 얻는다.
10 Sy2 T ×B는 종료되고 Ra 및 Rb를 해제한다.
12 Sy3 T ×E는 종료되고 Rb를 얻는다.
13 Sy2 T ×D는 Ra를 해제한다.
14 Sy2 T ×D는 Ra를 해제한다.
t=7을 통해 발생하는 사건들은 이전 실시예에서 망라되었다. 이전 실시예에서와 같이, Sy3는 Ra에 대한 적어도 일부를 추적하고 Ra와는 관련이 없다.
도 7f는 t=7 다음의 토폴로지를 도시하며, 이 때의 상태 데이터는 다음과 같다.
시스템 Sy1
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cab Ra TxA(1) 1
Cab Rb Sy2Sy3 25 2
Cab 클러스터 링크된 Ra 및 Rb 1
시스템 Sy2
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cab Ra TxB(2)TxD(4) Sy1 1 1
Cab Rb TxB(2) Sy3 5 2
Cab 클러스터 링크된 Ra 및 Rb 1
시스템 Sy3
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Cab Ra Sy1 1 1
Cab Rb TxC(3) TxE(5) Sy2 2 2
Cab 클러스터 링크된 Ra 및 Rb 1
이 상태로부터 풀리면 이전 실시예에서와 같이 진행한다. t=8 및 t=9일 때의 사건에서 이 시간은 자원 클러스터 Cab가 더 이상 필요하지 않고, 이전 실시예 마다 클러스터는 이 경우에서 쪼개질것이다. t=9 다음까지 도 7g에 도시한 상태를 가지며 다음의 테이블과 같다.
시스템 Sy1
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Ca Ra TxA(1) 1
Ca Rb Sy3 5 5
시스템 Sy2
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Ca Ra TxB(2)TxD(4) Sy1 1 1
Cb Rb TxB(2) Sy3 5 5
시스템 Sy3
자원클러스터 자원명 로컬 시스템 정보 원격대기자정보 NQO
보유자 대기자 시스템명 NQO
Ca Ra Sy1 1 1
Ca Rb TxE(5) 5
포함된 자원 중 어느 하나에 대해 경쟁을 클리어하지 않고 자원 클러스터가 쪼개지는 이전 경우와 같이, 단일 트랜젝션(여기서 TxB)이 경쟁하에서 자원을 보유하거나 대기하는 한 동시에 두개의 구별 자원 클러스터와 함께 포함될 수 있음을 알 수가 있다. 경쟁 하에 있는 어느 자원을 대기하자 마자, 보유 또는 대기하는 경쟁하의 모든 자원은 단일 자원 클러스터로서 관리되어야 한다.
도 8a 내지 8h는 본 발명에 따른 경쟁 데이터를 저장하기 위한 가능한 데이터 구조 세트를 도시하고 있다.
도 8a와 관련하여, 자원 경쟁 제어 테이블(RCCT)(802)이 사용되어 단일 WLM 서브콤포넌트에 대해서 만 관심의 각종 항목을 앵커한다.
1. 자원 클러스터 요소(RCLU)(806)에 대한 앵커(804)(도 8b)
2. 자원 요소(RSRC)(810)에 대한 앵커(808)(도 8c)
3. 트랜젝션 테이블(TRXNT)(814)에 대한 앵커(812)(도 8f)
도 8b와 관련하여, 각 자원 클러스터 요소(RCLU)(806)는 단일 자원 클러스터와 관련된 데이터를 포함하고 있다. 그것은 다음을 포함한다.
1. 클러스터 ID(816)
2. 클러스터 NQO(818)(클러스터 내의 모든 최소 자원)
3. 클러스터 내의 자원중 자원 요소(RSRC)(도 8c)에 대한 앵커(820)
도 8c와 관련하여, 각 자원 요소(RSRC)(810)는 경쟁하의 자원을 기술하고 있다.
1. 자원 핑거프린트/명(822)
2. 자원 NQO(824)(브로드캐스트 경로 상의 효율성에 대해 로컬/시스템 클러스터값을 별개로 유지하길 원할 수가 있다)
3. 클러스터 요소(RCLU)(806)에 대한 포인터(826)(도 8b)
4. 로컬 보유자에 대한 자원 경쟁 대기행렬 요소(RCQE)(830)의 앵커(828)(도 8h)
5. 로컬 대기자에 대한 자원 경쟁 대기행렬 요소(RCQE)(830)의 앵커(832)
6. 이 자원에 대한 원격 데이터를 위한 시스템 데이터 앵커(SDA)(836) 중 앵커(834)(도 8d)
도 8d와 관련하여, 각 시스템 데이터 앵커(SDA)(836)는 단일 시스템을 위한 원격 시스템 정보의 앵커로서 기능한다. 그것은 다음을 포함하고 있다.
1. 원격 시스템 ID(838)
2. 이 시스템으로부터 원격 시스템 데이터 요소(RSDE)(도 8e)에 대한 앵커(840)
3. 순서 번호를 송신하는 공지의 원격 시스템의 최우선 순위를 나타내는 값(844). 즉, 아웃바운드 경로에서 송신 시스템은 토폴로지 데이터의 각 배치에 대해서 동일한 값(타임스탬프와 같은)을 포함한다. 각 수신 시스템은 이 값에 대해서 입력 메시지의 값을 비교한다. 그 메시지가 낮은 값(수신 시스템은 동일 송신자로부터 나중 데이터를 이미 수신하였기 때문에 쓸모가 없다는 것을 의미하는)을 가지면, 그 메시지는 무시된다.
4. 토폴로지 메시지가 원격 시스템으로부터 수신될 때 로컬 클록을 이용하여 갱신된 타임스탬프(846). 도 8e와 관련하여 각 자원 시스템 데이터 요소(RSDE)(842)는 자원에 대한 원격 시스템 정보를 담고 있다. 그것은 다음을 포함한다.
1. 시스템을 위한 시스템 데이터 앵커(SDA)에 대한 포인터(848)(도 8d)
2. 자원을 위한 자원 요소(RSRC)(810)에 대한 포인터(850)(도 8c)
3. 동일 자원을 위한 다른 RSDE(842)에 대한 대기행렬 링크(852)
4. 원격 시스템 상의 대기자들만을 고려한 원격 시스템의 NQO(854)
5. 디버그에 대한 송신 타임스탬프(856)(송신 시 원격 시스템에 대한 클록값)
6. 디버그 및 TTL 처리를 위해 수신 시 로컬 클록값을 나타내는 타임스탬프(858)
7. 이 자원에 대한 원격 클러스터 ID(860). 원격 시스템이 보유자 및 대기자인 거래를 가졌으면, 포함된 모든 자원은 동일 클러스터 ID를 가질 것이며 동일 클러스터 내에 있을 필요가 있다. 상이한 시스템으로부터의 원격 데이터가 어느 자원이 클러스터에 속하는 지에 관해 일치하지 않으면, 클러스터는 국부적으로 공조된다.
8. 얼마나 종종 원격 시스템이 데이터 플러스 추가 비트를 송신하는 지에 대응하는 원격 시스템에 의해 공급된 라이브(TTL) 지속기간(862)에 대한 시간
도 8f와 관련하여, 트랜젝션 테이블(TRXNT)(814)을 사용하여 단일 WLM 서브콤포넌트에 대한 관심의 각종 항목들을 앵커한다. 그것은 다음을 포함한다.
1. 트랜젝션 테이블(814)이 구축되었을 때 어드레스 공간의 수(864)
2. 트랜젝션 테이블(814)이 구축되었을 때 인클리브의 수(866)
3. 트랜젝션 테이블의 시작부터 제1 테이블 엔트리(868)까지의 오프셋(868)
4. 어드레스 공간인 트랜젝션에 대한 엔트리의 에어리어(TRXNE)(870)(수 864까지)
5. 인클리브되는 트랜젝션에 대한 엔트리의 에어리어(TRXNE)(872)(수 866까지)
도 8g와 관련하여 트랜젝션 테이블의 에어리어(TRXNE)(870,872) 내의 각 엔트리(TRXNE)(874)는 적어도 하나의 자원의 경쟁이 WLM에 의해서 관리되는 자원과 연관된 단일 트랜젝션에 대한 정보를 담고 있다. 그것은 다음을 포함한다.
1. 타입(876): 어드레스 공간 또는 인클리브
2. 이 트랜젝션에 대한 어드레스 공간 ID(ASID) 또는 인클리브 ID(878)
3. 이 트랜젝션에 대한 어드레스 공간 또는 인클리브 토큰(880). ASID 및 인클리브 ID는 재사용 가능하다. 토큰은 ID를 재사용 가능할지라도 단일 이미지 내에서 유일함을 제공한다.
4. 이 트랜젝션이 보유한 자원에 대한 경쟁 요소의 대기행렬(884)의 (RCQE)(830)의 앵커(882)
5. 이 트랜젝션이 대기한 자원에 대한 경쟁 요소의 대기행렬(888)의(RCQE)(830)의 앵커(886)
6. 이 트랜젝션의 NQO(888)
도 8h와 관련하여, 각 자원 경쟁 대기행렬 요소(RCQE)(830)는 자원에 대한 트랜젝션(보유자 또는 대기자)과 관련이 있다. 그것은 다음을 포함한다.
1. TRXNT(810) 내의 트랜젝션에 대한 TRXNE(874)의 오프셋(892)
2. 이 트랜젝션에 대한 다음/이전 RCQE(830)를 위한 대기행렬 링크(894)
3. 자원의 자원 요소(RSRC)(810)에 대한 포인터(896)
4. 이 자원의 다음/이전 RCQE(830)을 위한 대기행렬 링크(898)
5. 보유/대기 비트(899)(대기행렬 검증을 위한)
도 9는 도 4에 도시되고 도 4의 설명이 따르는 테이블 내의 Sy2에 대해 요약된 경쟁 시나리오가 어떻게 도 8a 내지 3h에 도시한 각종 데이터 구조에 의해서 캡쳐되는 지를 도시한다.
특정 실시예가 도시되고 기술되었지만 당업자에게는 이에 대한 각종 변형이 가능함이 자명하다. 따라서 공통 클러스터의 일부라 여겨지는(로컬 또는 원격 경쟁 데이터에 기초해서) 모든 자원에 대한 공통 클러스터 ID를 송신하기 보다는 대신에 로컬 시스템은 로컬 경쟁 데이터에 기초해서 공통 클러스터에 속하는 공지의 자원에 대해서 만 공통 클러스터 ID를 사용한다. 당업자에게는 여전히 다른 변형례가 가능함이 자명하다.
본 발명에 따른 구성에 의하면 경쟁 체인을 식별하여 멀티시스템 클러스터내의 자원에 엑세스하는 유저들 중에서 경쟁을 관리함으로써, 유저에게 최적의 시스템 자원을 할당할 수가 있다.

Claims (20)

  1. 정보 취급 시스템 내의 하나 이상의 자원에 엑세스하는 유저들 중에서 경쟁을 관리하기 위한 방법으로, 상기 유저 각각은 할당된 요구를 갖고 있고 엑세스하려는 자원에 대한 보유자 또는 대기자일 수가 있으며, 상기 방법은
    유저 체인 내의 다음 유저를 갖는 유저 각각이 상기 다음 유저가 대기중인 자원을 보유중인 유저 체인의 헤드에 있는 대기자가 아닌 유저를 식별하는 단계와,
    상기 유저의 요구가 상기 체인 내에서 최우선순위 대기자의 적어도 요구인 것처럼 상기 체인의 헤드에 있는 상기 유저를 관리하는 단계
    를 포함하는 경쟁 관리 방법.
  2. 제1항에 있어서, 상기 관리 단계는,
    상기 유저의 요구가 상기 체인 내에서 상기 최우선순위 대기자의 적어도 요구인 것처럼 상기 체인의 헤드에 있는 상기 유저에게 시스템 자원을 할당하는 단계를 포함하는 경쟁 관리 방법.
  3. 제1항에 있어서, 상기 식별 단계는,
    상기 클러스터 내의 또 다른 자원을 보유 중인 유저에 의해서 대기중이거나 클러스터 내의 또 다른 자원을 대기 중인 유저에 의해서 클러스터 내의 각 자원이 보유되고 있는 상기 자원의 클러스터를 정의하는 단계를 포함하는 경쟁 관리 방법.
  4. 제3항에 있어서, 상기 관리 단계는,
    상기 클러스터 내의 어느 자원에 대한 최우선순위 대기자의 요구를 결정하는 단계를 포함하는 경쟁 관리 방법.
  5. 정보 취급 시스템 내의 하나 이상의 자원에 엑세스하는 유저들 중에서 경쟁을 관리하기 위한 방법으로, 상기 유저 각각은 할당된 요구를 갖고 있고 엑세스하려는 자원에 대한 보유자 또는 대기자일 수가 있으며, 상기 방법은
    상기 자원의 클러스터를 식별하는 단계-상기 클러스터 내의 각 자원은 클러스터 내의 또 다른 자원을 대기 중인 유저에 의해서 보유되거나 클러스터 내의 또 다른 자원을 보유 중인 유저에 의해서 대기되고 있다-와,
    상기 클러스터 내의 어느 자원에 대한 최상위 우선순위 대기자의 요구를 결정하는 단계와.
    어느 다른 자원을 대기 중이 아닌 상기 클러스터 내의 자원의 보유자를 식별하는 단계와,
    상기 보유자의 요구가 상기 클러스터 내의 어느 자원에 대한 상기 최상위 우선순위 대기자의 적어도 요구인 것처럼 상기 자원의 보유자에게 시스템 자원을 할당하는 단계
    를 포함하는 자원 관리 방법.
  6. 제5항에 있어서, 상기 방법은
    상기 보유자의 요구가 상기 클러스터 내의 어느 자원에 대한 상기 최우선순위 대기자의 적어도 요구인 것처럼 상기 자원의 보유자에게 시스템 자원을 할당하는 단계를 포함하는 자원 관리 방법.
  7. 제5항에 있어서, 상기 클러스터를 식별하는 단계는 자원의 경쟁 상태에 있어서 변화의 통지를 수신하여 수행되며,
    클러스터 내의 또 다른 자원을 대기중인 유저가 지금 자원을 보유하고 있거나 클러스터 내의 또 다른 자원을 보유중인 유저에 의해서 그 자원이 대기되면 클러스터로 상기 자원을 새로이 할당하는 단계를 포함하는 자원 관리 방법.
  8. 제5항에 있어서, 상기 클러스터를 식별하는 단계는 자원의 경쟁 상태에 있어서 변화의 통지를 수신하여 수행되며,
    클러스터 내의 또 다른 자원을 대기 중인 유저에 의해서 그 자원이 더 이상 보유되지 않거나 클러스터 내의 또 다른 자원을 보유 중인 유저에 의해서 대기되고 있으면 클러스터로부터 그 자원을 제거하는 단계를 포함하는 자원 관리 방법.
  9. 정보 취급 시스템 내의 하나 이상의 자원에 엑세스하는 유저들 중에서 경쟁을 관리하기 위한 장치로, 상기 유저 각각은 할당된 요구를 갖고 있고 엑세스하려는 자원에 대한 보유자 또는 대기자일 수가 있으며, 상기 장치는
    유저 체인의 헤드에 있는 대기자가 아닌 유저를 식별하는 로직-상기 유저 체인 내의 다음 유저를 갖는 유저 각각은 상기 다음 유저가 대기중인 자원을 보유중이다-과,
    상기 유저의 요구가 상기 체인 내에서 최우선순위 대기자의 적어도 요구인 것처럼 상기 체인의 헤드에 있는 상기 유저를 관리하는 로직
    을 포함하는 경쟁 관리 장치.
  10. 제9항에 있어서, 상기 관리 로직은,
    상기 유저의 요구가 상기 체인 내에서 상기 최우선순위 대기자의 적어도 요구인 것처럼 상기 체인의 헤드에 있는 상기 유저에게 시스템 자원을 할당하는 경쟁 관리 장치
  11. 정보 취급 시스템 내의 하나 이상의 자원에 엑세스하는 유저들 중에서 경쟁을 관리하기 위한 장치로, 상기 유저 각각은 할당된 요구를 갖고 있고 엑세스하려는 자원에 대한 보유자 또는 대기자일 수가 있으며, 상기 장치는
    상기 자원의 클러스터를 식별하는 로직-상기 클러스터 내의 각 자원은 상기 클러스터 내의 또 다른 자원을 대기 중인 유저에 의해서 보유되거나 클러스터 내의 또 다른 자원을 보유중인 유저에 의해서 대기되고 있다-과,
    상기 클러스터 내의 어느 자원의 최우선순위 대기자의 요구를 결정하는 로직과,
    어느 다른 자원을 대기 중이 아닌 상기 클러스터 내의 자원의 보유자를 식별하는 로직과,
    상기 보유자의 요구가 상기 클러스터 내의 어느 자원에 대한 상기 최우선순위 대기자의 적어도 요구인 것처럼 상기 자원의 보유자를 관리하는 로직
    을 포함하는 경쟁 관리 장치.
  12. 제11항에 있어서, 상기 관리 로직은 보유자의 요구가 상기 클러스터 내의 어느 자원에 대한 상기 최우선순위 대기자의 적어도 요구인 것처럼 상기 자원의 상기 보유자에게 시스템 자원을 할당하는 경쟁 관리 장치.
  13. 제11항에 있어서, 상기 클러스터를 식별하는 로직은 자원의 경쟁 상태에 있어서 변화의 통지를 수신하여, 그 자원이 클러스터 내의 또 다른 자원을 대기중인 유저가 지금 보유하거나 클러스터 내의 또 다른 자원을 보유중인 유저에 의해서 대기되고 있으면 클러스터로 상기 자원을 새로이 할당하는 자원 관리 장치.
  14. 제11항에 있어서, 상기 클러스터를 식별하는 로직은 자원의 경쟁 상태에 있어서 변화의 통지를 수신하여, 그 자원이 클러스터 내의 또 다른 자원을 대기 중인 유저에 의해서 더 이상 보유중이지 않거나 클러스터 내의 또 다른 자원을 보유 중인 유저에 의해서 대기되고 있으면 클러스터로부터 그 자원을 제거하는 자원 관리 장치.
  15. 정보 취급 시스템 내의 하나 이상의 자원에 엑세스하는 유저들 중에서 경쟁을 관리하기 위한 방법 단계들을 수행하도록 머신에 의해 실행 가능한 명령어의 프로그램을 실체적으로 구현하는 머신에 의해 판독 가능한 프로그램 기억 장치로, 상기 유저 각각은 할당된 요구를 갖고 있고 엑세스하려는 자원에 대한 보유자 또는 대기자일 수가 있으며, 상기 방법은
    유저 체인의 헤드에 있는 대기자가 아닌 유저를 식별하는 단계-유저 체인 내의 다음 유저를 갖는 유저 각각은 상기 다음 유저가 대기중인 자원을 보유중이다-와,
    상기 유저의 요구가 상기 체인 내에서 최우선순위 대기자의 요구인 것처럼 상기 체인의 헤드에 있는 상기 유저를 관리하는 단계
    를 포함하는 프로그램 기억 장치 장치.
  16. 제15항에 있어서, 상기 관리 단계는,
    상기 유저의 요구가 상기 체인 내에서 상기 최우선순위 대기자의 적어도 요구인 것처럼 상기 체인의 헤드에 있는 상기 유저에게 시스템 자원을 할당하는 단계를 포함하는 경쟁 관리 방법.
  17. 정보 취급 시스템 내의 하나 이상의 자원에 엑세스하는 유저들 중에서 경쟁을 관리하기 위한 방법 단계들을 수행하도록 머신에 의해 실행 가능한 명령어의 프로그램을 실체적으로 구현하는 머신에 의해 판독 가능한 프로그램 기억 장치로, 상기 유저 각각은 할당된 요구를 갖고 있고 엑세스하려는 자원에 대한 보유자 또는 대기자일 수가 있으며, 상기 방법은
    상기 자원의 클러스터를 식별하는 단계-상기 클러스터 내의 각 자원은 클러스터 내의 또 다른 자원을 대기 중인 유저에 의해서 보유되거나 클러스터 내의 또 다른 자원을 보유 중인 유저에 의해서 대기되고 있다-와,
    상기 클러스터 내의 어느 자원에 대한 최상위 우선순위 대기자의 요구를 결정하는 단계와.
    어느 다른 자원을 대기 중이 아닌 상기 클러스터 내의 자원의 보유자를 식별하는 단계와,
    보유자의 요구가 상기 클러스터 내의 어느 자원에 대한 상기 최상위 우선순위 대기자의 적어도 요구인 것처럼 상기 자원의 보유자에게 시스템 자원을 할당하는 단계
    를 포함하는 프로그램 기억 장치.
  18. 제17항에 있어서, 상기 관리 단계는
    상기 보유자의 요구가 상기 클러스터 내의 어느 자원에 대한 상기 최우선순위 대기자의 적어도 요구인 것처럼 상기 자원의 보유자에게 시스템 자원을 할당하는 단계를 포함하는 프로그램 기억 장치.
  19. 제17항에 있어서, 상기 클러스터를 식별하는 단계는 자원의 경쟁 상태에 있어서 변화의 통지를 수신하여 수행되며,
    클러스터 내의 또 다른 자원을 대기중인 유저가 지금 그 자원을 보유하거나 클러스터 내의 또 다른 자원을 보유중인 유저에 의해서 그 자원이 대기되는 클러스터로 상기 자원을 새로이 할당하는 단계를 포함하는 프로그램 기억 장치.
  20. 제17항에 있어서, 상기 클러스터를 식별하는 단계는 자원의 경쟁 상태에 있어서 변화의 통지를 수신하여 수행되며,
    클러스터 내의 또 다른 자원을 대기 중인 유저에 의해서 그 자원이 더 이상 보유되지 않거나 클러스터 내의 또 다른 자원을 보유 중인 유저에 의해서 대기되고 있으면 클러스터로부터 그 자원을 제거하는 단계를 포함하는 프로그램 기억 장치.
KR1020030099765A 2002-12-31 2003-12-30 자원 경쟁을 관리하기 위한 방법 및 장치 KR100586285B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/335,046 US20040139142A1 (en) 2002-12-31 2002-12-31 Method and apparatus for managing resource contention
US10/335,046 2002-12-31

Publications (2)

Publication Number Publication Date
KR20040062407A true KR20040062407A (ko) 2004-07-07
KR100586285B1 KR100586285B1 (ko) 2006-06-07

Family

ID=32710898

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030099765A KR100586285B1 (ko) 2002-12-31 2003-12-30 자원 경쟁을 관리하기 위한 방법 및 장치

Country Status (4)

Country Link
US (1) US20040139142A1 (ko)
JP (1) JP3910577B2 (ko)
KR (1) KR100586285B1 (ko)
CN (1) CN1256671C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101279717B1 (ko) * 2007-06-27 2013-06-27 마이크로소프트 코포레이션 복합 자원 관리기

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20070061429A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Optimizing utilization of application resources
US7870226B2 (en) * 2006-03-24 2011-01-11 International Business Machines Corporation Method and system for an update synchronization of a domain information file
US8719300B2 (en) * 2008-10-15 2014-05-06 International Business Machines Corporation Catalog performance plus
KR20110122361A (ko) * 2010-05-04 2011-11-10 주식회사 팬택 무선통신시스템에서의 자원할당 방법 및 그 장치
CN102346744B (zh) 2010-07-30 2013-11-13 国际商业机器公司 用于在多租户应用系统中处理物化表的装置
US8510739B2 (en) 2010-09-16 2013-08-13 International Business Machines Corporation Shared request grouping in a computing system
US8918764B2 (en) * 2011-09-21 2014-12-23 International Business Machines Corporation Selective trace facility
US9053141B2 (en) 2011-10-31 2015-06-09 International Business Machines Corporation Serialization of access to data in multi-mainframe computing environments
US9032484B2 (en) 2011-10-31 2015-05-12 International Business Machines Corporation Access control in a hybrid environment
US9274837B2 (en) * 2013-05-17 2016-03-01 International Business Machines Corporation Assigning levels of pools of resources to a super process having sub-processes
US9722908B2 (en) 2013-10-17 2017-08-01 International Business Machines Corporation Problem determination in a hybrid environment
CN105335237B (zh) * 2015-11-09 2018-09-21 浪潮电子信息产业股份有限公司 一种操作系统的死锁预防方法
US9858107B2 (en) 2016-01-14 2018-01-02 International Business Machines Corporation Method and apparatus for resolving contention at the hypervisor level
US9965727B2 (en) 2016-01-14 2018-05-08 International Business Machines Corporation Method and apparatus for resolving contention in a computer system
US10257053B2 (en) 2016-06-28 2019-04-09 International Business Machines Corporation Analyzing contention data and following resource blockers to find root causes of computer problems
US10698785B2 (en) 2017-05-30 2020-06-30 International Business Machines Corporation Task management based on an access workload

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4189771A (en) * 1977-10-11 1980-02-19 International Business Machines Corporation Method and means for the detection of deadlock among waiting tasks in a multiprocessing, multiprogramming CPU environment
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5202993A (en) * 1991-02-27 1993-04-13 Sun Microsystems, Inc. Method and apparatus for cost-based heuristic instruction scheduling
US5339427A (en) * 1992-03-30 1994-08-16 International Business Machines Corporation Method and apparatus for distributed locking of shared data, employing a central coupling facility
US5444693A (en) * 1992-04-27 1995-08-22 At&T Corp. System for restoration of communications networks
DE69322057T2 (de) * 1992-10-24 1999-06-10 Int Computers Ltd Verteiltes Datenverarbeitungssystem
US5719868A (en) * 1995-10-05 1998-02-17 Rockwell International Dynamic distributed, multi-channel time division multiple access slot assignment method for a network of nodes
US5805900A (en) * 1996-09-26 1998-09-08 International Business Machines Corporation Method and apparatus for serializing resource access requests in a multisystem complex
US6038651A (en) * 1998-03-23 2000-03-14 International Business Machines Corporation SMP clusters with remote resource managers for distributing work to other clusters while reducing bus traffic to a minimum
US6442564B1 (en) * 1999-06-14 2002-08-27 International Business Machines Corporation Facilitating workload management by using a location forwarding capability
US6681241B1 (en) * 1999-08-12 2004-01-20 International Business Machines Corporation Resource contention monitoring employing time-ordered entries in a blocking queue and waiting queue
US6721775B1 (en) * 1999-08-12 2004-04-13 International Business Machines Corporation Resource contention analysis employing time-ordered entries in a blocking queue and waiting queue
CA2302959A1 (en) * 2000-03-23 2001-09-23 Ibm Canada Limited-Ibm Canada Limitee Priority resource allocation in programming environments
US20020083063A1 (en) * 2000-12-26 2002-06-27 Bull Hn Information Systems Inc. Software and data processing system with priority queue dispatching

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101279717B1 (ko) * 2007-06-27 2013-06-27 마이크로소프트 코포레이션 복합 자원 관리기

Also Published As

Publication number Publication date
KR100586285B1 (ko) 2006-06-07
JP3910577B2 (ja) 2007-04-25
US20040139142A1 (en) 2004-07-15
CN1256671C (zh) 2006-05-17
CN1514366A (zh) 2004-07-21
JP2004213628A (ja) 2004-07-29

Similar Documents

Publication Publication Date Title
KR100586285B1 (ko) 자원 경쟁을 관리하기 위한 방법 및 장치
US7228351B2 (en) Method and apparatus for managing resource contention in a multisystem cluster
JP5121732B2 (ja) 適応型の領域ロック処理
US8095657B2 (en) First thread lock management for distributed data systems
US7093230B2 (en) Lock management thread pools for distributed data systems
US9165157B2 (en) Methods and apparatus facilitating access to storage among multiple computers
US7848261B2 (en) Systems and methods for providing a quiescing protocol
US7810098B2 (en) Allocating resources across multiple nodes in a hierarchical data processing system according to a decentralized policy
US8112528B2 (en) Mechanisms for providing exclusive access to shared resources in a database
JPH1165863A (ja) 共有資源管理方法
US8650270B2 (en) Distributed computing with multiple coordinated component collections
US7458076B2 (en) Method, apparatus, and computer program product for dynamically tuning a data processing system by identifying and boosting holders of contentious locks
US20100031269A1 (en) Lock Contention Reduction
US7565406B2 (en) Last thread lock management for multi-threaded process and distributed data systems
US8261280B2 (en) Prevention of deadlock in a distributed computing environment
CN108228330A (zh) 一种串行化的多进程任务调度方法和装置
JP2007219741A (ja) 情報処理装置、情報処理方法、記録媒体およびプログラム
US20050155011A1 (en) Method and system for restricting access in a distributed job environment
Ben-Hafaiedh et al. Building distributed controllers for systems with priorities
JP2001516083A (ja) マルチポイントパブリッシュ/サブスクライブ通信における証明付メッセージの配送およびキュー操作
US20040019660A1 (en) Lock holding multi-threaded processes for distibuted data systems
JP2008544371A (ja) ロック関連の一貫性欠如を処理する方法
US6799172B2 (en) Method and system for removal of resource manager affinity during restart in a transaction processing system
US20110022712A1 (en) Multiprocessor computer and network computing system
JPH0417041A (ja) 分散データ管理システムにおける資源管理方式

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