KR102499488B1 - Apparatus and method for orchestrating quere based on microservice architecture - Google Patents

Apparatus and method for orchestrating quere based on microservice architecture Download PDF

Info

Publication number
KR102499488B1
KR102499488B1 KR1020220045593A KR20220045593A KR102499488B1 KR 102499488 B1 KR102499488 B1 KR 102499488B1 KR 1020220045593 A KR1020220045593 A KR 1020220045593A KR 20220045593 A KR20220045593 A KR 20220045593A KR 102499488 B1 KR102499488 B1 KR 102499488B1
Authority
KR
South Korea
Prior art keywords
query
data
transaction
processing
orchestration
Prior art date
Application number
KR1020220045593A
Other languages
Korean (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 KR1020220045593A priority Critical patent/KR102499488B1/en
Application granted granted Critical
Publication of KR102499488B1 publication Critical patent/KR102499488B1/en

Links

Images

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/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
    • 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/235Update request formulation
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • 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
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A query orchestration processing device and method based on a microservice architecture are disclosed. In a system configured on a microservice architecture or a distributed basis, in order to support systems operating heterogeneous or multiple DBs, the present invention may reorganize large amounts of queries in DB units and transaction units, and orchestrate the queries so that data is stored and managed in the correct target DB.

Description

마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치 및 방법{APPARATUS AND METHOD FOR ORCHESTRATING QUERE BASED ON MICROSERVICE ARCHITECTURE}Query orchestration processing device and method based on microservice architecture {APPARATUS AND METHOD FOR ORCHESTRATING QUERE BASED ON MICROSERVICE ARCHITECTURE}

본 발명은 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치 및 방법에 관한 발명으로서, 더욱 상세하게는 마이크로 서비스 아키텍처 또는 분산 기반으로 구성된 시스템에서 이기종 또는 복수의 DB들을 운용하는 시스템을 지원하기 위해 대량의 쿼리들을 DB 단위 및 트랜잭션 단위로 재구성하고 정확한 타겟 DB에 데이터가 저장 및 관리가 이루어지도록 쿼리들을 오케스트레이션하는 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치 및 방법에 관한 것이다.The present invention relates to a query orchestration processing apparatus and method based on a microservice architecture, and more particularly, to support a system that operates heterogeneous or multiple DBs in a system configured on a microservice architecture or a distributed basis, a large amount of queries are processed. The present invention relates to a query orchestration processing apparatus and method based on a microservice architecture that reorganizes DB units and transactions units and orchestrates queries so that data is stored and managed in an accurate target DB.

종래에는 전체 클라우드를 대상으로 오케스트레이션에서 서비스를 활용하는 방법, 서비스 자체를 오케스트레이션 하는데 필요한 프로파일링 기법, 각 가상 자원들을 통합시키는 오케스트레이션 방법 만을 한정하여 기술하고 있다.Conventionally, only a method of utilizing services in orchestration for the entire cloud, a profiling technique required for orchestrating a service itself, and an orchestration method for integrating each virtual resource are limited and described.

예를 들어, 한국 등록특허공보 등록번호 제10-2364712호 '분산 클라우드 환경에서 서비스 오케스트레이션 시스템 및 방법'에서는, 클라우드 네트워크에 분산되어 있는 네트워크 자원을 통합하여 서비스 제공자가 요구하는 서비스를 제공하기 위한 서비스 오케스트레이션 시스템 및 방법을 개시하고 있다.For example, in Korea Patent Publication No. 10-2364712 'Service orchestration system and method in a distributed cloud environment', a service for providing a service requested by a service provider by integrating network resources distributed in a cloud network. An orchestration system and method are disclosed.

또한, 한국 공개특허공보 공개번호 제10-2017-0016962호 '자동화된 서비스 프로파일링 및 오케스트레이션'에서는, 서비스 오케스트레이션 프로파일들이 노드들 간에 분산되고 서로 계층적으로 관련되어 있어, 원하는 서비스들을 결정하고 원하는 서비스들을 구현하는 데 정보를 사용하기 위해 서비스 오케스트레이션 프로파일들 내의 정보를 처리하는 것이 개시되어 있다.In addition, in Korean Patent Laid-open Publication No. 10-2017-0016962 'Automated Service Profiling and Orchestration', service orchestration profiles are distributed among nodes and hierarchically related to each other, thereby determining desired services and providing desired services. Processing information in service orchestration profiles to use the information in implementing the services is disclosed.

그러나, 마이크로 서비스 아키텍처 또는 분산 기반으로 구성된 다수의 시스템에서 발생되는 트랜잭션 처리가 요구되는 서비스 호출들에 대하여 서비스 호출과 특정 서비스 호출 내부에서 세부 실행 단위별 쿼리들을 데이터 처리 대상 DB(Database)에 적합하게 전달 및 요청되지 못하는 문제점이 있다.However, for service calls that require transaction processing occurring in a microservice architecture or multiple systems configured on a distributed basis, queries for each detailed execution unit within the service call and specific service call are appropriately applied to the data processing target DB (Database). There is a problem with delivery and not being requested.

또한, 동시에 병렬 처리되는 다수의 트랜잭션들 간에 데이터 처리 시, 처리 순서에 대한 보장과 데이터 충돌 또는 중복 처리가 되지 않아야 한다.In addition, when processing data between a plurality of transactions that are processed in parallel at the same time, processing order must be guaranteed and data collision or overlapping processing must not occur.

1. 한국 등록특허공보 등록번호 제10-2364712호(발명의 명칭: 분산 클라우드 환경에서 서비스 오케스트레이션 시스템 및 방법)1. Korean Registered Patent Publication No. 10-2364712 (Title of Invention: Service Orchestration System and Method in Distributed Cloud Environment) 2. 한국 공개특허공보 공개번호 제10-2017-0016962호 (발명의 명칭: 자동화된 서비스 프로파일링 및 오케스트레이션)2. Korean Patent Laid-open Publication No. 10-2017-0016962 (Title of Invention: Automated Service Profiling and Orchestration)

이러한 문제점을 해결하기 위하여, 본 발명은 마이크로 서비스 아키텍처 또는 분산 기반으로 구성된 시스템에서 이기종 또는 복수의 DB들을 운용하는 시스템을 지원하기 위해 대량의 쿼리들을 DB 단위 및 트랜잭션 단위로 재구성하고 정확한 타겟 DB에 데이터가 저장 및 관리가 이루어지도록 쿼리들을 오케스트레이션하는 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치 및 방법을 제공하는 것을 목적으로 한다.In order to solve this problem, the present invention reorganizes a large amount of queries in DB units and transaction units to support a system operating heterogeneous or multiple DBs in a system configured on a microservice architecture or distributed basis, and data is stored in an accurate target DB. An object of the present invention is to provide a query orchestration processing apparatus and method based on a microservice architecture that orchestrates queries so that data is stored and managed.

상기한 목적을 달성하기 위하여 본 발명의 일 실시 예는 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치로서, 다수의 AP 서버로부터 이기종 분산 DB환경으로 요청되는 서비스 API 호출에 대하여 입력된 트랜잭션 단위로 고유의 특정 트랜잭션 ID를 부여하고, 해당 트랜잭션 ID 단위로 서비스 호출과 호출된 서비스를 처리하는 함수내에 쿼리들을 개별 DB 단위로 그룹화 하되, 다수의 트랜잭션 요청들이 발생되면 요청 접수 시점을 기준으로 데이터의 처리 순서를 정의하고, 데이터 처리 성능의 보장을 위하여 동시에 병렬로 데이터 처리 시 타겟 DB와 해당 DB내 대상 테이블 페이지의 데이터를 점검하여, 테이블 내 동일 행 업데이트(Row Update)로 인한 데이터 간의 충돌을 방지하기 위해 업데이트 대상 테이블과 해당 테이블 페이지 데이터에 대한 해시(Hash) 처리를 수행하며, 해당 AP 서버에서 요청한 정보를 기준으로 상기 타겟 DB의 DBMS로 쿼리를 전송하는 쿼리 오케스트레이션부;를 포함한다.In order to achieve the above object, an embodiment of the present invention is a query orchestration processing device based on a microservice architecture, which is unique in transaction units input for service API calls requested from a plurality of AP servers to a heterogeneous distributed DB environment. Assign a transaction ID, and group queries within the function that processes service calls and called services in units of corresponding transaction IDs in individual DB units, but when multiple transaction requests occur, the data processing order is defined based on the request reception time. In order to ensure data processing performance, when data is processed in parallel, the data of the target DB and the target table page in the corresponding DB are checked to prevent data collisions due to the same row update in the table. and a query orchestration unit that performs hash processing on table and corresponding table page data and transmits a query to the DBMS of the target DB based on information requested from the corresponding AP server.

또한, 상기 실시 예에 따른 쿼리 오케스트레이션부는 다수의 AP 서버로부터 발생되는 서비스 API 호출에 대하여 특정 트랜잭션 ID를 부여하고, 해당 트랜잭션 ID 단위로 서비스 호출과 호출된 서비스를 처리하는 함수내에 쿼리들을 그룹화 하는 트랜잭션 그룹화 모듈부; 상기 다수의 AP 서버들로부터 동시에 다수의 트랜잭션 요청들이 발생됨에 따라 요청 접수 시점을 기준으로 데이터의 처리 순서를 정의하는 트랜잭션 큐 모듈부; 상기 데이터 처리의 성능 보장을 위하여 동시에 병렬로 데이터 처리 시 타겟 DB와 해당 DB내 대상 테이블의 페이지 단위로 데이터의 점검과, 데이터 충돌 방지를 위한 페이징 쿼리 처리를 수행하는 데이터 처리 모듈부; 및 해당 AP 서버에서 요청한 정보를 기준으로 타겟 DB의 DBMS로 쿼리를 전송하는 DB 연결 모듈부;를 포함하는 것을 특징으로 한다.In addition, the query orchestration unit according to the embodiment assigns a specific transaction ID to service API calls generated from a plurality of AP servers, and groups queries within a function that processes service calls and called services in units of corresponding transaction IDs. a grouping module unit; a transaction queue module unit for defining a data processing order based on a request reception point when a plurality of transaction requests are simultaneously generated from the plurality of AP servers; a data processing module unit that checks data on a page-by-page basis of a target DB and a target table within a corresponding DB and performs paging query processing to prevent data collisions when processing data simultaneously and in parallel in order to ensure performance of the data processing; and a DB connection module unit for transmitting a query to the DBMS of the target DB based on the information requested by the corresponding AP server.

또한, 상기 실시 예에 따른 트랜잭션 그룹화 모듈부는 다수의 AP 서버들로부터 요청 받은 트랜잭션들을 트랜잭션 ID와, 쿼리가 수행되어야 하는 타겟 대상 DB와, 개별 쿼리를 기준으로 메타 데이터 그룹화를 처리하는 것을 특징으로 한다.In addition, the transaction grouping module unit according to the embodiment is characterized by processing meta data grouping based on transaction IDs for transactions requested from a plurality of AP servers, target DBs to be queried, and individual queries. .

또한, 상기 실시 예에 따른 트랜잭션 큐 모듈부는 요청 접수 시점을 기준으로 FIFO(First-In First-Out) 처리하는 것을 특징으로 한다.In addition, the transaction queue module unit according to the above embodiment is characterized in that it performs First-In First-Out (FIFO) processing based on a request reception point.

삭제delete

또한, 본 발명의 일 실시 예는 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 방법으로서, a) 쿼리 오케스트레이션부가 다수의 AP 서버로부터 이기종 분산 DB환경으로 요청되는 서비스 API 호출에 대하여 입력된 트랜잭션 단위로 고유의 특정 트랜잭션 ID를 부여하고, 해당 트랜잭션 ID 단위로 서비스 호출과 호출된 서비스를 처리하는 함수내에 쿼리들을 개별 DB 단위로 그룹화 하는 단계; b) 상기 쿼리 오케스트레이션부가 다수의 AP 서버들로부터 동시에 다수의 트랜잭션 요청들이 발생됨에 따라 요청 접수 시점을 기준으로 데이터의 처리 순서를 정의하는 단계; c) 상기 쿼리 오케스트레이션부가 데이터 처리의 성능 보장을 위하여 동시에 병렬로 데이터 처리 시 타겟 DB와 해당 DB내 대상 테이블 페이지의 데이터를 점검하여, 테이블 내 동일 행 업데이트(Row Update)로 인한 데이터 간의 충돌을 방지하기 위해 업데이트 대상 테이블과 해당 테이블 페이지 데이터에 대한 해시(Hash) 처리를 수행하는 단계; 및 d) 상기 쿼리 오케스트레이션부가 해당 AP 서버에서 요청한 정보를 기준으로 타겟 DB의 DBMS로 쿼리를 전송하는 단계;를 포함한다.In addition, an embodiment of the present invention is a query orchestration processing method based on a microservice architecture, wherein a) a query orchestration unit has a unique specific input transaction unit for a service API call requested from a plurality of AP servers to a heterogeneous distributed DB environment. assigning a transaction ID, and grouping queries in each DB unit within a function that processes a service call and the called service by the corresponding transaction ID unit; b) defining, by the query orchestration unit, a data processing sequence based on a request reception point as a plurality of transaction requests are simultaneously generated from a plurality of AP servers; c) The query orchestration unit checks the data of the target DB and the target table page in the corresponding DB when processing data in parallel to ensure performance of data processing, preventing data collisions due to row updates in the table. performing hash processing on the table to be updated and corresponding table page data in order to do so; and d) transmitting a query to the DBMS of the target DB based on the information requested by the corresponding AP server by the query orchestration unit.

또한, 상기 실시 예에 따른 a) 단계는 다수의 AP 서버들로부터 요청 받은 트랜잭션들을 트랜잭션 ID와, 쿼리가 수행되어야 하는 타겟 대상 DB와, 개별 쿼리를 기준으로 메타 데이터 그룹화를 처리하는 것을 특징으로 한다.In addition, step a) according to the above embodiment is characterized by processing meta data grouping based on transaction IDs for transactions requested from a plurality of AP servers, target DBs to which queries are to be performed, and individual queries. .

또한, 상기 실시 예에 따른 b) 단계는 요청 접수 시점을 기준으로 FIFO(First-In First-Out) 처리하는 것을 특징으로 한다.In addition, step b) according to the above embodiment is characterized in that FIFO (First-In First-Out) processing is performed based on the request reception point.

삭제delete

본 발명은 마이크로 서비스 아키텍처 또는 분산 기반으로 구성된 시스템에서 이기종 또는 복수의 DB들을 운용하는 시스템을 지원하기 위해 대량의 쿼리들을 DB 단위 및 트랜잭션 단위로 재구성하고 정확한 타겟 DB에 데이터가 저장 및 관리가 이루어지도록 쿼리들을 오케스트레이션할 수 있는 장점이 있다.In order to support a system operating heterogeneous or multiple DBs in a system configured on a microservice architecture or a distributed basis, the present invention reorganizes a large amount of queries into DB units and transaction units, and stores and manages data in an accurate target DB. It has the advantage of being able to orchestrate queries.

또한, 본 발명은 다수의 시스템에서 발생되는 트랜잭션 처리가 요구되는 서비스 호출들에 대하여 서비스 호출과 특정 서비스 호출 내부에서 세부 실행 단위별 쿼리들을 트랜잭션 단위 별로 그룹화하여 처리하고, 쿼리들을 데이터 처리 대상 DB에 적합하게 전달 및 요청할 수 있는 장점이 있다.In addition, the present invention groups and processes queries for each detailed execution unit by transaction unit within a service call and a specific service call for service calls that require transaction processing occurring in multiple systems, and sends the queries to the data processing target DB. It has the advantage of being able to be delivered and requested appropriately.

또한, 본 발명은 동시에 병렬 처리되는 다수의 트랜잭션들 간에 데이터 처리 시, 처리 순서에 대한 보장과 데이터 충돌 또는 중복 처리를 방지할 수 있는 장점이 있다.In addition, the present invention has the advantage of guaranteeing the processing order and preventing data collision or overlapping processing when processing data between a plurality of transactions that are concurrently processed in parallel.

도1은 본 발명의 일 실시 예에 따른 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치의 구성을 나타낸 블록도.
도2는 도1의 실시 예에 따른 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치의 쿼리 오케스트레이션부 구성을 나타낸 블록도.
도3은 도1의 실시 예에 따른 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치에 따른 동작을 설명하기 위해 나타낸 예시도.
도4는 본 발명의 일 실시 예에 따른 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 방법을 설명하기 위해 나타낸 흐름도.
1 is a block diagram showing the configuration of a query orchestration processing device based on a microservice architecture according to an embodiment of the present invention.
2 is a block diagram showing the configuration of a query orchestration unit of a query orchestration processing apparatus based on a microservice architecture according to the embodiment of FIG. 1;
FIG. 3 is an exemplary view illustrating an operation according to a query orchestration processing apparatus based on a microservice architecture according to the embodiment of FIG. 1;
4 is a flowchart illustrating a query orchestration processing method based on a microservice architecture according to an embodiment of the present invention.

이하에서는 본 발명의 바람직한 실시 예 및 첨부하는 도면을 참조하여 본 발명을 상세히 설명하되, 도면의 동일한 참조부호는 동일한 구성요소를 지칭함을 전제하여 설명하기로 한다.Hereinafter, the present invention will be described in detail with reference to preferred embodiments of the present invention and accompanying drawings, but the same reference numerals in the drawings will be described on the premise that they refer to the same components.

본 발명의 실시를 위한 구체적인 내용을 설명하기에 앞서, 본 발명의 기술적 요지와 직접적 관련이 없는 구성에 대해서는 본 발명의 기술적 요지를 흩뜨리지 않는 범위 내에서 생략하였음에 유의하여야 할 것이다. Prior to describing specific details for the implementation of the present invention, it should be noted that configurations not directly related to the technical subject matter of the present invention are omitted within the scope of not disturbing the technical subject matter of the present invention.

또한, 본 명세서 및 청구범위에 사용된 용어 또는 단어는 발명자가 자신의 발명을 최선의 방법으로 설명하기 위해 적절한 용어의 개념을 정의할 수 있다는 원칙에 입각하여 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다.In addition, the terms or words used in this specification and claims are meanings and concepts consistent with the technical idea of the invention based on the principle that the inventor can define the concept of appropriate terms to best describe his/her invention. should be interpreted as

본 명세서에서 어떤 부분이 어떤 구성요소를 "포함"한다는 표현은 다른 구성요소를 배제하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.In this specification, the expression that a certain part "includes" a certain component means that it may further include other components, rather than excluding other components.

또한, "‥부", "‥기", "‥모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는 그 둘의 결합으로 구분될 수 있다.In addition, terms such as ".. unit", ".. unit", and ".. module" refer to units that process at least one function or operation, which may be classified as hardware, software, or a combination of the two.

또한, "적어도 하나의" 라는 용어는 단수 및 복수를 포함하는 용어로 정의되고, 적어도 하나의 라는 용어가 존재하지 않더라도 각 구성요소가 단수 또는 복수로 존재할 수 있고, 단수 또는 복수를 의미할 수 있음은 자명하다 할 것이다. In addition, the term "at least one" is defined as a term including singular and plural, and even if at least one term does not exist, each component may exist in singular or plural, and may mean singular or plural. would be self-evident.

또한, 각 구성요소가 단수 또는 복수로 구비되는 것은, 실시 예에 따라 변경가능하다 할 것이다.In addition, the singular or plural number of each component may be changed according to embodiments.

이하, 첨부된 도면을 참조하여 본 발명의 일 실시 예에 따른 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치 및 방법의 바람직한 실시예를 상세하게 설명한다.Hereinafter, a preferred embodiment of a query orchestration processing apparatus and method based on a microservice architecture according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도1은 본 발명의 일 실시 예에 따른 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치의 구성을 나타낸 블록도이고, 도2는 도1의 실시 예에 따른 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치의 쿼리 오케스트레이션부 구성을 나타낸 블록도이며, 도3은 도1의 실시 예에 따른 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치에 따른 동작을 설명하기 위해 나타낸 예시도이다.1 is a block diagram showing the configuration of a query orchestration processing device based on a microservice architecture according to an embodiment of the present invention, and FIG. 2 is a query orchestration of a query orchestration processing device based on a microservice architecture according to an embodiment of FIG. 1 It is a block diagram showing the sub-configuration, and FIG. 3 is an exemplary view to explain the operation according to the query orchestration processing apparatus based on the microservice architecture according to the embodiment of FIG. 1 .

도1 내지 도3을 참조하면, 본 발명의 일 실시 예에 따른 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치는 다수의 AP 서버들로 이루어진 AP 서버부(100)에서 호출되는 대량의 쿼리들을 DB 단위 및 트랜잭션 단위로 재구성하고, 정확한 타겟 DB에 데이터가 저장 및 관리가 이루어지도록 쿼리들을 오케스트레이션하여 DBMS부(300)로 전송하는 쿼리 오케스트레이션부(200)를 포함하여 구성될 수 있다.1 to 3, the microservice architecture-based query orchestration processing apparatus according to an embodiment of the present invention performs a large amount of queries called by the AP server unit 100 consisting of a plurality of AP servers in DB units and It may be configured to include a query orchestration unit 200 for reconstructing in transaction units, orchestrating queries to transmit data to the DBMS unit 300 so that data is stored and managed in an accurate target DB.

상기 AP 서버부(100)는 임의의 서비스 또는 처리를 수행하기 위한 API를 호출하는 다수의 AP 서버(Application Server) 시스템으로 구성될 수 있고, AP 서버 1(100a), AP 서버 2(100b), AP 서버 3(100c), ‥, 으로 구성될 수 있다.The AP server unit 100 may be composed of a plurality of AP server (Application Server) systems that call an API to perform any service or process, and include AP server 1 (100a), AP server 2 (100b), AP server 3 (100c), ..., may be configured.

또한, 상기 AP서버부(100)는 쿼리 오케스트레이션부(200)로 서비스 또는 임의의 처리를 위한 트랜잭션 처리를 요청할 수 있다.In addition, the AP server unit 100 may request transaction processing for service or arbitrary processing to the query orchestration unit 200 .

상기 쿼리 오케스트레이션부(200)는 다수의 AP 서버들(100a, 100b, 100c,‥)로부터 발생되는 서비스 API 호출에 대하여 특정 트랜잭션 ID를 부여할 수 있다.The query orchestration unit 200 may assign a specific transaction ID to service API calls generated from the plurality of AP servers 100a, 100b, 100c, ....

또한, 상기 쿼리 오케스트레이션부(200)는 서비스 API 호출에 대하여 해당 트랜잭션 ID 단위로 서비스 호출과, 호출된 서비스를 처리하는 함수내에 쿼리들을 그룹화 할 수 있다.Also, the query orchestration unit 200 may group service calls in units of corresponding transaction IDs for service API calls and queries within functions that process the called services.

또한, 상기 쿼리 오케스트레이션부(200)는 AP 서버들(100a, 100b, 100c,‥)로부터 다수의 트랜잭션 요청들이 발생되면 요청 접수 시점을 기준으로 데이터를 처리할 수 있다.In addition, when a plurality of transaction requests are generated from the AP servers 100a, 100b, 100c, etc., the query orchestration unit 200 may process data based on the request reception time.

또한, 상기 쿼리 오케스트레이션부(200)는 데이터 처리를 위한 성능의 보장을 위하여 동시에 병렬로 데이터 처리 시 타겟 DB와 해당 DB내 대상 테이블의 페이지 단위 데이터 점검과 데이터 충돌 방지를 위한 페이징 쿼리 처리를 수행할 수 있다.In addition, the query orchestration unit 200 performs paging query processing to prevent data collision and check data in page units of the target DB and target tables in the corresponding DB when simultaneously processing data in parallel to ensure performance for data processing. can

또한, 상기 쿼리 오케스트레이션부(200)는 AP 서버들(100a, 100b, 100c,‥)로부터 요청된 정보를 기준으로 타겟 DB의 DMBS, 예를 들어 DBMS 1(300a), DBMS 2(300b), DBMS 3(300c), ‥, 중 어느 하나로 쿼리를 전송할 수 있다.In addition, the query orchestration unit 200, based on the information requested from the AP servers 100a, 100b, 100c, ..., DMBS of the target DB, for example, DBMS 1 (300a), DBMS 2 (300b), DBMS 3 (300c), ..., the query can be transmitted.

이를 위해, 상기 쿼리 오케스트레이션부(200)는 트랜잭션 그룹화 모듈부(210)와, 트랜잭션 큐 모듈부(220)와, 데이터 처리 모듈부(230)와, DB 연결 모듈부(240)를 포함하여 구성될 수 있다.To this end, the query orchestration unit 200 may include a transaction grouping module unit 210, a transaction queue module unit 220, a data processing module unit 230, and a DB connection module unit 240. can

상기 트랜잭션 그룹화 모듈부(210)는 AP 서버들(100a, 100b, 100c,‥)로부터 발생되는 다수의 서비스 API 호출에 대하여 특정 트랜잭션 ID를 부여할 수 있다.The transaction grouping module unit 210 may assign a specific transaction ID to a plurality of service API calls generated from the AP servers 100a, 100b, 100c, ....

즉, 상기 트랜잭션 그룹화 모듈부(210)는 AP 서버들(100a, 100b, 100c,‥)로부터 트랜잭션이 입력되면, 예를 들어 AP 서버 1(100a)에서 요청된 호출에 대하여 1번 트랜잭션용 쿼리 호출(110), AP 서버 2(100b)에서 요청된 호출에 대하여 2번 트랜잭션용 쿼리 호출(120), AP 서버 3(100c)에서 요청된 호출에 대하여 3번 트랜잭션용 호출(130)과 같이, 입력된 트랜잭션 단위로 고유의 트랜잭션 ID를 부여할 수 있다.That is, when a transaction is input from the AP servers 100a, 100b, 100c, etc., the transaction grouping module unit 210 calls a query for transaction No. 1 for a call requested from the AP server 1 100a, for example. 110, a query call 120 for transaction No. 2 for a call requested from AP server 2 100b, and a call 130 for transaction No. 3 for a call requested from AP server 3 100c. A unique transaction ID can be assigned to each transaction unit.

또한, 상기 트랜잭션 그룹화 모듈부(210)는 부여된 트랜잭션 ID 단위로 서비스 호출과 호출된 서비스를 처리하는 함수내에 쿼리들을 그룹화 할 수 있다.Also, the transaction grouping module unit 210 may group queries within a service call and a function processing the called service in units of assigned transaction IDs.

즉, 상기 트랜잭션 그룹화 모듈부(210)는 다수의 AP 서버들(100a, 100b, 100c,‥)로부터 요청 받은 트랜잭션들을 트랜잭션 ID와, 쿼리가 수행되어야 하는 타겟 대상 DB와, 개별 쿼리를 기준으로 메타 데이터 그룹화 처리를 통해 예를 들어, DBMS 1에 전송할 쿼리(250), DBMS 2에 전송할 쿼리(251), DBMS 3에 전송할 쿼리(252)와 같이 그룹화할 수 있다.That is, the transaction grouping module unit 210 meta-categorizes the transactions requested from the plurality of AP servers 100a, 100b, 100c, ..., based on the transaction ID, the target DB on which the query is to be performed, and the individual query. Through data grouping processing, for example, query 250 to be transmitted to DBMS 1, query 251 to be transmitted to DBMS 2, and query 252 to be transmitted to DBMS 3 can be grouped.

상기 트랜잭션 큐 모듈부(220)는 AP 서버들(100a, 100b, 100c,‥)로부터 동시에 다수의 트랜잭션 요청들이 발생됨에 따라 요청 접수 시점을 기준으로 데이터의 처리 순서를 정의할 수 있다.The transaction queue module unit 220 may define a data processing order based on a request reception time as a plurality of transaction requests are simultaneously generated from the AP servers 100a, 100b, 100c, ....

즉, 상기 트랜잭션 큐 모듈부(220)는 요청 접수 시점을 기준으로 FIFO(First-In First-Out)를 통해 다수의 트랜잭션 요청들이 처리될 수 있도록 한다.That is, the transaction queue module unit 220 enables a plurality of transaction requests to be processed through First-In First-Out (FIFO) based on the request reception time.

상기 데이터 처리 모듈부(230)는 데이터 처리의 성능 보장을 위하여 동시에 병렬로 데이터 처리를 수행할 수 있다.The data processing module unit 230 may simultaneously and parallelly process data to ensure performance of data processing.

또한, 상기 데이터 처리 모듈부(230)는 병렬로 데이터 처리 시, 타겟 DB와 해당 DB내 대상 테이블의 페이지 단위로 테이블 데이터의 점검을 수행할 수 있고, 이때 데이터의 충돌 방지를 위한 데이터 처리를 수행할 수 있다.In addition, when processing data in parallel, the data processing module unit 230 may check table data in page units of a target DB and a target table in the corresponding DB, and at this time, perform data processing to prevent data collision. can do.

즉, 상기 데이터 처리 모듈부(230)는 테이블내 동일 행 업데이트(Row Update)를 위한 데이터간 충돌 발생을 방지하기 위해 업데이트 대상 테이블과 해당 테이블의 페이지 데이터에 대해 해시(Hash) 처리한다.That is, the data processing module unit 230 performs hash processing on the table to be updated and the page data of the corresponding table in order to prevent a collision between data for updating the same row in the table.

상기 DB 연결 모듈부(240)는 AP 서버(100a, 100b, 100c,‥)에서 요청한 정보를 기준으로 정확한 타겟 대상 DB의 DBMS, 예를 들어 DBMS 1(300a), DBMS 2(300b), DBMS 3(300c), ‥, 중 어느 하나로 쿼리가 전송될 수 있도록 한다.The DB connection module unit 240 connects the DBMS of the exact target DB, for example, DBMS 1 (300a), DBMS 2 (300b), DBMS 3, based on the information requested by the AP servers (100a, 100b, 100c, ...). (300c), ..., so that the query can be transmitted.

상기 DBMS(300)는 쿼리 오케스트레이션부(200)에서 전송되는 쿼리에 따라 데이터베이스에서 데이터를 검색, 수정, 삽입 또는 삭제 중 하나의 작업을 수행할 수 있고, 서로 다른 데이터베이스를 작업을 수행할 수 있도록 DBMS 1(300a), DBMS 2(300b) DBMS 3(300b), ‥,으로 구성될 수 있다.The DBMS 300 can perform one of the tasks of searching, modifying, inserting, or deleting data in the database according to the query transmitted from the query orchestration unit 200, and the DBMS can perform tasks in different databases. 1 (300a), DBMS 2 (300b), DBMS 3 (300b), ....

다음은 본 발명의 일 실시 예에 따른 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 방법을 설명한다.Next, a query orchestration processing method based on a microservice architecture according to an embodiment of the present invention will be described.

도4는 본 발명의 일 실시 예에 따른 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 방법을 설명하기 위해 나타낸 흐름도이다.4 is a flowchart illustrating a query orchestration processing method based on a microservice architecture according to an embodiment of the present invention.

도1 내지 도4를 참조하면, 쿼리 오케스트레이션부(200)는 AP 서버들(100a, 100b, 100c,‥)로부터 트랜잭션이 입력되면, 예를 들어 AP 서버 1(100a)에서 요청된 호출에 대하여 1번 트랜잭션용 쿼리 호출(110), AP 서버 2(100b)에서 요청된 호출에 대하여 2번 트랜잭션용 쿼리 호출(120), AP 서버 3(100c)에서 요청된 호출에 대하여 3번 트랜잭션용 호출(130)과 같이, 입력된 트랜잭션 단위로 고유의 트랜잭션 ID를 부여(S100)할 수 있다.1 to 4, the query orchestration unit 200, when a transaction is input from the AP servers 100a, 100b, 100c, ..., for example, 1 for a call requested from the AP server 1 100a. Query call 110 for transaction 1, query call 120 for transaction 2 with respect to the call requested from AP server 2 100b, call 130 for transaction 3 with respect to the call requested from AP server 3 100c ), a unique transaction ID may be assigned to each input transaction unit (S100).

또한, 상기 쿼리 오케스트레이션부(200)는 부여된 트랜잭션 ID 단위로 서비스 호출과 호출된 서비스를 처리하는 함수내에 쿼리들을 그룹화(S200)한다.Also, the query orchestration unit 200 groups queries within a service call and a function processing the called service in units of assigned transaction IDs (S200).

즉, S200 단계에서 상기 쿼리 오케스트레이션부(200)는 다수의 AP 서버들(100a, 100b, 100c,‥)로부터 요청 받은 트랜잭션들을 트랜잭션 ID와, 쿼리가 수행되어야 하는 타겟 대상 DB와, 개별 쿼리를 기준으로 메타 데이터 그룹화 처리를 통해 DBMS 1에 전송할 쿼리(250), DBMS 2에 전송할 쿼리(251), DBMS 3에 전송할 쿼리(252) 등과 같이 그룹화 한다.That is, in step S200, the query orchestration unit 200 determines the transactions requested from the plurality of AP servers 100a, 100b, 100c, ... based on the transaction ID, the target DB to be queried, and individual queries. Query (250) to be transmitted to DBMS 1, query (251) to be transmitted to DBMS 2, query (252) to be transmitted to DBMS 3, etc. are grouped through meta data grouping processing.

또한, 상기 쿼리 오케스트레이션부(200)는 다수의 AP 서버들로부터 동시에 다수의 트랜잭션 요청들이 발생됨에 따라 요청 접수 시점을 기준으로 FIFO(First-In First-Out)를 통해 다수의 트랜잭션 요청들이 처리될 수 있도록 데이터의 처리 순서를 정의(S300)한다.In addition, as a plurality of transaction requests are simultaneously generated from a plurality of AP servers, the query orchestration unit 200 can process a plurality of transaction requests through First-In First-Out (FIFO) based on the request reception time. The data processing sequence is defined (S300).

또한, 상기 쿼리 오케스트레이션부(200)는 데이터 처리의 성능 보장을 위하여 동시에 병렬로 데이터 처리 시 타겟 DB와 해당 DB내 대상 테이블 페이지 데이터의 점검과, 데이터 충돌 방지를 위하여 페이지의 데이터 처리(S400)를 수행할 수 있다.In addition, the query orchestration unit 200 checks target DB and target table page data in the corresponding DB when processing data in parallel to ensure performance of data processing, and processes page data (S400) to prevent data collision. can be done

상기 S400 단계에서, 쿼리 오케스트레이션부(200)는 테이블내 동일 행 업데이트(Row Update)를 위한 데이터간 충돌 발생을 방지하기 위해 업데이트 대상 테이블과 해당 테이블의 페이지 데이터에 대해 해시(Hash) 처리를 수행할 수 있다.In step S400, the query orchestration unit 200 performs hash processing on the table to be updated and the page data of the corresponding table in order to prevent a collision between data for updating the same row in the table. can

계속해서, 상기 쿼리 오케스트레이션부(200)는 AP 서버(100a, 100b, 100c,‥)에서 요청한 정보를 기준으로 정확한 타겟 대상 DB의 DBMS, 예를 들어 DBMS 1(300a), DBMS 2(300b), DBMS 3(300c), ‥, 중 어느 하나로 쿼리가 전송(S500)한다.Continuing, the query orchestration unit 200, based on the information requested by the AP servers 100a, 100b, 100c, etc., accurately targets the DBMS of the target DB, for example, DBMS 1 (300a), DBMS 2 (300b), A query is transmitted to one of DBMS 3 (300c), ..., (S500).

따라서, 마이크로 서비스 아키텍처 또는 분산 기반으로 구성된 시스템에서 이기종 또는 복수의 DB들을 운용하는 시스템을 지원하기 위해 대량의 쿼리들을 DB 단위 및 트랜잭션 단위로 재구성하고 정확한 타겟 DB에 데이터가 저장 및 관리가 이루어지도록 쿼리들을 오케스트레이션할 수 있게 된다.Therefore, in order to support a system that operates heterogeneous or multiple DBs in a microservice architecture or a system configured on a distributed basis, a large amount of queries are reorganized in DB units and transaction units, and queries are made so that data is stored and managed in an accurate target DB. can orchestrate them.

또한, 다수의 시스템에서 발생되는 트랜잭션 처리가 요구되는 서비스 호출들에 대하여 서비스 호출과 특정 서비스 호출 내부에서 세부 실행 단위별 쿼리들을 트랜잭션 단위 별로 그룹화하여 처리하고, 쿼리들을 데이터 처리 대상 DB에 적합하게 전달 및 요청할 수 있다.In addition, for service calls that require transaction processing occurring in multiple systems, queries by detailed execution unit are grouped and processed within the service call and specific service call by transaction unit, and the queries are properly delivered to the data processing target DB. and can be requested.

또한, 동시에 병렬 처리되는 다수의 트랜잭션들 간에 데이터 처리 시, 처리 순서에 대한 보장과 데이터 충돌 또는 중복 처리를 방지할 수 있게 된다.In addition, when processing data between a plurality of transactions that are concurrently processed in parallel, it is possible to guarantee the processing order and prevent data collision or overlapping processing.

상기와 같이, 본 발명의 바람직한 실시 예를 참조하여 설명하였지만 해당 기술 분야의 숙련된 당업자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.As described above, although it has been described with reference to the preferred embodiments of the present invention, those skilled in the art will variously modify and change the present invention within the scope not departing from the spirit and scope of the present invention described in the claims below. You will understand that it can be done.

또한, 본 발명의 특허청구범위에 기재된 도면번호는 설명의 명료성과 편의를 위해 기재한 것일 뿐 이에 한정되는 것은 아니며, 실시예를 설명하는 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다.In addition, the drawing numbers described in the claims of the present invention are only described for clarity and convenience of explanation, but are not limited thereto, and in the process of describing the embodiments, the thickness of lines or the size of components shown in the drawings, etc. may be exaggerated for clarity and convenience of description.

또한, 상술된 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있으므로, 이러한 용어들에 대한 해석은 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In addition, the above-mentioned terms are terms defined in consideration of functions in the present invention, which may change according to the intention or custom of the user or operator, so the interpretation of these terms should be made based on the contents throughout this specification. .

또한, 명시적으로 도시되거나 설명되지 아니하였다 하여도 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기재사항으로부터 본 발명에 의한 기술적 사상을 포함하는 다양한 형태의 변형을 할 수 있음은 자명하며, 이는 여전히 본 발명의 권리범위에 속한다. In addition, even if it is not explicitly shown or described, a person skilled in the art to which the present invention belongs can make various modifications from the description of the present invention to the technical idea according to the present invention. Obviously, it is still within the scope of the present invention.

또한, 첨부하는 도면을 참조하여 설명된 상기의 실시예들은 본 발명을 설명하기 위한 목적으로 기술된 것이며 본 발명의 권리범위는 이러한 실시예에 국한되지 아니한다.In addition, the above embodiments described with reference to the accompanying drawings are described for the purpose of explaining the present invention, and the scope of the present invention is not limited to these embodiments.

100 : AP 서버부 100a : AP 서버 1
100b : AP 서버 2 100c : AP 서버 3
110 : 1번 트랜잭션용 쿼리 호출 120 : 2번 트랜잭션용 쿼리 호출
130 : 3번 트랜잭션용 쿼리 호출 200 : 쿼리 오케스트레이션부
210 : 트랜잭션 그룹화 모듈부 220 : 트랜잭션 큐 모듈부
230 : 데이터 처리 모듈부 240 : DB 연결 모듈부
250 : DBMS 1에 전송할 쿼리 251 : DBMS 2에 전송할 쿼리
252 : DBMS 3에 전송할 쿼리 300 : DBMS부
300a : DBMS 1 300b : DBMS 2
300c : DBMS 3
100: AP server unit 100a: AP server 1
100b: AP server 2 100c: AP server 3
110: Call query for transaction #1 120: Call query for transaction #2
130: Query call for transaction No. 3 200: Query orchestration unit
210: transaction grouping module unit 220: transaction queue module unit
230: data processing module unit 240: DB connection module unit
250: query to be transmitted to DBMS 1 251: query to be transmitted to DBMS 2
252: query to be transmitted to DBMS 3 300: DBMS part
300a: DBMS 1 300b: DBMS 2
300c: DBMS 3

Claims (9)

다수의 AP 서버로부터 이기종 분산 DB환경으로 요청되는 서비스 API 호출에 대하여 입력된 트랜잭션 단위로 고유의 특정 트랜잭션 ID를 부여하고, 해당 트랜잭션 ID 단위로 서비스 호출과 호출된 서비스를 처리하는 함수내에 쿼리들을 개별 DB 단위로 그룹화 하되,
다수의 트랜잭션 요청들이 발생되면 요청 접수 시점을 기준으로 데이터의 처리 순서를 정의하고,
데이터 처리 성능의 보장을 위하여 동시에 병렬로 데이터 처리 시 타겟 DB와 해당 DB내 대상 테이블 페이지의 데이터를 점검하여, 테이블 내 동일 행 업데이트(Row Update)로 인한 데이터 간의 충돌을 방지하기 위해 업데이트 대상 테이블과 해당 테이블 페이지 데이터에 대하여 해시(Hash) 처리로 데이터를 구분하며,
해당 AP 서버에서 요청한 정보를 기준으로 상기 타겟 DB의 DBMS로 쿼리를 전송하는 쿼리 오케스트레이션부(200);를 포함하는 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치.
For service API calls requested from multiple AP servers to a heterogeneous distributed DB environment, a specific transaction ID is assigned to each input transaction unit, and queries within the function processing the service call and the called service are individually processed in units of the corresponding transaction ID. Group by DB unit,
When multiple transaction requests are generated, the data processing order is defined based on the request reception time,
To ensure data processing performance, when processing data in parallel, check the data of the target DB and the target table page in the corresponding DB to prevent data collisions caused by updating the same row in the table. For the table page data, the data is classified by hash processing,
A query orchestration processing device based on a microservice architecture including a query orchestration unit 200 that transmits a query to the DBMS of the target DB based on information requested by the corresponding AP server.
제 1 항에 있어서,
상기 쿼리 오케스트레이션부(200)는 다수의 AP 서버로부터 이기종 분산 DB환경으로 요청되는 서비스 API 호출에 대하여 입력된 트랜잭션 단위로 고유의 특정 트랜잭션 ID를 부여하고, 해당 트랜잭션 ID 단위로 서비스 호출과 호출된 서비스를 처리하는 함수내에 쿼리들을 개별 DB 단위로 그룹화 하는 트랜잭션 그룹화 모듈부(210);
상기 다수의 AP 서버들로부터 동시에 다수의 트랜잭션 요청들이 발생됨에 따라 요청 접수 시점을 기준으로 데이터의 처리 순서를 정의하는 트랜잭션 큐 모듈부(220);
상기 데이터 처리의 성능 보장을 위하여 동시에 병렬로 데이터 처리 시 타겟 DB와 해당 DB내 대상 테이블 페이지의 데이터를 점검하여, 테이블 내 동일 행 업데이트(Row Update)로 인한 데이터 간의 충돌을 방지하기 위해 업데이트 대상 테이블과 해당 테이블 페이지 데이터에 대하여 해시(Hash) 처리로 데이터를 구분하는 데이터 처리 모듈부(230); 및
해당 AP 서버에서 요청한 정보를 기준으로 타겟 DB의 DBMS로 쿼리를 전송하는 DB 연결 모듈부(240);를 포함하는 것을 특징으로 하는 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치.
According to claim 1,
The query orchestration unit 200 assigns a unique specific transaction ID to a service API call requested from a plurality of AP servers to a heterogeneous distributed DB environment in units of input transactions, and calls services and called services in units of corresponding transaction IDs. A transaction grouping module unit 210 that groups queries into individual DB units within a function that processes ;
a transaction queue module unit 220 defining a data processing sequence based on a request reception point as a plurality of transaction requests are simultaneously generated from the plurality of AP servers;
In order to guarantee the performance of the data processing, the data of the target DB and the target table page in the corresponding DB are checked when processing data in parallel at the same time to prevent data collisions caused by row updates in the table. and a data processing module unit 230 for classifying data by hash processing for corresponding table page data; and
A query orchestration processing device based on a microservice architecture comprising: a DB connection module unit 240 that transmits a query to the DBMS of the target DB based on information requested by the corresponding AP server.
제 2 항에 있어서,
상기 트랜잭션 그룹화 모듈부(210)는 다수의 AP 서버들로부터 요청 받은 트랜잭션들을 트랜잭션 ID와, 쿼리가 수행되어야 하는 타겟 대상 DB와, 개별 쿼리를 기준으로 메타 데이터 그룹화를 처리하는 것을 특징으로 하는 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치.
According to claim 2,
The transaction grouping module unit 210 processes meta data grouping based on a transaction ID for transactions requested from a plurality of AP servers, a target DB on which a query is to be performed, and an individual query. Architecture-based query orchestration processing unit.
제 2 항에 있어서,
상기 트랜잭션 큐 모듈부(220)는 요청 접수 시점을 기준으로 FIFO(First-In First-Out) 처리하는 것을 특징으로 하는 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치.
According to claim 2,
The transaction queue module unit 220 performs first-in first-out (FIFO) processing based on a request reception point.
삭제delete a) 쿼리 오케스트레이션부(200)가 다수의 AP 서버로부터 이기종 분산 DB환경으로 요청되는 서비스 API 호출에 대하여 입력된 트랜잭션 단위로 고유의 특정 트랜잭션 ID를 부여하고, 해당 트랜잭션 ID 단위로 서비스 호출과 호출된 서비스를 처리하는 함수내에 쿼리들을 개별 DB 단위로 그룹화 하는 단계;
b) 상기 쿼리 오케스트레이션부(200)가 다수의 AP 서버들로부터 동시에 다수의 트랜잭션 요청들이 발생됨에 따라 요청 접수 시점을 기준으로 데이터의 처리 순서를 정의하는 단계;
c) 상기 쿼리 오케스트레이션부(200)가 데이터 처리의 성능 보장을 위하여 동시에 병렬로 데이터 처리 시 타겟 DB와 해당 DB내 대상 테이블 페이지의 데이터를 점검하여, 테이블 내 동일 행 업데이트(Row Update)로 인한 데이터 간의 충돌을 방지하기 위해 업데이트 대상 테이블과 해당 테이블 페이지 데이터에 대하여 해시(Hash) 처리로 데이터를 구분하는 단계; 및
d) 상기 쿼리 오케스트레이션부(200)가 해당 AP 서버에서 요청한 정보를 기준으로 타겟 DB의 DBMS로 쿼리를 전송하는 단계;를 포함하는 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 방법.
a) The query orchestration unit 200 assigns a unique specific transaction ID in units of input transactions to service API calls requested from a plurality of AP servers to a heterogeneous distributed DB environment, and performs service calls and calls in units of corresponding transaction IDs. Grouping queries into individual DB units within the service processing function;
b) defining, by the query orchestration unit 200, a data processing order based on a request reception point as a plurality of transaction requests are simultaneously generated from a plurality of AP servers;
c) When the query orchestration unit 200 simultaneously processes data in parallel to ensure performance of data processing, it checks the data of the target DB and the target table page in the corresponding DB, and data resulting from row update in the same table. Classifying data by hash processing for an update target table and corresponding table page data in order to prevent a collision between them; and
d) transmitting, by the query orchestration unit 200, a query to a DBMS of a target DB based on the information requested by the AP server;
제 6 항에 있어서,
상기 a) 단계는 다수의 AP 서버들로부터 요청 받은 트랜잭션들을 트랜잭션 ID와, 쿼리가 수행되어야 하는 타겟 대상 DB와, 개별 쿼리를 기준으로 메타 데이터 그룹화를 처리하는 것을 특징으로 하는 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 방법.
According to claim 6,
The step a) processes meta data grouping based on the transaction ID of the transactions requested from the plurality of AP servers, the target DB on which the query is to be performed, and the individual query. Orchestration handling method.
제 6 항에 있어서,
상기 b) 단계는 요청 접수 시점을 기준으로 FIFO(First-In First-Out) 처리하는 것을 특징으로 하는 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 방법.
According to claim 6,
The step b) is a microservice architecture-based query orchestration processing method, characterized in that FIFO (First-In First-Out) processing based on the request reception point.
삭제delete
KR1020220045593A 2022-04-13 2022-04-13 Apparatus and method for orchestrating quere based on microservice architecture KR102499488B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220045593A KR102499488B1 (en) 2022-04-13 2022-04-13 Apparatus and method for orchestrating quere based on microservice architecture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220045593A KR102499488B1 (en) 2022-04-13 2022-04-13 Apparatus and method for orchestrating quere based on microservice architecture

Publications (1)

Publication Number Publication Date
KR102499488B1 true KR102499488B1 (en) 2023-02-14

Family

ID=85220999

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220045593A KR102499488B1 (en) 2022-04-13 2022-04-13 Apparatus and method for orchestrating quere based on microservice architecture

Country Status (1)

Country Link
KR (1) KR102499488B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100795929B1 (en) * 2005-09-29 2008-01-21 엔에이치엔(주) Method and system for transmitting defined-query to database
KR20170016962A (en) 2014-06-13 2017-02-14 콘비다 와이어리스, 엘엘씨 Automated service profiling and orchestration
KR20170134723A (en) * 2015-04-10 2017-12-06 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Event processing system paging
US20220035816A1 (en) * 2020-08-03 2022-02-03 International Business Machines Corporation Prioritization and optimization of database workloads
KR102364712B1 (en) 2015-04-03 2022-02-18 한국전자통신연구원 A system and method for integrated service orchestration in distributed cloud envronment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100795929B1 (en) * 2005-09-29 2008-01-21 엔에이치엔(주) Method and system for transmitting defined-query to database
KR20170016962A (en) 2014-06-13 2017-02-14 콘비다 와이어리스, 엘엘씨 Automated service profiling and orchestration
KR102364712B1 (en) 2015-04-03 2022-02-18 한국전자통신연구원 A system and method for integrated service orchestration in distributed cloud envronment
KR20170134723A (en) * 2015-04-10 2017-12-06 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Event processing system paging
US20220035816A1 (en) * 2020-08-03 2022-02-03 International Business Machines Corporation Prioritization and optimization of database workloads

Similar Documents

Publication Publication Date Title
CN111480154B (en) Method, system, and medium for batch data ingestion
CN107545338B (en) Service data processing method and service data processing system
CN107666525B (en) Method and device for IP allocation of cluster container
CN106170016A (en) A kind of method and system processing high concurrent data requests
CN107451853B (en) Method, device and system for real-time red packet distribution and storage medium
CN109597853B (en) Business scene element serial number generation method, device, medium and computer equipment
CN106886371B (en) Caching data processing method and device
JP2007025785A (en) Database processing method, system, and program
US20210392198A1 (en) Data Center Management System
CN107659450B (en) Method and device for allocating big data cluster resources and storage medium
JP6926035B2 (en) Database management device and query partitioning method
CN112835904A (en) Data processing method and data processing device
US20140129598A1 (en) Dynamic management of log persistence
KR102499488B1 (en) Apparatus and method for orchestrating quere based on microservice architecture
US20180293317A1 (en) Prefix matching using distributed tables for storage services compatibility
CN109150927B (en) File issuing method and device for file storage system
CN111737228B (en) Database and table dividing method and device
US10853253B2 (en) Method and systems for master establishment using service-based statistics
CN113407108A (en) Data storage method and system
US11836268B2 (en) Machine learning platform with model storage
KR102518268B1 (en) Apparatus and method for virtualizing transaction based on micro service architecture
CN113761553A (en) Menu batch authorization method and device, electronic equipment and computer readable medium
CN112988559A (en) Request shunting method and device
CN112183799A (en) Task allocation method and device for synthesizing task list
CN111984686A (en) Data processing method and device

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant