KR100324165B1 - 갱신 트랜잭션 완성 방법 및 장치 - Google Patents

갱신 트랜잭션 완성 방법 및 장치 Download PDF

Info

Publication number
KR100324165B1
KR100324165B1 KR1019990011550A KR19990011550A KR100324165B1 KR 100324165 B1 KR100324165 B1 KR 100324165B1 KR 1019990011550 A KR1019990011550 A KR 1019990011550A KR 19990011550 A KR19990011550 A KR 19990011550A KR 100324165 B1 KR100324165 B1 KR 100324165B1
Authority
KR
South Korea
Prior art keywords
processor
database
slave
timers
coupled
Prior art date
Application number
KR1019990011550A
Other languages
English (en)
Other versions
KR19990082867A (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 KR19990082867A publication Critical patent/KR19990082867A/ko
Application granted granted Critical
Publication of KR100324165B1 publication Critical patent/KR100324165B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/959Network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/964Database arrangement
    • Y10S707/966Distributed
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Abstract

본 발명은 프로세서들의 분산 네트워크에서, 하나의 프로세서가 장애를 일으킨 후 갱신 트랜잭션 타이머를 사용하여 갱신 트랜잭션을 완성하는 방법에 관한 것이다. 장애를 일으킨 슬레이브 프로세서는 장애 이전에 각각의 프로세서에서 최종 완성된 데이터베이스 갱신 트랜잭션의 기록과, 매스터 데이터베이스 프로세서에 의해 생성된 데이터베이스 갱신 트랜잭션 단계를 기록하는 매스터 프로세서 내의 저널을 사용하여, 다른 슬레이브 프로세서와 같이 갱신된다.

Description

갱신 트랜잭션 완성 방법 및 장치{METHOD AND APPARATUS FOR CORRECT AND COMPLETE TRANSACTIONS IN A FAULT TOLERANT DISTRIBUTED DATABASE SYSTEM}
본 발명은 고장 방지 분산 데이터베이스 시스템(distributed database system)에서 트랜잭션을 완성하는 방법 및 장치에 관한 것이다.
분산 데이터베이스 시스템은 전형적으로 둘 이상으로 분리된 상호 통신 데이터베이스(intercommunicating database)를 구비하는 시스템을 지칭한다. 둘 이상의 데이터 베이스 복사본은 저장된 데이터 중 적어도 일부분이 동일하다. 따라서, 데이터베이스 시스템 전체에 걸쳐 데이터베이스 동일성을 유지하기 위해서는, 데이터베이스 복사본 중 하나에서 공통 데이터가 변경되면 다른 모든 데이터베이스 복사본도 동일하게 변경되어야 한다. 표준 환경에서, 데이터베이스는 매스터 데이터베이스 제어기에 의해 변경된다. 데이터베이스 매스터 제어기는 그 자체의 데이터베이스 복사본을 변경시키며, 네트워크를 구성하는 데이터베이스의 다른 복사본들의 갱신을 제어하는 역할을 한다. 그러나, 데이터베이스 복사본 내에서 또는 복사본을 데이터베이스 매스터 제어기에 접속시키는 링크 내에서 발생한 장애가 데이터베이스의 모든 부분 또는 일부분의 전송이나 변경을 막는 경우, 문제가 발생한다.
분산 데이터베이스 네트워크 내에서, 정보는 트랜잭션에 의해 개개의 데이터베이스로 입력된다. 데이터베이스 '트랜잭션'이란 '개시 단계'와 '종료 단계' 모두에 의해 마킹(marking)되며 사용자에 의해 제어되는(또는 매스터 데이터베이스에 의해 제어되는) 데이터베이스 액션(action)의 시퀀스이다. 개시 단계와 종료 단계 사이의 데이터베이스 액션들은 데이터베이스를 변경하는 단계나 액션을 포함한다. 종료 단계는 완료(commit) 또는 취소(abort)일 수 있다. 완료는 데이터베이스를 효과적으로 변경하면서 이전의 갱신 트랜잭션을 수행하는 인스트럭션(instruction)이다. 취소는 이전의 갱신 트랜잭션을 무효로 하는 인스트럭션이다. 각각의 프로세서에서 발생할 수 있는 트랜잭션에는 콜드(cold) 트랜잭션과 핫(hot) 트랜잭션 두 유형이 있다. 콜드 트랜잭션이란 이미 완성된 트랜잭션으로서 장애가 발생한 데이터베이스 프로세서의 회복 기간 동안 사용된다. 핫 트랜잭션이란 완성되거나 취소되지 않고 진행 중인 트랜잭션이다.
원격 통신 산업에서 분산 데이터베이스는 높은 이용도(availability)와 더불어 신뢰할 수 있는 것이어야 한다. 또한, 이러한 시스템은 고장을 방지해야 한다. 즉, 하나의 데이터베이스 복사본의 장애로 인해 전체 시스템이 다운되어서는 안 된다. 800 서비스와 같은 정보의 액세스와 같은 예에서 볼 수 있듯이, 원격 통신 산업은 이런 면에 있어서 많은 노력을 요한다. 호가 발생할 때, 데이터베이스로의 요청과 그 요청과 관련된 해당 전화번호의 응답 사이의 응답 시간은 즉각적이며 신뢰할 수 있어야 한다. 작은 응답 지연에 의해서도, 호를 완성할 때 지연이 발생하여 고객의 불만을 초래하게 된다.
분산 데이터베이스 시스템에서, 데이터베이스 일치(synchronization)는 보통 '2­단계(2­phase) 완료'이라 불리는 알고리즘에 의해 수행된다. 2­단계 완료는 '조정자(coordinator)', '매스터' 또는 제어기로 지정된 데이터베이스의 한 복사본과 '참여자(participant)', '슬레이브' 노드 또는 복사본으로 지정된 분산 데이터베이스 시스템 내의 기타 모든 복사본을 이용하여 수행된다. 2­단계 완료 알고리즘은 다음과 같이 동작한다.
단계 1
조정자는 하나 이상의 데이터베이스 기록을 갱신하는 등의 트랜잭션을 완료하기 위해 요청하는 메시지를 네트워크를 통해 모든 참여자들에게 보낸다. 데이터베이스 참여자가 장애를 일으켰거나, 서비스가 불가능하거나, 이용할 수 없는 경우, 그 데이터베이스 참여자는 자신이 트랜잭션을 완료할 준비가 되지 않았음을 알리는 메시지로 조정자에게 응답하여야 한다. 장애 때문에 참여자가 응답할 수 없는 경우, 조정자는 '미준비(not ready)' 응답을 추정한다. 조정자는 단계 2로 진입하기 전에 모든 참여자로부터의 응답 수신을 기다린다.
단계 2
모든 데이터베이스 참여자가 긍정적으로 응답하면, 조정자는 '완료' 메시지나 코맨드를 모든 데이터베이스 참여자에게 방송(broadcasting)하여 참여자들이 그 트랜잭션을 완료하도록 한다. 어떤 참여자가 장애를 나타내는 메시지로 응답하거나 응답하는데 실패하면, 조정자는 취소 메시지를 모든 참여자에게 방송한다.
2­단계 완료를 위해 활성화되고(active) 이용가능한 참여자들의 상태를 알기 위해, 매스터는 '쿼럼(quorum)'이라 알려진, 활성화되고 이용가능한 데이터베이스 프로세서의 동적(dynamic) 리스트를 보유한다. 이 동적 리스트는 매스터가 어느 데이터베이스 프로세서가 활성화되고 이용가능하며 따라서 갱신 트랜잭션을 수신하는데 이용가능한지를 결정하기 위해 매스터에 의해 사용된다. 어떤 데이터베이스 프로세서가 리스트 상에 존재하면, 그 데이터베이스 프로세서는 트랜잭션을 성공적으로 수행하는데 이용가능한 것으로 추정된다.
본 발명의 목적은 매스터 데이터베이스 프로세서의 장애로 인해 정규적으로 완성하지 못한 트랜잭션을 적절히 완성하는 분산 데이터베이스 시스템을 제공하는 것이다. 새로운 매스터의 지시없이 그리고 트랜잭션의 미수행이나 재수행없이 트랜잭션을 완성하는 것이 바람직하다.
본 발명의 또 다른 목적은 장애가 발생한 트랜잭션의 클린업(cleanup)과 관련된 결과적 지연을 제거하는 외부적인 조정없이, 장애가 발생하지 않은 모든 참여자가 자동적으로 임의의 오류 회복을 수행하는 분산 데이터베이스 시스템을 제공하는 것이다. 또한, 장애가 발생한 참여자는 재일치 기간 동안 진행 중인 임의의 트랜잭션을 방해하지 않으면서, 장애가 발생하지 않은 계(community)와 재일치되고 새로운 트랜잭션에 참여하게 된다.
본 발명의 한 측면에 따르면, 전술한 사항은 하나 이상의 데이터베이스 참여자가 장애를 일으킴으로 인해 자신도 장애를 일으킨 분산 데이터베이스 시스템에서 데이터베이스 트랜잭션을 완성하는 방법 및 장치를 제공함으로써 달성된다. 매스터 데이터베이스 프로세서가 장애를 일으키면, 장애를 일으키지 않은 모든 참여자들은 트랜잭션을 완료하거나, 서비스 복구 또는 매스터 데이터베이스 프로세서의 교체를 보류한 채 트랜잭션을 취소한다. 어떤 트랜잭션을 수행하는 중이건 아니면 어떤 트랜잭션도 수행하지 않는 중이건, 슬레이브 프로세서 중 하나가 장애를 일으키면, 장애를 일으킨 슬레이브 프로세서는 장애를 일으키지 않은 다른 슬레이브 프로세서에 영향을 미치지 않고, 계와 재일치될 수 있다. 장애가 발생한 프로세서가 서비스를 복구할 때, 그 프로세서는 자신이 매스터 데이터베이스 프로세서와 접속되지 않은 동안 갱신된 슬레이브 프로세서와 동일하게 매칭되도록 갱신된다.
일 실시예에서, 본 발명은 각각의 슬레이브 프로세서와 결합된 한 쌍의 타이머를 제공한다. 제 1 타이머는 갱신 트랜잭션의 개시 단계가 슬레이브 프로세서에 의해 수신되는 때 시작한다. 제 2 타이머는 슬레이브 프로세서가 트랜잭션을 완료할 수 있는 때 시작한다. 제 1 타이머는 갱신 트랜잭션의 각 단계를 수신한 후 리세트된다. 갱신 트랜잭션의 다음 단계를 수신하기 전에, 제 1 타이머가 '타임­아웃'되거나 종료하면, 슬레이브 프로세서는 현재 트랜잭션을 취소한다. 갱신 트랜잭션의 종결 시, 매스터 데이터베이스 프로세서는 슬레이브 프로세서가 데이터베이스 갱신 트랜잭션을 완료할 수 있는지를 문의하는 완료 메시지를 슬레이브 프로세서로 내보낸다. 각각의 슬레이브 프로세서가 완료 메시지 요청에 대해 완료 응답 보트(vote)를 내보내면, 각각의 슬레이브 프로세서와 결합된 제 2 타이머가 트리거(trigger)된다. 완료 메시지에 대한 요청이 매스터 프로세서에서 슬레이브 프로세서로 보내지면, 새로운 트랜잭션이 수신될 때까지 제 1 타이머는 디스에이블된다. 제 2 타이머가 '타임­아웃'되면, 슬레이브 프로세서는 트랜잭션을 완료한다.
어떤 슬레이브 프로세서의 제 1 타이머가 '타임­아웃'되면, 그 프로세서는 현재 트랜잭션을 취소하고 모든 슬레이브 프로세서로 전역 취소 메시지(global abort message)를 보낸다. 전역 취소 메시지 수신에 응답하여, 전역 취소 메시지를 수신한 슬레이브 프로세서도 현재 트랜잭션을 취소하고 자신의 전역 취소 메시지를 모든 슬레이브 프로세서로 전송한다. 결과적으로, 모든 슬레이브 프로세서가 현재 트랜잭션을 취소하여 프로세서들의 네트워크는 동일한 상태로 된다.
바람직한 실시예에서, 매스터 데이터베이스 프로세서에 의해 완료된 각각의 갱신 트랜잭션 기록은 매스터 데이터베이스 프로세서에 의해 저널이나 로그(log) 내에 보유되는데, 저널이나 로그는 순환 큐(circular queue)나 버퍼인 것이 바람직하다. 결국 저널 내의 오래된 기록 위에는 최근의 갱신 트랜잭션이 겹쳐 써지게 된다. 또한, 각각의 슬레이브 프로세서는 그 슬레이브 프로세서가 성공적으로 완료할 수 있었던 데이터베이스 갱신 트랜잭션 기록 중 적어도 최근의 것을 보유하고 있다.
고 신뢰도 데이터베이스 시스템에서, 어떤 슬레이브 프로세서가 장애를 일으키거나 그와의 통신이 두절되면, 장애를 일으킨 데이터베이스 복사본이 서비스를 제공할 수 없는 동안 서비스를 유지하고 있는 데이터베이스의 다른 복사본들이 갱신된다. 결국 장애를 일으킨 슬레이브 프로세서가 서비스를 복구하게 되면, 그 프로세서는 전체 네트워크에 걸친 데이터베이스의 다른 복사본들이 현재 보유하고 있는 데이터를 보유하지 못하게 된다. 이전에 손실된 데이터베이스 복사본을 갱신하기 위해, 그 슬레이브 프로세서가 서비스를 제공할 수 없었던 동안 완료된 트랜잭션의 저널이나 로그를 사용하여, 장애를 일으킨 슬레이브 프로세서가 손실한 트랜잭션을 재생성한다. 각각의 슬레이브 프로세서는 최종 완성된 최근의 트랜잭션의 아이덴티티(identity)를 기록하거나 기억한다. 최종 완성된 트랜잭션의 이러한 기록으로부터, 매스터 프로세서와 장애를 일으킨 프로세서는 매스터 내의 저널에 기록된 완성된 트랜잭션을 사용하여 그 자신을 다른 프로세서들과 재일치시킨다.
트랜잭션, 명령 식별자(order identifier), 관련 데이터는 저널로 입력된다. 이러한 식별자에 기초하여, 참여자는 태스크의 성질을 알 필요없이 다음에 예상되는 태스크가 무엇인지를 결정할 수 있다. 일단 장애가 교정되면, 장애를 일으켰던참여자는 자신이 저널에서 손실한 제 1 순위(first numbered) 트랜잭션과 제 1 손실 트랜잭션에 후속하는 트랜잭션들을 요청한다. 일단 참여자가 모든 손실 트랜잭션을 입력하면, 네트워크에 재합류하여 새로운 트랜잭션을 수신하게 된다.
도 1은 분산 데이터베이스 시스템의 단순화된 블럭도,
도 2는 매스터 데이터베이스 프로세서와 슬레이브 데이터베이스 프로세서의 단순화된 블럭도,
도 3a 및 3b는 외부적인 조정(coordination)없이, 장애가 발생하지 않은 모든 참여자(participant)들이 자동적으로 장애 회복을 수행하고 갱신 트랜잭션을 완성하는 방법의 다양한 측면을 도시하는 흐름도,
도 4는 장애가 발생한 슬레이브 프로세서의 장애 회복의 흐름도,
도 5는 트랜잭션 단계 타이머(transaction step timer)의 일반적인 동작 흐름도,
도 6은 자동 완료 타이머(automatic commit timer)의 일반적인 동작 흐름도,
도 7은 자동 완료 타이머와 트랜잭션 단계 타이머 사이의 조정에 관한 전반적인 개관을 도시하는 흐름도.
도면의 주요 부분에 대한 부호의 설명
100 : 분산 네트워크 102 : 매스터 프로세서
104, 106, 108, 110 : 슬레이브 프로세서
112, 114, 116, 118, 120 : 데이터베이스
122, 124 : 저널
126, 128, 130 : 데이터 저장 원소
140 : 고속 데이터 상호접속부 150 : 자동 완료 타이머
152 : 트랜잭션 단계 타이머
본 발명의 장점은 첨부한 도면을 참조하여 하기의 상세한 설명을 읽으면 명확해질 것이다.
도 1은 매스터 프로세서(102)와 적어도 하나의 백업 매스터 프로세서(104)를 포함하는 프로세서들의 분산 네트워크(100)를 도시한다. 또한, 도 1은 수 개의 슬레이브 또는 참여자 프로세서(106, 108, 110)를 도시한다. 각각의 프로세서(102, 104, 106, 108, 110)는 도시한 바와 같이 이들 프로세서 각각에 결합된 데이터베이스(112, 114, 116, 118, 120)와 결합하여 이들을 제어한다. 도시한 데이터베이스 기록(112, 114, 116, 118, 120)은 테이프나 기타 자기 매체(magnetic media) 상에 저장될 수도 있고 랜덤 액세스 메모리(random access memory : RAM) 내의 기록일 수도 있는 디스크 기록으로 이루어질 수 있다. 각각의 데이터베이스(112, 114, 116, 118, 120)는 동일한 데이터를 보유하고 있다. 또한 각각의 프로세서(102, 104, 106, 108, 110)는, 예를 들어, 도 1에 도시한 바와 같이 각각의 프로세서 사이에서 데이터를 교환할 수 있게 하는 이더넷(Ethernet) 네트워크 또는 기타 적절한 데이터 링크로 이루어지는 고속 데이터 상호접속부(140)를 통하여 서로 통신한다. 도 1에 도시한 프로세서들의 분산 네트워크(100)는 전화 교환망에서도 사용될수 있는데, 여기서 각각의 프로세서(102, 104, 106, 108, 110)는 호를 처리하는 역할을 할 것이다. 이와는 달리, 프로세서들의 분산 네트워크(100)는 항공 예약 시스템이나 은행 기록(banking record)과 같은 기타 응용에도 사용될 수 있으나, 이에 한정되지는 않는다.
데이터베이스(112, 114, 116, 118, 120)는 고객 기록, 전화 번호, 항공 비행 예약 스케듈 등을 보유할 수 있다. 동작 중에, 각각의 프로세서는 자신과 결합된 데이터베이스를 액세스하여 트랜잭션을 처리할 필요가 있고, 대부분의 응용에 있어서, 각각의 데이터베이스(112, 114, 116, 118, 120)는 프로세서들의 분산 네트워크(100) 내의 다른 모든 데이터베이스의 정확한 복사본이어야 한다.
트랜잭션이 데이터베이스 프로세서(102, 104, 106, 108, 110)에 의해 처리됨에 따라, 각각의 데이터베이스 복사본을 서로, 또는 다른 모든 복사본과 동일하도록 보장하기 위해 데이터베이스 복사본(112, 114, 116, 118, 120)을 갱신할 필요가 있다.
매스터 데이터베이스 프로세서(102)는 데이터베이스 복사본(114, 116, 118, 120)을 갱신한다. 데이터베이스 복사본(116, 118, 120) 중에서도 갱신될 필요가 있는 데이터베이스 중 하나 내의 데이터베이스 기록은, 데이터베이스(112, 114, 116, 118)의 각 복사본으로 기록 갱신을 보냄으로써, 매스터 데이터베이스 프로세서에 의해 갱신된다. 매스터 데이터베이스 프로세서는 각각의 슬레이브 또는 참여자 프로세서(106, 108, 110)에 문의하여 각각의 슬레이브 또는 참여자 프로세서가 갱신을 수용할 준비가 되었는지를 판단한다. 그런 다음, 매스터 데이터베이스 프로세서는 갱신될 기록을 슬레이브 또는 참여자 프로세서(106, 108, 110, 114)로 복사하며, 복사본이 이들 슬레이브 또는 참여 프로세서에 도달한 후, 매스터 프로세서(102)는 그 프로세서들에 문의하여 갱신이 효과적으로 완료되었는지 알아 본다.
장애를 일으킨 슬레이브 프로세서의 재일치
하나 이상의 슬레이브 또는 참여자 프로세서가 장애를 일으킨 경우, 매스터 프로세서(102)는 결합된 데이터베이스의 복사본을 갱신할 수 없게 된다. 예컨대, 슬레이브 데이터베이스 프로세서(106)가 장애를 일으키면, 데이터베이스 복사본(116)에 대한 갱신은 일어날 수 없다. 결국 장애를 일으킨 프로세서가 서비스를 복구하거나 장애로부터 회복되면, 그 프로세서가 장애를 일으켜 서비스를 제공할 수 없었던 동안 매스터에 의해 갱신된 데이터베이스의 다른 복사본들과 매칭시키기 위해 장애를 일으킨 프로세서의 데이터베이스는 갱신될 필요가 있다.
본 명세서에서 사용한 장애라는 용어는 데이터베이스 프로세서(106, 108, 110)가 데이터베이스 갱신 트랜잭션을 수신할 수 없는 때의 프로세서 상태를 지칭한다. 데이터베이스 프로세서(106, 108, 110)가 프로세서들의 분산 네트워크(100)에 재합류하기 전에 회복되어야만 하는 일정한 상태에, 장애가 발생한다. 이러한 정의에 의하면, 장애 발생 시 데이터베이스 프로세서(106, 108, 110)가 이전에 쿼럼(quorum)의 활성화된 멤버였다는 것을 알 수 있다.
장애를 일으킨 프로세서가 회복되거나 서비스를 복구한 후 장애를 일으킨 프로세서의 데이터베이스를 갱신하거나 일치시키는 방법에 의하면, 각각의 슬레이브또는 참여자 프로세서는 장애 발생 전 완성될 수 있었던 최종 데이터베이스 갱신을 기록하도록 요구된다. 각각의 데이터베이스 프로세서(106, 108, 1120, 102, 104)는 그 프로세서에 의해 효과적으로 완성된 최종 데이터베이스 갱신의 몇몇 표시(indicia)를 기록할 필요가 있다. 완성된 최종 기록의 이러한 표시(indicia)는 매스터 프로세서(102)의 지시에 따라 최종 완성된 갱신을 식별하도록 임의로 할당된 숫자일 수 있으며, 프로세서의 RAM 내에 저장되거나, 디스크나 기타 매체 상에 파일이나 그 일부분으로 저장되거나, 데이터가 기록되고 독출될 수 있는 기타 적절한 소자에 저장될 수 있다. 이와는 달리, 각각의 프로세서는 최종 갱신 트랜잭션의 완전한 기록을 유지할 수 있다.
매스터 데이터베이스 프로세서(102)와 백업 프로세서(104)는 각각 저널이나 로그(122, 124)를 그 내부에 포함하는데, 저널이나 로그(122, 124)는 매스터 프로세서(102)에 의해 수행되고 성공적으로 완성된 데이터베이스 갱신 트랜잭션 단계의 기록이다. 이 저널은 데이터베이스 갱신 트랜잭션 단계를 기록한다.
바람직한 실시예에서, 데이터베이스 갱신 저널(122, 124)은 각각 데이터베이스 갱신 트랜잭션이 순차적으로 저장되는 순환 버퍼(circular buffer)이다. 결국, 당업자들이 순환 버퍼의 특징으로 인식하고 있는 바와 같이, 오래된 데이터베이스 갱신 기록은 최근 갱신 트랜잭션으로 대체된다.
이와는 달리, 데이터베이스 갱신 저널로는 FIFO나 LIFO 버퍼가 마련되는데, 당업자는 매스터 프로세서(102)에 의해 완성된 트랜잭션을 기록하는 기타 방법을 인식할 것이다.
장애를 일으킨 프로세서의 회복 시, 그와 결합된 데이터베이스 복사본의 갱신 또는 재일치는 이전에 장애를 일으킨 프로세서가 매스터 프로세서(102)에게 최종 성공적으로 완성된 데이터베이스 갱신의 아이덴티티(identity) 또는 표시(indicia)를 알려줌으로써 이루어진다. 또한 도 1은 각각의 데이터베이스 프로세서(106, 108, 110) 내에서, 최종 완성된 데이터베이스 갱신 트랜잭션의 적절한 표시(indicia)를 저장하는 데이터 저장 원소(126, 128, 130)를 도시한다. 다음에는, 이전에 장애를 일으킨 프로세서로부터의 이 정보를 이용하여, 매스터 프로세서(102)는 이전에 장애를 일으켰던 데이터베이스 프로세서에 의해 완성된 최종적으로 성공적인 데이터베이스 갱신에 후속하여 발생하는 데이터베이스 갱신 트랜잭션의 완전한 기록을 자신의 저널로부터 복사하기만 하면 된다.
당업자는, 매스터 데이터베이스 프로세서가 이전에 장애를 일으킨 프로세서로 데이터베이스 갱신 트랜잭션 기록을 복사할 때, 저널 기록이 매스터 데이터베이스 프로세서(102)에 의해 갱신될 수 있다는 것을 인식할 것이다. 이러한 방식으로, 매스터 데이터베이스 프로세서(102)는, 예를 들어, 이전에 장애를 일으킨 프로세서를 온라인(online)으로 되돌리는 과정에서 요구되는 데이터베이스 갱신을, 장애가 발생한 프로세서(106, 108, 110)로 복사한다.
도시한 데이터베이스 기록(112, 114, 116, 118, 120)은 테이프나 기타 자기 매체 상에 저장될 수도 있고 RAM 내의 기록일 수도 있는 디스크 기록으로 이루어질 수 있다. 유사하게, 저널(122, 124)은 디스크 기록, 테이프 기록으로 보존되거나, 프로세서의 RAM 내에 저장될 수 있다. 당업자는 데이터베이스 프로세서(102, 104,106, 108, 110)가 임의의 적절한 컴퓨터일 수 있다는 것을 인식할 것이다.
매스터 프로세서의 장애
트랜잭션의 주요부 실행(body) 중 또는 2­단계 완료 중에 매스터 데이터베이스 프로세서(102)에 장애가 발생하는 경우, 중단된 트랜잭션이 적절히 처분(disposition)되어야 하고, 그렇지 않으면 분산 데이터베이스 네트워크는 불확정 상태로 진입한다. 예컨대, 슬레이브 데이터베이스 프로세서(126)는 매스터 데이터베이스 프로세서(102)에 발생한 문제를 인식하지 못하고 갱신 트랜잭션을 계속하여 완료할 수도 있다. 이 경우, 데이터는 데이터베이스(116)로 넘겨진다. 그러나, 슬레이브 데이터베이스 프로세서(108)는 매스터 데이터베이스 프로세서(102)에 발생한 문제를 인식하고 갱신 트랜잭션을 취소할 수도 있다. 이 경우, 데이터베이스(116)로 넘겨진 데이터는 데이터베이스(118)로 넘겨지지 않는다. 따라서, 데이터베이스(116) 내에 보유된 데이터는 데이터베이스(118) 내에 보유된 데이터와 달라지게 된다. 네트워크가 적절히 동작하기 위해서는 프로세서들의 분산 네트워크 내의 데이터베이스(112, 114, 116, 118, 120)들이 동일한 데이터를 보유하고 있어야 하므로, 이러한 상태를 불확정 상태라 지칭한다.
매스터 데이터베이스 프로세서(102)를 장애로부터 회복시키는 방법에 의하면 데이터베이스 프로세서(104, 106, 108, 110)는 갱신 트랜잭션에 대하여 동일한 처분(disposition)을 하게 되는데, 즉 모든 데이터베이스 프로세서가 트랜잭션을 완료하거나 모든 데이터베이스 프로세서가 트랜잭션을 취소하여야 한다. 종래 기술에 비해 개선된 점은 트랜잭션 처분(disposition)이 새로운 매스터의 지시없이, 그리고 트랜잭션의 재완료나 미완료없이 달성된다는 것이다.
도 2에 도시한 바와 같이, 데이터베이스 프로세서(110)에는 두 개의 타이머가 결합되어 있다. 각각의 데이터베이스 프로세서와 결합된 제 1 타이머는 트랜잭션 단계 타이머(152)이다. 트랜잭션 단계 타이머(152)는 타이머 윈도우라 지칭하는 특정 길이로 세팅되어 있다. 트랜잭션 단계 타이머(152)는 데이터베이스 갱신 트랜잭션이 수신되면 시작된다. 타이머 윈도우 내에서 데이터베이스(110)가 갱신 트랜잭션의 각 단계를 수신하지 않으면(즉, 트랜잭션의 종료 단계를 수신하지 않으면), 데이터베이스 프로세서는 자동적으로 그 트랜잭션을 취소할 것이다. 트랜잭션 단계 타이머(152)는 트랜잭션의 단계를 수신할 때마다 리세트된다. 또한, 데이터베이스 프로세서(110)가 매스터 데이터베이스 프로세서(102)로부터 완료 메시지에 대한 요청을 수신하면, 트랜잭션 단계 타이머(152)는 디스에이블된다.
데이터베이스 프로세서(110)와 결합된 제 2 타이머는 자동 완료 타이머(150)이다. 데이터베이스 프로세서(110)가 트랜잭션을 완료하도록 결정하면, 완료 메시지에 대한 결정이 매스터 데이터베이스 프로세서(102)로 보내진다. 자동 완료 타이머(150)는 완료 메시지에 대한 결정이 보내지면 시작된다. 일단 데이터베이스 프로세서가 2­단계 완료 과정 중 트랜잭션을 완료하도록 결정하고 나면, 데이터베이스 프로세서가 취소 메시지를 수신하지 않는 한, 그 프로세서는 자동 완료 타이머(150)가 종료하는 때 트랜잭션을 자동적으로 완료한다.
본 발명의 또다른 독특한 점은 전역 취소 메시지 시스템(global abort messaging system)이다. 임의의 데이터베이스 프로세서(104, 106, 108, 110)가 트랜잭션을 취소하면, 데이터베이스 프로세서는 모든 다른 프로세서들이 취소의 발생을 알도록 취소 매시지를 방송한다. 취소 메시지를 수신하면, 데이터베이스 프로세서는 트랜잭션을 취소하여야 한다. 일정한 경우, 취소 메시지를 수신하는 것은 취소 메시지가 폐기되는 경우 특정 데이터베이스 프로세서에 필수적이거나 유용할 수도 있고 그렇지 않을 수도 있다.
예를 들어, 데이터베이스 프로세서(110)가 트랜잭션을 취소하면, 전역 취소 메시지가 데이터베이스 프로세서(110)로부터 데이터베이스(102, 104, 106, 108)로 보내진다. 데이터베이스 프로세서(102, 104, 106, 108)는 전역 취소 메시지를 수신하고 트랜잭션을 취소한다. 나아가, 데이터베이스 프로세서(106)가 트랜잭션을 취소할 것을 독립적으로 결정하면, 데이터베이스 프로세서(106)에 의해 수신된 취소 메시지는 중복되어 폐기된다.
트랜잭션 단계 타이머(152)의 타이머 윈도우는 트랜잭션 단계 타이머(152)가 자동 완료 타이머(150)보다 짧도록 적당할 길이로 설계된다. 이렇게 하는 도중, 몇몇 데이터베이스 프로세서는 완료할 것을 결정하고, 몇몇 프로세서는 취소할 것을 결정하면, 트랜잭션 단계 타이머(152)는 종료하고, 취소한 데이터베이스 프로세서는 타임아웃되어 전역 취소 메시지를 보낸다. 따라서, 완료할 것을 결정하여 자신의 자동 완료 타이머가 진행 중인 데이터베이스 프로세서는 전역 취소 메시지를 수신하고 자신의 자동 완료 타이머를 취소할 것이다. 데이터베이스 프로세서(102, 104, 106, 108, 110)는 취소할 것이고, 모든 데이터베이스는 동일한 처분(disposition)을 하게 된다.
본 발명에 의하면 두 가지의 매스터 장애 상태가 제기된다. 매스터 데이터베이스 프로세서(102)가 트랜잭션의 주요부 완료 중 장애를 일으킬 수도 있고, 또는 매스터 데이터베이스 프로세서(102)가 2­단계 완료 중에 장애를 일으킬 수도 있다.
제 1 상태 하에서는, 트랜잭션의 주요부 실행 중, 즉, 트랜잭션 내의 단계 발생 중, 데이터베이스 프로세서(104, 106, 108, 110) 트랜잭션을 완료할 것을 결정하기 전에, 매스터 데이터베이스 프로세서(102)가 장애를 일으킨다. 매스터 데이터베이스 프로세서(102)가 이 때 장애를 일으키면, 데이터베이스 프로세서(104, 106, 108, 110)와 결합된 트랜잭션 단계 타이머는 종료하거나 타임­아웃된다. 트랜잭션 단계 타이머의 타임­아웃에 응답하여, 데이터베이스 프로세서(104, 106, 108, 110)는 트랜잭션을 취소한다.
제 2 상태 하에서는, 2­단계 완료 중에 매스터 데이터베이스 프로세서(102)가 장애를 일으킨다. 이 때, 데이터베이스 프로세서(104, 106, 108, 110)가 갱신 트랜잭션의 종료 단계를 수신하거나, 매스터가 완료 메시지에 대한 요청을 보내고, 데이터베이스 프로세서(104, 106, 108, 110)는 매스터 데이터베이스 프로세서(102)로 완료 메시지에 대한 결정을 보낸다. 데이터베이스 프로세서(104, 106, 108, 110)가 갱신 트랜잭션의 종료 단계를 수신한 후에는 세 가지 가능한 시나리오가 있다.
첫 번째 경우, 매스터 데이터베이스 프로세서(102)가 장애를 일으키기 전에는 데이터베이스 프로세서(104, 106, 108, 110) 중 어느 것도 완료할 것을 결정하지 않는다. 예를 들어, 매스터 데이터베이스 프로세서(102)는 데이터베이스 프로세서(104, 106, 108, 110)가 갱신 트랜잭션의 최종 단계를 수신한 후, 매스터 데이터베이스 프로세서(102)가 각각의 프로세서가 완료할 수 있는지를 묻는 메시지를 보내기 전에 장애를 일으킨다. 이 시나리오 하에서는, 트랜잭션 단계 타이머가 여전히 활성화되어 있으므로 모든 데이터베이스 프로세서가 타임­아웃될 것이고, 모든 데이터베이스 프로세서는 트랜잭션을 취소할 것이다. 트랜잭션 단계 타이머는 결합된 데이터베이스 프로세서가 완료를 요청하는 메시지를 수신한 후 디스에이블된다.
두 번째 경우에서는, 데이터베이스 프로세서(104, 106, 108, 110)가 완료할 것을 결정한 다음 매스터가 장애를 일으킨다. 이 시나리오 하에서는, 모든 데이터베이스 프로세서와 결합된 자동 완료 타이머가 타임­아웃될 것이고, 모든 데이터베이스 프로세서는 트랜잭션을 완료할 것이다.
세 번째 경우에서, 예로써, 데이터베이스 프로세서(104, 106)는 트랜잭션을 완료할 것을 결정하고 데이터베이스 프로세서(108, 110)는 취소할 것을 결정한다. 앞서 설명한 전역 취소 메시지 시스템 하에서, 취소 멤버는 완료 멤버가 트랜잭션의 완료 전에 전역 취소 메시지를 수신하도록 완료 멤버보다 빨리 타임­아웃된다. 따라서, 모든 데이터베이스 프로세서는 트랜잭션을 취소하고 데이터베이스(112, 114, 116, 118, 120)는 동일하게 유지된다.
도 3a, 도 3b, 도 4, 도 5, 도 6, 도 7은 장애를 일으키지 않은 모든 참여자로 하여금 외부적인 조정없이도 자동적으로 오류 회복을 수행하고, 갱신 트랜잭션을 완성하도록 하는 방법의 다양한 측면을 도시하는 흐름도이다. 과정을 완전하게 이해하기 위해, 매스터 데이터베이스 프로세서(102), 백업 매스터 데이터베이스 프로세서(104), 슬레이브 데이터베이스 프로세서(106, 108, 110)는 알고리즘이 다음 열거된 단계들을 수행하도록 프로그램된다.
도 3a 및 3b를 참조하면, 단계(210)에서는, 매스터 데이터베이스 프로세서(102)(도시하지 않음)와 결합된 (도 1 및 도 2에서 도시하고 위에서 설명한) 저널(122)이 생성된다. 단계 220에서는, 데이터베이스 갱신 트랜잭션의 단계들이 저널(122)에 기록된다. 단계(230, 240)에서 볼 수 있듯이, 각각의 슬레이브 데이터베이스 프로세서(106, 108, 110)와 결합된 두 개의 타이머가 생성된다. 단계(250)에서는, 슬레이브 프로세서(106, 108, 110)가 데이터베이스 갱신 트랜잭션의 개시가 수신되었는지를 문의한다. 슬레이브 데이터베이스 프로세서가 데이터베이스 갱신 트랜잭션을 수신할 때까지, 이 문의는 연속 루프 내에서 계속된다. 단계(260)에서는, 데이터베이스 갱신 트랜잭션을 수신한 슬레이브 프로세서와 결합된 제 1 타이머가 시작된다.
단계(270)에서, 갱신 트랜잭션을 수신한 슬레이브 프로세서는 데이터베이스 갱신 트랜잭션의 다음 단계가 수신되었는지를 문의한다. 데이터베이스 갱신 트랜잭션 내의 다음 단계가 수신된 경우, 제 1 타이머는 단계(280)에서와 같이 리세트되고 재시작되며, 데이터베이스 갱신 트랜잭션을 수신한 슬레이브 프로세서는 도 270에서와 같이 다음 단계가 수신되었는지를 다시 한 번 문의한다. 단계(270)에서 데이터베이스 갱신 트랜잭션의 다음 부분이 수신되지 않은 경우, 데이터베이스는 단계(290)와 같이 매스터 데이터베이스 프로세서(102)로부터 완료 메시지에 대한 요청이 수신되었는지를 문의한다. 완료 메시지에 대한 요청이 수신되지 않은 경우, 단계(300)에서 슬레이브 프로세서는 제 1 타이머가 종료하였는지 문의한다. 제 1 타이머가 종료하지 않은 경우, 단계(270)에서 슬레이브 프로세서는 데이터베이스 갱신 트랜잭션의 다음 단계가 수신되었는지 문의한다. 제 1 타이머가 종료한 경우, 슬레이브 프로세서는 단계(310)와 같이 트랜잭션을 취소하고, 단계(320)에서와 같이 다른 모든 슬레이브 프로세서로 전역 취소 메시지를 보낸다. 슬레이브 프로세서는 새로운 데이터베이스 갱신 트랜잭션을 수신할 수 있고, 따라서 단계(250)로 돌아간다.
단계(290)에서 완료 메시지에 대한 요청이 매스터 데이터베이스 프로세서(102)로부터 수신되면, 제 1 타이머는 단계(330)와 같이 취소된다. 단계(340)에서, 슬레이브 프로세서는 매스터 데이터베이스 프로세서(102)로 완료 메시지에 대한 결정을 보낸다. 완료 메시지에 대한 결정을 보낸 슬레이브 프로세서와 결합된 제 2 타이머는 단계(330)에서와 같이 시작된다. 제 2 타이머가 시작된 후, 결합된 슬레이브 프로세서는 단계(360)에서와 같이 제 2 타이머가 종료되었는지를 문의한다. 제 2 타이머가 종료한 경우, 데이터베이스 갱신 트랜잭션이 단계(370)에서와 같이 완료된다. 단계(380)에서는, 적절한 슬레이브 데이터베이스 프로세서가 최종 완료된 데이터베이스 갱신 트랜잭션의 표시(indicia)를 기록하고 새로운 데이터베이스 갱신 트랜잭션의 개시를 수신할 준비를 한다.
제 2 타이머가 종료하지 않은 경우, 슬레이브 데이터베이스 프로세서는 단계(390)에서와 같이 취소 메시지가 수신되었는지를 문의한다. 취소 메시지가 수신되지 않은 경우, 슬레이브 데이터베이스 프로세서는 단계(360)에서와 같이 제 2 타이머가 종료하였는지를 다시 문의한다. 취소 메시지가 수신된 경우, 슬레이브 데이터베이스 프로세서는 단계(395)에서와 같이 데이터베이스 갱신 트랜잭션을 취소하고, 단계(397)에서와 같이 모든 슬레이브 프로세서로 전역 취소 메시지를 보낸다. 데이터베이스 갱신 트랜잭션을 취소한 슬레이브 프로세서는 새로운 데이터베이스 갱신 트랜잭션을 수신할 수 있다.
도 4는 장애를 일으킨 슬레이브 프로세서의 장애 회복을 도시한 흐름도이다. 매스터 데이터베이스 프로세서(102)(도시하지 않음)와 결합한 (도 1 및 도 2에 도시하고 앞에서 설명한) 저널(122)이 단계(410)에서와 같이 생성된 후, 단계(420)에서는 데이터베이스 갱신 트랜잭션의 단계들이 저널(122)에 기록된다. 슬레이브 데이터베이스 프로세서(106, 108, 110)는 단계(430)에서와 같이, 각각의 프로세서에서 완료된 최종 완성된 데이터베이스 갱신 트랜잭션의 표시(indicia)를 기록한다. 단계(450)에서, 슬레이브 프로세서(106, 108, 110)에 장애가 발생하면, 그 장애는 저널로부터 장애를 일으킨 적절한 프로세서로 복사되므로, 모든 데이터베이스는 트랜잭션을 갱신한다.
도 5는 (도 2에 도시하고 위에서 설명한) 트랜잭션 단계 타이머(152)의 전반적인 동작의 흐름도를 도시한다. 단계(510)에서와 같이, 일단 제 1 타이머가 생성되고 슬레이브 프로세서와 결합되면, 단계(520)에서와 같이 슬레이브 프로세서는갱신 트랜잭션이 수신되었는지 문의한다. 데이터베이스 갱신 트랜잭션이 수신되지 않은 경우, 알고리즘은 되돌아가서 데이터베이스 갱신 트랜잭션이 수신되었는지 다시 문의한다. 데이터베이스 갱신 트랜잭션이 슬레이브 프로세서에 의해 수신된 경우, 데이터베이스 갱신 트랜잭션을 수신한 슬레이브 프로세서와 결합된 제 1 타이머는 단계(530)와 같이 시작한다. 그런 다음, 단계(540)에서, 슬레이브 데이터베이스 프로세서는 제 1 타이머가 종료하였는지 문의한다. 제 1 타이머가 종료한 경우, 데이터베이스 갱신 트랜잭션은 단계(550)에서와 같이 취소되고, 단계(560)에서와 같이 전역 취소 메시지가 모든 슬레이브 프로세서로 보내진다. 제 1 타이머가 종료하지 않은 경우, 슬레이브 데이터베이스 프로세서는 단계(570)에서와 같이 데이터베이스 갱신 트랜잭션의 일부분이 수신되었는지 문의한다. 일부분이 수신되지 않은 경우, 슬레이브 데이터베이스 프로세서는 단계(540)에서와 같이 제 1 타이머가 종료하였는지를 다시 한 번 문의한다. 갱신 트랜잭션의 일부분이 수신된 경우, 제 1 타이머는 단계(580)에서와 같이 리세트되고 제 1 타이머는 재시작된다.
도 6은 (도 2에 도시하고 위에서 설명한) 자동 완료 타이머(150)의 전반적인 동작을 도시하는 흐름도이다. 단계(610)에서와 같이 일단 타이머가 생성되면, 단계(620)에서 슬레이브 데이터베이스 프로세서는 데이터베이스 갱신 트랜잭션이 수신되었는지 문의한다. 데이터베이스 갱신 트랜잭션이 수신되지 않았다는 응답이 있을 때마다, 알고리즘은 되돌아가 데이터베이스 갱신 트랜잭션이 수신되었는지를 계속해서 문의한다. 데이터베이스 갱신 트랜잭션이 수신된 경우, 단계(630)에서와 같이 슬레이브 데이터베이스 프로세서는 일정한 시기에 매스터 데이터베이스 프로세서(102)(도시하지 않음)로부터 완료 메시지에 대한 요청을 수신한다. 완료 메시지에 대한 요청을 수신한 후, 슬레이브 데이터베이스 프로세서는 단계(640)에서와 같이 매스터 데이터베이스 프로세서(102)로 완료 메시지에 대한 결정을 보낸다. 단계(650)에서, 완료 메시지에 대한 결정을 보낸 슬레이브 프로세서와 결합된 타이머가 시작된다. 그런 다음, 슬레이브 데이터베이스는 단계(660)에서와 같이 타이머가 종료하였는지를 문의한다. 타이머 종료한 경우, 데이터베이스 갱신 트랜잭션이 단계(670)에서와 같이 완료된다. 타이머가 종료하지 않은 경우, 슬레이브 데이터베이스 프로세서는 단계(680)에서와 같이 전역 취소 메시지가 수신되었는지 문의한다. 전역 취소 메시지가 수신되지 않은 경우, 알고리즘은 되돌아가 단계(650)에서와 같이 타이머가 종료하였는지를 다시 문의한다. 전역 취소 메시지가 단계(680)에서 수신된 경우, 슬레이브 데이터베이스 프로세서는 단계(690)에서와 같이) 데이터베이스 갱신 트랜잭션을 취소하고, 단계(695)에서와 같이 모든 슬레이브 프로세서로 전역 취소 메시지를 보낸다. 데이터베이스 갱신 트랜잭션을 취소한 슬레이브 프로세서는 새로운 갱신 트랜잭션을 수신할 수 있다.
도 7은 자동 완료 타이머(150)와 트랜잭션 단계 타이머(152)(양자 모두 도 2에서 도시하고 위에서 설명함) 사이의 조정을 전반적으로 개관하는 흐름도이다. 단계(710)와 단계(720)에서와 같이, 일단 각각의 타이머가 생성되어 각각의 슬레이브 프로세서와 결합되면, 각각의 슬레이브 데이터베이스 프로세서는 갱신 데이터베이스 트랜잭션의 개시가 수신되었는지를 단계(730)에서와 같이 문의한다. 갱신 트랜잭션의 개시가 수신되지 않은 경우, 알고리즘은 되돌아가 데이터베이스 갱신 트랜잭션의 개시가 수신되었는지를 다시 문의한다. 데이터베이스 갱신 트랜잭션의 개시가 수신된 경우, 단계(740)에서와 같이 데이터베이스 갱신 트랜잭션을 수신한 슬레이브 프로세서와 결합된 트랜잭션 단계 타이머가 시작된다. 단계(750)에서, 슬레이브 데이터베이스 프로세서는 제 1 타이머가 종료하였는지 문의한다. 단계(760)에서, 제 1 타이머가 종료하지 않은 경우, 슬레이브 데이터베이스 프로세서는 완료 메시지에 대한 요청이 매스터 데이터베이스 프로세서(102)(도시하지 않음)로부터 수신되었는지 문의한다. 완료 메시지에 대한 요청이 수신되지 않은 경우, 슬레이브 데이터베이스 프로세서는 단계(770)에서와 같이 데이터베이스 갱신 트랜잭션의 일부분이 수신되었는지를 문의한다. 갱신 트랜잭션의 일부분이 수신되지 않은 경우, 슬레이브 데이터베이스 프로세서는 단계(750)에서와 같이 제 1 타이머가 종료하였는지를 문의한다. 갱신 트랜잭션의 일부분이 수신된 경우, 트랜잭션 단계 타이머는 리세트되고 재시작된다.
완료 메시지에 대한 요청이 매스터 데이터베이스 프로세서(102)로부터 수신된 경우, 트랜잭션 단계 타이머는 단계(810)에서와 같이 디스에이블된다. 단계(820)에서, 슬레이브 데이터베이스 프로세서는 매스터 데이터베이스 프로세서(102)로 완료 메시지에 대한 결정을 보낸다. 완료 메시지에 대한 결정을 보낸 슬레이브 프로세서와 결합된 제 2 타이머가 단계(830)에서와 같이 시작된다. 단계(840)에서, 슬레이브 데이터베이스 프로세서는 제 2 타이머가 종료하였는지 문의한다. 제 2 타이머가 종료한 경우, 슬레이브 데이터베이스 프로세서는 단계(850)에서와 같이 데이터베이스 갱신 트랜잭션을 완료한다. 슬레이브 데이터베이스 프로세서는 새로운 데이터베이스 갱신 트랜잭션을 수신할 준비를 한다. 제 2 타이머가 종료하지 않은 경우, 슬레이브 데이터베이스 프로세서는 단계(860)에서와 같이 취소 메시지가 수신되었는지 문의한다. 취소 메시지가 수신된 경우, 슬레이브 데이터베이스 프로세서는 단계(870)에서와 같이 데이터베이스 갱신 트랜잭션을 취소하고, 단계(880)에서와 같이 다른 모든 슬레이브 프로세서로 전역 취소 메시지를 보낸다. 슬레이브 데이터베이스 프로세서는 새로운 데이터베이스 갱신 트랜잭션을 수신할 준비를 한다.
접속된 데이터베이스 프로세서들의 네트워크는 본 명세서에서 설명한 본 발명을 이용해서, 매스터 데이터베이스 프로세서나 슬레이브 프로세서 중 어느 하나의 장애를 해명하여, 장애 상태를 회복시키는 처리 능력을 중단시킬 필요성을 제거한다. 회복 또는 재일치 과정은 네트워크 환경 내에서 진행 중인 과정과는 무관하게 발생하여, 네트워크의 신뢰도를 높이고 시스템이 장애로부터 회복되는데 걸리는 휴지 시간(downtime)을 줄인다.
본 발명은 바람직한 실시예를 참조하여 설명하였다. 본 명세서를 읽고 이해한 자들이 수정과 변경을 가할 수 있다는 것은 명백하다. 그러한 모든 수정과 변경은 첨부한 청구범위 및 그 상당 범위 내에 있는 한, 본 발명에 포함되는 것으로 해석되어야 한다.
본 발명은 매스터 데이터베이스 프로세서의 장애로 인해 정규적으로 완성하지 못한 트랜잭션을 적절히 완성할 수 있게 하는 분산 데이터베이스 시스템을 제공하여 새로운 매스터의 지시없이 그리고 트랜잭션의 미수행이나 재수행없이 트랜잭션을 완성한다. 또한, 본 발명은 장애가 발생한 트랜잭션의 클린업(cleanup)과 관련된 결과적 지연을 제거하는 외부적인 조정없이 장애가 발생하지 않은 모든 참여자가 자동적으로 임의의 장애 회복을 수행하도록 하는 분산 데이터베이스 시스템을 제공하고, 장애가 발생한 참여자는 재일치 기간 동안 진행 중인 임의의 트랜잭션을 가로막지 않으면서, 장애가 발생하지 않은 계(community)와 재일치되고 새로운 트랜잭션에 참여하게 된다.

Claims (38)

  1. 적어도 하나의 매스터 프로세서와 다수의 슬레이브 프로세서를 포함하되, 각 프로세서는 각 프로세서에 결합된 데이터 베이스를 액세스하고 제어하는 시스템에서, 상기 적어도 하나의 매스터 프로세서 또는 상기 다수의 슬레이브 프로세서 중 어느 하나와 관련된 장애 상태(failure condition)를 보상하는 방법에 있어서,
    ① 상기 각각의 프로세서에서 최종 완성된 데이터베이스 갱신 트랜잭션을 기록하는 단계와,
    ② 상기 적어도 하나의 매스터 데이터베이스 프로세서에 의해 생성된 사전결정된 수의 데이터베이스 갱신 트랜잭션 단계를 기록하며, 상기 적어도 하나의 매스터 데이터베이스 프로세서와 동작가능하게 결합되는 저널(journal)을 생성하는 단계와,
    ③ 상기 저널 내에 상기 데이터베이스 갱신 트랜잭션 단계를 기록하는 단계와,
    ④ 다수의 제 1 타이머를 생성하되, 상기 다수의 슬레이브 프로세서 각각이 상기 다수의 제 1 타이머 중 적어도 하나와 결합되어 있는 단계와,
    ⑤ 다수의 제 2 타이머를 생성하되, 상기 다수의 슬레이브 프로세서 각각이 상기 다수의 제 2 타이머 중 적어도 하나와 결합되어 있는 단계와,
    ⑥ 갱신 트랜잭션의 개시 시에, 상기 다수의 제 1 타이머 중 상기 적어도 하나를 시작하는 단계와,
    ⑦ 갱신 트랜잭션 종료 시에, 상기 다수의 슬레이브 프로세서 중 제 1 슬레이브 프로세서로부터 상기 적어도 하나의 매스터 프로세서로 사전결정된 메시지를 보내는 단계와,
    ⑧ 상기 사전결정된 메시지가 상기 적어도 하나의 매스터 프로세서로 보내지면, 상기 다수의 슬레이브 프로세서 중 상기 제 1 슬레이브 프로세서와 결합된 상기 제 2 타이머를 시작하는 단계와,
    ⑨ 상기 다수의 슬레이브 프로세서 중 어느 하나가 장애를 일으킨 경우,
    ㉠ 이전에 장애를 일으킨 프로세서의 최종 데이터베이스 갱신에 후속하는 모든 데이터베이스 갱신 트랜잭션을 상기 저널로부터 상기 장애를 일으킨 프로세서로 복사하는 단계와,
    ⑩ 상기 적어도 하나의 매스터 프로세서가 장애를 일으킨 경우,
    ㉠ 다수의 제 2 타이머 중 상기 적어도 하나가 종료하기 전에 상기 다수의 제 1 타이머 중 상기 적어도 하나의 종료를 검출한 후,
    ㉮ 상기 현재 갱신 트랜잭션을 취소하는 단계와,
    ㉯ 상기 다수의 제 1 타이머 중 종료된 적어도 하나와 결합된 상기 슬레이브 프로세서에 의해 상기 다수의 슬레이브 데이터베이스 프로세서로 취소 메시지를 보내는 단계와,
    ㉡ 상기 다수의 제 2 타이머 중 상기 적어도 하나의 종료를 검출한 후, 상기 현재 갱신 트랜잭션을 수행하는 단계
    를 포함하는 장애 상태 보상 방법.
  2. 제 1 항에 있어서,
    결합된 슬레이브 프로세서가 갱신 트랜잭션의 각 단계를 수신한 후, 상기 다수의 제 1 타이머 중 상기 적어도 하나를 리세팅하는 단계를 단계 ⑥과 단계 ⑦ 사이에 더 포함하는 장애 상태 보상 방법.
  3. 제 1 항에 있어서,
    상기 단계 ⑧은 상기 다수의 슬레이브 프로세서 중 상기 제 1 슬레이브 프로세서와 결합된 상기 다수의 제 1 타이머 중 상기 적어도 하나를 디스에이블시키는 단계를 더 포함하는 장애 상태 보상 방법.
  4. 제 1 항에 있어서,
    상기 단계 ②는 매스터 데이터베이스에 의해 생성된 데이터베이스 갱신 트랜잭션 단계를 기록하는 순환 버퍼(circular buffer)를 생성하는 단계를 포함하는 장애 상태 보상 방법.
  5. 제 1 항에 있어서,
    상기 저널은 단계 ① 내지 단계 ⑩ 동안에 갱신되는 장애 상태 보상 방법.
  6. 적어도 하나의 매스터 프로세서와 다수의 슬레이브 프로세서를 포함하되, 각각의 프로세서는 각각의 프로세서에 결합된 데이터베이스를 액세스 및 제어하는 프로세서들의 분산 네트워크에서, 장애가 발생한 슬레이브 프로세서가 회복된 후 다른 데이터 베이스와 매칭되도록 상기 장애가 발생한 슬레이브 프로세서의 데이터베이스를 갱신하는 방법에 있어서,
    ① 다수의 제 1 타이머들중의 제 1 타이머에 의해 설정된 ― 상기 다수의 제 1 타이머들의 제 1 타이머 각각은 각 프로세서와 결합됨 ― 제 1 타이머 윈도우 동안에 상기 분산 네트워크에 배치된 각 프로세서에서 최종 완성된 데이터베이스 갱신 트랜잭션 기록을 기록하는 단계와,
    ② 각 프로세서와 결합된 제 2 타이머에 의해 설정된 ― 상기 제 2 타이머는 다수의 제 2 타이머들중의 하나임 ― 제 2 타이머 윈도우 동안에 매스터 데이터베이스 프로세서에 의해 생성된 데이터베이스 갱신 트랜잭션 단계를 기록하고, 상기 분산 네트워크에 배치된 상기 매스터 데이터베이스 프로세서와 동작 가능하게 결합된 저널을 생성하는 단계와,
    ③ 상기 저널 내에, 상기 데이터베이스 갱신 트랜잭션의 상기 단계를 기록하는 단계와,
    ④ 상기 분산 네트워크에 배치된 장애가 발생한 프로세서의 회복 시에, 이전에 장애가 발생한 프로세서의 최종 데이터베이스 갱신에 후속하는 모든 데이터베이스 갱신 트랜잭션을 상기 저널로부터 상기 장애가 발생한 프로세서로 복사하는 단계
    를 포함하는 데이터베이스 갱신 방법.
  7. 제 6 항에 있어서,
    상기 단계 ②는 매스터 데이터베이스에 의해 생성된 데이터베이스 갱신 트랜잭션 단계를 기록하는 순환 버퍼를 생성하는 단계를 포함하는 데이터베이스 갱신 방법.
  8. 제 7 항에 있어서,
    상기 순환 버퍼는 단계 ① 내지 단계 ④ 동안에 갱신되는 단계를 포함하는 데이터베이스 갱신 방법.
  9. 제 6 항에 있어서,
    상기 단계 ①이 최종 데이터베이스 갱신 트랜잭션의 개수를 기록하는 단계를 더 포함하는 데이터베이스 갱신 방법.
  10. 제 6 항에 있어서,
    상기 단계 ①이 최종 데이터베이스 갱신 트랜잭션의 완전한 복사본을 기록하는 단계를 더 포함하는 데이터베이스 갱신 방법.
  11. 제 6 항에 있어서,
    상기 단계 ①이 최종 데이터베이스 갱신 트랜잭션의 날짜를 기록하는 단계를 더 포함하는 데이터베이스 갱신 방법.
  12. 제 6 항에 있어서,
    상기 단계 ①이 최종 데이터베이스 갱신 트랜잭션의 시간을 기록하는 단계를 더 포함하는 데이터베이스 갱신 방법.
  13. 제 6 항에 있어서,
    단계 ① 내지 단계 ④ 동안에 발생한 데이터베이스 갱신 트랜잭션을 장애가 발생한 슬레이브 프로세서로 복사하는 단계를 더 포함하는 데이터베이스 갱신 방법.
  14. 제 6 항에 있어서,
    ⑤ 백업 (back­up) 매스터 프로세서로서 프로세서를 지정하는 단계와,
    ⑥ 상기 백업 매스터 프로세서와 동작가능하게 결합된 저널을 생성하는 단계와,
    ⑦ 상기 매스터 데이터베이스 프로세서와 동작가능하게 결합된 저널에 기록된 정보를 상기 백업 매스터 프로세서와 동작가능하게 결합된 저널로 기록하는 단계
    를 더 포함하는 데이터베이스 갱신 방법.
  15. 청구항15는 삭제 되었습니다.
  16. 청구항16는 삭제 되었습니다.
  17. 청구항17는 삭제 되었습니다.
  18. 청구항18는 삭제 되었습니다.
  19. 청구항19는 삭제 되었습니다.
  20. 적어도 하나의 매스터 프로세서와 다수의 슬레이브 프로세서를 포함하되, 각 프로세서가 각 프로세서에 결합되는 데이타 베이스를 액세스하고 제어하는 프로세서들의 분산 네트워크에서, 상기 적어도 하나의 매스터 프로세서의 장애 후에 갱신 트랜잭션을 완성하는 방법에 있어서,
    상기 다수의 슬레이브 프로세서와 동작가능하게 결합되는 다수의 타이머를 생성하여, 상기 다수의 슬레이브 프로세서 각각이 상기 다수의 타이머 중 적어도 하나의 타이머와 결합되도록 하는 단계와,
    상기 다수의 슬레이브 프로세서 중 제 1 슬레이브 프로세서에서 현재 갱신 트랜잭션을 수신하는 단계와,
    상기 현재 갱신 트랜잭션을 수신시에, 상기 다수의 슬레이브 프로세서 중 상기 제 1 슬레이브 프로세서로부터 상기 적어도 하나의 매스터 프로세서로 완료 메시지에 대한 보트(vote)를 보내는 단계와,
    상기 메시지를 보낸 상기 다수의 슬레이브 프로세서 중 상기 어느 하나와 결합되는 다수의 타이머 중 상기 적어도 하나를 시작하는 단계와,
    다수의 타이머 중 상기 적어도 하나의 종료에 응답하는 단계
    를 포함하는 갱신 트랜잭션 완성 방법.
  21. 청구항21는 삭제 되었습니다.
  22. 제 20 항에 있어서,
    다수의 타이머 중 상기 적어도 하나의 종료에 응답하는 상기 단계는 상기 현재 갱신 트랜잭션의 완료 단계를 더 포함하는 갱신 트랜잭션 완성 방법.
  23. 제 20 항에 있어서,
    다수의 타이머 중 상기 적어도 하나의 종료 이전에 상기 다수의 슬레이브 프로세서 중 상기 어느 하나로부터 취소 메시지를 수신하는 단계와,
    상기 취소 메시지를 수신한 상기 다수의 슬레이브 프로세서 중 상기 어느 하나에 의해 상기 현재 갱신 트랜잭션을 취소하는 단계
    를 더 포함하는 갱신 트랜잭션 완성 방법.
  24. 제 20 항에 있어서,
    상기 취소 메시지를 수신한 상기 다수의 슬레이브 프로세서 중 상기 어느 하나에 의해 상기 다수의 슬레이브 데이터베이스 프로세서로 취소 메시지를 보내는 단계를 더 포함하는 갱신 트랜잭션 완성 방법.
  25. 각각의 프로세서가 데이터베이스와 결합되는 프로세서들의 분산 네트워크에 있어서,
    상기 각각의 프로세서와 결합되는 데이터베이스를 갱신하는 매스터 프로세서와,
    상기 매스터 프로세서에 의해 보내진 데이터베이스를 기록하는 다수의 슬레이브 프로세서와,
    다수의 제 1 타이머 ― 상기 다수의 슬레이브 프로세서 각각은 상기 다수의 제 1 타이머중 적어도 하나와 결합되고, 제 1 타이머 각각은 제 1 타이머 윈도우와 결합됨―와,
    다수의 제 2 타이머 ― 상기 다수의 슬레이브 프로세서 각각은 상기 다수의 제 2 타이머중 적어도 하나와 결합되고, 제 2 타이머 각각은 제 2 타이머 윈도우와 결합됨―와,
    상기 매스터 프로세서와 결합되어, 매스터 데이터베이스 프로세서에 의해 성공적으로 완성된 데이터베이스 갱신 트랜잭션의 단계를 기록하되, 장애를 일으킨 프로세서가 회복되거나 서비스를 복구한 후에 상기 장애를 일으킨 슬레이브 프로세서의 데이터베이스를 갱신하거나 재일치시키는데 사용되는 저널과,
    상기 매스터 프로세서와 상기 다수의 슬레이브 프로세서를 상호접속시키는 고속 데이터 상호접속부
    를 포함하는 프로세서들의 분산 네트워크.
  26. 제 25 항에 있어서,
    상기 저널 중 적어도 하나는 데이터베이스 갱신 트랜잭션을 저장하는 순환 버퍼를 더 포함하는 프로세서들의 분산 네트워크.
  27. 제 25 항에 있어서,
    상기 다수의 슬레이브 프로세서 중 적어도 하나는 최종 완성된 갱신 트랜잭션을 저장하는 적어도 하나의 데이터베이스 기록을 더 포함하는 프로세서들의 분산 네트워크.
  28. 제 27 항에 있어서,
    상기 데이터베이스 기록은 랜덤 액세스 메모리를 더 포함하는 프로세서들의 분산 네트워크.
  29. 제 25 항에 있어서,
    상기 다수의 슬레이브 프로세서 중 적어도 하나는 최종 완성된 갱신 트랜잭션의 표지(indicator)를 저장하는 적어도 하나의 전자 저장 매체 소자를 더 포함하는 프로세서들의 분산 네트워크.
  30. 제 25 항에 있어서,
    상기 고속 데이터 상호접속부는 이더넷(Ethernet)을 더 포함하는 프로세서들의 분산 네트워크.
  31. 각각의 프로세서가 데이터베이스와 결합되어 있는 프로세서들의 분산 네트워크에 있어서,
    상기 각각의 프로세서와 결합된 데이터베이스를 갱신하는 매스터 프로세서와,
    상기 매스터 프로세서에 의해 보내진 데이터베이스 갱신을 기록하는 다수의슬레이브 프로세서와,
    상기 다수의 슬레이브 프로세서 각각이 그들 중 적어도 하나와 결합되어 있으며, 그 각각은 제 1 타이머 윈도우와 결합되어 있는 다수의 제 1 타이머와,
    상기 다수의 슬레이브 프로세서 각각이 그들 중 적어도 하나와 결합되어 있으며, 그 각각은 제 2 타이머 윈도우와 결합되어 있는 다수의 제 2 타이머와,
    상기 적어도 하나의 매스터 데이터베이스 프로세서에 의해 생성된 데이터베이스 갱신 트랜잭션의 단계를 기록하며, 상기 적어도 하나의 매스터 데이터베이스 프로세서와 동작가능하게 결합되는 저널과,
    상기 슬레이브 프로세서에 의해 수행된 최종 완성된 데이터베이스 갱신 트랜잭션의 표시(indicia)를 저장하는 메모리 수단
    을 포함하는 프로세서들의 분산 네트워크.
  32. 제 31 항에 있어서,
    상기 다수의 제 1 타이머는 상기 다수의 제 2 타이머보다 더 긴 주기를 갖는 프로세서들의 분산 네트워크.
  33. 적어도 하나의 매스터 프로세서와 다수의 슬레이브 프로세서를 포함하되, 각 프로세서는 각 프로세서와 결합되는 데이터 베이스를 액세스하고 제어하는 프로세서의 분산 네트워크에서, 상기 적어도 하나의 매스터 프로세서의 장애후에 갱신 트랜잭션을 완성하는 방법에 있어서:
    상기 다수의 슬레이브 프로세서와 동작 가능하게 결합되는 다수의 제 1 타이머를 생성하여, 상기 다수의 슬레이브 프로세서의 각각이 상기 다수의 제 1 타이머중 적어도 하나와 결합되도록 하는 단계와,
    상기 다수의 슬레이브 프로세서와 동작 가능하게 결합되는 다수의 제 2 타이머를 생성하여, 상기 다수의 슬레이브 프로세서의 각각이 상기 다수의 제 2 타이머중 하나와 결합되도록 하는 단계와,
    상기 결합된 슬레이브 프로세서가 현재 갱신 트랜잭션의 시작 단계를 수신하는것에 응답하여 상기 다수의 제 1 타이머중 적어도 하나를 시작하는 단계와,
    상기 결합된 슬레이브 프로세서가 현재 갱신 트랜잭션의 종료 단계를 수신하는것에 응답하여, 메시지를, 상기 다수의 슬레이브 프로세서중 임의의 어느 하나에서 상기 적어도 하나의 매스터 프로세서로 전송하는 단계와,
    상기 메시지 전송에 응답하여 상기 메시지를 전송하는 상기 다수의 슬레이브 프로세서중 어느 하나와 결합되는 다수의 제 2 타이머중 상기 적어도 하나를 시작하는 단계, 및
    상기 다수의 제 1 타이머중 상기 적어도 하나 또는 다수의 제 2 타이머중의 상기 적어도 하나의 제 1 타이머의 만료를 검출하는 단계를 포함하는,
    방법.
  34. 제 33 항에 있어서,
    다수의 제 2 타이머중 상기 적어도 하나의 만료 이전에 상기 다수의 제 1 타이머중 적어도 하나의 제 1 타이머의 만료를 검출하는 단계와,
    상기 현재 갱신 트랜잭션을 취소하는 단계를 더 포함하는,
    방법.
  35. 제 34 항에 있어서,
    상기 다수의 제 1 타이머 중 종료된 적어도 하나와 결합된 상기 슬레이브 프로세서에 의해 상기 다수의 슬레이브 데이터베이스 프로세서로 취소 메시지를 보내는 단계를 더 포함하는,
    방법.
  36. 제 35 항에 있어서,
    상기 다수의 슬레이브 프로세서중 하나에 의해 상기 취소 메시지를 수신하는 단계와,
    상기 다수의 슬레이브 프로세서중 상기 하나의 슬레이브 프로세서에 의해 현재 갱신 트랜잭션을 취소하는 단계, 및
    다수의 슬레이브 프로세서중 상기 하나의 슬레이브 프로세서에 의해 상기 다수의 슬레이브 프로세서로 취소 메시지를 전송하는 단계를 더 포함하는,
    방법.
  37. 제 36 항에 있어서,
    상기 다수의 제 2 타이머중 상기 적어도 하나의 제 2 타이머의 만료를 검출하는 단계와,
    상기 현재 갱신 트랜잭션을 완료하는 단계를 더 포함하는,
    방법.
  38. 적어도 하나의 매스터 프로세서와 다수의 슬레이브 프로세서를 포함하되, 각각의 프로세서는 각각의 프로세서에 결합된 데이터 베이스를 액세스하고 제어하는 프로세서의 분산 네트워크에서, 상기 적어도 하나의 매스터 프로세서의 장애 후에 갱신 트랜잭션을 완료하는 방법에 있어서,
    ① 상기 다수의 슬레이브 프로세서와 동작 가능하게 결합된 다수의 제 1 타이머를 생성하여, 상기 다수의 슬레이브 프로세서 각각이 상기 다수의 제 1 타이머중 적어도 하나와 결합되도록 하는 단계와,
    ② 상기 다수의 슬레이브 프로세서와 동작 가능하게 결합된 다수의 제 2 타이머를 생성하여, 상기 다수의 슬레이브 프로세서 각각이 상기 다수의 제 2 타이머중 적어도 하나와 결합되도록 하는 단계와,
    ③ 상기 결합된 슬레이브 프로세서가 현재 갱신 트랜잭션의 시작 단계를 수신하는 것에 응답하여, 상기 다수의 제 1 타이머중 적어도 하나를 시작하는 단계와,
    ④ 상기 결합된 슬레이브 프로세서에 의해 상기 갱신 트랜잭션의 일부를 수신하는 것에 응답하여 상기 다수의 타이머중 적어도 하나를 리셋시키는 단계와,
    ⑤ 상기 적어도 하나의 매스터 프로세서로 부터 메시지를 수신하는 것에 응답하여 상기 다수의 타이머중 적어도 하나를 디스에이블시키는 단계와,
    ⑥ 상기 결합된 슬레이브 프로세서가 현재 갱신 트랜잭션의 종료 단계를 수신하는 것에 응답하여, 상기 다수의 슬레이브 프로세서중 어느 하나의 프로세서에서 상기 적어도 하나의 매스터 프로세서로 메시지를 전송하는 단계와,
    ⑦ 상기 메시지 전송에 응답하여 상기 메시지를 전송하는 상기 다수의 슬레이브 프로세서중 어느 하나에 결합된 다수의 제 2 타이머중 적어도 하나를 시작하는 단계와,
    ⑧ 다수의 제 2 타이머중 상기 적어도 하나의 만료 전에 상기 다수의 제 1 타이머중 상기 적어도 하나의 만료를 검출하고, 이후,
    ㉠ 상기 현재 갱신 트랜잭션을 취소하고,
    ㉡ 상기 다수의 제 1 타이머중 만료된 적어도 하나와 결합된 상기 슬레이브 프로세서에 의해 상기 다수의 슬레이브 데이터 베이스에 취소 메시지를 전송하는 단계; 및
    ⑨ 상기 다수의 제 2 타이머중 상기 적어도 하나의 만료를 검출하고, 그 다음 상기 현재 갱신 트랜잭션을 완료하는 단계를 포함하는,
    방법.
KR1019990011550A 1998-04-07 1999-04-02 갱신 트랜잭션 완성 방법 및 장치 KR100324165B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/056,499 1998-04-07
US9/056,499 1998-04-07
US09/056,499 US6202067B1 (en) 1998-04-07 1998-04-07 Method and apparatus for correct and complete transactions in a fault tolerant distributed database system

Publications (2)

Publication Number Publication Date
KR19990082867A KR19990082867A (ko) 1999-11-25
KR100324165B1 true KR100324165B1 (ko) 2002-02-16

Family

ID=22004804

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990011550A KR100324165B1 (ko) 1998-04-07 1999-04-02 갱신 트랜잭션 완성 방법 및 장치

Country Status (6)

Country Link
US (1) US6202067B1 (ko)
EP (1) EP0950955B1 (ko)
JP (1) JP3822381B2 (ko)
KR (1) KR100324165B1 (ko)
CA (1) CA2265158C (ko)
DE (1) DE69923621T2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170032130A (ko) 2015-09-14 2017-03-22 서울대학교산학협력단 동적 인메모리 네이티브 그래프 트랜잭션 데이터베이스의 갱신 관리 장치

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11338746A (ja) * 1998-05-27 1999-12-10 Ntt Communication Ware Kk データベースアクセスシステムおよびプログラムを記録したコンピュータ読み取り可能な記録媒体
US6523130B1 (en) * 1999-03-11 2003-02-18 Microsoft Corporation Storage system having error detection and recovery
US6490693B1 (en) * 1999-08-31 2002-12-03 International Business Machines Corporation Dynamic reconfiguration of a quorum group of processors in a distributed computing system
US6487678B1 (en) * 1999-08-31 2002-11-26 International Business Machines Corporation Recovery procedure for a dynamically reconfigured quorum group of processors in a distributed computing system
US6618819B1 (en) * 1999-12-23 2003-09-09 Nortel Networks Limited Sparing system and method to accommodate equipment failures in critical systems
FI20000178A (fi) * 2000-01-28 2001-07-29 Nokia Networks Oy Datan palautus hajautetussa järjestelmässä
US6721735B1 (en) * 2000-03-13 2004-04-13 Lucent Technologies Inc. Method and apparatus for synchronizing databases in a network management system
US6480854B1 (en) * 2000-03-27 2002-11-12 Advanced Micro Devices, Inc. Method and apparatus for increasing database availability
US6738773B1 (en) * 2000-05-01 2004-05-18 Microsoft Corporation Method and system for transforming data between disparate capacity database systems
US6904460B1 (en) * 2000-06-01 2005-06-07 Aerocast.Com, Inc. Reverse content harvester
SG99941A1 (en) * 2000-08-30 2003-11-27 Ibm Transaction support on logical disks
AU3268901A (en) * 2000-11-09 2002-05-21 Accenture Llp Method and system for enhancing a commercial transaction conducted via a communications network
JP3748204B2 (ja) * 2000-11-27 2006-02-22 三菱電機株式会社 周期制御同期システム
KR100450400B1 (ko) * 2001-12-26 2004-09-30 한국전자통신연구원 안전 기억 장치가 없는 환경을 위한 이중화 구조의 주 메모리 상주 데이터베이스 관리시스템 및 그 데이터 일치성 제어방법
US7433299B2 (en) * 2002-01-24 2008-10-07 Brocade Communications Systems, Inc. Fault-tolerant updates to a distributed fibre channel database
US7565433B1 (en) 2002-06-28 2009-07-21 Microsoft Corporation Byzantine paxos
US7558883B1 (en) * 2002-06-28 2009-07-07 Microsoft Corporation Fast transaction commit
US7797418B2 (en) * 2002-08-06 2010-09-14 Tvworks, Llc Method of maintaining broadcast data stream
US7620680B1 (en) * 2002-08-15 2009-11-17 Microsoft Corporation Fast byzantine paxos
US6973654B1 (en) * 2003-05-27 2005-12-06 Microsoft Corporation Systems and methods for the repartitioning of data
US20050193246A1 (en) * 2004-02-19 2005-09-01 Marconi Communications, Inc. Method, apparatus and software for preventing switch failures in the presence of faults
JP3808874B2 (ja) * 2004-03-12 2006-08-16 東芝ソリューション株式会社 分散システム及び多重化制御方法
US7962449B2 (en) * 2004-06-25 2011-06-14 Apple Inc. Trusted index structure in a network environment
US8131674B2 (en) 2004-06-25 2012-03-06 Apple Inc. Methods and systems for managing data
US7730012B2 (en) * 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
US8364633B2 (en) * 2005-01-12 2013-01-29 Wandisco, Inc. Distributed computing systems and system components thereof
US9424272B2 (en) 2005-01-12 2016-08-23 Wandisco, Inc. Distributed file system using consensus nodes
US9332069B2 (en) 2012-12-28 2016-05-03 Wandisco, Inc. Methods, devices and systems for initiating, forming and joining memberships in distributed computing systems
US9361311B2 (en) 2005-01-12 2016-06-07 Wandisco, Inc. Distributed file system using consensus nodes
EP1715405A1 (en) * 2005-04-19 2006-10-25 STMicroelectronics S.r.l. Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment
US20070184903A1 (en) * 2006-02-08 2007-08-09 Derek Liu Network-based game system capable of serving massive number of game players
US8156082B2 (en) * 2006-10-06 2012-04-10 Sybase, Inc. System and methods for temporary data management in shared disk cluster
US8782085B2 (en) 2007-04-10 2014-07-15 Apertio Limited Variant entries in network data repositories
US8402147B2 (en) * 2007-04-10 2013-03-19 Apertio Limited Nomadic subscriber data system
US9112873B2 (en) * 2007-04-10 2015-08-18 Apertio Limited Alias hiding in network data repositories
US20080256142A1 (en) * 2007-04-10 2008-10-16 Apertio Limited Journaling in network data architectures
KR100926880B1 (ko) 2007-05-21 2009-11-16 엔에이치엔(주) Dbms에서의 데이터 복제 방법 및 시스템
EP2009557A1 (en) * 2007-06-28 2008-12-31 Nokia Siemens Networks Oy Method and device for data processing and system comprising such device
US9990674B1 (en) 2007-12-14 2018-06-05 Consumerinfo.Com, Inc. Card registry systems and methods
US8127986B1 (en) 2007-12-14 2012-03-06 Consumerinfo.Com, Inc. Card registry systems and methods
US20090157766A1 (en) * 2007-12-18 2009-06-18 Jinmei Shen Method, System, and Computer Program Product for Ensuring Data Consistency of Asynchronously Replicated Data Following a Master Transaction Server Failover Event
JP2009237843A (ja) * 2008-03-27 2009-10-15 Brother Ind Ltd ファイル管理システム、携帯端末及び携帯端末プログラム
US8312033B1 (en) 2008-06-26 2012-11-13 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
US8060424B2 (en) 2008-11-05 2011-11-15 Consumerinfo.Com, Inc. On-line method and system for monitoring and reporting unused available credit
US20100241893A1 (en) * 2009-03-18 2010-09-23 Eric Friedman Interpretation and execution of a customizable database request using an extensible computer process and an available computing environment
EP2261801B1 (de) * 2009-06-12 2014-12-31 Siemens Schweiz AG Verfahren zum unterbrechungsfreien Update einer Master-Datenbank und der zugehörigen Slave-Datenbanken
US8626927B2 (en) * 2010-05-06 2014-01-07 Verizon Patent And Licensing Inc. System for and method of distributing files
US8738724B2 (en) 2010-05-25 2014-05-27 Microsoft Corporation Totally ordered log on appendable storage
US8660989B2 (en) * 2010-08-27 2014-02-25 Sap Ag Generic framework for application specific data exchange
WO2012037518A1 (en) 2010-09-17 2012-03-22 Oracle International Corporation System and method for facilitating protection against run-away subnet manager instances in a middleware machine environment
US8713649B2 (en) 2011-06-03 2014-04-29 Oracle International Corporation System and method for providing restrictions on the location of peer subnet manager (SM) instances in an infiniband (IB) network
CN103597795B (zh) 2011-06-03 2016-12-21 甲骨文国际公司 无限带宽(ib)网络中认证所发现的组件的身份的系统和方法
US9607336B1 (en) 2011-06-16 2017-03-28 Consumerinfo.Com, Inc. Providing credit inquiry alerts
US9483606B1 (en) 2011-07-08 2016-11-01 Consumerinfo.Com, Inc. Lifescore
US9106691B1 (en) 2011-09-16 2015-08-11 Consumerinfo.Com, Inc. Systems and methods of identity protection and management
US8738516B1 (en) 2011-10-13 2014-05-27 Consumerinfo.Com, Inc. Debt services candidate locator
JP5685213B2 (ja) * 2012-02-22 2015-03-18 日本電信電話株式会社 差分レプリケーションシステム、マスターデータベース装置、及びスレーブデータベース装置
US9853959B1 (en) 2012-05-07 2017-12-26 Consumerinfo.Com, Inc. Storage and maintenance of personal data
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US9298539B1 (en) * 2012-10-05 2016-03-29 Veritas Us Ip Holdings Llc Automated error recovery for workflows
CN102968457B (zh) * 2012-10-30 2015-09-30 北京奇虎科技有限公司 数据库间切换方法和系统
US9654541B1 (en) 2012-11-12 2017-05-16 Consumerinfo.Com, Inc. Aggregating user web browsing data
US9916621B1 (en) 2012-11-30 2018-03-13 Consumerinfo.Com, Inc. Presentation of credit score factors
US10255598B1 (en) 2012-12-06 2019-04-09 Consumerinfo.Com, Inc. Credit card account data extraction
US9264516B2 (en) 2012-12-28 2016-02-16 Wandisco, Inc. Methods, devices and systems enabling a secure and authorized induction of a node into a group of nodes in a distributed computing environment
US9406085B1 (en) 2013-03-14 2016-08-02 Consumerinfo.Com, Inc. System and methods for credit dispute processing, resolution, and reporting
US9870589B1 (en) 2013-03-14 2018-01-16 Consumerinfo.Com, Inc. Credit utilization tracking and reporting
US10102570B1 (en) 2013-03-14 2018-10-16 Consumerinfo.Com, Inc. Account vulnerability alerts
US9009215B2 (en) 2013-03-15 2015-04-14 Wandisco, Inc. Methods, devices and systems for dynamically managing memberships in replicated state machines within a distributed computing environment
US10685398B1 (en) 2013-04-23 2020-06-16 Consumerinfo.Com, Inc. Presenting credit score information
US11841844B2 (en) * 2013-05-20 2023-12-12 Amazon Technologies, Inc. Index update pipeline
US9443268B1 (en) 2013-08-16 2016-09-13 Consumerinfo.Com, Inc. Bill payment and reporting
US10325314B1 (en) 2013-11-15 2019-06-18 Consumerinfo.Com, Inc. Payment reporting systems
US9477737B1 (en) * 2013-11-20 2016-10-25 Consumerinfo.Com, Inc. Systems and user interfaces for dynamic access of multiple remote databases and synchronization of data based on user rules
US10102228B1 (en) 2014-02-17 2018-10-16 Amazon Technologies, Inc. Table and index communications channels
US10216768B1 (en) 2014-02-17 2019-02-26 Amazon Technologies, Inc. Table and index communications channels
AU2015241457B2 (en) 2014-03-31 2019-10-10 Cirata, Inc. Geographically-distributed file system using coordinated namespace replication
US9892457B1 (en) 2014-04-16 2018-02-13 Consumerinfo.Com, Inc. Providing credit data in search results
US11360942B2 (en) 2017-03-13 2022-06-14 Wandisco Inc. Methods, devices and systems for maintaining consistency of metadata and data across data centers
US10671749B2 (en) 2018-09-05 2020-06-02 Consumerinfo.Com, Inc. Authenticated access and aggregation database platform
US11315179B1 (en) 2018-11-16 2022-04-26 Consumerinfo.Com, Inc. Methods and apparatuses for customized card recommendations
CN111277616B (zh) * 2018-12-04 2023-11-03 中兴通讯股份有限公司 一种基于rdma的数据传输方法和分布式共享内存系统
US11238656B1 (en) 2019-02-22 2022-02-01 Consumerinfo.Com, Inc. System and method for an augmented reality experience via an artificial intelligence bot
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data
CN113296974B (zh) * 2020-08-31 2022-04-26 阿里巴巴集团控股有限公司 数据库访问方法、装置、电子设备及可读存储介质
US11803324B2 (en) 2021-12-10 2023-10-31 Nxp B.V. System and method for managing transactions in integrated circuits

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3810119A (en) * 1971-05-04 1974-05-07 Us Navy Processor synchronization scheme
US5065311A (en) * 1987-04-20 1991-11-12 Hitachi, Ltd. Distributed data base system of composite subsystem type, and method fault recovery for the system
US5222217A (en) * 1989-01-18 1993-06-22 International Business Machines Corporation System and method for implementing operating system message queues with recoverable shared virtual storage
US5212789A (en) * 1989-10-12 1993-05-18 Bell Communications Research, Inc. Method and apparatus for updating application databases used in a distributed transaction processing environment
US5261089A (en) * 1990-05-16 1993-11-09 International Business Machines Corporation Optimization of commit procedures by utilizing a two-phase commit procedure only when necessary
US5280612A (en) * 1991-11-26 1994-01-18 International Business Machines Corporation Multiple version database concurrency control system
US5630152A (en) * 1992-05-18 1997-05-13 Motorola, Inc. Communication protocol between master and slave device with register information sharing
GB2276737A (en) * 1993-03-30 1994-10-05 Ibm Fault-tolerant transaction-oriented data processing
JPH07219913A (ja) * 1994-01-28 1995-08-18 Fujitsu Ltd マルチプロセッサシステムの制御方法及び装置
JPH07262034A (ja) * 1994-03-18 1995-10-13 Fujitsu Ltd データ引き継ぎシステム
DE19504404C1 (de) * 1995-02-10 1996-06-20 Pilz Gmbh & Co Systemarchitektur
US5799305A (en) * 1995-11-02 1998-08-25 Informix Software, Inc. Method of commitment in a distributed database transaction
GB9601584D0 (en) * 1996-01-26 1996-03-27 Hewlett Packard Co Fault-tolerant processing method
US5996058A (en) * 1996-08-19 1999-11-30 Samsung Electronics Company, Ltd. System and method for handling software interrupts with argument passing
US5884327A (en) * 1996-09-25 1999-03-16 International Business Machines Corporation System, method and program for performing two-phase commit with a coordinator that performs no logging
US5974503A (en) * 1997-04-25 1999-10-26 Emc Corporation Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170032130A (ko) 2015-09-14 2017-03-22 서울대학교산학협력단 동적 인메모리 네이티브 그래프 트랜잭션 데이터베이스의 갱신 관리 장치

Also Published As

Publication number Publication date
DE69923621T2 (de) 2006-04-06
DE69923621D1 (de) 2005-03-17
JPH11327982A (ja) 1999-11-30
KR19990082867A (ko) 1999-11-25
US6202067B1 (en) 2001-03-13
EP0950955B1 (en) 2005-02-09
EP0950955A3 (en) 2002-05-08
EP0950955A2 (en) 1999-10-20
JP3822381B2 (ja) 2006-09-20
CA2265158A1 (en) 1999-10-07
CA2265158C (en) 2002-10-15

Similar Documents

Publication Publication Date Title
KR100324165B1 (ko) 갱신 트랜잭션 완성 방법 및 장치
JP3790589B2 (ja) 分散データベーストランザクションのコミットメント方法
US6484187B1 (en) Coordinating remote copy status changes across multiple logical sessions to maintain consistency
US7694177B2 (en) Method and system for resynchronizing data between a primary and mirror data storage system
EP1110148B1 (en) Fault tolerant computer system
JP4301849B2 (ja) 情報処理方法及びその実施システム並びにその処理プログラム並びにディザスタリカバリ方法およびシステム並びにその処理を実施する記憶装置およびその制御処理方法
US7293192B2 (en) System and method for failover
JP2894676B2 (ja) 非同期式遠隔コピー・システム及び非同期式遠隔コピー方法
US7865763B2 (en) Data replication method
JP2001282628A (ja) 記憶サブシステムのデータ二重化方法及びデータ二重化システム
JP2992349B2 (ja) 複製型リアルタイムシステム、特に電話交換機において予備プロセスをウオームアップする方法
JP2004348701A (ja) 計算機システム間のデータ二重化制御方法
EP0881569B1 (en) File system and file management method which realize distributed replication in system having shared type raid
US7194675B2 (en) Backup method, backup system, disk controller and backup program
JP4305007B2 (ja) 系切り替えシステムおよびその処理方法並びにその処理プログラム
JP3340431B2 (ja) データベース管理方法
JPH06175788A (ja) バックアップ装置及びその方法
JP2612385B2 (ja) 多重化サブシステム間処理引継ぎ処理方式
JP2004094710A (ja) 記憶サブシステムのデータ二重化方法およびシステム
JPH11345139A (ja) 無停止型2重化システム
JP2569063B2 (ja) 複合サブシステム形オンラインシステムの障害回復方法
JPH0833859B2 (ja) 複合サブシステム形オンラインシステム
JPH04337856A (ja) 二重化記憶装置の管理方式
JPH0827753B2 (ja) オンラインシステムのチェックポイントダンプ取得方法
JPH07200502A (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
FPAY Annual fee payment

Payment date: 20130125

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20140117

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20150123

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee