KR101424568B1 - 트랜잭션 재시작 가능한 클라이언트 장치와 데이터베이스 서버 및 방법 - Google Patents

트랜잭션 재시작 가능한 클라이언트 장치와 데이터베이스 서버 및 방법 Download PDF

Info

Publication number
KR101424568B1
KR101424568B1 KR1020120113773A KR20120113773A KR101424568B1 KR 101424568 B1 KR101424568 B1 KR 101424568B1 KR 1020120113773 A KR1020120113773 A KR 1020120113773A KR 20120113773 A KR20120113773 A KR 20120113773A KR 101424568 B1 KR101424568 B1 KR 101424568B1
Authority
KR
South Korea
Prior art keywords
transaction
unit
point
server
recovery
Prior art date
Application number
KR1020120113773A
Other languages
English (en)
Other versions
KR20140047448A (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 (주)티베로
Priority to KR1020120113773A priority Critical patent/KR101424568B1/ko
Priority to US13/664,739 priority patent/US20140108367A1/en
Priority to CN201310349377.3A priority patent/CN103729391A/zh
Publication of KR20140047448A publication Critical patent/KR20140047448A/ko
Application granted granted Critical
Publication of KR101424568B1 publication Critical patent/KR101424568B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details

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)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

단일 서버 및 클러스터링 데이터베이스 환경에서 트랜잭션 수행 시 트랜잭션을 복구 가능한 유닛 단위의 서브셋으로 분할하여 전송하고, 서버 장애 발생으로 인한 롤백 실행 시 수신된 트랜잭션 유닛을 유닛 단위 역순으로 롤백을 수행하면서 일관성이 보장되는 트랜잭션 유닛을 검출한 시점을 복구시점 포인트(resumable point)으로 하여 롤백을 중단하고 복구시점 포인트까지 수신된 트랜잭션 정보는 보존함으로써, 트랜잭션을 처음부터 다시 수행하지 않고 복구시점 포인트 이후부터 재시작할 수 있도록 하여 데이터 전송효율을 높일 수 있다.

Description

트랜잭션 재시작 가능한 클라이언트 장치와 데이터베이스 서버 및 방법{CLIENT AND DATABASE SERVER FOR RESUMABLE TRANSACTION AND METHOD THEREOF}
본 발명은 데이터베이스 환경(database environment)에서 트랜잭션(transaction) 처리에 관한 것으로, 특히 단일 서버 및 클러스터링(clustering) 데이터베이스 환경에서 트랜잭션 수행 시 트랜잭션을 복구 가능한 유닛 단위의 서브셋(subset)으로 분할하여 전송하고, 서버 장애 발생으로 인한 롤백(rollback) 실행 시 수신된 트랜잭션 유닛을 유닛 단위 역순으로 롤백을 수행하면서 일관성(consistency)이 보장되는 트랜잭션 유닛을 검출한 시점을 복구시점 포인트(resumable point)으로 하여 롤백을 중단하고 복구시점 포인트까지 수신된 트랜잭션 정보는 보존함으로써, 트랜잭션을 처음부터 다시 수행하지 않고 복구시점 포인트 이후부터 재시작할 수 있도록 하여 데이터 전송효율을 높일 수 있도록 하는 트랜잭션 재시작 가능한 클라이언트 장치, 데이터베이스 서버 및 방법에 관한 것이다.
일반적으로, 데이터베이스 관리 시스템(Database Management System: DBMS, '이하 DBMS'라 함)은 방대한 양의 데이터가 저장되어 있는 데이터베이스를 관리하기 위한 시스템을 말한다.
이러한 DBMS에서는 모든 데이터를 테이블(table) 형태로 데이터베이스에 저장하는데, 여기서 테이블이란 데이터베이스에서 데이터를 저장하는 기본구조를 말하며, 하나의 테이블은 하나 이상의 레코드(record)들로 구성된다.
또한, 각 레코드는 하나 이상의 칼럼으로 구성되는데, 칼럼이란 테이블을 구성하는 실세계의 테이블 항목을 표현하는 이름을 가진 도메인(domain)을 의미하는 것으로서, 어트리뷰트(attribute) 또는 필드(field)라고도 한다.
이러한 DBMS는 외부로부터 특정 질의(query)가 입력되는 경우, 입력된 질의에 따라 데이터베이스에 데이터를 선택, 삽입, 갱신, 삭제 등의 기능을 수행한다. 여기서 질의란 데이터베이스의 테이블에 저장되어 있는 데이터에 대한 어떠한 요구, 즉 데이터에 대한 어떠한 조작을 하기 원하는지를 기술한 것을 의미하는 것으로서, SQL(Structured Query Language)과 같은 언어를 이용하여 표현한다.
한편, 위와 같은 DBMS에서는 데이터의 삽입, 삭제, 갱신 등과 같은 DML 연산 처리 시 트랜잭션을 수행하게 되는데, 이러한 트랜잭션은 정보의 교환이나 데이터베이스 갱신 등 일련의 작업들에 대한 연속처리 단위를 의미하고, 데이터베이스의 무결성이 보장되는 상태에서 요청된 작업을 완수하기 위한 작업의 기본 단위를 나타낸다.
그러나, 위와 같은 클라이언트와 데이터베이스 서버간 트랜잭션 수행 시 데이터베이스 서버의 장애가 발생하는 경우, 종래에는 트랜잭션 수행 내용에 대해 페일오버(fail-over)가 불가능하기 때문에 완료되지 못한 트랜잭션의 데이터는 모두 잃어버리게 되며, 데이터베이스로부터 롤백(rollback)이 수행되는 경우 처음부터 다시 트랜잭션을 수행하여야 하는 문제점이 있었다.
대한민국 공개특허번호 10-2004-0083197호 공개일자 2004년 10월 01일에는 무선 네트워크에서 트랜잭션 처리를 위한 로킹 프로토콜처리 방법에 관한 기술이 개시되어 있다.
따라서, 본 발명은 단일 서버 및 클러스터링 데이터베이스 환경에서 트랜잭션 수행 시 트랜잭션을 복구 가능한 유닛 단위의 서브셋으로 분할하여 전송하고, 서버 장애 발생으로 인한 롤백 실행 시 수신된 트랜잭션 유닛을 유닛 단위 역순으로 롤백을 수행하면서 일관성이 보장되는 트랜잭션 유닛을 검출한 시점을 복구시점 포인트(resumable point)으로 하여 롤백을 중단하고 복구시점 포인트까지 수신된 트랜잭션 정보는 보존함으로써, 트랜잭션을 처음부터 다시 수행하지 않고 복구시점 포인트 이후부터 재시작할 수 있도록 하여 데이터 전송효율을 높일 수 있도록 하는 트랜잭션 재시작 가능한 클라이언트 장치, 데이터베이스 서버 및 방법을 제공하고자 한다.
상술한 본 발명은 트랜잭션 재시작 가능한 클라이언트 장치로서, 데이터베이스 서버와 연결하여 트랜잭션 수행에 따른 데이터 송수신을 수행하는 통신부와, 상기 트랜잭션 수행에 따라 상기 서버로 전송하는 트랜잭션 데이터를 유닛(unit) 단위의 서브셋(subset)으로 분할한 트랜잭션 유닛으로 구성하는 유닛 구성부와, 상기 트랜잭션 유닛을 상기 서버로 전송하고, 상기 트랜잭션의 수행중 롤백(rollback)이 발생되는 경우, 상기 서버로부터 제공된 일관성(consistency)이 보장된 복구시점 포인트(resumable point) 이후의 트랜잭션 유닛부터 상기 트랜잭션을 재시작하도록 제어하는 제어부를 포함한다.
또한, 상기 유닛 구성부는, 상기 트랜잭션을 SQL 스테이트먼트(statement) 단위 또는 batch buffer 기준으로 서브셋으로 분할하여 상기 트랜잭션 유닛을 구성하는 것을 특징으로 한다.
또한, 상기 유닛 구성부는, 상기 서브셋에 시퀀스(sequence) 번호를 부여하는 것을 특징으로 한다.
또한, 상기 트랜잭션은, SQL 형태 또는 batch 형태로 구성되는 것을 특징으로 한다.
또한, 상기 장치는, 상기 서버로 전송된 트랜잭션 유닛을 저장하는 캐싱부를 더 포함하는 것을 특징으로 한다.
또한, 상기 제어부는, 상기 트랜잭션 재시작 시, 상기 캐싱부로부터 상기 복구시점 포인트 이후에 해당하는 트랜잭션 유닛부터 순차적으로 읽어들여 다시 전송하는 것을 특징으로 한다.
또한, 본 발명은 트랜잭션 재시작 가능한 데이터베이스 서버로서, 클라이언트 장치와 연결하여 트랜잭션 수행에 따른 데이터 송수신을 수행하는 통신부와, 상기 트랜잭션 수행에 따라 상기 클라이언트 장치로부터 전송되는 유닛 단위의 서브셋으로 분할된 트랜잭션 유닛을 수신하여 상기 유닛 단위로 트랜잭션 정보를 처리하는 데이터 처리부와, 상기 트랜잭션의 수행 중 롤백 발생 시 상기 트랜잭션에 대해 트랜잭션 유닛 단위의 역순으로 롤백을 수행하면서 상기 트랜잭션의 재시작을 위한 복구시점 포인트를 생성하는 복구부와, 상기 트랜잭션의 수행이 불가한 경우 상기 복구부를 통해 상기 트랜잭션에 대해 롤백을 실행시키고, 상기 클라이언트 장치의 재접속 시 상기 복구시점 포인트를 제공하며, 상기 복구시점 포인트 이후의 트랜잭션 유닛을 수신하여 상기 트랜잭션을 재시작시키는 제어부를 포함한다.
또한, 상기 복구부는, 상기 롤백을 수행하면서 일관성이 보장된 트랜잭션 유닛을 검색하고, 상기 일관성이 보장된 트랜잭션 유닛의 검색 시점을 상기 트랜잭션의 재시작을 위한 복구시점 포인트로 생성하는 것을 특징으로 한다.
또한, 상기 복구부는, 상기 일관성이 보장된 트랜잭션 유닛이 검색되는 시점까지 롤백을 수행하는 것을 특징으로 한다.
또한, 상기 복구부는, 상기 복구시점 포인트 이전 시점에 해당하는 트랜잭션 유닛은 보존시키는 것을 특징으로 한다.
또한, 상기 데이터 처리부는, 각각의 트랜잭션 유닛을 식별할 수 있는 식별정보를 해당 트랜잭션 유닛과 함께 저장시키는 것을 특징으로 한다.
또한, 상기 식별정보는, 상기 트랜잭션 유닛의 일관성을 식별할 수 있도록 설정되는 것을 특징으로 한다.
또한, 본 발명은 트랜잭션 재시작 방법으로서, 데이터베이스 서버와 트랜잭션 수행 시 상기 서버로 전송하는 트랜잭션 데이터를 유닛 단위의 서브셋으로 분할하여 트랜잭션 유닛으로 구성하는 단계와, 상기 트랜잭션 수행에 따라 상기 트랜잭션 유닛을 상기 서버로 전송하는 단계와, 상기 트랜잭션의 수행 중 롤백이 발생하는 경우, 상기 서버로부터 상기 트랜잭션의 재시작을 위한 일관성이 보장된 복구시점 포인트를 수신하는 단계와, 상기 서버로의 재접속시 상기 복구시점 포인트 이후부터 상기 트랜잭션이 재시작되도록 상기 서버로 트랜잭션 재시작 요청을 전송시키는 단계를 포함한다.
또한, 상기 트랜잭션 유닛은, SQL 스테이트먼트 단위 또는 batch buffer 기준으로 서브셋으로 분할되는 것을 특징으로 한다.
또한, 상기 서브셋은, 각각의 시퀀스 번호가 할당되는 것을 특징으로 한다.
또한, 상기 트랜잭션 재시작 요청을 전송시키는 단계는, 상기 서버로 전송되는 트랜잭션 유닛을 저장하는 캐싱부로부터 상기 복구시점 포인트 이후에 해당하는 트랜잭션 유닛을 검출하는 단계와, 상기 검출된 트랜잭션 유닛부터 순차적으로 읽어들여 다시 전송하는 단계를 포함하는 것을 특징으로 한다.
또한, 트랜잭션 재시작 방법으로서, 클라이언트 장치와 트랜잭션을 수행하는 단계와, 상기 트랜잭션의 수행 시 유닛 단위의 서브셋으로 분할된 트랜잭션 유닛을 수신하여 상기 유닛 단위로 트랜잭션 정보를 처리하는 단계와, 상기 트랜잭션의 수행 중 롤백 발생 시 상기 트랜잭션에 대해 트랜잭션 유닛 단위의 역순으로 롤백을 수행하는 단계와, 상기 롤백을 수행하면서 상기 트랜잭션의 재시작을 위한 복구시점 포인트를 생성하는 단계와, 상기 클라이언트 장치의 재접속 시 상기 복구시점 포인트를 제공하는 단계와, 상기 복구시점 포인트 이후의 트랜잭션 유닛을 수신하여 상기 트랜잭션을 재시작시키는 단계를 포함한다.
또한, 상기 복구시점 포인트를 생성하는 단계는, 상기 롤백을 수행하면서 일관성이 보장된 트랜잭션 유닛을 검색하는 단계와, 상기 일관성이 보장된 트랜잭션 유닛의 검색 시점을 상기 트랜잭션의 재시작을 위한 복구시점 포인트로 생성하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 복구시점 포인트의 생성이 후, 상기 복구시점 포인트 이전 시점에 해당하는 트랜잭션 유닛을 보존시키는 단계를 더 포함하는 것을 특징으로 한다.
본 발명은 단일 서버 및 클러스터링 데이터베이스 환경에서 트랜잭션 수행 시 트랜잭션을 복구 가능한 유닛 단위의 서브셋으로 분할하여 전송하고, 서버 장애 발생으로 인한 롤백 실행 시 수신된 트랜잭션 유닛을 유닛 단위 역순으로 롤백을 수행하면서 일관성이 보장되는 트랜잭션 유닛을 검출한 시점을 복구시점 포인트(resumable point)으로 하여 롤백을 중단하고 복구시점 포인트까지 수신된 트랜잭션 정보는 보존함으로써, 트랜잭션을 처음부터 다시 수행하지 않고 복구시점 포인트 이후부터 재시작할 수 있도록 하여 데이터 전송효율을 높일 수 있는 이점이 있다.
도 1은 본 발명의 실시예에 따른 트랜잭션 재시작이 가능한 클라이언트, 서버 네트워크 구성도,
도 2는 본 발명의 실시예에 따른 클라이언트 장치에서 트랜잭션 재시작을 위한 동작 제어 흐름도,
도 3은 본 발명의 실시예에 따른 클라이언트 장치에서 트랜잭션 재시작을 위한 동작 제어 흐름도.
이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 실시 예에 따른 트랜잭션 재시작 가능한 클라이언트 장치(100) 및 데이터베이스 서버(150)의 네트워크 구성을 도시한 것이다.
이하, 도 1을 참조하여 본 발명의 실시예에 따른 단일 서버 및 클러스터링 데이터베이스 환경에서 트랜잭션의 재시작 동작을 상세히 설명하기로 한다.
먼저, 클라이언트 장치(100)는 통신망을 통해 데이터베이스 서버(150)에 접속하여 데이터를 검색하거나 변경시킬 수 있는 사용자 단말장치를 말하는 것으로, 데이터베이스 서버(150)에 연결되는 경우 데이터베이스(database)(162)내 데이터의 삽입, 삭제 또는 갱신 등을 위한 트랜잭션을 수행할 수 있다.
이때, 위와 같은 트랜잭션은 클라이언트 장치(100)와 데이터베이스 서버(150)간 트랜잭션 수행 시 데이터베이스 서버(150)에 장애가 발생하는 경우, 종래에는 트랜잭션 수행 내용에 대해 페일오버(fail-over)가 불가능하기 때문에 완료되지 못한 트랜잭션의 데이터는 모두 잃어버리게 되며, 데이터베이스 서버(150)로부터 롤백이 수행되는 경우 처음부터 다시 트랜잭션을 수행하여야 하는 문제점이 있었음은 전술한 바와 같다.
따라서, 본 발명의 실시예에서는 클라이언트 장치(100)에서 트랜잭션을 복구가 가능한 유닛(unit) 단위의 서브셋으로 분할하여 전송하는 방식으로 트랜잭션을 수행하고, 데이터베이스 서버(150)로 전송된 트랜잭션의 서브셋들을 캐싱(caching)하여 저장하고 있음으로써, 데이터베이스 서버(150)의 장애 발생에 따른 롤백시 데이터베이스 서버(150)로부터 일관성(consistency)이 입증된 서브셋의 복구시점 포인트(resumable point) 정보를 수신하여 전체 트랜잭션을 다시 수행하지 않고, 복구시점 포인트 이후의 서브셋만을 재전송하는 방식으로 트랜잭션을 재시작 할 수 있도록 한다.
이하, 위와 같은 클라이언트 장치(100)의 동작을 클라이언트 장치(100)의 각 구성요소에서의 동작 설명을 통해 보다 상세히 설명하기로 한다.
통신부(102)는 통신망을 통해 클라이언트 장치(100)를 데이터베이스 서버(150)에 연결시키며, 클라이언트 장치(100)와 데이터베이스 서버(150)간 트랜잭션 수행에 따라 송수신되는 데이터를 인터페이스(interface)한다.
유닛 구성부(104)는 트랜잭션 수행에 따라 클라이언트 장치(100)로부터 데이터베이스 서버(150)로 전송되는 트랜잭션 데이터를 유닛 단위의 서브셋으로 분할한다. 즉, 유닛 구성부(104)는 클라이언트 장치(100)로부터 데이터베이스 서버(150)로 전송되는 SQL 형태 또는 batch 형태의 트랜잭션을 SQL 스테이트먼트(statement) 단위 또는 batch buffer 기준으로 서브셋으로 분할하고 시퀀스(sequence) 번호를 부여한다.
위와 같이, 유닛 구성부(104)에서 서브셋으로 분할되고 시퀀스 번호가 부여된 트랜잭션 유닛은 클라이언트 장치(100)와 데이터베이스 서버(150)간 트랜잭션 수행에 따라 클라이언트 장치(100)의 통신부(102)를 통해 데이터베이스 서버(150)로 전송된다.
캐싱부(106)는 위와 같이 트랜잭션 수행에 따라 데이터베이스 서버(150)로 전송되는 트랜잭션 유닛을 유닛 단위로 저장시킨다.
제어부(108)는 메모리부(110)에 저장된 동작 제어 프로그램에 따라 클라이언트 장치(100)의 전반적인 동작을 제어하며, 또한 본 발명의 실시예에 따라 데이터베이스 서버(150)와의 트랜잭션 재시작을 위한 각 부의 동작을 제어한다.
즉, 제어부(108)는 트랜잭션 수행에 따라 유닛 구성부(104)를 통해 트랜잭션 수행에 따라 데이터베이스 서버(150)로 전송되는 데이터가 트랜잭션 유닛으로 전송되도록 하고, 이와 같이 전송된 트랜잭션 유닛을 캐싱부(106)에 저장하여 데이터베이스 서버(150)의 장애에 따른 롤백 실행 시 트랜잭션을 처음부터 다시 수행하지 않고, 데이터베이스 서버(150)로부터 제공된 일관성이 보장된 복구시점 포인트 이후의 트랜잭션 유닛부터 트랜잭션을 재시작시킴으로서 데이터 전송 효율을 높일 수 있도록 한다.
또한, 제어부(108)는 데이터베이스 서버(150)로부터 일관되고 영구적으로 반영이 끝난 시점 또는 트랜잭션 유닛의 번호를 응답메시지로 수신할 수 있으며, 서버(150)에서 반영이 끝난 트랜잭션 유닛에 대한 정보를 이용하여 캐싱부(106)에서 해당 트랜잭션 유닛을 제거함으로써, 캐싱부(106)에서 불필요한 정보의 저장으로 인해 메모리가 낭비되는 것을 방지시키도록 할 수 있다.
다음으로, 데이터베이스 서버(150)는 통신망을 통해 연결되는 클라이언트 장치(100)와의 트랜잭션 수행에 따라 데이터베이스(162)내 해당하는 데이터의 삽입, 삭제 또는 갱신 등을 수행한다.
이때, 데이터베이스 서버(150)는 클라이언트 장치(100)와 트랜잭션 수행 시 데이터베이스 서버(150)내 장애 등이 발생하여 트랜잭션을 완료하지 못하는 경우, 종래에는 해당 트랜잭션에 대해 롤백을 수행하여 트랜잭션을 처음부터 다시 수행 함에 따라, 장애 발생 전 수행된 트랜잭션에 따른 데이터에 대해서도 모두 삭제하고 있어 트랜잭션 수행 과정에서의 불필요한 부하를 발생시킬 수 있다.
이에 따라, 본 발명의 실시예에서 데이터베이스 서버(150)에서는 클라이언트 장치(100)로부터 트랜잭션 수행에 따라 전송되는 데이터가 복구 가능한 트랜잭션 유닛으로 구성된 경우에는 데이터베이스 서버(150)의 장애에 따른 트랜잭션 복구 수행 시, 전체 트랜잭션에 대해 롤백을 수행하는 것이 아니라, 수신된 트랜잭션 유닛에 대해 유닛 단위 역순으로 롤백을 수행하면서 일관성이 보장된 트랜잭션 유닛을 검출하는 경우 해당 트랜잭션 유닛까지는 정보를 보존하고, 장애가 복구된 후에 보존된 트랜잭션 유닛이후부터 다시 트랜잭션을 수행하여 트랜잭션을 재시작할 수 있도록 한다.
이하, 위와 같은 데이터베이스 서버(150)의 동작을 데이터베이스 서버(150)의 각 구성요소에서의 동작 설명을 통해 보다 상세히 설명하기로 한다.
통신부(152)는 통신망을 통해 클라이언트 장치(100)와 데이터베이스 서버(150)간을 연결시키며 클라이언트 장치(100)와 데이터베이스 서버(150)간 트랜잭션 수행에 따라 송수신되는 데이터를 인터페이스한다. 또한, 데이터베이스 서버(150)의 장애 발생에 따라 데이터베이스 서버(150)로부터 발생하는 롤백 명령 및 트랜잭션 재시작 복구시점 포인트 등의 정보를 클라이언트 장치(100)로 전송할 수 있다.
데이터 처리부(154)는 클라이언트 장치(100)와 데이터베이스 서버(150)간 트랜잭션 수행에 따라 클라이언트 장치(100)로부터 전송되는 복구 가능한 유닛 단위의 데이터 즉, 트랜잭션 유닛 단위로 트랜잭션 정보를 처리하여 저장한다. 이때, 데이터 처리부(154)는 트랜잭션 유닛단위로 데이터베이스(162)에 일관성 있게 저장이 수행되었는지를 식별할 수 있는 식별정보도 함께 저장시킨다.
한편, 위와 같은 트랜잭션 수행 중 데이터베이스 서버(150)의 장애 발생 등으로 해당 트랜잭션이 완료되지 못하는 경우, 데이터베이스 서버(150)에서 롤백이 수행된다.
복구부(156)는 위와 같이 완료되지 못한 트랜잭션에 대해 롤백이 수행되는 경우, 종래 트랜잭션을 처음부터 다시 시작하도록 하는 동작과는 달리, 전체 트랜잭션을 롤백하는 것이 아니라 트랜잭션 유닛 단위의 역순으로 롤백을 수행한다.
즉, 복구부(156)는 트랜잭션 유닛 단위의 역순으로 롤백을 수행하면서 일관성이 보장된 트랜잭션 유닛을 검색하고, 일관성이 보장된 트랜잭션 유닛을 검출하는 경우 롤백을 중단하고 해당 트랜잭션 유닛까지는 정보를 보존하고, 롤백이 중단된 시점을 복구시점 포인트(resumable point)로 생성한다. 이와 같이 생성된 복구시점 포인트에 대한 정보는 장애 복구 후에 클라이언트 장치(100)가 다시 접속하는 경우 클라이언트 장치(100)로 제공되어, 클라이언트 장치(100)에서 복구시점 포인트 이후부터 트랜잭션을 재시작할 수 있도록 한다.
제어부((158)는 메모리부(160)에 저장된 동작 제어 프로그램에 따라 데이터베이스 서버(150)의 전반적인 동작을 제어하며, 또한, 본 발명의 실시예에 따라 클라이언트 장치(100)와의 트랜잭션 재시작을 위한 각부의 동작을 제어한다.
즉, 제어부(158)는 데이터베이스 서버(150) 장애에 따른 트랜잭션 복구 수행 시, 전체 트랜잭션에 대해 롤백을 수행하는 것이 아니라, 복구부(156)를 통해 수신된 트랜잭션 유닛에 대해 유닛 단위 역순으로 롤백을 수행하면서 일관성이 보장된 트랜잭션 유닛을 검출하는 경우 해당 트랜잭션 유닛까지는 정보를 보존하고, 장애가 복구된 후에 보존된 트랜잭션 유닛이후부터 다시 트랜잭션을 수행하여 트랜잭션을 재시작할 수 있도록 한다.
도 2는 본 발명의 실시예에 따른 클라이언트 장치(100)에서의 트랜잭션 재시작 동작 제어흐름을 도시한 것으로, 이하, 도 1 및 도 2를 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
먼저, 클라이언트 장치(100)와 데이터베이스 서버간 트랜잭션이 수행되는 경우, 클라이언트 장치(100)의 제어부(108)는 유닛 구성부(104)를 제어하여 데이터베이스 서버(150)로 전송되는 트랜잭션 데이터를 유닛 단위의 서브셋으로 분할한 트랜잭션 유닛을 구성한다(S200).
즉, 유닛 구성부(104)는 클라이언트 장치(100)로부터 데이터베이스 서버(150)로 전송되는 SQL 형태 또는 batch 형태의 트랜잭션을 SQL 스테이트먼트(statement) 단위 또는 batch buffer 기준으로 서브셋으로 분할하고 시퀀스(sequence) 번호를 부여하여 트랜잭션 유닛을 구성한다.
이어, 제어부(108)는 위와 같이 유닛 구성부(104)에서 서브셋으로 분할되고 시퀀스 번호가 부여된 트랜잭션 유닛을 클라이언트 장치(100)와 데이터베이스 서버(150)간 트랜잭션 수행에 따라 데이터베이스 서버(150)로 전송한다(S202).
또한, 제어부(108)는 클라이언트 장치(100)와 데이터베이스 서버(150)간 트랜잭션 수행에 따라 전송되는 트랜잭션 유닛을 트랜잭션 재시작을 대비하여 캐싱부(106)에 유닛 단위로 저장시킨다(S204).
한편, 위와 같은 클라이언트 장치(100)와 데이터베이스 서버(150)간 트랜잭션이 수행되고 있는 중에 데이터베이스 서버(150)상에 장애 등이 발생하여 트랜잭션의 수행이 불가능해지는 경우가 발생할 수 있다(S206).
이와 같이, 데이터베이스 서버(150)상 장애 등이 발생하는 경우, 완료되지 못한 트랜잭션의 수행은 중지되며, 데이터베이스 서버(150)의 장애가 복구된 이후, 클라이언트 장치(100)가 다시 데이터베이스 서버(150)와 연결되는 시점에 롤백을 통해 트랜잭션 수행이 다시 시작된다.
이때, 본 발명에서는 장애가 발생된 데이터베이스 서버(150)에서 완료되지 못한 트랜잭션을 처음부터 다시 시작하는 것이 아니고, 트랜잭션 유닛 단위의 역순으로 롤백을 수행하여 일관성이 보장된 복구시점 포인트를 검출한 후, 복구시점 포인트 이후부터의 트랜잭션 유닛을 다시 전송받아 트랜잭션을 완료하게 되는데, 데이터베이스 서버(150)는 위와 같이 검출된 복구시점 포인트를 해당 클라이언트 장치가 재접속되는 경우 트랜잭션 재시작을 위해 제공하게 된다.
즉, 클라이언트 장치(100)의 제어부(108)는 데이터베이스 서버(150)의 장애 복구에 따라 재접속한 후(S208), 데이터베이스 서버(150)로부터 트랜잭션 재시작을 위한 복구시점 포인트에 대한 정보를 수신하게 된다(S210).
이에 따라, 제어부(108)는 데이터베이스 서버(150) 장애에 따른 롤백 실행 시 트랜잭션을 처음부터 다시 수행하지 않고, 데이터베이스 서버(150)로부터 제공된 일관성이 보장된 복구시점 포인트 이후의 트랜잭션 유닛부터 트랜잭션을 재시작시킴으로서 데이터 전송 효율을 높일 수 있도록 한다.
도 3은 본 발명의 실시예에 따른 데이터베이스 서버(150)에서의 트랜잭션 재시작 동작 제어흐름을 도시한 것으로, 이하, 도 1 및 도 3을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
먼저, 클라이언트 장치(100)와 트랜잭션이 수행되는 경우, 데이터베이스 서버(150)의 제어부(158)는 통신부(152)를 통해 트랜잭션 재시작을 위해 유닛 단위로 분할되어 전송되는 트랜잭션 유닛을 수신한다(S300).
이어, 제어부(158)는 데이터 처리부(154)를 제어하여 트랜잭션 유닛 단위로 트랜잭션 정보를 처리하여 저장하되, 트랜잭션 유닛단위로 데이터베이스(162)에 일관성 있게 저장이 수행되었는지를 식별할 수 있는 식별정보도 함께 저장시킬 수 있다(S302).
한편, 위와 같은 트랜잭션 수행 중 데이터베이스 서버(150)의 장애 발생 등으로 해당 트랜잭션이 완료되지 못하는 경우가 발생할 수 있으며, 이와 같은 경우 제어부(158)는 롤백을 수행하여 완료되지 못한 트랜잭션을 다시 수행하도록 한다(S304).
위와 같은 롤백의 수행에 있어서, 종래에는 클라이언트 장치(100)로 해당 트랜잭션을 처음부터 다시 시작하도록 하고 있는 있으나, 본 발명의 실시예에서는 종래와는 달리, 전체 트랜잭션을 롤백하는 것이 아니라 복구부(156)를 제어하여 트랜잭션 유닛 단위의 역순으로 롤백을 수행하도록 한다(S306).
즉, 복구부(156)는 제어부(158)의 제어에 따라 트랜잭션 유닛 단위의 역순으로 롤백을 수행하면서 일관성이 보장된 트랜잭션 유닛을 검색하고, 일관성이 보장된 트랜잭션 유닛을 검출하는 경우 롤백을 중단하고, 이 시점을 복구시점 포인트(resumable point)로 생성한다(S308).
또한, 복구부(156)는 롤백을 중단된 시점의 해당 트랜잭션 유닛까지는 정보를 보존한 단. 이어, 제어부(158)는 위와 같이 복구부(156)를 통해 생성된 복구시점 포인트에 대해서는 데이터베이스 서버(150)의 장애 복구후에 해당 클라이언트 장치가 다시 접속하는 경우 클라이언트 장치(100)로 제공하여, 클라이언트 장치(100)에서 복구시점 포인트 이후부터 트랜잭션이 재시작될 수 있도록 한다.
상기한 바와 같이, 단일 서버 및 클러스터링 데이터베이스 환경에서 트랜잭션 수행 시 트랜잭션을 복구 가능한 유닛 단위의 서브셋으로 분할하여 전송하고, 서버 장애 발생으로 인한 롤백 실행 시 수신된 트랜잭션 유닛을 유닛 단위 역순으로 롤백을 수행하면서 일관성이 보장되는 트랜잭션 유닛을 검출한 시점을 복구시점 포인트(resumable point)으로 하여 롤백을 중단하고 복구시점 포인트까지 수신된 트랜잭션 정보는 보존함으로써, 트랜잭션을 처음부터 다시 수행하지 않고 복구시점 포인트 이후부터 재시작할 수 있도록 하여 데이터 전송효율을 높일 수 있다.
한편 상술한 본 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
102 : 통신부 104 : 유닛 구성부
106 : 캐싱부 108 : 제어부
152 : 통신부 154 : 데이터 처리부
156 : 복구부 158 : 제어부
162 : DB

Claims (19)

  1. 데이터베이스 서버와 연결하여 트랜잭션 수행에 따른 데이터 송수신을 수행하는 통신부와,
    상기 트랜잭션 수행에 따라 상기 서버로 전송하는 트랜잭션 데이터를 유닛(unit) 단위의 서브셋(subset)으로 분할한 트랜잭션 유닛으로 구성하는 유닛 구성부와,
    상기 트랜잭션 유닛을 상기 서버로 전송하고, 상기 트랜잭션의 수행중 롤백(rollback)이 발생되는 경우, 상기 서버로부터 제공된 일관성(consistency)이 보장된 복구시점 포인트(resumable point) 이후의 트랜잭션 유닛부터 상기 트랜잭션을 재시작하도록 제어하는 제어부를 포함하며,
    상기 유닛 구성부는, 상기 트랜잭션을 SQL 스테이트먼트(statement) 단위 또는 batch buffer 기준으로 서브셋으로 분할하여 상기 트랜잭션 유닛을 구성하는 것을 특징으로 하는 트랜잭션 재시작 가능한 클라이언트 장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 유닛 구성부는,
    상기 서브셋에 시퀀스(sequence) 번호를 부여하는 것을 특징으로 하는 트랜잭션 재시작 가능한 클라이언트 장치.
  4. 제 1 항에 있어서,
    상기 트랜잭션은,
    SQL 형태 또는 batch 형태로 구성되는 것을 특징으로 하는 트랜잭션 재시작 가능한 클라이언트 장치.
  5. 제 1 항에 있어서,
    상기 장치는,
    상기 서버로 전송된 트랜잭션 유닛을 저장하는 캐싱부를 더 포함하는 것을 특징으로 하는 트랜잭션 재시작 가능한 클라이언트 장치.
  6. 제 5 항에 있어서,
    상기 제어부는,
    상기 트랜잭션 재시작 시, 상기 캐싱부로부터 상기 복구시점 포인트 이후에 해당하는 트랜잭션 유닛부터 순차적으로 읽어들여 다시 전송하는 것을 특징으로 하는 트랜잭션 재시작 가능한 클라이언트 장치.
  7. 클라이언트 장치와 연결하여 트랜잭션 수행에 따른 데이터 송수신을 수행하는 통신부와,
    상기 트랜잭션 수행에 따라 상기 클라이언트 장치로부터 전송되는 유닛 단위의 서브셋으로 분할된 트랜잭션 유닛을 수신하여 상기 유닛 단위로 트랜잭션 정보를 처리하는 데이터 처리부와,
    상기 트랜잭션의 수행 중 롤백 발생 시 상기 트랜잭션에 대해 트랜잭션 유닛 단위의 역순으로 롤백을 수행하면서 상기 트랜잭션의 재시작을 위한 복구시점 포인트를 생성하는 복구부와,
    상기 트랜잭션의 수행이 불가한 경우 상기 복구부를 통해 상기 트랜잭션에 대해 롤백을 실행시키고, 상기 클라이언트 장치의 재접속 시 상기 복구시점 포인트를 제공하며, 상기 복구시점 포인트 이후의 트랜잭션 유닛을 수신하여 상기 트랜잭션을 재시작시키는 제어부를 포함하며,
    상기 복구부는, 상기 롤백을 수행하면서 일관성이 보장된 트랜잭션 유닛을 검색하고, 상기 일관성이 보장된 트랜잭션 유닛의 검색 시점을 상기 트랜잭션의 재시작을 위한 복구시점 포인트로 생성하는 것을 특징으로 하는 트랜잭션 재시작 가능한 데이터베이스 서버.
  8. 삭제
  9. 제 7 항에 있어서,
    상기 복구부는,
    상기 일관성이 보장된 트랜잭션 유닛이 검색되는 시점까지 롤백을 수행하는것을 특징으로 하는 트랜잭션 재시작 가능한 데이터베이스 서버.
  10. 제 7 항에 있어서,
    상기 복구부는,
    상기 복구시점 포인트 이전 시점에 해당하는 트랜잭션 유닛은 보존시키는 것을 특징으로 하는 트랜잭션 재시작 가능한 데이터베이스 서버.
  11. 제 7 항에 있어서,
    상기 데이터 처리부는,
    각각의 트랜잭션 유닛을 식별할 수 있는 식별정보를 해당 트랜잭션 유닛과 함께 저장시키는 것을 특징으로 하는 트랜잭션 재시작 가능한 데이터베이스 서버.
  12. 제 11 항에 있어서,
    상기 식별정보는,
    상기 트랜잭션 유닛의 일관성을 식별할 수 있도록 설정되는 것을 특징으로 하는 트랜잭션 재시작 가능한 데이터베이스 서버.
  13. 삭제
  14. 데이터베이스 서버와 트랜잭션 수행 시 상기 서버로 전송하는 트랜잭션 데이터를 유닛 단위의 서브셋으로 분할하여 트랜잭션 유닛으로 구성하는 단계와,
    상기 트랜잭션 수행에 따라 상기 트랜잭션 유닛을 상기 서버로 전송하는 단계와,
    상기 트랜잭션의 수행 중 롤백이 발생하는 경우, 상기 서버로부터 상기 트랜잭션의 재시작을 위한 일관성이 보장된 복구시점 포인트를 수신하는 단계와,
    상기 서버로의 재접속시 상기 복구시점 포인트 이후부터 상기 트랜잭션이 재시작되도록 상기 서버로 트랜잭션 재시작 요청을 전송시키는 단계를 포함하며,
    상기 트랜잭션 유닛은, SQL 스테이트먼트 단위 또는 batch buffer 기준으로 서브셋으로 분할되는 것을 특징으로 하는 트랜잭션 재시작 방법.
  15. 제 14 항에 있어서,
    상기 서브셋은,
    각각의 시퀀스 번호가 할당되는 것을 특징으로 하는 트랜잭션 재시작 방법.
  16. 데이터베이스 서버와 트랜잭션 수행 시 상기 서버로 전송하는 트랜잭션 데이터를 유닛 단위의 서브셋으로 분할하여 트랜잭션 유닛으로 구성하는 단계와,
    상기 트랜잭션 수행에 따라 상기 트랜잭션 유닛을 상기 서버로 전송하는 단계와,
    상기 트랜잭션의 수행 중 롤백이 발생하는 경우, 상기 서버로부터 상기 트랜잭션의 재시작을 위한 일관성이 보장된 복구시점 포인트를 수신하는 단계와,
    상기 서버로의 재접속시 상기 복구시점 포인트 이후부터 상기 트랜잭션이 재시작되도록 상기 서버로 트랜잭션 재시작 요청을 전송시키는 단계를 포함하며,
    상기 트랜잭션 재시작 요청을 전송시키는 단계는,
    상기 서버로 전송되는 트랜잭션 유닛을 저장하는 캐싱부로부터 상기 복구시점 포인트 이후에 해당하는 트랜잭션 유닛을 검출하는 단계와,
    상기 검출된 트랜잭션 유닛부터 순차적으로 읽어들여 다시 전송하는 단계
    를 포함하는 것을 특징으로 하는 트랜잭션 재시작 방법.
  17. 클라이언트 장치와 트랜잭션을 수행하는 단계와,
    상기 트랜잭션의 수행 시 유닛 단위의 서브셋으로 분할된 트랜잭션 유닛을 수신하여 상기 유닛 단위로 트랜잭션 정보를 처리하는 단계와,
    상기 트랜잭션의 수행 중 롤백 발생 시 상기 트랜잭션에 대해 트랜잭션 유닛 단위의 역순으로 롤백을 수행하는 단계와,
    상기 롤백을 수행하면서 상기 트랜잭션의 재시작을 위한 복구시점 포인트를 생성하는 단계와,
    상기 클라이언트 장치의 재접속 시 상기 복구시점 포인트를 제공하는 단계와,
    상기 복구시점 포인트 이후의 트랜잭션 유닛을 수신하여 상기 트랜잭션을 재시작시키는 단계를 포함하며,
    상기 복구시점 포인트를 생성하는 단계는, 상기 롤백을 수행하면서 일관성이 보장된 트랜잭션 유닛을 검색하는 단계와,
    상기 일관성이 보장된 트랜잭션 유닛의 검색 시점을 상기 트랜잭션의 재시작을 위한 복구시점 포인트로 생성하는 단계
    를 포함하는 것을 특징으로 하는 트랜잭션 재시작 방법.
  18. 삭제
  19. 제 17 항에 있어서,
    상기 복구시점 포인트의 생성이 후,
    상기 복구시점 포인트 이전 시점에 해당하는 트랜잭션 유닛을 보존시키는 단계를 더 포함하는 것을 특징으로 하는 트랜잭션 재시작 방법.
KR1020120113773A 2012-10-12 2012-10-12 트랜잭션 재시작 가능한 클라이언트 장치와 데이터베이스 서버 및 방법 KR101424568B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020120113773A KR101424568B1 (ko) 2012-10-12 2012-10-12 트랜잭션 재시작 가능한 클라이언트 장치와 데이터베이스 서버 및 방법
US13/664,739 US20140108367A1 (en) 2012-10-12 2012-10-31 Client apparatus and database server for resumable transaction and method thereof
CN201310349377.3A CN103729391A (zh) 2012-10-12 2013-08-12 能够重新启动事务的客户端装置和数据库服务器及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120113773A KR101424568B1 (ko) 2012-10-12 2012-10-12 트랜잭션 재시작 가능한 클라이언트 장치와 데이터베이스 서버 및 방법

Publications (2)

Publication Number Publication Date
KR20140047448A KR20140047448A (ko) 2014-04-22
KR101424568B1 true KR101424568B1 (ko) 2014-08-01

Family

ID=50453469

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120113773A KR101424568B1 (ko) 2012-10-12 2012-10-12 트랜잭션 재시작 가능한 클라이언트 장치와 데이터베이스 서버 및 방법

Country Status (3)

Country Link
US (1) US20140108367A1 (ko)
KR (1) KR101424568B1 (ko)
CN (1) CN103729391A (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105787011B (zh) * 2016-02-23 2019-02-22 网易(杭州)网络有限公司 排名更新方法及装置
JP7363049B2 (ja) * 2019-02-18 2023-10-18 日本電気株式会社 業務サービス提供システム、業務サービス復旧方法及び業務サービス復旧プログラム
CN110990182B (zh) * 2019-12-03 2021-06-11 腾讯科技(深圳)有限公司 事务处理方法、装置、设备及存储介质
US11544245B2 (en) 2019-12-03 2023-01-03 Tencent Technology (Shenzhen) Company Limited Transaction processing method, apparatus, and device and computer storage medium
CN111277639B (zh) * 2020-01-16 2022-08-09 中国建设银行股份有限公司 一种保持数据一致性的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070018385A (ko) * 2005-08-09 2007-02-14 (주)다음소프트 대화 분석을 이용하는 대화 에이전트 서비스 방법 및시스템
JP4428887B2 (ja) * 2000-06-27 2010-03-10 富士通株式会社 データベースシステム
KR20110110199A (ko) * 2009-01-21 2011-10-06 에이티아이 테크놀로지스 유엘씨 장치의 컴포넌트들 간에 메모리 자원들을 공유하기 위한 통신 프로토콜
JP5039891B2 (ja) 2009-10-19 2012-10-03 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースの複製を生成する装置及び方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796934A (en) * 1996-05-31 1998-08-18 Oracle Corporation Fault tolerant client server system
US6490610B1 (en) * 1997-05-30 2002-12-03 Oracle Corporation Automatic failover for clients accessing a resource through a server
US6625602B1 (en) * 2000-04-28 2003-09-23 Microsoft Corporation Method and system for hierarchical transactions and compensation
US6871293B2 (en) * 2001-08-07 2005-03-22 American Management Systems, Inc. Gap detector detecting gaps between transactions transmitted by clients and transactions processed by servers
GB0308264D0 (en) * 2003-04-10 2003-05-14 Ibm Recovery from failures within data processing systems
GB0324961D0 (en) * 2003-10-25 2003-11-26 Ibm Invocation of a follow on unit of work
US7788255B2 (en) * 2004-01-21 2010-08-31 Oracle International Corporation Specifying parallel or sequential execution of database operations by bundling database statements
US7818301B2 (en) * 2004-12-17 2010-10-19 International Business Machines Corporation Method, system and article of manufacture for rolling back past a boundary generator to a savepoint located in a unit of work
US8364648B1 (en) * 2007-04-09 2013-01-29 Quest Software, Inc. Recovering a database to any point-in-time in the past with guaranteed data consistency

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4428887B2 (ja) * 2000-06-27 2010-03-10 富士通株式会社 データベースシステム
KR20070018385A (ko) * 2005-08-09 2007-02-14 (주)다음소프트 대화 분석을 이용하는 대화 에이전트 서비스 방법 및시스템
KR20110110199A (ko) * 2009-01-21 2011-10-06 에이티아이 테크놀로지스 유엘씨 장치의 컴포넌트들 간에 메모리 자원들을 공유하기 위한 통신 프로토콜
JP5039891B2 (ja) 2009-10-19 2012-10-03 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースの複製を生成する装置及び方法

Also Published As

Publication number Publication date
CN103729391A (zh) 2014-04-16
US20140108367A1 (en) 2014-04-17
KR20140047448A (ko) 2014-04-22

Similar Documents

Publication Publication Date Title
CN109241185B (zh) 一种数据同步的方法以及数据同步装置
EP2653986B1 (en) Client-side caching of a database transaction token.
EP3026582B1 (en) Transaction control block for multiversion concurrency commit status
US8548945B2 (en) Database caching utilizing asynchronous log-based replication
CN101334797B (zh) 一种分布式文件系统及其数据块一致性管理的方法
CN109189852B (zh) 一种数据同步的方法及用于数据同步的装置
US10114848B2 (en) Ensuring the same completion status for transactions after recovery in a synchronous replication environment
US20110161281A1 (en) Distributed Transaction Management in a Distributed Shared Disk Cluster Environment
KR101424568B1 (ko) 트랜잭션 재시작 가능한 클라이언트 장치와 데이터베이스 서버 및 방법
WO2013131448A1 (zh) 数据同步方法、系统及数据访问装置
JP2005322250A5 (ko)
CN102710763B (zh) 一种分布式缓存池化、分片及故障转移的方法及系统
EP2380090B1 (en) Data integrity in a database environment through background synchronization
WO2013138770A1 (en) Systems and methods for supporting inline delegation of middle-tier transaction logs to database
US20140156595A1 (en) Synchronisation system and method
US9563522B2 (en) Data recovery for a relational database management system instance in a heterogeneous database system
JP2005025432A (ja) トランザクション処理方法,トランザクション制御装置およびトランザクション制御プログラム
US9910733B2 (en) Transaction completion in a synchronous replication environment
US10579604B2 (en) Database system, information processing device, method and medium
US20210149870A1 (en) Method, apparatus, and computer program product for improved tracking of state data
CN113438275A (zh) 数据迁移方法、装置、存储介质及数据迁移设备
US20170011110A1 (en) Database system, information processing device, method and medium
US20180011895A1 (en) Isolation level support in distributed database system
US20230185676A1 (en) Database recovery based on logical timestamp
CN117076554A (zh) 一种数据同步方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170609

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180723

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190613

Year of fee payment: 6