KR20040088397A - 트랜잭션적으로 일관성있는 트리거 기반 데이터베이스변경 추적 방법 및 시스템 - Google Patents

트랜잭션적으로 일관성있는 트리거 기반 데이터베이스변경 추적 방법 및 시스템 Download PDF

Info

Publication number
KR20040088397A
KR20040088397A KR1020040022572A KR20040022572A KR20040088397A KR 20040088397 A KR20040088397 A KR 20040088397A KR 1020040022572 A KR1020040022572 A KR 1020040022572A KR 20040022572 A KR20040022572 A KR 20040022572A KR 20040088397 A KR20040088397 A KR 20040088397A
Authority
KR
South Korea
Prior art keywords
change
changes
database
event
source
Prior art date
Application number
KR1020040022572A
Other languages
English (en)
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 KR20040088397A publication Critical patent/KR20040088397A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

트랜잭션 복제(transactional replication) 동안 소스 데이터(source data)와 목적지 데이터(destination data) 간의 일관성을 유지시키기 위해 변경 추적 기술(change tracking technique)이 사용된다. 제1 기능상 특징은 그 기술이 트랜잭션 데이터베이스 복제 기술(transactional database replication technique)이라는 것이다. 제2 특징은 그 기술이 소스 시스템(source system)의 트랜잭션 상태의 점진적 추적(incremental tracking)을 지원한다는 것이다. 이 기술의 제3 특징은 이 기술이 처음 2가지 특징을 만족시키면서 변경을 추적하기 위해 트리거(trigger)를 이용한다는 것이다.

Description

트랜잭션적으로 일관성있는 트리거 기반 데이터베이스 변경 추적 방법 및 시스템{TRANSACTIONALLY CONSISTENT CHANGE TRACKING FOR DATABASES}
본 발명은 일반적으로 데이터베이스 시스템 분야에 관한 것이다. 보다 상세하게는, 본 발명은 데이터베이스 시스템에서의 복제에 관한 것이다.
데이터베이스 복제(database replication)란 한 장소(소스 장소(source location))에 있는 데이터 테이블(data table)에 존재하는 데이터를 다른 장소(목적지 장소(destination location))에서 사용가능하도록 해주는 프로세스를 말한다. 구체적으로 말하면, 데이터베이스 복제란 시간이 지남에 따라 소스 테이블에 대한 변경이 일어날 때, 테이블들에 존재하는 목적지 데이터를 소스 테이블에 들어 있는 소스 데이터와 동기화되도록 해주는 프로세스를 말한다.
트랜잭션 데이터베이스(transactional database)란 데이터 변경을 트랜잭션이라고 하는 논리적 작업 단위로 지원하는 데이터베이스를 말한다. 트랜잭션은 커밋(commit)이라고 하는 메카니즘을 통해 변경을 지속시킨다. 커밋 이전에, 트랜잭션 데이터베이스의 다른 사용자는 데이터 변경을 볼 수 없다. 반대로, 트랜잭션은 커밋 이전에 일어나고 있는 진행 중인 변경을 롤백(rollback)이라고 하는 메카니즘을 통해 제거할 수 있다. 트랜잭션 데이터베이스에서 볼 수 있는 모든 데이터는 그 시점에 존재하는 논리적인 커밋된 데이터 상태(logical committed data state)를 나타낸다.
트랜잭션의 데이터 변경은 다수의 테이블에 영향을 줄 수 있으며, 테이블 그룹들 사이의 이러한 트랜잭션 일관성(transactional consistency)은 트랜잭션 데이터베이스의 중요한 속성이다. 즉, 트랜잭션을 사용함으로써 다수의 데이터베이스 테이블에 걸쳐 있는 상태 변경을 대등하게 할 수 있으며, 따라서 사용자의 견지에서 볼 때, 모든 테이블은 동시에 갱신된다. 데이터베이스 애플리케이션은 자신이 액세스하는 기초 데이터베이스 테이블의 트랜잭션 일관성을 신뢰하는 경우가 자주 있다.
트랜잭션 복제(transactional replication)란 목적지 데이터가 항상 소스 데이터의 명확한 커밋된 상태(distinct committed state)를 나타내도록 소스 시스템의 트랜잭션 상태를 보존하면서 소스로부터 목적지로 데이터 변경을 이동시키는 복제의 한 형태이다. 트랜잭션 복제에서는 목적지 테이블이 복제된 소스 테이블의 트랜잭션 일관성을 계속하여 반영하도록 보장한다. 이것은 변경을 소스로부터 목적지로 이동시키고 또 목적지 테이블의 상태가 소스 테이블로부터의 데이터의 특정의 트랜잭션 상태와 일치하도록 보장하지는 않는 방식으로 변경을 커밋하는 비트랜잭션 복제 시스템(non-transactional replication system)과 대조된다.
복제를 실제로 구현하는 데는 소스 테이블의 데이터 상태를 목적지 테이블과 동기화시키기 위한 효율적인 알고리즘이 필요하다. 가장 간단한 형태로서, 트랜잭션 복제는 데이터베이스간의 상태가 동기화될 때마다 복제된 데이터 세트 전부를 소스로부터 목적지로 이동시키기 위해 구현될 수 있다. 효율적인 트랜잭션 복제 구현은 종종 이러한 초기 상태의 완전한 동기화에서 시작하며, 계속하여 점진적인 소스 데이터베이스 데이터 변경을 추적하여 차후의 동기화 동안 단지 점진적갱신(incremental update)만을 목적지 데이터베이스로 전달한다.
데이터베이스 복제를 위해 데이터 변경을 추적하는 데 사용되는 알고리즘은 2가지 기본적인 분류, 즉 로그 기반 알고리즘(log based algorithm)과 트리거 기반 알고리즘(trigger based algorithm)으로 분류된다. 로그 기반 알고리즘은 소스 데이터베이스 변경이 일어날 때 소스 데이터베이스 트랜잭션 로그를 판독함으로써 그 변경을 추적한다. 데이터베이스 트랜잭션 로그는 데이터베이스에 일어났던 모든 변경을 포함하고, 그 변경에 커밋 시간(commit time)에 따라 순서를 매긴다. 데이터베이스 로그로부터의 판독에 기초한 복제 변경 추적을 구현하기 위한 알고리즘은 효율적이며 또한 소스 데이터베이스에서의 상태 변경을 모니터링하는 자연적 방법을 제공한다.
트리거 기반 알고리즘은 데이터베이스 복제 동안 소스 데이터베이스 상태 변경을 추적하는 대안 기술을 제공한다. 데이터베이스 트리거(database trigger)는 데이터베이스 내에서 일어나는 특정의 이벤트에 기초하여 실행될 수 있는 소프트웨어 코드의 단편이다. 상용 데이터베이스는 종종 테이블 데이터에 대한 삽입, 갱신 및 삭제를 위한 트리거링 이벤트(triggering event)를 제공한다. 변경 추적에 사용되는 복제 트리거(replication trigger)는 복제된 테이블 각각에서의 삽입, 갱신 또는 삭제가 트리거 코드를 실행되도록 하고 이에 뒤이어 일어났던 변경에 관한 정보를 저장하도록 구성되어 있다. 이 저장된 정보는 목적지 테이블의 상태가 소스 테이블의 상태를 반영하도록 목적지 테이블에 적용해야 하는 변경을 결정하기 위해 나중에 사용된다.
트리거 기반 알고리즘이 로그 기반 알고리즘보다 덜 효율적이지만, 변경 추적에 트리거를 사용하는 기술이 데이터베이스 로그로부터 변경을 추출하는 기능보다 데이터베이스 제품들에 걸쳐 널리 이용되고 있다. 게다가, 트리거는 데이터베이스 제품들에 걸쳐 로그 판독 기능에서보다 더 일관된 방식으로 구현된다. 복제를 위해 변경을 추적하는 데 트리거를 사용하는 것은 복제가 다수의 데이터베이스 플랫폼들(multiple database platforms)에 걸쳐 제공되는 경우 구현들 사이에 일관성을 제공할 수 있다. 복제 변경 추적을 위해 트리거를 사용하는 것의 종래의 단점은 트리거 기반 솔루션이 트랜잭션 복제를 지원하는 데 필요한 트랜잭션 특징을 유지시키는 데 어려움이 있다는 것이다. 본 발명은 종래 기술의 한계 및 단점을 극복한 것으로서 트랜잭션 복제 솔루션을 구현할 때의 트리거 기반 변경 추적 방법 및 시스템에 대한 것이다.
본 발명은 트랜잭션 복제 동안 소스 데이터와 목적지 데이터 간의 일관성을 유지하는 데 사용되는 변경 추적 시스템 및 방법에 관한 것이다. 본 발명에 따른 기능상의 특징은 그 기술이 트랜잭션 데이터베이스 복제 기술이라는 것이다. 다른 특징은 그 기술이 소스 시스템의 트랜잭션 상태의 점진적 추적(incremental tracking)을 지원한다는 것이다. 그 기술의 또다른 특징은 전술한 특징들을 만족시키면서 변경을 추적하는 데 트리거를 이용한다는 것이다.
본 발명의 부가적인 특징 및 이점은 첨부 도면을 참조하여 기술되어 있는 도시된 실시예에 대한 이하의 상세한 설명으로부터 분명해질 것이다.
이상의 개요는 물론 바람직한 실시예에 대한 이하의 상세한 설명은 첨부 도면을 참조하여 읽어보면 더 잘 이해될 것이다. 본 발명을 설명하기 위해, 도면에는 본 발명의 예시적인 구성이 도시되어 있지만, 본 발명이 개시된 특정 방법 및 수단에 한정되는 것은 아니다.
도 1은 본 발명의 특징들이 구현될 수 있는 예시적인 컴퓨팅 환경을 나타낸 블록도.
도 2는 도 3 내지 도 5의 프로세스의 예시적인 흐름을 나타낸 흐름도.
도 3은 본 발명에 따른 예시적인 변경 검출 프로세스의 흐름도.
도 4는 본 발명에 따라 검출된 변경을 일관성있는 세트(consistent set)로 그룹화하는 예시적인 프로세스의 흐름도.
도 5는 본 발명에 따라 일관성있는 세트와 관련된 변경을 목적지 데이터베이스에 적용하는 예시적인 프로세스의 흐름도.
도 6은 본 발명에 따라 바람직하게 사용되는 여러가지 예시적인 테이블을 나타낸 도면.
<도면의 주요 부분에 대한 부호의 설명>
110: 컴퓨터
120: 처리 장치
130: 시스템 메모리
121: 시스템 버스
개요
본 발명은 소스 데이터베이스에 일어나는 변경을 추적하여 그 결과 얻어진 변경문(change statement)을 한 세트의 목적지 테이블에 트랜잭션적으로 일관성있는 방식(transactionally consistent manner)으로 적용하는 효율적인 트리거 기반 메카니즘을 제공한다. 이하의 실시예들에 대한 보다 나은 설명을 위해, 다음과 같은 정의가 제공된다.
정의
한 그룹의 데이터베이스 테이블과 연관된 한 세트의 변경 중의 임의의 변경에 있어서, 그 테이블들과 연관되어 있고 또 주어진 변경과 동일한 트랜잭션에서 커밋된 다른 변경도 모두 그 세트에 있는 경우에, 그 한 세트의 변경은 그 테이블들에 관해트랜잭션적으로 일관성이 있다(transactionally consistent)고 말한다.
변경 추적 트리거(change tracking trigger)란 소스 테이블에 적용되는 트리거로서, 삽입, 갱신 또는 삭제 동작이 소스 테이블에 적용될 때 작동되는 트리거를 말한다. 이 트리거는 목적지 테이블에 변경을 적용하는 데 필요한 것인 변경에 관한 정보를 포착하는 일을 맡고 있다.
변경 추적 테이블(change tracking table)이란 변경 추적 트리거가 작동될 때 수집되는 변경된 데이터의 추상적 표현(abstract representation)을 저장하는 데 사용되는 테이블을 말한다.
일관성있는 세트 테이블(consistent set table)이란 변경 추적 테이블 내의 변경을 트랜잭션적으로 일관성있는 세트로 그룹화하는 데 사용되는 테이블을 말한다.
변경문(change statement)이란 데이터베이스 수정문으로서, 바람직하게는 SQL(Structured Query Language)이며, 소스 데이터베이스 변경을 목적지 데이터베이스에 적용하기 위해 목적지 데이터베이스에 대해 실행된다.
예시적인 컴퓨팅 장치
도 1은 본 발명이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(100)의 일례를 도시하고 있다. 컴퓨팅 시스템 환경(100)은 적절한 컴퓨팅 환경의 일례에 불과할 뿐이며 본 발명의 사용 또는 기능의 범위에 관해 어떤 제한을 두고자 하는 것이 아니다. 또한, 컴퓨팅 환경(100)이 예시적인 운영 환경(100)에 도시된 컴포넌트들 중의 임의의 하나 또는 그 조합에 관하여 어떤 종속성(dependency) 또는 요건(requirement)을 갖춰야 하는 것으로 해석되어서도 안된다.
본 발명은 많은 다른 범용 또는 전용 컴퓨팅 시스템 환경들 또는 구성들과 함께 동작될 수 있다. 본 발명과 함께 사용하기에 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경, 및/또는 구성의 예로는, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드(hand-held) 또는 랩탑 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 셋탑 박스(set top box), 프로그램가능한 가전제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기의 시스템 또는 장치 중의 임의의 것을 포함하는 분산 컴퓨팅 환경 등이 포함될 수 있지만, 이에 한정되지 않는다.
본 발명은 일반적으로 컴퓨터에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터 실행가능 명령어의 일반적인 컨텍스트로 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 작업을 수행하거나 특정 추상 데이터 유형(abstract data type)을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 아키텍쳐 등을 포함한다. 본 발명은 또한 통신 네트워크 또는 다른 데이터 전송 매체를 통해 링크된 원격 처리 장치에 의해 작업을 수행하는 분산 컴퓨팅 환경에서 실행될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈 및 그외 데이터는 메모리 저장 장치를 포함하는 로컬 및 원격 컴퓨터 저장 매체 내에 위치할 수 있다.
도 1을 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터(110)의 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들로는, 처리 장치(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 여러 시스템 컴포넌트를 처리 장치(120)에 연결시키는 시스템 버스(121)가 포함될 수 있지만, 이에 한정되는 것은 아니다. 시스템 버스(121)는 여러 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스, 주변 버스, 및 메모리 버스 또는 메모리 컨트롤러를 포함하는 몇가지 유형의 버스 아키텍쳐 중의 임의의 것일 수 있다. 예로서, 이러한 아키텍처는 산업 표준 아키텍처(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, 확장ISA(Enhanced ISA; EISA) 버스, 비디오 일렉트로닉스 표준 어소시에이션(VESA) 로컬 버스, 및 주변 컴포넌트 상호접속(PCI) 버스(메자닌(Mezzanine) 버스라고도 하는)를 포함하지만, 이에 한정되는 것은 아니다.
컴퓨터(110)는 일반적으로 여러 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 이동식(removable) 및 이동불가식(non-removable) 매체를 둘다 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 아키텍쳐, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 이동불가식 매체를 모두 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터(110)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다. 통신 매체는 일반적으로 반송파 또는 기타 전송 메카니즘 등의 피변조 데이터 신호에 컴퓨터 판독가능 명령, 데이터 아키텍쳐, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "피변조 데이터 신호(modulated data signal)"라는 용어는 신호 내에 정보를 인코딩하도록 그 신호의 특성 중 하나 이상이 설정되거나 변환된 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속(direct-wired connection) 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들의 모든 조합은 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(130)는 ROM(131) 및 RAM(132) 등의 휘발성 및/또는 비휘발성 메모리의 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에 컴퓨터(110) 내의 구성요소들간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(BIOS)(133)은 일반적으로 ROM(131)에 저장된다. RAM(132)은 일반적으로 처리 장치(120)에 의해 즉시 액세스될 수 있는 것 및/또는 처리 장치(120)에 의해 현재 작동되고 있는 프로그램 모듈 및/또는 데이터를 포함한다. 예로서, 도 1에는 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)가 도시되어 있지만, 이에 한정되는 것은 아니다.
컴퓨터(110)는 또한 다른 이동식/이동불가식, 휘발성/비휘발성 컴퓨터 저장 매체도 포함할 수 있다. 단지 예로서, 도 1에는 이동불가식/비휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(141), 이동식/비휘발성 자기 디스크(152)로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(151), 및 CD-ROM 또는 기타 광학 매체 등의 이동식/비휘발성 광학 디스크(156)로부터 판독하거나 그 광학 디스크에 기록하는 광학 디스크 드라이브(155)가 도시되어 있다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/이동불가식, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카드, DVD(Digital versatile disk), 디지털 비디오 테이프, 반도체 RAM, 반도체 ROM 등을 포함하지만 이에 한정되지 않는다. 하드 디스크 드라이브(141)는 일반적으로 인터페이스(140)와 같은 이동불가식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광학 디스크 드라이브(155)는 일반적으로 인터페이스(150)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
앞서 기술되고 도 1에 도시된 드라이브 및 그 관련 컴퓨터 저장 매체는 컴퓨터(110)에 컴퓨터 판독가능 명령, 데이터 아키텍쳐, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 이들 컴포넌트는 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일한 것이거나 그와 다른 것일 수 있음에 유의한다. 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)는 최소한 이들이 서로 다른 복사본(different copies)임을 나타내기 위하여 다른 번호를 부여하였다. 사용자는 일반적으로 마우스, 트랙볼, 또는 터치 패드라 불리우는 포인팅 장치(161) 및 키보드(162)와 같은 입력 장치를 통해 컴퓨터 시스템(110)에 명령 및 정보를 입력할 수 있다. 기타 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등이 있을 수 있다. 이들 입력 장치 및 기타 입력 장치는 시스템 버스에 연결된 사용자 입력 인터페이스(160)를 통해 종종 처리장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 유니버설 시리얼 포트(USB)와 같은 기타 인터페이스 및 버스 아키텍쳐에 의해 접속될 수도 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 또한 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속된다. 모니터 외에도, 컴퓨터는 또한 출력 주변 인터페이스(195)를 통해 접속될 수 있는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치도 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용하여 네트워크화된 환경에서 동작될 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어(peer) 장치, 또는 다른 공통 네트워크 노드일 수 있으며, 컴퓨터(110)에 관하여 상술한 구성요소 중 다수 또는 그 모두를 일반적으로 포함할 수 있지만, 도 1에는 메모리 저장 장치(181)만이 도시되어 있다. 도시된 논리적 접속은 LAN(171) 및 WAN(173)을 포함하지만, 그 외의 네트워크도 포함할 수 있다. 이러한 네트워킹 환경은 사무실, 기업 규모의 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용되는 경우, 컴퓨터(110)는 일반적으로 인터넷 등의 WAN(173)상에서의 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메카니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워크화된 환경에서, 컴퓨터(110)에 관하여 도시된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 1에서는 원격 애플리케이션 프로그램(185)이 메모리 장치(181)에 상주하는 것으로 도시되어 있지만, 이에 한정되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 외의 수단이 사용될 수 있음을 잘 알 것이다.
예시적인 분산 컴퓨팅 프레임워크 또는 아키텍처
다양한 분산 컴퓨팅 프레임워크(distributed computing network)는 퍼스널 컴퓨팅과 인터넷의 융합(convergence)의 관점에서 개발되어 왔으며 개발 중에 있다. 개인 및 기업 사용자 모두는 애플리케이션 및 컴퓨팅 장치에 대한 원활한 상호 연동성이 있는 웹 지원 인터페이스(seamlessly interoperable and web-enabled interface)를 제공받게 되어, 컴퓨팅 활동이 점점 웹 브라우저 지향적 또는 네트워크 지향적으로 되고 있다.
예를 들어, MICROSOFT의 .NET 플랫폼은 서버, 웹-기반 데이터 저장 및 다운로드 가능한 장치 소프트웨어와 같은 빌딩-블록 서비스를 포함한다. 일반적으로, .NET 플랫폼은 (1) 전 기종의 컴퓨팅 장치들이 작업을 함께 수행하도록 하며 또 사용자 정보가 자동적으로 업데이트되어 그 장치들 모두에서 동기화되도록 하는 기능, (2) HTML보다는 XML을 더 많이 사용함으로 인해 가능하게 된, 웹 사이트의 대화 기능 향상, (3) Office.NET와 같은 소프트웨어 또는 예를 들어 이메일 등의 다양한 애플리케이션의 관리를 위하여, 중앙 시작점(central starting point)으로부터 사용자에게로의 제품 및 서비스의 맞춤화된(customized) 액세스 및 전달을 특징으로 하는 온라인 서비스, (4) 사용자와 장치간의 정보의 동기화 뿐만 아니라 정보 액세스의 효율성과 용이성을 증가시키게 될 중앙 집중식 데이터 저장, (5) 이메일, 팩스, 및 전화 등과 같은 다양한 통신 매체를 통합하는 기능, (6) 개발자에 대하여, 재사용가능한 모듈을 생성하여 생산성을 향상시키고 프로그래밍 에러의 수를 감소시키는 기능, 및 (7) 많은 기타 플랫폼간 통합 기능도 제공한다.
본 명세서의 예시적인 실시예는 컴퓨팅 장치 상에 상주하는 소프트웨어와 관련하여 기재되지만, 본 발명의 하나 이상의 부분은, 운영 체제, 애플리케이션 프로그래밍 인터페이스(API) 또는 서비스가 모든 .NET의 언어 및 서비스에 의해 수행될 수 있거나, 지원될 수 있거나, 이를 통해 액세스될 수 있도록 하는 코프로세서(coprocessor)와 요구 오브젝트(request object) 사이의 "미들 맨(middle man)" 오브젝트를 통해 구현될 수 있을 뿐 아니라, 기타 분산 컴퓨팅 프레임워크에서도 구현될 수 있다.
예시적인 실시예
본 발명에 관련되어 있는 바와 같이, 변경 추적 프로세스는 중요한 소스 테이블에서의 데이터에 대한 변경을 모니터링하고, 그 변경에 관한 정보를 포착하며, 그 포착된 변경 데이터를 차후에 목적지 테이블을 갱신하기 위해 사용되는 일관성있는 세트로 그룹화한다. 본 발명의 예시적인 추적 메카니즘은 목적지에 트랜잭션적으로 일관성있는 복사본(transactionally consistent copy)을 효율적으로 유지한다.
도 2는 도 3 내지 도 5의 프로세스의 예시적인 흐름을 나타낸 흐름도이다. 특정의 경우에 도 3의 프로세스에 뒤이어 도 4 및 도 5의 프로세스가 차례로 오기도 하지만, 이들 프로세스 각각은 바람직하게는 나머지 프로세스에 대해 비동기적으로 수행된다.
도 6은 본 발명에 따라 바람직하게 사용되는 여러가지 예시적인 테이블을 나타낸 도면이다. 도 6에는 2개의 소스 테이블(300, 350), 2개의 변경 추적 테이블(400, 450), 일관성있는 변경의 그룹을 식별하기 위한 일관성있는 세트 테이블(500) 및 목적지 테이블(600, 650)이 도시되어 있다. 임의의 수의 소스 테이블, 변경 추적 테이블, 일관성있는 세트 테이블 및 목적지 테이블이 본 발명에 따라 사용될 수 있다.
도 3은 본 발명에 따른 예시적인 변경 포착 프로세스의 흐름도이다. 셋업 동안, 트랜잭션적으로 일관성있는 방식으로 복제되어야 할 소스 테이블이 식별되고, 각 소스 테이블마다 하나의 변경 추적 테이블이 생성된다. 변경 추적 테이블은 그와 관련된 소스 테이블의 행(row)에서 발생하는 이벤트 동작(예를 들면, 삽입, 갱신 및 삭제 동작)에 관한 상세사항을 기록하는데 사용된다. 변경 추적 트리거는 변경 검출 프로세스(change detection process)를 구현하는 데 사용된다. 트리거 코드는 각 소스 테이블과 관련되어 있으며, 삽입, 갱신 또는 삭제 동작 등의 이벤트가 소스 테이블 내의 행에서 발생할 때 실행된다.
도 6에서, 추적 트리거(302, 352)는 소스 테이블(300, 350)에 적용되는 것이다. 이들 트리거는 테이블에서의 변경 데이터(402, 452)를 포착하여 그 데이터를400, 450으로 나타낸 적절한 추적 테이블에 저장하는 데 사용된다. 바람직하게는, 게시된 테이블마다 하나의 추적 테이블이 있다. 유의할 점은 변경 추적 테이블이 바람직하게도 그와 관련된 소스 테이블에서 발생하는 변경만을 반영한다는 것이다. 따라서, 트리거(302, 352)는 바람직하게 각각의 게시된 테이블(300, 350)에 위치하고 있으며 변경 정보(402, 452)를 변경 추적 테이블(400, 450)에 기록하는 데 사용된다.
도 3의 단계 210에서, 데이터가 변경되는 (예를 들어, 삽입, 갱신, 또는 삭제가 소스 테이블에 적용되는) 이벤트가 발생하고, 그에 따라 단계 220에서 소스 테이블과 관련된 변경 추적 트리거(예를 들면, 도 6의 트리거(302, 352))가 실행된다. 순서 식별자(sequential identifier)가 단계 230에서 생성되고, 이것은 이후의 프로세싱이 다른 변경에 대해 이 변경의 순서를 부여할 수 있도록 해 준다. 바람직하게는, 생성된 식별자는 단순히 단조롭게 증가하는(strictly monotonically increasing) 숫자이다. 단계 240에서, 순서 식별자 및 이벤트 데이터(예를 들면, 402)는 소스 테이블(예를 들면, 300)과 관련된 변경 추적 테이블(예를 들면, 400)에 저장된다. 구체적으로 말하면, 변경 추적 트리거에 의해 변경 추적 테이블에 저장되는 이벤트 데이터(402, 452)의 각 행은 관련된 순서 식별자(예를 들면, 순서 ID(404))를 갖는다.
트리거에 의해 포착된 이벤트 데이터는, 목적지 데이터베이스에 적용될 때 목적지 테이블을 소스 테이블과 동일한 상태로 만들어주는 데이터베이스문(database statement)을 작성하는 데 필요한 데이터를 포함한다.삽입 동작의 경우, 바람직하게는 새로운 열(column) 값이 그의 동작 유형(삽입) 및 순서 식별자와 함께 변경 추적 테이블에 입력된다. 삭제 동작의 경우, 바람직하게는 이전의 열 값이 그의 동작 유형(삭제) 및 순서 식별자와 함께 변경 추적 테이블에 입력된다. 갱신 동작의 경우, 바람직하게는 이전의 열 값과 새로운 열 값 모두가 그의 동작 유형(갱신) 및 순서 식별자와 함께 변경 추적 테이블에 입력된다.
도 4는 본 발명에 따라 변경을 일관성있는 세트로 그룹화하는 예시적인 프로세스의 흐름도이다. 셋업 동안, 일관성있는 세트 테이블(consistent set table)이 생성된다. 일관성있는 세트 테이블(500)은 변경 추적 테이블(400, 450) 내의 엔트리를 소스 데이터베이스 상에서의 트랜잭션 시점과 연관하여 특정의 일관성있는 변경 세트에 관련시키는 데 사용된다. 일관성있는 세트는 함께 그룹을 이루어 목적지 데이터베이스에 하나의 트랜잭션으로서 적용되어질 변경 추적 테이블 내의 변경들을 정의한다. 단계 310에서는, 일관성있는 세트에 대한 순서 식별자가 획득되고, 이 식별자는 그 세트가 목적지 테이블에 적용될 때 그 세트에 순서를 부여하는 데 사용된다. 단계 320에서, 변경 추적 테이블 내의 엔트리는 이 세트 식별자(set identifier)와 관련시킬 일관성있는 변경 세트를 획득하기 위해 그룹화된다. 단계 330에서, 특정의 변경이 이 일관성있는 세트에 속하는 것임을 식별해주는 정보가 일관성있는 세트 테이블에 저장된다.
일관성있는 세트를 식별할 때, 이전에 세트에 할당되지 않았던 모든 커밋된 추적 테이블 엔트리에 대해 각 행의 식별자가 획득된다. 행 식별자(row identifier)는 세트 식별자와 함께 일관성있는 세트 테이블(500)에 저장된다.
도 5는 본 발명에 따라 일관성있는 세트와 관련된 변경을 목적지 테이블에 적용하는 예시적인 프로세스의 흐름도이다. 이 예시적인 프로세스는 변경 추적 테이블로부터 변경을 추출하고 이를 사용하여 목적지 데이터베이스의 상태를 변경할 때 사용되는 변경문을 생성한다. 동일한 세트 식별자와 관련된 변경문은 바람직하게는 목적지에서 단일 트랜잭션으로 커밋되어, 트랜잭션 일관성이 유지될 수 있게 된다.
도 5를 참조하면, 단계 410에서, 일관성있는 세트 테이블에 질의를 하여 처리할 그 다음 세트 식별자를 결정한다. 단계 420에서, 각 소스 테이블과 관련된 변경 추적 테이블에 질의를 하여 이 세트 식별자를 갖는 일관성있는 세트 테이블에 관한 변경을 검색한다. 변경 추적 테이블 내의 각각의 선택된 엔트리에 대해, 단계 430에서 적절한 변경문이 생성되어 관련된 목적지 테이블(도 6의 600, 650)에 적용된다. 바람직하게는, 이어서 목적지 테이블에 만들어진 모든 엔트리가 커밋된다. 이 프로세스 동안, 도 6에서 항목 302 및 352로 표시된 트리거는 차후의 세트의 요소로서 나중에 처리될 데이터를 변경 추적 테이블(400, 450)에 계속하여 저장한다.
도 5의 단계 430에서는, 변경에 순서를 부여하는 도 6의 변경 추적 테이블(400, 450) 내의 엔트리로부터의 순서 식별자를 사용하여, 일관성있는 세트와 관련된 변경문이 목적지 테이블에 적용된다. 차후의 일관성있는 세트가 세트 ID(도 6의 502)의 순서대로 목적지에 적용된다. 주어진 세트에 대해 변경이 추출되고 있는 동안 새로운 엔트리가 변경 추적 테이블에 나타나는 경우, 이 새로운 엔트리는 현재의 세트 식별자를 갖는 일관성있는 세트 테이블(500)에는 나타나지 않으며, 따라서 현재의 세트의 일부로서 추출되지 않는다.
요약하면, 변경을 목적지에서 단일 트랜잭션 내에 적용되는 일관성있는 변경 세트로 그룹화함으로써, 소스 데이터베이스의 어떤 시점에 관한 트랜잭션 일관성이 목적지 데이터베이스에서 유지된다.
전술한 바와 같이, 본 발명의 예시적인 실시예가 여러가지 컴퓨팅 장치 및 아키텍처와 연계하여 기술되어 있지만, 기초 개념은 복제를 제공하는 것이 바람직한 임의의 컴퓨팅 장치 또는 시스템에 적용될 수 있다. 따라서, 본 발명에 따른 복제 기술은 각종 애플리케이션 및 장치에 적용될 수 있다. 예시적인 프로그래밍 언어, 이름 및 일례가 본 명세서에서 여러가지 선택 사항을 나타내는 것으로 선택되어 있지만, 이들 언어, 이름 및 일례는 제한하고자 의도된 것이 아니다.
본 명세서에 기술된 각종 기술은 하드웨어 또는 소프트웨어와 연계하거나, 적절한 경우에는 이 둘의 결합과 연계하여 구현될 수 있다. 따라서, 본 발명의 방법 및 장치, 또는 그의 어떤 측면 또는 일부분은 플로피 디스켓, CD-ROM, 하드 드라이브 또는 임의의 기타 기계 판독가능한 저장 매체 등의 유형 매체에 구현된 프로그램 코드(즉, 명령어)의 형태를 가질 수 있으며, 이 프로그램 코드가 컴퓨터 등의 기계로 로드되어 그에 의해 실행되면, 그 기계는 본 발명을 실시하는 장치가 된다. 프로그램가능한 컴퓨터 상에서 프로그램 코드를 실행하는 경우, 컴퓨팅 장치는 일반적으로 프로세서, 프로세서에 의해 판독가능한 저장 매체(휘발성 및 비휘발성 메모리 및/또는 기억 소자를 포함함), 적어도 하나의 입력 장치 및 적어도 하나의 출력 장치를 포함한다. 게다가, 본 발명과 연계하여 사용되는 임의의 저장 기술이 항상 하드웨어와 소프트웨어의 결합일 수 있다.
본 발명이 여러 도면의 바람직한 실시예와 연계하여 기술되어 있지만, 본 발명에서 벗어나지 않고 본 발명의 동일한 기능을 수행하기 위해 다른 유사한 실시예가 사용되거나 기술된 실시예에 변경 및 부가가 행해질 수 있음을 이해할 것이다. 게다가, 특히 무선 네트워크된 장치의 수가 계속하여 급격히 증가하고 있기 때문에, 핸드헬드 장치 운영 체제 및 기타 애플리케이션 특정 운영 체제를 비롯한 각종 컴퓨터 플랫폼도 계획되고 있음이 강조되어야 한다. 더욱이, 본 발명은 복수의 프로세싱 칩 또는 장치에서, 또는 이들에 걸쳐 구현될 수 있으며, 이와 마찬가지로 저장도 복수의 장치에 걸쳐 시행될 수 있다. 따라서, 본 발명은 어떤 하나의 실시예에 한정되어서는 안되며, 그 폭 및 범위는 첨부된 청구항들에 따라 해석되어야만 한다.

Claims (22)

  1. 트랜잭션적으로 일관성있는 테이블 그룹을 목적지 데이터베이스에 유지시키는 방법으로서,
    소스 데이터베이스로부터 복수의 변경을 포착하는 단계,
    상기 변경을 적어도 하나의 일관성있는 세트(consistent set)로 그룹화하는 단계, 및
    적어도 하나의 일관성있는 변경 세트를 상기 목적지 데이터베이스에 적용하는 단계를 포함하는 방법.
  2. 제1항에 있어서, 상기 복수의 변경을 포착하는 상기 단계는, 복수의 이벤트 각각에 대해,
    데이터베이스 이벤트를 인식하는 단계,
    상기 이벤트에 응답하여 트리거를 작동시키는 단계,
    상기 이벤트에 대한 식별 번호를 생성하는 단계, 및
    상기 이벤트 및 상기 식별 번호와 관련된 데이터를 변경 추적 테이블(change tracking table)에 변경으로서 저장하는 단계를 포함하는 것인 방법.
  3. 제2항에 있어서, 상기 변경을 그룹화하는 상기 단계는,
    상기 복수의 일관성있는 변경 세트를 식별하는 단계, 및
    상기 일관성있는 세트를 복원하기 위한 정보를 일관성있는 세트 테이블(consistent set table)에 저장하는 단계를 포함하는 것인 방법.
  4. 제1항에 있어서, 각각의 일관성있는 세트는 상기 복수의 변경의 일부분을 포함하고,
    상기 일부분 중의 각 변경에 대해, 동일한 트랜잭션에서 커밋된 소스 테이블에 대한 모든 다른 변경도 상기 일관성있는 세트에 있는 것인 방법.
  5. 제1항에 있어서, 상기 목적지 데이터베이스에 변경문을 적용하는 상기 단계는,
    일관성있는 세트의 멤버에 기초하여 변경 추적 테이블로부터 한 세트의 변경을 추출하는 단계, 및
    상기 한 세트의 변경을 한번의 트랜잭션으로 상기 목적지 데이터베이스에 적용하는 단계를 포함하는 것인 방법.
  6. 제1항에 있어서, 상기 포착 단계, 그룹화 단계 및 적용하는 단계는 비동기적인 것인 방법.
  7. 제1항에 있어서, 각 변경은 이벤트에 대응하고, 상기 이벤트는 소스 데이터베이스 내의 데이터에 대한 삽입, 갱신 및 삭제 중 하나인 것인 방법.
  8. 트랜잭션적으로 일관성있는 목적지 테이블 세트를 목적지 데이터베이스에 유지시키는 방법을 수행하는 컴퓨터 실행가능 명령어를 저장하고 있는 컴퓨터 판독가능 매체에 있어서, 상기 방법은,
    소스 데이터베이스로부터 복수의 변경을 포착하는 단계,
    상기 변경을 적어도 하나의 일관성있는 세트로 그룹화하는 단계, 및
    적어도 하나의 일관성있는 변경 세트를 상기 목적지 데이터베이스에 적용하는 단계를 포함하는 것인 컴퓨터 판독가능 매체.
  9. 제8항에 있어서, 상기 복수의 변경을 포착하는 상기 단계는, 복수의 이벤트 각각에 대해,
    데이터베이스 이벤트를 인식하는 단계,
    상기 이벤트에 응답하여 트리거를 작동시키는 단계,
    상기 이벤트에 대한 식별 번호를 생성하는 단계, 및
    상기 이벤트 및 상기 식별 번호와 관련된 데이터를 변경 추적 테이블에 변경으로서 저장하는 단계를 포함하는 것인 컴퓨터 판독가능 매체.
  10. 제9항에 있어서, 상기 변경을 그룹화하는 단계는,
    상기 복수의 일관성있는 변경 세트를 식별하는 단계, 및
    상기 일관성있는 세트를 복원하기 위한 정보를 일관성있는 세트 테이블에 저장하는 단계를 포함하는 것인 컴퓨터 판독가능 매체.
  11. 제8항에 있어서, 각각의 일관성있는 세트는 상기 복수의 변경의 일부분을 포함하고,
    상기 일부분 중의 각 변경에 대해, 동일한 트랜잭션에서 커밋된 소스 테이블에 대한 모든 다른 변경도 상기 일관성있는 세트에 있는 것인 컴퓨터 판독가능 매체.
  12. 제8항에 있어서, 상기 목적지 데이터베이스에 변경문을 적용하는 상기 단계는,
    일관성있는 세트의 멤버에 기초하여 변경 추적 테이블로부터 한 세트의 변경을 추출하는 단계, 및
    상기 한 세트의 변경을 한번의 트랜잭션으로 상기 목적지 데이터베이스에 적용하는 단계를 포함하는 것인 컴퓨터 판독가능 매체.
  13. 제8항에 있어서, 상기 포착 단계, 그룹화 단계 및 적용하는 단계는 비동기적인 것인 컴퓨터 판독가능 매체.
  14. 제8항에 있어서, 각 변경은 이벤트에 대응하고, 상기 이벤트는 소스 데이터베이스 내의 데이터에 대한 삽입, 갱신 및 삭제 중 하나인 것인 컴퓨터 판독가능매체.
  15. 소스 데이터베이스 내의 소스 테이블과 목적지 데이터베이스 내의 목적지 테이블 사이의 트랜잭션 일관성을 유지시키는 시스템에 있어서,
    그 각각이 상기 소스 데이터베이스와 관련되어 있는, 이벤트에 응답하여 실행되는 관련 트리거를 갖는 적어도 하나의 소스 테이블,
    상기 변경 이벤트에 관한 데이터를 기록하는 적어도 하나의 변경 추적 테이블(change tracking table), 및
    적어도 하나의 변경 추적 테이블의 엔트리를 순서가 매겨진 적어도 하나의 일관성있는 세트로 그룹화하는 일관성있는 세트 테이블(consistent set table)을 포함하는 시스템.
  16. 제15항에 있어서, 상기 소스 테이블 각각은 적어도 하나의 대응하는 변경 추적 테이블을 갖는 구비하는 시스템.
  17. 제15항에 있어서, 상기 변경 추적 테이블은 상기 트리거 실행에 응답하여 상기 이벤트에 관한 데이터 및 상기 이벤트에 대한 식별 번호로 채워지는 것인 시스템.
  18. 제17항에 있어서, 상기 엔트리들은 일관성있는 변경 세트로 그룹화되는 것인시스템.
  19. 제15항에 있어서, 변경에 대응하는 복수의 이벤트에 대해, 각각의 일관성있는 세트는 상기 복수의 변경의 일부분을 포함하고,
    상기 일부분 중의 각 변경에 대해, 동일한 트랜잭션에서 커밋된 소스 테이블에 대한 모든 다른 변경도 상기 일부분에 있는 것인 시스템.
  20. 제15항에 있어서, 상기 변경 추적 테이블은 상기 목적지 데이터베이스에 적용될 적어도 하나의 변경을 포함하는 것인 시스템.
  21. 제15항에 있어서, 상기 일관성있는 세트 테이블을 통해 식별된 일관성있는 변경 세트의 멤버에 기초하여 상기 변경 추적 테이블로부터 데이터가 추출되는 것인 시스템.
  22. 제21항에 있어서, 한 세트의 추출된 변경이 한번의 트랜잭션으로 상기 목적지 데이터베이스에 적용되는 것인 시스템.
KR1020040022572A 2003-04-01 2004-04-01 트랜잭션적으로 일관성있는 트리거 기반 데이터베이스변경 추적 방법 및 시스템 KR20040088397A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/404,229 US20040199552A1 (en) 2003-04-01 2003-04-01 Transactionally consistent change tracking for databases
US10/404,229 2003-04-01

Publications (1)

Publication Number Publication Date
KR20040088397A true KR20040088397A (ko) 2004-10-16

Family

ID=32850586

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040022572A KR20040088397A (ko) 2003-04-01 2004-04-01 트랜잭션적으로 일관성있는 트리거 기반 데이터베이스변경 추적 방법 및 시스템

Country Status (5)

Country Link
US (1) US20040199552A1 (ko)
EP (1) EP1465085A3 (ko)
JP (1) JP2005301329A (ko)
KR (1) KR20040088397A (ko)
CN (1) CN100386736C (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100789771B1 (ko) * 2005-12-08 2007-12-28 한국전자통신연구원 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합질의 처리 시스템 및 그 방법
KR100926880B1 (ko) * 2007-05-21 2009-11-16 엔에이치엔(주) Dbms에서의 데이터 복제 방법 및 시스템
KR101014524B1 (ko) * 2008-09-22 2011-02-14 콘티넨탈 오토모티브 시스템 주식회사 데이터 일관성을 유지하는 임베디드 시스템의 데이터 리드 방법
KR101024494B1 (ko) * 2008-07-18 2011-03-31 (주)디에프아이비즈 메타데이타를 이용한 변경 데이타 추출방법
WO2014051348A2 (ko) * 2012-09-28 2014-04-03 삼성에스디에스 주식회사 데이터 객체 변환 장치 및 방법
WO2018093094A1 (ko) * 2016-11-16 2018-05-24 주식회사 실크로드소프트 데이터베이스 관리 시스템에서의 데이터 복제 기법
CN113412482A (zh) * 2018-12-07 2021-09-17 斯诺弗雷克公司 变化跟踪数据的事务流

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589346B2 (en) 2011-04-26 2013-11-19 Oracle International Corporation Techniques for combining statement level, procedural, and row level replication
US8738568B2 (en) * 2011-05-05 2014-05-27 Oracle International Corporation User-defined parallelization in transactional replication of in-memory database
US7155633B2 (en) * 2003-12-08 2006-12-26 Solid Data Systems, Inc. Exchange server method and system
US20070162516A1 (en) * 2005-12-30 2007-07-12 Microsoft Corporation Computing asynchronous transaction log replication progress based on file change notifications
EP1811404A1 (de) * 2006-01-20 2007-07-25 Ubs Ag Technik zum Beliefern eines Data Warehouse unter Gewährleistung einer konsistenten Datensicht
US7730538B2 (en) * 2006-06-02 2010-06-01 Microsoft Corporation Combining virus checking and replication filtration
US7685189B2 (en) * 2006-12-27 2010-03-23 Microsoft Corporation Optimizing backup and recovery utilizing change tracking
US7801867B2 (en) * 2006-12-27 2010-09-21 Microsoft Corporation Optimizing backup and recovery utilizing change tracking
JP5020005B2 (ja) * 2007-09-06 2012-09-05 三洋電機株式会社 放送信号受信装置
US7483922B1 (en) 2007-11-07 2009-01-27 International Business Machines Corporation Methods and computer program products for transaction consistent content replication
US8306951B2 (en) 2009-09-18 2012-11-06 Oracle International Corporation Automated integrated high availability of the in-memory database cache and the backend enterprise database
US20110082832A1 (en) * 2009-10-05 2011-04-07 Ramkumar Vadali Parallelized backup and restore process and system
US20110258160A1 (en) * 2010-04-15 2011-10-20 Po-Yen Lee Data synchronization methods for synchronizing data in communication system and communication systems
US8738583B2 (en) * 2011-02-09 2014-05-27 Cisco Technology, Inc. Efficiently delivering event messages using compiled indexing and paginated reporting
US9128974B2 (en) * 2011-07-19 2015-09-08 Infosys Limited Methods for tracking database changes and devices thereof
US8521699B2 (en) * 2011-09-13 2013-08-27 Microsoft Corporation Tracking changes across collection of data tables
US8818947B2 (en) 2011-11-16 2014-08-26 Sap Ag Landscape transformation replication server
US9589041B2 (en) 2013-07-25 2017-03-07 Oracle International Corporation Client and server integration for replicating data
US10311154B2 (en) 2013-09-21 2019-06-04 Oracle International Corporation Combined row and columnar storage for in-memory databases for OLTP and analytics workloads
CN105718491A (zh) 2014-12-04 2016-06-29 阿里巴巴集团控股有限公司 数据库之间更新的方法及其装置
US9864816B2 (en) 2015-04-29 2018-01-09 Oracle International Corporation Dynamically updating data guide for hierarchical data objects
US11829349B2 (en) 2015-05-11 2023-11-28 Oracle International Corporation Direct-connect functionality in a distributed database grid
US10191944B2 (en) 2015-10-23 2019-01-29 Oracle International Corporation Columnar data arrangement for semi-structured data
US20170235770A1 (en) * 2016-02-17 2017-08-17 International Business Machines Corporation Method for restoring containers in a database based on priorities of the containers
US11442823B2 (en) 2016-06-03 2022-09-13 International Business Machines Corporation Transaction consistency query support for replicated data from recovery log to external data stores
US10216582B2 (en) 2016-08-15 2019-02-26 International Business Machines Corporation Recovery log analytics with a big data management platform
GB201704973D0 (en) * 2017-03-28 2017-05-10 Gb Gas Holdings Ltd Data replication system
US10803039B2 (en) 2017-05-26 2020-10-13 Oracle International Corporation Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index
US10719446B2 (en) 2017-08-31 2020-07-21 Oracle International Corporation Directly mapped buffer cache on non-volatile memory
US10802766B2 (en) 2017-09-29 2020-10-13 Oracle International Corporation Database with NVDIMM as persistent storage
US11086876B2 (en) 2017-09-29 2021-08-10 Oracle International Corporation Storing derived summaries on persistent memory of a storage device
US10956335B2 (en) 2017-09-29 2021-03-23 Oracle International Corporation Non-volatile cache access using RDMA
US10732836B2 (en) 2017-09-29 2020-08-04 Oracle International Corporation Remote one-sided persistent writes
US11675761B2 (en) 2017-09-30 2023-06-13 Oracle International Corporation Performing in-memory columnar analytic queries on externally resident data
US11932293B2 (en) * 2017-11-14 2024-03-19 Kawasaki Railcar Manufacturing Co., Ltd. Car monitoring system
US11151111B2 (en) * 2017-11-30 2021-10-19 Futurewei Technologies, Inc. Redistributing table data in a database cluster
US11170002B2 (en) 2018-10-19 2021-11-09 Oracle International Corporation Integrating Kafka data-in-motion with data-at-rest tables
US11347714B2 (en) * 2018-11-06 2022-05-31 Snowflake Inc. Tracking changes in database data
US11886439B1 (en) * 2019-08-27 2024-01-30 Amazon Technologies, Inc. Asynchronous change data capture for direct external transmission
US20220014598A1 (en) * 2020-07-09 2022-01-13 Ge Aviation Systems Llc Data service tracker module for a communication system and method of determining a set of data couplings
KR102271486B1 (ko) * 2020-10-13 2021-07-02 (주)소만사 데이터베이스에 저장된 개인정보의 보유현황 관리방법 및 장치
US11704327B2 (en) 2021-03-19 2023-07-18 International Business Machines Corporation Querying distributed databases
US11727022B2 (en) * 2021-03-19 2023-08-15 International Business Machines Corporation Generating a global delta in distributed databases
US11853319B1 (en) 2021-03-25 2023-12-26 Amazon Technologies, Inc. Caching updates appended to an immutable log for handling reads to the immutable log
US11803324B2 (en) 2021-12-10 2023-10-31 Nxp B.V. System and method for managing transactions in integrated circuits

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US5613113A (en) * 1993-10-08 1997-03-18 International Business Machines Corporation Consistent recreation of events from activity logs
US5553279A (en) * 1993-10-08 1996-09-03 International Business Machines Corporation Lossless distribution of time series data in a relational data base network
US5590181A (en) * 1993-10-15 1996-12-31 Link Usa Corporation Call-processing system and method
US5758150A (en) * 1995-10-06 1998-05-26 Tele-Communications, Inc. System and method for database synchronization
US5926819A (en) * 1997-05-30 1999-07-20 Oracle Corporation In-line triggers
SE510050C2 (sv) * 1997-07-21 1999-04-12 Ericsson Telefon Ab L M Metod för insamlande av logginformation vid förändring av databas
US6125360A (en) * 1998-07-02 2000-09-26 Oracle Corporation Incremental maintenance of materialized views containing one-to-N lossless joins
US6925476B1 (en) * 2000-08-17 2005-08-02 Fusionone, Inc. Updating application data including adding first change log to aggreagate change log comprising summary of changes
US6609126B1 (en) * 2000-11-15 2003-08-19 Appfluent Technology, Inc. System and method for routing database requests to a database and a cache
US7111023B2 (en) * 2001-05-24 2006-09-19 Oracle International Corporation Synchronous change data capture in a relational database
US7024584B2 (en) * 2003-01-09 2006-04-04 International Business Machines Corporation Method, system, and article of manufacture for maintaining data integrity

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100789771B1 (ko) * 2005-12-08 2007-12-28 한국전자통신연구원 트리거를 이용한 입력 데이터 스트림과 저장 데이터의 통합질의 처리 시스템 및 그 방법
KR100926880B1 (ko) * 2007-05-21 2009-11-16 엔에이치엔(주) Dbms에서의 데이터 복제 방법 및 시스템
US8874512B2 (en) 2007-05-21 2014-10-28 Nhn Business Platform Corporation Data replication method and system for database management system
KR101024494B1 (ko) * 2008-07-18 2011-03-31 (주)디에프아이비즈 메타데이타를 이용한 변경 데이타 추출방법
KR101014524B1 (ko) * 2008-09-22 2011-02-14 콘티넨탈 오토모티브 시스템 주식회사 데이터 일관성을 유지하는 임베디드 시스템의 데이터 리드 방법
WO2014051348A2 (ko) * 2012-09-28 2014-04-03 삼성에스디에스 주식회사 데이터 객체 변환 장치 및 방법
WO2014051348A3 (ko) * 2012-09-28 2014-05-22 삼성에스디에스 주식회사 데이터 객체 변환 장치 및 방법
WO2018093094A1 (ko) * 2016-11-16 2018-05-24 주식회사 실크로드소프트 데이터베이스 관리 시스템에서의 데이터 복제 기법
KR20180055952A (ko) * 2016-11-16 2018-05-28 주식회사 실크로드소프트 데이터베이스 관리 시스템에서의 데이터 복제 기법
US11182404B2 (en) 2016-11-16 2021-11-23 Silcroad Soft, Inc. Data replication technique in database management system
CN113412482A (zh) * 2018-12-07 2021-09-17 斯诺弗雷克公司 变化跟踪数据的事务流
US11928098B2 (en) 2018-12-07 2024-03-12 Snowflake Inc. Table data processing using a change tracking column

Also Published As

Publication number Publication date
EP1465085A3 (en) 2006-04-19
EP1465085A2 (en) 2004-10-06
CN100386736C (zh) 2008-05-07
US20040199552A1 (en) 2004-10-07
JP2005301329A (ja) 2005-10-27
CN1540513A (zh) 2004-10-27

Similar Documents

Publication Publication Date Title
KR20040088397A (ko) 트랜잭션적으로 일관성있는 트리거 기반 데이터베이스변경 추적 방법 및 시스템
US7822710B1 (en) System and method for data collection
KR101099199B1 (ko) 데이터베이스 복구 중의 스냅샷 질의를 위한 시스템 및 방법
US8078582B2 (en) Data change ordering in multi-log based replication
CN105630863B (zh) 用于多版本并发提交状态的事务控制块
US8825601B2 (en) Logical data backup and rollback using incremental capture in a distributed database
US8170981B1 (en) Computer method and system for combining OLTP database and OLAP database environments
US7769714B2 (en) Automatic error correction for replication and instantaneous instantiation
US6983293B2 (en) Mid-tier-based conflict resolution method and system usable for message synchronization and replication
US9747356B2 (en) Eager replication of uncommitted transactions
US8595381B2 (en) Hierarchical file synchronization method, software and devices
KR102311032B1 (ko) 데이터베이스 동기화
JP4522170B2 (ja) リレーショナルデータベースのインデックス追加プログラム,インデックス追加装置及びインデックス追加方法
US10417265B2 (en) High performance parallel indexing for forensics and electronic discovery
CN102402596B (zh) 一种主从分离数据库的读写方法和系统
CN106933703B (zh) 一种数据库数据备份的方法、装置及电子设备
CN107515874B (zh) 一种分布式非关系型数据库中同步增量数据的方法与设备
US11921749B2 (en) Synchronization adapter for synchronizing application data
US7801846B2 (en) Generating log sequence identifiers to apply a transaction to a storage system
US11487714B2 (en) Data replication in a data analysis system
US10922307B2 (en) Automated transaction engine
US20050289186A1 (en) DDL replication without user intervention
US9396218B2 (en) Database insert with deferred materialization
US7149742B1 (en) System and method for remote data access
CN112800060A (zh) 数据处理方法、装置、计算机可读存储介质及电子设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application