KR20110051779A - Data transferring system and data transferring method for the same - Google Patents
Data transferring system and data transferring method for the same Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
Abstract
Description
본 발명은 데이터 전달 시스템에 관한 것으로, 특히 저장매체 사이의 데이터 전달 성능을 높이기 위한 데이터 전달 시스템 및 그 데이터 전달 방법에 관한 것이다.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
데이터 전달 시스템(100)은 로컬 큐(Local Queue, 110), 조회 스레드(Thread)(120), 복수의 업무처리 스레드(130), 제1 저장매체 뮤텍스(Mutex)(140), 로컬 큐 뮤텍스(150), 신호처리 스레드(160) 등을 포함한다.The data delivery system 100 may include a
로컬 큐(110)는 후술할 조회 스레드(120)가 제1 저장매체(10)로부터 조회한 데이터를 임시 저장한다. 임시 저장된 데이터는 후술할 복수의 업무처리 스레드(130)에 의해 제2 저장매체(20)에 반영된다.The
조회 스레드(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
복수의 업무처리 스레드(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
제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
로컬 큐 뮤텍스(150)는 로컬 큐(110)에 대한 조회 스레드(120)와 복수의 업무처리 스레드(130)의 사용 경합을 제어한다. 전술한 것과 같이 조회 스레드(120)와 복수의 업무처리 스레드(130) 각각은 데이터 푸시와 데이터 팝을 위해 로컬 큐(110)에 대한 사용 권한을 획득하려 한다. 하지만 조회 스레드(120)와 복수의 업무처리 스레드(130) 중 둘 이상이 동시에 로컬 큐(110)를 사용할 경우 서로의 작업에 영향을 끼쳐 잘못된 결과를 유발할 수 있다. 이를 방지하기 위해 로컬 큐 뮤텍스(150)가 로컬 큐(110)의 사용 권한 관리를 하여 동시에 둘 이상이 로컬 큐(110)를 사용할 수 없도록 한다. 즉, 조회 스레드(120)가 로컬 큐(110)의 사용 권한을 획득하여 데이터 푸시를 하는 동안 복수의 업무처리 스레드(130) 각각은 로컬 큐(110)의 사용 권한을 획득할 수 없어 데이터 팝을 할 수 없고, 임의의 업무처리 스레드(130)가 로컬 큐(110)의 사용 권한을 획득하여 데이터 팝을 하는 동안 조회 스레드(120)와 나머지 업무처리 스레드(130) 각각은 로컬 큐(110)의 사용 권한을 획득할 수 없어 각각 데이터 푸시와 데이터 팝을 할 수 없다.The
신호처리 스레드(160)는 데이터 전달 시스템(100)이 데이터를 전달하는 동안, 즉, 제1 저장매체(10)로부터 데이터를 조회하여 제2 저장매체(20)에 반영하는 동안 발생하는 모든 신호(Signal)를 관리한다. 데이터 전달 시스템(100)에서 발생되는 신호를 감시하고, 발생된 신호의 정보를 파일에 기록(로깅 : Logging)한다. 그리고 각 신호에 대응해 데이터 전달 시스템(100)의 종료 여부를 판단하고, 데이터 전달 시스템(100) 종료 시 데이터 전달 시스템(100)을 종료한다고 파일에 기록한다. 그리고, 신호처리 스레드(160)는 데이터 전달 시스템(100) 또는 데이터 전달 시스템(100)에서 실행되던 프로세스가 비정상 종료될 경우, 데이터 전달 시스템(100) 또는 데이터 전달 시스템(100)에서 실행되던 프로세스의 비정상 종료를 파일에 기록하고, 재가동 시 정상적인 동작을 위해 모든 시스템 자원을 안정적으로 해소시킨다. 즉, 신호처리 스레드(160)는 조회 스레드(120)와 복수의 업무처리 스레드(130) 각각이 실시하고 있던 작업을 실시 이전으로 되돌리고(Rollback), 각각이 획득하고 있던 사용 권한을 반환시킨 후 각각을 종료시키고, 자신도 종료된다.The
상기한 데이터 전달 시스템(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
제1 저장매체(10)에 저장된 데이터는 조회 스레드(120)에 의해 조회된다(S210). 조회 스레드(120)에 의해 조회된 데이터는 조회 스레드(120)에 의해 로컬 큐(110)에 푸시되어 임시 저장된다(S220). 로컬 큐(110)에 임시 저장된 데이터는 복수의 업무처리 스레드(130) 각각에 의해 팝된다(S230). 복수의 업무처리 스레드(130) 각각에 의해 팝된 데이터는 해당 업무처리 스레드(130)에 의해 제2 저장매체(20)에 반영되고 제1 저장매체(10)로부터 삭제된다(S240).Data stored in the
이러한 데이터 전달 과정을 데이터 전달 시스템(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
데이터 조회(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
데이터 푸시(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
조회 스레드(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
제1 저장매체(10)로부터 조회한 모든 데이터의 업무처리가 완료되면 조회 스레드(120)는 다시 데이터 조회 단계(S210)를 실시한다.When the processing of all the data inquired from the
그리고, 조회 스레드(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
그리고, 도 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
복수의 업무처리 스레드(130) 각각은, 도 4에 도시된 것과 같이, 데이터 팝 단계(S230) 및 데이터 반영 및 삭제 단계(S240)를 실시한다.As shown in FIG. 4, each of the plurality of
복수의 업무처리 스레드(130) 각각은 팝 권한 획득 단계(S231), 팝 단 계(S232), 및 팝 권한 반환 단계(S233)를 실시하여 로컬 큐(110)로부터 데이터를 팝한다(S230). 복수의 업무처리 스레드(130) 각각은 로컬 큐 뮤텍스(150)를 통해 로컬 큐(110)에 대한 사용 권한을 획득한다(S231). 로컬 큐(110)에 대한 사용 권한을 획득한 해당 업무처리 스레드(130)는 로컬 큐(110)로부터 데이터를 팝한다(S232). 로컬 큐(110)로부터 데이터 팝을 마친 해당 업무처리 스레드(130)는 로컬 큐(110)에 대한 사용 권한을 반환한다(S233).Each of the plurality of
데이터 팝(S230)을 마친 해당 업무처리 스레드(130)는 로컬 큐(110)로부터 팝한 데이터의 존재를 판단한다(S401). 로컬 큐(110)에 데이터가 존재하여 해당 업무처리 스레드(130)가 데이터 팝 단계(S230)를 실시하여 팝한 데이터가 존재하면 판단 결과는 데이터 존재가 되고, 로컬 큐(110)에 데이터가 존재하지 않아 해당 업무처리 스레드(130)가 데이터 팝 단계(S230)를 실시하였으나 팝한 데이터가 존재하지 않으면 판단 결과는 데이터 미존재가 된다.The
팝 데이터 존재 판단(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
로컬 큐(110)로부터 팝한 데이터의 반영 및 삭제가 완료되면 해당 업무처리 스레드(130)는 다시 데이터 팝 단계(S230)를 실시한다.When the reflection and deletion of the data popped from the
그리고, 팝 데이터 존재 판단(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
그리고, 도 4에서는 도시되지 않았으나, 복수의 업무처리 스레드(130) 각각은 로컬 큐(110)로부터 데이터를 팝하여 제2 저장매체(20)에 반영하는 과정에서 필요에 따라 데이터를 편집하기도 한다.Although not shown in FIG. 4, each of the plurality of
신호처리 스레드(160)는, 도 5에 도시된 것과 같이, 신호 관리 단계(S510), 시스템 종료 로깅 단계(S520), 및 시스템 자원 해소 단계(S530)를 실시한다.As shown in FIG. 5, the
신호처리 스레드(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
데이터 전달 시스템(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
참고로, 신호처리 스레드(160)의 수신 신호 로깅 단계(S512)와 시스템 종료 로깅 단계(S520)는 관리자의 필요에 의해 실시할 수도 있고 실시하지 않을 수도 있다.For reference, the reception signal logging step S512 and the system termination logging step S520 of the
이상에서 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다. 따라서 본 발명에 개시된 실시예들 은 본 발명의 기술적 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술적 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호범위는 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술적 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.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)
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7921330B2 (en) * | 2008-02-29 | 2011-04-05 | Red Hat, Inc. | Data migration manager |
-
2009
- 2009-11-11 KR KR1020090108543A patent/KR101069814B1/en active IP Right Grant
Cited By (2)
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 |