KR20040074627A - 복제 명령 분배 시스템 및 방법 - Google Patents

복제 명령 분배 시스템 및 방법 Download PDF

Info

Publication number
KR20040074627A
KR20040074627A KR1020040010760A KR20040010760A KR20040074627A KR 20040074627 A KR20040074627 A KR 20040074627A KR 1020040010760 A KR1020040010760 A KR 1020040010760A KR 20040010760 A KR20040010760 A KR 20040010760A KR 20040074627 A KR20040074627 A KR 20040074627A
Authority
KR
South Korea
Prior art keywords
command
replication
distributor
bucket
duplicate
Prior art date
Application number
KR1020040010760A
Other languages
English (en)
Other versions
KR101099227B1 (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 KR20040074627A publication Critical patent/KR20040074627A/ko
Application granted granted Critical
Publication of KR101099227B1 publication Critical patent/KR101099227B1/ko

Links

Classifications

    • 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
    • G06F16/275Synchronous replication
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H75/00Storing webs, tapes, or filamentary material, e.g. on reels
    • B65H75/02Cores, formers, supports, or holders for coiled, wound, or folded material, e.g. reels, spindles, bobbins, cop tubes, cans, mandrels or chucks
    • B65H75/34Cores, formers, supports, or holders for coiled, wound, or folded material, e.g. reels, spindles, bobbins, cop tubes, cans, mandrels or chucks specially adapted or mounted for storing and repeatedly paying-out and re-storing lengths of material provided for particular purposes, e.g. anchored hoses, power cables
    • B65H75/38Cores, formers, supports, or holders for coiled, wound, or folded material, e.g. reels, spindles, bobbins, cop tubes, cans, mandrels or chucks specially adapted or mounted for storing and repeatedly paying-out and re-storing lengths of material provided for particular purposes, e.g. anchored hoses, power cables involving the use of a core or former internal to, and supporting, a stored package of material
    • B65H75/40Cores, formers, supports, or holders for coiled, wound, or folded material, e.g. reels, spindles, bobbins, cop tubes, cans, mandrels or chucks specially adapted or mounted for storing and repeatedly paying-out and re-storing lengths of material provided for particular purposes, e.g. anchored hoses, power cables involving the use of a core or former internal to, and supporting, a stored package of material mobile or transportable
    • B65H75/406Cores, formers, supports, or holders for coiled, wound, or folded material, e.g. reels, spindles, bobbins, cop tubes, cans, mandrels or chucks specially adapted or mounted for storing and repeatedly paying-out and re-storing lengths of material provided for particular purposes, e.g. anchored hoses, power cables involving the use of a core or former internal to, and supporting, a stored package of material mobile or transportable hand-held during use
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H2402/00Constructional details of the handling apparatus
    • B65H2402/50Machine elements
    • B65H2402/51Joints, e.g. riveted or magnetic joints
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H2701/00Handled material; Storage means
    • B65H2701/30Handled filamentary material
    • B65H2701/33Hollow or hose-like material

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
  • Advance Control (AREA)
  • Retry When Errors Occur (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Studio Devices (AREA)

Abstract

트랜잭션 복제 시스템이 개시된다. 각 복제 명령이 단일 행에 인가되어 주요 키에 의해 식별됨에 따라, 상기 복제된 명령은 단일 명령 큐에서의 주요 키의 해싱에 의해 다수의 접속단(connections)으로 디스패치되어 동일 데이터 행에 대한 변경사항(changes)이 동일 접속에 항상 디스패치되는 것을 보장함으로써 퍼블리셔에서 발생한 원래의 명령 순서를 유지하게 한다. 모든 접속은 2 단계 커미트를 사용하는 대신 조율된 방식으로 그들의 트랜잭션을 동시에 커미트한다. 논리적 시퀀스 번호에 기초한 재시도 로직은 커미트할 수 없는 임의의 접속으로부터 명령을 재인가하는 데 사용된다.

Description

복제 명령 분배 시스템 및 방법{SYSTEM AND METHOD OF DISTRIBUTING REPLICATION COMMANDS}
본 발명은 컴퓨팅 분야에 관한 것으로, 특히, 트랜잭션 복제(transaction replication) 분야에 관한 것이다.
복제는 데이터 및 그 데이터에 대한 변경들을 하나의 데이터베이스에서 다른 데이터베이스로 복사하는 능력이다. 도 1은 종래의 트랜잭션 복제의 개요를 도시한다. 퍼블리셔(publisher; 200)는 그 데이터를 다른 서버 또는 데이터베이스에 전송하는 서버 또는 데이터베이스이다. 퍼블리셔(200)는 서브스크라이버 (subscriber) 서버 또는 데이터베이스에 전송된 하나 이상의 아티클(article)의 모음인 퍼블리케이션(publication)을 포함할 수 있다. 트랙잰션 복제에서, 아티클은 복제될 것으로서, 전체 표, 표에서 선택된 행, 표의 특정 열 또는 저장된 프로시저일 수 있다.
디스트리뷰터(distributor; 202)는 복제 시스템을 통해 데이터의 흐름을 관리한다. 디스트리뷰터(202)는 퍼블리셔(200)로부터 복제될 필요가 있는 (퍼블리케이션에 대한) 변경을 추적하는 분배 데이터베이스를 포함한다. 퍼블리셔(200)는 그 자신의 디스트리뷰터(202)로서 동작할 수 있으며, 또는, 원격 데이터베이스 서버가 분배 데이터베이스를 보유하도록 사용될 수 있다.
서브스크라이버(204)는 퍼블리셔(200) 또는 다른 데이터베이스로부터 데이터를 수신하는 서버 또는 데이터베이스이다. 서브스크립션(subscription)은 서버 또는 데이터베이스(204)가 수신할 데이터 그룹이다. 이는, 하나 이상의 퍼블리케이션일 수 있다. 푸시 및 풀 서브스크립션(push and pull publication)이 있다. 푸시 서브스크립션(push publication)은 퍼블리싱 서버가 서브스크라이빙 서버 또는 데이터베이스에 트랜잭션을 주기적으로 푸시(push)하는 경우의 서브스크립션이다. 풀 서브스크립션(pull publication)은 서브스크라이빙 서버가 분배 데이터베이스에 주기적으로 접속하여 정보를 풀(pull)하는 경우의 서브스크립션이다.
종래의 트랜잭션 복제에서, 복제된 명령은 도 1에 도시된 바와 같이 서브스크라이버에서 단일 접속(203)을 통해 인가된다. 단일 접속은 트랜잭션이 퍼블리셔 상에 발생한 순서대로 정확하게 서브스크라이버에 인가될 것을 보장하지만, 이 방법은, 특히 과부하가 걸린 퍼블리셔로부터의 요청이 있는 경우에는 성능 상실이 있다.
또한, 종래의 복제 기술은, 삽입, 갱신 또는 삭제 동작이 발생할 때, 발행된 표에 행해진 변화를 추적하기 위해 트리거(trigger)를 사용한다. 따라서, 트리거로 인해 퍼블리셔(200)에 또다른 부하가 추가된다. 따라서, 과부하 비용을 줄이고 트랜잭션이 서브스크라이버에서 적절하게 인가되는 것을 보장하면서, 트랜잭션 복제 시스템의 성능을 향상시키려는 요구가 있다. 본 발명은 그 해결책을 제공한다.
도 1은 종래의 트랜잭션 복제 시스템의 망 구조(topology)를 나타내는 도면.
도 2는 본 발명이 구현될 수 있는 예시적인 컴퓨팅 환경을 나타내는 도면.
도 3은 본 발명의 트랜잭션 복제 시스템의 예시적인 망 구조를 나타내는 도면.
<도면의 주요 부분에 대한 부호의 설명>
200, 300: 퍼블리셔 202, 302: 디스트리뷰터
204, 304: 서브스크라이버 301: 트랜잭션 로그
312: 명령 큐 318: 명령 버킷
본 발명은 복제 명령을 인가할 경우 분배 프로세스에서 다수의 트랜잭션 큐(multiple transaction queue)를 사용하여 종래 기술의 한계를 극복하는 이점이 있다. 본 발명의 일 예에 따르면, 복제 명령을 분배하기 위한 시스템이 제공된다. 그 시스템은 퍼블리셔로부터 복제 명령을 수신하는 명령 큐를 구비한 디스트리뷰터를 포함한다. 디스트리뷰터는 서브스크라이버에 복제 명령을 통신하기 위한 다수의 접속을 가진다. 복수의 명령 버킷(command bucket)이 디스트리뷰터로부터 명령을 수신한다. 각각의 명령 버킷은 다수의 접속들 중 하나의 접속를 통해 디스트리뷰터와 통신하여, 동일 해시 키(hash key)를 갖는 복제 명령만을 수신한다. 수신된 복제 명령은 각각 고유 행의 식별자를 포함한다.
본 발명의 특징에 따라, 퍼블리셔는 적용하게 될 표의 행의 주요 키의 해시로 각각의 복제 명령을 수식한다(decorate). 복제 명령은 주요 키의 해시에 따라서 개별 명령 버킷으로 정렬된다.
다른 특징에 따르면, 디스트리뷰터는 커미트(commit)를 대기하는 각각의 버킷을 마크하고, 각 버킷의 복제 명령들은 실질적으로 동시에 서브스크라이버에 인가된다. 각 버킷의 엑시큐터(executor)는 디스트리뷰터가 프로세싱을 다시 시작하도록 커미트가 완료되었음을 디스트리뷰터에 통지한다.
또다른 특징에 따르면, 각각의 접속이 성공적으로 커미트되었는지를 판정하기 위한 재시도 메커니즘이 사용된다. 접속이 커미트하는데 실패하면, 재시도 메커니즘은 복제 명령의 논리적 시퀀스 번호에 따라 가장 이른 실패 지점부터 커미트 프로세스를 다시 시작하며, 성공적 커미트를 위해 복제 명령의 최종 논리 시퀀스 번호보다 새로운 논리적 시퀀스 번호를 갖는 복제 명령을 인가한다.
본 발명의 다른 양태에 따르면, 서브스크라이버, 디스트리뷰터 및 퍼블리셔를 갖는 시스템에서 복제 명령을 분배하기 위한 방법이 제공된다. 상기 방법은 복제 명령이 적용되는 행의 고유 식별자를 사용하여 퍼블리셔에서 복제 명령을 수식하는 단계; 디스트리뷰터에 복제 명령을 전송하는 단계; 명령 큐에 복제 명령을 저장하는 단계; 및 디스트리뷰터에 대한 접속을 각각 갖는 복수개의 명령 버킷에 복제 명령을 전송하는 단계를 포함한다. 각 명령 버킷은 고유 행의 고유 식별자에 따라 서브스크라이버 표의 고유 행에 인가될 복제 명령을 수신한다.
본 발명의 다른 특징 및 이점들은 첨부 도면을 참조하는 예시적 실시예의 상세한 설명으로부터 명확해 질 것이다.
<실시예>
예시적인 컴퓨팅 환경
도 2와 후술하는 설명은 본 발명이 구현될 수 있는 적절한 컴퓨팅 환경의 개략적인 설명을 제공하려는 것이다. 그러나, 핸드헬드, 휴대 장치 및 다른 모든 종류의 컴퓨팅 장치들이 본 발명에서 사용될 수 있음이 이해되어져야 한다. 범용 컴퓨터가 아래 설명되지만, 이는 단지 일 예이며, 본 발명은 네트워크 서버 상호 운용 및 상호작용을 갖는 신 클라이언트(thin client)만을 요구한다. 따라서, 본 발명은 최소한의 클라이언트 자원이 포함되는, 예를 들어, 클라이언트 장치가 단지 브라우저 또는 월드 와이드 웹에 대한 인터페이스로서만 적용하게 될 네트워크 환경에서 네트워크 호스팅 서비스 환경으로 구현될 수 있다.
필수적이지는 않지만, 본 발명은 응용 프로그래밍 인터페이스(API)를 통해 개발자 용도로 구현되거나 및/또는 클라이언트 워크스테이션, 서버 또는 다른 장치와 같은 하나 이상의 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령의 일반적인 경우에 대하여 설명될 네트워크 브라우징 소프트웨어 내에 포함될 수 있다. 일반적으로, 프로그램 모듈은 특정 작업을 실행하거나 특정 추상 데이터형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 통상, 프로그램 모듈의 기능은 원하는 다양한 형태대로 결합 또는 분배될 수 있다. 더욱이, 당업자는 다른 컴퓨터 시스템 구성을 사용하여 실시될 수 있다는 것을 이해할 것이다. 본 발명에서 사용하기에 적합할 수 있는 다른 공지의 컴퓨팅 시스템, 환경, 및/또는 구성은 개인용 컴퓨터(PC), 현금 자동 입출금기, 서버 컴퓨터, 핸드헬드 또는 랩탑 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 프로그래머블 소비자 전자제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하며 이에 한정되지 않는다. 또한, 본 발명은 통신 네트워크 또는 다른 데이터 전송 매체를 통해 연결될 수 있는 원격 프로세싱 장치에 의해 작업이 실행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 스토리지 장치를 포함하는 로컬 및 원격 컴퓨팅 스토리지 매체에 위치할 수 있다.
따라서, 비록 명확하게 상술하였지만, 도 2는 본 발명이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(100)의 일 예를 도시하며, 컴퓨팅 시스템 환경(100)은 적절한 컴퓨팅 환경의 단지 일 예이며, 본 발명의 이용 또는 기능의 범위에 대해 어떠한 한정을 제안하려는 것은 아니다. 컴퓨팅 환경(100)은 예시적인 운영 환경(100)에서 설명되는 컴포넌트의 임의의 하나 또는 그 조합에 관한 어떠한 의존성이나 요건을 갖는 것으로 해석되어서는 안된다.
도 2를 참조하면, 본 발명을 구현하는 예시적인 시스템은 컴퓨터(100)의 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(100)의 컴포넌트는 처리부(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 여러 시스템 컴포넌트를 처리부(120)에 결합시키는 시스템 버스(121)를 포함할 수 있으며 이에 한정되지는 않는다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 병렬 버스 및 다양한 버스 아키텍쳐 중의 임의의 것을 사용하는 로컬 버스를 포함한 여러 유형의버스 아키텍쳐 중 어느 것일 수 있다. 예를 들어, -한정이 아님-, 이러한 아키텍쳐는 산업표준 아키텍쳐(ISA), 마이크로 채널 아키텍쳐(MCA) 버스, 향상된 ISA (EISA) 버스, 비디오 전자표준 협회(VESA) 로컬 버스, 및 병렬 컴포넌트 상호접속(PCI) 버스(메자닌(Mezzanine) 버스로도 알려짐)를 포함한다.
통상, 컴퓨터(110)는 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 액세스될 수 있는 임의의 입수가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 예를 들어, -한정이 아님-, 컴퓨터 판독가능 매체는 컴퓨터 스토리지 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 스토리지 매체는, 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 컴퓨터 스토리지 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CDROM, 디지털 다기능 디스크(DVD) 또는 다른 광 디스크 스토리지, 자기 카셋트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 스토리지 장치 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨터(110)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하며, 이에 한정되지는 않는다. 통상, 통신 매체는 반송파 또는 다른 전송 메커니즘과 같은 변조 데이터 신호로 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조 데이터 신호"라는 용어는 신호에서 정보를 인코딩하기 위한 방식으로 설정 또는 변경된 하나 이상의 특성을 갖는 신호를 의미한다. 예를 들어, -한정이아님-, 통신 매체는 유선 네트워크 또는 다이렉트 와이어드 접속과 같은 유선 매체 및 음성, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함한다. 또한, 상기의 것의 임의의 조합은 컴퓨터 판독가능 매체의 범주에 포함되어야 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM;131)와 랜덤 액세스 메모리(RAM;132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 스토리지 매체를 포함한다. 기본 입출력 시스템(133;BIOS)는 컴퓨터(110) 내의 요소들 간의 정보를 전송할 수 있게 하는 시동 중과 같은 기본 루틴을 포함하며, 통상 ROM(131)에 저장된다. 통상, RAM(132)은 처리부(120)에 의해 즉시 액세스 가능하고 현재 동작 중인 데이터 및/또는 프로그램 모듈을 포함한다. 예를 들어, -한정이 아님-, 도 2는 운영 체계(134), 응용 프로그램(135), 다른 프로그램 모듈(136), 및 프로그램 데이터(137)를 도시한다.
또한, 컴퓨터(110)는 다른 휘발성/비휘발성, 분리형/비분리형 컴퓨터 스토리지 매체를 포함할 수 있다. 단지 예를 들어, 도 2는 비분리형, 비휘발성 자기 매체를 판독하고 이에 기입하는 하드 디스크 드라이브(141), 분리형, 비휘발성 자기 디스크(152)를 판독하고 이에 기입하는 자기 디스크 드라이브(151), CD ROM 또는 다른 광 매체와 같은 분리형 비휘발성 광 디스크(156)를 판독하고 이에 기입하는 광 디스크 드라이브(155)를 도시한다. 예시적인 운영 환경에서 사용될 수 있는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 스토리지 매체는 자기 테이프 카세트, 플래시 메모리 카드, 디지털 다기능 디스크, 디지털 비디오 테이프, 고체 상태 RAM, 고체 상태 ROM 등을 포함하며 이에 한정되지는 않는다. 통상, 하드 디스크드라이브(141)는 인터페이스(140)와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(121)에 접속되며, 자기 디스크 드라이브(151)와 광 디스크 드라이브(155)는 통상 인터페이스(150)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
상술하고 도 2에 도시된 드라이브 및 그들의 관련 컴퓨터 스토리지는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 컴퓨터(110)에 대한 다른 데이터 스토리지를 제공한다. 도 2에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체계(144), 응용 프로그램(145), 다른 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시된다. 이들 컴포넌트는 운영 체계(134), 응용 프로그램(135), 다른 프로그램 모듈(136) 및 프로그램 데이터(137)와 동일하거나 혹은 상이할 수 있다. 운영 체계(144), 응용 프로그램(145), 다른 프로그램 모듈(146), 및 프로그램 데이터(147)는 적어도 그들이 다른 복사본임을 설명하기 위해 여기서는 서로 다른 번호로 주어진다. 사용자는 키보드(162) 및 통상 마우스, 트랙볼 또는 터치 패드로 불리는 포인팅 장치(161)와 같은 입력 장치를 통해 컴퓨터(110)에 명령과 정보를 입력할 수 있다. 다른 입력 장치(미도시)는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너 등을 포함할 수 있다. 이들 및 다른 입력 장치는 종종 시스템 버스(121)에 결합된 사용자 입력 인터페이스(160)를 통해 처리부(120)에 종종 접속되지만, 병렬 포트, 게임 포트 또는 범용 직렬 버스(USB)와 같은 다른 인터페이스와 버스 구조에 의해 접속될 수 있다.
모니터(191) 또는 다른 유형의 디스플레이 장치가 또한 비디오인터페이스(190)와 같은 인터페이스를 통해 시스템 버스(121)에 접속된다. 노스브리지(Northbridge)와 같은 그래픽 인터페이스(182)가 시스템 버스(121)에 접속될 수 있다. 노스브리지는 CPU 또는 호스트 처리부(120)와 통신하는 칩셋이며, 가속 그래픽 포트(AGP) 통신을 담당한다. 하나 이상의 그래픽 처리부(GPU;184)는 그래픽 인터페이스(182)와 통신할 수 있다. 이에 있어서, GPU(184)는 레지스터 스토리지와 같은 온 칩 메모리 스토리지를 통상 포함하며, GPU(184)는 비디오 메모리(186)와 통신한다. 그러나, GPU(184)는 코프로세서의 단지 일 예이며, 따라서, 다양한 코프로세싱 장치가 컴퓨터(110)에 포함될 수 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치가 또한 비디오 인터페이스(190)와 같은 인터페이스를 통해 시스템 버스(121)에 접속되며, 비디오 인터페이스(190)는 또한 비디오 메모리(186)과 통신할 수 있다. 모니터(191) 뿐만 아니라, 컴퓨터는 스피커(197)와 프린터(196)와 같은 다른 병렬 출력 장치를 포함할 수 있으며, 이는 출력 병렬 인터페이스(195)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터에 대한 노리적 접속을 사용하여 네트워킹 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치(peer device) 또는 다른 공통 네트워크 노드일 수 있으며, 비록 도 2에는 단지 메모리 스토리지 장치(181) 만이 도시되었지만, 통상 컴퓨터(110)에 대하여 상술한 모든 또는 다수의 요소를 포함한다. 도 2에 도시된 논리적 접속은 근거리 네트워크(LAN; 171)와 원거리 네트워크(WAN; 173)를 포함하지만, 다른 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 범사내망, 인트라넷 및 인터넷에서 흔한 일이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 통상 모뎀(172) 또는 인터넷과 같이 WAN(173)을 통해 통신을 설정하는 다른 수단을 포함한다. 모뎀(172)은 내장형 또는 외장형일 수 있으며, 사용자 입력 인터페이스(160) 또는 다른 적절한 메커니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워킹 환경에서, 컴퓨터(110)에 대하여 도시된 프로그램 모듈 및 그 일부가 원격 메모리 스토리지 장치에 저장될 수 있다. 예를 들어, -한정이 아님-, 도 2는 메모리 장치(181)에 상주하는 것으로서 원격 응용 프로그램(185)을 도시한다. 도시된 네트워크 접속은 예시적이며 컴퓨터들 간의 통신 링크를 설정하는 다른 수단이 사용될 수 있다.
당업자는 컴퓨터(110) 또는 다른 클라이언트 장기가 컴퓨터 네트워크의 일부로서 사용될 수 있음을 이해할 수 있다. 이에 있어서, 본 발명은 임의 개수의 메모리 또는 스토리지 유닛, 임의 개수의 스토리지 유닛 또는 체적에 걸쳐서 발생하는 임의 개수의 응용 및 프로세스를 갖는 임의의 컴퓨터 시스템에 관한 것이다. 본 발명은 원격 또는 로컬 스토리지를 갖는 네트워크 환경에 배치된 서버 컴퓨터와 클라이언트 컴퓨터를 갖는 환경에 적용할 수 있다. 본 발명은 또한 프로그래밍 언어 기능, 해석 및 실행 능력을 갖는 단독 컴퓨팅 장치에 적용할 수 있다.
본 발명의 트랜잭션 복제의 실시예
도 3은 트랜잭션 복제 시스템의 망 구조를 보다 상세히 도시한다. 본 발명은 서브스크라이버에서 다수의 트랜잭션 큐를 사용하여 복제 명령을 인가함으로써 종래 기술의 한계를 극복하는 이점이 있다. 퍼블리셔(300)는 트랜잭션 로그(301)에 복제되는 각 명령(즉, 갱신, 삭제, 삽입 등)을 그 명령이 인가되는 행의 주요 키의 해시를 사용하여 수식한다. 당업계에 공지된 바와 같이, 트랜잭션 로그(301)는 롤백(rollback)이 데이터베이스에 인가되어 변경을 취소할 수 있도록 모든 명령 리스트를 보유한다.
수식된 명령은 명령 큐(312)에 명령을 저장하는 디스트리뷰터(302)에 퍼블리셔(300)에 의해 전송된다. 명령 큐(312)는 후술하는 바와 같이 서브스크라이버에 전송하기 위한 명령을 저장한다. 디스패쳐 스레드(dispatcher thread; 314)는 각 명령으로 해시된 주요 키에 기초하여 명령 큐(312)를 판독하고 정렬하며, 접속(316)들 중 하나의 접속을 통해 단일 행에 대한 명령을 특정 행에 관련된 고유 버킷(318,320, 또는 322)에 전송한다. 본 발명은 임의 개수의 접속과 버킷이 사용될 수 있으므로 세 개의 접속(316)과 세 개의 버킷에 한정되지는 않는다. 예를 들어, 행 1에 인가된 모든 명령은 개별 접속을 통해 버킷(318)으로 전송되며, 행 2에 인가된 모든 명령은 개별 접속을 통해 버킷(320)에 전송된다. 퍼블리셔(300)에서 주요 키에 의해 해싱하는 것은, 각 복제된 명령이 단일 행에 인가되고, 그 데이터 행에 대한 명령이 적절한 버킷(318, 320, 또는 322)에 전송됨을 보장한다. 또한, 이는 버킷(318 320 및 322)에서 명령의 순서가 그들이 퍼블리셔(300)에서 원래 생성된 순서를 유지하는 것을 보장한다.
다수의 접속(316)은 본 발명에 따라 각각의 뒤따르는 연속 배치(batch)의 말단에서 트랜잭션 일관성을 보장하도록 "조율된 커미트(coordinated commit)"를 수행한다. 디스패쳐 스레드(314)는 각 버킷(318, 320, 322)를 커미트로서 대기 중인 것으로 마킹하여 각 명령 버킷에 추가 명령 전송을 중지한다. 각 버킷에서 적용하게 될 엑시큐터 스레드는 커미트 명령의 수신 시에 커미트에 대하여 마킹되고, 관련 명령 버킷으로부터 판독하여 서브스크라이버에 변환을 인가한다. 본 발명에 따르면, 모든 엑시큐터는 그들 각각의 행에 명령을 인가하도록 거의 동시에 커미트한다. 디스패쳐 스레드(314)는 정상 처리를 다시 시작할 수 있도록 커미트 프로세스의 완료를 통지하는 엑시큐터로부터의 이벤트를 대기한다.
조율된 커미트는 기입과 준비 단계가 커미트 이전에 필요한 2 단계 커미트 동작과 관련된 통신과 로깅 오버헤드를 방지하는 이점이 있다. 이 특성은 고성능 분배에 최적이지만, 종래의 2 단계 커미트에 의해 제공되는 예비 및 커미트 단계가 없기 때문에 트랜잭션 일관성을 포함할 수 있다. 이와 같이, 커미트된 엑시큐터는 임의의 엑시큐터가 커미트할 수 없다면 롤 백되지 않을 수 있다. 일관성을 보장하기 위해서, 본 발명은 여기서 고찰되는 성공적인 커미트 접속과 성공적이지 않은 커미트 접속을 결합을 다루는 재시도 로직을 구현한다. 본 발명에 따르면, 직렬화된 명령 큐(312)에서 복제 명령은 커미트 레코드의 논리적 일련번호(LSN)에 의해 정렬된다. 그 후, 명령은 주요 키의 해시 값에 기초하여 다수의 접속에 디스패치되므로, 동일 트랜잭션의 명령은 서로 다른 접속(316)을 통해 서브스크라이버(304)에 도달할 수 있다.
특정 접속이 커미트할 수 없으면, 재시도 로직은 가장 이른 실패지점에서 다시 시작하고, 명령 큐(312)를 다시 가져오며, 어느 명령이 커미트 트랜잭션에 의해 성공적으로 인가되었고 어느 명령이 다시 인가되어야 하는 지를 식별한다. 이 특성을 이행하기 위해서, 본 발명은 모든 접속에 대하여 최종 커미트된 LSN을 추적하고, 가장 이른 커미트 명령을 재개하며, (해시 값에 의해 식별된) 접속에서 커미트된 최종 LSN에 대하여 각각의 명령의 LSN을 점검한다. 관련된 최종 LSN보다 새로운 LSN을 갖는 명령들 만이 다시 인가된다. 이러한 접근법은 성공적인 배치(batch)에서 서브스크라이버가 트랜잭션 일정한 상태에 있도록 보장한다.
따라서, 상술한 설명으로부터 당업자가 인식할 수 있는 바와 같이, 다수의 접속들 사이에 명령을 분배하는 것은 최종 서브스크라이버에서 트랜잭션 일관성을 협상하지 않고 성능을 향상시키는 역할을 한다.
본 발명은 여러 도면의 바람직한 실시예에 대하여 설명하였지만, 다른 유사한 실시예가 본 발명의 동일 기능을 벗어나지 않으면서 상술한 실시예에 대한 변형 또는 추가로서 행해질 수 있음이 이해될 것이다. 예를 들어, 당업자는 상술한 본 발명이 유선이든 또는 무선이든 임의의 컴퓨팅 장치 또는 환경에 적용될 수 있으며, 통신 네트워크를 통해 접속되고, 네트워크에 걸쳐 상호작용하는 이러한 컴퓨팅 장치의 임의의 개수에 적용될 수 있다는 것을 인식할 것이다. 더욱이, 무선 네트워킹 장치의 개수가 지속적으로 증가함에 따라서, 핸드헬드 장치 운영 체계 및 다른 응용 특정 운영 체계를 포함하는 여러 컴퓨터 플랫폼이 고찰되는 것이 강조되어야 한다. 또한, 본 발명은 복수개의 프로세싱 칩 또는 장치를 통해 구현될 수 있으며, 스토리지가 복수개의 장치를 통해 유사하게 달성될 수 있다. 따라서, 본 발명은 임의의 단일 실시예에 한정되어서는 안되며, 그 보다는, 첨부된 청구항들에 따른 폭과 범위에서 파악되어야 한다.
상술한 본 발명에 따르면, 과부하 비용을 줄이고 트랜잭션이 서브스크라이버에서 적절하게 적용되는 것을 보장하면서, 트랜잭션 복제 시스템의 성능을 향상시킬 수 있다.

Claims (21)

  1. 복제 명령(replication command)을 분배하는 시스템에 있어서,
    퍼블리셔(publisher)로부터 복제 명령을 수신하는 명령 큐(command queue) 를 가지며 상기 복제 명령을 서브스크라이버(subscriber)와 통신하기 위해 다수의 접속을 추가로 갖는 디스트리뷰터(distributor); 및
    복수개의 명령 버킷(command bucket)을 포함하되,
    각각의 명령 버킷은 상기 다수의 접속 중 하나의 접속을 통해 상기 디스트리뷰터에 통신하고 상기 서브스크라이버의 표의 고유 행에 인가되는 복제 명령만을 수신하며, 상기 수신된 복제 명령은 각각 상기 고유 행의 식별자를 보유하는 시스템.
  2. 제1항에 있어서,
    상기 퍼블리셔는 적용되는 표의 상기 행의 주요 키(primary key)의 해시(hash)를 사용하여 상기 복제 명령 각각을 수식하는(decorate) 시스템.
  3. 제2항에 있어서,
    상기 복제 명령 각각은 디스패쳐 스레드(dispatcher thread)에 의해 상기 주요 키의 상기 해시에 따라 개별 명령 버킷으로 정렬되는 시스템.
  4. 제2항에 있어서,
    상기 디스트리뷰터는 커미트(commit) 대기 중인 각각의 버킷을 마킹하고, 각각의 버킷 내의 상기 복제 명령은 거의 동시에 상기 서브스크라이버에 인가되는 시스템.
  5. 제4항에 있어서,
    각 버킷의 엑시큐터(executor)는 상기 디스트리뷰터가 프로세싱을 다시 시작하도록 상기 디스트리뷰터에 상기 커미트가 완료되었음을 통지하는 시스템.
  6. 제4항에 있어서,
    상기 각각의 접속이 성공적으로 커미트되었는지를 판단하는 재시도 메커니즘을 더 포함하는 시스템.
  7. 제6항에 있어서,
    접속이 커미트할 수 없으면, 상기 재시도 메커니즘은 상기 복제 명령의 논리적 시퀀스 번호에 따라 가장 이른 실패 지점부터 상기 커미트 프로세스를 다시 시작하고, 성공적으로 커미트하는 복제 명령의 최종 논리적 시퀀스 번호보다 새로운 논리적 시퀀스 번호를 갖는 상기 복제 명령을 인가하는 시스템.
  8. 서브스크라이버, 디스트리뷰터 및 퍼블리셔를 갖는 시스템에서 복제 명령을분배하는 방법에 있어서,
    상기 복제 명령이 적용하게 될 행의 고유 식별자를 사용하여 상기 퍼블리셔에서의 복제 명령을 수식하는 단계;
    상기 디스트리뷰터에 상기 복제 명령을 전송하는 단계;
    명령 큐에 상기 복제 명령을 저장하는 단계; 및
    복수개의 명령 버킷에 상기 복제 명령을 전송하는 단계를 포함하되,
    각각의 명령 버킷은 상기 디스트리뷰터에 대한 접속을 가지며, 동일 해시 키를 갖는 복제 명령을 수신하는 복제 명령 분배 방법.
  9. 제8항에 있어서,
    상기 해시 키는 적용하게 될 표의 행의 상기 주요 키의 해시인 복제 명령 분배 방법.
  10. 제9항에 있어서,
    상기 복수개의 명령 버킷에 상기 복제 명령을 전송하는 것은 상기 주요 키의 상기 해시에 따라 개별 명령 버킷으로 상기 명령 각각을 정렬하는 단계를 더 포함하는 복제 명령 분배 방법.
  11. 제9항에 있어서,
    커미트 대기 중인 각각의 명령 버킷을 마킹하는 단계; 및
    상기 서브스크라이버에 거의 동시에 각각의 버킷 내의 상기 복제 명령을 인가하는 단계를 더 포함하는 복제 명령 분배 방법.
  12. 제11항에 있어서,
    각 버킷이 커미트 프로세스를 완료했음을 상기 디스트리뷰터에 통지하는 단계; 및
    상기 디스트리뷰터에서 프로세싱을 재개하는 단계를 더 포함하는 복제 명령 분배 방법.
  13. 제11항에 있어서,
    상기 각 버킷의 복제 명령이 상기 서브스크라이버에서 성공적으로 커미트되었는지를 판정하는 단계를 더 포함하는 복제 명령 분배 방법.
  14. 제13항에 있어서,
    상기 복제 명령의 논리적 시퀀스 번호에 따라 가장 이른 실패 지점부터 상기 커미트 프로세스를 다시 시작하는 단계; 및
    성공적으로 커미트하는 복제 명령의 최종 논리적 시퀀스 번호보다 새로운 논리 시퀀스 번호를 갖는 상기 복제 명령을 인가하는 단계를 더 포함하는 복제 명령 분배 방법.
  15. 서브스크라이버, 디스트리뷰터 및 퍼블리셔를 갖는 시스템에서 복제 명령을 분배하는 방법을 수행하기 위한 컴퓨터 실행가능 명령을 갖는 컴퓨터 판독가능 매체에 있어서, 상기 방법은,
    주요 키의 해싱된 값인 해시 키를 사용하여 상기 퍼블리셔에서 복제 명령을 수식하는 단계 -상기 주요 키는 상기 복제 명령이 적용하게 될 행을 고유하게 식별함-;
    상기 디스트리뷰터에 상기 복제 명령을 전송하는 단계;
    상기 복제 명령을 명령 큐에 저장하는 단계; 및
    상기 디스트리뷰터에 대한 접속을 각각 갖고, 동일 해시 키를 갖는 복제 명령을 각각 수신하는 복수개의 명령 버킷에 상기 복제 명령을 전송하는 단계를 포함하는 컴퓨터 판독가능 매체.
  16. 제15항에 있어서,
    상기 해시 키는 적용하게 될 표의 상기 행의 상기 주요 키의 해시인 컴퓨터 판독가능 매체.
  17. 제16항에 있어서,
    상기 복수개의 명령 버킷에 상기 복제 명령을 전송하는 단계는, 상기 주요 키의 상기 해시에 따라 개별 명령 버킷으로 상기 각각의 명령을 정렬하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  18. 제16항에 있어서,
    커미트 대기 중인 각 명령 버킷을 마킹하는 단계; 및
    상기 복제 명령을 상기 서브스크라이버에 거의 동시에 인가하는 단계를 위한 명령을 더 포함하는 컴퓨터 판독가능 매체.
  19. 제18항에 있어서,
    각 버킷이 커미트 프로세스를 완료했음을 상기 디스트리뷰터에 통지하는 단계; 및
    상기 디스트리뷰터에서 프로세싱을 다시 시작하는 단계를 위한 명령을 더 포함하는 컴퓨터 판독가능 매체.
  20. 제18항에 있어서,
    상기 각 버킷의 복제 명령이 성공적으로 서브스크라이버에서 커미트하였는지를 판정하는 단계를 위한 명령을 더 포함하는 컴퓨터 판독가능 매체.
  21. 제20항에 있어서,
    상기 복제 명령의 논리적 시퀀스 번호에 따라 가장 이른 실패 지점에서 상기 커미트 프로세스를 다시 시작하는 단계; 및
    성공적으로 커미트하는 복제 명령의 최종 논리적 시퀀스 번호보다 새로운 논리적 시퀀스 번호를 갖는 복제 명령을 인가하는 단계를 위한 명령을 더 포함하는 컴퓨터 판독가능 매체.
KR1020040010760A 2003-02-19 2004-02-18 복제 명령들을 서브스크라이버들에게 분배하는 컴퓨팅 시스템, 컴퓨터화된 방법 및 컴퓨터 판독가능 기록 매체 KR101099227B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/370,389 2003-02-19
US10/370,389 US7707181B2 (en) 2003-02-19 2003-02-19 System and method of distributing replication commands

Publications (2)

Publication Number Publication Date
KR20040074627A true KR20040074627A (ko) 2004-08-25
KR101099227B1 KR101099227B1 (ko) 2011-12-27

Family

ID=32736443

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040010760A KR101099227B1 (ko) 2003-02-19 2004-02-18 복제 명령들을 서브스크라이버들에게 분배하는 컴퓨팅 시스템, 컴퓨터화된 방법 및 컴퓨터 판독가능 기록 매체

Country Status (7)

Country Link
US (1) US7707181B2 (ko)
EP (1) EP1450270B1 (ko)
JP (1) JP4491254B2 (ko)
KR (1) KR101099227B1 (ko)
CN (1) CN1523523B (ko)
AT (1) ATE394743T1 (ko)
DE (1) DE602004013475D1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160123748A (ko) * 2015-04-17 2016-10-26 한국전자통신연구원 분산 파일 시스템에서의 파일 복제 제어 장치 및 방법

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167893B1 (en) * 2001-10-03 2007-01-23 Bellsouth Intellectual Property Corp. Methods and systems for processing a plurality of errors
US8005802B2 (en) * 2002-08-01 2011-08-23 Oracle International Corporation Partial evaluation of rule sets
US7613741B2 (en) * 2002-08-01 2009-11-03 Oracle International Corporation Utilizing rules in a distributed information sharing system
US8365193B2 (en) * 2003-08-14 2013-01-29 Oracle International Corporation Recoverable asynchronous message driven processing in a multi-node system
US8688634B2 (en) * 2004-02-27 2014-04-01 International Business Machines Corporation Asynchronous peer-to-peer data replication
US7490083B2 (en) 2004-02-27 2009-02-10 International Business Machines Corporation Parallel apply processing in data replication with preservation of transaction integrity and source ordering of dependent updates
WO2006057061A1 (ja) * 2004-11-29 2006-06-01 Fujitsu Limited 分散トランザクション処理方法、装置、及びプログラム
US7818386B2 (en) * 2004-12-30 2010-10-19 Oracle International Corporation Repeatable message streams for message queues in distributed systems
US8856091B2 (en) * 2005-09-09 2014-10-07 Open Invention Network, Llc Method and apparatus for sequencing transactions globally in distributed database cluster
US20070061379A1 (en) * 2005-09-09 2007-03-15 Frankie Wong Method and apparatus for sequencing transactions globally in a distributed database cluster
US7680795B2 (en) * 2007-03-16 2010-03-16 International Business Machines Corporation Shared disk clones
US7979393B2 (en) * 2008-02-22 2011-07-12 Microsoft Corporation Multiphase topology-wide code modifications for peer-to-peer systems
US8676749B2 (en) * 2008-07-31 2014-03-18 Sybase, Inc. Statement logging in databases
US8341134B2 (en) * 2010-12-10 2012-12-25 International Business Machines Corporation Asynchronous deletion of a range of messages processed by a parallel database replication apply process
CN102662946B (zh) * 2012-02-20 2015-10-07 北京地拓科技发展有限公司 一种自动监测数据库中记录变化的方法和系统
US9727625B2 (en) 2014-01-16 2017-08-08 International Business Machines Corporation Parallel transaction messages for database replication
US10642860B2 (en) * 2016-06-03 2020-05-05 Electronic Arts Inc. Live migration of distributed databases
US10540217B2 (en) 2016-09-16 2020-01-21 Oracle International Corporation Message cache sizing
US20180316726A1 (en) * 2017-04-28 2018-11-01 Honeywell International Inc. Replication of identity-derived primary keys without range restrictions
CN110196759B (zh) * 2018-06-20 2022-12-06 腾讯科技(深圳)有限公司 分布式事务处理方法和装置、存储介质及电子装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648031A (en) * 1982-06-21 1987-03-03 International Business Machines Corporation Method and apparatus for restarting a computing system
US4949251A (en) * 1988-07-18 1990-08-14 Digital Equipment Corporation Exactly-once semantics in a TP queuing system
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US5452445A (en) * 1992-04-30 1995-09-19 Oracle Corporation Two-pass multi-version read consistency
US5799305A (en) * 1995-11-02 1998-08-25 Informix Software, Inc. Method of commitment in a distributed database transaction
US5781910A (en) * 1996-09-13 1998-07-14 Stratus Computer, Inc. Preforming concurrent transactions in a replicated database environment
US5970231A (en) * 1996-11-27 1999-10-19 Pen Industries, Inc. Electronic newspaper and electronic publishing medium
US6549932B1 (en) * 1998-06-03 2003-04-15 International Business Machines Corporation System, method and computer program product for discovery in a distributed computing environment
US6144983A (en) * 1998-06-09 2000-11-07 Oracle Corporation Method and apparatus for dynamic lock granularity escalation and de-escalation in a computer system
US6243702B1 (en) * 1998-06-22 2001-06-05 Oracle Corporation Method and apparatus for propagating commit times between a plurality of database servers
US6510421B1 (en) * 1998-12-29 2003-01-21 Oracle Corporation Performing 2-phase commit with presumed prepare
US6463532B1 (en) * 1999-02-23 2002-10-08 Compaq Computer Corporation System and method for effectuating distributed consensus among members of a processor set in a multiprocessor computing system through the use of shared storage resources
US6708206B1 (en) * 1999-06-15 2004-03-16 Nokia Corporation Apparatus, and associated method, for providing a client with messages
US6438558B1 (en) * 1999-12-23 2002-08-20 Ncr Corporation Replicating updates in original temporal order in parallel processing database systems
US6658540B1 (en) * 2000-03-31 2003-12-02 Hewlett-Packard Development Company, L.P. Method for transaction command ordering in a remote data replication system
WO2001077841A2 (en) 2000-04-07 2001-10-18 Network Appliance, Inc. Method and apparatus for reliable and scalable distribution of data files in distributed networks
US6718361B1 (en) * 2000-04-07 2004-04-06 Network Appliance Inc. Method and apparatus for reliable and scalable distribution of data files in distributed networks
US6782398B1 (en) * 2000-06-14 2004-08-24 Microsoft Corporation Method for executing commands on multiple computers of a network
CN1339748A (zh) * 2000-08-21 2002-03-13 叶柯 信息的发布、分拣和访问的方法
US20020165724A1 (en) * 2001-02-07 2002-11-07 Blankesteijn Bartus C. Method and system for propagating data changes through data objects
US7406486B1 (en) * 2002-04-10 2008-07-29 Oracle International Corporation Transforming transactions to increase parallelism when replicating
US7181642B1 (en) * 2003-01-17 2007-02-20 Unisys Corporation Method for distributing the processing among multiple synchronization paths in a computer system utilizing separate servers for redundancy

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160123748A (ko) * 2015-04-17 2016-10-26 한국전자통신연구원 분산 파일 시스템에서의 파일 복제 제어 장치 및 방법

Also Published As

Publication number Publication date
ATE394743T1 (de) 2008-05-15
CN1523523B (zh) 2010-05-26
DE602004013475D1 (de) 2008-06-19
US7707181B2 (en) 2010-04-27
EP1450270B1 (en) 2008-05-07
EP1450270A2 (en) 2004-08-25
JP4491254B2 (ja) 2010-06-30
KR101099227B1 (ko) 2011-12-27
JP2004252986A (ja) 2004-09-09
CN1523523A (zh) 2004-08-25
EP1450270A3 (en) 2005-06-22
US20040162859A1 (en) 2004-08-19

Similar Documents

Publication Publication Date Title
KR101099227B1 (ko) 복제 명령들을 서브스크라이버들에게 분배하는 컴퓨팅 시스템, 컴퓨터화된 방법 및 컴퓨터 판독가능 기록 매체
CN101183377B (zh) 一种基于消息中间件的高可用性数据库集群系统
WO2022161308A1 (zh) 事务处理方法、装置、计算机设备及存储介质
US10732836B2 (en) Remote one-sided persistent writes
US7814065B2 (en) Affinity-based recovery/failover in a cluster environment
US8156082B2 (en) System and methods for temporary data management in shared disk cluster
US8738568B2 (en) User-defined parallelization in transactional replication of in-memory database
US7548898B1 (en) Parallel migration of data between systems
US7610314B2 (en) Online tablespace recovery for export
US20060190504A1 (en) Simulating multi-user activity while maintaining original linear request order for asynchronous transactional events
US7620661B2 (en) Method for improving the performance of database loggers using agent coordination
JP2008165370A (ja) オンライントランザクション処理を分割し、分散環境で実行するための方法および装置。
KR20080102622A (ko) Dbms에서의 데이터 복제 방법 및 시스템
US20190102113A1 (en) Database with nvdimm as persistent storage
US20220229822A1 (en) Data processing method and device for distributed database, storage medium, and electronic device
US20110185360A1 (en) Multiprocessing transaction recovery manager
US20230401214A1 (en) Graph database and methods with improved functionality
US20150112967A1 (en) Database management system, computer, and database management method
US7072912B1 (en) Identifying a common point in time across multiple logs
CN105938446B (zh) 基于rdma和硬件事务性内存支持的数据复制容错方法
JP5181183B2 (ja) 変換装置、サーバシステム、変換方法およびプログラム
US20130144842A1 (en) Failover and resume when using ordered sequences in a multi-instance database environment
US20210318938A1 (en) Updating stateful system in server cluster
US8359602B2 (en) Method and system for task switching with inline execution
Reinsch Distributed database for SAA

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20141117

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee