KR100315399B1 - 분산시스템의재시행을위한이벤트순서화방법 - Google Patents

분산시스템의재시행을위한이벤트순서화방법 Download PDF

Info

Publication number
KR100315399B1
KR100315399B1 KR1019980052557A KR19980052557A KR100315399B1 KR 100315399 B1 KR100315399 B1 KR 100315399B1 KR 1019980052557 A KR1019980052557 A KR 1019980052557A KR 19980052557 A KR19980052557 A KR 19980052557A KR 100315399 B1 KR100315399 B1 KR 100315399B1
Authority
KR
South Korea
Prior art keywords
event
distributed system
order
reception
performance
Prior art date
Application number
KR1019980052557A
Other languages
English (en)
Other versions
KR20000037793A (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 오길록
Priority to KR1019980052557A priority Critical patent/KR100315399B1/ko
Publication of KR20000037793A publication Critical patent/KR20000037793A/ko
Application granted granted Critical
Publication of KR100315399B1 publication Critical patent/KR100315399B1/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Abstract

본 발명은 분산 시스템에서 비결정적인 수행을 제어하여 동일한 재시행을 하게 보장하는 이벤트 순서화 방법을 제공하는 데 그 목적이 있다.
본 발명에 따르면, 비결정적인 수행을 하는 분산 시스템의 이벤트 순서화 방법에 있어서, 분산 시스템의 수행을 모니터링 서버 및 중앙 모니터를 이용하여 기록함으로써, 분산 시스템의 수행 과정에서 발생한 이벤트들의 관계를 나타내는 이벤트 다이어그램을 생성하는 제 1 단계와; 상기 제 1 단계에서 생성된 이벤트 다이어그램을 분석하여, 분산 시스템의 수행 과정의 올바른 재시행을 보장하기 위한 이벤트 순서를 추출하는 제 2 단계; 및 상기 제 2 단계에서 순서가 정하여진 이벤트의 순서를 지키도록 제어하면서, 동일한 재시행을 반복하는 제 3 단계를 포함하여 이루어진 것을 특징으로 하는 분산 시스템의 이벤트 순서화 방법이 제공된다.

Description

분산 시스템의 재시행을 위한 이벤트 순서화 방법 {The event ordering method for replaying distributed systems}
본 발명은 분산 시스템의 올바른 재시행을 보장하기 위한 이벤트 순서화 방법에 관한 것으로, 특히, 비결정적 분산 프로그램의 원천 수행을 이벤트 순서의 제어를 통해 동일한 수행을 반복하도록 보장하는 방법에 관한 것이다.
일반적으로, 분산시스템은 수행과정이 통신과 프로세스들의 병렬성으로 인해 비결정적인 특성을 가진다.
이러한 비결정적인 특성은 시스템의 디버깅 및 테스트를 어렵게 하는 가장 큰 원인이다. 비결정적인 수행은 수행할 때마다 다른 수행경로와 수행결과를 보여 오류의 상황을 재연하여 그 원인을 파악할 수 없기 때문이다. 이런 시스템을 디버깅하기 위한 방법 중 하나로 비결정적인 수행을 제어하여 동일한 수행을 반복하게끔 제어하는 방법이 재시행이다.
올바른 재시행을 보장하기 위해서는 분산시스템의 수행과정에서 발생한 모든 이벤트들의 순서를 동일하게 반복하도록 보장하여야 한다.
종래의 분산시스템의 재시행 방법은 이와 같이 모든 이벤트들의 순서를 그대로 재시행하도록 보장하였는데, 이는 이벤트들의 숫자가 너무 많아서 제어를 위한 추가의 지연 및 제어의 추가 부담이 지나치게 커지는 문제점이 있다. 그러나 실제로는 모든 이벤트들의 순서를 지켜야 할 필요는 없으며 분산 시스템에서 핵심적인 의존관계는 전체 이벤트 개수의 5-10% 정도밖에 되지 않는다.
본 발명은 앞서 설명한 바와 같은 종래 기술의 문제점을 해결하기 위하여 안출된 것으로서, 분산 시스템의 원천수행을 분석하여 반드시 필요한 이벤트들의 순서만을 추출해 내는 방법에 관한 것이다. 이 때, 상기 이벤트들의 집합은 비결정적 분산 시스템의 수행을 올바르게 재시행 하기 위한 최소한의 이벤트 순서 집합이다.
도 1은 본 발명의 일 실시예를 설명하기 위한 분산 처리 진단/교정 장치의 대략적인 구성도이고,
도 2는 본 발명의 일 실시예에 의한 분산디버깅 기능의 동시 개시 방법을 설명하기 위한 신호 흐름도이다.
♠ 도면의 주요부분에 대한 부호의 설명 ♠
100 : 클라이언트(중앙 모니터)
110-1 ~ 110-N : 제 1 내지 제 N 호스트 컴퓨터
120-1 ~ 120-N : 제 1 내지 제 N 모니터링 서버
130-1 ~ 13--N : 제 1 내지 제 N 분산 프로세스
앞서 설명한 바와 같은 목적을 달성하기 위한 본 발명에 따르면, 비결정적인 수행을 하는 분산 시스템의 이벤트 순서화 방법에 있어서, 분산 시스템의 수행을 모니터링 서버 및 중앙 모니터를 이용하여 기록함으로써, 분산 시스템의 수행 과정에서 발생한 이벤트들의 관계를 나타내는 이벤트 다이어그램을 생성하는 제 1 단계와; 상기 제 1 단계에서 생성된 이벤트 다이어그램을 분석하여, 분산 시스템의 수행 과정의 올바른 재시행을 보장하기 위한 수신 이벤트 순서를 정하는 제 2 단계와; 상기 정해진 수신 이벤트 순서를 지키기 위해 강제되어야 하는 수신 이벤트와 송신 이벤트의 순서 관계 집합을 추출하는 제 3 단계와; 상기 제 3 단계에서 추출된 순서 관계가 지키도록 제어하면서, 동일한 재시행을 반복하는 제 4 단계를 포함하여 이루어진 것을 특징으로 한다.
또한, 비결정적인 수행을 하는 분산 시스템의 이벤트 순서화 방법을 실행시킬 수 있는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체에 있어서, 분산 시스템의 수행을 모니터링 서버 및 중앙 모니터를 이용하여 기록함으로써, 분산 시스템의 수행 과정에서 발생한 이벤트들의 관계를 나타내는 이벤트 다이어그램을 생성하는 제 1 단계와; 상기 제 1 단계에서 생성된 이벤트 다이어그램을 분석하여, 분산 시스템의 수행 과정의 올바른 재시행을 보장하기 위한 수신 이벤트 순서를 정하는 제 2 단계와; 상기 정해진 수신 이벤트 순서를 지키기 위해 강제되어야 하는 수신 이벤트와 송신 이벤트의 순서 관계 집합을 추출하는 제 3 단계와; 상기 제 3 단계에서 추출된 순서 관계가 지키도록 제어하면서, 동일한 재시행을 반복하는 제4 단계를 실행시키는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 제공된다.
아래에서, 본 발명에 따른 양호한 일 실시예를 첨부한 도면을 참조로 하여 상세히 설명하겠다.
도 1은 본 발명의 일 실시예에 적용되는 분산시스템 및 이벤트 모니터링 장치의 대략적인 구성도이고, 도 2는 본 발명의 일 실시예에 따른 분산시스템의 이벤트 다이어그램의 예이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예를 설명하기 위한 분산시스템 및 이벤트 모니터링 장치는 중앙모니터인 클라이언트(100) 및 N 개의 호스트 컴퓨터(110-1 ~ 110-N)로 구성되어 있고, 상기 호스트 컴퓨터는 각각 모니터링 서버(120) 및 프로세스(130)로 구성되어 있다. 이를 상세히 설명하면 다음과 같다.
먼저 분산 시스템(130-1에서 130-N까지 N개의 프로세스로 이루어짐)이 원천 수행을 하게 되면, 그 결과를 각 모니터링 서버(120)가 이벤트가 발생할 때마다 이벤트의 종류와 송신자, 수신자의 정보를 분석하여 중앙 모니터(100)에게 알려준다.
상기 모니터링 서버(120)는 분산 시스템의 프로세스를 감시하면서 수행 과정의 발생 이벤트들을 모두 분석하는데, 이 모니터링 서버는 별도의 프로세스일 수도 있고 분산 시스템의 프로세스를 약간 바꾸어서 이러한 기능을 처리할 수 있는 코드 부분을 추가한 것일 수도 있다. 이렇게 모니터링 서버로부터 모아진 이벤트의 정보들을 분석하여 중앙 모니터(100)는 도 2와 같은 이벤트 다이어그램을 생성한다.
상기 도 2의 이벤트 다이어그램은 분산 시스템에서 수행 과정에서 발생한 이벤트들의 관계를 보여주는 정보로서 중앙모니터가 그래프의 형태로 저장하고 있는 데이터 구조이다. 이 이벤트 다이어그램은 분산 시스템의 이벤트 의존 관계를 분석할 수 있는 모든 정보를 가지고 있는데 이 데이터 구조를 이용하면 아래에서와 같이 수신 및 송신 이벤트들의 선후 관계를 추출할 수 있다.
수신 및 송신 이벤트들의 선후 관계를 추출하는 과정을 설명하면 다음과 같다. 도 2와 같은 이벤트 다이어그램에서 먼저 수신 이벤트들의 순서를 추출한다. 수신 이벤트의 순서는 통신 지연과 다른 프로세스의 수행 속도 등의 비결정적인 요소로 인해 수행할 때 수신 큐에 들어오는 순서가 바뀔 수 있다.
즉, 일단 한 이벤트가 수신되면 그에 따라 프로세스가 내부 논리를 수행하고 필요한 이벤트를 송신하거나 입출력을 수행하는 등의 작업을 계속하여 결정적인 수행을 하게 되지만, 어느 이벤트가 먼저 도착하는가에 따라 수행의 순서가 달라지는 것은 분산 시스템의 비결정적 특성으로 인해 어쩔 수 없는 점이다. 그러므로 한 원천 수행을 결정적으로 재시행하기 위해서는 수신 이벤트의 순서가 지켜지도록 하는 것이 필요충분조건이다.
도 2에서 수신 이벤트 순서를 살펴보면, 프로세스 200에서는 수신 이벤트 12가 발생한 후 이벤트 14가 발생해야 하고, 프로세스 201에서는 수신 이벤트 21, 23, 25, 26이 순서대로 발생해야 하며, 프로세스 202에서는 32, 34가 순서대로 발생해야 한다. 이와 같은 순서가 지켜지면 개별 프로세스의 수행이 결정적이므로 이벤트 다이어그램은 도 2와 동일한 형태를 가질 수밖에 없다.
다음으로 이들 수신 이벤트들에 대응하는 송신 이벤트들의 순서를 정한다. 수신 이벤트의 순서는 앞에서 언급했듯이 통신 지연과 프로세스들의 수행 속도 등의 요소로 인해 그 순서를 보장하기가 불가능하다.
그러나, 분산 시스템의 가장 기본적인 가정으로서 수신 이벤트는 해당 수신 이벤트에 대응하는 송신 이벤트가 발생하기 전에 전에 일어날 수는 없다. 따라서, 임의 두 수신 이벤트 A와 A'가 순서대로 발생하도록 하려면, 수신 이벤트 A에 대응하는 송신 이벤트가 일어난 후 수신 이벤트 A가 일어나고, 이어서 수신 이벤트 A'에 대응하는 송신 이벤트가 발생되도록 제어하면 된다. 즉, 수신 이벤트 A'에 대응하는 송신 이벤트를 송신 이벤트 B라고 가정하면, 수신 이벤트 A가 발생한 후 송신 이벤트 B가 발생하도록 제어하면 두 수신 이벤트 A와 A'가 순서대로 발생하게 된다. 이렇듯 재시행을 위해 강제되어야 하는 순서 관계를 (A, B)라고 표현하고, 이러한 순서 관계들을 순서 관계 집합이라고 한다.
도 2에서 이러한 순서 관계 집합은 (12, 24), (21, 13), (23, 33), (25, 15), (32, 27)의 다섯 개다. 이 순서 관계 집합에 대해 부언 설명하면, 프로세스 200에서 수신 이벤트 12, 14가 순서대로 발생하기 위해서는, 수신 이벤트 12가 발생한 다음 프로세스 201에서의 송신 이벤트 24가 발생하여야 하는데, 이를 순서관계로 나타내면 (12, 24)가 된다.
또한, 프로세스 201에서 수신 이벤트 21, 23, 25, 26이 순서대로 발생하기 위해서는, 수신 이벤트 21이 발생한 다음 송신 이벤트 13이 발생하여야 하고, 수신 이벤트 23이 발생한 다음 송신이벤트 33이 발생하여야 하며, 수신 이벤트 25가 발생한 다음 송신 이벤트 15가 발생하여야 되는데, 이를 순서관계로 나타내면 (21, 13), (23, 33), (25, 15)가 된다. 마지막으로 프로세스 202에서 수신 이벤트 32, 34가 순서대로 발생하려면, 수신 이벤트 32가 발생한 다음 송신 이벤트 27이 발생하여야 하며, 이를 순서관계로 나타내면 (32, 27)이 된다.
위의 순서관계 집합 중에서 (12, 24)와 (32, 27)은 이미 이벤트 다이어그램상에서 의존 관계를 가지고 있으므로 강제 순서 관계에 추가시킬 필요가 없다. 즉, 이벤트 다이어그램을 보면, 수신 이벤트 12와 송신 이벤트 13과 수신 이벤트 23이 순차적으로 발생한 후에 송신 이벤트 24가 발생하는 것이므로, (12, 24)는 강제로 제어되지 않더라도 이 순서관계가 지켜진다. 그리고, 수신 이벤트 32와 송신 이벤트 33과 수신 이벤트 25가 발생한 후에 송신 이벤트 27이 발생하는 것이므로, (32, 27)도 강제로 제어되지 않더라도 이 순서관계가 지켜질 수 있다. 따라서, (12, 24)와 (32, 27)은 강제 순서관계에서 제외되며, 이 결과 강제로 제어되어야 하는 핵심적인 최소한의 순서 관계는 집합에는 (21, 13), (23, 33), (25, 15)만이 남는다.
이와 같이 강제 제어되어야 할 이벤트의 순서관계를 시행하기 위하여, 본 발명에서는 가상 이벤트 C를 이용한다.
앞서의 순서관계 집합 중에서 (12, 24)와 (32, 27)에서 공통점을 찾을 수 있는데, 순서관계 (12, 24)의 경우에는 프로세스 200의 수신 이벤트 12와 프로세스 201의 송신 이벤트 24 사이에 추가 이벤트(프로세스 200의 송신 이벤트 13과, 송신 이벤트 13에 대응하는 프로세스 201의 수신 이벤트 23)가 존재하고, 순서관계 (32, 27)의 경우에는 프로세스 202의 수신 이벤트 32와 프로세스 201의 송신 이벤트 27사이에 추가 이벤트(프로세스 202의 송신 이벤트 33과, 송신 이벤트 33에 대응하는 프로세스 201의 수신 이벤트 25)가 존재한다.
앞서의 순서관계 (12, 24)와 (32, 27)에서 알 수 있듯이, 순서관계 (A, B)의 강제 제어는, 수신 이벤트 A가 발생하는 프로세스 a 와 송신 이벤트 B가 발생하는 ㅍ로세스 b 사이에 별도의 추가 이벤트 C를 추가함으로써 가능해진다. 즉, 수신 이벤트 A가 발생하면, 프로세서 a 의 송신 이벤트 C와 프로세스 b의 수신 이벤트 C를 가상 수행한 다음, 프로세스 b의 송신 이벤트 B가 수행되도록 함으로써, 송신 이벤트 B가 수신 이벤트 A 발생 이전에는 절대로 발생할 수 없게 강제 제어한다. 이러한 방법으로 송수신 이벤트의 순서가 원천 수행시와 같도록 보장함으로써 재시행이 동일한 결과를 내는 올바른 것이 되도록 제어할 수 있게 된다.
본 발명은 분산시스템의 재시행을 위해 순서화 해야 할 최소의 이벤트 순서 집합을 구함으로써, 재시행에 필요한 데이터 양을 줄이고 지연 시간도 최소화하는 효과가 있다.
이상에서 본 발명에 대한 기술 사상을 첨부 도면과 함께 서술하였지만 이는 본 발명의 가장 양호한 실시예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 이 기술 분야의 통상의 지식을 가진 자이면 누구나 본 발명의 기술 사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.

Claims (3)

  1. 비결정적인 수행을 하는 분산 시스템의 이벤트 순서화 방법에 있어서,
    분산 시스템의 수행을 모니터링 서버 및 중앙 모니터를 이용하여 기록함으로써, 분산 시스템의 수행 과정에서 발생한 이벤트들의 관계를 나타내는 이벤트 다이어그램을 생성하는 제 1 단계와;
    상기 제 1 단계에서 생성된 이벤트 다이어그램을 분석하여, 분산 시스템의 수행 과정의 올바른 재시행을 보장하기 위한 수신 이벤트 순서를 정하는 제 2 단계와;
    상기 정해진 수신 이벤트 순서를 지키기 위해 강제되어야 하는 수신 이벤트와 송신 이벤트의 순서 관계 집합을 추출하는 제 3 단계와;
    상기 제 3 단계에서 추출된 순서 관계가 지키도록 제어하면서, 동일한 재시행을 반복하는 제 4 단계를 포함하여 이루어진 것을 특징으로 하는 분산 시스템의 이벤트 순서화 방법.
  2. 제 1 항에 있어서,
    상기 제 4 단계는,
    상기 강제되어야 하는 순서 관계의 수신 이벤트와 송신 이벤트 사이에 가상 송신 이벤트와 수신 이벤트를 추가하여 상기 수신 이벤트와 송신 이벤트의 순서가 지켜지도록 하는 것을 특징으로 하는 분산 시스템의 이벤트 순서화 방법.
  3. 비결정적인 수행을 하는 분산 시스템의 이벤트 순서화 방법을 실행시킬 수 있는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체에 있어서,
    분산 시스템의 수행을 모니터링 서버 및 중앙 모니터를 이용하여 기록함으로써, 분산 시스템의 수행 과정에서 발생한 이벤트들의 관계를 나타내는 이벤트 다이어그램을 생성하는 제 1 단계와;
    상기 제 1 단계에서 생성된 이벤트 다이어그램을 분석하여, 분산 시스템의 수행 과정의 올바를 재시행을 보장하기 위한 수신 이벤트 순서를 정하는 제 2 단계와;
    상기 정해진 수신 이벤트 순서를 지키기 위해 강제되어야 하는 수신 이벤트와 송신 이벤트의 순서 관계 접합을 추출하는 제 3 단계와;
    상기 제 3 단계에서 추출된 순서 관계가 지키도록 제어하면서, 동일한 재시행을 반복하는 제 4 단계를 실행시키는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1019980052557A 1998-12-02 1998-12-02 분산시스템의재시행을위한이벤트순서화방법 KR100315399B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980052557A KR100315399B1 (ko) 1998-12-02 1998-12-02 분산시스템의재시행을위한이벤트순서화방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980052557A KR100315399B1 (ko) 1998-12-02 1998-12-02 분산시스템의재시행을위한이벤트순서화방법

Publications (2)

Publication Number Publication Date
KR20000037793A KR20000037793A (ko) 2000-07-05
KR100315399B1 true KR100315399B1 (ko) 2002-02-19

Family

ID=19560995

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980052557A KR100315399B1 (ko) 1998-12-02 1998-12-02 분산시스템의재시행을위한이벤트순서화방법

Country Status (1)

Country Link
KR (1) KR100315399B1 (ko)

Also Published As

Publication number Publication date
KR20000037793A (ko) 2000-07-05

Similar Documents

Publication Publication Date Title
CN208766643U (zh) 硬件跟踪系统
Agrawal et al. Mining process models from workflow logs
US8291005B2 (en) Providing consistency in processing data streams
US7552312B2 (en) Identifying messaging completion in a parallel computer by checking for change in message received and transmitted count at each node
US8490108B2 (en) Method of estimating a processing time of each of a plurality of jobs and apparatus thereof
US7353505B2 (en) Tracing the execution path of a computer program
US20080209436A1 (en) Automated testing of programs using race-detection and flipping
US20090144742A1 (en) Method, system and computer program to optimize deterministic event record and replay
US9355003B2 (en) Capturing trace information using annotated trace output
US8826060B2 (en) Correlation of log information in a distributed computing environment using relative timestamps
Hurfin et al. Efficient distributed detection of conjunctions of local predicates
US7490269B2 (en) Noise accommodation in hardware and software testing
US20180143897A1 (en) Determining idle testing periods
US7802145B1 (en) Approach for facilitating analysis of computer software errors
KR100315399B1 (ko) 분산시스템의재시행을위한이벤트순서화방법
Clemencon et al. An implementation of race detection and deterministic replay with MPI
US7231334B2 (en) Coupler interface for facilitating distributed simulation of a partitioned logic design
Pazzaglia et al. Characterizing the effect of deadline misses on time-triggered task chains
US20160004982A1 (en) Method and system for estimating the progress and completion of a project based on a bayesian network
Rallis et al. Reliability estimation for a software system with sequential independent reviews
KR960014980B1 (ko) 랜(lan) 감시장치 및 통신절차 감시방법
US20130173777A1 (en) Mining Execution Pattern For System Performance Diagnostics
Hurfin et al. Debugging tool for distributed Estelle programs
CN109726693B (zh) 用于评估设备环境噪声的方法、装置、介质及电子设备
US20090043540A1 (en) Performance Testing of Message Passing Operations in a Parallel Computer

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
FPAY Annual fee payment

Payment date: 20071024

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee