KR100764621B1 - 데이터 풀링 방법 및 데이터 풀링 시스템 - Google Patents

데이터 풀링 방법 및 데이터 풀링 시스템 Download PDF

Info

Publication number
KR100764621B1
KR100764621B1 KR1020050099794A KR20050099794A KR100764621B1 KR 100764621 B1 KR100764621 B1 KR 100764621B1 KR 1020050099794 A KR1020050099794 A KR 1020050099794A KR 20050099794 A KR20050099794 A KR 20050099794A KR 100764621 B1 KR100764621 B1 KR 100764621B1
Authority
KR
South Korea
Prior art keywords
data
queue
data processing
processing result
resource
Prior art date
Application number
KR1020050099794A
Other languages
English (en)
Other versions
KR20070043475A (ko
Inventor
지희환
Original Assignee
엔에이치엔(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔에이치엔(주) filed Critical 엔에이치엔(주)
Priority to KR1020050099794A priority Critical patent/KR100764621B1/ko
Publication of KR20070043475A publication Critical patent/KR20070043475A/ko
Application granted granted Critical
Publication of KR100764621B1 publication Critical patent/KR100764621B1/ko

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 외부 소스로부터 수신한 데이터를 소정의 데이터 처리를 수행하여 데이터 처리 결과를 생성하고, 이를 액션처리 쓰레드의 내부에 포함되는 큐에 선별적으로 기록함으로써 큐로의 데이터 처리 결과 기록시 선행적 디버깅을 허용하며 적은 시스템 자원으로도 데이터 풀링 작업을 가능하게 하는 데이터 풀링 방법 및 데이터 풀링 시스템에 관한 것이다. 본 발명에 따르면, 종래의 풀링 방식에서 보여지던 데이터 처리 결과를 액션처리 쓰레드에 일단 내부 기록하였다가, 큐로 데이터 처리 결과를 기록하는 경우, 재차 데이터 처리 결과를 복사하여 큐에 기록해야 하는 이중과정을 생략함으로써 시스템의 오버해드를 방지하는 데이터 풀링 방법 및 데이터 풀링 시스템을 제공할 수 있다.
풀링, 큐, 쓰레드, 데이터 통신

Description

데이터 풀링 방법 및 데이터 풀링 시스템{METHOD AND SYSTEM FOR POOLING DATA}
도 1은 종래에 공지된 원격지의 저장공간으로 데이터를 풀링하는 방식을 설명하기 위한 도면이다.
도 2는 본 발명에 따른 데이터 풀링 시스템의 개략적인 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 데이터 풀링 시스템을 나타내는 구성도이다.
도 4는 본 발명의 기준에 의거하여 편집한 데이터 처리 결과를 큐에 선별, 기록하는 과정을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 데이터 풀링 방법을 구체적으로 도시한 작업 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
300 : 데이터 풀링 시스템 310 : 액션처리 쓰레드
313 : 리소스-풀 314 : 큐
330 : 로그처리 쓰레드 330 : 저장공간
본 발명은 외부 소스로부터 수신한 데이터를 소정의 데이터 처리를 수행하여 데이터 처리 결과를 생성하고, 이를 액션처리 쓰레드 내부에 포함되는 큐에 선별적으로 기록함으로써 큐로의 데이터 처리 결과 기록시 선행적 디버깅을 허용하며 적은 시스템 자원으로도 데이터 풀링 작업을 가능하게 하는 데이터 풀링 방법 및 데이터 풀링 시스템에 관한 것이다.
일반적으로, 데이터에 대한 신호 처리, 저장/기록, 풀링(Pooling) 등의 작업에 관여하는 쓰레드(thread)는 큐(queue)로 작업 중에 가공된 데이터를 기록할 수 있으며, 이러한 큐로의 데이터 보관에 따라 처리되는 데이터의 단위를 규정할 수 있으며, 작업 수행 속도와 무관하게 안정적인 작업 처리 환경을 조성할 수 있다.
도 1은 종래에 공지된 원격지의 저장공간으로 데이터를 풀링하는 방식을 설명하기 위한 도면이다.
도 1에 도시한 바와 같이, 종래의 풀링 방식에서는 데이터 처리를 수행하는 액션처리 쓰레드와, 상기 데이터 처리에서 생성된 결과물을 저장공간으로 풀링하는 로그처리 쓰레드 사이에 큐를 위치시키고, 액션처리 쓰레드와 이격되어 위치한 큐에 상기 결과물을 기록함으로써 액션처리 쓰레드 및 로그처리 쓰레드 사이에서의 원활한 데이터 복사가 유도되도록 하고 있다.
즉, 종래의 풀링 방식은 단말기(또는 단말서버)에서 생성된 데이터를 유무 선 네트워크 등의 통신망을 통해 수신하고, 수신한 데이터를 액션처리 쓰레드에서 가공 처리 후 그 결과물을 큐에 기록하고 있다. 더불어, 종래의 풀링 방식에서의 로그처리 쓰레드는 소정의 기준에 따라 큐에 기록된 결과물을 추출하여 데이터베이스로 일괄적으로 저장(풀링)할 수 있다. 여기서, 로그처리 쓰레드는 액션처리 쓰레드의 일부 기능을 할당받아 기능함으로써 액션처리 쓰레드에게 시스템 부하가 편중되는 것을 억제하는 역할을 한다.
이러한 도 1의 종래 데이터 풀링 방식에 있어서, 액션처리 쓰레드는 상기 생성된 결과물을 자신과 이격되어 위치하는 큐에 기록하기 위해, 해당 결과물을 우선 내부(예컨대, 액션처리 쓰레드의 풀)에 기록하고, 다시 이를 복사하여 큐에 기록하는 이중 과정을 요구되는 번거로움이 있게 된다. 즉, 종래의 데이터 풀링 방식에서는, 데이터 처리시 이용되는 리소스를 풀에서 꺼내고, 데이터 처리 후 그 결과물을 큐에 기록(Queuing)해야 하는 작업이 요구되어 시스템의 부하가 상당해지는 문제점이 상존하고 있다.
또한, 도 1의 종래 데이터 풀링 방식은 데이터 처리된 결과물을 무조건 큐로 복사하는 것으로서, 금번 기록할 결과물과 동일한 결과물이 큐에 이미 기록되어 있는 상황에서도 반복 기록할 수 밖에 없어 시스템 자원이 불필요하게 소요되는 결과를 낳는다.
더욱이, 도 1의 종래 데이터 풀링 방식은 수신되는 데이터를 하나의 큐로 기록하고 있어, 각 데이터가 발생되는 소스에 대한 식별, 데이터를 데이터 처리한 액션처리 쓰레드에 대한 식별 등이 불가능하다는 단점이 있다. 이로 인해, 종래의 방식에서는 비록 결과물에 오류가 발생하더라도 이를 치유하고 수정할 수 있는 방법이 전무하다는 결점이 있음은 주지의 사실이다.
특히, 도 1의 종래 데이터 풀링 방식은 데이터가 들어갈 풀의 메모리 크기가 고정되어 있어, 풀링해야 할 데이터의 양이 큰 경우에는 최적한 Queuing이 불가능할 수 있다. 즉, 데이터의 양이 풀의 최대 저장 용량을 상회하는 경우에 종래의 방식에서는 메모리 크기의 고정으로 인해, 풀의 동적 할당에는 한계가 있게 된다.
따라서, 데이터 처리를 수행하는 액션처리 쓰레드 내부에 큐를 위치시키고, 데이터 처리를 통해 생성된 결과물 중에서 소정의 기준을 만족하는 결과물 만을 상기 내부에 위치한 큐로 선별, 기록함으로써 시스템의 부하를 획기적으로 줄일 수 있는 새로운 데이터 풀링 방식의 필요성이 절실하게 대두되고 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 종래의 풀링 방식에서 보여지던 데이터 처리 결과를 액션처리 쓰레드에 일단 내부 기록하였다가, 큐로 데이터 처리 결과를 기록하는 경우 재차 데이터 처리 결과를 복사하여 큐에 기록해야 하는 이중과정을 생략함으로써 시스템의 오버해드를 방지하는 데이터 풀링 방법 및 데이터 풀링 시스템을 제공하는 데에 있다.
또한, 본 발명의 목적은 데이터 처리 결과에 대한 오류 체크 작업을 미리 수행하고, 오류 발생 체크시 오류 수정 작업이 연동하여 수행되도록 하는 선행적 디버깅이 가능한 데이터 풀링 방법 및 데이터 풀링 시스템을 제공하는 데에 있다.
또한, 본 발명의 목적은, 액션처리 쓰레드 내부에 리소스-풀과 대응하는 큐 를 위치시킴으로써 큐로의 데이터 기록을 무조건적인 복사가 아닌 선별적인 편집에 의해 수행되도록 하는 데이터 풀링 방법 및 데이터 풀링 시스템을 제공하는 데에 있다.
또한, 본 발명의 목적은, 데이터에 대해 데이터 처리를 수행한 후 생성되는 데이터 처리 결과 중에서 소정의 기준을 만족하는 데이터 처리 결과 만을 액션처리 쓰레드 내부에 위치하는 큐에 기록함으로써 '내부기록-복사'의 이중 과정을 진행하던 종래의 기록 방식에서 탈피하여 '편집'에 의해 간편하게 큐에 데이터 처리 결과를 기록하는 데이터 풀링 방법 및 데이터 풀링 시스템을 제공하는 데에 있다.
또한, 본 발명의 목적은 데이터 처리 결과가 큐에 중복 기록되는 것을 미리 판단하여 방지하는 선행적 디버깅에 의해 큐로의 데이터 기록이 최소한의 시스템 부하에 의해 최적하게 이루어지도록 하는 데이터 풀링 방법 및 데이터 풀링 시스템을 제공하는 데에 있다.
상기의 목적을 이루기 위한 본 발명에 따른 데이터 풀링 방법은, 액션처리 쓰레드는 리소스-풀 및 상기 리소스-풀과 연동하는 큐를 내부에 포함하고, 상기 액션처리 쓰레드에서 외부 소스로부터 데이터를 수신하는 단계와, 상기 액션처리 쓰레드에서 상기 수신된 데이터에 대해, 리소스-풀의 리소스를 이용하여 데이터 처리를 수행하고 데이터 처리 결과를 생성하는 단계와, 상기 액션처리 쓰레드에서 상기 데이터 처리 결과를 상기 내부에 포함되는 상기 큐에 기록하는 단계, 및 상기 로그처리 쓰레드에서 상기 큐를 참조하여 상기 데이터 처리 결과를 소정의 저장공간에 저장하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 목적을 달성하기 위한 본 발명의 기술적 구성으로서, 데이터 풀링 시스템은, 리소스-풀 및 상기 리소스-풀과 연동하는 큐를 내부에 포함하고, 외부 소스로부터 수신된 데이터에 대해, 리소스-풀의 리소스를 이용하여 데이터 처리를 수행하여 데이터 처리 결과를 생성하며, 상기 데이터 처리 결과를 상기 내부에 포함되는 상기 큐에 기록하는 액션처리 쓰레드, 및 상기 큐를 참조하여 상기 데이터 처리 결과를 소정의 저장공간에 저장하는 로그처리 쓰레드를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 데이터 풀링 방법 및 데이터 풀링 시스템에 대하여 설명한다.
본 명세서에서 지속적으로 사용되는 큐(QUEUE)는 데이터에 대한 소정의 데이터 처리 후 생성되는 데이터 처리 결과를 일시 보관해두었다가 필요한 경우에 추출하여(또는 선별적으로 추출하여) 이용하는 수단을 지칭할 수 있다. 특히, 본 실시예에서의 큐는 외부 소스로부터 수신한 데이터에 대해 데이터 처리를 수행하는 액션처리 쓰레드 내부에서 리소스-풀(resource pool)과 연동하여 포함될 수 있으며, 상기 데이터 처리시에 이용된 리소스-풀을 고려하여 데이터 처리 결과를 구분하여 기록할 수 있다. 즉, 본 발명에서의 큐는 액션처리 쓰레드 내부에서 리소스-풀에 개별 대응하며, 데이터 처리 결과를 액션처리 쓰레드 별로 독립적으로 식별하여 기록한다. 이는 큐와 상기 큐에 데이터 처리 결과를 기록하는 액션처리 쓰레드를 연관시킴으로써 데이터 처리 결과에 오류가 발생하는 경우, 관련된 액션처리 쓰 레드를 정확하게 인지하며 해당 액션처리 쓰레드에 대한 오류 수정이 신속하게 이루어지도록 하기 위함이다.
도 2는 본 발명에 따른 데이터 풀링 시스템의 개략적인 동작을 설명하기 위한 도면이다.
데이터 풀링 시스템(200)은 외부 소스로부터 수신한 데이터를 소정의 데이터 처리를 수행하여 데이터 처리 결과를 생성하고, 이를 액션처리 쓰레드의 내부에 포함되는 큐에 직접 기록함으로써, 액션처리 쓰레드의 외부에 위치한 큐로 데이터 처리 결과를 기록하기 위해 '내부기록-복사'의 이중 과정을 수행해야 했던 종래의 방식을 탈피하고 시스템의 부하를 감소시키는 역할을 한다.
또한, 데이터 풀링 시스템(200)은 단순히 데이터 처리 결과를 큐에 기록하는 것이 아니라, 소정의 기준을 만족하는 데이터 처리 결과 만을 선별적으로 큐에 기록하고 있어 오류 발생의 사전 체크, 중복 기록 방지 등의 선행적 디버깅을 가능하게 하는 장치이다.
단말서버(210)는 사용자(220)에 의해 생성되는 데이터를 소정의 통신망(230)을 통해 본 발명의 데이터 풀링 시스템(200)에 제공하는 외부 소스의 역할을 하며, 예컨대 사용자(220)에게 온라인으로 데이터 통신 서비스, 게임 서비스 등을 제공하는 온라인 서버를 예시할 수 있다. 즉, 단말서버(210)는 사용자(220)로의 온라인 서비스 제공과 관련하여 발생된 데이터를 데이터 풀링 시스템(200)으로 전송시킴으로써 발생한 데이터에 대한 풀링 처리가 이루어지도록 하는 기술 환경을 마련한다. 본 발명의 데이터 풀링 시스템(200)은 단말서버(210)의 내부에 포함되 어 연결하여도 무방하고, 또는 단말서버(210)와 이격되어 연결하여도 무방하다.
사용자(220)는 온라인 서비스 제공과 관련한 단말서버(210)와의 통신망(230) 접속을 위한 사용자 단말기를 보유하며, 상기 온라인 서비스의 제공에 따라 발생되는 데이터를 데이터 풀링 시스템(200)으로 전송하는 인터넷 이용자를 의미할 수 있다. 또한, 본 실시예에서의 사용자(220)는 복수 개의 위치에서 공통된 하나의 프로그램 작업 처리를 수행하는 복수의 프로그래머(멀티프로그래머)를 지칭할 수도 있다.
데이터 풀링 시스템(200)은 단말서버(210)로부터 수신한 데이터에 대해 소정의 데이터 처리를 수행하여 데이터 처리 결과를 생성하고, 소정 기준을 만족하는 데이터 처리 결과에 한하여 큐에 편집, 기록함으로써 종래에, 큐로 데이터 처리 결과를 무조건적으로 복사하여 기록하는 방식에서 유발되었던 시스템 과부하를 해결할 수 있다. 이하, 도 3을 참조하여 본 발명의 데이터 풀링 시스템(300)의 구체적인 구성을 설명한다.
도 3은 본 발명의 일실시예에 따른 데이터 풀링 시스템을 나타내는 구성도이다.
본 발명의 데이터 풀링 시스템(300)은 내부에 큐(314)를 포함하는 액션처리 쓰레드(310) 및 로그처리 쓰레드(320)를 포함할 수 있다.
우선, 액션처리 쓰레드(310)는 단말서버(210) 등의 외부 소스로부터 수신한 데이터에 대해 리소스-풀(312)에 유지하는 리소스를 이용하여 데이터 처리를 수행하여 데이터 처리 결과를 생성한다. 즉, 액션처리 쓰레드(310)는 사용자(220)에 의해 생성되고 통신망(230)을 통해 수신된 데이터(이하, '제1 데이터'라 함)를, 공통된 하나의 작업을 위한 데이터, 예컨대 온라인 서비스를 적합한 형태의 데이터(이하, '제2 데이터'라 함)로 가공하기 위해 데이터 처리를 수행하는 역할을 한다. 예를 들어, 액션처리 쓰레드(310)는 렌더링 처리를 위해 복수의 프로그래머인 사용자(220)로부터 원시데이터인 제1 데이터를 복수 개 수신하고, 수신된 제1 데이터들이 동일한 작업 환경 내에서 이미지 구현이 가능하도록 소정의 데이터 처리를 수행하여 상기 원시 데이터를 데이터 처리 결과인 제2 데이터로 가공할 수 있다.
리소스-풀(312)은 하나 이상의 리소스로 구성되며, 각 리소스는 수신된 제1 데이터를 소정 크기 단위로 받아 들여 데이터 처리를 수행하는 크기를 결정할 수 있도록 한다. 특히, 리소스에는 속성을 미리 할당함으로써 받아들이는 제1 데이터가 선별되어 유입되도록 할 수 있고, 이에 따라 임의의 데이터 처리에 이용될 리소스를 유연하게 특정할 수 있다.
또한, 액션처리 쓰레드(310)는 데이터 처리에 따라 생성되는 데이터 처리 결과인 제2 데이터를 큐(314)에 기록한다. 특히, 큐(314)는 액션처리 쓰레드(310)의 내부에서 리소스-풀(312)과 개별 대응함으로써 특정 리소스-풀(312)의 리소스를 이용하여 생성된 제2 데이터는 해당 리소스-풀(312)과 대응하는 큐(314)에 국한하여 기록되도록 한다. 이는 큐(314)에 기록되는 데이터 처리 결과에서 오류가 발생한 경우, 데이터 풀링 시스템(300)에서, 오류가 발생한 큐(314)에 대응하는 액션처리 쓰레드(310)를 실시간으로 확인하고, 확인된 액션처리 쓰레드(310)에 대한 오류 수정이 신속하고 적절하게 이루어지도록 하기 위함이다.
즉, 액션처리 쓰레드(310)는 데이터 처리 결과(제2 데이터)의 생성에 이용된 리소스의 리소스-풀(312)과 대응하는 큐(314)에 한정하여, 상기 생성된 데이터 처리 결과(제2 데이터)를 기록하게 된다.
또한, 액션처리 쓰레드(310)는 데이터 처리를 수행하여 생성된 제2 데이터에 대해, 이전에 이미 큐(314)에 기록 내역이 있는 경우(큐(314)에 해당 제2 데이터가 기록되는 경우), 상기 데이터 처리 결과에 대한 큐(314)로의 기록을 생략함으로써 데이터 처리 결과의 중복 기록을 방지하고 불필요한 작업 수행을 예방할 수 있다. 즉, 액션처리 쓰레드(310)는 생성된 데이터 처리 결과가 큐(314)에 이미 기록된 데이터 처리 결과인지를 판단하고, 판단결과, 이미 기록된 데이터 처리 결과가 아닌 경우에 한하여 해당 데이터 처리 결과를 큐(314)에 기록함으로써 기록에 소요되는 시스템 부하를 최소화할 수 있다. 상기 판단하는 과정에서, 액션처리 쓰레드(310)는 큐(314)에 기록된 데이터 처리 결과(제2 데이터)에 대한 기록 내역을 조회하고, 조회된 기록 내역과 생성된 데이터 처리 결과를 대조하여 해당 데이터 처리 결과의 중복 기록을 체크한다.
즉, 액션처리 쓰레드(310)는 데이터 처리 결과(제2 데이터)가 큐(314)에 중복 기록되는 것을 미리 판단하여 방지하는 선행적 디버깅에 의해 큐(314)로의 데이터 기록이 최소한의 시스템 부하에 의해 최적하게 이루어지도록 할 수 있다.
로그처리 쓰레드(320)는 큐(314)를 참조하여 데이터 처리 결과를 소정의 저장공간(330)에 저장하는 장치이다. 여기서, 저장공간(330)는 큐(314)에 기록된 데이터 처리 결과(제2 데이터)의 일부 또는 전체를 저장하는 장치로서, 예컨대 하드 디스크, 데이터베이스 등을 예시할 수 있다. 즉, 로그처리 쓰레드(320)는 제1 데이터를 가공한 제2 데이터를 저장공간(330)으로 데이터 풀링하는 역할을 수행한다.
특히, 로그처리 쓰레드(320)는, 액션처리 쓰레드(310)에서 큐(314)에 데이터 처리 결과가 기록되는 것과 연관하여 작성된 인덱스를 이용하여, 저장공간(330)으로 저장될 데이터 처리 결과(제2 데이터)를 큐(314)에서 선별, 추출할 수도 있다. 즉, 로그처리 쓰레드(320)는 작성된 인덱스와 관련한 데이터 처리 결과를 큐(314)에서 선별, 추출하고 이를 바로 저장공간(330)으로 저장하고 있다. 이에 따라, 본 발명에 따른 데이터 처리 결과의 저장 방식에 의해서는, 종래에 큐(314)에 기록된 데이터 처리 결과를 모두 로그처리 쓰레드(320)로 복사하고 이를 다시 저장공간(330)으로 이동 저장시키는 방식에 비하여 소요되는 시스템의 부하를 획기적으로 감소시킬 수 있다.
본 실시예에서는 큐(314)로 실제 기록되는 데이터 처리 결과 만을 대상으로 액션처리 쓰레드(310)에서 인덱스를 작성하는 것을 예시하여 설명하고 있으나, 이외에 사용자(220)로부터 수신한 제1 데이터, 데이터 처리의 수행 후 생성된 제2 데이터 등을 대상으로 인덱스를 작성할 수도 있다.
따라서, 본 발명에 의하면, 제1 데이터에 대해 데이터 처리를 수행한 후 생성되는 데이터 처리 결과(제2 데이터) 중에서 소정의 기준을 만족하는 데이터 처리 결과(제2 데이터) 만을 액션처리 쓰레드(310) 내부에 위치하는 큐(314)에 기록함으로써 '내부기록-복사'의 이중 과정을 진행하던 종래의 기록 방식과 달리, '편집'에 의해 간편하게 큐(314)에 데이터 처리 결과를 기록하는 효과를 얻을 수 있다.
도 4는 본 발명의 기준에 의거하여 편집한 데이터 처리 결과를 큐에 선별, 기록하는 과정을 설명하기 위한 도면이다.
도 4에 도시한 바와 같이, 데이터 처리 결과의 기록 가능 여부에 대한 기준으로서 본 발명의 데이터 풀링 시스템(300)은 데이터 처리시 이용된 리소스-풀의 동일 여부, 및 데이터 처리 결과의 중복 기록 여부 등을 고려할 수 있다. 데이터 풀링 시스템(300)은 이러한 기준에 의해 판단되는 결과가 어느 하나라도 만족되지 않는 경우, 큐(314)로 데이터 처리 결과(제2 데이터)를 기록하는 것을 생략할 수 있다.
상술한 바와 같이, 액션처리 쓰레드(310)는 사용자(220)로부터 수신한 제1 데이터를 데이터 처리를 수행하여 데이터 처리 결과(제2 데이터)를 생성하고, 이러한 데이터 처리 결과의 생성 과정에서 리소스-풀(312)의 리소스를 이용하게 된다. 이때, 동일한 리소스-풀(312)을 이용하여 생성되는 데이터 처리 결과는 하나의 독립된 큐(314)에 기록되어야 하며, 이에 따라, 액션처리 쓰레드(310)는 금번 생성된 데이터 처리 결과가 이용한 리소스-풀(312)이, 이전 생성된 데이터 처리 결과가 이용한 리소스-풀(312)과 동일한지 여부를 판단한다. 만약, 상기 판단 결과, 리소스-풀(312)이 서로 상이한 것으로 판단한 경우, 액션처리 쓰레드(310)는 금번 생성된 데이터 처리 결과의 큐(314)로의 기록을 생략하게 된다(No 방향). 한편, 상기 판단 결과, 리소스-풀(312)이 서로 일치하는 것으로 판단한 경우, 액션처리 쓰레드(310)는 차기 판단 과정의 진행할 수 있다(Yes 방향).
이에 따라, 액션처리 쓰레드(310)는 동일한 리소스-풀(312)의 리소스를 이 용하여 생성된 데이터 처리 결과 만을 특정한 큐(314)(상기 리소스-풀과 개별 대응하는 큐)에 독립적으로 기록할 수 있다. 또한, 본 발명의 데이터 풀링 시스템(300)은, 만약 큐(314)에 기록되는 데이터 처리 결과에 오류가 발생하는 경우 해당 큐(314)에 대응하는 액션처리 쓰레드(310)를 용이하게 식별할 수 있고, 식별된 액션처리 쓰레드(310)에 대한 오류 수정 처리가 신속하고 정확하게 이루어지도록 할 수 있다.
또한, 액션처리 쓰레드(310)는 큐(314)에 기록된 데이터 처리 결과에 대한 기록 내역을 조회하고, 조회된 기록 내역과 큐(314)에 기록할 데이터 처리 결과를 대조하여 해당 데이터 처리 결과가 큐(314)에 중복 기록되는지를 체크한다. 이때, 중복 기록의 체크 결과, 이미 큐(314)에 기록된 데이터 처리 결과가 아닌 경우에 한하여 액션처리 쓰레드(310)는 상기 데이터 처리 결과를 정상적으로 큐(314)에 정상적으로 기록하며(Yes 방향), 반면 기 기록된 데이터 처리 결과에 대해서는 큐(314)로의 기록을 생략할 수 있다(No 방향).
따라서, 액션처리 쓰레드(310)는 도 3에서 도시한 두 가지의 기준, 즉 데이터 처리시 이용된 리소스-풀(312)의 동일 여부 및 큐(314)로의 데이터 처리 결과 중복 기록 여부를 판단하고, 상기 두 기준을 만족하며 오류 체크가 이루어진 데이터 처리 결과를 선별적으로 큐(314)에 기록할 수 있다.
이하, 본 발명의 실시예에 따른 데이터 풀링 시스템(300)의 작업 흐름을 상세히 설명한다.
도 5는 본 발명의 일실시예에 따른 데이터 풀링 방법을 구체적으로 도시한 작업 흐름도이다.
본 발명의 데이터 풀링 방법은 상술한 데이터 풀링 시스템(300)에 의해 수행될 수 있다.
데이터 풀링 시스템(300)의 일 구성 요소인 액션처리 쓰레드(300)에는 리소스-풀(312) 및 리소스-풀(312)과 연동하는 큐(314)를 내부에 포함하고 있다. 즉, 데이터 풀링 시스템(300)은 제1 데이터에 대한 데이터 처리의 결과로서 제2 데이터를 기록하는 큐(314)를 액션처리 쓰레드(310) 내부에 위치시키고, 리소스-풀(312)의 리소스를 이용할 수 있도록 상기 큐(314)와 리소스-풀(312)을 연동시키고 있다. 또한, 데이터 풀링 시스템(300)은 리소스-풀(312)에 개별적으로 큐(314)를 대응시킴으로써 동일한 속성의 리소스를 이용한 데이터 처리 결과에 대해 하나의 큐(314)로 데이터 처리 결과가 독립적으로 기록되도록 한다.
상기 데이터 풀링 방법에 있어서, 우선, 데이터 풀링 시스템(300)은 외부 소스로부터 제1 데이터를 수신한다(S510). 본 단계(S510)는 사용자(220)로의 온라인 서비스 제공과 관련하여 단말서버(210)에 발생한 제1 데이터를, 액션처리 쓰레드(310)에서 통신망(230)을 통해 수신하는 과정이다. 예컨대 액션처리 쓰레드(310)는 멀티프로그래머에 의해 발생한 복수개의 원시 데이터를 개별 프로그래머 또는 단말서버(210) 별로 수신할 수 있다.
다음으로, 데이터 풀링 시스템(300)은 수신한 데이터에 대해, 리소스-풀(312)에 유지하는 리소스를 이용하여 데이터 처리를 수행하고 데이터 처리 결과를 생성한다(S520). 본 단계(S520)는 수신한 제1 데이터를 액션처리 쓰레드(310)에서 리소스-풀(312)의 리소스를 이용하여 제2 데이터로 가공하는 과정이다.
또한, 데이터 풀링 시스템(300)은 생성된 데이터 처리 결과를 큐(314)에 기록한다(S530). 본 단계(S530)는 액션처리 쓰레드(310)에서 소정의 기준을 만족하는 제2 데이터를 큐(314)에 실질적으로 기록되는 데이터 처리 결과로서 선별하여 편집하는 편집 과정이다. 즉, 본 단계(S530)에서의 데이터 풀링 시스템(300)은 데이터 처리시 이용된 리소스-풀(312)의 동일 여부, 및 데이터 처리 결과의 중복 기록 여부를 고려하여 큐(314)로 기록되는 데이터 처리 결과(제2 데이터)를 결정할 수 있다. 이에 따라, 데이터 풀링 시스템(300)은 특정 리소스-풀(312)의 리소스를 공통으로 이용한 데이터 처리 결과에 대해, 해당 리소스-풀(312)과 대응하는 큐(314)에만 상기 데이터 처리 결과가 기록되도록 할 수 있다. 또한, 데이터 풀링 시스템(300)은 생성된 데이터 처리 결과가 큐(314)에 이미 기록된 데이터 처리 결과인지를 판단하고, 상기 판단결과 이미 큐(314)에 기록된 데이터 처리 결과가 아닌 경우에 한하여 해당 데이터 처리 결과를 큐(314)에 기록할 수 있다.
이를 통해, 본 발명에 따른 데이터 풀링 방법에 의해서는 큐(314)로의 데이터 처리 결과 기록에 있어서, 데이터 처리 결과(제2 데이터)를 생성한 액션처리 쓰레드(310)에 대한 식별이 용이하여 오류 체크 등의 선행적 디버깅을 수행 가능하게 할 수 있다.
더불어, 본 발명의 데이터 풀링 방법에 의해서는 큐(314)에 이미 기록된 데이터 처리 결과에 대한 중복 기록을 회피할 수 있어 시스템 부하를 획기적으로 감소시키는 효과를 얻을 수 있다.
계속해서, 데이터 풀링 시스템(300)은 큐(314)를 참조하여 데이터 처리 결과를 저장공간(330)에 저장한다(S540). 본 단계(S540)는 로그처리 쓰레드(320)에서 큐(314)에 기록된 제2 데이터를 하드디스크, 데이터베이스 등의 저장공간(330)으로 저장하는 과정이다.
특히, 본 단계(S540)에서의 데이터 풀링 시스템(300)은 큐(314)에 기록된 데이터 처리 결과를 로그처리 쓰레드(320)에서 모두 복사하여 저장공간(330)으로 이동 저장시키는 것이 아니라, 액션처리 쓰레드(310)에서 큐(314)로의 데이터 처리 결과 기록과 연관하여 작성된 인덱스를 이용하여 저장공간(330)으로 저장될 특정의 데이터 처리 결과만을 큐(314)에서 선별할 수 있다. 즉, 액션처리 쓰레드(310)는 큐(314)로의 데이터 처리 결과 기록에 연동하여 예컨대, 큐(314)에 실제 기록되는 제2 데이터의 항목과 관련한 인덱스를 작성할 수 있으며, 로그처리 쓰레드(320)는 작성된 인덱스를 이용하여 큐(314)로부터 추출한 데이터 처리 결과(제2 데이터)를 저장공간(330)으로 풀링되도록 제어할 수 있다.
따라서, 본 발명의 데이터 풀링 방식은, 데이터 처리된 데이터 처리 결과를 저장공간(330)으로 저장하기 위해 '내부기록-복사'의 이중 과정을 진행하던 종래의 방식을 탈피하여 '편집'에 의해 선별된 데이터 처리 결과만을 저장공간(330)으로 저장시킬 수 있어 통신망(230)을 통한 데이터 풀링 처리시 시스템의 부하를 획기적으로 절감하는 효과를 얻을 수 있다.
본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 웹 데이터 파일, 웹 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 웹 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
지금까지 본 발명에 따른 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
이상의 설명에서 알 수 있는 바와 같이, 본 발명에 따르면, 종래의 풀링 방식에서 보여지던 데이터 처리 결과를 액션처리 쓰레드에 일단 내부 기록하였다가, 큐로 데이터 처리 결과를 기록하는 경우, 재차 데이터 처리 결과를 복사하여 큐에 기록해야 하는 이중과정을 생략함으로써 시스템의 오버해드를 방지하는 데이터 풀 링 방법 및 데이터 풀링 시스템을 제공할 수 있다.
또한, 본 발명에 따르면, 데이터 처리 결과에 대한 오류 체크 작업을 미리 수행하고, 오류 발생 체크시 오류 수정 작업이 연동하여 수행되도록 하는 선행적 디버깅이 가능한 데이터 풀링 방법 및 데이터 풀링 시스템을 제공할 수 있다.
또한, 본 발명에 따르면, 액션처리 쓰레드 내부에 리소스-풀과 대응하는 큐를 위치시킴으로써 큐로의 데이터 기록을 무조건적인 복사가 아닌 선별적인 편집에 의해 수행되도록 하는 데이터 풀링 방법 및 데이터 풀링 시스템을 제공할 수 있다.
또한, 본 발명에 따르면, 데이터에 대해 데이터 처리를 수행한 후 생성되는 데이터 처리 결과 중에서 소정의 기준을 만족하는 데이터 처리 결과 만을 액션처리 쓰레드 내부에 위치하는 큐에 기록함으로써 '내부기록-복사'의 이중 과정을 진행하던 종래의 기록 방식에서 탈피하여 '편집'에 의해 간편하게 큐에 데이터 처리 결과를 기록하는 데이터 풀링 방법 및 데이터 풀링 시스템을 제공할 수 있다.
또한, 본 발명에 따르면, 데이터 처리 결과가 큐에 중복 기록되는 것을 미리 판단하여 방지하는 선행적 디버깅에 의해 큐로의 데이터 기록이 최소한의 시스템 부하에 의해 최적하게 이루어지도록 하는 데이터 풀링 방법 및 데이터 풀링 시스템을 제공할 수 있다.

Claims (13)

  1. 액션처리 쓰레드 및 로그처리 쓰레드를 포함하는 데이터 풀링 시스템에서의 데이터 풀링 방법에 있어서,
    상기 액션처리 쓰레드는 리소스-풀 및 상기 리소스-풀과 연동하는 큐를 내부에 포함하고,
    상기 액션처리 쓰레드에서 외부 소스로부터 데이터를 수신하는 단계;
    상기 액션처리 쓰레드에서 상기 수신된 데이터에 대해, 리소스-풀의 리소스를 이용하여 데이터 처리를 수행하고 데이터 처리 결과를 생성하는 단계;
    상기 액션처리 쓰레드에서 상기 데이터 처리 결과를 상기 내부에 포함되는 상기 큐에 기록하는 단계; 및
    상기 로그처리 쓰레드에서 상기 큐를 참조하여 상기 데이터 처리 결과를 소정의 저장공간에 저장하는 단계
    를 포함하는 것을 특징으로 하는 데이터 풀링 방법.
  2. 제1항에 있어서,
    데이터 처리 결과를 저장공간에 저장하는 상기 단계는,
    상기 액션처리 쓰레드에서 상기 큐로의 데이터 처리 결과 기록과 연관하여 작성된 인덱스를 상기 로그처리 쓰레드로 전달하는 단계; 및
    상기 로그처리 쓰레드에서 상기 큐로부터 상기 인덱스와 연관된 데이터 처 리 결과를 추출하고, 상기 추출된 데이터 처리 결과를 상기 저장공간에 저장되도록 제어하는 단계
    를 포함하는 것을 특징으로 하는 데이터 풀링 방법.
  3. 제1항에 있어서,
    상기 데이터 처리 결과에 대해 오류가 발생하는지를 판단하는 단계
    를 더 포함하고,
    데이터 처리 결과를 상기 내부에 포함되는 상기 큐에 기록하는 상기 단계는,
    상기 판단 결과, 오류가 발생되지 않는 것으로 확인되는 경우에 한하여 상기 데이터 처리 결과를 상기 큐에 기록하는 것을 특징으로 하는 데이터 풀링 방법.
  4. 제3항에 있어서,
    상기 큐는 상기 리소스-풀에 개별 대응하고,
    오류가 발생하는지를 판단하는 상기 단계는,
    특정 리소스-풀의 리소스를 이용한 데이터 처리 결과가 상기 리소스-풀과 개별 대응하는 큐에 기록되는 경우, 상기 오류가 발생되지 않은 것으로 확인하는 단계
    를 포함하는 것을 특징으로 하는 데이터 풀링 방법.
  5. 삭제
  6. 제3항에 있어서,
    오류가 발생하는지를 판단하는 상기 단계는,
    상기 데이터 처리 결과가 상기 큐에 이미 기록되어 있는지 여부를 식별하는 단계; 및
    데이터 처리 결과가 상기 큐에 기록되어 있지 않는 것으로 식별되는 경우, 상기 오류가 발생되지 않은 것으로 확인하는 단계
    를 포함하는 것을 특징으로 하는 데이터 풀링 방법.
  7. 제6항에 있어서,
    데이터 처리 결과가 상기 큐에 이미 기록되어 있는지 여부를 식별하는 상기 단계는,
    상기 큐에 기록된 기록 내역을 조회하는 단계; 및
    상기 조회된 기록 내역과 상기 데이터 처리 결과를 대조하여 상기 데이터 처리 결과의 중복 기록 여부를 체크하는 단계
    를 포함하는 것을 특징으로 하는 데이터 풀링 방법.
  8. 제1항에 있어서,
    상기 데이터 처리 결과는 상기 외부 소스로부터 수신한 제1 데이터를, 데이터 처리를 수행하여 가공한 제2 데이터인 것을 특징으로 하는 데이터 풀링 방법.
  9. 제1항 내지 제4항, 제6항 내지 제8항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
  10. 데이터 풀링 시스템에 있어서,
    리소스-풀 및 상기 리소스-풀과 연동하는 큐를 내부에 포함하고, 외부 소스로부터 수신된 데이터에 대해, 리소스-풀의 리소스를 이용하여 데이터 처리를 수행하여 데이터 처리 결과를 생성하며, 상기 데이터 처리 결과를 상기 내부에 포함되는 상기 큐에 기록하는 액션처리 쓰레드; 및
    상기 큐를 참조하여 상기 데이터 처리 결과를 소정의 저장공간에 저장하는 로그처리 쓰레드
    를 포함하는 것을 특징으로 하는 데이터 풀링 시스템.
  11. 제10항에 있어서,
    상기 액션처리 쓰레드는 상기 큐로의 데이터 처리 결과 기록과 연관하여 작성된 인덱스를 상기 로그처리 쓰레드로 전달하고,
    상기 로그처리 쓰레드는 상기 큐로부터 상기 인덱스와 연관된 데이터 처리 결과를 추출하고, 상기 추출된 데이터 처리 결과를 상기 저장공간에 저장되도록 제어하는 것을 특징으로 하는 데이터 풀링 시스템.
  12. 제10항에 있어서,
    상기 액션처리 쓰레드는,
    상기 데이터 처리 결과에 대해 오류가 발생하는지를 판단하고,
    상기 판단 결과, 오류가 발생하지 않는 경우에 한하여 상기 데이터 처리 결과를 상기 큐에 기록하는 것을 특징으로 하는 데이터 풀링 시스템.
  13. 제12항에 있어서, 상기 액션처리 쓰레드는,
    (1) 특정 리소스-풀의 리소스를 이용한 데이터 처리 결과가 상기 리소스-풀과 개별 대응하는 큐에 기록되는 경우, 상기 오류가 발생되지 않은 것으로 판단하거나, 또는 (2) 상기 데이터 처리 결과가 상기 큐에 이미 기록되어 있는지 여부를 식별하고, 상기 데이터 처리 결과가 상기 큐에 기록되어 있지 않는 것으로 식별되는 경우, 상기 오류가 발생되지 않은 것으로 판단하는 것을 특징으로 하는 데이터 풀링 시스템.
KR1020050099794A 2005-10-21 2005-10-21 데이터 풀링 방법 및 데이터 풀링 시스템 KR100764621B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050099794A KR100764621B1 (ko) 2005-10-21 2005-10-21 데이터 풀링 방법 및 데이터 풀링 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050099794A KR100764621B1 (ko) 2005-10-21 2005-10-21 데이터 풀링 방법 및 데이터 풀링 시스템

Publications (2)

Publication Number Publication Date
KR20070043475A KR20070043475A (ko) 2007-04-25
KR100764621B1 true KR100764621B1 (ko) 2007-10-08

Family

ID=38177964

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050099794A KR100764621B1 (ko) 2005-10-21 2005-10-21 데이터 풀링 방법 및 데이터 풀링 시스템

Country Status (1)

Country Link
KR (1) KR100764621B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5504898A (en) * 1994-06-20 1996-04-02 Candle Distributed Solutions, Inc. Threaded environment for AS/400
EP0871116A2 (en) 1997-04-04 1998-10-14 Microsoft Corporation Method and computer program product for reducing inter-buffer data transfers between separate processing components
US6615216B1 (en) * 2000-06-29 2003-09-02 Microsoft Corporation Lock free data structure maintenance
KR20040080345A (ko) * 2003-03-07 2004-09-18 인터내셔널 비지네스 머신즈 코포레이션 서버간섭이 없는 데이터 전송 동작 요청을 준비하고서비스하기 위한 가상 타겟의 사용 방법
KR20060041928A (ko) * 2004-02-13 2006-05-12 마이크로소프트 코포레이션 프린트 시스템 및 방법
KR20070051145A (ko) * 2005-11-14 2007-05-17 주식회사 케이티프리텔 개방형 모바일 비즈니스 지원 시스템에서의 비즈니스 로직처리 방법 및 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5504898A (en) * 1994-06-20 1996-04-02 Candle Distributed Solutions, Inc. Threaded environment for AS/400
EP0871116A2 (en) 1997-04-04 1998-10-14 Microsoft Corporation Method and computer program product for reducing inter-buffer data transfers between separate processing components
US6615216B1 (en) * 2000-06-29 2003-09-02 Microsoft Corporation Lock free data structure maintenance
KR20040080345A (ko) * 2003-03-07 2004-09-18 인터내셔널 비지네스 머신즈 코포레이션 서버간섭이 없는 데이터 전송 동작 요청을 준비하고서비스하기 위한 가상 타겟의 사용 방법
KR20060041928A (ko) * 2004-02-13 2006-05-12 마이크로소프트 코포레이션 프린트 시스템 및 방법
KR20070051145A (ko) * 2005-11-14 2007-05-17 주식회사 케이티프리텔 개방형 모바일 비즈니스 지원 시스템에서의 비즈니스 로직처리 방법 및 장치

Also Published As

Publication number Publication date
KR20070043475A (ko) 2007-04-25

Similar Documents

Publication Publication Date Title
US8918783B2 (en) Managing virtual computers simultaneously with static and dynamic dependencies
JP4764472B2 (ja) データベース管理方法、データベース管理プログラム、および、データベース管理装置
CN103092742A (zh) 程序日志记录优化方法和系统
US8380660B2 (en) Database system, database update method, database, and database update program
JP5619179B2 (ja) 計算機システム、ジョブ実行管理方法、及びプログラム
US7502967B1 (en) Identifying an object in a data file that causes an error in an application
US9274875B2 (en) Detecting memory hazards in parallel computing
JP7477572B2 (ja) 分散コンピューティングデバイスの自動制御
CN113254536A (zh) 数据库事务处理方法、系统、电子设备及存储介质
CN115543871A (zh) 数据存储方法及相关设备
JP5106062B2 (ja) ファイル検索方法、ファイル検索装置、検索システム、及び、ファイル検索プログラム
US10656922B2 (en) Systems and methods for providing an application transformation tool
US20140181791A1 (en) Software development work item management system
JP5040970B2 (ja) システム制御サーバ、ストレージシステム、設定方法および設定プログラム
US9009430B2 (en) Restoration of data from a backup storage volume
KR102518772B1 (ko) 수집 데이터 자동 처리를 위한 데이터 적재 프로파일링 장치 및 방법
KR100764621B1 (ko) 데이터 풀링 방법 및 데이터 풀링 시스템
KR20100022171A (ko) 스레드 지향 로깅 시스템에서 로그 저장 방법 및 장치
JP2009037544A (ja) データベース処理方法、その実施システム及びプログラム
CN111880803B (zh) 一种应用于多平台的软件构建方法及装置
KR101534493B1 (ko) 구조 변환에 기초한 소스코드 보안 약점 탐지 장치 및 방법
JP2012128581A (ja) 通信コード生成装置および関数利用コンピュータおよび関数公開コンピュータおよびコンピュータシステムおよび通信コード生成方法およびプログラム
US9280521B2 (en) Drawing support apparatus, supporting method and drawing support program
CN109660576B (zh) 用户数据实时迁移方法、存储介质、电子设备及系统
JP2007133632A (ja) セキュリティポリシー設定方法及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120928

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131001

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140925

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150924

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160928

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170928

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 13