KR20110051779A - Data transferring system and data transferring method for the same - Google Patents

Data transferring system and data transferring method for the same Download PDF

Info

Publication number
KR20110051779A
KR20110051779A KR1020090108543A KR20090108543A KR20110051779A KR 20110051779 A KR20110051779 A KR 20110051779A KR 1020090108543 A KR1020090108543 A KR 1020090108543A KR 20090108543 A KR20090108543 A KR 20090108543A KR 20110051779 A KR20110051779 A KR 20110051779A
Authority
KR
South Korea
Prior art keywords
data
storage medium
thread
inquiry
local queue
Prior art date
Application number
KR1020090108543A
Other languages
Korean (ko)
Other versions
KR101069814B1 (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 KR1020090108543A priority Critical patent/KR101069814B1/en
Publication of KR20110051779A publication Critical patent/KR20110051779A/en
Application granted granted Critical
Publication of KR101069814B1 publication Critical patent/KR101069814B1/en

Links

Images

Classifications

    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions

Abstract

PURPOSE: A data transferring system and a data transferring method for the same are provided to control the data transferring system through one time command. CONSTITUTION: A search thread(120) searches a data from a first storage media and temporarily stores the searched data to a local queue(110). Business process threads(130) pop the data from the local queue, apply the popped data to a second storage media, and delete the popped data from a first storage media. A first storage medium mutex(140) controls the competition of the search threads and the business process threads. A local queue mutex(150) controls the competition of the search threads and the business process threads about the local queue.

Description

데이터 전달 시스템 및 그 데이터 전달 방법{Data Transferring System and Data Transferring Method for the Same}Data Transfer System and Data Transferring Method for the Same}

본 발명은 데이터 전달 시스템에 관한 것으로, 특히 저장매체 사이의 데이터 전달 성능을 높이기 위한 데이터 전달 시스템 및 그 데이터 전달 방법에 관한 것이다.The present invention relates to a data transfer system, and more particularly, to a data transfer system and a data transfer method for improving data transfer performance between storage media.

지난 수십 년 동안 만들어진 대부분의 엔터프라이즈 시스템은 제공하는 주요 기능에 따라 크게 계정계, 정보계 두 시스템으로 나눌 수 있다.Most enterprise systems created over the last few decades can be broadly divided into account systems and information systems, depending on the key features they provide.

은행 시스템을 예로 들면, 계정계 시스템은 실시간으로 고객의 거래를 처리하는 은행 시스템의 핵심적인 부분으로 각 업무의 중요 데이터들을 테이블 형태로 저장한 업무 원장이라는 데이터를 토대로 입금, 출금, 이체, 지로, 통장개설, 통장폐쇄 등의 업무들을 처리하고 데이터로 저장한다. 정보계 시스템은 계정계 시스템에서 만들어진 데이터들을 이관 및 가공하여 기록의 통계, 기록에 의해 찾을 수 있는 예측, 성과 측정, 결산 등의 정보를 생산한다.Taking the banking system as an example, the accounting system is an essential part of the banking system that processes customers' transactions in real time.It is a deposit, withdrawal, transfer, bank, bank account based on the data of a business ledger that stores important data of each business in a table form. It handles tasks such as opening and closing a bankbook and storing it as data. The information system transfers and processes the data created in the accounting system to produce information such as statistics of the records, predictions found by the records, performance measures, and settlement of accounts.

일반적으로 계정계 시스템이 업무 처리를 통해 저장한 데이터들은 은행의 업무 외 시간, 주로 야간(夜間)을 이용하여 정보계 시스템으로 이관되어 분석에 용이한 형태로 가공되었다. 즉, 정보계 시스템은 계정계 시스템의 전일(前日) 데이터를 가공하여 정보를 생산하였다. 하지만 최근에는 이러한 데이터 이관 및 가공을 실시간으로 처리한다. 이를 위해 정보계 시스템은 계정계 시스템의 저장매체에 기록된 데이터를 실시간으로 조회하여 정보계 시스템의 저장매체에 반영하게 된다.In general, the data stored by the accounting system through the business process is transferred to the information system using the bank's non-business hours, mainly night, and processed into a form that is easy for analysis. That is, the information system produced information by processing the previous day data of the account system. Recently, however, this data migration and processing is handled in real time. To this end, the information system is to query the data recorded in the storage medium of the account system in real time to reflect the storage medium of the information system.

계정계 시스템의 여러 거래에 대해 정보계 시스템의 실시간 반영을 위해서는 데이터 조회 및 반영을 위한 데이터 전달 시스템의 성능 개선이 필요하다.In order to reflect the information system in real time on various transactions of the account system, it is necessary to improve the performance of the data delivery system for data inquiry and reflection.

이러한 데이터 전달 시스템의 성능 개선을 위해 데이터 전달을 병렬로 처리하는 방안이 이용되었다. 복수의 프로세스(Process)를 생성하여 일시에 복수의 데이터를 전달하는 방식이다.In order to improve the performance of such a data delivery system, a method of processing data transfer in parallel has been used. This is a method of creating a plurality of processes and delivering a plurality of data at one time.

하지만 이러한 복수의 프로세스를 이용한 데이터 병렬 전달 방식에 의하면, 하나의 데이터를 복수의 프로세스가 중복 전달할 수 있다. 계정계 시스템의 저장매체에 기록된 데이터는, 정보계 시스템의 임의의 프로세스에 의해 조회되더라도 삭제되지 않고 계속 유지되며, 데이터 전달 시스템에 의해 정보계 시스템에 반영된 이후 조회를 담당했던 정보계 시스템의 프로세스에 의해 삭제된다. 만약 하나의 프로세스가 특정 데이터를 조회하여 반영하는 동안, 즉, 특정 데이터가 조회만 되고 삭제는 되지 않은 상태에서 다른 프로세스들에 의해 중복 조회될 수 있다. 이 경우 중복 조회된 데이터에 의해 정보계 시스템에는 같은 데이터가 중복 반영되는 문제가 생길 수 있다.However, according to the data parallel transfer method using the plurality of processes, a plurality of processes may deliver duplicate data. The data recorded on the storage medium of the accounting system is maintained without being deleted even if it is inquired by any process of the information system. Is deleted by If one process inquires and reflects specific data, that is, the specific data may be inquired and duplicated by other processes without being deleted. In this case, the same data may be repeatedly reflected in the information system due to duplicated data.

복수의 프로세스를 이용한 데이터 병렬 전달 방식은 이러한 데이터 중복 조회 및 반영 문제를 해결하기 위해 계정계 시스템의 저장매체에 데이터를 저장 시 그룹 아이디(ID)를 설정하였다. 계정계 시스템에서 특정 개수의 그룹 아이디를 설정하여 데이터를 저장하고, 정보계 시스템에서 같은 개수의 프로세스를 생성하여 각 그룹 아이디별로 처리하는 프로세스를 달리하여 데이터 전달을 한다. 이와 같이 하면 동시에 복수의 데이터를 중복 없이 전달할 수 있어 데이터 전달 속도가 개선된다.In parallel data transmission using a plurality of processes, a group ID was set when data was stored in a storage medium of an accounting system in order to solve the data duplication inquiry and reflection problem. In the accounting system, a specific number of group IDs are set to store data, and in the information system, the same number of processes are generated to process data for each group ID. In this way, a plurality of data can be delivered simultaneously without duplication, thereby improving data transmission speed.

하지만 이러한 복수의 프로세스를 이용한 데이터 병렬 전달 방식은 관리자 입장에서 불편함을 초래한다. 데이터 전달 시스템을 한 번의 명령으로 제어할 수 없고, 각 그룹 아이디별 프로세스에 각각 같은 명령을 전달해야하는 관리 부담이 생긴다. 그리고 이러한 복수의 프로세스를 이용한 데이터 병렬 전달 방식은 데이터 소요량을 미리 산정하여 인위적으로 조정하여 그룹 아이디를 설정하여야 한다. 그렇지 않으면 특정 그룹 아이디의 프로세스는 데이터 전달이 지연되고 있는 상황에서 다른 그룹 아이디의 프로세스는 데이터 전달을 마치고 대기를 하는 경우가 발생하여 시스템 자원 활용의 비효율성을 초래하게 된다.However, the parallel data transfer using a plurality of processes causes inconvenience to the administrator. The data delivery system cannot be controlled by one command, and there is an administrative burden of transmitting the same command to each group ID process. In the parallel data transfer method using a plurality of processes, a group ID must be set by artificially adjusting data requirements in advance. Otherwise, a process with a certain group ID is delayed in data transmission, and another process with a group ID waits after completing data transmission, resulting in inefficiency of system resource utilization.

이에 본 발명은 상기와 같은 종래의 제반 문제점을 해결하기 위해 제안된 것으로, 본 발명은 관리자가 한 번의 명령으로 데이터 전달 시스템을 제어하게 하는 데 제1 목적이 있다.Accordingly, the present invention has been proposed to solve the above-mentioned general problems, and the present invention has a first object to allow the administrator to control the data transfer system with a single command.

그리고 특정 그룹 아이디 설정 없이 데이터의 생성 순서대로 순차적으로 전달되게 하는데 제2 목적이 있다.The second purpose of the method is to sequentially transmit data in order of generating data without setting a specific group ID.

본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects that are not mentioned will be clearly understood by those skilled in the art from the following description.

상술한 바와 같은 과제를 달성하기 위한 본 발명의 바람직한 일 실시예는, 계정계 시스템의 제1 저장매체(Database)로부터 데이터를 조회하여 정보계 시스템의 제2 저장매체(Database, Message Queue, File 등)에 반영하는 데이터 전달 시스템으로서, 상기 제1 저장매체로부터 조회(Select)한 데이터를 임시 저장하는 로컬 큐(Local Queue)와; 상기 제1 저장매체로부터 데이터를 조회하고, 조회한 데이터를 상기 로컬 큐에 푸시(Push)하여 임시 저장하는 조회 스레드(Thread)와; 상기 로컬 큐로부터 데이터를 팝(Pop)하고, 팝한 데이터를 상기 제2 저장매체에 반영(Work)하고 상기 제1 저장매체로부터 삭제(Delete)하는 복수의 업무처리 스레드와; 상기 제1 저장매체에 대한 상기 조회 스레드와 상기 복수의 업무처리 스레드의 사용 경합을 제어하여 상기 조회 스레드와 상기 복수의 업무처리 스레드 중에서 하나만이 상기 제1 저장매체를 사용하도록 제어하는 제1 저장매체 뮤텍스(Mutex)와; 상기 로컬 큐에 대한 상기 조회 스레드와 상기 복수의 업무처리 스레드의 사용 경합을 제어하여 상기 조회 스레드와 상기 복수의 업무처리 스레드 중에서 하나만이 상기 제1 로 컬 큐를 사용하도록 제어하는 로컬 큐 뮤텍스;를 포함하여 구성된 것을 특징으로 한다.In accordance with another aspect of the present invention, a second storage medium (Database, Message Queue, File, etc.) of an information system may be searched for data from a first storage medium (Database) of an accounting system. A data delivery system reflected in the data storage system, comprising: a local queue for temporarily storing data selected from the first storage medium; An inquiry thread for inquiring data from the first storage medium, and temporarily storing the inquired data by pushing it to the local queue; A plurality of work processing threads for popping data from the local queue, reflecting the popped data to the second storage medium, and deleting from the first storage medium; A first storage medium controlling the contention of the query thread and the plurality of business process threads for the first storage medium so that only one of the query thread and the plurality of business process threads uses the first storage medium; Mutex; A local queue mutex that controls use contention of the query thread and the plurality of business process threads for the local queue so that only one of the query thread and the plurality of business process threads uses the first local queue; Characterized in that configured to include.

상기 데이터 전달 시스템은, 상기 제1 저장매체로부터 데이터를 조회하여 상기 제2 저장매체에 반영하는 동안 발생하는 모든 신호(Signal)를 관리하는 신호처리 스레드를 더 포함하여 구성되고, 상기 신호처리 스레드는, 상기 데이터 전달 시스템 또는 상기 데이터 전달 시스템에서 실행되던 프로세스(Process)가 비정상 종료될 경우, 상기 데이터 전달 시스템 또는 상기 데이터 전달 시스템에서 실행되던 프로세스의 비정상 종료를 파일에 기록하고, 상기 조회 스레드와 상기 복수의 업무처리 스레드 각각이 실시하고 있던 작업을 실시 이전으로 되돌리고(Rollback), 각각이 획득하고 있던 사용 권한을 반환시킨 후 각각을 종료시키고 상기 신호처리 스레드 자신도 종료시켜 재가동 시 정상적인 동작을 위해 모든 시스템 자원을 해소시키는 것을 특징으로 한다.The data transfer system further includes a signal processing thread that manages all signals generated while inquiring data from the first storage medium and reflecting the data to the second storage medium. And when the process executed in the data delivery system or the data delivery system abnormally terminates, record an abnormal termination of the data delivery system or the process executed in the data delivery system in a file, and the inquiry thread and the Roll back the work performed by each of the plurality of business process threads before returning it, return the usage rights acquired by each one, terminate each other, and terminate the signal processing thread itself to restart all operations for normal operation. It is characterized by releasing system resources.

본 발명의 바람직한 다른 실시예는 계정계 시스템의 제1 저장매체(Database)로부터 데이터를 조회하여 정보계 시스템의 제2 저장매체(Database, Message Queue, File 등)에 반영하는 데이터 전달 시스템의 데이터 전달 방법으로서, 조회 스레드(Thread)가 상기 제1 저장매체로부터 데이터를 조회(Select)하도록 하는 데이터 조회 단계와; 상기 조회 스레드가 상기 제1 저장매체로부터 조회한 데이터를 로컬 큐(Local Queue)로 푸시(Push)하도록 하는 데이터 푸시 단계와; 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 로컬 큐로부터 데이터를 팝(Pop)하 는 데이터 팝 단계와; 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 로컬 큐로부터 팝한 데이터를 상기 제2 저장매체에 반영(Work)하고 상기 제1 저장매체로부터 삭제(Delete)하는 데이터 반영 및 삭제 단계계;를 포함하여 수행하는 것을 특징으로 한다.According to another preferred embodiment of the present invention, a data delivery method of a data delivery system in which data is retrieved from a first storage medium (Database) of an accounting system and reflected to a second storage medium (Database, Message Queue, File, etc.) of the information system. A data retrieval step of causing a retrieval thread to retrieve data from the first storage medium; A data pushing step of causing the inquiry thread to push the data queried from the first storage medium to a local queue; A data pop step in which one of the plurality of business processing threads pops data from the local queue; A data reflection and deletion step system in which one of the plurality of work processing threads pops work from the local queue to the second storage medium and deletes the data from the first storage medium; It is characterized by performing.

상기 조회 스레드는, 상기 데이터 조회 단계를 실시하고, 상기 데이터 조회 단계에서 상기 제1 저장매체로부터 조회한 모든 데이터를 상기 로컬 큐로 푸시할 때까지 상기 데이터 푸시 단계를 반복하고, 상기 데이터 조회 단계에서 상기 제1 저장매체로부터 조회한 모든 데이터의 업무처리가 완료되면 상기 데이터 조회 단계를 재실시하며, 상기 복수의 업무처리 스레드 각각은, 상기 데이터 팝 단계를 실시하고, 상기 데이터 팝 단계에서 상기 로컬 큐로부터 팝한 데이터가 존재할 경우, 상기 데이터 반영 및 삭제 단계를 실시하고, 상기 데이터 팝 단계를 재실시하며, 상기 데이터 팝 단계에서 상기 로컬 큐로부터 팝한 데이터가 존재하지 않을 경우, 상기 데이터 팝 단계를 재실시하는 것을 특징으로 한다.The inquiry thread executes the data inquiry step, repeats the data pushing step until all data inquired from the first storage medium in the data inquiry step is pushed to the local queue, and in the data inquiry step, When the business processing of all data inquired from the first storage medium is completed, the data inquiry step is executed again, and each of the plurality of business processing threads executes the data pop step, and from the local queue in the data pop step. If the popped data is present, the data reflection and deletion step is executed, the data popping step is performed again, and if there is no data popped from the local queue in the data popping step, the data popping step is performed again. It is characterized by.

상기 데이터 전달 시스템의 데이터 전달 방법은, 상기 조회 스레드의 상기 데이터 조회 단계가 실시되는 동안 상기 복수의 업무처리 스레드 각각의 상기 데이터 반영 및 삭제 단계는 중지되도록 처리하고, 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드의 상기 데이터 반영 및 삭제 단계가 실시되는 동안 상기 조회 스레드의 상기 데이터 조회 단계와 상기 복수의 업무처리 스레드 중 나머지 업무처리 스레드 각각의 상기 데이터 반영 및 삭제 단계는 중지되도록 처리하고, 상기 조회 스레드의 상기 데이터 푸시 단계가 실시되는 동안 상기 복수의 업무처리 스레드 각각의 상기 데이터 팝 단계는 중지되도록 처리하고, 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드의 상기 데이터 팝 단계가 실시되는 동안 상기 조회 스레드의 상기 데이터 푸시 단계와 상기 복수의 업무처리 스레드 중 나머지 업무처리 스레드 각각의 상기 데이터 팝 단계는 중지되도록 처리하는 것을 특징으로 한다.The data delivery method of the data delivery system may be configured such that the data reflection and deletion of each of the plurality of business processing threads is stopped while the data inquiry step of the inquiry thread is performed, and one of the plurality of business processing threads is executed. While the data reflection and deletion step of the work processing thread of the data processing step of the inquiry thread and the data reflection and deletion of each of the remaining business processing thread of the plurality of business processing thread is processed to stop, While the data popping step of each of the plurality of business processing threads is stopped while the data pushing step of the inquiry thread is executed, while the data popping step of one of the business processing threads is executed. Remind me of the lookup thread The data pushing step and the data popping step of each of the remaining business processing threads among the plurality of business processing threads are processed to be stopped.

상기 데이터 조회 단계는, 상기 조회 스레드가 상기 제1 저장매체에 대한 사용 권한을 획득하는 조회 권한 획득 단계와; 상기 조회 스레드가 상기 제1 저장매체로부터 데이터를 조회하는 조회 단계와; 상기 조회 스레드가 상기 제1 저장매체에 대한 사용 권한을 반환하는 조회 권한 반환 단계;를 포함하여 수행하는 것을 특징으로 한다.The data retrieving step may include: a retrieval authority acquiring step, wherein the retrieval thread acquires a use right for the first storage medium; An inquiry step of the inquiry thread for inquiring data from the first storage medium; And the inquiry authority returning step of returning the authority for use of the first storage medium by the inquiry thread.

상기 데이터 푸시 단계는, 상기 조회 스레드가 상기 로컬 큐에 대한 사용 권한을 획득하는 푸시 권한 획득 단계와; 상기 조회 스레드가 상기 데이터 조회 단계에서 상기 제1 저장매체로부터 조회한 데이터를 상기 로컬 큐에 푸시하는 푸시 단계와; 상기 조회 스레드가 상기 로컬 큐에 대한 사용 권한을 반환하는 푸시 권한 반환 단계;를 포함하여 수행하는 것을 특징으로 한다.The data pushing step may include: a push right obtaining step, wherein the inquiry thread obtains a use right for the local queue; Pushing, by the inquiry thread, the data queried from the first storage medium in the data inquiry step to the local queue; And a push permission return step of returning a use right for the local queue by the inquiry thread.

상기 데이터 팝 단계는, 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 로컬 큐에 대한 사용 권한을 획득하는 팝 권한 획득 단계와; 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 로컬 큐로부터 데이터를 팝하는 팝 단계와; 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 로컬 큐에 대한 사용 권한을 반환하는 팝 권한 반환 단계;를 포함하여 수행하 는 것을 특징으로 한다.The data popping step may include: a pop authority acquiring step, wherein one task thread among the plurality of task threads acquires a use right for the local queue; Popping, by one of the plurality of task threads, a task thread to pop data from the local queue; And a pop right returning step of returning a use right for the local queue by one of the plurality of work processing threads.

상기 데이터 반영 및 삭제 단계는, 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 제1 저장매체에 대한 사용 권한을 획득하는 삭제 권한 획득 단계와; 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 데이터 팝 단계에서 상기 로컬 큐로부터 팝한 데이터를 상기 제2 저장매체에 반영하고 상기 제1 저장매체로부터 삭제하는 반영 및 삭제 단계와; 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 제1 저장매체에 대한 사용 권한을 반환하는 삭제 권한 반환 단계;를 포함하여 수행하는 것을 특징으로 한다.The data reflecting and deleting step may include: obtaining, by a task processing thread of the plurality of task processing threads, a usage right for the first storage medium; A reflection and deletion step of one of the plurality of business processing threads reflecting data popped out of the local queue in the data popping step to the second storage medium and deleting from the first storage medium; And a delete right returning step of returning a use right to the first storage medium by one of the plurality of work processing threads.

상기 데이터 전달 시스템의 데이터 전달 방법은, 상기 제1 저장매체로부터 데이터를 조회하여 상기 제2 저장매체에 반영하는 동안 발생하는 모든 신호(Signal)를 신호처리 스레드가 관리하는 신호 관리 단계와; 상기 데이터 전달 시스템 또는 상기 데이터 전달 시스템에서 실행되던 프로세스(Process)가 비정상 종료될 경우, 상기 데이터 전달 시스템 또는 상기 데이터 전달 시스템에서 실행되던 프로세스의 비정상 종료를 파일에 기록하고, 상기 조회 스레드와 상기 복수의 업무처리 스레드 각각이 실시하고 있던 작업을 실시 이전으로 되돌리고(Rollback), 각각이 획득하고 있던 사용 권한을 반환시킨 후 각각을 종료시키고 상기 신호처리 스레드 자신도 종료시켜 재가동 시 정상적인 동작을 위해 모든 시스템 자원을 해소시키는 시스템 자원 해소 단계;를 포함하여 수행하는 것을 특징으로 한다.The data transfer method of the data transfer system includes: a signal management step of managing, by a signal processing thread, all signals generated while inquiring data from the first storage medium and reflecting the data to the second storage medium; When the data delivery system or the process executed in the data delivery system abnormally terminates, the abnormal termination of the data delivery system or the process executed in the data delivery system is recorded in a file, and the inquiry thread and the plurality of processes are executed. Roll back the work performed by each of the task processing threads before returning it, return the usage rights acquired by each one, terminate each other, and terminate the signal processing thread itself to restart all systems for normal operation. System resource release step of releasing resources; characterized in that performed.

이와 같이 본 발명에 의하면, 복수의 스레드(Thread)를 가진 하나의 프로세스를 이용하여 데이터를 전달함으로써 한 번의 명령으로 데이터 전달 시스템을 제어할 수 있게 되어 관리자의 관리 부담이 경감된다.As described above, according to the present invention, the data transfer system can be controlled by one command by transferring data using one process having a plurality of threads, thereby reducing the administrative burden of the administrator.

그리고 데이터에 특정 그룹 아이디를 설정하지 않고 데이터의 생성 순서대로 순차적으로 전달함으로써 시스템 자원을 효율적으로 활용할 수 있다.In addition, system resources can be efficiently utilized by sequentially transmitting data in order of generating data without setting a specific group ID.

그리고 데이터 전달 시스템 또는 데이터 전달 시스템에서 실행되던 프로세스가 비정상 종료되었을 경우 모든 시스템 자원을 안정적으로 해소함으로써 데이터 전달 시스템 또는 프로세스의 재가동 시 정상적인 동작이 가능하다.When the data delivery system or the process running in the data delivery system is abnormally terminated, all the system resources are reliably released to enable normal operation when the data delivery system or process is restarted.

이와 같이 구성된 본 발명에 의한 데이터 전달 시스템 및 그 데이터 전달 방법의 바람직한 실시예를 첨부한 도면에 의거하여 상세히 설명하면 다음과 같다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서, 이는 사용자, 운용자의 의도 또는 판례 등에 따라 달라질 수 있으며, 이에 따라 각 용어의 의미는 본 명세서 전반에 걸친 내용을 토대로 해석되어야 할 것이다.Referring to the data delivery system and a preferred embodiment of the data delivery method according to the present invention configured as described above in detail with reference to the accompanying drawings as follows. In the following description of the present invention, detailed descriptions of well-known functions or configurations will be omitted if it is determined that the detailed description of the present invention may unnecessarily obscure the subject matter of the present invention. It is to be understood that the following terms are defined in consideration of the functions of the present invention, and may be changed according to the intention of the user, the operator, or the precedent, and the meaning of each term should be interpreted based on the contents will be.

도 1은 본 발명의 바람직한 일 실시예에 따르는 데이터 전달 시스템(이하 '데이터 전달 시스템')을 개념적으로 나타낸 도면이다. 도 1에 도시된 바와 같이 데 이터 전달 시스템(100)은 정보계 시스템(2)에 포함되어 계정계 시스템(1)의 제1 저장매체(Database)(10)로부터 데이터를 조회하여 정보계 시스템(2)의 제2 저장매체(Database, Message Queue, File 등)(20)에 반영한다.1 is a diagram conceptually illustrating a data delivery system (hereinafter, referred to as a 'data delivery system') according to an exemplary embodiment of the present invention. As shown in FIG. 1, the data delivery system 100 is included in the information system 2 to query data from the first database 10 of the accounting system 1 so that the data system 2 can be searched for. ) To the second storage medium (Database, Message Queue, File, etc.) 20.

데이터 전달 시스템(100)은 로컬 큐(Local Queue, 110), 조회 스레드(Thread)(120), 복수의 업무처리 스레드(130), 제1 저장매체 뮤텍스(Mutex)(140), 로컬 큐 뮤텍스(150), 신호처리 스레드(160) 등을 포함한다.The data delivery system 100 may include a local queue 110, a query thread 120, a plurality of business processing threads 130, a first storage medium mutex 140, and a local queue mutex. 150, signal processing thread 160, and the like.

로컬 큐(110)는 후술할 조회 스레드(120)가 제1 저장매체(10)로부터 조회한 데이터를 임시 저장한다. 임시 저장된 데이터는 후술할 복수의 업무처리 스레드(130)에 의해 제2 저장매체(20)에 반영된다.The local queue 110 temporarily stores data queried from the first storage medium 10 by the inquiry thread 120 to be described later. The temporarily stored data is reflected in the second storage medium 20 by a plurality of work processing threads 130 to be described later.

조회 스레드(120)는 제1 저장매체(10)로부터 데이터를 조회(Select)하고, 조회한 데이터를 로컬 큐(110)에 푸시(Push)하여 임시 저장한다. 조회 스레드(120)는 제1 저장매체(10)에 대한 사용 권한을 획득하고, 데이터를 조회하고, 사용 권한을 반환한다. 그리고 조회 스레드(120)는 로컬 큐(110)에 대한 사용 권한을 획득하고, 제1 저장매체(10)로부터 조회한 데이터 중 하나를 푸시하고, 사용 권한을 반환한다. 조회 스레드(120)는 제1 저장매체(10)로부터 조회한 모든 데이터를 로컬 큐(110)에 푸시할 때까지 전술한 로컬 큐(110)에 대한 사용 권한 획득, 푸시, 사용 권한 반환 과정을 반복한다. 제1 저장매체(10)로부터 조회한 모든 데이터를 로컬 큐(110)에 푸시한 후 조회 스레드(120)는 제1 저장매체(10)로부터 조회한 모든 데이터의 업무처리가 완료되면 다시 제1 저장매체(10)로부터 데이터를 조회한다. 그리고 조회 스레드(120)는 필요한 경우 제1 저장매체(10)로부터 데이터를 조회하여 로컬 큐(110)로 푸시하는 과정에서 데이터를 편집하기도 한다.The inquiry thread 120 selects data from the first storage medium 10, and pushes the inquired data to the local queue 110 to temporarily store the data. The inquiry thread 120 obtains a usage right for the first storage medium 10, inquires data, and returns the usage right. In addition, the inquiry thread 120 acquires a usage right for the local queue 110, pushes one of the inquired data from the first storage medium 10, and returns the usage right. The inquiry thread 120 repeats the process of acquiring, pushing, and returning the authority for the above-described local queue 110 until all data inquired from the first storage medium 10 is pushed to the local queue 110. do. After pushing all data inquired from the first storage medium 10 to the local queue 110, the inquiry thread 120 stores the first data again when the processing of all data inquired from the first storage medium 10 is completed. The data is queried from the medium 10. If necessary, the inquiry thread 120 may edit the data in the process of inquiring data from the first storage medium 10 and pushing the data to the local queue 110.

복수의 업무처리 스레드(130) 각각은 로컬 큐(110)에 임시 저장되어 있는 데이터를 팝(Pop)하고, 팝한 데이터를 제2 저장매체(20)에 반영(Work)하고 제1 저장매체(10)로부터 삭제(Delete)한다. 복수의 업무처리 스레드(130) 각각은 로컬 큐(110)에 대한 사용 권한을 획득하고, 데이터를 팝하고, 사용 권한을 반환한다. 로컬 큐(110)로부터 팝한 데이터가 존재할 경우, 해당 업무처리 스레드(130)는 제1 저장매체(10)에 대한 사용 권한을 획득하고, 로컬 큐(110)로부터 팝한 데이터를 제2 저장매체(20)에 반영하고 제1 저장매체(10)로부터 삭제하고, 사용 권한을 반환한다. 제1 저장매체(10)에 대한 사용 권한을 반환한 해당 업무처리 스레드(130)는 다시 로컬 큐(110)에 임시 저장되어 있는 데이터를 팝한다. 그리고, 로컬 큐(110)로부터 팝한 데이터가 존재하지 않을 경우, 해당 업무처리 스레드(130)는 다시 로컬 큐(110)에 임시 저장되어 있는 데이터를 팝한다. 그리고 복수의 업무처리 스레드(130) 각각은 필요한 경우 로컬 큐(110)로부터 데이터를 팝하여 제2 저장매체(20)에 반영하는 과정에서 데이터를 편집하기도 한다.Each of the plurality of work processing threads 130 pops data temporarily stored in the local queue 110, works the popped data on the second storage medium 20, and then stores the first storage medium 10. Delete from). Each of the plurality of business processing threads 130 obtains the usage rights for the local queue 110, pops data, and returns the usage rights. If there is data popped from the local queue 110, the task thread 130 obtains a right to use the first storage medium 10, and stores the data popped from the local queue 110 in the second storage medium 20. ) Is deleted from the first storage medium 10, and the usage right is returned. The business process thread 130 that returns the usage right for the first storage medium 10 again pops the data temporarily stored in the local queue 110. If there is no data popped from the local queue 110, the work processing thread 130 pops the data temporarily stored in the local queue 110 again. Each of the plurality of business process threads 130 may edit the data in the process of popping data from the local queue 110 and reflecting the data to the second storage medium 20 if necessary.

제1 저장매체 뮤텍스(140)는 제1 저장매체(10)에 대한 조회 스레드(120)와 복수의 업무처리 스레드(130)의 사용 경합을 제어한다. 전술한 것과 같이 조회 스레드(120)와 복수의 업무처리 스레드(130) 각각은 데이터 조회와 데이터 삭제를 위해 제1 저장매체(10)에 대한 사용 권한을 획득하려 한다. 하지만 조회 스레드(120)와 복수의 업무처리 스레드(130) 중 둘 이상이 동시에 제1 저장매체(10)를 사용할 경우 서로의 작업에 영향을 끼쳐 잘못된 결과를 유발할 수 있다. 이를 방지하기 위 해 제1 저장매체 뮤텍스(140)가 제1 저장매체(10)의 사용 권한 관리를 하여 동시에 둘 이상이 제1 저장매체(10)를 사용할 수 없도록 한다. 즉, 조회 스레드(120)가 제1 저장매체(10)의 사용 권한을 획득하여 데이터 조회를 하는 동안 복수의 업무처리 스레드(130) 각각은 제1 저장매체(10)의 사용 권한을 획득할 수 없어 데이터 반영 및 삭제를 할 수 없고, 임의의 업무처리 스레드(130)가 제1 저장매체(10)의 사용 권한을 획득하여 데이터 반영 및 삭제를 하는 동안 조회 스레드(120)와 나머지 업무처리 스레드(130) 각각은 제1 저장매체(10)의 사용 권한을 획득할 수 없어 각각 데이터 조회와 데이터 반영 및 삭제를 할 수 없다.The first storage medium mutex 140 controls the use contention of the inquiry thread 120 and the plurality of work processing threads 130 for the first storage medium 10. As described above, each of the inquiry thread 120 and the plurality of job processing threads 130 attempts to acquire a usage right for the first storage medium 10 for data inquiry and data deletion. However, when two or more of the inquiry thread 120 and the plurality of work processing threads 130 use the first storage medium 10 at the same time, it may affect each other's work and cause an incorrect result. To prevent this, the first storage medium mutex 140 manages the use rights of the first storage medium 10 so that two or more can not use the first storage medium 10 at the same time. That is, while the inquiry thread 120 acquires the usage right of the first storage medium 10 and retrieves data, each of the plurality of work processing threads 130 may acquire the usage right of the first storage medium 10. The data cannot be reflected and deleted, and the inquiry thread 120 and the rest of the business processing thread while the arbitrary processing thread 130 acquires the use authority of the first storage medium 10 to reflect and delete the data. 130, each cannot obtain a right to use the first storage medium 10, and thus cannot respectively search for data and reflect and delete data.

로컬 큐 뮤텍스(150)는 로컬 큐(110)에 대한 조회 스레드(120)와 복수의 업무처리 스레드(130)의 사용 경합을 제어한다. 전술한 것과 같이 조회 스레드(120)와 복수의 업무처리 스레드(130) 각각은 데이터 푸시와 데이터 팝을 위해 로컬 큐(110)에 대한 사용 권한을 획득하려 한다. 하지만 조회 스레드(120)와 복수의 업무처리 스레드(130) 중 둘 이상이 동시에 로컬 큐(110)를 사용할 경우 서로의 작업에 영향을 끼쳐 잘못된 결과를 유발할 수 있다. 이를 방지하기 위해 로컬 큐 뮤텍스(150)가 로컬 큐(110)의 사용 권한 관리를 하여 동시에 둘 이상이 로컬 큐(110)를 사용할 수 없도록 한다. 즉, 조회 스레드(120)가 로컬 큐(110)의 사용 권한을 획득하여 데이터 푸시를 하는 동안 복수의 업무처리 스레드(130) 각각은 로컬 큐(110)의 사용 권한을 획득할 수 없어 데이터 팝을 할 수 없고, 임의의 업무처리 스레드(130)가 로컬 큐(110)의 사용 권한을 획득하여 데이터 팝을 하는 동안 조회 스레드(120)와 나머지 업무처리 스레드(130) 각각은 로컬 큐(110)의 사용 권한을 획득할 수 없어 각각 데이터 푸시와 데이터 팝을 할 수 없다.The local queue mutex 150 controls the use contention of the inquiry thread 120 and the plurality of business processing threads 130 for the local queue 110. As described above, each of the inquiry thread 120 and the plurality of business processing threads 130 attempts to obtain a usage right for the local queue 110 for data push and data pop. However, when two or more of the inquiry thread 120 and the plurality of business processing threads 130 use the local queue 110 at the same time, it may affect each other's work and cause an incorrect result. In order to prevent this, the local queue mutex 150 manages the usage rights of the local queue 110 so that two or more local queues 110 cannot use the local queue 110 at the same time. That is, while the inquiry thread 120 acquires the usage rights of the local queue 110 and pushes the data, each of the plurality of business processing threads 130 cannot acquire the usage rights of the local queue 110 and thus obtains a data pop. Each of the lookup thread 120 and the rest of the processing thread 130 may not be able to do so, while any processing thread 130 obtains the usage rights of the local queue 110 to pop data. You can't get permission to do data push and data pop, respectively.

신호처리 스레드(160)는 데이터 전달 시스템(100)이 데이터를 전달하는 동안, 즉, 제1 저장매체(10)로부터 데이터를 조회하여 제2 저장매체(20)에 반영하는 동안 발생하는 모든 신호(Signal)를 관리한다. 데이터 전달 시스템(100)에서 발생되는 신호를 감시하고, 발생된 신호의 정보를 파일에 기록(로깅 : Logging)한다. 그리고 각 신호에 대응해 데이터 전달 시스템(100)의 종료 여부를 판단하고, 데이터 전달 시스템(100) 종료 시 데이터 전달 시스템(100)을 종료한다고 파일에 기록한다. 그리고, 신호처리 스레드(160)는 데이터 전달 시스템(100) 또는 데이터 전달 시스템(100)에서 실행되던 프로세스가 비정상 종료될 경우, 데이터 전달 시스템(100) 또는 데이터 전달 시스템(100)에서 실행되던 프로세스의 비정상 종료를 파일에 기록하고, 재가동 시 정상적인 동작을 위해 모든 시스템 자원을 안정적으로 해소시킨다. 즉, 신호처리 스레드(160)는 조회 스레드(120)와 복수의 업무처리 스레드(130) 각각이 실시하고 있던 작업을 실시 이전으로 되돌리고(Rollback), 각각이 획득하고 있던 사용 권한을 반환시킨 후 각각을 종료시키고, 자신도 종료된다.The signal processing thread 160 generates all signals generated while the data delivery system 100 delivers the data, that is, retrieves the data from the first storage medium 10 and reflects the data to the second storage medium 20. Signal) The signal generated from the data delivery system 100 is monitored, and information of the generated signal is recorded in a file (logging). In response to each signal, it is determined whether or not the data delivery system 100 is terminated, and when the data delivery system 100 ends, the data delivery system 100 is terminated. In addition, when the process executed in the data delivery system 100 or the data delivery system 100 is abnormally terminated, the signal processing thread 160 of the process that was executed in the data delivery system 100 or the data delivery system 100 may be used. Record abnormal termination to file and reliably release all system resources for normal operation upon restart. That is, the signal processing thread 160 rolls back the work performed by each of the inquiry thread 120 and the plurality of business processing threads 130 before the execution, and returns the usage rights that each has obtained. Ends, and itself ends.

상기한 데이터 전달 시스템(100)에 의한 데이터 전달 과정(이하 '데이터 전달 과정')을 이하 도 2 내지 도 5를 통해 상세히 설명하면 다음과 같다.The data transfer process (hereinafter, referred to as a “data transfer process”) by the data transfer system 100 will be described in detail with reference to FIGS. 2 to 5 as follows.

도 2는 데이터 전달 과정을 순차적으로 나타낸 도면이다. 도 3은 데이터 전달 시스템의 조회 스레드의 작동을 순차적으로 나타낸 도면이다. 도 4는 데이터 전달 시스템의 복수의 업무처리 스레드 각각의 작동을 순차적으로 나타낸 도면이다. 도 5는 데이터 전달 시스템의 신호처리 스레드의 작동을 순차적으로 나타낸 도면이다.2 is a view sequentially illustrating a data transfer process. 3 is a view sequentially showing the operation of the inquiry thread of the data delivery system. 4 is a view sequentially showing the operation of each of the plurality of business process threads of the data delivery system. 5 is a view sequentially showing the operation of the signal processing thread of the data delivery system.

제1 저장매체(10)에 저장된 데이터는, 도 2에 도시된 것과 같이, 데이터 조회 단계(S210), 데이터 푸시 단계(S220), 데이터 팝 단계(S230), 및 데이터 반영 및 삭제 단계(S240)를 거치며 제2 저장매체(20)로 반영된다.As shown in FIG. 2, the data stored in the first storage medium 10 includes a data inquiry step (S210), a data push step (S220), a data pop step (S230), and a data reflection and deletion step (S240). Through it is reflected to the second storage medium (20).

제1 저장매체(10)에 저장된 데이터는 조회 스레드(120)에 의해 조회된다(S210). 조회 스레드(120)에 의해 조회된 데이터는 조회 스레드(120)에 의해 로컬 큐(110)에 푸시되어 임시 저장된다(S220). 로컬 큐(110)에 임시 저장된 데이터는 복수의 업무처리 스레드(130) 각각에 의해 팝된다(S230). 복수의 업무처리 스레드(130) 각각에 의해 팝된 데이터는 해당 업무처리 스레드(130)에 의해 제2 저장매체(20)에 반영되고 제1 저장매체(10)로부터 삭제된다(S240).Data stored in the first storage medium 10 is inquired by the inquiry thread 120 (S210). The data inquired by the inquiry thread 120 is pushed to the local queue 110 by the inquiry thread 120 and temporarily stored (S220). Data temporarily stored in the local queue 110 is popped by each of the plurality of work processing threads 130 (S230). Data popped by each of the plurality of work processing threads 130 is reflected on the second storage medium 20 by the work processing thread 130 and deleted from the first storage medium 10 (S240).

이러한 데이터 전달 과정을 데이터 전달 시스템(100)의 구성 요소들을 기준으로 보다 상세히 설명하면 다음과 같다.This data transfer process will be described in more detail based on the components of the data delivery system 100 as follows.

조회 스레드(120)는, 도 3에 도시된 것과 같이, 데이터 조회 단계(S210) 및 데이터 푸시 단계(S220)를 실시한다.As shown in FIG. 3, the inquiry thread 120 performs a data inquiry step S210 and a data pushing step S220.

조회 스레드(120)는 조회 권한 획득 단계(S211), 조회 단계(S212), 및 조회 권한 반환 단계(S213)를 실시하여 제1 저장매체(10)로부터 데이터를 조회한다(S210). 조회 스레드(120)는 제1 저장매체 뮤텍스(140)를 통해 제1 저장매체(10)에 대한 사용 권한을 획득한다(S211). 제1 저장매체(10)에 대한 사용 권한을 획득한 조회 스레드(120)는 제1 저장매체(10)로부터 데이터를 조회한다(S212). 제1 저 장매체(10)로부터 데이터 조회를 마친 조회 스레드(120)는 제1 저장매체(10)에 대한 사용 권한을 반환한다(S213).The inquiry thread 120 performs an inquiry authority obtaining step S211, an inquiry step S212, and an inquiry authority returning step S213 to inquire data from the first storage medium 10 (S210). The inquiry thread 120 obtains a use right for the first storage medium 10 through the first storage medium mutex 140 (S211). The inquiry thread 120 obtaining the use right for the first storage medium 10 inquires data from the first storage medium 10 (S212). The inquiry thread 120 that has completed the data inquiry from the first storage medium 10 returns a use right for the first storage medium 10 (S213).

데이터 조회(S210)를 마친 조회 스레드(120)는 푸시 권한 획득 단계(S221), 푸시 단계(S222), 및 푸시 권한 반환 단계(S223)를 실시하여 제1 저장매체(10)로부터 조회한 데이터를 로컬 큐(110)로 푸시한다(S220). 데이터 조회(S210)를 마친 조회 스레드(120)는 로컬 큐 뮤텍스(150)를 통해 로컬 큐(110)에 대한 사용 권한을 획득한다(S221). 로컬 큐(110)에 대한 사용 권한을 획득한 조회 스레드(120)는 제1 저장매체(10)로부터 조회한 데이터를 로컬 큐(110)로 푸시한다(S222). 로컬 큐(110)로 데이터 푸시를 마친 조회 스레드(120)는 로컬 큐(110)에 대한 사용 권한을 반환한다(S223).After completing the data inquiry (S210), the inquiry thread 120 performs the push permission acquisition step (S221), the push step (S222), and the push permission return step (S223) to search the data inquired from the first storage medium (10). Push to local queue 110 (S220). After completing the data inquiry (S210), the inquiry thread 120 obtains a use right for the local queue 110 through the local queue mutex 150 (S221). The inquiry thread 120 that obtains the usage right for the local queue 110 pushes the data inquired from the first storage medium 10 to the local queue 110 (S222). The inquiry thread 120 that has finished pushing data to the local queue 110 returns a usage right for the local queue 110 (S223).

데이터 푸시(S220)를 마친 조회 스레드(120)는 제1 저장매체(10)로부터 조회한 데이터 수(이하 '조회건수')와 로컬 큐(110)로 푸시한 데이터 수(이하 '푸시건수')를 비교한다(S301). 비교 결과 조회건수가 푸시건수보다 크면 상술한 데이터 푸시 단계(S220)를 재실시한다. 이러한 조회건수와 푸시건수 비교(S301)는 데이터 푸시 단계(S220) 실시 후 항상 이루어져 조회 스레드(120)가 제1 저장매체(10)로부터 조회한 모든 데이터를 로컬 큐(110)로 푸시할 때까지 데이터 푸시 단계(S220)가 반복되게 한다.After the data push (S220), the inquiry thread 120 receives the number of data inquired from the first storage medium 10 (hereinafter referred to as 'view count') and the number of data pushed to the local queue 110 (hereinafter referred to as 'number of push'). Is compared (S301). If the comparison result is greater than the number of pushes, the above-described data pushing step S220 is repeated. The comparison of the number of inquiry and the number of pushes (S301) is always performed after the data pushing step (S220) until the inquiry thread 120 pushes all the data inquired from the first storage medium 10 to the local queue 110. The data pushing step S220 is repeated.

조회 스레드(120)가 제1 저장매체(10)로부터 조회한 모든 데이터를 로컬 큐(110)로 푸시하면, 즉, 조회건수가 푸시건수와 같아지면 조회 스레드(120)는 데이터 푸시 단계(S220)의 반복을 중지하고 제1 저장매체(10)로부터 조회한 모든 데 이터의 업무처리 완료를 기다리게 된다(S302). 즉, 조회 스레드(120)가 제1 저장매체(10)로부터 조회하여 로컬 큐(110)로 푸시한 모든 데이터가 복수의 업무처리 스레드(130)에 의하여 로컬 큐(110)로부터 팝되고, 제2 저장매체(20)에 반영 및 제1 저장매체(10)로부터 삭제가 완료되는 것을 기다린다.When the inquiry thread 120 pushes all data inquired from the first storage medium 10 to the local queue 110, that is, when the number of inquiries is equal to the number of pushes, the inquiry thread 120 pushes data (S220). Stop the repetition of and waits for the completion of the processing of all data inquired from the first storage medium (10) (S302). That is, all data pushed by the inquiry thread 120 from the first storage medium 10 and pushed to the local queue 110 are popped from the local queue 110 by the plurality of work processing threads 130, and the second It is reflected on the storage medium 20 and waits for the deletion from the first storage medium 10 to be completed.

제1 저장매체(10)로부터 조회한 모든 데이터의 업무처리가 완료되면 조회 스레드(120)는 다시 데이터 조회 단계(S210)를 실시한다.When the processing of all the data inquired from the first storage medium 10 is completed, the inquiry thread 120 performs the data inquiry step (S210) again.

그리고, 조회 스레드(120)가 데이터 조회 단계(S210)를 실시한 이후에도 조회건수와 푸시건수 비교(S301)를 거친다. 이 경우 조회건수는 "0" 상태인 푸시건수보다 크기 때문에 데이터 푸시 단계(S220)가 실시된다.In addition, even after the inquiry thread 120 performs the data inquiry step (S210), the inquiry thread is compared with the number of push cases (S301). In this case, since the number of inquiries is larger than the number of pushes in the "0" state, the data push step S220 is performed.

참고로, 조회 스레드(120)가 데이터 조회 단계(S210)를 실시하였으나 제1 저장매체(10)에 데이터가 없어 조회건수가 "0"이 되면 역시 "0" 상태인 푸시건수와 같아져 데이터 푸시 단계(S220)는 실시되지 않는다. 새로운 업무가 발생하지 않아 업무처리가 완료된 상태로 유지되어 조회 스레드(120)는 다시 데이터 조회 단계(S210)를 실시한다.For reference, if the inquiry thread 120 performs the data inquiry step (S210) but there is no data in the first storage medium 10 and the inquiry count becomes "0", the number of pushes is also equal to the "0" push count. Step S220 is not performed. Since a new task does not occur, the task processing is maintained in a completed state, and the inquiry thread 120 performs the data inquiry step (S210) again.

그리고, 도 3에서는 도시되지 않았으나, 조회 스레드(120)는 제1 저장매체(10)로부터 데이터를 조회하여 로컬 큐(110)로 푸시하는 과정에서 필요에 따라 데이터를 편집하기도 한다.In addition, although not shown in FIG. 3, the inquiry thread 120 may edit the data as needed in the process of inquiring data from the first storage medium 10 and pushing the data to the local queue 110.

복수의 업무처리 스레드(130) 각각은, 도 4에 도시된 것과 같이, 데이터 팝 단계(S230) 및 데이터 반영 및 삭제 단계(S240)를 실시한다.As shown in FIG. 4, each of the plurality of business process threads 130 performs a data pop step S230 and a data reflection and deletion step S240.

복수의 업무처리 스레드(130) 각각은 팝 권한 획득 단계(S231), 팝 단 계(S232), 및 팝 권한 반환 단계(S233)를 실시하여 로컬 큐(110)로부터 데이터를 팝한다(S230). 복수의 업무처리 스레드(130) 각각은 로컬 큐 뮤텍스(150)를 통해 로컬 큐(110)에 대한 사용 권한을 획득한다(S231). 로컬 큐(110)에 대한 사용 권한을 획득한 해당 업무처리 스레드(130)는 로컬 큐(110)로부터 데이터를 팝한다(S232). 로컬 큐(110)로부터 데이터 팝을 마친 해당 업무처리 스레드(130)는 로컬 큐(110)에 대한 사용 권한을 반환한다(S233).Each of the plurality of work processing threads 130 performs a pop right obtaining step (S231), a pop step (S232), and a pop right returning step (S233) to pop data from the local queue 110 (S230). Each of the plurality of work processing threads 130 obtains a use right for the local queue 110 through the local queue mutex 150 (S231). The task processing thread 130 that has obtained the use authority for the local queue 110 pops data from the local queue 110 (S232). The work processing thread 130 that has finished popping data from the local queue 110 returns a usage right for the local queue 110 (S233).

데이터 팝(S230)을 마친 해당 업무처리 스레드(130)는 로컬 큐(110)로부터 팝한 데이터의 존재를 판단한다(S401). 로컬 큐(110)에 데이터가 존재하여 해당 업무처리 스레드(130)가 데이터 팝 단계(S230)를 실시하여 팝한 데이터가 존재하면 판단 결과는 데이터 존재가 되고, 로컬 큐(110)에 데이터가 존재하지 않아 해당 업무처리 스레드(130)가 데이터 팝 단계(S230)를 실시하였으나 팝한 데이터가 존재하지 않으면 판단 결과는 데이터 미존재가 된다.The task processing thread 130 that has finished the data pop S230 determines the presence of data popped from the local queue 110 (S401). If the data exists in the local queue 110 and the data is popped by the task processing thread 130 performing the data pop step (S230), the determination result becomes the data and the data does not exist in the local queue 110. Therefore, if the task processing thread 130 performs the data pop step (S230), but the popped data does not exist, the determination result is no data.

팝 데이터 존재 판단(S401) 결과가 데이터 존재이면, 데이터 팝(S230)을 마친 해당 업무처리 스레드(130)는 삭제 권한 획득 단계(S241), 반영 및 삭제 단계(S242), 및 삭제 권한 반환 단계(S243)를 실시하여 로컬 큐(110)로부터 팝한 데이터를 제2 저장매체(20)에 반영하고 제1 저장매체(10)로부터 삭제한다(S240). 데이터 팝(S230)을 마친 해당 업무처리 스레드(130)는 제1 저장매체 뮤텍스(140)를 통해 제1 저장매체(10)에 대한 사용 권한을 획득한다(S241). 제1 저장매체(10)에 대한 사용 권한을 획득한 해당 업무처리 스레드(130)는 로컬 큐(110)로부터 팝한 데이터를 제2 저장매체(20)에 반영하고 제1 저장매체(10)로부터 삭제한다(S242). 제2 저장매체(20)에 데이터 반영 및 제1 저장매체(10)로부터 데이터 삭제를 마친 해당 업무처리 스레드(130)는 제1 저장매체(10)에 대한 사용 권한을 반환한다(S243).If the pop data existence determination (S401) results in the presence of data, the work processing thread 130 that has finished the data pop (S230) may have a deletion authority obtaining step (S241), a reflection and deletion step (S242), and a deletion authority returning step ( In operation S243, data popped from the local queue 110 is reflected on the second storage medium 20 and deleted from the first storage medium 10 (S240). The task processing thread 130 that has finished the data pop S230 obtains a right to use the first storage medium 10 through the first storage medium mutex 140 (S241). The business process thread 130 having obtained the use right for the first storage medium 10 reflects the data popped from the local queue 110 to the second storage medium 20 and deletes it from the first storage medium 10. (S242). After the data is reflected on the second storage medium 20 and the data is deleted from the first storage medium 10, the corresponding work processing thread 130 returns a right to use the first storage medium 10 (S243).

로컬 큐(110)로부터 팝한 데이터의 반영 및 삭제가 완료되면 해당 업무처리 스레드(130)는 다시 데이터 팝 단계(S230)를 실시한다.When the reflection and deletion of the data popped from the local queue 110 is completed, the task processing thread 130 performs the data pop step (S230) again.

그리고, 팝 데이터 존재 판단(S401) 결과가 데이터 미존재이면, 데이터 반영 및 삭제 단계(S240)는 실시되지 않는다. 해당 업무처리 스레드(130)는 다시 데이터 팝 단계(S230)를 실시한다.If the result of the pop data determination (S401) is no data, the data reflection and deletion step (S240) is not performed. The task processing thread 130 again performs a data pop step (S230).

그리고, 도 4에서는 도시되지 않았으나, 복수의 업무처리 스레드(130) 각각은 로컬 큐(110)로부터 데이터를 팝하여 제2 저장매체(20)에 반영하는 과정에서 필요에 따라 데이터를 편집하기도 한다.Although not shown in FIG. 4, each of the plurality of work processing threads 130 may edit data as necessary in the process of popping data from the local queue 110 and reflecting the data to the second storage medium 20.

신호처리 스레드(160)는, 도 5에 도시된 것과 같이, 신호 관리 단계(S510), 시스템 종료 로깅 단계(S520), 및 시스템 자원 해소 단계(S530)를 실시한다.As shown in FIG. 5, the signal processing thread 160 performs a signal management step S510, a system shutdown logging step S520, and a system resource release step S530.

신호처리 스레드(160)는 신호 감시 단계(S511), 수신 신호 로깅 단계(S512), 및 시스템 종료 판단 단계(S513)를 실시하여 신호를 관리 한다(S510). 신호처리 스레드(160)는 데이터 전달 시스템(100)이 제1 저장매체(10)로부터 데이터를 조회하여 제2 저장매체(20)에 반영하는 동안 발생하는 모든 신호를 감시한다(S511). 신호를 감시하던 신호처리 스레드(160)는 데이터 전달 시스템(100)에서 발생하는 신호를 수신하면 파일에 수신 신호의 정보를 기록한다(S512). 수신 신호의 정보를 기록한 신호처리 스레드(160)는 수신 신호에 대응해 데이터 전달 시스템(100)의 종료 여부를 판단한다(S513). 데이터 전달 시스템(100) 종료 여부 판단 결과가 미종료이면 신호처리 스레드(160)는 다시 신호 감시 단계(S511)를 실시한다. 즉, 데이터 전달 시스템(100) 종료 여부 판단 결과가 종료일 때까지 신호 처리 스레드(160)는 신호 관리 단계(S510)를 반복한다.The signal processing thread 160 performs a signal monitoring step (S511), a received signal logging step (S512), and the system termination determination step (S513) to manage the signal (S510). The signal processing thread 160 monitors all signals generated while the data delivery system 100 inquires data from the first storage medium 10 and reflects the data to the second storage medium 20 (S511). When the signal processing thread 160 that monitors the signal receives the signal generated by the data delivery system 100, the signal processing thread 160 writes information of the received signal to a file (S512). The signal processing thread 160 that records the information of the received signal determines whether or not the data transfer system 100 ends in response to the received signal (S513). If the determination result of the termination of the data transfer system 100 is not finished, the signal processing thread 160 performs the signal monitoring step S511 again. That is, the signal processing thread 160 repeats the signal management step S510 until the determination result of whether the data transfer system 100 ends is finished.

데이터 전달 시스템(100) 종료 여부 판단 결과가 종료이면, 예를 들어 데이터 전달 시스템(100) 또는 데이터 전달 시스템(100)에서 실행되던 프로세스가 비정상 종료될 경우, 신호처리 스레드(160)는 시스템 종료 로깅 단계(S520) 및 시스템 자원 해소 단계(S530)를 실시한다. 데이터 전달 시스템(100) 종료 여부 판단 결과가 종료이면 신호처리 스레드(160)는 데이터 전달 시스템(100)을 종료한다고 파일에 기록한다(S520). 데이터 전달 시스템(100) 종료를 파일에 기록한 신호처리 스레드(160)는 조회 스레드(120)와 복수의 업무처리 스레드(130) 각각이 실시하고 있던 작업을 실시 이전으로 되돌리고, 각각이 획득하고 있던 사용 권한을 반환시킨 후 각각을 종료시키고, 자신도 종료됨으로써 모든 시스템 자원을 해소시킨다(S530). 이 후 데이터 전달 시스템(100)은 종료된다.If the result of determining whether the data delivery system 100 is terminated is an end, for example, when the process executed in the data delivery system 100 or the data delivery system 100 is abnormally terminated, the signal processing thread 160 logs system shutdown. Step S520 and system resource release step S530 are performed. If the result of determining whether the data delivery system 100 ends is terminated, the signal processing thread 160 records in the file that the data delivery system 100 ends (S520). The signal processing thread 160 which recorded the end of the data delivery system 100 in the file returns the work that each of the inquiry thread 120 and the plurality of work processing threads 130 are performing before the execution, and the use that each has acquired. Each authority terminates after returning the authority, and thus, all system resources are released by ending itself (S530). The data delivery system 100 then ends.

참고로, 신호처리 스레드(160)의 수신 신호 로깅 단계(S512)와 시스템 종료 로깅 단계(S520)는 관리자의 필요에 의해 실시할 수도 있고 실시하지 않을 수도 있다.For reference, the reception signal logging step S512 and the system termination logging step S520 of the signal processing thread 160 may or may not be performed by an administrator.

이상에서 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다. 따라서 본 발명에 개시된 실시예들 은 본 발명의 기술적 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술적 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호범위는 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술적 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Although the present invention has been described in more detail with reference to the examples, the present invention is not necessarily limited to these embodiments, and various modifications can be made without departing from the spirit of the present invention. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention but to describe the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The protection scope of the present invention should be interpreted by the claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.

도 1은 본 발명의 일 실시예에 따르는 데이터 전달 시스템을 개념적으로 나타낸 도면이다.1 is a diagram conceptually illustrating a data delivery system according to an embodiment of the present invention.

도 2는 본 발명의 일 실시예에 따르는 데이터 전달 시스템의 데이터 전달 과정을 순차적으로 나타낸 도면이다.2 is a view sequentially illustrating a data delivery process of a data delivery system according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따르는 데이터 전달 시스템의 조회 스레드의 작동을 순차적으로 나타낸 도면이다.3 is a view sequentially showing the operation of the inquiry thread of the data delivery system according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따르는 데이터 전달 시스템의 복수의 업무처리 스레드 각각의 작동을 순차적으로 나타낸 도면이다.4 is a view sequentially showing the operation of each of the plurality of business processing thread of the data delivery system according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따르는 데이터 전달 시스템의 신호처리 스레드의 작동을 순차적으로 나타낸 도면이다.5 is a view sequentially showing the operation of the signal processing thread of the data delivery system according to an embodiment of the present invention.

* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

1 : 계정계 시스템1: Accounting System

2 : 정보계 시스템2: information system

10 : 제1 저장매체10: first storage medium

20 : 제2 저장매체20: second storage medium

100 : 데이터 전달 시스템100: data delivery system

110 : 로컬 큐110: local queue

120 : 조회 스레드120: lookup thread

130 : 업무처리 스레드130: task processing thread

140 : 제1 저장매체 뮤텍스140: first storage medium mutex

150 : 로컬 큐 뮤텍스150: local cue mutex

160 : 신호처리 스레드160: signal processing thread

Claims (10)

계정계 시스템의 제1 저장매체로부터 데이터를 조회하여 정보계 시스템의 제2 저장매체에 반영하는 데이터 전달 시스템으로서,A data delivery system for inquiring data from a first storage medium of an accounting system and reflecting the data to a second storage medium of an information system. 상기 제1 저장매체로부터 조회(Select)한 데이터를 임시 저장하는 로컬 큐(Local Queue)와;A local queue for temporarily storing data selected from the first storage medium; 상기 제1 저장매체로부터 데이터를 조회하고, 조회한 데이터를 상기 로컬 큐에 푸시(Push)하여 임시 저장하는 조회 스레드(Thread)와;An inquiry thread for inquiring data from the first storage medium, and temporarily storing the inquired data by pushing it to the local queue; 상기 로컬 큐로부터 데이터를 팝(Pop)하고, 팝한 데이터를 상기 제2 저장매체에 반영(Work)하고 상기 제1 저장매체로부터 삭제(Delete)하는 복수의 업무처리 스레드와;A plurality of work processing threads for popping data from the local queue, reflecting the popped data to the second storage medium, and deleting from the first storage medium; 상기 제1 저장매체에 대한 상기 조회 스레드와 상기 복수의 업무처리 스레드의 사용 경합을 제어하여 상기 조회 스레드와 상기 복수의 업무처리 스레드 중에서 하나만이 상기 제1 저장매체를 사용하도록 제어하는 제1 저장매체 뮤텍스(Mutex)와;A first storage medium controlling the contention of the query thread and the plurality of business process threads for the first storage medium so that only one of the query thread and the plurality of business process threads uses the first storage medium; Mutex; 상기 로컬 큐에 대한 상기 조회 스레드와 상기 복수의 업무처리 스레드의 사용 경합을 제어하여 상기 조회 스레드와 상기 복수의 업무처리 스레드 중에서 하나만이 상기 제1 로컬 큐를 사용하도록 제어하는 로컬 큐 뮤텍스;A local queue mutex that controls use contention of the query thread and the plurality of business process threads for the local queue so that only one of the query thread and the plurality of business process threads uses the first local queue; 를 포함하여 구성된 것을 특징으로 하는 데이터 전달 시스템.Data delivery system, characterized in that configured to include. 청구항 1에 있어서,The method according to claim 1, 상기 데이터 전달 시스템은,The data delivery system, 상기 제1 저장매체로부터 데이터를 조회하여 상기 제2 저장매체에 반영하는 동안 발생하는 모든 신호(Signal)를 관리하는 신호처리 스레드를 더 포함하여 구성되고,And a signal processing thread for managing all signals generated while inquiring data from the first storage medium and reflecting the data to the second storage medium. 상기 신호처리 스레드는, 상기 데이터 전달 시스템 또는 상기 데이터 전달 시스템에서 실행되던 프로세스(Process)가 비정상 종료될 경우, 상기 데이터 전달 시스템 또는 상기 데이터 전달 시스템에서 실행되던 프로세스의 비정상 종료를 파일에 기록하고, 상기 조회 스레드와 상기 복수의 업무처리 스레드 각각이 실시하고 있던 작업을 실시 이전으로 되돌리고(Rollback), 각각이 획득하고 있던 사용 권한을 반환시킨 후 각각을 종료시키고 상기 신호처리 스레드 자신도 종료시켜 재가동 시 정상적인 동작을 위해 모든 시스템 자원을 해소시키는 것을 특징으로 하는 데이터 전달 시스템.When the signal processing thread abnormally terminates the process executed in the data delivery system or the data delivery system, the signal processing thread records an abnormal termination of the process executed in the data delivery system or the data delivery system in a file, When the inquiry thread and each of the plurality of business processing threads return the work performed before the execution (Rollback), return the usage rights acquired by each end, terminate each of them, and terminate the signal processing thread itself. Data delivery system characterized by releasing all system resources for normal operation. 계정계 시스템의 제1 저장매체로부터 데이터를 조회하여 정보계 시스템의 제2 저장매체에 반영하는 데이터 전달 시스템의 데이터 전달 방법으로서,A data transfer method of a data delivery system in which data is retrieved from a first storage medium of an accounting system and reflected to a second storage medium of an information system. 조회 스레드(Thread)가 상기 제1 저장매체로부터 데이터를 조회(Select)하도록 하는 데이터 조회 단계와;A data inquiry step of causing a inquiry thread to select data from the first storage medium; 상기 조회 스레드가 상기 제1 저장매체로부터 조회한 데이터를 로컬 큐(Local Queue)로 푸시(Push)하도록 하는 데이터 푸시 단계와;A data pushing step of causing the inquiry thread to push the data queried from the first storage medium to a local queue; 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 로컬 큐로부터 데이터를 팝(Pop)하는 데이터 팝 단계와;Popping data by one of the plurality of business processing threads to pop data from the local queue; 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 로컬 큐로부터 팝한 데이터를 상기 제2 저장매체에 반영(Work)하고 상기 제1 저장매체로부터 삭제(Delete)하는 데이터 반영 및 삭제 단계;A data reflection and deletion step of one of the plurality of business processing threads reflecting data popped from the local queue to the second storage medium and deleting from the first storage medium; 를 포함하여 수행하는 것을 특징으로 하는 데이터 전달 시스템의 데이터 전달 방법.A data delivery method of a data delivery system, comprising: performing. 청구항 3에 있어서,The method of claim 3, 상기 조회 스레드는,The inquiry thread, 상기 데이터 조회 단계를 실시하고,Perform the data inquiry step, 상기 데이터 조회 단계에서 상기 제1 저장매체로부터 조회한 모든 데이터를 상기 로컬 큐로 푸시할 때까지 상기 데이터 푸시 단계를 반복하고,Repeating the data pushing step until all data inquired from the first storage medium in the data inquiry step is pushed to the local queue, 상기 데이터 조회 단계에서 상기 제1 저장매체로부터 조회한 모든 데이터의 업무처리가 완료되면 상기 데이터 조회 단계를 재실시하며,When the business processing of all data inquired from the first storage medium is completed in the data inquiry step, the data inquiry step is executed again. 상기 복수의 업무처리 스레드 각각은,Each of the plurality of business processing threads, 상기 데이터 팝 단계를 실시하고,Perform the data pop step, 상기 데이터 팝 단계에서 상기 로컬 큐로부터 팝한 데이터가 존재할 경우, 상기 데이터 반영 및 삭제 단계를 실시하고, 상기 데이터 팝 단계를 재실시하며,If there is data popped from the local queue in the data pop step, the data reflection and deletion step are performed, and the data pop step is performed again. 상기 데이터 팝 단계에서 상기 로컬 큐로부터 팝한 데이터가 존재하지 않을 경우, 상기 데이터 팝 단계를 재실시하는 것을 특징으로 하는 데이터 전달 시스템의 데이터 전달 방법.And if there is no data popped from the local queue in the data pop step, performing the data pop step again. 청구항 4에 있어서,The method according to claim 4, 상기 데이터 전달 시스템의 데이터 전달 방법은,The data delivery method of the data delivery system, 상기 조회 스레드의 상기 데이터 조회 단계가 실시되는 동안 상기 복수의 업무처리 스레드 각각의 상기 데이터 반영 및 삭제 단계는 중지되도록 처리하고,While the data inquiry step of the inquiry thread is executed, the data reflection and deletion step of each of the plurality of business process threads is processed to be stopped; 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드의 상기 데이터 반영 및 삭제 단계가 실시되는 동안 상기 조회 스레드의 상기 데이터 조회 단계와 상기 복수의 업무처리 스레드 중 나머지 업무처리 스레드 각각의 상기 데이터 반영 및 삭제 단계는 중지되도록 처리하고,Reflecting and deleting the data of the data inquiry step of the inquiry thread and the remaining work processing threads of the plurality of work processing threads while the data reflection and deletion of one of the work processing threads of the plurality of work processing threads are performed. Process the step to stop, 상기 조회 스레드의 상기 데이터 푸시 단계가 실시되는 동안 상기 복수의 업무처리 스레드 각각의 상기 데이터 팝 단계는 중지되도록 처리하고,Process the data popping step of each of the plurality of business processing threads to be suspended while the data pushing step of the inquiry thread is performed, 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드의 상기 데이터 팝 단계가 실시되는 동안 상기 조회 스레드의 상기 데이터 푸시 단계와 상기 복수의 업무처리 스레드 중 나머지 업무처리 스레드 각각의 상기 데이터 팝 단계는 중지되 도록 처리하는 것을 특징으로 하는 데이터 전달 시스템의 데이터 전달 방법.The data pushing step of the inquiry thread and the data popping step of each of the remaining work processing threads of the plurality of work processing threads are stopped while the data popping step of one of the plurality of work processing threads is performed. Data delivery method of a data delivery system, characterized in that the processing. 제 3 항에 있어서,The method of claim 3, wherein 상기 데이터 조회 단계는,The data inquiry step, 상기 조회 스레드가 상기 제1 저장매체에 대한 사용 권한을 획득하는 조회 권한 획득 단계와;An inquiry authority obtaining step of obtaining, by the inquiry thread, a usage right for the first storage medium; 상기 조회 스레드가 상기 제1 저장매체로부터 데이터를 조회하는 조회 단계와;An inquiry step of the inquiry thread for inquiring data from the first storage medium; 상기 조회 스레드가 상기 제1 저장매체에 대한 사용 권한을 반환하는 조회 권한 반환 단계;An inquiry authority return step of the inquiry thread returning a use authority for the first storage medium; 를 포함하여 수행하는 것을 특징으로 하는 데이터 전달 시스템의 데이터 전달 방법.A data delivery method of a data delivery system, comprising: performing. 청구항 3에 있어서,The method of claim 3, 상기 데이터 푸시 단계는,The data push step, 상기 조회 스레드가 상기 로컬 큐에 대한 사용 권한을 획득하는 푸시 권한 획득 단계와;Obtaining, by the inquiry thread, permission to use the local queue; 상기 조회 스레드가 상기 데이터 조회 단계에서 상기 제1 저장매체로부터 조 회한 데이터를 상기 로컬 큐에 푸시하는 푸시 단계와;Pushing by the inquiry thread to the local queue data retrieved from the first storage medium in the data inquiry step; 상기 조회 스레드가 상기 로컬 큐에 대한 사용 권한을 반환하는 푸시 권한 반환 단계;A push permission return step wherein the lookup thread returns usage rights for the local queue; 를 포함하는 것을 특징으로 하는 데이터 전달 시스템의 데이터 전달 방법.Data delivery method of a data delivery system comprising a. 청구항 3에 있어서,The method of claim 3, 상기 데이터 팝 단계는,The data pop step, 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 로컬 큐에 대한 사용 권한을 획득하는 팝 권한 획득 단계와;A pop authority acquiring step, wherein one task thread among the plurality of task threads acquires a use right for the local queue; 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 로컬 큐로부터 데이터를 팝하는 팝 단계와;Popping, by one of the plurality of task threads, a task thread to pop data from the local queue; 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 로컬 큐에 대한 사용 권한을 반환하는 팝 권한 반환 단계;A pop authority return step of one task thread of the plurality of task threads returning usage rights for the local queue; 를 포함하여 수행하는 것을 특징으로 하는 데이터 전달 시스템의 데이터 전달 방법.A data delivery method of a data delivery system, comprising: performing. 청구항 3에 있어서,The method of claim 3, 상기 데이터 반영 및 삭제 단계는,The data reflection and deletion step, 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 제1 저장매체에 대한 사용 권한을 획득하는 삭제 권한 획득 단계와;A deleting authority obtaining step of obtaining, by one of the plurality of business processing threads, the processing right of the first storage medium; 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 데이터 팝 단계에서 상기 로컬 큐로부터 팝한 데이터를 상기 제2 저장매체에 반영하고 상기 제1 저장매체로부터 삭제하는 반영 및 삭제 단계와;A reflection and deletion step of one of the plurality of business processing threads reflecting data popped out of the local queue in the data popping step to the second storage medium and deleting from the first storage medium; 상기 복수의 업무처리 스레드 중 하나의 업무처리 스레드가 상기 제1 저장매체에 대한 사용 권한을 반환하는 삭제 권한 반환 단계;A deletion authority returning step of returning a use right for the first storage medium by one of the plurality of work processing threads; 를 포함하여 수행하는 것을 특징으로 하는 데이터 전달 시스템의 데이터 전달 방법.A data delivery method of a data delivery system, comprising: performing. 청구항 3 내지 청구항 9 중 어느 하나의 항에 있어서,The method according to any one of claims 3 to 9, 상기 데이터 전달 시스템의 데이터 전달 방법은,The data delivery method of the data delivery system, 상기 제1 저장매체로부터 데이터를 조회하여 상기 제2 저장매체에 반영하는 동안 발생하는 모든 신호(Signal)를 신호처리 스레드가 관리하는 신호 관리 단계와;A signal management step in which a signal processing thread manages all signals generated while inquiring data from the first storage medium and reflecting the data to the second storage medium; 상기 데이터 전달 시스템 또는 상기 데이터 전달 시스템에서 실행되던 프로세스(Process)가 비정상 종료될 경우, 상기 데이터 전달 시스템 또는 상기 데이터 전달 시스템에서 실행되던 프로세스의 비정상 종료를 파일에 기록하고, 상기 조회 스레드와 상기 복수의 업무처리 스레드 각각이 실시하고 있던 작업을 실시 이전으 로 되돌리고(Rollback), 각각이 획득하고 있던 사용 권한을 반환시킨 후 각각을 종료시키고 상기 신호처리 스레드 자신도 종료시켜 재가동 시 정상적인 동작을 위해 모든 시스템 자원을 해소시키는 시스템 자원 해소 단계;When the data delivery system or the process executed in the data delivery system abnormally terminates, the abnormal termination of the data delivery system or the process executed in the data delivery system is recorded in a file, and the inquiry thread and the plurality of processes are executed. Roll back the work performed by each of the task processing threads before returning it, return the usage rights acquired by each one, terminate each other, and terminate the signal processing thread itself to resume normal operation upon restart. Releasing system resources to release system resources; 를 포함하여 수행하는 것을 특징으로 하는 데이터 전달 시스템의 데이터 전달 방법.A data delivery method of a data delivery system, comprising: performing.
KR1020090108543A 2009-11-11 2009-11-11 Data Transferring System and Data Transferring Method for the Same KR101069814B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090108543A KR101069814B1 (en) 2009-11-11 2009-11-11 Data Transferring System and Data Transferring Method for the Same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090108543A KR101069814B1 (en) 2009-11-11 2009-11-11 Data Transferring System and Data Transferring Method for the Same

Publications (2)

Publication Number Publication Date
KR20110051779A true KR20110051779A (en) 2011-05-18
KR101069814B1 KR101069814B1 (en) 2011-10-04

Family

ID=44361991

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090108543A KR101069814B1 (en) 2009-11-11 2009-11-11 Data Transferring System and Data Transferring Method for the Same

Country Status (1)

Country Link
KR (1) KR101069814B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101217677B1 (en) * 2011-05-12 2013-01-02 주식회사 안랩 Malicious program blocking apparatus and method
KR101374533B1 (en) * 2013-04-17 2014-03-14 주식회사 엔써티 High performance replication system and backup system for mass storage data, method of the same

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7921330B2 (en) * 2008-02-29 2011-04-05 Red Hat, Inc. Data migration manager

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101217677B1 (en) * 2011-05-12 2013-01-02 주식회사 안랩 Malicious program blocking apparatus and method
KR101374533B1 (en) * 2013-04-17 2014-03-14 주식회사 엔써티 High performance replication system and backup system for mass storage data, method of the same

Also Published As

Publication number Publication date
KR101069814B1 (en) 2011-10-04

Similar Documents

Publication Publication Date Title
US6654766B1 (en) System and method for caching sets of objects
US7801852B2 (en) Checkpoint-free in log mining for distributed information sharing
KR100825721B1 (en) System and method of time-based cache coherency maintenance in user file manager of object-based storage system
US7328213B2 (en) Transaction processing method, transaction control apparatus and program thereof
US10037348B2 (en) Database management system with database hibernation and bursting
US20110231852A1 (en) Method and system for scheduling media exports
JP2007502464A (en) Automatic and dynamic provisioning of databases
CN101673192B (en) Method for time-sequence data processing, device and system therefor
GB2330433A (en) Data caching in a client/server database system
JP2018504670A (en) Message broker system with parallel persistence
US20100023532A1 (en) Remote file system, terminal device, and server device
US10142195B1 (en) Partitioned performance tracking core resource consumption independently
CN110781244B (en) Method and device for controlling concurrent operation of database
US20140214766A1 (en) Storage system and control device
WO2022257719A1 (en) Database transaction processing method and system, electronic device, and storage medium
CN102394936A (en) Cluster system nondestructive business maintenance method
CN102238102A (en) Quota-based archiving
CN112084206A (en) Database transaction request processing method, related device and storage medium
KR101069814B1 (en) Data Transferring System and Data Transferring Method for the Same
US7730147B1 (en) Prioritizing archived email requests
US8856241B1 (en) Management of email archive server requests
CN104320409A (en) Method for controlling access to cloud disk on basis of Hook technology
CN105471616B (en) Caching system management method and system
US8156188B1 (en) Email archive server priming for a content request
US11609934B2 (en) Notification framework for document store

Legal Events

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

Payment date: 20140930

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150915

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160922

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170925

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180910

Year of fee payment: 8