KR102518268B1 - 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법 - Google Patents

마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법 Download PDF

Info

Publication number
KR102518268B1
KR102518268B1 KR1020220045590A KR20220045590A KR102518268B1 KR 102518268 B1 KR102518268 B1 KR 102518268B1 KR 1020220045590 A KR1020220045590 A KR 1020220045590A KR 20220045590 A KR20220045590 A KR 20220045590A KR 102518268 B1 KR102518268 B1 KR 102518268B1
Authority
KR
South Korea
Prior art keywords
transaction
unit
client
transactions
processing
Prior art date
Application number
KR1020220045590A
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 KR1020220045590A priority Critical patent/KR102518268B1/ko
Application granted granted Critical
Publication of KR102518268B1 publication Critical patent/KR102518268B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

Landscapes

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

Abstract

마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법을 개시한다. 본 발명은 복수의 복수의 클라이언트 서버로부터 복수의 쿼리들이 하나로 묶인 트랜잭션이 요청되면 요청된 순서에 따라 트랜잭션을 묶어 글로벌 트랜잭션으로 정리하고, 개별 트랜잭션들을 순서에 따라 독립적으로 구분하여 해당 DB로 전송 및 처리를 요청함으로써, 복수의 분산된 트랜잭션을 하나의 트랜잭션으로 묶어 우선순위를 보장하고, 처리 중간에 에러가 발생하면 이전 데이터 상태로 모두 되돌리는 복구 처리가 가능하다.

Description

마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법{APPARATUS AND METHOD FOR VIRTUALIZING TRANSACTION BASED ON MICRO SERVICE ARCHITECTURE}
본 발명은 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법에 관한 발명으로서, 더욱 상세하게는 복수의 클라이언트 서버로부터 복수의 쿼리들이 하나로 묶인 트랜잭션들이 요청되면 요청된 순서에 따라 트랜잭션들을 정리하고, 정리된 순서에 따라 개별 트랜잭션들을 묶어 하나의 큰 단위의 트랜잭션으로 구분하여 해당 DB로 전송 및 처리를 요청하는 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법에 관한 것이다.
데이터베이스는 소프트웨어 프로그램을 사용하여 관리하고 질의할 수 있는 구조화된 영구 데이터 집합이다.
트랜잭션 데이터베이스 관리 시스템은 데이터베이스 "트랜잭션들"을 사용하여 데이터베이스에서 데이터를 오퍼레이션(예를 들어, 저장 및 조작)하는 관계형 데이터베이스 시스템을 포함할 수 있다.
일반적으로 데이터베이스 트랜잭션은 데이터베이스에서 데이터베이스 관리 시스템에 의해 수행되는 단일 작업 단위(하나 이상의 오퍼레이션들을 포함)를 상징한다.
즉, 트랜잭션(transaction)은 하나의 작업을 수행하기 위해 필요한 데이터베이스의 연산들을 모아놓은 것으로, 데이터베이스에서 논리적인 작업의 단위가 되고, 트랜잭션은 장애가 발생했을 때 데이터를 복구하는 작업의 단위도 될 수 있다.
또한, 데이터베이스 트랜잭션들이 안정적으로 프로세스되는 것을 보장하기 위해 데이터베이스 트랜잭션들은 하나 이상의 모든 오퍼레이션들을 포함하는 트랜잭션이 전체로 완료되거나 아무런 영향을 주지 않아야 하는 원자적, 트랜잭션이 데이터베이스를 하나의 유효한 상태에서 다른 유효한 상태로 이동시켜야 하는 일관적, 동시에 실행되는 트랜잭션들은 트랜잭션들이 순차적으로 실행된 경우의 결과처럼 데이터베이스에서 동일한 상태가 되는 고립적 및 완료된(committed) 트랜잭션은 시스템 충돌들, 오류들 및 기타 문제들에 상관없이 커밋이 유지되는 지속적이어야 한다.
최근에는 대규모 소프트웨어 개발에 적용하기 위한 것으로 단독으로 실행 가능하고 독립적으로 배치될 수 있는 작은 단위(모듈)로 기능을 분해하여 서비스하는 아키텍처로 마이크로서비스(Micro service)가 제안되고 있다.
이러한 마이크로 서비스는 작은 단위로 기능을 분할할 때 수평 방향의 계층별 절단이 아니라, 수직 방향의 기능별로 절단될 수 있다.
개별 마이크로 서비스는 공유나 프로세스 간 통신이 없이도 독립적으로 실행되며 운영 관리될 수 있고, 마이크로 서비스 간 연결은 응용 프로그래밍 인터페이스(API: Application Programming Interface)를 이용한다.
마이크로서비스는 자원 표현이나 데이터 관리 등에 있어서 기능적으로 완전해야 한다.
도1은 일반적인 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리를 설명하기 위해 나타낸 예시도이다.
도1에 나타낸 바와 같이, 제1 AP 시스템(10)이 'A'를 처리하기 위한 API 요청을 제2 AP 시스템(20)에 요청하고, 제3 AP 시스템(30)이 'C'를 처리하기 위한 API 요청을 제2 AP 시스템(20)에 요청하면, 제2 AP 시스템(20)은 '1-2' 요청과 '3-1' 요청에 대한 'B'를 처리하기 위한 API를 DBMS 1(40) 또는 DBMS 2(50) 중 어느 하나로 요청할 수 있다.
이때, 제1 AP 시스템(10)에서의 요청이 제3 AP 시스템(30)의 요청보다 선행된 경우, 'A'에 대한 트랜잭션인 '1-1', '1-2', '1-3'을 수행한 후, 'C'에 대한 트랜잭션인 '3-1', '3-2'가 DBMS 1(40) 및 DBMS 2(50)에서 수행되도록 순서가 보장되어야 하고, 상기 '1-1', '1-2', '1-3' 트랜잭션과, '3-1', '3-2' 트랜잭션 간에는 독립성이 보장되어야 한다.
또한, 처리 중간에 특정 트랜잭션에서 에러가 발생한 경우에는 상기 '1-1', '1-2', '1-3' 트랜잭션과, '3-1', '3-2' 트랜잭션 간에 데이터 충돌없이 완전하게 이전 상태로 복귀가 되어야 한다.
그러나 2개 이상의 클라이언트 AP 시스템에서 각각 트랜잭션을 가지고 있고, 하나의 클라이언트 AP 시스템에서 다른 클라이언트 AP 시스템으로 함수를 호출할 경우, 2개 이상의 트랜잭션이 서로 독립적으로 실행되어, 처리 중간에 에러 발생시 일부의 트랜잭션만 이전 상태로 복귀가 되는 문제점이 있다.
한국 등록특허공보 등록번호 제10-2074087호(발명의 명칭: 분산 데이터베이스 시스템을 갖는 네트워크에서 데이터베이스 접근 제어를 제공하기 위한 방법 및 아키텍처)
이러한 문제점을 해결하기 위하여, 본 발명은 복수의 클라이언트 서버로부터 복수의 쿼리들이 하나로 묶인 트랜잭션들이 요청되면 요청된 순서에 따라 트랜잭션들을 정리하고, 정리된 순서에 따라 개별 트랜잭션들을 묶어 하나의 큰 단위의 트랜잭션으로 구분하여 해당 DB로 전송 및 처리를 요청하는 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위하여 본 발명의 일 실시 예는 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치로서, 복수의 클라이언트부 1 내지 n에서 복수의 쿼리(Query)들을 하나의 트랜잭션으로 묶어 트랜잭션을 요청하는 클라이언트부; 및
상기 트랜잭션이 입력되면 트랜잭션 단위로 고유의 트랜잭션 ID를 부여하고, 요청된 순서대로 트랜잭션을 정리하여 여러 고유 트랜잭션들을 하나로 묶어 큰 단위인 글로벌 트랜잭션으로 구성하여 별도의 ID를 부여하며, 상기 글로벌 트랜잭션내에 먼저 입력받은 고유 트랜잭션 ID의 트랜잭션 및 트랜잭션 내 쿼리들이 다른 트랜잭션 ID의 트랜잭션과 독립적이며 순차적으로 처리되도록 해당 DB에 전송 및 처리 요청하는 트랜잭션 관리부;를 포함한다.
또한, 상기 실시 예에 따른 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치는 트랜잭션 관리부의 요청에 따라 데이터베이스에서 데이터를 검색, 수정, 삽입 또는 삭제 중 하나의 작업을 수행하는 DBMS;를 더 포함하는 것을 특징으로 한다.
또한, 상기 실시 예에 따른 트랜잭션 관리부는 쿼리 인터페이스부에 입력된 순서대로 트랜잭션을 정리하고, 고유의 트랜잭션 ID를 포함하여 클라이언트부에서 요청된 쿼리들을 트랜잭션 단위로 구성하며, 먼저 입력받은 트랜잭션과 트랜잭션 내 쿼리들의 우선 처리를 수행하되, 처리 중간에 에러가 발생하면 큰 단위로 구성된 글로벌 트랜잭션 내 개별 단위 트랜잭션들을 모두 이전 데이터 상태로 되돌리는 복구 처리를 수행하는 트랜잭션 엔진; 상기 클라이언트부에서 트랜잭션이 입력되면 고유의 트랜잭션 ID를 부여하고, 여러 트랜잭션들을 하나의 글로벌 트랜잭션으로 구분하기 위해 글로벌 트랜잭션 ID를 부여하는 쿼리 인터페이스부; 및 상기 처리될 데이터들을 쿼리 단위로 해당 DB에 전송하여 처리 요청하는 DBMS 인터페이스부;를 포함하는 것을 특징으로 한다.
또한, 상기 실시 예에 따른 트랜잭션 엔진은 먼저 입력받은 트랜잭션과 트랜잭션 내 쿼리들의 우선 처리를 수행하고, 여러 트랜잭션들을 하나의 글로벌 트랜잭션으로 묶어 처리하는 처리 모듈; 및 상기 처리 중간에 에러가 발생하면 상기 글로벌 트랜잭션 내 데이터들을 모두 이전 데이터 상태로 되돌리는 복구 처리를 수행하는 복구 모듈을 포함하는 것을 특징으로 한다.
또한, 본 발명의 일 실시 예는 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 방법으로서, a) 클라이언트부가 트랜잭션을 요청하는 단계; 및 b) 상기 트랜잭션이 입력되면 트랜잭션 단위로 고유의 트랜잭션 ID를 부여하고, 요청된 순서대로 트랜잭션을 정리하여 하나의 큰 단위인 글로벌 트랜잭션으로 묶고 상기 트랜잭션 ID를 포함한 클라이언트부(100)에서 요청된 쿼리들을 상기 글로벌 트랜잭션 단위로 구성하며, 먼저 입력된 트랜잭션과 트랜잭션 내 쿼리들이 다른 트랜잭션들과 독립적으로 처리되도록 해당 DB에 전송 및 처리 요청하는 단계;를 포함한다.
또한, 상기 실시 예는 c) 상기 트랜잭션 관리부가 b) 단계의 처리 중에 클라이언트부 또는 트랜잭션 관리부에서 에러가 발생되는지 판단하는 단계; 및 d) 상기 판단 결과, 에러가 발생됨에 따라 상기 트랜잭션 관리부가 이전 데이터 상태로 모두 되돌리는 복구 처리를 수행하는 단계;를 더 포함하는 것을 특징으로 한다.
또한, 상기 실시 예에 따른 a) 단계는 클라이언트부가 복수의 클라이언트부 1 내지 n에서 복수의 쿼리(Query)들을 하나의 트랜잭션으로 묶는 단계;를 포함하는 것을 특징으로 한다.
또한, 상기 실시 예에 따른 상기 a) 단계는 하나의 클라이언트에서 다른 클라이언트로 서비스를 호출할 때, 호출한 클라이언트와 호출 받은 클라이언트에서 하나의 큰 단위인 글로벌 트랜잭션으로 처리를 요청할 수 있도록 다른 클라이언트에 서비스를 호출할 때 자신과 다른 클라이언트 서비스 호출내에 있는 트랜잭션들을 동일한 하나의 큰 단위인 글로벌 트랜잭션이라고 명시하는 단계를 더 포함하는 것을 특징으로 한다.
또한, 상기 실시 예에 따른 b) 단계는 b-1) 트랜잭션 관리부가 클라이언트부에서 입력되는 트랜잭션에 고유의 트랜잭션 ID를 부여하는 단계; b-2) 상기 트랜잭션 관리부가 입력된 순서대로 트랜잭션을 정리하고, 복수의 고유 트랜잭션 ID를 포함하여 클라이언트부(100)에서 요청된 글로벌 트랜잭션 단위로 묶는 단계; 및 b-3) 상기 트랜잭션 관리부가 먼저 입력받은 트랜잭션과 트랜잭션 내 쿼리들의 독립적인 처리를 수행하는 단계;를 포함하는 것을 특징으로 한다.
본 발명은 복수의 클라이언트 서버로부터 복수의 쿼리들이 하나로 묶인 트랜잭션이 요청되면 요청된 순서에 따라 트랜잭션을 묶어 글로벌 트랜잭션으로 정리하고, 개별 트랜잭션들을 순서에 따라 독립적으로 구분하여 해당 DB로 전송 및 처리를 요청함으로써, 복수의 분산된 트랜잭션을 하나의 트랜잭션으로 묶어 우선순위를 보장하고, 처리 중간에 에러가 발생하면 이전 데이터 상태로 모두 되돌리는 복구 처리가 가능한 장점이 있다.
도1은 일반적인 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리를 설명하기 위해 나타낸 예시도.
도2는 본 발명의 일 실시 예에 따른 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치를 설명하기 위해 나타낸 블록도.
도3은 도2의 실시 예에 따른 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치의 트랜잭션 관리부 구성을 나타낸 블록도.
도4는 본 발명의 일 실시 예에 따른 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 방법을 설명하기 위해 나타낸 흐름도.
도5는 도4의 실시 예에 따른 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 방법에서 클라이언트부의 트랜잭션 처리요청을 설명하기 위해 나타낸 흐름도.
도6은 도4의 실시 예에 따른 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 방법에서 트랜잭션 관리부의 트랜잭션 처리과정을 설명하기 위해 나타낸 흐름도.
이하에서는 본 발명의 바람직한 실시 예 및 첨부하는 도면을 참조하여 본 발명을 상세히 설명하되, 도면의 동일한 참조부호는 동일한 구성요소를 지칭함을 전제하여 설명하기로 한다.
본 발명의 실시를 위한 구체적인 내용을 설명하기에 앞서, 본 발명의 기술적 요지와 직접적 관련이 없는 구성에 대해서는 본 발명의 기술적 요지를 흩뜨리지 않는 범위 내에서 생략하였음에 유의하여야 할 것이다.
또한, 본 명세서 및 청구범위에 사용된 용어 또는 단어는 발명자가 자신의 발명을 최선의 방법으로 설명하기 위해 적절한 용어의 개념을 정의할 수 있다는 원칙에 입각하여 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다.
본 명세서에서 어떤 부분이 어떤 구성요소를 "포함"한다는 표현은 다른 구성요소를 배제하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
또한, "‥부", "‥기", "‥모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는 그 둘의 결합으로 구분될 수 있다.
또한, "적어도 하나의" 라는 용어는 단수 및 복수를 포함하는 용어로 정의되고, 적어도 하나의 라는 용어가 존재하지 않더라도 각 구성요소가 단수 또는 복수로 존재할 수 있고, 단수 또는 복수를 의미할 수 있음은 자명하다 할 것이다.
또한, 각 구성요소가 단수 또는 복수로 구비되는 것은, 실시 예에 따라 변경가능하다 할 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 일 실시 예에 따른 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법의 바람직한 실시예를 상세하게 설명한다.
도2는 본 발명의 일 실시 예에 따른 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치를 설명하기 위해 나타낸 블록도이고, 도3은 도2의 실시 예에 따른 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치의 트랜잭션 관리부 구성을 나타낸 블록도이다.
도2 및 도3을 참조하면, 본 발명의 일 실시 예에 따른 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치는 복수의 클라이언트로부터 복수의 쿼리들이 하나로 묶인 트랜잭션이 요청되면 요청된 순서에 따라 트랜잭션을 정리하고, 여러 트랜잭션들을 하나로 묶는 글로벌 트랜잭션이 별도의 ID로 생성되며, 글로벌 트랜잭션내에 먼저 입력된 트랜잭션과 트랜잭션 내 쿼리들이 다른 트랜잭션들과 독립적으로 처리되도록 해당 DB로 전송 및 처리를 요청할 수 있다.
이를 위해, 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치는 클라이언트부(100)와, 트랜잭션 관리부(200)와 DBMS(Data Base Management System, 300)를 포함하여 구성될 수 있다.
상기 클라이언트부(100)는 클라이언트부 1(100a), 클라이언트부 2(100b) 내지 클라이언트 n(100c)을 포함하여 구성될 수 있고, 상기 클라이언트부 1 내지 n(100a, 100b, 100b)은 각각 복수의 쿼리(Query)들을 하나의 트랜잭션으로 묶어 트랜잭션을 요청할 수 있다.
즉, 상기 클라이언트부(100)는 클라이언트부 1 내지 n(100a, 100b, 100b)이 각각 트랜잭션을 가지고 있고, 어느 하나의 클라이언트부 1 내지 n(100a, 100b, 100b) 중에서 다른 클라이언트부 1 내지 n(100a, 100b, 100b)중 어느 하나에게 함수를 호출하되, 상기 클라이언트부 1 내지 n(100a, 100b, 100b) 중 2개 이상의 클라이언트부에서 2개 이상의 쿼리(Query)들이 하나로 묶여 있고, 이를 하나의 트랜잭션이라 명시하여 트랜잭션 처리를 요청할 수 있다.
또한, 상기 클라이언트부 1 내지 n(100a, 100b, 100b)은 서로 다른 임의의 서비스 또는 처리를 수행하기 위한 API를 호출하는 AP 서버(Application Server) 시스템으로 구성될 수 있다.
상기 트랜잭션 관리부(200)는 클라이언트부(100)로부터 트랜잭션이 입력되면 요청된 트랜잭션 단위로 고유의 트랜잭션 ID를 부여할 수 있고, 여러 트랜잭션들을 묶어 각 트랜잭션을 관리하기 위한 하나의 큰 단위인 글로벌 트랜잭션을 구성하여 글로벌 트랜잭션 ID를 부여할 수도 있다.
또한, 트랜잭션 관리부(200)는 요청된 순서대로 트랜잭션을 정리하고, 여러 트랜잭션들을 하나의 글로벌 트랜잭션으로 구성하며, 상기 부여된 트랜잭션 ID를 포함한 클라이언트부(100)에서 요청된 쿼리들을 트랜잭션 단위로 구성할 수 있다.
또한, 트랜잭션 관리부(200)는 먼저 입력받은 트랜잭션 또는 글로벌 트랜잭션과 트랜잭션 내 쿼리들이 다른 트랜잭션 ID를 포함한 트랜잭션들과 독립적으로 우선 처리되도록 해당 DB에 전송 및 처리를 요청할 수 있다.
이를 위해 상기 트랜잭션 관리부(200)는 트랜잭션 엔진(210)과, 쿼리 인터페이스부(220)와, DBMS 인터페이스부(230)를 포함하여 구성될 수 있다.
상기 트랜잭션 엔진(210)은 쿼리 인터페이스부(220)에 입력된 순서대로 트랜잭션을 정리하고, 고유의 트랜잭션 ID를 포함하여 클라이언트부(100)에서 요청된 쿼리들을 트랜잭션 단위로 구성할 수 있다.
또한, 트랜잭션 엔진(210)은 먼저 입력받은 트랜잭션과 트랜잭션 내 쿼리들의 트랜잭션 단위로 우선적이며 독립적인 처리를 수행하되, 처리 중간에 에러가 발생하면 이전 데이터 상태로 모두 되돌리는 복구 처리를 수행할 수 있고, 이를 위해 처리 모듈(211)과, 복구 모듈(212)을 포함하여 구성될 수 있다.
상기 처리 모듈(211)은 먼저 입력받은 트랜잭션과 트랜잭션 내 쿼리들의 우선 처리를 수행할 수 있다.
상기 복구 모듈(212)은 처리 모듈(211)을 통해 트랜잭션과 트랜잭션 내 쿼리들의 처리 중간에 에러가 발생하면, 처리 모듈(211)에서 처리된 데이터들을 이전 데이터 상태로 모두 되돌리는 복구 처리를 수행할 수 있다.
상기 쿼리 인터페이스부(220)는 클라이언트부(100)에서 트랜잭션 요청이 입력되면, 개별 트랜잭션 요청들에 대하여 트랜잭션 단위로 고유의 트랜잭션 ID를 부고, 상기 고유의 트랜잭션 ID가 부여된 트랜잭션을 트랜잭션 엔진(210)으로 제공할 수 있다.
또한, 상기 쿼리 인터페이스부(220)는 여러 트랜잭션들을 하나의 글로벌 트랜잭션으로 구분하기 위해 글로벌 트랜잭션 ID를 부여하고, 상기 글로벌 트랜잭션 ID가 부여된 글로벌 트랜잭션을 트랜잭션 엔진(210)으로 제공할 수도 있다.
상기 DBMS 인터페이스부(230)는 트랜잭션 엔진(210)의 동작을 통해 처리될 데이터들을 쿼리 단위(또는 SQL 단위)로 해당 DB에 전송하여 처리되도록 요청할 수 있다.
상기 DBMS(300)는 트랜잭션 관리부(200)의 요청에 따라 데이터베이스에서 데이터를 검색, 수정, 삽입 또는 삭제 중 하나의 작업을 수행할 수 있고, 서로 다른 데이터베이스를 작업을 수행할 수 있도록 DBMS 1(300a), DBMS 2(300b) 내지 DBMS n(300b)으로 구성될 수 있다.
다음은 본 발명의 일 실시 예에 따른 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 방법을 설명한다.
도4는 본 발명의 일 실시 예에 따른 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 방법을 설명하기 위해 나타낸 흐름도이고, 도5는 도4의 실시 예에 따른 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 방법에서 클라이언트부의 트랜잭션 처리요청을 설명하기 위해 나타낸 흐름도이며, 도6은 도4의 실시 예에 따른 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 방법에서 트랜잭션 관리부의 트랜잭션 처리과정을 설명하기 위해 나타낸 흐름도이다.
도2 내지 도6을 참조하면, 본 발명의 일 실시 예에 따른 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 방법은 클라이언트부(100)가 트랜잭션 관리부(200)로 트랜잭션을 요청(S100)한다.
상기 S100 단계에서, 클라이언트부(100)는 클라이언트부 1 내지 n(100a, 100b, 100b)이 각각 트랜잭션을 가지고 있고, 어느 하나의 클라이언트부 1 내지 n(100a, 100b, 100b) 중에서 다른 클라이언트부 1 내지 n(100a, 100b, 100b)중 어느 하나에게 함수를 호출(S110)할 수 있다.
또한, 상기 클라이언트부 1 내지 n(100a, 100b, 100b) 중에서 호출을 받은 어느 하나는 2개 이상의 쿼리(Query)들을 하나로 묶어 하나의 트랜잭션이라는 명시하고, 다른 클라이언트에 서비스를 호출할 경우 자신과 다른 클라이언트 서비스 호출내에 있는 트랜잭션들을 동일한 하나의 큰 단위인 글로벌 트랜잭션이라고 명시하여 처리를 요청(S120)할 수 있다.
즉, 하나의 클라이언트에서 다른 클라이언트로 서비스를 호출하게 될 경우, 호출한 클라이언트와 호출 받은 클라이언트에서 이를 하나의 큰 단위인 글로벌 트랜잭션으로 처리를 요청할 수 있다.
계속해서, 트랜잭션 관리부(200)는 상기 S100 단계의 트랜잭션이 입력되면, 2개 이상의 클라이언트부에서 2개 이상이 쿼리들이 하나로 묶여 있는 트랜잭션의 처리 요청인지 판단(S200)할 수 있다.
S200 단계의 판단 결과, 2개 이상의 클라이언트부에서 2개 이상이 쿼리들이 하나로 묶여 있는 트랜잭션의 처리 요청으로 판단되면, 트랜잭션 관리부(200)는 최초 요청된 트랜잭션을 시작으로 순차적으로 트랜잭션 처리를 수행(S300)한다.
S300 단계에서, 상기 트랜잭션 관리부(200)는 클라이언트부(100)에서 입력되는 트랜잭션에 대하여 고유의 트랜잭션 ID를 부여(S310)할 수 있다.
또한, 상기 트랜잭션 관리부(200)는 요청된 순서 또는 접수 받은 순서대로 트랜잭션을 정리하고, 상기 S310 단계에서 부여된 고유의 트랜잭션 ID를 포함하여 클라이언트부(100)에서 요청된 쿼리들을 트랜잭션 단위로 묶는다(S320).
또한, 상기 트랜잭션 관리부(200)는 먼저 입력받은 트랜잭션과 트랜잭션 내 쿼리들의 우선 처리를 수행(S330)한다.
한편, 상기 S200 단계의 판단 결과, 하나의 클라이언트부에서 하나의 쿼리들에 대한 트랜잭션 처리 요청이면, 해당 트랜잭션의 처리를 수행(S210)할 수 있다.
계속해서, 상기 트랜잭션 관리부(200)는 상기 S300 단계의 처리 중에 에러가 발생되는지 판단(S400)할 수 있다.
상기 S400 단계의 판단 결과, 트랜잭션과 트랜잭션 내 쿼리들의 처리 중에 에러 발생이 감지되지 않으면, 상기 트랜잭션 관리부(200)는 처리 대상 트랜잭션과 트랜잭션 내 쿼리들을 쿼리 단위로 우선 처리하여 해당 DB에 전송 및 처리를 요청(S500)한다.
또한, 상기 S400 단계의 판단 결과, 에러가 발생된 것으로 판단되면, 상기 트랜잭션 관리부(200)는 처리된 데이터들을 이전 데이터 상태로 모두 되돌리는 복구 처리를 수행(S600)한다.
따라서, 복수의 클라이언트 서버로부터 복수의 쿼리들이 하나로 묶인 트랜잭션이 요청되면 요청된 순서에 따라 트랜잭션을 묶어 글로벌 트랜잭션으로 정리하고, 개별 트랜잭션들을 순서에 따라 독립적으로 구분하여 해당 DB로 전송 및 처리를 요청함으로써, 복수의 분산된 트랜잭션을 하나의 트랜잭션으로 묶어 우선순위를 보장하고, 처리 중간에 에러가 발생하면 이전 데이터 상태로 모두 되돌리는 복구 처리가 가능하다.
상기와 같이, 본 발명의 바람직한 실시 예를 참조하여 설명하였지만 해당 기술 분야의 숙련된 당업자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
또한, 본 발명의 특허청구범위에 기재된 도면번호는 설명의 명료성과 편의를 위해 기재한 것일 뿐 이에 한정되는 것은 아니며, 실시예를 설명하는 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다.
또한, 상술된 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있으므로, 이러한 용어들에 대한 해석은 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
또한, 명시적으로 도시되거나 설명되지 아니하였다 하여도 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기재사항으로부터 본 발명에 의한 기술적 사상을 포함하는 다양한 형태의 변형을 할 수 있음은 자명하며, 이는 여전히 본 발명의 권리범위에 속한다.
또한, 첨부하는 도면을 참조하여 설명된 상기의 실시예들은 본 발명을 설명하기 위한 목적으로 기술된 것이며 본 발명의 권리범위는 이러한 실시예에 국한되지 아니한다.
100 : 클라이언트부 100a ; 클라이언트부 1
100b : 클라이언트부 2 100c : 클라이언트부 n
200 : 트랜잭션 관리부 210 : 트랜잭션 엔진
211 : 처리 모듈 212 : 복구 모듈
220 : 쿼리 인터페이스부 230 : DBMS 인터페이스부
300 : DBMS 300a : DBMS 1
300b : DBMS 2 300c : DBMS n

Claims (9)

  1. 복수의 클라이언트부 1 내지 n(100a, 100b, 100c)에서 복수의 쿼리(Query)들을 하나의 트랜잭션으로 묶어 트랜잭션을 요청하는 클라이언트부(100);
    상기 트랜잭션 요청이 입력되면 상기 클라이언트부 1 내지 n(100a, 100b, 100c)에서 요청된 순서에 따라 트랜잭션을 정리하되, 요청된 트랜잭션 단위로 고유의 트랜잭션 ID를 부여하고,
    상기 정리된 순서와 상기 고유의 트랜잭션 ID를 통해 구분된 여러 고유 트랜잭션들을 하나로 묶어 구성되는 글로벌 트랜잭션에 별도의 ID를 부여하며, 상기 글로벌 트랜잭션내에 먼저 입력된 상기 고유 트랜잭션 ID와 해당 트랜잭션내 쿼리들이 서로 다른 DB에서도 작업을 수행할 수 있게 다른 트랜잭션 ID들과 독립적이며 순서대로 처리되도록 해당 DB에 전송 및 처리를 요청하는 트랜잭션 관리부(200); 및
    상기 트랜잭션 관리부(200)의 요청에 따라 데이터베이스에서 데이터를 검색, 수정, 삽입 또는 삭제 중 하나의 작업을 수행하는 DBMS(300);를 포함하고,
    상기 트랜잭션 관리부(200)는 쿼리 인터페이스부(220)에 입력된 순서대로 트랜잭션을 정리하고, 고유의 트랜잭션 ID를 포함하여 클라이언트부(100)에서 요청된 쿼리들을 트랜잭션 단위로 구성하며, 먼저 입력받은 트랜잭션과 트랜잭션 내 쿼리들의 우선 처리를 수행하되,
    처리 중간에 에러가 발생하면 큰 단위로 구성된 글로벌 트랜잭션내의 개별 단위 트랜잭션들을 해당 DB별로 모두 이전 데이터 상태로 되돌리는 복구 처리를 수행하는 트랜잭션 엔진(210);
    상기 클라이언트부(100)에서 트랜잭션이 입력되면 고유의 트랜잭션 ID를 부여하고, 여러 트랜잭션들을 하나의 글로벌 트랜잭션으로 구분하기 위해 글로벌 트랜잭션 ID를 부여하는 쿼리 인터페이스부(220); 및
    상기 트랜잭션 엔진(210)의 동작을 통해 처리될 데이터들을 쿼리 단위로 해당 DB에 전송하여 처리 요청하는 DBMS 인터페이스부(230);를 포함하는 것을 특징으로 하는 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 트랜잭션 엔진(210)은 먼저 입력받은 트랜잭션과 트랜잭션 내 쿼리들의 우선 처리를 수행하는 처리 모듈(211); 및
    상기 처리 중간에 에러가 발생하면 이전 데이터 상태로 모두 되돌리는 복구 처리를 수행하는 복구 모듈(212)을 포함하는 것을 특징으로 하는 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치.
  5. a) 클라이언트부(100)가 복수의 클라이언트부 1 내지 n(100a, 100b, 100c)에서 복수의 쿼리(Query)들을 하나의 트랜잭션으로 묶어 트랜잭션을 요청하는 단계;
    b) 상기 트랜잭션 요청이 입력되면 트랜잭션 관리부(200)가 상기 클라이언트부 1 내지 n(100a, 100b, 100c)에서 요청된 순서에 따라 트랜잭션을 정리하되, 요청된 트랜잭션 단위로 고유의 트랜잭션 ID를 부여하고,
    상기 정리된 순서와 상기 고유의 트랜잭션 ID를 통해 구분된 여러 고유 트랜잭션들을 하나의 큰 단위인 글로벌 트랜잭션으로 묶어 별도의 ID를 부여하여 구분하며, 상기 고유의 트랜잭션 ID를 포함한 클라이언트부(100)에서 요청된 쿼리들을 상기 글로벌 트랜잭션 단위로 구성하여 상기 글로벌 트랜잭션 내에 먼저 입력된 상기 고유 트랜잭션 ID와, 해당 트랜잭션 내 쿼리들이 서로 다른 DB에서도 작업을 수행할 수 있게 다른 트랜잭션 ID들과 독립적이며 순서대로 처리되도록 해당 DB에 전송 및 처리 요청하는 단계;
    c) 상기 트랜잭션 관리부(200)가 b) 단계의 처리 중에 클라이언트부(100) 또는 트랜잭션 관리부(200) 중 어느 하나에서 에러가 발생되는지 판단하는 단계; 및
    d) 상기 판단 결과, 에러가 발생됨에 따라 상기 트랜잭션 관리부(200)가 큰 단위로 구성된 글로벌 트랜잭션내의 개별 단위 트랜잭션들을 해당 DB별로 모두 이전 데이터 상태로 되돌리는 복구 처리를 수행하는 단계;를 포함하고,
    상기 b) 단계는 b-1) 트랜잭션 관리부(200)가 클라이언트부(100)에서 입력되는 트랜잭션에 고유의 트랜잭션 ID를 부여하는 단계;
    b-2) 상기 트랜잭션 관리부(200)가 입력된 순서대로 트랜잭션을 정리하고, 복수의 고유 트랜잭션 ID를 포함하여 클라이언트부(100)에서 요청된 글로벌 트랜잭션 단위로 묶는 단계; 및
    b-3) 상기 트랜잭션 관리부(200)가 먼저 입력받은 트랜잭션과 트랜잭션 내 쿼리들의 독립적인 처리를 수행하는 단계;를 포함하는 것을 특징으로 하는 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 방법.
  6. 삭제
  7. 삭제
  8. 제 5 항에 잇어서,
    상기 a) 단계는 하나의 클라이언트에서 다른 클라이언트로 서비스를 호출할 때, 호출한 클라이언트와 호출 받은 클라이언트에서 하나의 큰 단위인 글로벌 트랜잭션으로 처리를 요청할 수 있도록 다른 클라이언트에 서비스를 호출할 때 자신과 다른 클라이언트 서비스 호출내에 있는 트랜잭션들을 동일한 하나의 큰 단위인 글로벌 트랜잭션이라고 명시하는 단계를 더 포함하는 것을 특징으로 하는 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 방법.
  9. 삭제
KR1020220045590A 2022-04-13 2022-04-13 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법 KR102518268B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220045590A KR102518268B1 (ko) 2022-04-13 2022-04-13 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220045590A KR102518268B1 (ko) 2022-04-13 2022-04-13 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102518268B1 true KR102518268B1 (ko) 2023-04-05

Family

ID=85884744

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220045590A KR102518268B1 (ko) 2022-04-13 2022-04-13 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102518268B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012014502A (ja) * 2010-07-01 2012-01-19 Internatl Business Mach Corp <Ibm> トランザクションを集約して処理する方法、システム、およびプログラム
KR20170060036A (ko) * 2014-09-26 2017-05-31 오라클 인터내셔날 코포레이션 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템 및 방법
KR20190016743A (ko) * 2017-08-09 2019-02-19 네이버 주식회사 데이터베이스 샤딩 환경에서의 데이터 복제
KR102074087B1 (ko) 2015-07-10 2020-02-05 아브 이니티오 테크놀로지 엘엘시 분산 데이터베이스 시스템을 갖는 네트워크에서 데이터베이스 접근 제어를 제공하기 위한 방법 및 아키텍처
KR102118178B1 (ko) * 2019-04-24 2020-06-02 주식회사 데이터젠 블록체인을 위한 다중 트랜잭션 병렬 처리 방법 및 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012014502A (ja) * 2010-07-01 2012-01-19 Internatl Business Mach Corp <Ibm> トランザクションを集約して処理する方法、システム、およびプログラム
KR20170060036A (ko) * 2014-09-26 2017-05-31 오라클 인터내셔날 코포레이션 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템 및 방법
KR102074087B1 (ko) 2015-07-10 2020-02-05 아브 이니티오 테크놀로지 엘엘시 분산 데이터베이스 시스템을 갖는 네트워크에서 데이터베이스 접근 제어를 제공하기 위한 방법 및 아키텍처
KR20190016743A (ko) * 2017-08-09 2019-02-19 네이버 주식회사 데이터베이스 샤딩 환경에서의 데이터 복제
KR102118178B1 (ko) * 2019-04-24 2020-06-02 주식회사 데이터젠 블록체인을 위한 다중 트랜잭션 병렬 처리 방법 및 시스템

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
일본공개특허 제2012-014502호(2012.01.19.) 1부.*
한국공개특허 제10-2017-0060036호(2017.05.31.) 1부.*
한국공개특허 제10-2019-0016743호(2019.02.19.) 1부.*
한국등록특허 제10-2118178호(2020.06.02.) 1부.*

Similar Documents

Publication Publication Date Title
US11436224B2 (en) Parallel processing database system with a shared metadata store
US8069184B2 (en) Systems and methods to implement extensibility of tenant content in a provider-tenant environment
US6859798B1 (en) Intelligence server system
JP3075486B2 (ja) データベースネットワークの管理方法
US8738568B2 (en) User-defined parallelization in transactional replication of in-memory database
US11614970B2 (en) High-throughput parallel data transmission
US7143112B2 (en) Method and apparatus for data integration
CN103136364B (zh) 集群数据库***及其数据查询处理方法
CN114780652A (zh) 用于分片的关系数据库组织
CN103927331B (zh) 数据查询方法、装置及***
US20080162536A1 (en) Systems and methods for extending shared data structures with tenant content in a provider-tenant environment
JP2003522344A (ja) データベース同期化/組織化システムおよび方法
US20080162483A1 (en) Methods and systems for protecting shared tables against unauthorized overwriting from a tenant space in a mega-tenancy environment
US20140372484A1 (en) Database multiplexing architectures
CN107193898B (zh) 基于分级复用的日志数据流的查询共享方法和***
CN105765578A (zh) 分布式文件***中的数据的并行访问
CN104391957A (zh) 一种针对混合型大数据处理***的数据交互分析方法
US20180248977A1 (en) Selective distribution of messages in a publish-subscribe system
US11216421B2 (en) Extensible streams for operations on external systems
US6470331B1 (en) Very large table reduction in parallel processing database systems
CN1717686A (zh) 自动数据合并
WO2020259191A1 (zh) 一种数据中心节点分配方法、装置、***及计算机设备
WO2022046776A1 (en) Integration of video conferencing applications with on-demand database services
KR102518268B1 (ko) 마이크로 서비스 아키텍처 기반의 트랜잭션 가상화 처리 장치 및 방법
US20080270609A1 (en) Computer-readable medium to multiplex multiple application server requests over a single database connection

Legal Events

Date Code Title Description
AMND Amendment
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant