KR20010085985A - 분산 프로세스에 의해 수행되는 데이터 처리 요청을평가하기 위한 방법 및 장치 - Google Patents

분산 프로세스에 의해 수행되는 데이터 처리 요청을평가하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20010085985A
KR20010085985A KR1020017005459A KR20017005459A KR20010085985A KR 20010085985 A KR20010085985 A KR 20010085985A KR 1020017005459 A KR1020017005459 A KR 1020017005459A KR 20017005459 A KR20017005459 A KR 20017005459A KR 20010085985 A KR20010085985 A KR 20010085985A
Authority
KR
South Korea
Prior art keywords
processes
token
message
data processing
support
Prior art date
Application number
KR1020017005459A
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 KR20010085985A publication Critical patent/KR20010085985A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/458Synchronisation, e.g. post-wait, barriers, locks

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터 베이스 처리 요청은 분산 프로세스에 의해서 수행된다. 태스크와 관련된 각 분산 프로세스는 일부 데이터 처리 기능을 수행하고, 프로세스를 포함하여 또 다른 프로세스에 대한 실제 태스크 메시지와 함께 정보를 식별한다. 마지막으로, 식별 정보와 함께 메시지는 제어 프로세스에 도달한 후, 상기 식별 정보로 부터 태스크와 관련된 모든 프로세스로 부터의 모든 메시지가 태스크에서 자신의 부분을 완료했는지를 연역한다. 완료되었다고 연역된다면, 태스크는 완료된다.

Description

분산 프로세스에 의해 수행되는 데이터 처리 요청을 평가하기 위한 방법 및 장치{METHOD AND APPARATUS FOR EVALUATING A DATA PROCESSING REQUEST PERFORMED BY DISTRIBUTED PROCESSES}
데이터 베이스 관리에서, 다수의 컴퓨터 사용자에 의해 다음의 공유되는 액세스를 위해 데이터는 전자적으로 판독 가능한 형태로 구성되어 저장된다. 데이터는 개념적으로, 관계 형태, 테이블 형태, 계층적 형태 또는 다른 형태로 구성될 수 있는데, 데이터 베이스 엔진은 사용자가 이러한 데이터를 번지 지정하는 질의를 처리 의뢰할 수 있게 하고, 질의에 반응하여 응답 세트(answer set)로서 알려진 출력을 수신할 수 있게 한다. 다음은 질의의 일 예이다. 특정 회사에서 피고용자의 레지스터가 있다고 하자. 각 피고용자에 대해서 (특히)피고용자의 이름, 급여 및 나이가 저장된다. 가능한 질의 하나는 "급여가 $20,000 이상이고 30세 이하인 피고용자의 이름을 모두 찾아라" 가 될 수 있다.
여러 가지 주위 사정으로 인해, 응답 세트를 발생시키는데 상당한 시간을 소요하는데, 이 문제는 중요할 수 있다. 그러므로, 데이터 베이스 관리 시스템은 종종 단일 컴퓨터 또는 다중 프로세서로 동작하는 다중 프로세스를 사용하여, 각 질의 요청을 다중 프로세스 또는 프로세서를 사용함으로서 실행될 수 있는 상호 관련된 태스크로 나눔으로서 질의를 수행한다. 다시 말해서, 각 프로세스 또는 프로세서는 질의의 일부만 수행한다. 모든 협동 질의 프로세스(즉, 질의 오페레이터)로 부터 발생된 질의 결과는 집합되고(gather) 결합되어 필요한 질의 반응/응답 세트를 발생시킨다.
구체적으로 분산 질의 실행 및 통상적으로 분산 처리 시스템 유형에 있어서 어려운 점은 상호 접속되고 협동하는 모든 프로세스가 전반적인 태스크에 대해서 각각 자신의 부분의 처리를 완료시킬 때를 아는 것이다. 도 1에 도시된 분산 처리 시나리오의 일예를 볼 수 있다. 사용자 단말기(10)는 사용자 인터페이스(14)로 컴퓨터 시스템(12)과 통신한다. 또한, 데이터 베이스 관리 시스템 문맥에서 컴퓨터 시스템(12)은 데이터 베이스(16)에 접속될 수 있다. 분산 실행하기 위하여 사용자 인터페이스(14)로 부터의 (데이터 베이스 질의와 같은)태스크가 제어 프로세스 C에 제공된 후, 도시된 바와 같이 태스크(또는 그 일 부분)는 지원 프로세스 P1, P2, P3 및 P4를 통과한다. 각 프로세스 P1 내지 P4는 태스크의 일부분(또는 자신의 부분)을 실행한다. 특히, 제어 프로세스 C는 태스크에 관련된 것인지 아닌지를 정의하는 메시지를 제 1 프로세스 P1에 전송한다. 제 1 프로세스 P1은 자신의 태스크부분을 수행하고, 제어 프로세스 C에서 수신된 메세지와 함께 이러한 일부 태스크 결과를 지원 프로세스 P2 및 P3 둘 모두에 전송한다. 지원 프로세스 P2 및 P3는 각각 자신의 태스크 부분을 수행하고, P1 에서 각각 수신된 메세지와 함께 각각 자신의 결과를 지원 프로세스에 전송하고, 상기 메시지는 프로세스 P1으로 부터의 결과를 포함한다.
완료된 태스크는 체인 C→P1→P2→C 에서 하나, 그리고 체인 C→P1→P3→P4→C 에서 하나, 즉 2개의 메세지 형태로 제어 프로세스 C에 도달한다. 여기에서 문제점은, 제어 프로세스 C가 태스크를 수행하는 것과 관련된 모든 대리 프로세스로 부터 모든 메시지를 수신하는 때를 판정하는 것이다. 제어 프로세스가 제 1 지원 프로세스 P1에 관해서는 알지만, 태스크의 완료에 기여하는 모든 지원 프로세스의 아이덴터티를 반드시 알 필요가 없다는 사실로 인해, 이러한 문제는 복잡하게 된다. 따라서, 제어 프로세스 C는 예측되어야 할 프로세스 메시지가 얼마나 많은지 조차 알지 못한다.
이러한 문제점을 해결할 수 있는 방법 하나는 모든 지원 프로세스 Pi가 그들의 아이덴터티를 제어 프로세스 C에 알린 후, 제어 프로세스 C로 부터의 메시지를 각각의 지원 프로세스 Pi(즉, 도 1의 P1내지 P4)에 전송하고, 각 지원 프로세스는 자신의 태스크 부분을 완료할 때 제어 프로세스 C와 통신할 것을 요청한다. 그 후, 각각의 지원 프로세스 Pi는 각각 자신의 태스크 부분이 완료된 때, 또 다른 메시지를 제어 프로세스 C에 전송한다. 이러한 해결 방법의 단점 중 하나는 태스크의일부를 수행하는 것과 관련된 모든 지원 프로세스의 아이덴터티가 C에 의해 미리 공지될 것을 요구한다는 것이다. 이러한 요구 사항이 항상 용이하거나 바람직하게 달성되는 것은 아니다. 이와 같이 가능한 해결 방법의 또 다른 중요한 단점은 제어 프로세스 C와 지원 프로세스 사이의 모든 오버헤드-형 시그널링이 시간을 소비하며 비 효율적이라는 것이다.
본 발명은 단일 데이터 프로세서의 문맥에서 또는 멀티 프로세서(multiprocesses) 문맥에서 분산 프로세스를 사용하여 태스크를 수행하는 것에 관한 것이다. 본 발명은 태스크를 수행하기 위하여 임의의 협동할 수 있는 유용한 방식을 발견하였고, 그 방식의 일 예는 데이터 베이스 관리 시스템에서 데이터 베이스 질의 평가(evaluation)이다.
본 발명의 전술된 및 다른 목적, 특징 및 이점은 첨부된 도면에서 기술되는 바와 같이 바람직한 실시예의 이하 설명에서 명백해지고, 여기에서, 참조 번호는 여러 도면에서 동일한 부분을 언급하는 것이다. 도면은 반드시 축소나 확대될 필요는 없으며, 본 발명의 원리 설명을 강조하려는 것이다.
도 1은 데이터 처리 태스크를 실행하는데 사용되는 분산 프로세스의 다이아그램;
도 2는 데이터 처리 태스크를 실행하는데 사용될 수 있는, 분산 데이터 처리 시스템에 근거한 멀티-프로세서, 네트워크를 도시한 도면;
도 3은 프로세스가 데이터 버스에 의해 접속되고 공유 메모리를 사용하여 통신하는 곳에서, 데이터 처리 태스크를 실행하는데 사용될 수 있는 멀티-프로세서 데이터 처리 시스템의 또 다른 구성을 도시한 도면;
도 4는 본 발명의 실시예에 따라서 데이터 처리 요청의 실행을 평가하기 위한 절차를 도시하는 순서도;
도 5A 내지 도 5C는 본 발명의 또 다른 특정 실시예에서 본 발명을 실현하기 위한 여러 절차를 기술하는 순서도; 및,
도 6 내지 도 8은 점점 더 복잡해지는 분산 처리 상황에서 도 5A 내지 도 5C의 특정 실시예를 사용하여 실현되는 본 발명의 동작의 일 예를 도시한 도면이다.
본 발명의 목적은 적절한 방식으로 효율적인 태스크 분산 처리 방법을 제공하는 것이다.
본 발명의 목적은 다양한 프로세스 사이에서 오버헤드 시그널링 없이 복수의 프로세스를 사용하여 태스크 분산 처리를 수행하는 것이다.
본 발명의 목적은 분산 처리 환경에서 제어 프로세스가, 제어 프로세스와 각 지원 프로세스 사이에 특정 시그널링 없이, 태스크의 일 부분을 실행하는 분산 프로세스에서 수신된 메시지로 부터 태스크가 완료되는 때를 판정할 수 있게 하는 것이다.
본 발명의 또 다른 목적은 제어 프로세스가 태스크 분산 실행에 참여하는 지원 프로세스의 수 또는 아이덴터티를 알 필요가 없는 효과적인 분산 처리 기술을 제공하는 것이다.
본 발명은 이런 문제점을 해결하고 상기 및 그 밖의 목적을 만족시킨다. 제어 프로세스와 각 지원 프로세스 사이에서 제어 메시지를 앞뒤로 전송하기 보다는, 각 프로세스는 실제 태스크 메시지와 함께 지원 프로세스에 포워드(forward)되는일종의 식별 정보를 포함한다. 마지막으로, 식별 정보를 갖는 이러한 메시지는 제어 프로세스에 도달한다. 그 후, 제어 프로세스는 수신된 식별 정보로 부터, 태스크에 관련된 모든 프로세스로 부터의 모든 메시지가 수신되었는지를 연역한다. 제어 프로세스가 모든 메시지가 수신되었다고 연역한다면, 태스크는 완료된다.
한 실시예에서, 데이터 처리 태스크와 관련된 메시지는 데이터 처리 태스크를 수행하는 것에 관련된 프로세스 사이를 통과한다. 이러한 프로세스 각각은 태스크와 관련된 일부 기능을 수행하고, 메시지-- 상기 프로세스로 수행된 기능에 의해 변형--와 함께 "엔드 토큰(end token)"을 또 다른 관련 프로세스로 통과시킨다. 제어 프로세스는 관련 프로세스로 부터의 분산 처리 결과와 함께 수신된 엔드 토큰을 사용하여 데이터 처리 태스크가 완료되었다고 판정한다. 각 엔드 토큰은 고유 식별자(unique identifer) 및, 대응 프로세스에 의해 포워드된 메시지의 사본 수를 포함하고, 제어 프로세스에 의해 사용되어 계수 값(count value)의 어레이(array)를 발생시킨다. 계수 값은 대응 프로세스에 의해 포워드된 메지시 사본 수에 근거한 각각의 고유 엔드 토큰을 위해 설정된다. 모든 계수 값이 0으로 감소될 때, 제어 프로세스는 모든 관련 프로세스로 부터의 메시지가 도착되어 처리가 완료되었다고 판정한다.
본 발명은 데이터 베이스 관리, 특히 데이터 베이스 질의 평가에 적용하기에 유익하다. 그러나, 본 발명은 데이터 베이스 관리 또는 데이터 베이스 질의 평가로 제한하려는 것은 아니고, 프로세스가 협동하여 전반적인 목표를 달성하는 어떠한 적용에도 유익하게 사용될 수 있다. 프로세스는 동일한 컴퓨터 또는 개별 컴퓨터에서 실현될 수 있다. 단일 컴퓨터의 경우, 프로세스는, 예를 들면 컴퓨터의 운영 시스템의 메시지 통과 기능을 사용하여 통신한다. 멀티-컴퓨터의 경우, 각 컴퓨터는 공유 메모리, 근거리 통신망, 인터넷 등과 같은 적절한 전송 매체로 통신할 수 있다.
이하의 서술은 단지 설명하기 위한 것이지 본 발명을 제한하려 하는 것이 아니며, 본 발명을 더욱 철저하게 이해하도록 하기 위하여 특정 실시예, 프로세스 흐름 및 기술과 같은 특정 세부 사항이 설명된다. 그러나, 본 발명의 숙련자는 본 발명이 이러한 특정 세부 사항과 구별되는 다른 실시예에서도 수행될 수 있다는 것을 알 수 있다. 다른 예에서, 불필요한 세부 사항으로 인해 본 발명의 설명을 이해하는데 어려움이 없도록, 양호하게-공지된 방법, 시스템 및 장치의 상세한 설명은 생략되었다.
본 발명은 다양한 문맥에서 실현될 수 있다. 예를 들어, 본 발명은 분산 소프트웨어 프로세스가 사용되어 태스크를 협동적으로 실행하는, 도 1에 도시된 바와 같은, 단일 컴퓨터를 기반으로 한 시스템에서 실현될 수 있다. 이러한 프로세스는 컴퓨터의 운영 시스템을 사용하여 통신한다. 게다가, 본 발명은 멀티-프로세서 환경에 적용될 수 있다. 멀티-프로세서 환경의 일 예가 도 2에 도시되는데, 여기에서 참조 번호(20, 22, 24 및 26)와 관련된 다수의 노드(1 내지 4)는 이서넷, 인터넷 등과 같은 네트워크(30)에 의해 접속된다. 각 노드(1 내지 4)는 요청된 데이터 처리 태스크 중 일부를 수행하는 데이터 프로세스를 포함한다. 노드 데이터 프로세서는 네트워크(30) 상에서 적절한 통신 프로토콜을 사용하여 통신한다. 도 3은 멀티-프로세서 구성의 또 다른 예를 도시하고, 여기에서 참조 번호(32, 34 및 36)에 대응하는 CPUs(1, 2, ... N)는 각각 데이터 버스(38)를 통하여 공유 메모리(40)에 결합된다. 그러나, 본 발명은 메시지, 패킷 등을 지향적이고 비순환적인 방법으로 서로 전송하는 "것(things)"의 세트가 있는 어떤 상황에서도 사용될 수 있기 때문에, 이러한 적용 예는 제한되지 않는다.
도 4는 평가 요청 절차(블록 50)에서 설명된 바와 같이 데이터 처리 요청이 분산 프로세스에 의해 완료되었는지를 판정하기 위한 단계의 일 예를 기술한다. 제한하지 않고 단지 설명을 용이하게 하기 위하여, 본 발명은 하나 이상의 컴퓨터 또는 전자 데이터 처리 회로의 다른 유형을 사용하여 실현될 수 있는 "프로세스"와 관련하여 기술된다. 처음에, 분산 또는 그외 다른 협동 처리하기 위하여 태스크는 다수의 프로세스에 의해 제어 프로세스 C에 지정된다(블록 52).
수행되어야 하는 태스크와 관련된 메시지는 제어 프로세스 C에서 부터, 요청된 데이터 처리 태스크를 수행하는 것을 돕는 하나 이상의 지원 프로세스 Pi에 전송된다(블록 54). 각 지원 프로세스 Pi는 C 로부터 자기 자신의 메시지 사본을 수신하고, 메지시와 관련된 처리 기능의 일부를 수행한다. 처리 후에, 각 지원 프로세스는 자신의 처리 결과와 함께 수신된 메시지를 또 다른 프로세스에 포워드한다. 이러한 예에서, 프로세스 사이를 통과한 메시지는 동일한 것이고, 서로 다른 메시지도 프로세스 사이를 통과할 수 있다.
지원 프로세스 Pi는 상기 프로세스에 의해 (지정된 태스크와 관련하여)수행된 데이터 처리 결과와 함께 메시지를 갖고 있는 일종의 식별 정보(예를 들어, 이하에 설명되는 바와 같이 토큰)를 포함한다(블록 56). 제어 프로세스 C는 지원 프로세스로 부터 수신된 메시지에서 수집된 식별 정보를 사용하여, 지정된 태스크를 실행하는 것과 관련된 모든 지원 프로세스 Pi에 의해서 수행된 모든 프로세스가 완료되었는 지를 판정한다(블록 58). 포워드된 메시지 및 처리 결과와 함께 식별 정보를 포함하므로서, 지원 프로세스와 제어 프로세스 사이에서 분리 제어형 메시지를 전송하고 처리하는 것과 관련된 추가 오버헤드 및 지연은 제거된다. 또한, 상기 식별 정보는 제어 프로세스 C의 분리 시그널링의 필요성을 제거하여, 관련 프로세스의 아이덴터티 및/또는 수를 명확하게 한다.
본 발명을 실현하는 규정된(즉, 비-제한적인) 예는 이하에 도 5A 내지 도 5C, 도 6, 도 7 및 도 8과 연계하여 기술된다. 이러한 비-제한적인 예에서, 포함된 정보는 각 포워드된 메시지에 부착된 엔드 토크 세트 S 이다. 엔드 토큰 세트 S는 메시지와 관련된 하나 이상의 엔드 토큰 ei를 포함하고, 여기에서 i = 1, 2, 3....이다. 각 엔드 토큰 ei는 고유 토큰 식별자(e.id) 및 대응 프로세스에서 부터 다른 프로세스 까지의 출력 "브랜치" 수(e.n)를 포함한다(블록 62). 초기에, 제어 프로세스 C는 각 출력 브랜치에 대한 엔드 토큰 세트 S를 포함하는 메시지를 하나 이상의 지원 프로세스에 전송한다. 이 지점에서, 엔드 토큰 세트는 제어 프로세스 C에 의해서 발생된 엔드 토큰만 포함한다(블록 64).
도 5B는 "Pi에서의 프로세스 메시지"(블록 70)란 명칭으로 각 지원 프로세스에 수신된 메시지를 처리하기 위한 절차를 순서도 형식으로 도시한다. 현재 프로세스 Pi에서 부터 다른 지원 프로세스까지의 출력 브랜치 수에 관한 결정은 블록(72)에서 결정된다. 출력 브랜치가 하나만 있다면, 현재 프로세스 Pi는 토큰 세트 S와 함께 메시지 M을 상기 단일 출력 브랜치로 전송하고, 상기 토큰 세트 S는 현재 프로세스 Pi에 의해 처리되는 것과 같이 원래는 메시지와 함께 현재 프로세스 Pi에 의해 수신되었던 것이다(블록 74). 그러나, 현재 프로세스 Pi에서 하나 이상의 출력 브랜치가 있다면, 현재 프로세스 Pi는 현재 프로세스 Pi로 부터의 출력 브랜치의 수 e.n 뿐만 아니라 새로운 고유 토큰 식별자 e.id를 정의하여 새로운 엔드 토큰 ei= <e.id + e.n> 을 발생시킨다(블록 76). 현재 프로세스 Pi는 데이터 처리 태스크 중 자신의 부분을 수행한다(블록 77). 그 후, 현재 프로세스 Pi는 메시지 M, 현재 프로세스 Pi에 의해 발생된 처리 결과 및 엔드 토큰 세트 Si를 현재 프로세스 Pi에서 단 하나의 출력 브랜치에 전송하고, 상기 엔드 토큰 세트 Si는 현제 프로세스의 엔드 토큰 ei와 현재 프로세스 Pi에 의해 수신된 엔드 토큰 세트 Si-1의 수학적 결합이다(블록 78). 게다가, 현재 프로세스 Pi는 수신된 메시지 M, 현재 프로세스 Pi에 의해 발생된 처리 결과 및 엔드 토큰 ei만 포함하는 엔드 토큰 세트 Si를 현재 프로세스 Pi로 부터 다른 모든 출력 브랜치에 전송한다(블록 80).
그러므로, 복수의 출력 브랜치 중 하나만 엔드 토큰 ei뿐만 아니라 메시지 M과 함께 현재 프로세스 Pi에 의해 수신된 토큰 세트 Si-1둘 모두를 수신하여, 제어 프로세스에서 수행된 평가를 적절히 처리한다. 이러한 실시예에서, 평가 프로세스는 반드시 엔드 토큰 계수 프로세스이다. 각 엔드 토큰 식별자(e.id)에 대해서, 요청된 태스크가 모든 관련 지원 프로세스에 의해 완료되기 전에 도착하는 엔드 토큰의 기대 수에 대응하는 제어 프로세스 C에 의해 관리되는 COUNT 어레이에 계수기가 설치된다. 엔드 토큰의 전체 세트(즉, ei와 Si-1의 결합)가 둘 이상의 출력 브랜치에 전송된다면, 제어 프로세스 C는 엔드 토큰의 사본을 수신하여 토큰 계수를 잘못 인플레이션한다.
도 5C의 순서도는 제어 프로세서 C에서 실행된 "C에서의 메시지 처리" 루틴(블록 19)을 도시한다. 전술된 바와 같이, 제어 프로세스 C는 각 e.id에 대해서 남아 있는 엔드 토큰 수를 세는 계수기 어레이 COUNT를 발생시킨다. 제어 프로세스에서 지원 프로세스 Pi로 부터의 메시지가 수신될 때, 제어 프로세스 C는 수신된 메시지와 부착된 엔드 토큰 세트에서 엔드 토큰 하나를 분리하여(remove) 처리 루프의 종료를 확실하게 한다(블록 92). 블록(94)에서 대응 계수기가 엔드 토큰 세트 S 내의 엔드 토큰 e.id 에 대한 COUNT 어레이에 이미 설치되었는지 결정된다. 설치되었다면, COUNT 어레이 내의 대응 계수기, 즉 COUNT(e.id)는 하나로 감소된다(블록 96). 설치되어 있지 않다면, 제어 프로세스 C는 e.id에 대응하는 계수기를 계수 어레이에 삽입하여 COUNT(e.id)를 e.n-1과 같아지게 설정한다. 블록(100)에서 엔드토큰 세트 S에 남아 있는 토큰이 있는지 결정된다. 토큰이 남아 있다면, 제어권(control)은 블록(92)으로 돌아간다. 그렇지 않다면, 블록(102)에서 COUNT 어레이에 설치된 모든 엔드 토큰 계수 값이 0인지 결정된다. 만일 모두 0이 아니라면, 제어 프로세스 C는 지원 프로세스로 부터 더 많은 메시지를 기다린다(블록 104). 모든 엔드 토큰 계수기 값이 0이라면, 필요한 모든 메시지가 도착되었고, 태스크 처리는 완료된다(블록 106).
도 5A 내지 도 5C에 기술된 절차는 도 6, 도 7 및 도 8에 기술된 3개의 시나리오의 예로 실현된다. 도 6은 메시지 M이 각 프로세스로 부터 하나의 출력 브랜치에만 전송되었기 때문에, 여러 프로세스 사이에 전송 동안 엔드 토큰 세트 S = {ei}에 아무 일도 일어나지 않는 시나리오의 간단한 예를 도시한다. 그러므로, 제어 프로세스 C에서 COUNT 어레이는 단일 메시지가 수신될 때 까지 비어 있다. 단일 메시지는 e1에 대응하는 하나의 엔드 토큰만을 포함하기 때문에, 그것의 대응 계수기의 값은 e1.n이다. 출력 브랜치의 수 e1.n 가 1이기 때문에, 제어 프로세스는 COUNT 어레이에서 COUNT(e1.id)의 시작 값을 (e1.n-1) 로 설정하고, 그 값은 0과 같다(블록 98). COUNT 어레이에서 모든 계수기 값이 0이기 때문에, 제어 프로세스 C는 모든 메시지가 수신되고 태스크가 완료되는 것을 알 수 있다.
지원 프로세스 Pi에 의해서 메시지 M의 2개의 사본이 출력되는 더욱 복잡한 예가 도 7에 도시된다. 초기에, 엔드 토큰 e1은 제어 프로세스 C에 의해 발생되고,C에서 부터 P1으로 포워드되는 하나의 메시지 사본에 대응하는 출력 브랜치는 하나만 있으므로, 여기에서 e1.n = 1 이다. (엔드 토큰 식별자는 특정 프로세스를 식별하지 않는 다는 것에 유의.) 프로세스 P1에서, 메시지 M은 프로세스 P2에 하나, 프로세스 P3에 하나, 즉 2개의 출력 브랜치에 전송된다. 이러한 브랜치 둘 모두에 있는 메시지 M은 현재 프로세스 P1및 프로세스 P1으로 부터의 출력 브랜치 수 e2.n = 2 를 식별하는 동일한 엔드 토큰 e2를 포함한다. 그러나, 도 5B의 블록(76)과 관련하여 전술된 바와 같이, 엔드 토큰 e1은 프로세스 P1에 의해 포워드되는 메세지 중 하나에만 전송된다. 프로세스 P2및 P3는 단지 하나의 출력 브랜치만 가졌기 때문에, 새로운 엔드 토큰을 부착시키지 않고, 오히려 간단하게 수신된 엔드 토큰 세트 S, 즉, 메시지와 함께 {e1e2} 또는 {e2} 중 하나를 포워드 한다.
제어 프로세스 C에서 메시지 수신에 관하여, 엔드 토큰의 다음(following) 세트는 어떤 순서대로 도착한다. 엔드 토큰 세트가 {e2} 그리고 {e1e2} 순서로 도착한다면, 제어 프로세스 C는 e2.id 를 COUNT 어레이에 삽입하고 COUNT의 계수기 값(e2.id)을 e2.n-1 과 같게 설정하고, 이 예에서 e2.n-1 = 1 이다. 다음 토큰 세트 {e1e2} 가 도착할 때, 제어 프로세스 C는 COUNT 계수기 값 (e1.id) = e1.n-1 을 0으로 설정한다. 전술된 바와 같이, COUNT e2.id 는 현재 1 이고, 수신된 엔드 토큰 세트 {e1e2}에서 엔드 토큰 e2는 COUNT(e2.id)를 0으로 감소시킨다. COUNT 어레이내의 모든 계수기 값이 0이기 때문에, 제어 프로세스 C는 더이상 수신되는 메시지가 없고, 태스크는 완료되었다고 판정한다. 엔드 토큰 세트가 반대로 도착된다면, 즉 {e1e2} 뒤에 {e2}가 도착된다면, 유사한 결과가 획득된다.
도 8은 복수의 출력 브랜치를 포함하는 다수의 지원 프로세스로 더욱 복잡한 예를 도시한다. 그러나, 유사한 절차로 동일한 결과가 획득된다. 제어 프로세스 C는 메시지를 P1에 전송하고, P1은 메시지 사본을 지원 프로세스 P2, P3및 P4에 전송한다. 제어 프로세스 C로 부터의 초기 메시지는 세트{e1}에 단지 하나의 엔드 토큰만을 포함한다. 그 후, 프로세스 P1에서 부터 3개의 출력 브랜치가 있기 때문에, 프로세스 P1은 e2.n = 3 인 새로운 엔드 토큰 e2를 발생시킨다. 브랜치 중 하나에서, 즉 프로세스 P2로 가는 브랜치에서, 엔드 토큰 세트는 엔드 토큰 e2를 포함하도록 발전되어(expand), S = {e1e2} 가 된다. 그러나, 다른 두개의 출력 브랜치는 새로운 엔드 토큰만을 가진 엔드 토큰 세트 {e2}를 포함한다.
프로세스 P2는 자신의 메시지를 프로세스 P5및 P6에 의해 수신되는 2개의 브랜치에 출력한다. 그러므로, 이런 2개의 브랜치에 전송되는 메시지에 부착되는 엔드 토큰 e3는 P2에 의해 발생되고, e3.n = 2 이다. 또한, 엔드 토큰은 수신된 엔드 토큰 세트에 삽입되어 {e1e2e3}를 발생시킨 후 {e1e2e3}는 지원 프로세스 P5만 통과한다. 프로세스 P5및 P6는 각각 하나의 출력 브랜치만을 갖기 때문에, P5및 P6둘 모두는 프로세스 P2에서 수신된 엔드 토큰 세트를 변화시키지 않고 그대로 통과시킨다. 또한, P4는 단 하나의 출력 브랜치만을 갖기 때문에 자신에게 수신된 엔드 토큰을 통과시키기만 한다. 프로세스 P3, P7, P8및 P9는 P2, P4, P5및 P6에 대해서 전술된 엔드 토큰 처리와 유사하게 실행된다.
마지막으로, 제어 프로세스 C는 다음에 대응하여 부착된 여러 가지 엔드 토큰 세트를 가진 메시지를 수신한다:
(a) - {e1e2e3}, (b) - {e2e4}, (c) - {e2}, (d) - {e3} 및 (e) - {e4}. 이러한 엔드 토큰 세트는 순서대로 제어 프로세스 C에 도착한다. 이하의 표 1은 도착 순서를 도시하고, 이하의 표 2는 역 도착 순서를 도시한다:
본 발명은 특정 실시예와 관련하여 기술되었지만, 본 기술 분야의 숙련자는 본 발명이 본문에 설명된 특정 실시예로 제한되지 않는 다는 것을 알 수 있다. 또한, 많은 변형, 변화 및 등가 장치 뿐만 아니라 기술되고 도시된 것 외에 서로 다른 포맷, 실시예 및 적응물을 사용하여 본 발명을 실행할 수 있다. 그러므로, 본 발명은 바람직한 실시예와 관련하여 기술되었지만, 이러한 설명은 단지 본 발명을 설명하는 일 예이고, 단지 본 발명의 완전하고 용이하게 하기 위한 설명을 제공하고자 하는 것이다. 따라서, 본 발명은 여기에 첨부된 청구 범위의 사상 및 범위에 의해서만 한정된다.

Claims (30)

  1. 데이터 처리 요청을 계산하기 위한 방법에 있어서:
    상기 데이터 처리 요청을 제어 프로세스에 제공하는 단계;
    상기 데이터 처리 요청에 반응하여, 제 1 지시기를 포함하는 제어 프로세스 정보로 부터 출력하는 단계;
    제 1 지원 프로세스에서 제어 프로세스 정보를 처리한 후 상기 제 1 지시기 및 제 2 지시기를 포함하는 정보를 출력하는 단계;
    제 2 지원 프로세스에서 제 1 지원 프로세스 정보를 처리하는 단계; 및
    제어 프로세스에서 지원 프로세스로 부터의 정보를 수신하고, 상기 제 1 및 제 2 지시기를 사용하여 상기 요청에 따른 처리가 완료되었는지를 판정하는 단계를 포함하는 것을 특징으로 하는 데이터 처리 요청을 계산하는 방법.
  2. 제 1 항에 있어서,
    상기 수신 단계는 상기 요청에 따른 처리가 상기 제 1 및 제 2 지원 프로세스 모두에서 완료되었는지를 판정하는 단계를 더 포함하는 것을 특징으로 하는 데이터 처리 요청 평가 방법.
  3. 제 1 항에 있어서,
    상기 제 1 지원 프로세스는 자신의 처리 결과를 상기 제 2 지원 프로세스에전송하는 것을 특징으로 하는 데이터 처리 요청 평가 방법.
  4. 제 1 항에 있어서:
    상기 제 1 지원 프로세스가 상기 제 2 지시어만을 포함하는 정보를 제 3 지원 프로세스에 출력하는 단계를 더 포함하는 것을 특징으로 하는 데이터 처리 요청 평가 방법.
  5. 제 1 항에 있어서,
    상기 지원 프로세스에 의해 전송된 상기 정보는 데이터 처리 태스크와 관련된 메시지를 포함하고, 상기 제 1 및 제 2 지원 프로세스 각각은 상기 메시지에 제공된 상기 요청 중 일부를 수행하는 것을 특징으로 하는 데이터 처리 요청 평가 방법.
  6. 제 5 항에 있어서,
    상기 제 1 및 제 2 지원 프로세스 각각은 상기 메시지와 함께 상기 요청 중 자신이 수행한 부분의 결과를 포워드하는 것을 특징으로 하는 데이터 처리 요청 평가 방법.
  7. 제 5 항에 있어서,
    각 지시어는 대응 프로세스와 관련된 토큰 식별자 및 대응 지원 프로세스에의해 포워드된 상기 메시지의 다수의 사본을 포함하는 토큰인 것을 특징으로 하는 데이터 처리 요청 평가 방법.
  8. 제 1 항에 있어서,
    상기 제어 프로세스는 상기 메시지를 복수의 지원 프로세스에 포워드하고, 복수의 지원 프로세스 각각은 상기 메시지와 함께 대응 지시어를 수신하는 것을 특징으로 하는 데이터 처리 요청 평가 방법.
  9. 제 1 항에 있어서,
    상기 제 1 지원 프로세스는 상기 정보를 복수의 지원 프로세스에 포워드하고, 그 중 한 프로세스는 상기 제 2 지원 프로세스이고, 복수의 프로세스 각각은 상기 제 1 지원 프로세스에 대응하는 지시어를 수신하고, 또한 복수의 프로세스 중 하나는 상기 제어 프로세스에 대응하는 지시어를 수신하는 것을 특징으로 하는 데이터 처리 요청 평가 방법.
  10. 제 1 항에 있어서,
    상기 데이터 처리 요청은 데이터 베이스 질의이고, 상기 제 1 및 제 2 지원 프로세스는 질의 프로세스인 것을 특징으로 하는 데이터 처리 요청 평가 방법.
  11. 제 1 항에 있어서,
    상기 지원 프로세스는 운영 시스템 소프트웨어의 메시지 통과 기능을 사용하여 통신하는 것을 특징으로 하는 데이터 처리 요청 평가 방법.
  12. 제 1 항에 있어서,
    상기 프로세스는 멀리 떨어져(remotely)-위치한 노드에 분산되어 네트워크를 통하여 통신하는 것을 특징으로 하는 데이터 처리 요청 평가 방법.
  13. 제 1 항에 있어서,
    상기 프로세스는 데이터 버스에 의해 공유 메모리에 접속되는 데이터 프로세서에 분산되는 것을 것을 특징으로 하는 데이터 처리 요청 평가 방법.
  14. 제 1 항에 있어서,
    정보가 상기 제 1 및 제 2 지원 프로세스에 의해 처리된 후, 상기 정보는 상기 제 1 및 제 2 지원 프로세스로 돌아가지 않는 것을 특징으로 하는 데이터 처리 요청 평가 방법.
  15. 기계적으로-실행 가능한 데이터 처리 태스크를 처리하기 위한 방법에 있어서:
    상기 데이터 처리 태스크와 관련된 메시지를 상기 데이터 처리 태스크를 수행하는 것과 관련된 프로세스 사이를 통과하는 단계, 및
    제어 프로세스가 하나 이상의 프로세스와 관련된 토큰에 근거하여 상기 데이터 초리 태스크가 완료되었는지를 판정하는 것을 특징으로 하는 기계적으로-실행 가능한 데이터 처리 태스크 처리 방법.
  16. 제 15 항에 있어서,
    상기 제어 프로세스는 상기 프로세스로 부터 통과된 하나 이상의 토큰이 상기 제어 프로세스에 의해 수신될 때 상기 데이터 처리 태스크가 완료되는 것을 판정하는 것을 특징으로 하는 지계적으로-실행 가능한 데이터 처리 태스크 처리 방법.
  17. 제 15 항에 있어서,
    상기 각 프로세스는 상기 데이터 처리 태스크의 일부를 수행하고, 하나 이상의 토큰 및 상기 메시지와 일치하는 상기 데이터 처리 태스크 중 자신의 부분의 결과를 통과시키는 것을 특징으로 하는 기계적으로-실행 가능한 데이터 처리 태스크 처리 방법.
  18. 제 15 항에 있어서,
    제 1 프로세스는 상기 제 1 프로세스와 관련된 제 1 토큰을 발생시키고, 통과된 상기 메시지와 일치하는 상리 제 1 토큰을 제 2 프로세스에 부착시키고, 상기 제 2 프로세스는 상기 제 2 프로세스에 대응하는 제 2 토큰을 부착시키지 않고 상기 제 1 토큰을 또 다른 토큰에 통과시키는 것을 특징으로 하는 기계적으로-실행 가능한 데이터 처리 태스크 처리 방법.
  19. 제 15 항에 있어서,
    각 토큰은 프로세스의 수에 대응하는 수를 포함하고, 각 토큰은 식별자를 포함하는 것을 특징으로 하는 기계적으로-실행 가능한 데이터 처리 태스크 처리 방법.
  20. 협동적으로 데이터를 처리하기 위한 분산 데이터 처리 시스템에 있어서:
    다수의 지원 프로세스 및 코디네이터 프로세스를 포함하고, 각각의 지원 프로세스는 데이터 처리 기능의 일부를 실행하고 토큰과 실행된 처리의 결과를 또 다른 프로세스에 포워드하고,
    상기 코디네이터 프로세스는 지원 프로세스로 부터 포워드된 상기 처리 결과와 상기 토큰을 수신하고, 상기 수신된 토큰으로 부터 상기 데이터 처리 기능이 완료될 때를 판정하는 것을 특징으로 하는 분산 데이터 처리 시스템.
  21. 제 20 항에 있어서,
    상기 지원 프로세스 및 상기 코디네이터 프로세스는 단일 데이터 프로세스를 사용하여 수행되고, 상기 프로세스는 상기 데이터 프로세서에 의해 수행된 운영 시스템의 메시지 통과 부분을 사용하여 통신하는 것을 특징으로 하는 분산 데이터 처리 시스템.
  22. 제 20 항에 있어서,
    상기 분산 데이터 처리 시스템은 데이터 베이스 시스넴이고, 상기 데이터 처리 기능은 데이터 베이스 질의인 것을 특징으로 하는 분산 데이터 처리 시스템.
  23. 제 20 항에 있어서,
    상기 지원 프로세스 및 상기 코디네이터 프로세스는 각각 네트워크에 의해 접속되는 각 데이터 프로세서에 대응하는 것을 특징으로 하는 분산 데이터 처리 시스템.
  24. 제 20 항에 있어서,
    상기 지원 프로세스 및 상기 코디네이터 프로세스는 각각 공유 메모리를 경유하여 통신하는 각각의 데이터 프로세서에 대응하는 것을 특징으로 하는 분산 데이터 처리 시스템.
  25. 제 20 항에 있어서,
    상기 코디테이터 프로세스는 어떤 지원 프로세스와 관련된 모든 토큰이 상기 제어 프로세스에 의해 수신될 때 상기 데이터 처리 기능이 완료된다고 판정하는 것을 특징으로 하는 분산 데이터 처리 시스템.
  26. 제 20 항에 있어서,
    각 토큰은 프로세스와 관련된 식별자 및 프로세스 수에 대응하는 수를 포함하고 상기 토큰은 자신과 관련된 프로세스를 통과하는 것을 특징으로 하는 분산 데이터 처리 시스템.
  27. 제 20 항에 있어서,
    각 프로세스는 토큰 세트를 또 다른 프로세스에 포워드하고 하나 이상의 프로세스는 토큰을 토큰 세트에 더하는 것을 특징으로 하는 분산 데이터 처리 시스템.
  28. 제 20 항에 있어서,
    하나 이상의 프로세스는 제 1 지원 프로세스 및 제 2 공급 대리 프로세스에 메시지를 전송하고, 상기 제 1 지원 프로세스는 상기 메시지를 가진 2개의 토큰을 수신하고, 상기 제 2 지원 프로세스는 상기 메시지를 가진 하나의 토큰을 수신하는 것을 특징으로 하는 분산 데이터 처리 시스템.
  29. 제 28 항에 있어서,
    각 토큰은 지원 프로세스를 통과한 다수의 메시지 사본 및 식별자를 포함하는 것을 특징으로 하는 분산 데이터 처리 시스템.
  30. 제 20 항에 있어서,
    관련 프로세스에 대응하는 각 토큰은 대응 토큰 계수기을 발생시키는데 사용되어, 대응 토큰이 프로세스로 부터 수신될 때 상기 코디네이터 프로세스에 의해서 감소되는 것을 특징으로 하는 분산 데이터 처리 시스템.
KR1020017005459A 1998-11-03 1999-10-29 분산 프로세스에 의해 수행되는 데이터 처리 요청을평가하기 위한 방법 및 장치 KR20010085985A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/185,079 1998-11-03
US09/185,079 US6604122B1 (en) 1998-11-03 1998-11-03 Method and apparatus for evaluating a data processing request performed by distributed processes
PCT/SE1999/001950 WO2000026765A2 (en) 1998-11-03 1999-10-29 Method and apparatus for evaluating a data processing request performed by distributed processes

Publications (1)

Publication Number Publication Date
KR20010085985A true KR20010085985A (ko) 2001-09-07

Family

ID=22679489

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017005459A KR20010085985A (ko) 1998-11-03 1999-10-29 분산 프로세스에 의해 수행되는 데이터 처리 요청을평가하기 위한 방법 및 장치

Country Status (9)

Country Link
US (1) US6604122B1 (ko)
EP (1) EP1127310B1 (ko)
JP (1) JP2002529808A (ko)
KR (1) KR20010085985A (ko)
AU (1) AU1514800A (ko)
BR (1) BR9914991A (ko)
CA (1) CA2349706C (ko)
DE (1) DE69922832T2 (ko)
WO (1) WO2000026765A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE42153E1 (en) 2000-03-30 2011-02-15 Hubbard Edward A Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures
US8010703B2 (en) 2000-03-30 2011-08-30 Prashtama Wireless Llc Data conversion services and associated distributed processing system
US20010039497A1 (en) * 2000-03-30 2001-11-08 Hubbard Edward A. System and method for monitizing network connected user bases utilizing distributed processing systems
US20010027467A1 (en) * 2000-03-30 2001-10-04 Anderson David P. Massively distributed database system and associated method
US20090216641A1 (en) 2000-03-30 2009-08-27 Niration Network Group, L.L.C. Methods and Systems for Indexing Content
US7406511B2 (en) * 2002-08-26 2008-07-29 International Business Machines Corporation System and method for processing transactions in a multisystem database environment
US7800631B2 (en) 2003-03-18 2010-09-21 Qualcomm Incorporated Triangle rendering using direct evaluation
GB0422007D0 (en) * 2004-10-05 2004-11-03 Ibm Method and system for identifying a complete response to a request
US8112751B2 (en) * 2007-03-01 2012-02-07 Microsoft Corporation Executing tasks through multiple processors that process different portions of a replicable task

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4445171A (en) * 1981-04-01 1984-04-24 Teradata Corporation Data processing systems and methods
US5297255A (en) 1987-07-28 1994-03-22 Hitachi, Ltd. Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
CA2078315A1 (en) 1991-09-20 1993-03-21 Christopher L. Reeve Parallel processing apparatus and method for utilizing tiling
US5459860A (en) * 1992-10-05 1995-10-17 International Business Machines Corporation Computerized system and process for managing a distributed database system
JPH0784973A (ja) 1993-09-16 1995-03-31 Fujitsu Ltd マルチ処理プロセッサ制御装置および制御方法
US6330582B1 (en) * 1994-03-21 2001-12-11 International Business Machines Corporation Apparatus and method enabling a client to control transaction message traffic between server and client processes
US5826265A (en) * 1996-12-06 1998-10-20 International Business Machines Corporation Data management system having shared libraries

Also Published As

Publication number Publication date
EP1127310A2 (en) 2001-08-29
DE69922832D1 (de) 2005-01-27
WO2000026765A2 (en) 2000-05-11
DE69922832T2 (de) 2005-12-15
WO2000026765A3 (en) 2000-10-05
EP1127310B1 (en) 2004-12-22
JP2002529808A (ja) 2002-09-10
AU1514800A (en) 2000-05-22
CA2349706C (en) 2009-05-26
BR9914991A (pt) 2001-07-24
US6604122B1 (en) 2003-08-05
CA2349706A1 (en) 2000-05-11

Similar Documents

Publication Publication Date Title
FI90475B (fi) Reaaliaikainen hajautettu tietokannan käsittelyjärjestelmä
US8209213B2 (en) Method for the construction and execution of a distributed workflow in a communication system
US8095495B2 (en) Exchange of syncronization data and metadata
JPH10161916A (ja) データベースの複製に伴う更新競合の検出方法
KR20010085985A (ko) 분산 프로세스에 의해 수행되는 데이터 처리 요청을평가하기 위한 방법 및 장치
CN112765030A (zh) 测试方法、装置、电子设备及计算机存储介质
CN108055296B (zh) 一种基于微服务架构的事务处理方法及装置
Mahapatra et al. Scalable global and local hashing strategies for duplicate pruning in parallel A* graph search
US20030202522A1 (en) System for concurrent distributed processing in multiple finite state machines
CN110298630A (zh) 一种工作流引擎
EP0896275A3 (en) Object oriented server process framework with implicit data handling registry for remote method invocations
US7496925B2 (en) Information kit objects for publish/subscribe integration architecture
CN112418720A (zh) 业务与流程引擎映射的管理方法、装置、电子设备及介质
CN108683533B (zh) 配置更新方法、配置更新的响应方法及服务器、系统
US6925582B2 (en) Forwarding of diagnostic messages in a group
JPH0675892A (ja) 遠隔手続き管理装置
CN117240905A (zh) 一种业务链路确定方法、装置、电子设备及存储介质
Peacock et al. Distributed Simulation Using a Network of Microcomputers.
JP2002135264A (ja) 通信システム
Ahuja Determining deadlock exposure for a class of store and forward communication networks
Esfahanian et al. A distributed broadcast algorithm for binary De Bruijn networks
CN118113492A (zh) 智能代理的信息共享方法、装置及设备
El-Fakih et al. Automatic derivation of Petri net based distributed specification with optimal allocation of resources
Hladik et al. Solving allocation problems of hard real-time systems with dynamic constraint programming
JP2000311094A (ja) 遠隔オブジェクト間の通信方法

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