KR20010013779A - 중복 데이터 오브젝트의 초기화 - Google Patents
중복 데이터 오브젝트의 초기화 Download PDFInfo
- Publication number
- KR20010013779A KR20010013779A KR1019997011796A KR19997011796A KR20010013779A KR 20010013779 A KR20010013779 A KR 20010013779A KR 1019997011796 A KR1019997011796 A KR 1019997011796A KR 19997011796 A KR19997011796 A KR 19997011796A KR 20010013779 A KR20010013779 A KR 20010013779A
- Authority
- KR
- South Korea
- Prior art keywords
- node
- state
- data object
- log
- recorded
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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
-
- 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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
중복 데이터베이스 환경에 있어서, 모든 노드들(30)은 네트워크(20)를 통해 노드 상태 메시지들을 수신함으로써, 서로 잘 진행되는 가를 감시한다. 한 노드가 더 이상 살아있지 않다는 것이 검출될 경우, 다른 노드들은 이 노드가 고장상태라는 것을 추측한다. 노드 고장이 검출될 경우, 노드다운 값을 가지는 노드 상태 기록은 고장중인 노드와 관련하여 노드 로그(80)에 기록된다. 유사하게, 하나의 노드가 살게 되거나, 또는 새로운 노드가 네트워크에 알려지게 될 경우는, 노드업 값을 가지는 노드 상태 기록이 노드 로그에 기록된다. 로컬 노드가 고장상태로 된 후 재시작될 경우, 로컬 노드는, 복사된 데이터 오브젝트 값의 초기화 방법을 결정하기 위해 그것의 노드 로그 내용을 사용한다. 로컬 노드는, 그것의 노드 로그를 판독함으로써, 데이터 오브젝트가 그것의 디스크(32)로부터 초기화될 수 있는지의 여부를 결정할 수 있다.
Description
애플리케이션 프로그램(application programs)의 실행시, 컴퓨터들은 데이터 오브젝트들의 값들을 자주 할당(assign) 및/또는 변경한다. 많은 경우에 있어, 데이터 오브젝트들은 데이터베이스의 일부분으로서 저장된다. 다수의 컴퓨터들이 함께 네트워크로 연결된 보다 복잡한 시스템에 있어서, 하나 이상의 컴퓨터는, 임의의 데이터 오브젝트에 액세스(access)를 요청하여, 데이터 오브젝트의 값을 변경 및 업데이트(update)할 수 있다. 이와 같은 다중-컴퓨터 네트워크 환경에 따르도록, 중복 데이터베이스 시스템이 구성될 수 있다. 중복 데이터베이스 시스템에 있어서, 중복된 데이터베이스들 간의 일관성을 유지하기 위해 데이터 오브젝트의 변경을 모든 다른 컴퓨터들에게 알리는 한, 각각의 컴퓨터는 자신의 데이터베이스 버전(version)을 유지할 수 있다.
중복 데이터베이스는 두 개의 장점들을 가지고 있다. 제1 장점은 고장의 허용력이다. 제2 장점은, 중복 데이터베이스로의 로컬 액세스(local access)가 다른 컴퓨터에 있어서의 데이터베이스로의 원격 액세스보다 신속하고 경제적이라는 것이다.
이와 같은 장점에도 불구하고, 중복 데이터베이스에 있어서의 데이터 오브젝트 초기화는 복잡할 수 있다. 예를 들면, 함께 네트워크로 연결된 두 개의 컴퓨터들(N1, N2)을 포함하는 간단한 상황을 가정하자. 컴퓨터(N1, N2) 각각은, 자신의 데이터베이스 버전을 가지는데, 컴퓨터(N1)에서의 데이터베이스 버전은 DB1이고, 컴퓨터(N2)에서의 데이터베이스 버전은 DB2이다. 두 컴퓨터들(N1, N2)이 정상적인 기능을 할 경우, 한 컴퓨터에 의한 데이터 오브젝트의 임의의 변경을 네트워크를 통해 다른 컴퓨터로 전송함으로써, 데이터베이스들(DB1, DB2)은 같이 유지된다. 예를 들면, 에디슨 웨슬리(Addision Wesley)사에서 1987에 발간한 번스타인, 피. 에이(Bernstein, P.A) 등에 의한 저서 데이터베이스 시스템에 있어서의 동시제어 및 복구(Concurrency Control and Recovery In Database Systems)에 설명된 두-페이즈 완료 프로토콜(a two-phase commit protocol)을 이용하여, 종래기술에서 이와 같은 데이터 오브젝트 업데이터들의 변경 및 절충(negotiation)을 주로 발생하였다.
컴퓨터(N1)가 고장을 일으키고, 단지, 컴퓨터(N2)가 계속 작동하여 그것의 데이터베이스(DB2)에 있어서 데이터 오브젝트 값을 업데이트하는 상황을 생각해보자. 이후, 컴퓨터(N2)도 고장을 일으켜서, 그 결과 두 컴퓨터들(N1, N2)이 다운(down)되는 것을 가정해보자. 데이터베이스(DB2)에 있어서의 데이터 오브젝트 내용은, 데이터베이스(DB1)에 있어서의 같은 데이터 오프젝트 내용보다 새로운 것이다.
컴퓨터(N1)가 재시작될 경우, 새로운 데이터가 컴퓨터(N2)에 의해 유지되는 데이터베이스(DB2)에 있으므로, 컴퓨터(N1)가 데이터베이스(DB1)에 저장된 그것의 버전을 사용하여 데이터 오브젝트에 대한 값을 초기화하려는 시도에 있어 에러가 있을 수 있다. 그러나, 컴퓨터(N1)는 컴퓨터(N1)에 이용할 수 있는 로컬 정보에 따라서만 그것의 데이터 오브젝트들에 대한 초기화방법을 정해야 한다. 따라서, 컴퓨터(N1)는, 새로운 데이터 오브젝트가 데이터베이스(DB1) 보다는 오히려 데이터베이스(DB2)에 존재하는 것을 모른다. 더욱이, 컴퓨터(N2)는 현재 작동하지 않으므로, 컴퓨터(N2)가 가진 문제를 조사하여 절충하는 것은 불가능하다.
분산 데이터베이스의 초기화는, 1983년 11월 10(6)에 발간된 소프트웨어 공학에 있어서의 IEEE 트랜잭션(IEEE Transactions On Software Engineering)의 645∼650 페이지에 있는, 에타르, 알.(Attar, R.) 등에 의한 "분산 데이터 시스템에 있어서의 사이트 초기화, 복구, 및 백업(Site Initialization, Recovery, and Backup In A Distributed Database System)", 그리고, 1983년 5월에 발간된 "소프트웨어 공학에 있어서의 IEEE 트랜잭션(IEEE Transactions On Software Engineering)"의 SE-9(3): 219∼228에 있는 스킨, 디(Skeen, D.) 등에 의한 "분산 시스템에 있어서의 파손 복구에 대한 정규모델(A Formal Model Of Crash Recovery In Distributed Systems)"에 상세히 설명되어 있다. 현행 초기화 계획은, 통상 컴퓨터들간의 협력 및 통신을 필요로 하는데, 전술한 바와 같이, 항상 실행할 수 있거나 실질적이지는 않다. 특히, 문제가 되는 것은, 중복 데이터베이스 환경에 있어서, 제1 컴퓨터를 제외한, 중복 데이터베이스 시스템의 어떤 다른 컴퓨터들도 작동하지 않을 경우, 제1 컴퓨터에 있어서의 데이터 오브젝트 초기화 방법을 결정하는 것이다.
통신분야에 있어서, 다운-시간(down-time)의 최소화는 극히 중대한 것이므로, 중복 데이터베이스를 가진 컴퓨터 시스템을 신속하게 재 시작하는 것이 중요하다.
따라서, 본 발명의 목적은, 단지 로컬 정보만을 사용하여 중복 데이터베이스의 데이터 오브젝트를 초기화하기 위한 방법 및 장치를 제공하는 것이다.
본 발명은, 여기서 참조문헌으로 사용한, 동시 출원된 미국 특허 출원 제 08/_, _,호(대리인 번호: 1410-317), 제목: "중복 데이터 오브젝트용 링거링 로크(LINGERING LOCKS FOR REPLICATED DATA OBJECTS)"의 설명에 관한 것이다.
본 발명은, 분산되거나 또는 중복된 데이터베이스에 관한 것으로, 특히 이 데이터베이스에 의해 유지되는 데이터 오브젝트들(objects)의 초기화에 관한 것이다.
도 1은, 중복 데이터 오브젝트가 존재하는 두 개의 노드들을 포함하는 네트워크에 대한 대략적인 도면,
도 2는, 도 1 네트워크의 노드에 대한 대략적인 도면,
도 3은, 본 발명에 의한 데이터 오브젝트 초기화 과정에서 실행되는 단계들을 나타내는 플로우챠트.
중복 데이터베이스 환경에 있어서는, 모든 노드들이 네트워크를 통해 노드의 상태 메시지들을 수신함으로써, 서로 잘 진행되는가를 감시한다. 한 노드가 더 이상 살아있지 않다는 것이 검출된 경우, 다른 노드들은 그 노드를 고장상태로 추론한다. 한 노드의 고장이 검출될 경우, 노드다운(nodedown) 값을 가지는 노드상태(nodestatus) 기록은, 고장 노드에 관한 노드 로그(log)에 기록된다. 또한, 노드가 살게 되거나, 또는 새로운 노드가 네트워크에 알려지게 될 경우, 노드업(nodeup) 값을 가지는 노드 상태 기록은 노드 로그에 기록된다. 로컬 노드가 고장나게 되어 재시작될 경우, 로컬 로드는, 중복 데이터 오브젝트 값의 초기화 방법을 결정하기 위해 그것의 노드 로그의 내용을 사용한다. 그것의 노드 로그를 판독함으로써, 로컬 노드는 데이터 오브젝트가 그것의 디스크로부터 초기화될 수 있는 지의 여부를 결정할 수 있다.
본 발명의 전술한 목적 및 다른 목적, 특징, 그리고 장점은, 몇몇 도면들을 통해 동일 부분들에 참조부호로서 적용한 첨부 도면들에 예시한 바와 같은, 바람직한 실시예에 대한 보다 상세한 설명에 의해 분명해 질 것이다. 도면은, 비율에 관계없이, 본 발명의 원리를 설명하는데 주안점을 두었다.
제한을 두지 않고, 본 발명의 철저한 이해를 제공하기 위해, 특정 구조들, 인터페이스들, 기술 등에 대해서 이후, 명확하게 상세 설명하기로 한다. 그러나, 이 특정 상세 설명으로부터 벗어난 타 실시예로 본 발명을 실시할 수 있다는 것은 그 분야에 숙련자에게는 명백한 사실이다. 다른 실시예에 있어서, 공지된 장치들, 회로, 및 방법은, 불필요한 상세 설명으로부터 본 발명의 설명을 불명확하게 하지 않도록 생략하기로 한다.
도 1은, "A", "B" 개별적으로 언급하고, 총칭적으로는 "노드(30)"로서 언급한 두 개의 예시적인 노드들(30A, 30B)을 포함하는 네트워크(20)를 나타내고 있다. 각 노드(30)는 그 자신의 데이터 오브젝트(X) 버전을 가진다. 특히, 노드(30A)는 X-A로 언급한 데이터 오브젝트(X)의 버전이 저장되는 하드디스크(harddisk)(32A)를 가진다. 또한, 노드(30B)는 X-B로 언급한 데이터 오브젝트(X)의 버전이 저장되는 하드디스크(harddisk)(32B)를 가진다. 여기에서 사용된 "데이터 오브젝트"는, 단일 데이터 값이나, 데이터베이스에서 자주 나오는 데이터 값들의 집합 또는 데이터 값들의 테이블(table)로 언급할 수 있다.
데이터 오브젝트(X)의 버전이 노드들(30A, 30B) 양쪽에 저장되므로, 하나의 노드가 데이터 오브젝트(X) 값을 업데이터할 경우, 다른 노드도 상기 업데이터된 값을 공유할 수 있도록, 그 업데이터된 값을 다른 노드에 전송함으로써, 데이터 오브젝트(X) 값에 대한 코디네이션(coordination)을 유지한다. 이와 같은 코디네이션은, 중복 데이터베이스에 대한 적절한 업데이팅 또는 적층 기술, 예를 들면, 두 개의 페이즈(phase) 완료(commit) 프로토콜에 의해서 이루어질 수 있다.
각 노드(30)는, 내부 버스(42)에 의해 다수의 구성요소들과 연결되어 있는 프로세서 또는 CPU(40)를 포함하고 있다. 내부 버스(42)에 연결된 구성요소들 중 예시된 하나는, 롬(read only memory; ROM)(43); 램(random access memory; RAM)(44); 디스크 구동 인터페이스(45); 및 네트워크 인터페이스(46)를 포함하고 있다. 디스크 구동 인터페이스(45)는 디스크 구동기(50)에 연결되어 있다. 네트워크 인터페이스(46)는 두 개의 노드들(30A, 30B)이 통신하는 네트워크 링크(60)에 연결되어 있다.
하드디스크(32)는, 노드-상태 불가침(inviolable) 메모리 또는 저장 매체의 일례이다. "노드-상태 불가침"이라는 용어는, 노드가 파손 또는 "다운" 상태로 추정될 경우, 메모리 내용은 영향을 받지 않고 존속한다는 것을 의미한다.
한 실시예에 있어서, 노드-상태 불가침 메모리를 하드 자기 디스크인 것으로 예시하였지만, 그것은 다른 타입의 메모리 예를 들면, 광 디스크, 자기 테입 등도 또한 구비될 수 있다는 것을 이해해야 한다.
프로세서(40)는, 운영체제에 있어서 한 세트의 명령을 실행하는데, 그 운영체제는, 프로세서(40)가, 바람직하게는 하드디스크(32)에 저장된 몇몇 어플리케이션 프로그램들(70)을 실행할 수 있도록 허락한다. 본 발명에 대한 특별한 관심사는, 컴퓨터 제품으로 구체화되어, 데이터베이스 관리 어플리케이션 프로그램(DAMAP)(72)으로서 알려진 한 세트의 명령들이다. 데이터베이스 관리 어플리케이션 프로그램(DAMAP)(72)의 작용 효과는 이후 설명된다. 데이터베이스 관리 어플리케이션 프로그램(DAMAP)(72)의 중요한 점은, 디스크(32)상에서 유지되는 로그(80)의 유지 및 사용이다.
도 2는, 기능적인 관점에서 보다 상세하게 노드(30A)를 나타내고 있다. 유사한 구조 및 기능들이 또한 네트워크(30)의 다른 노드들, 예를 들어, 노드(30B)에도 존재함을 알 수 있다.
데이터베이스 관리 어플리케이션 프로그램(DAMAP)(72A)을 실행할 경우, 노드(30A)의 프로세서(40A)는, 메시지 인코더(encoder)/디코더(decoder)(100), 상태 메시지 발생기(102), 채널 테이블 감시기(104), 로그 업데이터(log updater)(106), 및 로그 트렁케이터(log truncator)(108)의 기능을 수행한다. 메시지 인코더/디코더(100)는 네트워크 인터페이스(46)에 연결되어, 네트워크 링크(60)로부터 수신한 메시지들을 복호화 함은 물론, 네트워크 링크(60)를 향해 예정된 메시지들을 부호화하는 역할을 한다. 상태 메시지 발생기(102)는, 제1 클록(clock)(120)으로부터 제1 클록 신호를 수신하고; 채널 테이블 감시기(channel table monitor)(104)는 제2 클록(122)으로부터 제2 클록 신호들을 수신한다.
노드(30A)가 성공적으로 부트 업(boot up)되어 초기화된 모든 데이터 오브젝트들을 가진 후, 이 노드(30A)는 "업(up)" 상태로 되고 정상적인 실행과정으로 된다. 업 상태에서, 제1 클록(120)으로부터 클록 신호 각각을 수신함에 따라, 상태 메시지 발생기는 네트워크(20)의 노드들 각각으로 상태 문의 메시지를 보낸다. 응답에 있어서는, "업" 상태(예, 파손되지 않거나 다운되지 않은)를 가지는 네트워크(20)의 노드들은, 통상적인 TCP/IP 프로토콜을 사용하여 "살아있음(Alive)" 메시지로서 응답한다. 메시지 인코더/디코더(100)에 의해서 다른 노드들 각각으로부터의 "살아있음" 메시지들은 복호화되고, 노드에 있어서의 살아있는 비트들은 채널 테이블(130)로 설정된다.
채널 테이블(130)은 네트워크의 노드들에 관한 정보를 저장하기 위해 사용되며, 각 노드들은 상이한 채널에 대응하게 되어 채널 테이블(130)내의 상이한 채널 슬롯(channel slot)에 대응하게 된다. 채널 테이블(130)은, 5개의 노드들에 대한 5개 위치 슬롯들(potential slots)을 가지는 것처럼 보이지만, 본 발명의 실시예에 있어서는, 단순화를 위해 단지 다른 하나의 노드[즉, 30B("B")]를 나타내었다. 채널 테이블(130)에 있어서의 각 채널 슬롯에 저장된 정보는 노드에 대한 네트워크 어드레스를 포함하고 있다. 따라서, 클록(120)으로부터 수신된 각 클록 신호에 따라, 상태 메시지 발생기(102)는 채널 테이블(130)내의 노드 어드레스들을 이용하여, 부호화되어 네트워크 인터페이스(46A)를 통해 네트워크 링크(60)에 적용될 상태 문의 메시지를 준비한다. 채널 테이블(130)에 있어서의 각 채널 슬롯에 저장된 정보는, 또한 각 노드에 대한 리턴된(returned) 상태 비트를 포함한다. 전술한 바와 같이, 각 노드로부터의 "살아있음" 메시지의 수신에 따라 이 비트는 설정된다.
채널 테이블(130)은 ROM(43)내에서 유지될 수 있다. 선택여하에 따라서는, 프로세서(40)의 레지스터들(registers)에 적어도 리턴된 채널 테이블(130)의 상태 비트들을 저장할 수 있다.
클록 신호 각각이 클록(122)에 의해 내보내 지게 될 경우, 채널 테이블 감시기(104)는 채널 테이블(130)의 리턴된 비트 내용들을 인출하여, 노드의 상태를 확인하도록 리턴 비트를 판독하고, 테이블(130)내 비트들 각각을 리셋시킨다(reset). 클록(122)으로부터의 클록 신호 주파수는 클록(120)으로부터의 클록 신호의 주파수보다 상당히 작다. 클록(122)으로부터의 클록 신호를 수신함에 따라, 채널 테이블 감시기(104)가, 노드에 대한 리턴 비트가 리셋 상태에서 셋 상태로 변화하지 않았다는 것을 결정하면, 대응 노드는 다운상태로서 선언된다(declared). 예를 들면, 채널 테이블(130)에 있어서의 채널 슬롯(B)이 노드(30B)로부터의 상태 문의 메시지에 응답하여 설정되지 않으면, 노드(30B)는 죽었다(dead)라고 선언된다.
노드가 다운될 것이라고 결정될 경우, 로그 업데이터(106)는 노드상태 기록(노드가 다운됨을 지시하는)을 로그(80A)에 기록한다. 로그 업데이터(106)에 의해 준비된 노드상태 기록은 노드의 식별 및 노드 상태를 포함한다. 한 실시예에 있어서, 노드상태 기록은 포맷(format) "{B, 노드상태}"를 가지는데, 여기서 "B"는 노드의 식별자(즉, 노드 B[30B])이고, "노드상태"는 식별된 노드의 상태를 지시한다. 예를 들면, 노드(30B)가 다운으로 선언되면, "노드다운(nodedown)" 이라는 노드상태 기록이 디스크(32A)에 다음과 같이"{B, 노드다운}"으로서 기록될 것이다.
테이블 감시기(104)가 죽게될 노드를 선언하면, 그 테이블 감시기(104)는, 또한, 죽은 노드 테이블(140)에 죽은 노드의 식별을 기록한다. 죽은 노드 테이블(140)은 바람직하게는 RAM(44)에 저장된다. 죽은 노드 테이블(140)이 다운 노드를 지시하는 저장된 값을 가지면, 테이블 감시기(104)는, 채널 테이블(130)로부터의 리턴 비트들의 수신에 따라, 죽은 노드 테이블내에 기입된 어느 노드가 업 상태로 리턴되는 지를 결정하도록, 죽은 노드 테이블(140)을 점검한다. 채널 테이블(130)로부터 수집된 정보가, 다운 상태로부터 업 상태로 노드가 변경되는 것을 지시하면, 죽은 노드 테이블(140)로부터 대응 노드 식별자는 제거되고, 노드업 값 상태의 노드상태 기록은 로그(80A)에 기록된다.
주기적으로, 로그 트렁케이터(108)는, 로그(80A)의 내용을 판독하여, 어느 노드에 대해서 로그(80A)의 기록들이 제거될 수 있는지를 결정한다. 예를 들어, 주어진 노드에 대해 노드다운 수와 노드업 기록 수가 같으면, 로그 트렁케이터(108)는 이 노드에 대한 모든 기록들을 제거할 수 있다. 로그 트렁케이터(108)는, 이에 따라, 로그(80A)에 대해 경제적인 저장을 제공한다.
전술한 내용은, 노드(30A)가 감시상태인, 노드(30A)에 있어서의 정상적인 동작을 설명하였고, 그리고, 거기에서 네트워크(20)의 다른 로그들, 특히 노드(30B)의 상태를 독점적으로 기록하였다. 여기에서 명확하게 설명하지는 않았지만, 노드(40A)의 프로세서(40A)에 의해서 실행된 다른 어플리케이션 프로그램은, 수집될 수 있고, 값들을 수정할 수 있고, 데이터 오브젝트(X-A)를 복구할 수 있으며, 또한, 데이터 오브젝트(X)의 업데이터된(수정된) 값들을 디스크(32B)상에 X-B로서 저장할 수 있도록, 노드(30B)로 그 값의 수정을 통보할 수 있다는 것을 이해해야 한다.
이제 설명할 내용은, 노드(30A)가 파손, 예를 들어, 다운 상태로 되어, 결과적으로 재시작되는(예: 업상태로 리턴됨) 상황에 대한 것이다. 이와 같은 상황에서, 프로세서(40)가 직면하게 되는 어려움은 예를 들어, 어플리케이션 프로그램에 의해 데이터 오브젝트(X)가 다음으로 요청될 경우, 어떠한 값을 데이터 오브젝트(X)로 이용할 것인가에 대한 것이다. 프로세서(40)는, 데이터 오브젝트(X)의 버전, 즉 X-A가 가장 최근의 것인지의 여부, 또는 데이터 오브젝트(X)에 대한 값을 네트워크(20)의 다른 노드로부터 획득해야 하는 지의 여부를 결정해야 한다. 초기화 과정으로 알려진, 이와 같은 상황에서 수행된 과정은, 도 3에 도시된 단계들로서 반영되어 있다.
단계(3-1)는, 재시작되는 예를 들어, 리셋 또는 리부트(reboot)되는 노드(30A)를 반영하고 있다. 재시작 후에, 프로세서(40A)는 디스크(32A)로부터 로그(80A)를 RAM(44A)로 읽어 들인다(단계 3-2). 상기에 지적한 바와 같이, 로그(80A)는, 노드(30A)의 죽음에 앞서 상태들을 변화한(예: 다운에서 업으로 또는 업에서 다운으로) 네트워크(20) 노드들에 대한 노드상태 기록들을 포함하고 있다. 로그(80A)는, 노드(30A)가 다운되는 동안, 네트워크(20)의 다른 노드들에서 이루어지게 되는 상태변화들에 대해서 알지 못한다.
단계(3-3)에서, 프로세서(40)는 노드(30B)가 죽어있는지(다운) 또는 살아있는지(업)의 여부를 결정한다. 이 결정은, 노드(30B)에, 노드(30B)가 데이터 오브젝트(X)를 엑티브(active)상태로 가지는 지의 여부를 문의하는 메시지를 송신함으로써 수행된다. "엑티브"라는 것은, 노드-상태 불가침 메모리로부터 현재 사용중인 RAM과 같은 메모리로 데이터 오브젝트(X)의 노드 버전이 로드(load)되었다는 것을 의미한다. 노드(30B)가 응답하지 않으면, 프로세서(40)는 노드(30B)가 죽게될 것이라고 판단하다. 그렇지 않으면, 노드(30B)는 긍정으로(즉, 데이터 오브젝트(X)가 엑티브 상태) 또는 부정으로(데이터 오브젝트(X)가 엑티브 상태가 아님) 응답한다. 단계(3-4)에서 이 문의에 대한 응답을 채용하여, 데이터 오브젝트(X)가 노드(30B)에서 엑티브일 경우 단계(3-5)로 분기되고, 또는 노드(30B)에서 데이터 오브젝트(X)가 엑티브가 아닐 경우 단계(3-6)로 분기된다.
데이터 오브젝트(X)가 노드(30B)에서 엑티브이면, 중복 데이터베이스에서 데이터 오브젝트들의 복사를 획득하는 정상적 실행에 따라, 단계(3-5)에서 프로세서(40A)는 노드(30B)로부터 오브젝트(X)의 엑티브 버전을 얻는다.
데이터 오브젝트(X)가 노드(30B)에서 엑티브가 아니면, 단계(3-6)에서, 프로세서(40)는, 노드(B)가 로그(80A) 내에서 "다운" 기록 상태를 갖는지의 여부를 점검한다. 이 경우에 대한 예는, 노드(B)가 먼저 죽고, 또한 노드(A)가 데이터 오브젝트(X)를 조작하며, 노드(A)가 이후 죽으며, 노드(A)가 재시작 되기 전에 노드(B)가 재시작되는 시나리오의 경우이다. 노드(B)가 로그(80A) 내에서 "다운" 기록 상태를 가지면, 이후 프로세서는 데이터 오브젝트(X)의 값으로서 사용하기 위해 자신의 디스크(32A)로부터 데이터 오브젝트의 버전(X-A)을 얻는다(단계 3-7). 프로세서(40)는, 이후 노드(30B)에게 자신의 데이터 오브젝트(X)의 초기화된 버전을 통보하는데(단계 3-8), 이는, 특히 데이터 오브젝트의 가장 최근 값들을 얻기 위해, 노드(B)가 먼저 재시작되지만, 노드(A)의 재시작을 기다리는 상황에서 유용하다.
단계(3-6)에 있어서, 노드(B)가 로그(80A) 내에서 "다운" 기록 상태를 갖지 않는다는 것을 결정하고, 아직까지 노드(B)가 살아있으며, 데이터 오브젝트(X)를 기다리면, 프로세서(40A)는 노드들(A, B)이 반드시 동시에 죽었다고 판단한다. 이와 같은 경우는, 단계(3-9)에서, 프로세서(40A)가 두 개의 노드들(A, B) 중 선호되는 것이 어느 것이건 간에, 데이터 오브젝트의 복사를 획득한다. 대부분의 상황에서는, 상기 단계(3-7)의 방법과 같이, 자신의 디스크에 저장된 버전(X-A)으로부터 데이터 오브젝트의 복사를 얻는 편이 수월할 것이다. 이후, 프로세서(40A)는, 노드(30B)에 통보한다(단계 3-8).
단계(3-3)에서 노드(B)가 살아있지 않다(예: 노드 B가 다운상태)는 것이 결정되면, 단계(3-10)에서, 프로세서(40A)는, 로그(80A)내에서 노드(B)가 다운되는 것으로 지시되는 지의 여부를 점검한다. 노드(B)가 "다운" 기록 상태를 가지면, 단계(3-11)에서, 프로세서(40A)는, 단계(3-7)와 같은 방법으로, 데이터 오브젝트의 초기화 값으로 사용하기 위해 그것의 디스크(32A)로부터 버전(X-A)을 획득한다. 노드(B)가 다운상태이므로, 노드(B)로, 데이터 오브젝트의 초기화 값을 보낼 필요가 없다. 한편, 로그(80A)에서 노드(B)가 다운되는 것으로 지시되지 않으면, 프로세서(40A)는 데이터 오브젝트(X)가 아직까지 로드될 수 없다는 것을 지시해야 한다(단계 3-12). 이는, 노드(A)가 먼저 죽고, 이후 노드(B)가 데이터 오브젝트의 변화된 값을 가지게 되며, 노드(B)가 이후 죽게되며(예: 두 번째로 죽게되고), 노드(A)가 먼저 재시작된 후, (결과적으로) 노드(B)가 재시작되는 시나리오에서 발생된다. 이 경우, 노드(A)는, 단계(3-8)에서 노드(A)에 의해 발생된 메시지와 유사한 노드(B)로부터의 메시지를 기다렸을 것이다.
본 발명을 단순화하기 위해 두 개의 노드들(30A, 30B)을 포함하는 네트워크(20)라는 용어로 전술하였음에도 불구하고, 본 발명을, 다수의 노드들을 갖는 네트워크들에 쉽게 적용할 수 있다. 이 점에 있어서, 임의 크기의 네트워크내의 노드(30A)에, 본 발명에 따른 데이터 오브젝트(X)를 초기화하기 위한 일반화 된 로직(logic)이 하위로 제공된다. 여기에서 사용된 바와 같이, "REPS"라는 용어는, 데이터 오브젝트(X)의 복사가 존재하는 한 세트의 노드들{노드(30A) 이상의 다른 노드들}로 언급한다. "ACTIVE"는, 현재 구동되는, 즉 살아있는 한 세트의 모든 노드들이다. "AREPS"는, 현재 구동됨과 아울러 데이터 오브젝트(X)의 복사들을 가지는 노드들의 세트이다. "DOWNS"은, 노드(30A)의 로그(80A)에 따라서, 노드(30A)가 죽기 전에 죽은 노드들의 세트이다. "D2"는, DOWNS 및 REPS 세트들의 교차점이다.
초기화 전에, 상기 채널 테이블(130)과 관련하여 설명한 방법으로, 네트워크 I/O를 사용하여 모든 노드들의 상태를 점검함으로써 ACTIVE 정보를 얻는다. 전술한 과정은, 엑티브 세트가 비었을 경우 조차도 실행된다.
데이터 오브젝트(X)가 이미 AREPS 세트내에 포함된 노드 안으로 로드되었을 경우, 프로세서(40A)는 네트워크를 통해 이 노드로부터 데이터 오브젝트(X)의 복사만을 획득할 필요가 있다.
그러나, D2 세트가 REPS 세트와 같으면, 프로세서(40A)는, 그것의 로그(80A)가, 데이터 오브젝트(X)의 복사를 간직하는 모든 다른 노드들에 대한 마지막 기록으로서 노드다운 기록들을 가지고 있음을 알게 된다. 이 경우, 노드(30A)의 프로세서(40A)는, 데이터 오브젝트(X)를 조작하는 것이 마지막이고, 디스크(32A)에 저장된 그것의 버전(X-A)으로부터 데이터 오브젝트(X)의 값을 로드할 수 있다. 프로세서(40A)는, 또한 데이터 오브젝트(X)의 초기화된 값을 네트워크를 통해 AREPS 세트내의 모든 다른 노드들에게 알린다.
만약, REPS 세트가 AREPS 세트와 같으면, 프로세서(40)는 노드들이 동시에 고장상태라고 추측한다. 어떤 노드들도, 그것들 로그들 각각에서 필수적인 노드다운 메시지를 찾을 수 없다. 이는, 데이터 오브젝트가 네트워크에 이용될 수 없거나(a), 또는 데이터 오브젝트의 복사를 가지는 것으로 짐작되는 모든 다른 노드들이 구동할 경우(b), 그러나, 이들 노드들 중 어느 것도 로드된 데이터 오브젝트를 가지지 않을 경우에 발생할 수 있다. 이 상황에 있어서, 프로세서(40A)는, 동시적인 고장들이 발생되었다는 것으로 판단하여, 디스크로부터 데이터 오브젝트(X)를 로드하도록 어느 하나의 노드를 선택할 수 있다. 그러나, 노드들 중 선택된 하나는, 노드들이 지금 네트워크를 통해 데이터 오브젝트를 복사할 수 있다는 것을 나머지 노드들에게 알려야 한다.
REPS 세트가 AREPS 세트와 같지 않은 상황에서, 프로세서(40A)는 아직 데이터 오브젝트(X)를 로드할 수 없고, 단지, 어떤 다른 노드들이 그들의 디스크들 각각으로부터 데이터 오브젝트(X)를 판독하기로 결정할 때까지 기다려야 한다. 현재, 프로세서(40A)는 데이터 오브젝트(X)가 아직 로드되지 않았다는 것을 지시하고, 계속해서 기다린다.
본 발명은 단순성과 적응성을 모두 가지고 있다. 본 발명은, 현재의 제어 알고리즘을 사용하지 않는 데이터-관리 시스템에 사용될 수 있고, 데이터세트들(datasets)의 다중 복사를 유지하는 데이터베이스 시스템에도 적용될 수 있다. 본 발명은, 예를 들면, 그것의 데이터를 복사하는 고장 허용 월드 와이드 웹(world wide web; WWW) 서버에 적용할 수 있다. 데이터 오브젝트가 WWW 서버에 기록될 때마다, 두 개의 노드에 기록된다. 이런 형식의 적용에 있어서, 모든 복사들은, 다른 노드가 구동됨을 요구하지 않고 시작할 수 있다는 것이 극히 중요하다.
더욱이, 두 개의 노드들이 데이터 오브젝트를 복사하는 상황에 있어서는, 한 노드가 고장시, 다른 노드는 계속해서 그것(현재는 단일로서)의 복사를 업데이터할 수 있다. 본 발명은, 비록 이 노드가 고장상태라도 이에 관계없이 데이터 오브젝트의 정확한 버전은 로드될 것이므로, 업데이팅은 계속해서 안전하게 이루어 질 수 있다.
본 발명을 바람직한 실시예와 관련하여 상세히 도시하여 설명하였으나, 그 분야의 숙련자는, 본 발명의 사상 및 범위에서 벗어나지 않고 형태 및 상세 설명에 있어 다양한 변형이 가능하다는 것을 알 수 있을 것이다.
독점적인 소유권 또는 권리가 주장된 본 발명의 실시예를 다음과 같이 나타내었다.
Claims (12)
- 데이터 오브젝트 값과; 데이터 오브젝트가 복사되는 네트워크내 제2 노드의, 제2 노드 상태 기록을 반영하는 로그가; 저장된, 노드 상태와 관련하여 침범될 수 없는 메모리와:로그를 유지함은 물론, 노드의 상태가 다운 상태로부터 업 상태로 변경될 경우, 데이터 오브젝트의 초기화 방법을 결정하도록 제2 노드 상태 기록을 이용하는 프로세서를:포함하여 이루어진 것을 특징으로 하는 네트워크의 노드.
- 제1항에 있어서, 제2 노드는 상태가 다운 상태이고, 기록된 제2 노드 상태가 다운 상태일 경우, 프로세서는 데이터 오브젝트를 메모리에 저장된 값으로 초기화하는 것을 특징으로 하는 네트워크의 노드.
- 제1항에 있어서, 제2 노드 상태가 다운 상태이고, 기록된 제2 노드 상태가 업 상태일 경우, 프로세서는 데이터 오브젝트를 초기화할 수 없는 것을 특징으로 하는 네트워크의 노드.
- 제1항에 있어서, 제2 노드 상태가 업 상태이고, 기록된 제2 노드 상태가 다운 상태일 경우, 프로세서는 데이터 오브젝트를 메모리에 저장된 값으로 초기화하는 것을 특징으로 하는 네트워크의 노드.
- 제1항에 있어서, 제2 노드 상태가 업 상태이고, 기록된 제2 노드 상태가 업 상태일 경우, 프로세서는 제2 노드로부터 데이터 오브젝트에 대한 초기화 값을 얻는 것을 특징으로 하는 네트워크의 노드.
- 적어도 두 개의 노드를 가지는 네트워크에 있어서, 상기 네트워크는 제1 노드와 제2 노드를 포함하여 이루어지는데,상기 제1 노드는: 복사된 데이터 오브젝트에 대한 제1 노드 값과; 네트워크내 제2 노드의 제2 노드 기록 상태를 반영하는 제1 노드 로그가 저장되는, 노드 상태와 관련하여 침범될 수 없는 제1 노드 메모리를 가지고,제1 노드 프로세서는: 제1 노드 로그를 유지함과 아울러, 제1 노드의 상태가 다운 상태로부터 업 상태로 변경될 경우, 데이터 오브젝터의 제1 노드 값을 초기화하는 방법을 결정하도록, 기록된 제2 노드 상태를 이용하며,상기 제2 노드는: 복사된 데이터 오브젝트에 대한 제2 노드 값과; 네트워크내 제1 노드의 제1 노드 기록 상태를 반영하는 제2 노드 로그가 저장되는, 노드의 상태에 관련해 침범될 수 없는 제2 노드 메모리를 가지며,제2 노드 프로세서는: 제2 노드 로그를 유지함은 물론, 제2 노드의 상태가 다운 상태로부터 업 상태로 변경될 경우, 데이터 오브젝트의 제2 노드 값을 초기화하는 방법을 결정하도록, 기록된 제1 노드 상태를 이용하는 것을 특징으로 하는 네트워크.
- 프로그램 메모리에 저장된 한 세트의 프로그램된 명령들을 포함하여 이루어진 컴퓨터 제품에 있어서, 네트워크내 제1 노드의 프로세서에 의해 실행되는 한 세트의 명령들은:네트워크내 제2 노드의 제2 노드 상태를 확인하고, 제1 노드가 업 상태를 갖는 동안, 제1 노드의 상태와 관련하여 침범될 수 없는 메모리에, 기록된 제2 노드 상태를 저장하는 단계와;노드의 상태가 다운 상태로부터 업 상태로 변경될 경우, 데이터 오브젝트의 초기화하는 방법을 결정하도록, 기록된 제2 노드 상태를 이용하여, 데이터 오브젝트를 불가침 메모리에 저장하는 단계를 수행하는 것을 특징으로 하는 컴퓨터 제품.
- 제7항에 있어서, 상기 프로그램된 명령 세트의 실행은, 제2 노드 상태가 다운 상태이고 기록된 제2 노드 상태가 다운 상태일 경우, 데이터 오브젝트를 상기 불가침 메모리에 저장된 값으로 초기화하는 또 다른 단계의 수행으로 귀착되는 것을 특징으로 하는 컴퓨터 제품.
- 제7항에 있어서, 프로그램된 명령 세트의 실행은, 제2 노드 상태가 다운 상태이고, 기록된 제2 노드 상태가 업 상태일 경우, 데이터 오브젝트를 초기화하지 않는 또 다른 단계의 수행으로 귀착되는 것을 특징으로 하는 컴퓨터 제품.
- 제7항에 있어서, 프로그램된 명령 세트의 실행은, 제2 노드 상태가 업 상태이고, 기록된 제2 노드 상태가 다운 상태일 경우, 데이터 오브젝트를 상기 불가침 메모리에 저장된 값으로 초기화하는 또 다른 단계의 수행으로 귀착되는 것을 특징으로 하는 컴퓨터 제품.
- 제7항에 있어서, 프로그램된 명령 세트의 실행은, 제2 노드 상태가 업 상태이고, 기록된 제2 노드 상태가 업 상태일 경우, 상기 제2 노드로부터 데이터 오브젝트를 위한 초기화 값을 얻는 또 다른 단계의 수행으로 귀착되는 것을 특징으로 하는 컴퓨터 제품.
- 중복 데이터베이스 시스템에 있어서의 데이터 오브젝트를 유지하는 방법에 있어서,제1 노드 및 제2 노드의 노드-상태 불가침 메모리들 내에서 대등한 데이터 오브젝트 값을 유지하고;제1 노드 및 제2 노드에서 각각 제1 노드의 상태 및 제2 노드의 상태를 지시하는 메시지들을 주기적으로 발생하며;제1 노드 및 제2 노드 각각의 불가침 메모리들 내에서 로그들을 유지하는데, 제1 노드의 노드 로그에는 기록된 제2 노드 상태들이 저장되고, 제2 노드의 노드 로그에는 기록된 제1 노드 상태들이 저장되며;제1 노드 및 제2 노드 중 하나가 다운 상태를 받아들인 후, 다운 상태로부터 업 상태로 변경될 경우, 데이터 오브젝트의 초기화 방법을 결정하도록 그것의 노드 로그를 사용하는 것을 특징으로 하는 중복 데이터베이스 시스템에서 데이터 오브젝트를 유지하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/876,587 | 1997-06-16 | ||
US08/876,587 US5995981A (en) | 1997-06-16 | 1997-06-16 | Initialization of replicated data objects |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20010013779A true KR20010013779A (ko) | 2001-02-26 |
Family
ID=25368080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019997011796A KR20010013779A (ko) | 1997-06-16 | 1998-05-29 | 중복 데이터 오브젝트의 초기화 |
Country Status (9)
Country | Link |
---|---|
US (1) | US5995981A (ko) |
EP (1) | EP0988597B1 (ko) |
JP (1) | JP2002504249A (ko) |
KR (1) | KR20010013779A (ko) |
AU (1) | AU8045298A (ko) |
BR (1) | BR9810132A (ko) |
CA (1) | CA2294035C (ko) |
DE (1) | DE69804099T2 (ko) |
WO (1) | WO1998058316A1 (ko) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006206A (en) * | 1997-09-08 | 1999-12-21 | Reuters Limited | Data health monitor for financial information communications networks |
US6651183B1 (en) * | 1999-10-28 | 2003-11-18 | International Business Machines Corporation | Technique for referencing failure information representative of multiple related failures in a distributed computing environment |
US20030005091A1 (en) * | 2001-06-29 | 2003-01-02 | International Business Machines Corporation | Method and apparatus for improved monitoring in a distributed computing system |
US6954752B2 (en) * | 2001-07-19 | 2005-10-11 | International Business Machines Corporation | Methods and apparatus for clustering and prefetching data objects |
US7675854B2 (en) | 2006-02-21 | 2010-03-09 | A10 Networks, Inc. | System and method for an adaptive TCP SYN cookie with time validation |
US8312507B2 (en) | 2006-10-17 | 2012-11-13 | A10 Networks, Inc. | System and method to apply network traffic policy to an application session |
US20090132534A1 (en) * | 2007-11-21 | 2009-05-21 | Inventec Corporation | Remote replication synchronizing/accessing system and method thereof |
US9960967B2 (en) | 2009-10-21 | 2018-05-01 | A10 Networks, Inc. | Determining an application delivery server based on geo-location information |
US9215275B2 (en) | 2010-09-30 | 2015-12-15 | A10 Networks, Inc. | System and method to balance servers based on server load status |
US9609052B2 (en) | 2010-12-02 | 2017-03-28 | A10 Networks, Inc. | Distributing application traffic to servers based on dynamic service response time |
DE102011018878B3 (de) * | 2011-04-28 | 2012-09-27 | Deutsches Zentrum für Luft- und Raumfahrt e.V. | Verfahren zum Synchronisieren der Datenbestände von Datenbanken |
US8897154B2 (en) | 2011-10-24 | 2014-11-25 | A10 Networks, Inc. | Combining stateless and stateful server load balancing |
US9094364B2 (en) | 2011-12-23 | 2015-07-28 | A10 Networks, Inc. | Methods to manage services over a service gateway |
US10044582B2 (en) | 2012-01-28 | 2018-08-07 | A10 Networks, Inc. | Generating secure name records |
US10002141B2 (en) * | 2012-09-25 | 2018-06-19 | A10 Networks, Inc. | Distributed database in software driven networks |
US10021174B2 (en) | 2012-09-25 | 2018-07-10 | A10 Networks, Inc. | Distributing service sessions |
JP2015534769A (ja) | 2012-09-25 | 2015-12-03 | エイ10 ネットワークス インコーポレイテッドA10 Networks, Inc. | データネットワークにおける負荷分散 |
US9843484B2 (en) | 2012-09-25 | 2017-12-12 | A10 Networks, Inc. | Graceful scaling in software driven networks |
US9531846B2 (en) | 2013-01-23 | 2016-12-27 | A10 Networks, Inc. | Reducing buffer usage for TCP proxy session based on delayed acknowledgement |
US9900252B2 (en) | 2013-03-08 | 2018-02-20 | A10 Networks, Inc. | Application delivery controller and global server load balancer |
WO2014144837A1 (en) | 2013-03-15 | 2014-09-18 | A10 Networks, Inc. | Processing data packets using a policy based network path |
US10038693B2 (en) | 2013-05-03 | 2018-07-31 | A10 Networks, Inc. | Facilitating secure network traffic by an application delivery controller |
US10230770B2 (en) | 2013-12-02 | 2019-03-12 | A10 Networks, Inc. | Network proxy layer for policy-based application proxies |
US9942152B2 (en) | 2014-03-25 | 2018-04-10 | A10 Networks, Inc. | Forwarding data packets using a service-based forwarding policy |
US9942162B2 (en) | 2014-03-31 | 2018-04-10 | A10 Networks, Inc. | Active application response delay time |
US9906422B2 (en) | 2014-05-16 | 2018-02-27 | A10 Networks, Inc. | Distributed system to determine a server's health |
US10129122B2 (en) | 2014-06-03 | 2018-11-13 | A10 Networks, Inc. | User defined objects for network devices |
US9992229B2 (en) | 2014-06-03 | 2018-06-05 | A10 Networks, Inc. | Programming a data network device using user defined scripts with licenses |
US9986061B2 (en) | 2014-06-03 | 2018-05-29 | A10 Networks, Inc. | Programming a data network device using user defined scripts |
US10581976B2 (en) | 2015-08-12 | 2020-03-03 | A10 Networks, Inc. | Transmission control of protocol state exchange for dynamic stateful service insertion |
US10243791B2 (en) | 2015-08-13 | 2019-03-26 | A10 Networks, Inc. | Automated adjustment of subscriber policies |
CN109391510B (zh) * | 2018-08-13 | 2021-12-10 | 杭州复杂美科技有限公司 | 一种故障节点检测方法及系统、设备和可存储介质 |
CN110932918B (zh) * | 2019-12-26 | 2023-01-10 | 远景智能国际私人投资有限公司 | 日志数据采集方法、装置及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0259942A (ja) * | 1988-08-26 | 1990-02-28 | Hitachi Ltd | 分散データベースシステムのノード結合状態管理方式 |
JPH02287858A (ja) * | 1989-04-28 | 1990-11-27 | Toshiba Corp | 分散処理システムのリスタート方式 |
US5440727A (en) * | 1991-12-18 | 1995-08-08 | International Business Machines Corporation | Asynchronous replica management in shared nothing architectures |
US5544359A (en) * | 1993-03-30 | 1996-08-06 | Fujitsu Limited | Apparatus and method for classifying and acquiring log data by updating and storing log data |
DE4497149T1 (de) * | 1993-09-24 | 1996-10-17 | Oracle Corp | Verfahren und Vorrichtung zum Replizieren von Daten |
US5687363A (en) * | 1994-03-30 | 1997-11-11 | Siemens Stromberg-Carlson | Distributed database architecture and distributed database management system for open network evolution |
US5608865A (en) * | 1995-03-14 | 1997-03-04 | Network Integrity, Inc. | Stand-in Computer file server providing fast recovery from computer file server failures |
-
1997
- 1997-06-16 US US08/876,587 patent/US5995981A/en not_active Expired - Lifetime
-
1998
- 1998-05-29 DE DE69804099T patent/DE69804099T2/de not_active Expired - Lifetime
- 1998-05-29 KR KR1019997011796A patent/KR20010013779A/ko not_active Application Discontinuation
- 1998-05-29 BR BR9810132-3A patent/BR9810132A/pt not_active IP Right Cessation
- 1998-05-29 JP JP50425399A patent/JP2002504249A/ja active Pending
- 1998-05-29 CA CA002294035A patent/CA2294035C/en not_active Expired - Lifetime
- 1998-05-29 WO PCT/SE1998/001028 patent/WO1998058316A1/en not_active Application Discontinuation
- 1998-05-29 EP EP98928725A patent/EP0988597B1/en not_active Expired - Lifetime
- 1998-05-29 AU AU80452/98A patent/AU8045298A/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO1998058316A1 (en) | 1998-12-23 |
CA2294035C (en) | 2004-10-26 |
CA2294035A1 (en) | 1998-12-23 |
JP2002504249A (ja) | 2002-02-05 |
DE69804099D1 (de) | 2002-04-11 |
DE69804099T2 (de) | 2002-08-22 |
AU8045298A (en) | 1999-01-04 |
EP0988597B1 (en) | 2002-03-06 |
BR9810132A (pt) | 2000-08-08 |
US5995981A (en) | 1999-11-30 |
EP0988597A1 (en) | 2000-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20010013779A (ko) | 중복 데이터 오브젝트의 초기화 | |
US5996086A (en) | Context-based failover architecture for redundant servers | |
US5566297A (en) | Non-disruptive recovery from file server failure in a highly available file system for clustered computing environments | |
US9130821B2 (en) | Hybrid locking using network and on-disk based schemes | |
EP0988596B1 (en) | Method and system for recovery in a partitioned shared nothing database system using virtual shared disks | |
US7272674B1 (en) | System and method for storage device active path coordination among hosts | |
US7120651B2 (en) | Maintaining a shared cache that has partitions allocated among multiple nodes and a data-to-partition mapping | |
US8126843B2 (en) | Cluster-wide read-copy update system and method | |
JP6362685B2 (ja) | オンライン・ホット・スタンバイ・データベースのためのレプリケーション方法、プログラム、および装置 | |
US6978398B2 (en) | Method and system for proactively reducing the outage time of a computer system | |
AU711220B2 (en) | Method of commitment in a distributed database transaction | |
US6915391B2 (en) | Support for single-node quorum in a two-node nodeset for a shared disk parallel file system | |
KR100450400B1 (ko) | 안전 기억 장치가 없는 환경을 위한 이중화 구조의 주 메모리 상주 데이터베이스 관리시스템 및 그 데이터 일치성 제어방법 | |
WO2001084314A2 (en) | Method and system for providing cluster replicated checkpoint services | |
US7228352B1 (en) | Data access management system in distributed processing system | |
EP3579501B1 (en) | Message transmission method and device in cluster file system | |
JP2004145854A (ja) | データバックアップと回復のための方法と装置 | |
US12086037B2 (en) | Scalable low-loss disaster recovery for data stores | |
US7478387B2 (en) | System and method for creating a restartable non-native language routine execution environment | |
US8689043B1 (en) | Fast failover with multiple secondary nodes | |
JP2004199682A (ja) | 高可用性クラスタにおける活性判定用通信ネットワークとしての記憶媒体の使用 | |
KR20020036502A (ko) | 이중화 구조를 가지는 데이터베이스 관리시스템 및 그의이중화 처리방법 | |
KR20010109087A (ko) | 분산 컴퓨팅 환경의 프로세싱 그룹들을 관리하는 방법,시스템 및 프로그램 저장 장치 | |
KR100470259B1 (ko) | 리소스 그룹을 세부적이고 지속적으로 교환하기 위한방법, 시스템 및 프로그램 제품 | |
US20240176704A1 (en) | Computing Device and Method For Use in the Computing Device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |