[go: up one dir, main page]

KR100949582B1 - 로그 관리 방법 및 시스템 - Google Patents

로그 관리 방법 및 시스템 Download PDF

Info

Publication number
KR100949582B1
KR100949582B1 KR1020080046930A KR20080046930A KR100949582B1 KR 100949582 B1 KR100949582 B1 KR 100949582B1 KR 1020080046930 A KR1020080046930 A KR 1020080046930A KR 20080046930 A KR20080046930 A KR 20080046930A KR 100949582 B1 KR100949582 B1 KR 100949582B1
Authority
KR
South Korea
Prior art keywords
message
checkpoint
log
checkpoint information
serial number
Prior art date
Application number
KR1020080046930A
Other languages
English (en)
Other versions
KR20090120888A (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 KR1020080046930A priority Critical patent/KR100949582B1/ko
Publication of KR20090120888A publication Critical patent/KR20090120888A/ko
Application granted granted Critical
Publication of KR100949582B1 publication Critical patent/KR100949582B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2268Logging of test results

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

발송자 기반 로그 관리 방법이 개시된다. 복수의 프로세스를 포함하는 시스템에서의 프로세스 실패시의 복구를 위한 발송자 기반 메시지 로그 관리 방법은 제1 프로세스가 메시지를 발송할 경우 상기 제1 프로세스에 상기 발송된 메시지에 상응하는 로그가 저장되는 단계, 상기 제1 프로세스가 상기 제1 프로세스에 저장된 제1 체크포인트 정보를 발송하는 단계, 제2 프로세스가 상기 제1 체크포인트 정보를 수신하는 경우, 상기 제1 체크포인트 정보를 참고하여 상기 제2 프로세스에 저장된 제2 체크포인트 정보를 갱신하는 체크포인트 정보 갱신 단계 및 상기 갱신된 제2 체크포인트 정보를 기초로 상기 제2 프로세스에 저장된 로그 중 상기 제1 프로세스의 체크포인트가 저장되기 전에 상기 제1 프로세스로 발송된 메시지에 상응하는 로그가 삭제되는 로그 삭제 단계를 포함할 수 있다. 본 발명에 따르면 프로세스 성능의 감소를 최소화하고 프로세스 실패 시에 일관성 있는 복구를 보장하는 효과가 있다.
로그 관리, 발송자 기반 로그, 롤백, 체크포인트

Description

로그 관리 방법 및 시스템{Method and System for Log Management}
본 발명은 로그 관리 방법 및 시스템에 관한 것으로, 특히 낮은 추가 비용으로 프로세스 실패 시 일관성 있는 복구를 보장하는 발송자 기반 로그 관리 방법 및 시스템에 관한 것이다.
장기간에 걸쳐 수행되는 과학용 및 사업용 애플리케이션들은 수백 내지 수천의 독립된 컴퓨터들로 구성되는 큰 규모의 분산시스템에서 실행되기 때문에, 프로세스 실패는 가장 중요한 문제가 될 수 있다. 이 문제를 처리하기 위해 로그 기반 롤백(rollback) 복구기법이 사용될 수 있다, 이 기법에 따르면 각 프로세스는 주기적으로 프로세스 상태를 저장하고 각 수신 메시지의 로그를 저장한다. 이 기법에 따르면 프로세스가 고장 나면 새로운 프로세스가 생성되고 그 프로세스가 일관성 있는 상태로 회복되고, 회복된 상태 이후에 전달받았던 메시지들을 재연할 수 있게 된다.
메시지 로그 저장 방식은 어떤 프로세스에 의해 각 메시지의 로그가 저장되느냐에 따라 두 개의 방식, 즉 발송자 기반 메시지 로그 저장방식과 수신자 기반 메시지 로그 저장방식으로 나뉘어진다.
수신자 기반 메시지 로그 저장방식은 메시지를 전달받는 프로세스에 해당 메시지가 전달되기 전에 그 메시지의 복구 정보를 안정된(stable) 저장소에 로그로써 저장한다. 이 방법은 동기화된 로그 저장으로 인해 정상 수행상태에서의 추가 비용이 크다는 문제점이 있다.
발송자 기반 메시지 로그 저장 방식은 메시지의 로그가 안정된 저장소에 동기적으로 저장되는 것을 피하기 위해 각 메시지의 로그가 해당 발송자의 휘발성 저장소에 저장될 수 있도록 한다.
발송자 기반 메시지 로그 저장 방식은 메시지의 수신자가 고장 난 경우 복구하는 데 필요한 발송 메시지의 로그를 각 프로세스가 자신의 제한된 휘발성 저장소에 유지하도록 한다. 따라서 발송자 기반 메시지 로그 저장 방식은 각 프로세스의 메시지 로그 저장을 위한 휘발성 저장소가 가능한 한 늦게 포화되도록 하기 위해 효율적인 가비지 컬렉션 방법을 필요로 한다. 그러한 방법이 없다면 로그를 삭제하기 위해 저장소의 메시지 로그가 자주 안정된 저장소로 내보내지거나 많은 수의 추가적 메시지와 강제적 체크포인트(checkpoint) 저장을 필요로 할 것이기 때문이다.
체크포인트는 체크포인트 저장 당시의 상태로 그 프로세스를 다시 시작하는데 필요한 정보를 포함한다. 체크포인트는 안정된 저장소에 저장된다.
도 1은 발송자 기반 메시지 로그 저장 과정을 나타낸 순서도이다.
단계 S130에서 프로세스의 휘발성 저장소가 포화상태일 경우의 종래의 처리 방법이 제시된다.
첫 번째 방법은 휘발성 저장소의 로그를 안정된 저장소로 내보내는 것이다. 일반적으로 안정된 저장소는 휘발성 저장소에 비해 접근 비용이 크므로 안정된 저장소로의 잦은 접근은 정상 수행상태 및 프로세스 복구시의 성능을 저하시킨다.
두 번째 방법은 프로세스간 의사소통을 통해 강제적 체크포인트를 저장하는 것이다. 이는 프로세스간 의사소통 빈도를 상승시키므로 의사소통 및 체크포인트 저장을 위한 추가 비용이 높다는 문제가 있다.
따라서 본 발명은 상술한 문제점을 해결하기 위하여 안출된 것으로, 각 프로세스가 알고 있는 체크포인트 저장 시점에 관한 정보를 메시지 전달시에 같이 전달하여, 낮은 추가비용으로 프로세스 실패 시에 일관성 있는 복구를 보장하는 데 목적이 있다.
또한 본 발명은 안정된 저장소에 대한 접근이나 프로세스간 메시지 발송 또는 강제적 체크포인트 저장을 최소화하고, 프로세스 실패 시에 일관성 있는 복구를 보장하는 데 목적이 있다.
또한 본 발명은 프로세스 성능의 감소를 최소화 하고 프로세스 실패 시에 일관성 있는 복구를 보장하는 데 목적이 있다.
본 발명의 일 측면에 따르면, 복수의 프로세스를 포함하는 시스템에서의 프로세스 실패시의 복구를 위한 발송자 기반 메시지 로그 관리 방법이 제공된다.
본 발명의 일실시예에 따른 복수의 프로세스를 포함하는 시스템에서의 프로세스 실패시의 복구를 위한 발송자 기반 메시지 로그 관리 방법은 제1 프로세스가 메시지를 발송할 경우 상기 제1 프로세스에 상기 발송된 메시지에 상응하는 로그가 저장되는 단계, 상기 제1 프로세스가 상기 제1 프로세스에 저장된 제1 체크포인트 정보를 발송하는 단계, 제2 프로세스가 상기 제1 체크포인트 정보를 수신하는 경 우, 상기 제1 체크포인트 정보를 참고하여 상기 제2 프로세스에 저장된 제2 체크포인트 정보를 갱신하는 체크포인트 정보 갱신 단계 및 상기 갱신된 제2 체크포인트 정보를 기초로 상기 제2 프로세스에 저장된 로그 중 상기 제1 프로세스의 체크포인트가 저장되기 전에 상기 제1 프로세스로 발송된 메시지에 상응하는 로그가 삭제되는 로그 삭제 단계를 포함할 수 있다.
복수의 프로세스를 포함하는 시스템은 네트워크로 연결된 여러 노드와 그 노드에서 수행되는 프로세스를 포함하는 시스템일 수 있다.
또한 복수의 프로세스를 포함하는 시스템은 하나의 노드에서 복수의 프로세스가 수행되는 시스템일 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
본 발명에 따르면, 각 프로세스가 알고 있는 체크포인트 저장 시점에 관한 정보를 메시지 전달시에 같이 전달하여 낮은 추가비용으로 프로세스 실패 시에 일관성 있는 복구를 보장하는 효과가 있다.
또한 본 발명은 안정된 저장소에 대한 접근이나 프로세스간 메시지 발송 또는 강제적 체크포인트 저장을 최소화하고, 프로세스 실패 시에 일관성 있는 복구를 보장하는 효과가 있다.
또한 본 발명은 프로세스 성능의 감소를 최소화 하고 프로세스 실패 시에 일관성 있는 복구를 보장하는 효과가 있다.
이하, 본 발명에 따른 로그 관리 방법 및 시스템의 실시예를 첨부도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
본 발명의 일실시예에 의하면 발송자 기반 로그 관리 시스템은 시스템의 호스트에서 실행되는n(n>0)개의 순차적 프로세스의 집합 P로 구성되고, 각 프로세스가 언제나 접근할 수 있는 안정된(stable) 저장소가 존재할 수 있다. 네트워크는 분리되지 않고, 호스트는 프로세스는 고장이 발생하면 자신의 휘발성 저장소에 있는 자신의 상태를 잃어버리고 수행을 멈추는 고장-멈춤 모델에 따라 실패할 수 있다. 정상수행시 발생한 프로세스의 이벤트들은 Lamport의 전후 관계(happened before relation)를 사용하여 순서화할 수 있다. 각 프로세스의 수행은 구분적으로 결정적(piecewise deterministic)일 수 있다. 즉, 한 프로세스 수행의 어떠한 시점에서도 그 프로세스의 상태구간(state interval)은 하나의 비결정적 이벤트(non-deterministic event)에 의해 결정되는데, 비결정적 이벤트는 프로세스가 메시지를 전달받는 경우 그 메시지를 해당 애플리케이션에게 전달해주는 이벤트(delivery event)가 될 수 있다. 프로세스 p의 k번째 상태구간 sip k(k > 0)는 p의 k번째 메시지 m의 전달 이벤트 devp k(m)에 의해 시작될 수 있다. p의 초기 상태(initial state) sip 0와 비결정적 이벤트[devp 1, devp 2,…, devp i]들이 주어진다면, 그 프로세스의 상태 sip i는 유일하게 결정될 수 있다. p의 상태 sp i = [sip 0, sip 1,…, sip i]는 sip i까지의 모든 상태구간의 시퀀스를 나타낸다고 할 수 있다. q로부터 전달받아 p가 sp i상태의 애플리케이션으로 전달한 모든 메시지가 상태 sq j의 q에 의해 p에게 발송되었다면 sp i와 sq j(p≠q)는 상호 일관적(mutually consistent)이라고 말한다.
발송자 기반 메시지 로그 저장 방식은 실패한 각 프로세스는 마지막 체크포인트 저장 당시의 상태로 롤백되고(rolled back) 발송자 프로세스에 저장된 복구 정보를 이용하여 체크포인트 저장 이후에 실패한 프로세스가 전달받은 메시지들을 재연하는 특징이 있다. 이러한 특징 때문에, 우리는 어떤 프로세스의 실패시의 일관성 있는 복구를 위해서는 그 프로세스가 마지막 체크포인트를 저장하기 전에 전달받은 메시지에 대한 로그가 필요 없다는 것을 알 수 있다.
도 2 및 도 4에서 편의상 제1 프로세스 내지 제3 프로세스를 각각 p1 내지 p3으로 표현하였고, 제1 메시지 내지 제9 메시지를 각각 msg1 내지 msg9로 표현하였다.
도 2는 프로세스간 메시지 전달 과정을 나타낸 모식도이다.
단계 S210에서 제1 프로세스(201)가 제1 메시지에 관한 로그를 자신의 휘발성 저장소에 저장한 후 제1 메시지를 제2 프로세스(202)에게 전달한다.
단계 S220에서 제3 프로세스(203)가 제2 메시지에 관한 로그를 자신의 휘발성 저장소에 저장한 후 제2 메시지를 제2 프로세스(202)에게 전달한다.
단계 S230에서 제1 프로세스(201)가 제3 메시지에 관한 로그를 자신의 휘발성 저장소에 저장한 후 제3 메시지를 제2 프로세스(202)에게 전달한다.
단계 S240에서 제2 프로세스(202)가 제1 내지 제3 메시지를 전달받은 후 체크포인트를 저장한다.
단계 S250에서 제2 프로세스(202)가 실패한다. 단계 S240에서 제2 프로세스(202)에 대한 체크포인트가 저장되었으므로, 체크포인트 저장 이전에 제2 프로세스(202)에게 전달한 메시지(제1 메시지 내지 제3 메시지)에 대한 로그는 이후 제2 프로세스(202)가 실패한 경우 복구를 위해서는 필요가 없다.
본 발명의 일 실시예에 따르면 각 프로세스는 다음 데이터 구조 중 어느 하 나 이상을 보유할 수 있다.
Sendlgp: 프로세스 p가 발송한 메시지의 lge(rid, ssn, rsn, data)를 저장하는 집합. 여기서, lge는 메시지의 로그이고, lge의 네 필드는 각각 순서대로 메시지의 수신자의 식별자(rid), 메시지의 발송일련번호(ssn), 메시지의 수신일련번호(rsn), 메시지의 데이터(data)이다.
Rsnp: 프로세스 p에게 마지막으로 전달된 메시지의 수신일련번호.
Ssnp: 프로세스 p가 마지막으로 발송한 메시지의 발송일련번호.
SsnVectorp: SsnVectorp[q]는 프로세스 q가 발송하고 프로세스 p가 전달받은 마지막 메시지의 발송일련번호를 저장하는 벡터.
RsnVectorp: RsnVectorp[k]는 (프로세스 p가 알고 있는 한도에서) 프로세스 k가 마지막 체크포인트를 저장하기 전에 프로세스 k에게 전달된 마지막 메시지의 수신일련번호. RsnVector는 프로세스의 체크포인트 설정 시점에 대한 정보로써 유지된다. 그러한 의미에서 RsnVector는 체크포인트 정보의 한 예로 볼 수 있다. RsnVector는 벡터의 형태뿐만 아니라 배열, 집합, 매핑 테이블 등 프로세스 식별자와 상응하는 체크포인트 설정시점을 저장할 수 있는 어떠한 데이터 구조로도 구현될 수 있다. 이하의 실시예에서는 편의상 RsnVector는 벡터의 형태인 것으로 가정한다.
EnableSp: 프로세스 p가 전달받은 메시지에 대해 수신일련번호가 부여되었으 나, 그 수신일련번호가 발송자에게 아직 기록되지 않은 수신일련번호의 집합. 이것은 프로세스 p가 다른 프로세스에게 메시지를 발송할 수 있는지 확인하기 위해서 사용된다.
메시지의 발송일련번호는 프로세스 p가 메시지를 발송한 순서대로 메시지에 부여될 수 있다.
발송일련번호는 먼저 발송한 메시지에 더 작은 발송일련번호가 부여될 수도 있고, 반대로 먼저 발송한 메시지에 더 큰 발송일련번호가 부여될 수도 있다. 발송일련번호 값의 차이는 일정하지 않아도 무방하다.
제1 발송일련번호가 제2 발송일련번호보다 먼저 부여된 경우 제1 발송일련번호가 제2 발송일련번호보다 선행한다고 할 수 있고 제2 발송일련번호는 제1발송일련번호보다 후행한다고 할 수 있다. 아래의 실시예에서는 발송일련번호가 더 작은 쪽이 선행하는 발송일련번호이다.
메시지의 수신일련번호는 메시지의 수신자가 메시지를 전달받은 순서대로 메시지에 부여될 수 있다.
수신일련번호의 부여 방식이나 '선행', '후행'의 표현은 발신일련번호의 그것에 준한다.
도 3은 본 발명의 일실시예에 의한 로그 관리 과정의 순서도이다.
단계 S310에서 프로세스 p가 지역적 체크포인트를 저장하면서, 프로세스 p는 RsnVectorp[p]를 프로세스 p에게 마지막으로 전달된 메시지의 수신일련번호로 갱신할 수 있다.
단계 S320에서 프로세스 p가 메시지를 다른 프로세스 q에게 전달할 때 RsnVectorp가 그 메시지와 함께 전달될 수 있다.
단계 S330에서 프로세스 q는 메시지와 RsnVectorp를 함께 전달받고, RsnVectorp와 RsnVectorq의 두 벡터를 원소별로 비교해서 더 큰 값을 RsnVectorq의 원소로 설정할 수 있다.
단계 S340에서 프로세스 q는 자신의 발송 메시지 로그 집합 Sendlgq에서 시스템에 존재하는 모든 프로세스 k에 대하여 메시지의 수신자의 식별자가 k이고 메시지의 수신일련번호가 RsnVectorq[k]보다 작은 모든 메시지에 상응하는 로그를 삭제할 수 있다.
도 4는 본 발명의 일실시예에 의한 로그 관리 과정의 모식도이다.
도 4의 분산 시스템은 서로 통신하는 세 개의 프로세스 제1 프로세스(401)(프로세스 식별자는 1), 제2 프로세스(402)(프로세스 식별자는 2) 및 제3 프로세스(403)(프로세스 식별자는 3)로 구성될 수 있다.
초기에 프로세스들(401, 402, 403)은 각각 체크포인트를 저장할 수 있다. 각각의 프로세스들은 RsnVector1[1], RsnVector2[2], RsnVector3[3]를, 체크포인트를 저장하기 전 마지막으로 전달받은 메시지의 수신일련번호로 갱신할 수 있다. 편의상 각 프로세스가 마지막으로 전달받은 메시지의 수신일련번호인 Rsn1, Rsn2, Rsn3가 각각 a, b, c라고 가정한다.
단계 S410, S411, S413 및 S414에서 제2 프로세스(402)가 제1 프로세스(401)로부터 제1 메시지 및 제5 메시지를 전달받고, 제3 프로세스(403)로부터 제2 메시지 및 제4 메시지를 전달받는 등 네 개의 메시지를 전달받을 수 있다. 단계 S414 종료 후 제1 프로세스(401)는 제1 메시지 및 제5 메시지의 로그를 저장하고 있으며, 제3 프로세스(403)는 제2 메시지 및 제5 메시지의 로그를 저장하고 있을 수 있다.
단계 S412에서 제1 프로세스(401)가 제2 프로세스(402)로부터 제3 메시지를 전달받을 수 있다. 단계 S412종료 후 제2 프로세스(402)는 제3 메시지의 로그를 저장하고 있을 수 있다.
단계 S415에서 제1 프로세스(401)가 제3 프로세스(403)로부터 제6 메시지를 전달받을 수 있다. 단계 S415 종료 후 제3 프로세스(403)는 제6 메시지의 로그를 저장하고 있을 수 있다.
단계 S420에서 제2 프로세스(402)가 다음 체크포인트를 저장하고, 제5 메시지가 체크포인트 저장 전에 제2 프로세스(402)가 마지막으로 전달받은 메시지이므로 RsnVector2[2]를 제5 메시지의 수신일련번호로 갱신할 수 있다. 이 실시예에서 Rsn2와 RsnVector2[2]는 (b+4)로 갱신될 수 있다.
단계 S430에서 제2 프로세스(402)가 제1 프로세스(401)에게 제7 메시지와 RsnVector2를 전달할 수 있다. 메시지와 RsnVector2를 전달받은 제1 프로세스(401)는 RsnVector1[2]를 (b+4)로 갱신할 수 있다. 제1 메시지의 수신일련번호는 RsnVector1[2]보다 작고 제5 메시지의 수신일련번호는 RsnVector1[2]와 같으므로 제1 프로세스(401)는 불필요한 로그인 제1 메시지 및 제5 메시지에 대한 로그를 삭제할 수 있다.
단계 S440에서 제1 프로세스(401)가 다음 체크포인트를 저장할 수 있다. 제1 프로세스(401)는 RsnVector1[1]을 체크포인트 저장 전 마지막 수신 메시지인 제7 메시지의 수신일련번호로 갱신할 수 있다. 이 실시예에서 RsnVector1[1]는 (a+3)으로 갱신될 수 있다.
단계 S450에서 제3 프로세스(403)가 제1 프로세스(401)로부터 제8 메시지와 RsnVector1를 전달받을 수 있다. 제3 프로세스(403)는 전달받은 RsnVector1을 이용하여 RsnVector3를 (a+3, b+4, c)로 갱신할 수 있다. 제3 프로세스(403)는 제2 메시지, 제4 메시지 및 제6 메시지의 로그를 삭제할 수 있다. 왜냐하면 제4 메시지와 제2 메시지의 수신일련번호는 RsnVector3[2]보다 작고 제6 메시지의 수신일련번호는 RsnVector3[1]보다 작기 때문이다.
단계 S460에서 제3 프로세스(403)는 제2 프로세스(402)에게 제9메시지와 RsnVector3을 전달할 수 있다. 제2 프로세스(402)는 전달받은 RsnVector3을 이용하여 RsnVector2를 (a+3, b+4, c)로 갱신할 수 있다. 이 실시예에서 제2 프로세스(402)는 제3 메시지와 제7 메시지의 로그를 삭제할 수 있다. 왜냐하면 제3 메시지와 제7 메시지의 수신일련번호는 RsnVector2[1]보다 작기 때문이다.
본 발명의 일실시예에 의한 발송자 기반 메시지 로그 관리 방법은 표 1과 같이 정형적으로 표현될 수 있다.
procedure MsgS(data, q) wait until(EnableSp = Φ) ; Ssnp ← Ssnp + 1 ; send m(Ssnp, data) with RsnVectorp to q ; Sendlgp ← Sendlgp ∪ {(q, Ssnp, -1, data)} ; LogSizep[q] ← LogSizep[q] + size of (q, Ssnp, -1, data) ; procedure MsgR(m(ssn, data), sid, RsnVector) if(SsnVectorp[sid] < m.ssn) then { Rsnp ← Rsnp + 1 ; SsnVectorp[sid] = m.ssn ; send ack(m.ssn, Rsnp) to sid ; EnableSp ← EnableSp ∪ {Rsnp} ; for all k ∈ other processes in the system do if(RsnVectorp[k] < RsnVector[k]) then { RsnVectorp[k] ← RsnVector[k] ; for all e ∈ Sendlgp st ((e.rid = k) ∧ (e.rsn ≤ RsnVector[k])) do Sendlgp ← Sendlgp - {e} ; } deliver m.data to the application ; } else discard m ; procedure Ack-Recv(ack(ssn, rsn), rid) find ∃e ∈ Sendlgp st ((e.rid = rid) ∧ (e.ssn = ack.ssn)) ; e.rsn ← ack.rsn ; send confirm(ack.rsn) to rid ; procedure Confirm-Recv(confirm(rsn)) EnableSp ← EnableSp - {rsn} ; procedure Checkpointing() RsnVectorp[p] ← Rsnp ; take its local checkpoint on the stable storage ;
MsgS()는 각 프로세스가 메시지를 보내고 자신의 휘발성 저장소에 로그를 남길 때 실행되는 절차이다. 프로세스 p는 RsnVectorp를 메시지와 함께 전달하고 로그의 크기를 LogSizep[q]에 더한다.
MsgR()는 각 프로세스가 메시지를 받을 때 실행되는 절차이다. 프로세스 p는 먼저 메시지의 발송자에게 그 메시지의 수신일련번호(rsn)을 알려주고, 전달받은 RsnVector를 이용해서 저장된 로그를 삭제하는 작업을 수행한다.
Ack-Recv()는 프로세스 p가 전에 보낸 메시지에 대한 수신일련번호(rsn)를 전달받고 로그의 세번째 필드인 수신일련번호(rsn) 필드를 채울 때 실행되는 절차이다.
로그 저장이 완료되면 수신자에게 확인 메시지가 전달되고, 수신자는 Confirm-Recv()를 실행한다.
CheckPointing()은 프로세스 p가 지역 체크포인트를 저장하고자 할 때 실행된다. RsnVectorp의 p를 위한 원소는 체크포인트 저장 전에 마지막으로 수신한 메시지의 수신일련번호로 갱신된다.
도 5는 본 발명의 일실시예에 의한 로그 관리 방법과 종래 방식에 의한 로그 관리 방법의 성능 비교도이다.
도 5의 실험을 위한 환경은 다음과 같다.
실험을 위한 시스템은 다중 접근 랜(multi-access Lan, Ethernet) 네트워크로 연결된 20개의 노드로 구성되어 있다. 한 연결의 메시지 발송 용량은 초당 100메가비트이다. 네트워크에 연결된 각 노드는 성능이 동일하고, 물리적 수단을 따라 균일하게 분산되어 있다. 각 노드에서는 하나의 프로세스가 수행되고, 20개의 프로세스는 함께 초기화되고 함께 종료된다. 애플리케이션 메시지는 50내지 200킬로바이트의 크기를 가지며, 로그 저장을 위한 각 프로세스의 휘발성 저장소는 10메가바이트의 크기를 가진다고 가정한다. 각 프로세스는 평균 시간이 3분이고 지수 분포에 따르는 시간 간격을 가지고 지역적 체크포인트를 저장한다. 실험을 위한 매개 변수(parameter)는 평균 메시지 발송 간격이다. 메시지의 발송 간격은 지수분포를 따른다. 모든 실험 결과는 많은 시도에 의한 결과의 평균값으로 보여진다.
도 5은 본 발명에 의한 로그 관리 방법에 의한 경우와 종래기술에 의한 경우에 프로세스의 메시지 로그 저장을 위한 휘발성 저장소가 포화되기까지 걸리는 평균 소요시간을 보여준다.
도 5의 그래프의 가로축은 각 프로세스의 메시지 발송 간격의 평균값을 나타낸다. 각 프로세스의 메시지 발송 간격은 지수 분포를 따른다. 도 5의 그래프의 세로축은 프로세스의 메시지 로그 저장을 위한 휘발성 저장소가 포화되기까지 걸리는 평균 소요시간이다.
평균 메시지 발송 간격이 증가함에 따라 평균 포화 소요시간도 증가한다. 프로세스가 더 느린 주기로 메시지를 발송하므로 메시지 로그의 크기도 느린 속도로 증가하기 때문이다.
점선 그래프(510)는 본 발명의 일실시예에 따라 RsnVector를 유지하고 RsnVector를 메시지 전달시에 함께 전달하는 방식을 사용한 경우의 평균 포화 소요시간을 나타낸 그래프이다. 실선 그래프(520)는 RsnVector등을 사용하지 않고 단순히 메시지를 전달하고 로그를 저장하기만 하는 전통적 방법을 사용한 경우의 평균 포화 소요시간을 나타낸 그래프이다.
본 발명에 의한 그래프(510)의 경우가 전통적 방법에 의한 그래프(520)보다 훨씬 더 높은 것을 알 수 있다. 특히, 평균 메시지 발송 간격이 증가함에 따른 본 발명에 의한 그래프(510)의 증가율이 전통적 방법에 의한 그래프(520)의 증가율 보다 더 크다. 본 발명은 단지 RsnVector를 각 발송한 메시지와 함께 발송하는 것 만으로 프로세스가 자발적으로 쓸모 없는 로그를 버퍼로부터 삭제할 수 있도록 해 준다. 이러한 속성으로부터 도 5에서 볼 수 있는 장점이 나온다.
따라서 본 발명에 따르는 경우 종래 기술에 의한 경우 보다 특정한 체크포인트 저장이나 통신 패턴에 관계없이 정상 수행 상태에서의 추가 비용을 훨씬 감소시킨다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 발명의 실시예는 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
도 1은 발송자 기반 메시지 로그 저장 과정을 나타낸 순서도이다.
도 2는 프로세스간 메시지 전달 과정을 나타낸 모식도이다.
도 3은 본 발명의 일실시예에 의한 로그 관리 과정의 순서도이다.
도 4는 본 발명의 일실시예에 의한 로그 관리 과정의 모식도이다.
도 5는 본 발명의 일실시예에 의한 로그 관리 방법과 종래 방식에 의한 로그 관리 방법의 성능 비교도이다.
<도면의 주요부분에 대한 부호의 설명>
201, 202, 203, 401, 402, 403: 프로세스

Claims (9)

  1. 복수의 프로세스를 포함하는 시스템에서의 프로세스 실패시의 복구를 위한 발송자 기반 메시지 로그 관리 방법에 있어서,
    제1 프로세스가 메시지를 발송할 경우 상기 제1 프로세스에 상기 발송된 메시지에 상응하는 로그가 저장되는 단계;
    상기 제1 프로세스가 상기 제1 프로세스에 저장된 제1 체크포인트 정보를 발송하는 단계;
    제2 프로세스가 상기 제1 체크포인트 정보를 수신하는 경우, 상기 제1 체크포인트 정보를 참고하여 상기 제2 프로세스에 저장된 제2 체크포인트 정보를 갱신하는 체크포인트 정보 갱신 단계; 및
    상기 갱신된 제2 체크포인트 정보를 기초로 상기 제2 프로세스에 저장된 로그 중 상기 제1 프로세스의 체크포인트가 저장되기 전에 상기 제1 프로세스로 발송된 메시지에 상응하는 로그가 삭제되는 로그 삭제 단계를 포함하되,
    상기 제1 체크포인트 정보 또는 상기 제2 체크포인트 정보는 상기 제1 프로세스가 제1 체크포인트를 저장하기 전 마지막으로 전달받은 메시지의 수신일련번호 또는 상기 제2 프로세스가 제2 체크포인트를 저장하기 전 마지막으로 전달받은 메시지의 수신일련번호를 포함하는 것을 특징으로 하는 발송자 기반 메시지 로그 관리 방법.
  2. 제1항에 있어서,
    상기 제1 체크포인트 정보는 상기 제1 프로세스가 전달하는 메시지와 함께 전달되는 것을 특징으로 하는 발송자 기반 메시지 로그 관리 방법.
  3. 삭제
  4. 제1 항에 있어서,
    상기 제1 체크포인트 정보 또는 상기 제2 체크포인트 정보는 상기 제1 프로세스가 상기 제1 체크포인트를 저장하기 전 마지막으로 전달받은 메시지의 수신일련번호 또는 상기 제2 프로세스가 상기 제2 체크포인트를 저장하기 전 마지막으로 전달받은 메시지의 수신일련번호를 원소로써 포함하는 배열, 벡터, 집합 및 매핑 테이블 중 어느 하나인 것을 특징으로 하는 발송자 기반 메시지 로그 관리 방법.
  5. 제1 항에 있어서,
    상기 체크포인트 정보 갱신 단계는,
    상기 제2 체크포인트 정보에 포함된 수신일련번호 중 상기 제1 프로세스에 상응하는 수신일련번호인 제1 수신일련번호와 상기 제1 체크포인트 정보에 포함된 수신일련번호 중 상기 제1 프로세스에 상응하는 수신일련번호인 제2 수신일련번호를 비교하는 단계; 및
    상기 제2 수신일련번호가 상기 제1 수신일련번호보다 후행하는 경우 상기 제2 프로세스가 저장하고 있는 제2 체크포인트 정보 중의 상기 제1 프로세스에 상응하는 수신일련번호를 상기 제2 수신일련번호로 갱신하는 단계를 포함하는 발송자 기반 메시지 로그 관리 방법.
  6. 제1 항에 있어서,
    상기 로그 삭제 단계는,
    상기 제2 프로세스가 저장하고 있는 로그 중 그 로그가 제1 프로세스에게 발송한 메시지 중 어느 하나에 상응하는 것이고 그 로그의 수신 일련번호가 상기 갱신된 제2 체크포인트 정보 중의 상기 제1 프로세스에 상응하는 수신일련번호보다 선행하는 로그를 삭제하는 단계를 포함하는 발송자 기반 로그 관리 방법.
  7. 제1 항에 있어서,
    상기 제1 프로세스가 상기 제1 체크포인트를 저장한 경우 상기 제1 프로세스에 저장된 상기 제1 체크포인트 정보 중 상기 제1 프로세스에 상응하는 원소가 상기 제1 체크포인트 저장 전 마지막으로 수신한 메시지의 수신일련번호로 갱신되는 단계를 더 포함하는 발송자 기반 로그 관리 방법.
  8. 제1 항에 있어서,
    상기 제1 프로세스가 메시지를 발송할 때 저장되는 로그는,
    상기 메시지의 수신자의 식별자, 상기 메시지의 발송일련번호, 상기 메시지의 수신일련번호 및 상기 메시지의 데이터 중 어느 하나 이상을 포함하는 것을 특징으로 하는 발송자 기반 로그 관리 방법.
  9. 복수의 프로세스를 포함하는 시스템에서의 프로세스 실패시의 복구를 위한 발송자 기반 메시지 로그 관리 방법을 수행하기 위해 전자장치에 의해 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 전자장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서,
    제1 프로세스가 메시지를 발송할 경우 상기 제1 프로세스에 상기 발송된 메시지에 상응하는 로그가 저장되는 단계;
    상기 제1 프로세스가 상기 제1 프로세스에 저장된 제1 체크포인트 정보를 발송하는 단계;
    제2 프로세스가 상기 제1 체크포인트 정보를 수신하는 경우, 상기 제1 체크포인트 정보를 참고하여 상기 제2 프로세스에 저장된 제2 체크포인트 정보를 갱신하는 체크포인트 정보 갱신 단계; 및
    상기 갱신된 제2 체크포인트 정보를 기초로 상기 제2 프로세스에 저장된 로그 중 상기 제1 프로세스의 체크포인트가 저장되기 전에 상기 제1 프로세스로 발송된 메시지에 상응하는 로그가 삭제되는 로그 삭제 단계를 실행하되,
    상기 제1 체크포인트 정보 또는 상기 제2 체크포인트 정보는 상기 제1 프로세스가 제1 체크포인트를 저장하기 전 마지막으로 전달받은 메시지의 수신일련번호 또는 상기 제2 프로세스가 제2 체크포인트를 저장하기 전 마지막으로 전달받은 메시지의 수신일련번호를 포함하는 프로그램을 기록한 기록매체.
KR1020080046930A 2008-05-21 2008-05-21 로그 관리 방법 및 시스템 KR100949582B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080046930A KR100949582B1 (ko) 2008-05-21 2008-05-21 로그 관리 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080046930A KR100949582B1 (ko) 2008-05-21 2008-05-21 로그 관리 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20090120888A KR20090120888A (ko) 2009-11-25
KR100949582B1 true KR100949582B1 (ko) 2010-03-25

Family

ID=41604065

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080046930A KR100949582B1 (ko) 2008-05-21 2008-05-21 로그 관리 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR100949582B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407503B (zh) * 2020-03-16 2024-12-03 北京金山云网络技术有限公司 一种日志空间管理方法、装置、电子设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980037617A (ko) * 1996-11-22 1998-08-05 양승택 재수행 단계에서 종료한 트랜잭션 처리 기법을 이용한 댕글링 트랜잭션 발생 방지 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980037617A (ko) * 1996-11-22 1998-08-05 양승택 재수행 단계에서 종료한 트랜잭션 처리 기법을 이용한 댕글링 트랜잭션 발생 방지 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
박소연,김영재,맹승렬."소프트웨어 분산공유메모리의 고장 허용을 위한 원격 로깅 기법",한국정보과학회 2003봄 학술발표논문집, 2003.4*

Also Published As

Publication number Publication date
KR20090120888A (ko) 2009-11-25

Similar Documents

Publication Publication Date Title
US11442961B2 (en) Active transaction list synchronization method and apparatus
CN103092905B (zh) 使用虚拟文件数据对象的列式数据库
JP4719318B2 (ja) データの複製管理方法及びシステム
EP0623877B1 (en) System and method for storing persistent and non-persistent queued data
US7328213B2 (en) Transaction processing method, transaction control apparatus and program thereof
US9836361B2 (en) Data replicating system, data replicating method, node device, management device and computer readable medium
US7877757B2 (en) Work item event monitor for procession of queued events
CN104793981A (zh) 一种虚拟机集群的在线快照管理方法及装置
JP2012234333A (ja) クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム
CN111475480B (zh) 一种日志处理方法及系统
CN112153133A (zh) 一种数据共享方法、设备以及介质
Cao et al. Checkpointing and rollback of wide-area distributed applications using mobile agents
CN112039970A (zh) 一种分布式业务锁服务方法、服务端、系统及存储介质
JP5065259B2 (ja) 企業情報システムとクライアントとの間の通信に役立つ装置、システム、方法、およびコンピュータプログラム(企業情報システムとクライアントとの間の通信に役立つ装置、システム、および方法)
CN110278222B (zh) 分布式文件存储系统中数据管理的方法、系统以及相关设备
CN106302625A (zh) 数据更新方法、装置及相关系统
US8359601B2 (en) Data processing method, cluster system, and data processing program
CN113609091B (zh) 日志管理方法、装置、设备及存储介质
KR100949582B1 (ko) 로그 관리 방법 및 시스템
CN111880969B (zh) 存储节点恢复方法、装置、设备和存储介质
CN107483640A (zh) 一种缓存更新方法、服务器及业务系统
CN113703669B (zh) 一种缓存分区的管理方法、系统、设备及存储介质
CN104516790B (zh) 一种分布式环境下检查点记录和恢复的系统及方法
KR20090120981A (ko) 로그 관리 방법 및 시스템
JP5397076B2 (ja) ジョブ実行装置、ジョブ実行方法およびジョブ実行プログラム

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20080521

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20091215

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20100312

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20100318

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20100319

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20130305

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20130305

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20140305

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20140305

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20150227

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20160304

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20160304

Start annual number: 7

End annual number: 7

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20171229