KR100324165B1 - 갱신 트랜잭션 완성 방법 및 장치 - Google Patents
갱신 트랜잭션 완성 방법 및 장치 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1474—Saving, restoring, recovering or retrying in transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0709—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/0757—Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2041—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2097—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/959—Network
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/964—Database arrangement
- Y10S707/966—Distributed
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Abstract
본 발명은 프로세서들의 분산 네트워크에서, 하나의 프로세서가 장애를 일으킨 후 갱신 트랜잭션 타이머를 사용하여 갱신 트랜잭션을 완성하는 방법에 관한 것이다. 장애를 일으킨 슬레이브 프로세서는 장애 이전에 각각의 프로세서에서 최종 완성된 데이터베이스 갱신 트랜잭션의 기록과, 매스터 데이터베이스 프로세서에 의해 생성된 데이터베이스 갱신 트랜잭션 단계를 기록하는 매스터 프로세서 내의 저널을 사용하여, 다른 슬레이브 프로세서와 같이 갱신된다.
Description
본 발명은 고장 방지 분산 데이터베이스 시스템(distributed database system)에서 트랜잭션을 완성하는 방법 및 장치에 관한 것이다.
분산 데이터베이스 시스템은 전형적으로 둘 이상으로 분리된 상호 통신 데이터베이스(intercommunicating database)를 구비하는 시스템을 지칭한다. 둘 이상의 데이터 베이스 복사본은 저장된 데이터 중 적어도 일부분이 동일하다. 따라서, 데이터베이스 시스템 전체에 걸쳐 데이터베이스 동일성을 유지하기 위해서는, 데이터베이스 복사본 중 하나에서 공통 데이터가 변경되면 다른 모든 데이터베이스 복사본도 동일하게 변경되어야 한다. 표준 환경에서, 데이터베이스는 매스터 데이터베이스 제어기에 의해 변경된다. 데이터베이스 매스터 제어기는 그 자체의 데이터베이스 복사본을 변경시키며, 네트워크를 구성하는 데이터베이스의 다른 복사본들의 갱신을 제어하는 역할을 한다. 그러나, 데이터베이스 복사본 내에서 또는 복사본을 데이터베이스 매스터 제어기에 접속시키는 링크 내에서 발생한 장애가 데이터베이스의 모든 부분 또는 일부분의 전송이나 변경을 막는 경우, 문제가 발생한다.
분산 데이터베이스 네트워크 내에서, 정보는 트랜잭션에 의해 개개의 데이터베이스로 입력된다. 데이터베이스 '트랜잭션'이란 '개시 단계'와 '종료 단계' 모두에 의해 마킹(marking)되며 사용자에 의해 제어되는(또는 매스터 데이터베이스에 의해 제어되는) 데이터베이스 액션(action)의 시퀀스이다. 개시 단계와 종료 단계 사이의 데이터베이스 액션들은 데이터베이스를 변경하는 단계나 액션을 포함한다. 종료 단계는 완료(commit) 또는 취소(abort)일 수 있다. 완료는 데이터베이스를 효과적으로 변경하면서 이전의 갱신 트랜잭션을 수행하는 인스트럭션(instruction)이다. 취소는 이전의 갱신 트랜잭션을 무효로 하는 인스트럭션이다. 각각의 프로세서에서 발생할 수 있는 트랜잭션에는 콜드(cold) 트랜잭션과 핫(hot) 트랜잭션 두 유형이 있다. 콜드 트랜잭션이란 이미 완성된 트랜잭션으로서 장애가 발생한 데이터베이스 프로세서의 회복 기간 동안 사용된다. 핫 트랜잭션이란 완성되거나 취소되지 않고 진행 중인 트랜잭션이다.
원격 통신 산업에서 분산 데이터베이스는 높은 이용도(availability)와 더불어 신뢰할 수 있는 것이어야 한다. 또한, 이러한 시스템은 고장을 방지해야 한다. 즉, 하나의 데이터베이스 복사본의 장애로 인해 전체 시스템이 다운되어서는 안 된다. 800 서비스와 같은 정보의 액세스와 같은 예에서 볼 수 있듯이, 원격 통신 산업은 이런 면에 있어서 많은 노력을 요한다. 호가 발생할 때, 데이터베이스로의 요청과 그 요청과 관련된 해당 전화번호의 응답 사이의 응답 시간은 즉각적이며 신뢰할 수 있어야 한다. 작은 응답 지연에 의해서도, 호를 완성할 때 지연이 발생하여 고객의 불만을 초래하게 된다.
분산 데이터베이스 시스템에서, 데이터베이스 일치(synchronization)는 보통 '2단계(2phase) 완료'이라 불리는 알고리즘에 의해 수행된다. 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)
- 적어도 하나의 매스터 프로세서와 다수의 슬레이브 프로세서를 포함하되, 각 프로세서는 각 프로세서에 결합된 데이터 베이스를 액세스하고 제어하는 시스템에서, 상기 적어도 하나의 매스터 프로세서 또는 상기 다수의 슬레이브 프로세서 중 어느 하나와 관련된 장애 상태(failure condition)를 보상하는 방법에 있어서,① 상기 각각의 프로세서에서 최종 완성된 데이터베이스 갱신 트랜잭션을 기록하는 단계와,② 상기 적어도 하나의 매스터 데이터베이스 프로세서에 의해 생성된 사전결정된 수의 데이터베이스 갱신 트랜잭션 단계를 기록하며, 상기 적어도 하나의 매스터 데이터베이스 프로세서와 동작가능하게 결합되는 저널(journal)을 생성하는 단계와,③ 상기 저널 내에 상기 데이터베이스 갱신 트랜잭션 단계를 기록하는 단계와,④ 다수의 제 1 타이머를 생성하되, 상기 다수의 슬레이브 프로세서 각각이 상기 다수의 제 1 타이머 중 적어도 하나와 결합되어 있는 단계와,⑤ 다수의 제 2 타이머를 생성하되, 상기 다수의 슬레이브 프로세서 각각이 상기 다수의 제 2 타이머 중 적어도 하나와 결합되어 있는 단계와,⑥ 갱신 트랜잭션의 개시 시에, 상기 다수의 제 1 타이머 중 상기 적어도 하나를 시작하는 단계와,⑦ 갱신 트랜잭션 종료 시에, 상기 다수의 슬레이브 프로세서 중 제 1 슬레이브 프로세서로부터 상기 적어도 하나의 매스터 프로세서로 사전결정된 메시지를 보내는 단계와,⑧ 상기 사전결정된 메시지가 상기 적어도 하나의 매스터 프로세서로 보내지면, 상기 다수의 슬레이브 프로세서 중 상기 제 1 슬레이브 프로세서와 결합된 상기 제 2 타이머를 시작하는 단계와,⑨ 상기 다수의 슬레이브 프로세서 중 어느 하나가 장애를 일으킨 경우,㉠ 이전에 장애를 일으킨 프로세서의 최종 데이터베이스 갱신에 후속하는 모든 데이터베이스 갱신 트랜잭션을 상기 저널로부터 상기 장애를 일으킨 프로세서로 복사하는 단계와,⑩ 상기 적어도 하나의 매스터 프로세서가 장애를 일으킨 경우,㉠ 다수의 제 2 타이머 중 상기 적어도 하나가 종료하기 전에 상기 다수의 제 1 타이머 중 상기 적어도 하나의 종료를 검출한 후,㉮ 상기 현재 갱신 트랜잭션을 취소하는 단계와,㉯ 상기 다수의 제 1 타이머 중 종료된 적어도 하나와 결합된 상기 슬레이브 프로세서에 의해 상기 다수의 슬레이브 데이터베이스 프로세서로 취소 메시지를 보내는 단계와,㉡ 상기 다수의 제 2 타이머 중 상기 적어도 하나의 종료를 검출한 후, 상기 현재 갱신 트랜잭션을 수행하는 단계를 포함하는 장애 상태 보상 방법.
- 제 1 항에 있어서,결합된 슬레이브 프로세서가 갱신 트랜잭션의 각 단계를 수신한 후, 상기 다수의 제 1 타이머 중 상기 적어도 하나를 리세팅하는 단계를 단계 ⑥과 단계 ⑦ 사이에 더 포함하는 장애 상태 보상 방법.
- 제 1 항에 있어서,상기 단계 ⑧은 상기 다수의 슬레이브 프로세서 중 상기 제 1 슬레이브 프로세서와 결합된 상기 다수의 제 1 타이머 중 상기 적어도 하나를 디스에이블시키는 단계를 더 포함하는 장애 상태 보상 방법.
- 제 1 항에 있어서,상기 단계 ②는 매스터 데이터베이스에 의해 생성된 데이터베이스 갱신 트랜잭션 단계를 기록하는 순환 버퍼(circular buffer)를 생성하는 단계를 포함하는 장애 상태 보상 방법.
- 제 1 항에 있어서,상기 저널은 단계 ① 내지 단계 ⑩ 동안에 갱신되는 장애 상태 보상 방법.
- 적어도 하나의 매스터 프로세서와 다수의 슬레이브 프로세서를 포함하되, 각각의 프로세서는 각각의 프로세서에 결합된 데이터베이스를 액세스 및 제어하는 프로세서들의 분산 네트워크에서, 장애가 발생한 슬레이브 프로세서가 회복된 후 다른 데이터 베이스와 매칭되도록 상기 장애가 발생한 슬레이브 프로세서의 데이터베이스를 갱신하는 방법에 있어서,① 다수의 제 1 타이머들중의 제 1 타이머에 의해 설정된 ― 상기 다수의 제 1 타이머들의 제 1 타이머 각각은 각 프로세서와 결합됨 ― 제 1 타이머 윈도우 동안에 상기 분산 네트워크에 배치된 각 프로세서에서 최종 완성된 데이터베이스 갱신 트랜잭션 기록을 기록하는 단계와,② 각 프로세서와 결합된 제 2 타이머에 의해 설정된 ― 상기 제 2 타이머는 다수의 제 2 타이머들중의 하나임 ― 제 2 타이머 윈도우 동안에 매스터 데이터베이스 프로세서에 의해 생성된 데이터베이스 갱신 트랜잭션 단계를 기록하고, 상기 분산 네트워크에 배치된 상기 매스터 데이터베이스 프로세서와 동작 가능하게 결합된 저널을 생성하는 단계와,③ 상기 저널 내에, 상기 데이터베이스 갱신 트랜잭션의 상기 단계를 기록하는 단계와,④ 상기 분산 네트워크에 배치된 장애가 발생한 프로세서의 회복 시에, 이전에 장애가 발생한 프로세서의 최종 데이터베이스 갱신에 후속하는 모든 데이터베이스 갱신 트랜잭션을 상기 저널로부터 상기 장애가 발생한 프로세서로 복사하는 단계를 포함하는 데이터베이스 갱신 방법.
- 제 6 항에 있어서,상기 단계 ②는 매스터 데이터베이스에 의해 생성된 데이터베이스 갱신 트랜잭션 단계를 기록하는 순환 버퍼를 생성하는 단계를 포함하는 데이터베이스 갱신 방법.
- 제 7 항에 있어서,상기 순환 버퍼는 단계 ① 내지 단계 ④ 동안에 갱신되는 단계를 포함하는 데이터베이스 갱신 방법.
- 제 6 항에 있어서,상기 단계 ①이 최종 데이터베이스 갱신 트랜잭션의 개수를 기록하는 단계를 더 포함하는 데이터베이스 갱신 방법.
- 제 6 항에 있어서,상기 단계 ①이 최종 데이터베이스 갱신 트랜잭션의 완전한 복사본을 기록하는 단계를 더 포함하는 데이터베이스 갱신 방법.
- 제 6 항에 있어서,상기 단계 ①이 최종 데이터베이스 갱신 트랜잭션의 날짜를 기록하는 단계를 더 포함하는 데이터베이스 갱신 방법.
- 제 6 항에 있어서,상기 단계 ①이 최종 데이터베이스 갱신 트랜잭션의 시간을 기록하는 단계를 더 포함하는 데이터베이스 갱신 방법.
- 제 6 항에 있어서,단계 ① 내지 단계 ④ 동안에 발생한 데이터베이스 갱신 트랜잭션을 장애가 발생한 슬레이브 프로세서로 복사하는 단계를 더 포함하는 데이터베이스 갱신 방법.
- 제 6 항에 있어서,⑤ 백업 (backup) 매스터 프로세서로서 프로세서를 지정하는 단계와,⑥ 상기 백업 매스터 프로세서와 동작가능하게 결합된 저널을 생성하는 단계와,⑦ 상기 매스터 데이터베이스 프로세서와 동작가능하게 결합된 저널에 기록된 정보를 상기 백업 매스터 프로세서와 동작가능하게 결합된 저널로 기록하는 단계를 더 포함하는 데이터베이스 갱신 방법.
- 청구항15는 삭제 되었습니다.
- 청구항16는 삭제 되었습니다.
- 청구항17는 삭제 되었습니다.
- 청구항18는 삭제 되었습니다.
- 청구항19는 삭제 되었습니다.
- 적어도 하나의 매스터 프로세서와 다수의 슬레이브 프로세서를 포함하되, 각 프로세서가 각 프로세서에 결합되는 데이타 베이스를 액세스하고 제어하는 프로세서들의 분산 네트워크에서, 상기 적어도 하나의 매스터 프로세서의 장애 후에 갱신 트랜잭션을 완성하는 방법에 있어서,상기 다수의 슬레이브 프로세서와 동작가능하게 결합되는 다수의 타이머를 생성하여, 상기 다수의 슬레이브 프로세서 각각이 상기 다수의 타이머 중 적어도 하나의 타이머와 결합되도록 하는 단계와,상기 다수의 슬레이브 프로세서 중 제 1 슬레이브 프로세서에서 현재 갱신 트랜잭션을 수신하는 단계와,상기 현재 갱신 트랜잭션을 수신시에, 상기 다수의 슬레이브 프로세서 중 상기 제 1 슬레이브 프로세서로부터 상기 적어도 하나의 매스터 프로세서로 완료 메시지에 대한 보트(vote)를 보내는 단계와,상기 메시지를 보낸 상기 다수의 슬레이브 프로세서 중 상기 어느 하나와 결합되는 다수의 타이머 중 상기 적어도 하나를 시작하는 단계와,다수의 타이머 중 상기 적어도 하나의 종료에 응답하는 단계를 포함하는 갱신 트랜잭션 완성 방법.
- 청구항21는 삭제 되었습니다.
- 제 20 항에 있어서,다수의 타이머 중 상기 적어도 하나의 종료에 응답하는 상기 단계는 상기 현재 갱신 트랜잭션의 완료 단계를 더 포함하는 갱신 트랜잭션 완성 방법.
- 제 20 항에 있어서,다수의 타이머 중 상기 적어도 하나의 종료 이전에 상기 다수의 슬레이브 프로세서 중 상기 어느 하나로부터 취소 메시지를 수신하는 단계와,상기 취소 메시지를 수신한 상기 다수의 슬레이브 프로세서 중 상기 어느 하나에 의해 상기 현재 갱신 트랜잭션을 취소하는 단계를 더 포함하는 갱신 트랜잭션 완성 방법.
- 제 20 항에 있어서,상기 취소 메시지를 수신한 상기 다수의 슬레이브 프로세서 중 상기 어느 하나에 의해 상기 다수의 슬레이브 데이터베이스 프로세서로 취소 메시지를 보내는 단계를 더 포함하는 갱신 트랜잭션 완성 방법.
- 각각의 프로세서가 데이터베이스와 결합되는 프로세서들의 분산 네트워크에 있어서,상기 각각의 프로세서와 결합되는 데이터베이스를 갱신하는 매스터 프로세서와,상기 매스터 프로세서에 의해 보내진 데이터베이스를 기록하는 다수의 슬레이브 프로세서와,다수의 제 1 타이머 ― 상기 다수의 슬레이브 프로세서 각각은 상기 다수의 제 1 타이머중 적어도 하나와 결합되고, 제 1 타이머 각각은 제 1 타이머 윈도우와 결합됨―와,다수의 제 2 타이머 ― 상기 다수의 슬레이브 프로세서 각각은 상기 다수의 제 2 타이머중 적어도 하나와 결합되고, 제 2 타이머 각각은 제 2 타이머 윈도우와 결합됨―와,상기 매스터 프로세서와 결합되어, 매스터 데이터베이스 프로세서에 의해 성공적으로 완성된 데이터베이스 갱신 트랜잭션의 단계를 기록하되, 장애를 일으킨 프로세서가 회복되거나 서비스를 복구한 후에 상기 장애를 일으킨 슬레이브 프로세서의 데이터베이스를 갱신하거나 재일치시키는데 사용되는 저널과,상기 매스터 프로세서와 상기 다수의 슬레이브 프로세서를 상호접속시키는 고속 데이터 상호접속부를 포함하는 프로세서들의 분산 네트워크.
- 제 25 항에 있어서,상기 저널 중 적어도 하나는 데이터베이스 갱신 트랜잭션을 저장하는 순환 버퍼를 더 포함하는 프로세서들의 분산 네트워크.
- 제 25 항에 있어서,상기 다수의 슬레이브 프로세서 중 적어도 하나는 최종 완성된 갱신 트랜잭션을 저장하는 적어도 하나의 데이터베이스 기록을 더 포함하는 프로세서들의 분산 네트워크.
- 제 27 항에 있어서,상기 데이터베이스 기록은 랜덤 액세스 메모리를 더 포함하는 프로세서들의 분산 네트워크.
- 제 25 항에 있어서,상기 다수의 슬레이브 프로세서 중 적어도 하나는 최종 완성된 갱신 트랜잭션의 표지(indicator)를 저장하는 적어도 하나의 전자 저장 매체 소자를 더 포함하는 프로세서들의 분산 네트워크.
- 제 25 항에 있어서,상기 고속 데이터 상호접속부는 이더넷(Ethernet)을 더 포함하는 프로세서들의 분산 네트워크.
- 각각의 프로세서가 데이터베이스와 결합되어 있는 프로세서들의 분산 네트워크에 있어서,상기 각각의 프로세서와 결합된 데이터베이스를 갱신하는 매스터 프로세서와,상기 매스터 프로세서에 의해 보내진 데이터베이스 갱신을 기록하는 다수의슬레이브 프로세서와,상기 다수의 슬레이브 프로세서 각각이 그들 중 적어도 하나와 결합되어 있으며, 그 각각은 제 1 타이머 윈도우와 결합되어 있는 다수의 제 1 타이머와,상기 다수의 슬레이브 프로세서 각각이 그들 중 적어도 하나와 결합되어 있으며, 그 각각은 제 2 타이머 윈도우와 결합되어 있는 다수의 제 2 타이머와,상기 적어도 하나의 매스터 데이터베이스 프로세서에 의해 생성된 데이터베이스 갱신 트랜잭션의 단계를 기록하며, 상기 적어도 하나의 매스터 데이터베이스 프로세서와 동작가능하게 결합되는 저널과,상기 슬레이브 프로세서에 의해 수행된 최종 완성된 데이터베이스 갱신 트랜잭션의 표시(indicia)를 저장하는 메모리 수단을 포함하는 프로세서들의 분산 네트워크.
- 제 31 항에 있어서,상기 다수의 제 1 타이머는 상기 다수의 제 2 타이머보다 더 긴 주기를 갖는 프로세서들의 분산 네트워크.
- 적어도 하나의 매스터 프로세서와 다수의 슬레이브 프로세서를 포함하되, 각 프로세서는 각 프로세서와 결합되는 데이터 베이스를 액세스하고 제어하는 프로세서의 분산 네트워크에서, 상기 적어도 하나의 매스터 프로세서의 장애후에 갱신 트랜잭션을 완성하는 방법에 있어서:상기 다수의 슬레이브 프로세서와 동작 가능하게 결합되는 다수의 제 1 타이머를 생성하여, 상기 다수의 슬레이브 프로세서의 각각이 상기 다수의 제 1 타이머중 적어도 하나와 결합되도록 하는 단계와,상기 다수의 슬레이브 프로세서와 동작 가능하게 결합되는 다수의 제 2 타이머를 생성하여, 상기 다수의 슬레이브 프로세서의 각각이 상기 다수의 제 2 타이머중 하나와 결합되도록 하는 단계와,상기 결합된 슬레이브 프로세서가 현재 갱신 트랜잭션의 시작 단계를 수신하는것에 응답하여 상기 다수의 제 1 타이머중 적어도 하나를 시작하는 단계와,상기 결합된 슬레이브 프로세서가 현재 갱신 트랜잭션의 종료 단계를 수신하는것에 응답하여, 메시지를, 상기 다수의 슬레이브 프로세서중 임의의 어느 하나에서 상기 적어도 하나의 매스터 프로세서로 전송하는 단계와,상기 메시지 전송에 응답하여 상기 메시지를 전송하는 상기 다수의 슬레이브 프로세서중 어느 하나와 결합되는 다수의 제 2 타이머중 상기 적어도 하나를 시작하는 단계, 및상기 다수의 제 1 타이머중 상기 적어도 하나 또는 다수의 제 2 타이머중의 상기 적어도 하나의 제 1 타이머의 만료를 검출하는 단계를 포함하는,방법.
- 제 33 항에 있어서,다수의 제 2 타이머중 상기 적어도 하나의 만료 이전에 상기 다수의 제 1 타이머중 적어도 하나의 제 1 타이머의 만료를 검출하는 단계와,상기 현재 갱신 트랜잭션을 취소하는 단계를 더 포함하는,방법.
- 제 34 항에 있어서,상기 다수의 제 1 타이머 중 종료된 적어도 하나와 결합된 상기 슬레이브 프로세서에 의해 상기 다수의 슬레이브 데이터베이스 프로세서로 취소 메시지를 보내는 단계를 더 포함하는,방법.
- 제 35 항에 있어서,상기 다수의 슬레이브 프로세서중 하나에 의해 상기 취소 메시지를 수신하는 단계와,상기 다수의 슬레이브 프로세서중 상기 하나의 슬레이브 프로세서에 의해 현재 갱신 트랜잭션을 취소하는 단계, 및다수의 슬레이브 프로세서중 상기 하나의 슬레이브 프로세서에 의해 상기 다수의 슬레이브 프로세서로 취소 메시지를 전송하는 단계를 더 포함하는,방법.
- 제 36 항에 있어서,상기 다수의 제 2 타이머중 상기 적어도 하나의 제 2 타이머의 만료를 검출하는 단계와,상기 현재 갱신 트랜잭션을 완료하는 단계를 더 포함하는,방법.
- 적어도 하나의 매스터 프로세서와 다수의 슬레이브 프로세서를 포함하되, 각각의 프로세서는 각각의 프로세서에 결합된 데이터 베이스를 액세스하고 제어하는 프로세서의 분산 네트워크에서, 상기 적어도 하나의 매스터 프로세서의 장애 후에 갱신 트랜잭션을 완료하는 방법에 있어서,① 상기 다수의 슬레이브 프로세서와 동작 가능하게 결합된 다수의 제 1 타이머를 생성하여, 상기 다수의 슬레이브 프로세서 각각이 상기 다수의 제 1 타이머중 적어도 하나와 결합되도록 하는 단계와,② 상기 다수의 슬레이브 프로세서와 동작 가능하게 결합된 다수의 제 2 타이머를 생성하여, 상기 다수의 슬레이브 프로세서 각각이 상기 다수의 제 2 타이머중 적어도 하나와 결합되도록 하는 단계와,③ 상기 결합된 슬레이브 프로세서가 현재 갱신 트랜잭션의 시작 단계를 수신하는 것에 응답하여, 상기 다수의 제 1 타이머중 적어도 하나를 시작하는 단계와,④ 상기 결합된 슬레이브 프로세서에 의해 상기 갱신 트랜잭션의 일부를 수신하는 것에 응답하여 상기 다수의 타이머중 적어도 하나를 리셋시키는 단계와,⑤ 상기 적어도 하나의 매스터 프로세서로 부터 메시지를 수신하는 것에 응답하여 상기 다수의 타이머중 적어도 하나를 디스에이블시키는 단계와,⑥ 상기 결합된 슬레이브 프로세서가 현재 갱신 트랜잭션의 종료 단계를 수신하는 것에 응답하여, 상기 다수의 슬레이브 프로세서중 어느 하나의 프로세서에서 상기 적어도 하나의 매스터 프로세서로 메시지를 전송하는 단계와,⑦ 상기 메시지 전송에 응답하여 상기 메시지를 전송하는 상기 다수의 슬레이브 프로세서중 어느 하나에 결합된 다수의 제 2 타이머중 적어도 하나를 시작하는 단계와,⑧ 다수의 제 2 타이머중 상기 적어도 하나의 만료 전에 상기 다수의 제 1 타이머중 상기 적어도 하나의 만료를 검출하고, 이후,㉠ 상기 현재 갱신 트랜잭션을 취소하고,㉡ 상기 다수의 제 1 타이머중 만료된 적어도 하나와 결합된 상기 슬레이브 프로세서에 의해 상기 다수의 슬레이브 데이터 베이스에 취소 메시지를 전송하는 단계; 및⑨ 상기 다수의 제 2 타이머중 상기 적어도 하나의 만료를 검출하고, 그 다음 상기 현재 갱신 트랜잭션을 완료하는 단계를 포함하는,방법.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170032130A (ko) | 2015-09-14 | 2017-03-22 | 서울대학교산학협력단 | 동적 인메모리 네이티브 그래프 트랜잭션 데이터베이스의 갱신 관리 장치 |
Families Citing this family (100)
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)
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 |
-
1998
- 1998-04-07 US US09/056,499 patent/US6202067B1/en not_active Expired - Lifetime
-
1999
- 1999-03-10 CA CA002265158A patent/CA2265158C/en not_active Expired - Fee Related
- 1999-03-29 EP EP99302395A patent/EP0950955B1/en not_active Expired - Lifetime
- 1999-03-29 DE DE69923621T patent/DE69923621T2/de not_active Expired - Lifetime
- 1999-04-02 KR KR1019990011550A patent/KR100324165B1/ko not_active IP Right Cessation
- 1999-04-07 JP JP10055699A patent/JP3822381B2/ja not_active Expired - Fee Related
Cited By (1)
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 |