KR20220160898A - 트랜잭션 처리 방법 및 장치 - Google Patents

트랜잭션 처리 방법 및 장치 Download PDF

Info

Publication number
KR20220160898A
KR20220160898A KR1020210069115A KR20210069115A KR20220160898A KR 20220160898 A KR20220160898 A KR 20220160898A KR 1020210069115 A KR1020210069115 A KR 1020210069115A KR 20210069115 A KR20210069115 A KR 20210069115A KR 20220160898 A KR20220160898 A KR 20220160898A
Authority
KR
South Korea
Prior art keywords
transaction
database
application
group
processing
Prior art date
Application number
KR1020210069115A
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 삼성에스디에스 주식회사
Priority to KR1020210069115A priority Critical patent/KR20220160898A/ko
Priority to US17/826,645 priority patent/US20220382635A1/en
Priority to EP22175817.0A priority patent/EP4095688A1/en
Publication of KR20220160898A publication Critical patent/KR20220160898A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1865Transactional file systems
    • 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/2365Ensuring data consistency and integrity
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

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

Abstract

트랜잭션 처리 방법 및 장치가 제공된다. 본 발명의 일 실시예에 따른 트랜잭션 처리 방법은, 복수의 애플리케이션들 중 제1 애플리케이션에 의해 제1 데이터베이스에 요청된 제1 트랜잭션을 트랜잭션 그룹 ID와 연관하여 기록하는 단계, 상기 복수의 애플리케이션들 중, 상기 제1 애플리케이션에 의해 호출된 제2 애플리케이션에 의해 제2 데이터베이스에 요청된 제2 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 기록하는 단계, 상기 제2 트랜잭션의 처리 중에 오류가 발생하였다는 판정에 응답하여, 상기 제2 데이터베이스를 대상으로 상기 제2 트랜잭션을 롤백하는 단계, 상기 트랜잭션 그룹 ID에 기초하여 상기 제1 트랜잭션을 식별하는 단계, 및 상기 제1 데이터베이스를 대상으로 상기 제1 트랜잭션을 롤백하는 단계를 포함한다.

Description

트랜잭션 처리 방법 및 장치{METHOD AND APPARATUS FOR HANDLING TRANSACTION}
본 발명은 트랜잭션 처리 방법에 관한 것이다. 보다 자세하게는, MSA(Microservice Architecture) 환경에서 복수의 애플리케이션들에 의해 순차적으로 요청되는 일련의 데이터베이스 트랜잭션 그룹을 처리하는 방법 및 장치에 관한 것이다.
MSA(Microservice Architecture)는 하나의 서비스 기능을 여러 개의 작은 단위의 서비스 기능(예컨대, 애플리케이션)으로 분할하여, 상기 분할된 서비스 기능을 이용하여 전체 서비스 기능을 수행하는 아키텍처를 의미한다. 상기 MSA는 전체 서비스가 독립된 서비스 기능으로 구현됨에 따라, 서비스 기능의 변경과 유지보수가 용이한 장점이 있다.
상기 분할된 서비스 기능은 데이터베이스에 대해 독립된 트랜잭션을 수행한다.
도 1은 MSA를 예시하는 도면으로서, 각기 독립된 서비스 기능을 담당하는 복수의 애플리케이션이 도 1에 예시되어 있다. 상기 각 애플리케이션은 데이터베이스로 트랜잭션을 요청할 수 있으며, 각각의 애플리케이션은 계층적으로 서로 연결될 수 있다. 예컨대, 애플리케이션 A는 최상위 계층의 애플리케이션이고, 애플리케이션 D는 최하위 계층일 수 있다.
이러한 애플리케이션의 계층 구조에 따라, 전체 트랜잭션을 처리하기 위해서, 애플리케이션 A, 애플리케이션 B, 애플리케이션 C, 애플리케이션 D 순서로, 애플리케이션이 호출될 수 있다. 이러한 호출 순서에 따라, 애플리케이션 D는 트랜잭션#1을 데이터베이스로 요청하고 트랜잭션#1의 처리 결과를 애플리케이션 C로 반환하고, 애플리케이션 C는 트랜잭션#2를 데이터베이스로 요청한 후 트랜잭션#2의 처리 결과를 애플리케이션 B로 반환하고, 애플리케이션 B는 트랜잭션#3을 데이터베이스로 요청한 후 트랜잭션#3의 처리 결과를 애플리케이션 A로 반환하고, 최종적으로 애플리케이션 A는 트랜잭션 #4를 데이터베이스로 요청하여 트랜잭션 #4를 처리할 수 있다.
상술한 바와 같이, MSA 환경에서는 각 애플리케이션들이 각기 다른 트랜잭션을 순차적으로 처리한다. 그런데 서로 연관된 트랜잭션 중에서 어느 하나의 트랜잭션에서 오류가 발생한 경우, 이전에 처리된 트랜잭션에 대한 롤백이 수행되기 못하는 경우가 발생할 수 있다. 예를 들어, 애플리케이션 D에서 트랜잭션#1을 처리하고, 애플리케이션 C에서 트랜잭션#2를 처리한 상태에서, 애플리케이션 B가 트랜잭션#3을 처리하는 과정에서 오류를 발생할 수 있다. 이 경우, 트랜잭션#3에 대한 롤백이 데이터베이스에서 수행될 수 있으나, 트랜잭션#3 이전에 처리된 트랜잭션#1와 #2가 롤백되지 않아, 상기 트랜잭션#1와 #2와 관련된 데이터와 상기 트랜잭션#3과 관련된 데이터의 정합성이 맞지 않게 된다.
이러한 경우에 대비하여, 중앙에 컨트롤러를 구축하고, 중앙의 컨트롤러가 각각의 애플리케이션의 트랜잭션 관리하는 중앙 집중 관리 방식을 고려할 수 있다. 그런데 이러한 중앙 집중 방식은 중앙의 컨트롤러에 부하가 집중되어, 중앙 컨트롤러에 장애가 발생한 경우 전체 시스템이 마비될 수 있다. 또한, 중앙 집중식 방식은 동일한 DBMS(DataBase Management System)에 대해서만 적용 가능하여, 이기종 DBMS를 포함하는 시스템에서는 적용이 불가능하다.
한편, 각 애플리케이션에 트랜잭션 오류를 모니터링하고 트랜잭션의 오류를 롤백하기 위한 기능을 탑재하는 것을 고려할 수 있다. 그런데 애플리케이션에 트랜잭션 모니터링을 위한 추가 기능을 탑재하는 것은, 애플리케이션의 개발 비용을 증가시킬 수 있고, 트랜잭션 모니터링을 위한 추가 기능에 변동 사항이 발생하는 경우, 전체 애플리케이션의 구동이 중단되어야 한다. 이렇게 로직 변경을 위해서 애플리케이션의 구동을 중단하는 경우, 전체 시스템의 동작도 중단된다.
한국 등록특허공보 제10-2109461호
본 발명의 일 실시예를 통해 달성하고자 하는 기술적 과제는, MSA 환경에서 데이터 정합성이 보장될 수 있도록, 일련의 데이터베이스 트랜잭션 그룹을 처리하는 방법 및 장치를 제공하는데 있다.
본 발명의 일 실시예를 통해 달성하고자 하는 다른 기술적 과제는, 다양한 이기종 DBMS를 포함하는 시스템에서도 적용 가능한 트랜잭션 처리 방법 및 장치를 제공하는데 있다.
본 발명의 일 실시예를 통해 달성하고자 하는 또 다른 기술적 과제는, 확장성과 호환성이 우수한 트랜잭션 처리 방법 및 장치를 제공하는데 있다.
본 발명의 일 실시예를 통해 달성하고자 하는 또 다른 기술적 과제는, 애플리케이션의 중단없이 데이터를 롤백을 위한 로직을 변경할 수 있는 방법 및 장치를 제공하는데 있다.
본 발명의 일 실시예를 통해 달성하고자 하는 또 다른 기술적 과제는, 트랜잭션 롤백에 실패하더라도 트랜잭션의 롤백을 재처리할 수 있는 트랜잭션 처리 방법 및 장치를 제공하는데 있다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 트랜잭션 처리 방법은, 복수의 애플리케이션들 중 제1 애플리케이션에 의해 제1 데이터베이스에 요청된 제1 트랜잭션을 트랜잭션 그룹 ID와 연관하여 기록하는 단계, 상기 복수의 애플리케이션들 중, 상기 제1 애플리케이션에 의해 호출된 제2 애플리케이션에 의해 제2 데이터베이스에 요청된 제2 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 기록하는 단계, 상기 제2 트랜잭션의 처리 중에 오류가 발생하였다는 판정에 응답하여, 상기 제2 데이터베이스를 대상으로 상기 제2 트랜잭션을 롤백하는 단계, 상기 트랜잭션 그룹 ID에 기초하여 상기 제1 트랜잭션을 식별하는 단계, 및 상기 제1 데이터베이스를 대상으로 상기 제1 트랜잭션을 롤백하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제1 데이터베이스와 상기 제2 데이터베이스는 서로 구별되는 데이터베이스일 수 있다.
일 실시예에서, 상기 제1 애플리케이션에 의해 상기 제2 애플리케이션이 호출될 때, 상기 제1 애플리케이션에 의해 상기 트랜잭션 그룹 ID가 상기 제2 애플리케이션으로 전달될 수 있다.
일 실시예에서, 상기 트랜잭션 처리 방법은, 상기 복수의 애플리케이션들 중, 상기 제2 애플리케이션에 의해 호출된 제3 애플리케이션에 의해 제3 데이터베이스에 요청된 제3 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 기록하는 단계, 및 상기 제3 트랜잭션의 처리 중에 오류가 발생하였다는 판정에 응답하여, 상기 제3 데이터베이스를 대상으로 상기 제3 트랜잭션을 롤백하는 단계, 상기 트랜잭션 그룹 ID에 기초하여 상기 제2 트랜잭션 및 상기 제1 트랜잭션을 식별하는 단계, 및 상기 제2 트랜잭션 및 상기 제1 트랜잭션을 순차적으로 롤백하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 제1 데이터베이스에 요청된 제1 트랜잭션을 기록하는 동작은 상기 제1 데이터베이스에 의해 트리거링될 수 있다.
일 실시예에서, 상기 제1 데이터베이스에 요청된 제1 트랜잭션을 트랜잭션 그룹 ID와 연관하여 기록하는 단계는, 상기 제1 트랜잭션이 데이터 갱신 트랜잭션인 경우, 상기 제1 트랜잭션에 의한 갱신 이전에, 갱신 대상 데이터 엔트리의 값을 기록하는 단계를 포함할 수 있다. 이 경우, 상기 제1 데이터베이스를 대상으로 상기 제1 트랜잭션을 롤백하는 단계는, 상기 기록된 갱신 대상 데이터 엔트리의 값을 이용하여 상기 제1 트랜잭션을 롤백하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제1 데이터베이스에 요청된 제1 트랜잭션을 트랜잭션 그룹 ID와 연관하여 기록하는 단계는, 상기 제1 트랜잭션이 데이터 삭제 트랜잭션인 경우, 상기 제1 트랜잭션에 의한 삭제 이전에, 삭제 대상 데이터 엔트리의 값을 기록하는 단계를 포함할 수 있다. 이 경우, 상기 제1 데이터베이스를 대상으로 상기 제1 트랜잭션을 롤백하는 단계는, 상기 기록된 삭제 대상 데이터 엔트리의 값을 이용하여 상기 제1 트랜잭션을 롤백하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제2 트랜잭션의 처리 중에 오류가 발생하였다는 판정은, 공유 저장소에 기록된 데이터에 기초한 판정일 수 있다.
일 실시예에서, 상기 트랜잭션 처리 방법은, 상기 제1 트랜잭션 및 상기 제2 트랜잭션의 처리가 성공적으로 완료되었다는 판정에 응답하여, 상기 제1 트랜잭션의 기록 및 상기 제2 트랜잭션의 기록을 삭제하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 트랜잭션 처리 방법은, 상기 제2 트랜잭션 및 상기 제1 트랜잭션의 롤백 처리가 성공적으로 완료되었다는 판정에 응답하여, 상기 제1 트랜잭션의 기록 및 상기 제2 트랜잭션의 기록을 삭제하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 트랜잭션 처리 방법은, 상기 제2 트랜잭션 또는 상기 제1 트랜잭션의 롤백 처리 중에 오류가 발생하였다는 판정에 응답하여, 상기 제1 트랜잭션의 기록 및 상기 제2 트랜잭션의 기록을 유지하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 제2 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 기록하는 단계는, 상기 제1 트랜잭션의 하위 계층에 상기 제2 트랜잭션을 기록하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예에 따른 컴퓨팅 장치는, 하나 이상의 프로세서, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리, 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하고, 상기 컴퓨터 프로그램은 복수의 애플리케이션들 중 제1 애플리케이션에 의해 제1 데이터베이스에 요청된 제1 트랜잭션을 트랜잭션 그룹 ID와 연관하여 기록하는 동작, 상기 복수의 애플리케이션들 중, 상기 제1 애플리케이션에 의해 호출된 제2 애플리케이션에 의해 제2 데이터베이스에 요청된 제2 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 기록하는 동작, 상기 제2 트랜잭션의 처리 중에 오류가 발생하였다는 판정에 응답하여, 상기 제2 데이터베이스를 대상으로 상기 제2 트랜잭션을 롤백하는 동작. 상기 트랜잭션 그룹 ID에 기초하여 상기 제1 트랜잭션을 식별하는 동작, 및 상기 제1 데이터베이스를 대상으로 상기 제1 트랜잭션을 롤백하는 동작을 수행하기 위한 인스트럭션들(instructions)을 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 또 다른 실시예에 따른, 명령어를 포함하는 컴퓨터 판독 가능한 비일시적 저장 매체는, 상기 명령어는 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 복수의 애플리케이션들 중 제1 애플리케이션에 의해 제1 데이터베이스에 요청된 제1 트랜잭션을 트랜잭션 그룹 ID와 연관하여 기록하는 단계, 상기 복수의 애플리케이션들 중, 상기 제1 애플리케이션에 의해 호출된 제2 애플리케이션에 의해 제2 데이터베이스에 요청된 제2 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 기록하는 단계, 상기 제2 트랜잭션의 처리 중에 오류가 발생하였다는 판정에 응답하여, 상기 제2 데이터베이스를 대상으로 상기 제2 트랜잭션을 롤백하는 단계, 상기 트랜잭션 그룹 ID에 기초하여 상기 제1 트랜잭션을 식별하는 단계, 및 상기 제1 데이터베이스를 대상으로 상기 제1 트랜잭션을 롤백하는 단계를 포함하는 동작들을 수행하도록 할 수 있다.
도 1은 MSA를 예시하는 도면이다.
도 2는 본 발명의 일 실시예 따른, 트랜잭션 처리 시스템을 나타내는 도면이다.
도 3은 애플리케이션들이 호출되는 순서를 예시하는 도면이다.
도 4와 도 5는 저장소에 기록되는 계층적 구조의 트랜잭션을 예시하는 도면이다.
도 6은 본 발명의 다른 실시예에 따른, 트랜잭션 처리 방법을 설명하기 위한 신호 흐름도이다.
도 7은 본 발명의 또 다른 실시예에 따른, 트랜잭션 처리 방법의 순서도이다.
도 8은 도 7을 참조하여 설명한 단계 S130을 자세하게 설명하기 위한 도면이다.
도 9는 도 8을 참조하여 설명한 단계 S135를 자세하게 설명하기 위한 도면이다.
도 10은 도 7을 참조하여 설명한 단계 S150을 자세하게 설명하기 위한 도면이다.
도 11은 다양한 실시예에서 컴퓨팅 장치를 구현할 수 있는 예시적인 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 도면들을 참조하여 본 발명의 몇몇 실시예들을 설명한다.
도 2는 본 발명의 일 실시예 따른, 트랜잭션 처리 시스템을 나타내는 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 트랜잭션 처리 시스템은 복수의 애플리케이션(11, 21, 31), 복수의 데이터베이스(12, 22, 32), 기록 모듈(13, 23, 33), 저장소(40) 및 롤백 모듈(50)을 포함하여 구성될 수 있다.
복수의 애플리케이션(11, 21, 31)은 MSA(Microservice Architecture) 환경에서 클라이언트를 위한 서비스와 그에 수반되는 트랜잭션들을 분산 처리하기 위한 기능을 수행할 수 있다. 상기 복수의 애플리케이션(11, 21, 31)은 일련의 데이터베이스 트랜잭션 그룹을 처리할 수 있다. 상기 트랜잭션 그룹은 복수의 트랜잭션을 포함할 수 있다. 각각의 애플리케이션(11, 21, 31)은 자신이 액세스하는 데이터베이스(12, 22, 32)에 포함된 데이터를 이용함으로써, 자신의 트랜잭션을 처리할 수 있다. 예를 들어, 작업이 트랜잭션 A, 트랜잭션 B, 트랜잭션 C로 분할된 경우, 애플리케이션 A(11)는 데이터베이스 A(12)로 상기 트랜잭션 A를 요청할 수 있고, 애플리케이션 B(21)는 데이터베이스 B(22)로 트랜잭션 B를 요청할 수 있다. 데이터베이스(12, 22, 32)는 요청된 트랜잭션을 기초로, 데이터를 읽거나, 갱신하거나, 삭제하거나, 새로운 데이터를 저장할 수 있다.
각 애플리케이션(11, 21, 31)은 트랜잭션을 처리하기 위하여, 계층적인 구조로 이루어질 수 있다. 작업이 요청되면 최상위 애플리케이션(11)에서부터 최하위 애플리케이션(31)의 순서로, 애플리케이션(11, 12, 13)이 순차적으로 호출될 수 있다. 또한, 호출된 애플리케이션(11, 21, 31)으로 트랜잭션 그룹 ID가 전달될 수 있다.
도 3은 애플리케이션들이 호출되는 순서를 예시하는 도면으로서, 애플리케이션 A, B, C 순으로 애플리케이션이 호출되고 있으며, 또한 애플리케이션이 호출될 때 트랜잭션 그룹 ID가 호출된 애플리케이션으로 전달될 수 있다. 상기 트랜잭션 그룹 ID는 맨 처음에 배치된 애플리케이션 A(11) 또는 기록 모듈 A(13)에 의해서 할당될 수 있다. 일 실시예에서, 애플리케이션 A(11)는 작업이 요청되면, 작업 처리를 위한 트랜잭션 그룹 ID를 할당할 수 있다. 다른 실시예에서, 기록 모듈 A(13)는 애플리케이션 A(11)가 새로운 작업에 대한 처리를 개시하면, 트랜잭션 그룹 ID를 할당하고, 상기 할당된 트랜잭션 그룹 ID를 애플리케이션 A(11)로 전달할 수 있다.
각 데이터베이스(12, 22, 32)는 데이터를 저장하고 있으며, DBMS를 탑재할 수 있다. 각 데이터베이스(12, 22, 32)는 서로 구별되는 데이터베이스(12, 22, 32)일 수 있다. 예컨대, 각 데이터베이스(12, 22, 32)는 물리적 또는 논리적으로 서로 구별될 수 있다. 또한, 각 데이터베이스(12, 22, 32)는 서로 다른 DBMS가 탑재될 수 있다. 예컨대, 데이터베이스 A(12), 데이터베이스 B(22), 데이터베이스 C(32) 각각으로 서로 다른 DBMS를 탑재할 수 있다. 상기 데이터베이스(12, 22, 32)는 자체적으로 제공중인 트리거 기능을 통해서, 트랜잭션의 기록을 기록 모듈(13, 23, 33)로 요청할 수 있다. 상기 트리거 기능은 DBMS을 통해 제공될 수 있다. 또한, 상기 데이터베이스(12, 22, 32)는 트리거 기능을 이용하여, 데이터베이스(12, 22, 32)가 변경되기 전에, 갱신 대상이 된 엔트리의 값 또는 삭제 대상이 된 엔트리의 값을 기록 모듈(13, 23, 33)로 제공할 수 있다. 상기 갱신 대상이 된 엔트리의 값은, 갱신 트랜잭션이 처리되기 이전에, 데이터베이스(12, 22, 32)에 저장된 데이터로서, 상기 갱신 트랜잭션이 처리됨에 따라 변경된 데이터이다. 또한, 상기 삭제 대상이 된 엔트리의 값은, 삭제 트랜잭션이 처리되기 전에 데이터베이스(12, 22, 32)에 저장된 데이터로서, 상기 삭제 트랜잭션이 처리됨에 따라 삭제된 데이터이다.
상기 기록 모듈(13, 23, 33)은, 각 애플리케이션(11, 21, 31)에서 발생되는 트랜잭션을 로그 데이터로서 저장소(40)에 기록할 수 있다. 보다 구체적으로, 기록 모듈(13, 23, 33)은 애플리케이션(11, 21, 31)에서 처리하는 트랜잭션을 트랜잭션 그룹 ID와 연관하여 저장소(40)에 기록할 수 있다. 상기 저장소(40)에 기록된 트랜잭션은 명령문, 데이터베이스 식별정보를 포함할 수 있다.
상기 기록 모듈(13, 23, 33)은 애플리케이션(11, 21, 31)에 의해 데이터베이스(12, 22, 32)에 요청된 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 기록할 수 있다. 일 실시예에서, 상기 기록 모듈(13, 23, 33)은 상기 데이터베이스(12, 22, 32)로부터 트리거링이 발생될 때, 상기 데이터베이스(12, 22, 32)에 요청된 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 저장소(40)에 기록할 수 있다. 즉, 기록 모듈(13, 23, 33)은 상기 데이터베이스(12, 22, 32)의 요청에 따라, 상기 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 저장소(40)에 기록할 수 있다. 다른 실시예에서, 상기 기록 모듈(13, 23, 33)은 애플리케이션(11, 21, 31)의 동작을 모니터링하여, 상기 애플리케이션(11, 21, 31)에서 트랜잭션 처리하기 위해서 데이터베이스(12, 22, 32)로 트랜잭션을 요청하는 경우에, 상기 트랜잭션을 트랜잭션 그룹 ID와 연관하여 기록할 수 있다. 여기서, 데이터베이스(12, 22, 32)에 트랜잭션을 요청하는 것은, 데이터베이스(12, 22, 32)의 데이터를 읽거나, 업데이트하거나, 데이터를 생성하거나 데이터를 삭제하는 등과 같은 데이터베이스(12, 22, 32)로의 접근과 관련된 요청일 수 있다.
일 실시예에서, 기록 모듈(13, 23, 33)은 상기 데이터베이스(12, 22, 32)로 요청된 트랜잭션이 데이터베이스(12, 22, 32)를 변동시키는 트랜잭션인 경우에, 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 상기 저장소(40)에 기록할 수 있다. 예를 들어, 기록 모듈(13, 23, 33)은 상기 트랜잭션이 데이터 갱신 트랜잭션, 데이터 삭제 트랜잭션, 데이터 생성 트랜잭션 중 어느 하나인 경우에, 상기 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 저장소(40)에 저장할 수 있다.
기록 모듈(13, 23, 33)은 데이터베이스(12, 22, 32)로 요청된 트랜잭션이 정상적으로 처리되었는지 여부를 판정하여, 오류로 판정된 트랜잭션을 저장소(40)에 표기할 수 있다. 일 실시예에서, 기록 모듈(13, 23, 33)은 오류로 판정된 트랜잭션에 오류 플래그를 기록할 수 있다. 일 실시예에서, 상기 기록 모듈(13, 23, 33)은 애플리케이션 개수만큼 시스템에 포함될 수 있고, 몇몇 실시예서 하나의 기록 모듈(13, 23, 33)이 시스템에 포함될 수도 있다.
저장소(40)는 공용으로 이용될 수 있는 저장 수단으로서, 로컬 저장소, 네트워크 저장소 등을 포함할 수 있다. 상기 저장소(40)에는 계층적 구조의 복수의 트랜잭션이 트랜잭션 그룹 ID와 연관되어 기록될 수 있다.
도 4는 계층적 구조의 트랜잭션을 예시하는 도면으로서, 각각의 트랜잭션을 그룹 ID와 연관되어 저장소(40)에 기록될 수 있다. 도 4에서 예시된 바와 같이, 트랜잭션에도 ID가 할당되어 관리될 수 있다. 상기 트랜잭션 ID는 기록 모듈(13, 23, 33)에 의해서 할당되어 기록될 수 있다.
도 4에 따르면, 최상위 계층의 트랜잭션은 ID#1을 가지는 트랜잭션이고, 최하위 계층의 ID#3을 가지는 트랜잭션일 수 있다. 여기서, 최상위 계층의 트랜잭션은 맨 처음에 처리된 트랜잭션이고, 최하위 계층의 트랜잭션은 마지막으로 처리된 트랜잭션일 수 있다. 또한, 트랜잭션과 갱신 대상 또는 삭제 대상 엔트리의 값이 연관되어 저장소(40)에 기록될 수 있다.
도 5는 계층적 구조의 또 다른 트랜잭션을 예시하는 도면으로서, 도 5의 트랜잭션 ID#2에서와 같이, 트랜잭션 오류를 나타내는 오류 플래그(ERR)가 트랜잭션과 연관되어 기록될 수도 있다. 상기 오류 플래그는 후술하는 바와 같이, 트랜잭션 롤백을 위해서 사용될 수 있다.
롤백 모듈(50)은 트랜잭션의 처리 중에 오류가 발생하였다는 판정에 응답하여, 하나 이상의 데이터베이스(12, 22, 32)를 대상으로 트랜잭션을 롤백 할 수 있다. 상기 롤백 모듈(50)은 저장소(40)에 기록된 복수의 트랜잭션을 기초로 롤백 대상이 되는 트랜잭션을 식별할 수 있다. 일 실시예에서, 롤백 모듈(50)은 트랜잭션에 표기된 오류 플래그를 기준으로, 롤백 대상 트랜잭션을 식별할 수 있다. 롤백 모듈(50)은 오류 플래그가 표기된 트랜잭션을 식별하고, 상기 트랜잭션에 대한 롤백을 수행할 수 있다. 일 실시예에서, 롤백 모듈(50)은 상기 식별한 트랜잭션에 포함된 데이터베이스 식별정보를 식별하고, 상기 식별정보와 상응하는 데이터베이스(12, 22, 32)를 대상으로 트랜잭션 롤백을 수행할 수 있다. 또한, 롤백 모듈(50)은 롤백된 트랜잭션과 연관된 상위 계층에 있는 타 트랜잭션을 식별하고, 상기 식별한 타 트랜잭션에 대한 롤백을 수행할 수도 있다.
본 실시예의 트랜잭션 처리 시스템에 따르면, 기록 모듈(13, 23, 33)이 트랜잭션을 모니터링하여 트랜잭션 관련 데이터를 저장소(40)에 기록하고, 저장소(40)에 기록된 트랜잭션에 기초하여 롤백이 수행된다. 즉, 본 실시에서 따르면, 트랜잭션 관련 기록과 트랜잭션 롤백은 애플리케이션(11, 21, 31)의 동작과는 별개로 수행된다. 이에 따라, 로직을 변경하고자 하는 경우에 애플리케이션(11, 21, 31)의 동작을 중단하지 않고, 기록 모듈(13, 23, 33)과 롤백 모듈(50)의 로직을 변경하면 되기 때문에, 전체 시스템에 악영향을 미치지 않고 로직 변경을 진행할 수 있다.
또한, 본 실시예에 따르면, 저장소(40)에 기록된 트랜잭션 데이터를 기초로 데이터베이스(12, 22, 32)의 롤백이 진행되기 때문에, DBMS에 종속적이 않다. 이에 따라, 다양한 종류의 DBMS가 포함하는 시스템 환경에도 적용 가능하여 확장성과 호환성이 우수하다.
도 6은 본 발명의 다른 실시예에 따른, 트랜잭션 처리 방법을 설명하기 위한 신호 흐름도이다.
도 6을 참조한 설명에서는, 애플리케이션 B(21)가 최하위 계층이 위치한 애플리케이션인 것으로 가정하여 설명한다.
도 6을 참조하면, 애플리케이션 A(11)은 요청된 작업을 처리하기 위하여, 애플리케이션 B(21)를 호출할 수 있다(S1). 이때, 애플리케이션 A(11)는 애플리케이션 B(21)로 트랜잭션 그룹 ID를 전달할 수 있다.
이어서, 애플리케이션 B(21)는 상기 작업을 분산 처리하기 위하여, 데이터베이스 B(22)로 트랜잭션#1을 요청하고, 상기 트랜잭션#1이 데이터베이스 B(22)에서 처리되게 할 수 있다(S2). 다음으로, 기록 모듈 B(23)는 상기 트랜잭션 그룹 ID와 연관하여 상기 트랜잭션#1을 저장소(40)에 기록할 수 있다(S3).
트랜잭션#1이 정상적으로 처리되었다는 응답이 데이터베이스 B(22)로부터 수신되면(S4), 애플리케이션 B(21)는 트랜잭션#1의 처리 결과를 애플리케이션 A(11)로 반환할 수 있다(S5). 이어서, 애플리케이션 A(11)는 트랜잭션#2를 데이터베이스 A(12)로 요청할 수 있다(S6). 다음으로, 기록 모듈 A(13)는 상기 트랜잭션 그룹 ID와 연관하여 상기 트랜잭션#2를 저장소(40)에 기록할 수 있다(S7). 이때, 트랜잭션#1의 하위 계층에 상기 트랜잭션#2가 기록될 수 있다.
데이터베이스 A(12)에 의해 트랜잭션#2가 처리되는 도중에 오류가 발생할 수 있으며, 이 경우 애플리케이션 A(11)는 트랜잭션#2에 대한 오류 응답을 데이터베이스 B(22)로부터 수신할 수 있다(S8). 이어서, 기록 모듈(13, 23, 33)은 오류 플래그를 상기 트랜잭션#2와 연관하여 기록할 수 있다.
이렇게 오류 플래그가 표기된 트랜잭션#2가 저장소(40)에 저장된 상태에서, 롤백 모듈(50)은 상기 저장소(40)에 접근하여(S11), 오류 플래그가 표기된 트랜잭션#2를 식별할 수 있다(S12). 롤백 모듈(50)은 오류 플래그를 식별함에 따라 트랜잭션 그룹 ID와 연관된 모든 트랜잭션을 순차적으로 롤백하기 위한 프로세스를 진행할 수 있다. 먼저, 롤백 모듈(50)은 상기 오류 플래그가 표기된 트랜잭션#2에 대한 롤백을 데이터베이스 B(22)로 요청할 수 있다(S13). 데이터베이스 B(22)가 상기 트랜잭션#2에 대한 롤백을 정상적으로 완료한 경우, 롤백 모듈(50)은 상기 데이터베이스 B(22)로부터 롤백 완료 응답을 수신할 수 있다(S14).
다음으로, 롤백 모듈(50)은 상기 트랜잭션 그룹 ID와 연관된 또 다른 트랜잭션인 트랜잭션#1을 식별할 수 있다(S15). 롤백 모듈(50)은 상기 트랜잭션#1에 대한 롤백을 데이터베이스 A(12)로 요청할 수 있다(S16). 데이터베이스 A(12)가 상기 트랜잭션#1에 대한 롤백을 정상적으로 완료한 경우, 롤백 모듈(50)은 상기 데이터베이스 A(12)로부터 롤백 완료 응답을 수신할 수 있다(S17).
본 실시예에 따르면, 작업을 분산 처리하기 위해서 발생하는 복수의 트랜잭션을 그룹으로 관리하고, 복수의 트랜잭션 중에서 어느 하나에 오류가 발생하면, 트랜잭션들을 역순으로 롤백함으로써, 데이터베이스(12, 22, 32)에 저장된 데이터의 정합성을 보장할 수 있다.
상술한 실시예에 따른 기록 모듈(13, 23, 33)과 롤백 모듈(50)은 컴퓨팅 장치에 포함되어 동작될 수 있다.
이하, 도 7 내지 도 10을 참조하여, 기록 모듈(13, 23, 33)과 롤백 모듈(50)을 포함하는 컴퓨팅 장치에 의해서 수행되는 트랜잭션 처리 방법에 대해서 설명한다.
도 7은 본 발명의 또 다른 실시예에 따른, 트랜잭션 처리 방법의 순서도이다.
도 7에 도시된 방법의 각 단계는 컴퓨팅 장치에 의해 수행될 수 있다. 다시 말하면, 본 방법의 각 단계는 컴퓨팅 장치의 프로세서에 의해 실행되는 하나 이상의 인스트럭션들로 구현될 수 있다. 본 방법에 포함되는 제1 단계들은 제1 컴퓨팅 장치에 의하여 수행되고, 본 방법의 제2 단계들은 제2 컴퓨팅 장치에 의하여 수행될 수 있다. 이하에서는, 본 방법의 각 단계가 도 1을 참조하여 설명한 기록 모듈(13, 23, 33)과 롤백 모듈(50)을 포함하는 컴퓨팅 장치에 의해 수행되는 것을 가정하여 설명을 이어가도록 하되, 각 단계의 수행 주체는 단지 예시일 뿐, 본 발명이 이하의 설명에 의해 한정되는 아니며, 설명의 편의를 위해 상기 방법에 포함되는 일부 단계의 동작 주체는 그 기재가 생략될 수도 있다.
도 7을 참조하면, 컴퓨팅 장치에 포함된 기록 모듈(13, 23, 33)은 작업 처리가 요청되는 것이 감지할 수 있다(S110). 이어서, 기록 모듈(13, 23, 33)은 상기 작업을 위한 트랜잭션 그룹 ID를 할당할 수 있다(S120). 몇몇 실시예에서는, 애플리케이션(11, 21, 31)이 트랜잭션 그룹 ID를 할당할 수 있으며, 이 경우 기록 모듈(13, 23, 33)은 애플리케이션(11, 21, 31)으로부터 트랜잭션 그룹 ID를 획득할 수 있다.
이어서, 기록 모듈(13, 23, 33)은 애플리케이션(11, 21, 31)에 의해 데이터베이스(12, 22, 32)로 트랜잭션이 요청되면, 상기 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 저장소(40)에 기록할 수 있다(S130). 즉, 기록 모듈(13, 23, 33)은 도 4와 도 5에서 예시된 바와 같이 하나 이상의 트랜잭션을 트랜잭션 그룹 ID와 연관하여 기록할 수 있다. 단계 S130는 도 8 및 도 9를 참조하여 보다 구체적으로 설명하기로 한다.
컴퓨팅 장치에 포함된 롤백 모듈(50)은 저장소(40)에 접근하여 오류로 표기된(즉, 오류 플래그를 가지는) 트랜잭션이 있는지 여부를 판정할 수 있다(S140).
롤백 모듈(50)은 오류로 표기된 트랜잭션이 존재한다는 판정에 응답하여, 상기 트랜잭션 그룹 ID와 연관된 하나 이상의 트랜잭션을 롤백할 수 있다(S150). 상기 트랜잭션 그룹 ID와 연관된 트랜잭션이 복수 개인 경우, 롤백 모듈(50)은 하위 계층에 있는 트랜잭션에서부터 상위 계층에 있는 트랜잭션의 순서로, 순차적으로 트랜잭션을 롤백할 수 있다. 앞서 설명한 바와 같이, 상위 계층에 있는 트랜잭션은 상대적으로 먼저 처리된 트랜잭션이고, 하위 계층에 있는 트랜잭션은 상대적으로 늦게 처리된 트랜잭션이다. 단계 S150는 도 10을 참조하여 보다 구체적으로 설명된다.
한편 단계 S140의 판정 결과, 오류로 표기된 트랜잭션이 존재하지 않으면, 롤백 모듈(50)은 상기 트랜잭션 그룹 ID와 연관된 하나 이상의 트랜잭션을 저장소(40)에서 삭제할 수 있다(S160).
이하, 도 8을 참조하여, 도 7을 참조하여 설명한 단계 S130에 대해서 보다 구체적으로 설명한다.
도 8을 참조하면, 최하위 애플리케이션이 호출되는 것을 감지할 수 있으며, 또한 상위 트랜잭션에서 하위 트랜잭션으로 트랜잭션 그룹 ID가 전달되는 것을 감지할 수 있다(S131, S132). 즉, 상위 애플리케이션이 하위 애플리케이션을 호출할 수 있으며, 또한 호출된 하위 애플리케이션으로 트랜잭션 그룹 ID가 전달되는 것이 컴퓨팅 장치에 의해서 감지될 수 있다.
이어서, 컴퓨팅 장치에 포함된 기록 모듈(13, 23, 33)은 호출된 애플리케이션에 의해서 데이터베이스로 요청되는 트랜잭션이 데이터베이스를 변동시키는 트랜잭션 유형인지 여부를 판정할 수 있다(S133). 상기 데이터베이스를 변동시키는 트랜잭션의 유형은, 갱신 트랜잭션, 삭제 트랜잭션 및 생성 트랜잭션을 포함할 수 있다. 여기서, 갱신 트랜잭션은 데이터베이스에 포함된 데이터를 다른 데이터로 갱신하는 트랜잭션이고, 삭제 트랜잭션은 데이터베이스에 포함된 데이터를 삭제하는 트랜잭션이며, 생성 트랜잭션은 데이터베이스에 새로운 데이터를 생성하여 저장하는 트랜잭션일 수 있다.
다음으로, 기록 모듈(13, 23, 33)은 상기 요청된 트랜잭션이 데이터베이스를 변동시키는 트랜잭션이라는 판정에 응답하여, 상기 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 저장소(40)에 기록할 수 있다(S135). 일 실시예에서, 기록 모듈(13, 23, 33)은 트랜잭션의 유형에 따라, 이전 엔트리 값을 저장할 수 있으며, 상기 단계 S135에 대해서는 도 9를 참조하여 더욱 자세하게 설명하기로 한다.
이어서, 기록 모듈(13, 23, 33)은 데이터베이스에서 처리되는 트랜잭션을 모니터링하여, 데이터베이스에서 트랜잭션을 처리할 때 오류가 발생하였는지를 판정할 수 있다(S136). 트랜잭션의 오류가 발생한다는 판정에 응답하여, 기록 모듈(13, 23, 33)은 단계 S135에 기록한 트랜잭션에 연관한여 오류 플래그를 기록함으로써, 상기 트랜잭션을 오류로 표기할 수 있다(S137).
한편, 단계 S134의 판정 결과 상기 요청된 트랜잭션이 데이터베이스를 변동시키는 트랜잭션이 아니거나 단계 S136 판정 결과 트랜잭션이 정상적으로 데이터베이스에서 처리된 경우, 최상위 애플리케이션에서 트랜잭션의 처리가 완료하였는지 여부가 판정될 수 있으며(S138), 최상위 애플리케이션에서 트랜잭션의 처리가 완료되지 않으면 상위 애플리케이션이 호출될 수 있다(S139). 이 경우, 기록 모듈(13, 23, 33)은 호출된 상위 애플리케이션과 데이터베이스를 대상으로 단계 S134부터의 프로세스를 다시 진행할 수 있으며, 이후에 기록되는 트랜잭션은 상기 트랜잭션 그룹 ID와 연관되어 기록되되, 기 기록된 트랜잭션의 하위 계층에 기록될 수 있다.
본 실시예에 따라, 그룹으로 설정된 일련의 데이터베이스 트랜잭션이 계층적으로 저장소(40)에 기록될 수 있다.
이하, 도 9를 참조하여, 도 8을 참조하여 설명한 단계 S135에 대해서 보다 구체적으로 설명한다.
도 9를 참조하면, 기록 모듈(13, 23, 33)은 상기 요청된 트랜잭션의 유형을 판정할 수 있다(S135a).
상기 트랜잭션이 갱신 트랜잭션이라는 판정에 응답하여(S135b의 Yes), 기록 모듈(13, 23, 33)은 갱신 대상 데이터 엔트리의 값과 상기 갱신 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 저장소(40)에 기록할 수 있다(S135c). 즉, 트랜잭션이 갱신 트랜잭션인 경우, 갱신되기 전에 데이터로 복구될 수 있도록, 갱신 대상 데이터 엔트리의 값이 함께 갱신 트랜잭션과 기록될 수 있다.
상기 트랜잭션이 삭제 트랜잭션이라는 판정에 응답하여(S135d의 Yes), 기록 모듈(13, 23, 33)은 삭제 대상 데이터 엔트리의 값과 상기 삭제 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 저장소(40)에 기록할 수 있다(S135e). 즉, 트랜잭션이 삭제 트랜잭션인 경우, 삭제되기 전에 데이터로 복구될 수 있도록, 삭제 대상 데이터 엔트리의 값이 함께 삭제 트랜잭션과 기록될 수 있다.
상기 트랜잭션이 생성 트랜잭션이라는 판정에 응답하여(S135d의 No), 기록 모듈(13, 23, 33)은 생성 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 저장소(40)에 기록할 수 있다(S135f).
본 실시예에 따르면, 트랜잭션 처리시에 오류가 발생한 경우, 트랜잭션을 롤백하기 위하여 이전 데이터의 엔트리 값을 함께 저장하여, 데이터 복구를 용이하게 하는 효과를 발휘할 수 있다.
이하, 도 10을 참조하여, 도 7을 참조하여 설명한 단계 S150에 대해서 보다 구체적으로 설명한다.
도 10을 참조하면, 롤백 모듈(50)은 저장소(40)에 접근하여 오류 발생한 트랜잭션을 식별할 수 있다(S151). 이어서, 롤백 모듈(50)은 상기 식별한 트랜잭션에 대한 롤백을 수행할 수 있다(S152). 일 실시예에서, 롤백 모듈(50)은 상기 트랜잭션에 포함된 데이터베이스의 식별정보를 확인하고, 상기 식별정보와 대응하는 데이터베이스로 상기 트랜잭션에 대한 롤백을 요청함으로써, 상기 데이터베이스(12, 22, 32)의 롤백을 수행할 수 있다. 몇몇 실시예에서, 롤백 모듈(50)은 상기 트랜잭션에 포함된 명령문을 기초로, 상기 명령문이 수행되기 전의 상태로 데이터를 복구하는 명령문을 데이터베이스로 제공함으로써 데이터베이스(12, 22, 32)의 롤백을 수행할 수 있다. 예컨대, 상기 명령문이 생성(create) 명령문인 경우, 상기 생성 명문에 대한 생성된 엔트리 값을 삭제하는 삭제(delete) 명령문을 데이터베이스(12, 22, 32)로 제공할 수 있다.
또한, 상기 트랜잭션이 갱신 트랜잭션인 경우, 롤백 모듈(50)은 갱신 트랜잭션과 연관되어 기록된 갱신 대상 데이터 엔트리의 값을 이용하여 상기 트랜잭션을 롤백을 수행할 수 있다. 예컨대, 롤백 모듈(50)이, 상기 갱신 트랜잭션에 따라 갱신된 데이터의 엔트리 값을 상기 기록된 갱신 대상 엔트리의 값으로 갱신(복구)하는 갱신 명령문을 데이터베이스(12, 22, 32)로 전송함으로써, 갱신 트랜잭션에 대한 롤백을 수행할 수 있다.
한편, 상기 트랜잭션이 삭제 트랜잭션인 경우, 롤백 모듈(50)은 삭제 트랜잭션과 연관되어 기록된 삭제 대상 데이터 엔트리의 값을 이용하여 상기 트랜잭션을 롤백을 수행할 수 있다. 예컨대, 롤백 모듈(50)이, 삭제 대상 데이터의 엔트리 값이 다시 생성되는 생성 명령문을 데이터베이스(12, 22, 32)로 제공함으로써, 삭제 트랜잭션에 대한 롤백을 수행할 수 있다.
이어서, 롤백 모듈(50)은 상기 트랜잭션 그룹 ID와 연관되어 기록된 트랜잭션 중에서 롤백되지 않은 트랜잭션이 존재하는지 여부를 판정할 수 있다(S153).
단계 S153 판정 결과, 상기 트랜잭션 그룹 ID와 연관되어 기록된 트랜잭션이 모두 롤백된 것으로 판정되면, 롤백 모듈(50)은 상기 트랜잭션 그룹 ID 및 상기 트랜잭션 그룹 ID와 연관된 트랜잭션을 저장소(40)에서 삭제할 수 있다(S154).
단계 S153 판정 결과, 상기 트랜잭션 그룹 ID와 연관되어 롤백되지 않은 트랜잭션이 남아 있으면, 롤백 모듈(50)은 상기 트랜잭션 그룹 ID와 연관되어 기록된 트랜잭션들 중에서 롤백되지 않은 타 트랜잭션을 식별할 수 있다(S155). 일 실시예에서, 롤백 모듈(50)은 롤백된 트랜잭션 보다 상위에 위치하는 타 트랜잭션을 식별할 수 있다. 이어서, 롤백 모듈(50)은 상기 식별한 타 트랜잭션에 대한 롤백을 수행할 수 있다(S156).
한편, 롤백 모듈(50)은 트랜잭션에 대한 롤백을 시도하였으나, 데이터베이스에서 롤백이 정상적으로 처리되지 않을 수 있다. 이 경우, 롤백 모듈(50)은 저장소에 저장된 트랜잭션의 기록을 계속적으로 남겨두고, 추후에 저장소(40)에 기록된 트랜잭션을 기초로 다시 트랜잭션 롤백을 다시 수행할 수 있다.
본 실시예에 따르면, 그룹으로 설정된 트랜잭션들 중에서 어느 하나에 오류가 발생하면, 상기 트랜잭션들 모두에 대한 롤백이 진행되게 함으로써, 일부 트랜잭션의 오류로 발생하는 데이터 부정합에 대한 문제를 해결할 수 있다.
이하, 몇몇 실시예들에 따른 예시적인 컴퓨팅 장치의 하드웨어 구성을 도 11을 참조하여 설명하기로 한다.
도 11은 다양한 실시예에서 컴퓨팅 장치를 구현할 수 있는 예시적인 하드웨어 구성도이다. 본 실시예에 따른 컴퓨팅 장치(1000)는 하나 이상의 프로세서(1100), 시스템 버스(1600), 네트워크 인터페이스(1200), 프로세서(1100)에 의하여 수행되는 컴퓨터 프로그램(1500)을 로드(load)하는 메모리(1400)와, 컴퓨터 프로그램(1500)을 저장하는 스토리지(1300)를 포함할 수 있다. 도 11에는 실시예와 관련 있는 구성요소들 만이 도시되어 있다. 따라서, 본 명세서의 실시예들이 속한 기술분야의 통상의 기술자라면 도 11에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(1100)는 컴퓨팅 장치(1000)의 각 구성의 전반적인 동작을 제어할 수 있다. 프로세서(1100)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 명세서의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(1100)는 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(1000)는 둘 이상의 프로세서를 구비할 수 있다.
메모리(1400)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(1400)는 본 명세서의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(1300)로부터 하나 이상의 프로그램(1500)을 로드(load) 할 수 있다. 메모리(1400)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다. 시스템 버스(1600)는 컴퓨팅 장치(1000)의 구성 요소 간 통신 기능을 제공한다.
상기 버스는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다. 네트워크 인터페이스(1200)는 통신망과 연결할 수 있다. 스토리지(1300)는 하나 이상의 컴퓨터 프로그램(1500)을 비임시적으로 저장할 수 있다. 스토리지(1300)는 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 명세서의 실시예들이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(1500)은 본 명세서의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들(instructions)을 포함할 수 있다. 컴퓨터 프로그램(1500)이 메모리(1400)에 로드 되면, 프로세서(1100)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 명세서의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다. 컴퓨터 프로그램(1500)은, 도 3 내지 도 10을 참조하여 설명한 방법을 위한 인스트럭션들을 포함할 수 있다. 일 실시예에서, 컴퓨터 프로그램(1500)은 기록 모듈(13, 23, 33)의 동작을 위한 인스트럭션들을 수행할 수 있으며, 롤백 모듈(50)의 동작을 위한 인스트럭션들을 수행할 수 있다.
상기 컴퓨터 프로그램(1500)은 복수의 애플리케이션들 중 제1 애플리케이션에 의해 제1 데이터베이스에 요청된 제1 트랜잭션을 트랜잭션 그룹 ID와 연관하여 기록하는 동작, 상기 복수의 애플리케이션들 중, 상기 제1 애플리케이션에 의해 호출된 제2 애플리케이션에 의해 제2 데이터베이스에 요청된 제2 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 기록하는 동작, 상기 제2 트랜잭션의 처리 중에 오류가 발생하였다는 판정에 응답하여, 상기 제2 데이터베이스를 대상으로 상기 제2 트랜잭션을 롤백하는 동작, 상기 트랜잭션 그룹 ID에 기초하여 상기 제1 트랜잭션을 식별하는 동작, 및 상기 제1 데이터베이스를 대상으로 상기 제1 트랜잭션을 롤백하는 동작을 수행하기 위한 인스트럭션들을 포함할 수 있다.
지금까지 도 1 내지 도 11을 참조하여 본 발명의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 발명의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 1 내지 도 11을 참조하여 설명된 본 발명의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (14)

  1. 컴퓨팅 장치가, 복수의 애플리케이션들에 의해 순차적으로 요청되는 일련의 데이터베이스 트랜잭션 그룹을 처리하는 방법으로서,
    상기 복수의 애플리케이션들 중 제1 애플리케이션에 의해 제1 데이터베이스에 요청된 제1 트랜잭션을 트랜잭션 그룹 ID와 연관하여 기록하는 단계;
    상기 복수의 애플리케이션들 중, 상기 제1 애플리케이션에 의해 호출된 제2 애플리케이션에 의해 제2 데이터베이스에 요청된 제2 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 기록하는 단계;
    상기 제2 트랜잭션의 처리 중에 오류가 발생하였다는 판정에 응답하여, 상기 제2 데이터베이스를 대상으로 상기 제2 트랜잭션을 롤백하는 단계;
    상기 트랜잭션 그룹 ID에 기초하여 상기 제1 트랜잭션을 식별하는 단계; 및
    상기 제1 데이터베이스를 대상으로 상기 제1 트랜잭션을 롤백하는 단계
    를 포함하는,
    일련의 데이터베이스 트랜잭션 처리 방법.
  2. 제1항에 있어서,
    상기 제1 데이터베이스와 상기 제2 데이터베이스는 서로 구별되는 데이터베이스인,
    일련의 데이터베이스 트랜잭션 처리 방법.
  3. 제1항에 있어서,
    상기 제1 애플리케이션에 의해 상기 제2 애플리케이션이 호출될 때, 상기 제1 애플리케이션에 의해 상기 트랜잭션 그룹 ID가 상기 제2 애플리케이션으로 전달되는,
    일련의 데이터베이스 트랜잭션 처리 방법.
  4. 제1항에 있어서,
    상기 복수의 애플리케이션들 중, 상기 제2 애플리케이션에 의해 호출된 제3 애플리케이션에 의해 제3 데이터베이스에 요청된 제3 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 기록하는 단계; 및
    상기 제3 트랜잭션의 처리 중에 오류가 발생하였다는 판정에 응답하여, 상기 제3 데이터베이스를 대상으로 상기 제3 트랜잭션을 롤백하는 단계;
    상기 트랜잭션 그룹 ID에 기초하여 상기 제2 트랜잭션 및 상기 제1 트랜잭션을 식별하는 단계; 및
    상기 제2 트랜잭션 및 상기 제1 트랜잭션을 순차적으로 롤백하는 단계
    를 더 포함하는,
    일련의 데이터베이스 트랜잭션 처리 방법.
  5. 제1항에 있어서,
    상기 제1 데이터베이스에 요청된 제1 트랜잭션을 기록하는 동작은 상기 제1 데이터베이스에 의해 트리거링되는,
    일련의 데이터베이스 트랜잭션 처리 방법.
  6. 제1항에 있어서,
    상기 제1 데이터베이스에 요청된 제1 트랜잭션을 트랜잭션 그룹 ID와 연관하여 기록하는 단계는,
    상기 제1 트랜잭션이 데이터 갱신 트랜잭션인 경우, 상기 제1 트랜잭션에 의한 갱신 이전에, 갱신 대상 데이터 엔트리의 값을 기록하는 단계를 포함하고,
    상기 제1 데이터베이스를 대상으로 상기 제1 트랜잭션을 롤백하는 단계는,
    상기 기록된 갱신 대상 데이터 엔트리의 값을 이용하여 상기 제1 트랜잭션을 롤백하는 단계
    를 포함하는,
    일련의 데이터베이스 트랜잭션 처리 방법.
  7. 제1항에 있어서,
    상기 제1 데이터베이스에 요청된 제1 트랜잭션을 트랜잭션 그룹 ID와 연관하여 기록하는 단계는,
    상기 제1 트랜잭션이 데이터 삭제 트랜잭션인 경우, 상기 제1 트랜잭션에 의한 삭제 이전에, 삭제 대상 데이터 엔트리의 값을 기록하는 단계를 포함하고,
    상기 제1 데이터베이스를 대상으로 상기 제1 트랜잭션을 롤백하는 단계는,
    상기 기록된 삭제 대상 데이터 엔트리의 값을 이용하여 상기 제1 트랜잭션을 롤백하는 단계
    를 포함하는,
    일련의 데이터베이스 트랜잭션 처리 방법.
  8. 제1항에 있어서,
    상기 제2 트랜잭션의 처리 중에 오류가 발생하였다는 판정은, 공유 저장소에 기록된 데이터에 기초한 판정인,
    일련의 데이터베이스 트랜잭션 처리 방법.
  9. 제1항에 있어서,
    상기 제1 트랜잭션 및 상기 제2 트랜잭션의 처리가 성공적으로 완료되었다는 판정에 응답하여,
    상기 제1 트랜잭션의 기록 및 상기 제2 트랜잭션의 기록을 삭제하는 단계
    를 더 포함하는,
    일련의 데이터베이스 트랜잭션 처리 방법.
  10. 제1항에 있어서,
    상기 제2 트랜잭션 및 상기 제1 트랜잭션의 롤백 처리가 성공적으로 완료되었다는 판정에 응답하여,
    상기 제1 트랜잭션의 기록 및 상기 제2 트랜잭션의 기록을 삭제하는 단계
    를 더 포함하는,
    일련의 데이터베이스 트랜잭션 처리 방법.
  11. 제1항에 있어서,
    상기 제2 트랜잭션 또는 상기 제1 트랜잭션의 롤백 처리 중에 오류가 발생하였다는 판정에 응답하여,
    상기 제1 트랜잭션의 기록 및 상기 제2 트랜잭션의 기록을 유지하는 단계
    를 더 포함하는,
    일련의 데이터베이스 트랜잭션 처리 방법.
  12. 제1항에 있어서,
    상기 제2 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 기록하는 단계는,
    상기 제1 트랜잭션의 하위 계층에 상기 제2 트랜잭션을 기록하는 단계를 포함하는,
    일련의 데이터베이스 트랜잭션 처리 방법.
  13. 하나 이상의 프로세서;
    상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리; 및
    상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
    상기 컴퓨터 프로그램은,
    복수의 애플리케이션들 중 제1 애플리케이션에 의해 제1 데이터베이스에 요청된 제1 트랜잭션을 트랜잭션 그룹 ID와 연관하여 기록하는 동작;
    상기 복수의 애플리케이션들 중, 상기 제1 애플리케이션에 의해 호출된 제2 애플리케이션에 의해 제2 데이터베이스에 요청된 제2 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 기록하는 동작;
    상기 제2 트랜잭션의 처리 중에 오류가 발생하였다는 판정에 응답하여, 상기 제2 데이터베이스를 대상으로 상기 제2 트랜잭션을 롤백하는 동작;
    상기 트랜잭션 그룹 ID에 기초하여 상기 제1 트랜잭션을 식별하는 동작; 및
    상기 제1 데이터베이스를 대상으로 상기 제1 트랜잭션을 롤백하는 동작을 수행하기 위한 인스트럭션들(instructions)을 포함하는,
    컴퓨팅 장치.
  14. 명령어를 포함하는 컴퓨터 판독 가능한 비일시적 저장 매체로서,
    상기 명령어는 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    복수의 애플리케이션들 중 제1 애플리케이션에 의해 제1 데이터베이스에 요청된 제1 트랜잭션을 트랜잭션 그룹 ID와 연관하여 기록하는 단계;
    상기 복수의 애플리케이션들 중, 상기 제1 애플리케이션에 의해 호출된 제2 애플리케이션에 의해 제2 데이터베이스에 요청된 제2 트랜잭션을 상기 트랜잭션 그룹 ID와 연관하여 기록하는 단계;
    상기 제2 트랜잭션의 처리 중에 오류가 발생하였다는 판정에 응답하여, 상기 제2 데이터베이스를 대상으로 상기 제2 트랜잭션을 롤백하는 단계;
    상기 트랜잭션 그룹 ID에 기초하여 상기 제1 트랜잭션을 식별하는 단계; 및
    상기 제1 데이터베이스를 대상으로 상기 제1 트랜잭션을 롤백하는 단계
    를 포함하는 동작들을 수행하도록 하는,
    컴퓨터로 판독 가능한 비일시적 저장 매체.
KR1020210069115A 2021-05-28 2021-05-28 트랜잭션 처리 방법 및 장치 KR20220160898A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210069115A KR20220160898A (ko) 2021-05-28 2021-05-28 트랜잭션 처리 방법 및 장치
US17/826,645 US20220382635A1 (en) 2021-05-28 2022-05-27 Method and apparatus for processing transaction
EP22175817.0A EP4095688A1 (en) 2021-05-28 2022-05-27 Method and apparatus for processing transaction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210069115A KR20220160898A (ko) 2021-05-28 2021-05-28 트랜잭션 처리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20220160898A true KR20220160898A (ko) 2022-12-06

Family

ID=81851608

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210069115A KR20220160898A (ko) 2021-05-28 2021-05-28 트랜잭션 처리 방법 및 장치

Country Status (3)

Country Link
US (1) US20220382635A1 (ko)
EP (1) EP4095688A1 (ko)
KR (1) KR20220160898A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102109461B1 (ko) 2020-02-17 2020-05-12 주식회사 제이윈파트너스 마이크로 서비스 아키텍처(msa) 기반의 프로젝트 자동화 지원 시스템

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080243865A1 (en) * 2007-03-28 2008-10-02 Oracle International Corporation Maintaining global state of distributed transaction managed by an external transaction manager for clustered database systems
US8650155B2 (en) * 2008-02-26 2014-02-11 Oracle International Corporation Apparatus and method for log based replication of distributed transactions using globally acknowledged commits
US7962458B2 (en) * 2008-06-12 2011-06-14 Gravic, Inc. Method for replicating explicit locks in a data replication engine
US9417977B2 (en) * 2008-12-31 2016-08-16 Sap Se Distributed transactional recovery system and method
US10133596B2 (en) * 2012-03-16 2018-11-20 Oracle International Corporation System and method for supporting application interoperation in a transactional middleware environment
WO2016049584A1 (en) * 2014-09-26 2016-03-31 Oracle International Corporation System and method for transaction recovery in a multitenant application server environment
US9514006B1 (en) * 2015-12-16 2016-12-06 International Business Machines Corporation Transaction tracking within a microprocessor
US11388273B2 (en) * 2019-05-05 2022-07-12 International Business Machines Corporation Achieving atomicity in a chain of microservices
US11210174B2 (en) * 2019-10-24 2021-12-28 EMC IP Holding Company LLC Automated rollback for database objects
US11675778B2 (en) * 2021-05-27 2023-06-13 Sap Se Scalable transaction manager for distributed databases

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102109461B1 (ko) 2020-02-17 2020-05-12 주식회사 제이윈파트너스 마이크로 서비스 아키텍처(msa) 기반의 프로젝트 자동화 지원 시스템

Also Published As

Publication number Publication date
US20220382635A1 (en) 2022-12-01
EP4095688A1 (en) 2022-11-30

Similar Documents

Publication Publication Date Title
US9723097B2 (en) Assigning shared catalogs to cache structures in a cluster computing system
US8572044B2 (en) Nested recovery scope management for stateless recovery agents
US20190377821A1 (en) System and method for persistence and replication of changes to a data store
US7814065B2 (en) Affinity-based recovery/failover in a cluster environment
USRE37038E1 (en) Method and system for automated termination and resumption in a time zero backup copy process
US9590843B2 (en) Method and system for providing distributed management in a networked virtualization environment
US6643802B1 (en) Coordinated multinode dump collection in response to a fault
US8229897B2 (en) Restoring a file to its proper storage tier in an information lifecycle management environment
US5448718A (en) Method and system for time zero backup session security
US5379412A (en) Method and system for dynamic allocation of buffer storage space during backup copying
CN100485676C (zh) 文件系统串行化重新初始化装置、方法和系统
US20060167895A1 (en) Database system and method for adapting a main database components in a main memory thereof
CN107016016B (zh) 一种数据处理的方法及装置
US5485573A (en) Method and apparatus for assisting in the determination of the source of errors in a multi-host data base management system
US20190102259A1 (en) Logging process in a data storage system
JP6447258B2 (ja) 管理プログラム、管理方法、および管理装置
US11151020B1 (en) Method and system for managing deployment of software application components in a continuous development pipeline
WO2023184907A1 (zh) 一种多控存储系统的io处理方法、系统及相关组件
KR20220160898A (ko) 트랜잭션 처리 방법 및 장치
EP2871576A1 (en) Data allocation method, data allocation program, and information processing system
CN111694724A (zh) 分布式表格系统的测试方法、装置、电子设备及存储介质
JP2939414B2 (ja) 二重系計算機のデータベース等価処理装置
US11675931B2 (en) Creating vendor-neutral data protection operations for vendors' application resources
JPS59154700A (ja) デ−タ処理システム
CN111708783A (zh) 数据存储和数据恢复方法、装置及电子设备

Legal Events

Date Code Title Description
A201 Request for examination