KR101974091B1 - Method for managing thread pool based on machine learning and computing device using the same - Google Patents

Method for managing thread pool based on machine learning and computing device using the same Download PDF

Info

Publication number
KR101974091B1
KR101974091B1 KR1020180140341A KR20180140341A KR101974091B1 KR 101974091 B1 KR101974091 B1 KR 101974091B1 KR 1020180140341 A KR1020180140341 A KR 1020180140341A KR 20180140341 A KR20180140341 A KR 20180140341A KR 101974091 B1 KR101974091 B1 KR 101974091B1
Authority
KR
South Korea
Prior art keywords
thread
event
data
learning data
metadata
Prior art date
Application number
KR1020180140341A
Other languages
Korean (ko)
Inventor
김건우
안형주
Original Assignee
(주)시큐레이어
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)시큐레이어 filed Critical (주)시큐레이어
Priority to KR1020180140341A priority Critical patent/KR101974091B1/en
Application granted granted Critical
Publication of KR101974091B1 publication Critical patent/KR101974091B1/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Abstract

The present invention relates to a method for managing a thread pool based on machine learning, minimizing performance effect through a learning process for a situation of generating a predetermined event in preparation for a following event, and a computing device using the same. According to the present invention, the method comprises the steps of: (a) generating at least one piece of new learning data in reference to information about a second event when at least one second event occurs in at least one predetermined thread while allowing at least a part of threads to access each different position of a message queue and read data therefrom; (b) storing at least one predetermined new learning data, whose second metadata satisfies a first condition among pieces of new learning data, in a learning data storage unit, and generating and storing at least one predetermined learning pattern information in a pattern storage unit when accumulated data of at least one previous predetermined learning data matched with the predetermined new learning data among pieces of previous learning data satisfies a second condition; and (c) managing a thread pool in reference to a matching result between a predetermined query and at least a part of the metadata corresponding to the predetermined learning pattern information when the predetermined query is acquired.

Description

머신러닝 기반 쓰레드풀을 관리하는 방법 및 이를 사용한 컴퓨팅 장치 {METHOD FOR MANAGING THREAD POOL BASED ON MACHINE LEARNING AND COMPUTING DEVICE USING THE SAME}TECHNICAL FIELD [0001] The present invention relates to a method of managing a thread pool of a machine learning base, and a computing apparatus using the same.

본 발명은 머신러닝 기반 쓰레드풀을 관리하는 방법 및 이를 사용한 컴퓨팅 장치에 관한 것이다. 구체적으로는, (a) 적어도 둘 이상의 쓰레드를 갖는 쓰레드풀이 관리되고, 과거의 어느 시간 범위 내에 상기 쓰레드 중 적어도 일부에 적어도 하나의 제1 이벤트가 발생했을 때 상기 제1 이벤트에 대한 정보를 참조로 하여 생성된 기 학습데이터 - 상기 기 학습데이터는 적어도 하나의 제1 메타데이터를 포함함 - 가 학습데이터 저장부에 저장되어 관리되며, 상기 기 학습데이터를 적어도 일부 사용하여 생성된 기 학습패턴 정보가 패턴 저장부에 저장되어 관리되는 상태에서, 컴퓨팅 장치가, 상기 쓰레드 중 적어도 일부로 하여금 메시지 큐의 각각 다른 위치에 접근하도록 하여 데이터를 읽어오는 과정에서, 적어도 하나의 특정 쓰레드에 적어도 하나의 제2 이벤트가 발생하는 경우 상기 제2 이벤트에 대한 정보를 참조로 하여, 적어도 하나의 신규 학습데이터 - 상기 신규 학습데이터는 적어도 하나의 제2 메타데이터를 포함함 - 를 생성하는 단계; (b) 상기 컴퓨팅 장치가, 상기 신규 학습데이터를 상기 기 학습데이터와 비교한 결과, 상기 신규 학습데이터 중에서 상기 제2 메타데이터가 제1 조건을 만족하는 적어도 하나의 특정 신규 학습데이터를 상기 학습데이터 저장부에 저장하고, 상기 기 학습데이터 중에서 상기 특정 신규 학습데이터와 매칭되는 적어도 하나의 특정 기 학습데이터의 누적 데이터가 제2 조건을 만족하면, 적어도 하나의 특정 학습패턴 정보를 생성하여 상기 패턴 저장부에 저장하는 단계; 및 (c) 소정의 쿼리가 획득되면, 상기 컴퓨팅 장치가, 상기 소정의 쿼리를 상기 특정 학습패턴 정보에 대응되는 상기 메타데이터 중 적어도 일부와 매칭한 결과를 참조로 하여, 상기 쓰레드풀을 관리하는 단계;를 포함하는 것을 특징으로 하는 방법 및 이를 사용한 컴퓨팅 장치에 관한 것이다.The present invention relates to a method for managing a machine learning-based thread pool and a computing apparatus using the same. Specifically, (a) a thread pool having at least two threads is managed, and when at least one first event occurs in at least a part of the threads within a past time range, The learning pattern data generated by using at least a part of the learning data is stored in a learning data storage unit and stored in the learning data storage unit. In a state where the computing device stores at least one second thread in at least one specific thread in the process of reading data by causing at least some of the threads to access different locations of the message queue, With reference to the information about the second event, at least one new learning day - generating a - Good said new training data comprises at least one of the second meta data; (b) when the computing device compares the new learning data with the primary learning data, at least one specific new learning data in which the second metadata satisfies the first condition among the new learning data, When the accumulated data of at least one specific learning data matched with the specific new learning data in the learning data satisfies the second condition, generates at least one specific learning pattern information and stores the pattern storage ; And (c) when the predetermined query is obtained, the computing device manages the thread pool with reference to a result of matching the predetermined query with at least a part of the meta data corresponding to the specific learning pattern information And a computing device using the method.

기존의 실시간 데이터 처리 환경에서는 컴퓨팅 장치에 의해 생성된 쓰레드를 통해 데이터를 읽어오는데, 그 과정에서 특정 쓰레드가 특정 이벤트로 인해 비정상종료가 된다면 특정 쓰레드가 할당 받은 양을 다 채우지 못한 상태로 종료되고 데이터 손실이 발생한다. In a conventional real-time data processing environment, data is read through a thread created by a computing device. If a specific thread terminates abnormally due to a specific event in the process, the thread is terminated in an unfilled state Loss occurs.

쓰레드가 새로 생성돼도 비정상 종료 쓰레드가 어디까지 읽다가 종료되었는지에 대한 정보가 없기 때문에 비정상 종료 쓰레드에게 할당되었던 작업이 완료될 수가 없는 문제점이 존재하였다. There is a problem that the task assigned to the abnormal termination thread can not be completed because there is no information about where the abnormal termination thread is read and terminated even if a new thread is created.

또한, 기존의 실시간 데이터 처리 환경에서는 쓰레드가 개별의 스택 영역을 가지기 때문에 쓰레드 간에 데이터를 공유할 때 데이터 영역을 거쳐서 공유하게 되고 이는 공유되는 데이터의 무결성을 보장하지 않게 된다.In addition, in the existing real-time data processing environment, since the threads have a separate stack area, when the data is shared among the threads, they are shared through the data area, which does not guarantee the integrity of the shared data.

그리고, 쓰레드풀 내에서 쓰레드들의 순서가 없기 때문에 특정 쓰레드가 특정 이벤트로 인해 비정상 종료가 된다면, 특정 쓰레드가 메시지 큐의 어느 주소에 접근하고 있다가 비정상 종료되었는지에 대한 정보를 어떤 쓰레드에게 넘겨주어야 하는지 모호함이 생긴다.If a particular thread terminates abnormally due to a specific event because there is no order of threads in the thread pool, it is necessary to determine to which thread a particular thread accesses the address of the message queue and gives information to the thread about abnormally terminated Ambiguity arises.

또한, 실시간 데이터 처리 환경에서 특정 쓰레드에 특정 이벤트가 발생한다면 성능적인 영향을 받게 되는데, 특정 이벤트가 발생한 상황에 대한 학습과정이 없다면 같은 이벤트가 추후에 발생했을 때 해당 이벤트를 해결하는데 자원을 사용하게 되고 이는 성능적인 저하로 이어질 수 있다.In addition, if a specific event occurs in a specific thread in a real-time data processing environment, it is affected by performance. If there is no learning process for a specific event, when the same event occurs later, Which may lead to performance degradation.

본 발명은 상술한 문제점을 모두 해결하는 것을 목적으로 한다.The present invention aims at solving all of the above problems.

또한, 본 발명은 특정 이벤트가 발생한 상황에 대한 학습과정을 통해 추후에 발생할 이벤트를 대비하여 성능적 영향을 최소화하는 것을 다른 목적으로 한다.It is another object of the present invention to minimize the performance effect in preparation for a future event through a learning process for a specific event.

또한, 본 발명은 쓰레드들이 일정한 순서를 가지고 특정 쓰레드가 메시지 큐의 어느 주소에 접근하고 있다가 비정상 종료되었는지에 대한 정보를 공유하여 특정쓰레드에게 할당되었던 작업을 타 쓰레드가 완료할 수 있도록 하는 것을 또 다른 목적으로 한다.The present invention also relates to a method for allowing a thread to complete a task assigned to a specific thread by sharing information about whether a thread has accessed a certain address in a message queue and has terminated abnormally, For other purposes.

상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.In order to accomplish the above object, a representative structure of the present invention is as follows.

머신러닝 기반 쓰레드풀을 관리하는 방법에 있어서, (a) 적어도 둘 이상의 쓰레드를 갖는 쓰레드풀이 관리되고, 과거의 어느 시간 범위 내에 상기 쓰레드 중 적어도 일부에 적어도 하나의 제1 이벤트가 발생했을 때 상기 제1 이벤트에 대한 정보를 참조로 하여 생성된 기 학습데이터 - 상기 기 학습데이터는 적어도 하나의 제1 메타데이터를 포함함 - 가 학습데이터 저장부에 저장되어 관리되며, 상기 기 학습데이터를 적어도 일부 사용하여 생성된 기 학습패턴 정보가 패턴 저장부에 저장되어 관리되는 상태에서, 컴퓨팅 장치가, 상기 쓰레드 중 적어도 일부로 하여금 메시지 큐의 각각 다른 위치에 접근하도록 하여 데이터를 읽어오는 과정에서, 적어도 하나의 특정 쓰레드에 적어도 하나의 제2 이벤트가 발생하는 경우 상기 제2 이벤트에 대한 정보를 참조로 하여, 적어도 하나의 신규 학습데이터 - 상기 신규 학습데이터는 적어도 하나의 제2 메타데이터를 포함함 - 를 생성하는 단계; (b) 상기 컴퓨팅 장치가, 상기 신규 학습데이터를 상기 기 학습데이터와 비교한 결과, 상기 신규 학습데이터 중에서 상기 제2 메타데이터가 제1 조건을 만족하는 적어도 하나의 특정 신규 학습데이터를 상기 학습데이터 저장부에 저장하고, 상기 기 학습데이터 중에서 상기 특정 신규 학습데이터와 매칭되는 적어도 하나의 특정 기 학습데이터의 누적 데이터가 제2 조건을 만족하면, 적어도 하나의 특정 학습패턴 정보를 생성하여 상기 패턴 저장부에 저장하는 단계; 및 (c) 소정의 쿼리가 획득되면, 상기 컴퓨팅 장치가, 상기 소정의 쿼리를 상기 특정 학습패턴 정보에 대응되는 상기 메타데이터 중 적어도 일부와 매칭한 결과를 참조로 하여, 상기 쓰레드풀을 관리하는 단계;를 포함하는 것을 특징으로 하는 방법이 제공된다.A method for managing a machine learning based thread pool, the method comprising: (a) managing a thread pool having at least two threads, wherein when at least one first event occurs in at least a portion of the thread 1 event, wherein the first learning data includes at least one first metadata, is stored and managed in a learning data storage unit, and the first learning data is used at least partially In the state where the generated learning pattern information is stored and managed in the pattern storage unit, in the process of reading data by allowing the computing device to access at least some of the threads to different locations in the message queue, If at least one second event occurs in the thread, the information about the second event is referred to And, at least one new training data - generating said new learning data including at least one of the second meta data; (b) when the computing device compares the new learning data with the primary learning data, at least one specific new learning data in which the second metadata satisfies the first condition among the new learning data, When the accumulated data of at least one specific learning data matched with the specific new learning data in the learning data satisfies the second condition, generates at least one specific learning pattern information and stores the pattern storage ; And (c) when the predetermined query is obtained, the computing device manages the thread pool with reference to a result of matching the predetermined query with at least a part of the meta data corresponding to the specific learning pattern information The method comprising the steps of:

또한, 본 발명의 일 실시예에 따르면, 머신러닝 기반 쓰레드풀을 관리하는 컴퓨팅 장치에 있어서, 인스트럭션들을 저장하는 적어도 하나의 메모리; 및 상기 인스트럭션들을 실행하기 위해 구성된 적어도 하나의 프로세서를 포함하되, 상기 프로세서는, 적어도 둘 이상의 쓰레드를 갖는 쓰레드풀이 관리되고, 과거의 어느 시간 범위 내에 상기 쓰레드 중 적어도 일부에 적어도 하나의 제1 이벤트가 발생했을 때 상기 제1 이벤트에 대한 정보를 참조로 하여 생성된 기 학습데이터 - 상기 기 학습데이터는 적어도 하나의 제1 메타데이터를 포함함 - 가 학습데이터 저장부에 저장되어 관리되며, 상기 기 학습데이터를 적어도 일부 사용하여 생성된 기 학습패턴 정보가 패턴 저장부에 저장되어 관리되는 상태에서, (1) 상기 쓰레드 중 적어도 일부로 하여금 메시지 큐의 각각 다른 위치에 접근하도록 하여 데이터를 읽어오는 과정에서, 적어도 하나의 특정 쓰레드에 적어도 하나의 제2 이벤트가 발생하는 경우 상기 제2 이벤트에 대한 정보를 참조로 하여, 적어도 하나의 신규 학습데이터 - 상기 신규 학습데이터는 적어도 하나의 제2 메타데이터를 포함함 - 를 생성하는 프로세스, (2) 상기 신규 학습데이터를 상기 기 학습데이터와 비교한 결과, 상기 신규 학습데이터 중에서 상기 제2 메타데이터가 제1 조건을 만족하는 적어도 하나의 특정 신규 학습데이터를 상기 학습데이터 저장부에 저장하고, 상기 기 학습데이터 중에서 상기 특정 신규 학습데이터와 매칭되는 적어도 하나의 특정 기 학습데이터의 누적 데이터가 제2 조건을 만족하면, 적어도 하나의 특정 학습패턴 정보를 생성하여 상기 패턴 저장부에 저장하는 프로세스, 및 (3) 소정의 쿼리가 획득되면, 상기 소정의 쿼리를 상기 특정 학습패턴 정보에 대응되는 상기 메타데이터 중 적어도 일부와 매칭한 결과를 참조로 하여, 상기 쓰레드풀을 관리하는 프로세스를 수행하는 상기 인스트럭션들을 실행하는 컴퓨팅 장치가 제공된다.According to an embodiment of the present invention, there is also provided a computing device for managing a machine learning-based thread pool, the computing device comprising: at least one memory for storing instructions; And at least one processor configured to execute the instructions, wherein the processor is configured to: manage a thread pool having at least two threads, wherein at least a first event in at least a portion of the thread within a time- The first learning data generated by referring to the information on the first event when the first learning data is generated, the first learning data including at least one first metadata is stored and managed in the learning data storage unit, (1) in a process of reading data by causing at least a part of the threads to access each different position of a message queue, When at least one second event occurs in at least one particular thread, Generating new learning data by referring to information about a second event, wherein the new learning data includes at least one second metadata; (2) As a result of comparison with the data, at least one specific new learning data in which the second meta data satisfies the first condition among the new learning data is stored in the learning data storage section, Generating at least one specific learning pattern information and storing the generated at least one specific learning pattern information in the pattern storage when the cumulative data of the at least one specific learning data matched with the predetermined condition satisfies the second condition, and (3) , Matching the predetermined query with at least a part of the meta data corresponding to the specific learning pattern information, By way of reference, a computing device is provided that executes the instructions to perform the process of managing the thread pool.

본 발명에 의하면, 다음과 같은 효과가 있다.The present invention has the following effects.

본 발명은 특정 이벤트가 발생했을 때의 상황을 학습하여 어떠한 상황에서 특정 이벤트가 발생하는지에 대한 패턴 모델을 만들어내고, 이러한 패턴 모델을 기반으로 해당 프로세스의 쓰레드풀을 관리하여 성능적 영향을 최소화할 수 있다.The present invention learns a situation when a specific event occurs, generates a pattern model for a specific event in a certain situation, manages a thread pool of the process based on the pattern model, and minimizes a performance impact .

또한, 본 발명은 메시지 큐에 접근하여 데이터를 가져오는 쓰레드들이 일정한 순서를 가지고 각각의 쓰레드가 각각의 쓰레드의 주소 정보를 실시간으로 공유함으로 인해서 특정 쓰레드에 특정 이벤트가 발생해도 특정 쓰레드가 어디까지 읽었는지에 대한 정보를 타 쓰레드가 가지고 있기 때문에 특정 쓰레드의 주소 정보를 공유하는 타 쓰레드가 중단된 작업을 마무리 해줄 수 있게 되고, 데이터 손실을 막을 수 있다.In addition, according to the present invention, since the threads accessing the message queue and fetching data have a predetermined sequence and each thread shares the address information of each thread in real time, even if a specific event occurs in a specific thread, Because other threads have information about how they are addressed, other threads sharing the address information of a particular thread can complete the interrupted work and prevent data loss.

도 1은 본 발명의 일 실시예에 따른 머신러닝 기반 쓰레드풀을 관리하는 컴퓨팅 장치를 개략적으로 도시한 것이고,
도 2 및 도 3은 본 발명의 일 실시예에 따른 머신러닝 기반 쓰레드풀을 관리하는 방법에 있어서 컴퓨팅 장치가 쓰레드풀을 관리하는 과정을 개략적으로 도시한 것이고,
도 4, 도 5 및 도 6은 본 발명의 일 실시예에 따른 머신러닝 기반 쓰레드풀을 관리하는 방법에 있어서 이벤트 타입 각각에 대응하는 쓰레드풀을 관리하는 방법을 개략적으로 도시한 것이다.
1 schematically illustrates a computing device that manages a machine learning-based thread pool in accordance with one embodiment of the present invention,
FIG. 2 and FIG. 3 are diagrams schematically illustrating a process of managing a thread pool by a computing device in a method of managing a machine learning-based thread pool according to an embodiment of the present invention,
FIGS. 4, 5, and 6 schematically illustrate a method of managing a thread pool corresponding to each event type in a method of managing a machine learning-based thread pool according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.The following detailed description of the invention refers to the accompanying drawings, which illustrate, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that the various embodiments of the present invention are different, but need not be mutually exclusive. For example, certain features, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in connection with an embodiment. It is also to be understood that the position or arrangement of the individual components within each disclosed embodiment may be varied without departing from the spirit and scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is to be limited only by the appended claims, along with the full scope of equivalents to which such claims are entitled, if properly explained. In the drawings, like reference numerals refer to the same or similar functions throughout the several views.

이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings, so that those skilled in the art can easily carry out the present invention.

도 1은 본 발명의 일 실시예에 따른 머신러닝 기반 쓰레드풀을 관리하는 컴퓨팅 장치(100)를 개략적으로 도시한 것으로, 컴퓨팅 장치(100)는 메모리(10) 및 프로세서를 포함할 수 있다. 본 발명의 방법이 컴퓨터 하드웨어 및 소프트웨어의 조합을 활용하여 구현될 것이라는 점은 통상의 기술자가 용이하게 이해할 수 있을 것이다.Figure 1 schematically depicts a computing device 100 that manages a machine learning based thread pool in accordance with one embodiment of the present invention. The computing device 100 may include a memory 10 and a processor. It will be readily appreciated by those of ordinary skill in the art that the method of the present invention will be implemented utilizing a combination of computer hardware and software.

먼저, 메모리(10)는 인스트럭션들을 저장할 수 있는데, 구체적으로, 인스트럭션들은 컴퓨팅 장치(100)로 하여금 특정의 방식으로 기능하게 하기 위한 컴퓨터 소프트웨어로서, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장될 수 있다. 인스트럭션들은 도면에 도시된 기능들을 실행하기 위한 프로세스들을 수행하는 것도 가능하다.First, the memory 10 may store instructions, in particular instructions, which are computer software for causing the computing device 100 to function in a particular manner, which may be a computer or other programmable data processing device May be stored in a computer usable or computer readable memory. It is also possible for the instructions to perform processes for executing the functions shown in the figure.

또한, 컴퓨팅 장치(100)의 프로세서(20)는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다. 프로세서(20)는 이벤트에 대응되는 학습데이터 및 학습패턴 정보를 생성하며, 이에 대해서는 뒤에서 상세한 설명을 통하여 자세하게 알아보기로 한다.The processor 20 of the computing device 100 may include a hardware configuration such as a micro processing unit (MPU) or a central processing unit (CPU), a cache memory, and a data bus. It may further include a software configuration of an operating system and an application that performs a specific purpose. The processor 20 generates learning data and learning pattern information corresponding to the event, which will be described later in detail.

이와 같은 컴퓨팅 장치(100)의 구성에 의해 머신러닝 기반 쓰레드풀을 관리하는 방법을 도 2 및 도 3을 참조하여 설명하면 다음과 같다.A method of managing a machine learning-based thread pool according to the configuration of the computing device 100 will be described with reference to FIGS. 2 and 3. FIG.

도 2 및 도 3은 컴퓨팅 장치(100)가 쓰레드풀을 관리하는 과정을 개략적으로 도시한 것이다.FIGS. 2 and 3 schematically illustrate the process by which the computing device 100 manages a thread pool.

먼저, 쓰레드 매니저(140)가 쓰레드로더(130)로 하여금 쓰레드풀을 생성하도록 하고 생성된 쓰레드들을 관리할 수 있다. 이와 같이 적어도 둘 이상의 쓰레드를 갖는 쓰레드풀이 관리되는 도중, 과거의 어느 시간 범위 내에 쓰레드 중 적어도 일부에 적어도 하나의 이벤트, 가령, 제1 이벤트가 발생했을 때 제1 이벤트에 대한 정보를 참조로 하여 생성된 기 학습데이터가 학습데이터 저장부(110)에 저장되어 관리되며, 기 학습데이터를 적어도 일부 사용하여 생성된 기 학습패턴 정보가 패턴 저장부(120)에 저장되어 관리될 수 있다. First, the thread manager 140 may cause the thread loader 130 to create a thread pool and manage the generated threads. During the management of the thread pool having at least two threads in this way, at least one event in at least a part of the threads in the past time range, for example, when the first event occurs, is generated with reference to the information about the first event The learned pattern data generated by using at least a part of the learned data may be stored in the pattern storage unit 120 and managed.

여기서, 제1 이벤트란 과거의 어느 시간 범위 내에 특정 쓰레드에 발생한 상황으로서, 쓰레드풀 내의 쓰레드 중 적어도 일부가 데이터를 읽어오는 과정에서 특정 쓰레드에 발생한 상황을 의미한다.Here, the first event refers to a situation that occurs in a specific thread within a certain time range in the past, where at least a part of the threads in the thread pool occurs in a specific thread in the process of reading data.

또한, 과거의 어느 시간 범위란 제1 이벤트가 발생한 시점 전후로 소정의 시간 범위를 의미할 수 있으나 이에 한정되는 것은 아니다.In addition, a past time range may mean a predetermined time range before or after the time when the first event occurs, but the present invention is not limited thereto.

그리고, 기 학습데이터란 과거의 어느 시간 범위 내에 발생한 제1 이벤트에 대한 정보를 참조로 하여 생성된 데이터로서, 제1 이벤트에 대한 정보에는 각 쓰레드별 할당된 데이터의 타입, 각 쓰레드별 할당된 데이터의 양, 각 쓰레드별 할당된 데이터의 출처, 제1 이벤트가 발생한 시간 정보, 제1 이벤트의 타입 및 제1 이벤트가 발생한 쓰레드 번호 중 적어도 일부가 포함될 수 있다.The first learning data is data generated with reference to the information about the first event occurring within a certain time range in the past. The information about the first event includes the type of data allocated for each thread, the data allocated to each thread The source of allocated data for each thread, the time at which the first event occurred, the type of the first event, and the thread number at which the first event occurred.

이때, 제1 이벤트가 발생한 이벤트 시간 정보는 이벤트가 발생한 연월일, 이벤트가 발생한 계절, 이벤트가 발생한 분기, 이벤트가 발생한 주, 이벤트가 발생한 요일, 이벤트가 발생한 시각에 관한 정보가 포함될 수 있으나 위 예시들에 한정되는 것은 아니다.In this case, the event time information of the first event may include information on the date and time when the event occurred, the season in which the event occurred, the branch in which the event occurred, the week in which the event occurred, the day of the week in which the event occurred, .

그리고, 제1 이벤트의 이벤트 타입에는 쓰레드불능, 쓰레드유휴, 쓰레드결핍 중 적어도 일부가 포함될 수 있다. 구체적으로, 제1 이벤트의 이벤트 타입 중 쓰레드불능이란 특정 쓰레드가 비정상 종료된 경우를 의미하고, 쓰레드유휴란 특정 쓰레드의 ready 상태가 기설정된 시간을 초과한 경우를 의미하며, 쓰레드결핍이란 특정 쓰레드의 block 상태가 기설정된 시간을 초과한 경우를 의미할 수 있다.The event type of the first event may include at least some of the thread incapability, the thread idle, and the thread incompleteness. Specifically, the thread inability of the event type of the first event means that a specific thread ends abnormally, and the thread idle means that a ready state of a specific thread exceeds a preset time. it may mean that the block state has exceeded the predetermined time.

다만, 위에서 설명한 이벤트 타입 외에, 특정 쓰레드가 기설정된 최적시간 내에 자신에게 할당된 데이터를 처리하는 경우도 제1 이벤트의 이벤트 타입에 포함될 수 있으므로, 이벤트 타입은 쓰레드불능 또는 쓰레드결핍과 같은 장애상황에 한정되는 것은 아니다.However, in addition to the above-described event types, when a specific thread processes data allocated to itself within a predetermined optimal time, it may be included in the event type of the first event. Therefore, the event type may be a failure state such as a thread incapability or a thread shortage But is not limited thereto.

그리고 기 학습데이터는 적어도 하나의 제1 메타데이터를 포함하는데, 제1 메타데이터란 기 학습데이터의 속성을 포함하는 데이터로서, 기 학습데이터의 속성에는 각 쓰레드별 할당된 데이터의 양, 각 쓰레드별 할당된 데이터의 타입, 제1 이벤트의 시간 정보, 제1 이벤트의 타입, 제1 이벤트가 발생한 이벤트 발생 쓰레드 번호에 대한 정보가 포함될 수 있으나 이에 한정되는 것은 아니다.The first learning data includes at least one first meta data. The first meta data is data including an attribute of the learning data. The attribute of the learning data includes the amount of data allocated to each thread, The type of the allocated data, the time information of the first event, the type of the first event, and the event generation thread number in which the first event occurs. However, the present invention is not limited thereto.

또한, 생성된 기 학습데이터는 학습데이터 저장부(110)에 저장되어 관리될 수 있는데, 학습데이터 저장부(110)는 컴퓨팅 장치(100)에 내장되거나, 별도의 장치로 마련될 수도 있다.The generated learning data may be stored and managed in the learning data storage unit 110. The learning data storage unit 110 may be embedded in the computing device 100 or may be provided as a separate device.

그리고 기 학습패턴 정보는 기 학습데이터를 적어도 일부 사용하여 생성될 수 있으며, 패턴 저장부(120)에 저장되어 관리될 수 있다. 패턴 저장부(120)는 학습데이터 저장부(110)와 하나로 통합될 수 있으나, 이에 한정되지 않으며, 컴퓨팅 장치(100)에 내장되거나 별도의 장치로 마련될 수도 있다.The initial learning pattern information may be generated using at least a part of the initial learning data, and may be stored and managed in the pattern storage unit 120. [ The pattern storage unit 120 may be integrated with the learning data storage unit 110, but the present invention is not limited thereto. The pattern storage unit 120 may be embedded in the computing device 100 or may be a separate device.

참고로, 기 학습데이터를 이용하여 기 학습패턴 정보를 생성하는 과정은 설명을 생략할 것인데, 이는 추후에 설명할 신규 학습데이터를 이용하여 신규 학습패턴 정보를 생성하는 과정과 유사하기 때문이다.For reference, the process of generating the initial learning pattern information using the initial learning data will be omitted because it is similar to the process of generating new learning pattern information using new learning data to be described later.

이와 같이 기 학습데이터가 학습데이터 저장부(110)에 저장되어 관리되며, 기 학습데이터를 적어도 일부 사용하여 생성된 기 학습패턴 정보가 패턴 저장부(120)에 저장되어 관리되는 상태에서, 컴퓨팅 장치(100)가, 쓰레드 중 적어도 일부로 하여금 메시지 큐의 각각 다른 위치에 접근하도록 하여 데이터를 읽어오도록 할 수 있다(S410).In the state where the initial learning data is stored and managed in the learning data storage unit 110 and the initial learning pattern information generated by using at least a part of the initial learning data is stored and managed in the pattern storage unit 120, (100) may cause at least a portion of the threads to access different locations of the message queue to read data (S410).

이에 더하여, 컴퓨팅 장치(100)는, 쓰레드 중 적어도 일부로 하여금 메시지 큐의 각각 다른 위치에 접근하여 데이터를 읽어오도록 할 때, 과거의 이벤트에 대한 학습데이터를 기반으로 특정 쓰레드에 특정 이벤트가 발생하는 상황을 줄일 수 있는 데이터 할당 양을 설정하여 데이터를 읽어오도록 할 수 있다.In addition, when the computing device 100 causes at least a portion of the threads to access each different location of the message queue to read data, the computing device 100 may determine that a particular event occurs in a particular thread based on learning data about the past event It is possible to set the amount of data allocation to reduce the amount of data to be read.

그 와중에, 적어도 하나의 특정 쓰레드에 적어도 하나의 제2 이벤트가 발생하는 경우, 상기 컴퓨팅 장치(100)는, 상기 제2 이벤트에 대한 정보를 참조로 하여 적어도 하나의 신규 학습데이터를 생성할 수 있다(S420). 이때, 제2 이벤트란 과거의 어느 시간 범위 내에 제1 이벤트가 발생한 이후에 신규 발생한 이벤트를 의미한다.Meanwhile, when at least one second event occurs in at least one specific thread, the computing device 100 may generate at least one new learning data with reference to the information about the second event (S420). Here, the second event refers to a newly generated event after the first event occurs within a certain time range of the past.

그리고, 신규 학습데이터란 신규 발생한 제2 이벤트에 대한 정보를 참조로 하여 생성된 데이터로서, 제2 이벤트에 대한 정보에는 각 쓰레드별 할당된 데이터의 타입, 각 쓰레드별 할당된 데이터의 양, 각 쓰레드별 할당된 데이터의 출처, 제2 이벤트가 발생한 시간 정보, 제2 이벤트의 타입 및 제2 이벤트가 발생한 쓰레드 번호 중 적어도 일부가 포함될 수 있다.The new learning data is data generated with reference to information about a newly generated second event. Information on the second event includes information such as the type of data allocated to each thread, the amount of data allocated to each thread, The source of the allocated data, the time at which the second event occurred, the type of the second event, and the thread number at which the second event occurred.

이때, 제2 이벤트가 발생한 이벤트 시간 정보는 이벤트가 발생한 연월일, 이벤트가 발생한 계절, 이벤트가 발생한 분기, 이벤트가 발생한 주, 이벤트가 발생한 요일, 이벤트가 발생한 시각에 관한 정보가 포함될 수 있으나 위 예시들에 한정되는 것은 아니다.In this case, the event time information of the second event may include information on the date and time when the event occurred, the season in which the event occurred, the branch in which the event occurred, the week in which the event occurred, the day of the week in which the event occurred, .

그리고, 제2 이벤트의 이벤트 타입에는 쓰레드불능, 쓰레드유휴, 쓰레드결핍 중 적어도 일부가 포함될 수 있다. 구체적으로, 제2 이벤트의 이벤트 타입 중 쓰레드불능이란 특정 쓰레드가 비정상 종료된 경우를 의미하고, 쓰레드유휴란 특정 쓰레드의 ready 상태가 기설정된 시간을 초과한 경우를 의미하며, 쓰레드결핍이란 특정 쓰레드의 block 상태가 기설정된 시간을 초과한 경우를 의미할 수 있다.The event type of the second event may include at least a part of the thread incapability, the thread idle, and the thread incompleteness. Specifically, a thread inability of the event type of the second event means a case where a specific thread abnormally terminates, and a thread idle means that a ready state of a specific thread exceeds a preset time. it may mean that the block state has exceeded the predetermined time.

다만, 위에서 설명한 이벤트 타입 외에, 특정 쓰레드가 기설정된 최적시간 내에 자신에게 할당된 데이터를 처리하는 경우도 제2 이벤트의 이벤트 타입에 포함될 수 있으므로, 이벤트 타입은 쓰레드불능 또는 쓰레드결핍과 같은 장애상황에 한정되는 것은 아니다.However, in addition to the above-described event types, when a specific thread processes data assigned to itself within a predetermined optimal time, it may be included in the event type of the second event. Therefore, the event type may be a failure state such as a thread incapability or a thread shortage But is not limited thereto.

그리고, 신규 학습데이터는 신규 학습데이터의 속성을 제2 메타데이터로서 포함한다. 신규 학습데이터의 속성에는 각 쓰레드별 할당된 데이터의 양, 각 쓰레드별 할당된 데이터의 타입, 제2 이벤트의 이벤트 시간 정보, 제2 이벤트의 이벤트 타입, 제2 이벤트가 발생한 이벤트 발생 쓰레드 번호에 대한 정보 중 적어도 일부가 포함될 수 있으나 이에 한정되는 것은 아니다.The new learning data includes the attribute of the new learning data as the second metadata. The attributes of the new learning data include the amount of data allocated to each thread, the type of data assigned to each thread, the event time information of the second event, the event type of the second event, At least some of the information may be included, but is not limited thereto.

그리고, 컴퓨팅 장치(100)가, 신규 학습데이터를 기 학습데이터와 비교한 결과, 신규 학습데이터 중에서 제2 메타데이터가 제1 조건을 만족하는 적어도 하나의 신규 학습데이터가 존재하는 경우, 해당 신규 학습데이터를 특정 신규 학습데이터로서 학습데이터 저장부(110)에 저장할 수 있다(S430).When at least one new learning data satisfying the first condition exists in the second learning data among the new learning data as a result of the new learning data being compared with the new learning data, Data may be stored in the learning data storage unit 110 as specific new learning data (S430).

일 예로, 제1 조건은 제1 메타데이터의 이벤트 시간 정보, 이벤트 타입 및 이벤트 발생 쓰레드 번호와 제2 메타데이터의 이벤트 시간 정보, 이벤트 타입 및 이벤트 발생 쓰레드 번호가 모두 매칭되는 조건임을 의미할 수도 있다.For example, the first condition may mean that the event time information of the first metadata, the event type, the event generation thread number, the event time information of the second metadata, the event type, and the event generation thread number are all matched .

다른 예로, 제1 조건은 제1 메타데이터의 이벤트 시간 정보, 이벤트 타입 및 이벤트 발생 쓰레드 번호의 부분집합 및 제2 메타데이터의 이벤트 시간 정보, 이벤트 타입 및 이벤트 발생 쓰레드 번호의 부분집합이 동일한 경우, 부분집합을 구성하는 적어도 하나의 특정 속성의 조합별로 매칭되는 조건임을 의미할 수도 있다.In another example, the first condition is that if a subset of the event metadata of the first metadata, a subset of the event type and event generation thread number, and event time information of the second metadata, the event type and the event generation thread number are the same, It may mean that the condition is matched according to a combination of at least one specific attribute constituting the subset.

또 다른 예로, 제1 조건은 제1 메타데이터의 이벤트 시간 정보 및 이벤트 타입과 제2 메타데이터의 이벤트 시간 정보 및 이벤트 타입이 모두 매칭되는 조건임을 의미할 수 있다.As another example, the first condition may mean that the event time information of the first metadata, the event time information of the second metadata, and the event type are both matched.

또 다른 예로, 제1 조건은 제1 메타데이터의 이벤트 시간 정보, 이벤트 타입의 부분집합 및 제2 메타데이터의 이벤트 시간 정보, 이벤트 타입의 부분집합이 동일한 경우, 부분집합을 구성하는 적어도 하나의 특정 속성의 조합별로 매칭되는 조건임을 의미할 수도 있다.As another example, the first condition may include event time information of the first metadata, a subset of the event type and event time information of the second metadata, and a case where the subtype of the event type is the same, It can also mean that the condition is matched by the combination of attributes.

한편, 제1 메타데이터의 이벤트 시간 정보와 제2 메타데이터의 이벤트 시간 정보의 차이가 임계 범위 내인 경우, 이벤트 시간 정보가 매칭된 것으로 볼 수도 있다.On the other hand, when the difference between the event time information of the first metadata and the event time information of the second metadata is within the threshold range, the event time information may be regarded as being matched.

일 예로, 임계 범위를 30초라고 할 때, 이벤트 시간 정보 중 이벤트가 발생한 시각에 관한 정보에 있어, 제1 메타데이터에 포함된 제1 이벤트가 발생한 시각에 관한 정보(7시30분10초)와 제2 메타데이터에 포함된 제2 이벤트가 발생한 시각에 관한 정보(7시30분 27초)의 시각 차이가 30초 이내이므로, 제1 메타데이터의 제1 이벤트 시간 정보와 제2 메타데이터의 제2 이벤트 시간 정보가 매칭된 것으로 볼 수 있다.For example, when the threshold range is 30 seconds, information (7:30:10) regarding the time at which the first event included in the first metadata occurs in the information about the time at which the event occurred in the event time information, And the time difference between the time when the second event included in the second metadata occurs (7:30:27) is less than 30 seconds, the first event time information of the first metadata and the second metadata It can be seen that the second event time information is matched.

그리고, 컴퓨팅 장치(100)는, 기 학습데이터 중에서 특정 신규 학습데이터와 매칭되는 적어도 하나의 특정 기 학습데이터의 누적 데이터가 제2 조건을 만족하면, 특정 학습패턴 정보를 생성하여 패턴 저장부(120)에 저장할 수 있다(S440). 이때, 제2 조건은 특정 신규 학습데이터와 매칭되는 적어도 하나의 특정 기 학습데이터의 누적 데이터가 기설정된 수치를 만족하는 조건일 수 있다.When the cumulative data of at least one specific learning data matched with the specific new learning data in the initial learning data satisfies the second condition, the computing device 100 generates the specific learning pattern information and stores it in the pattern storage unit 120 (S440). At this time, the second condition may be a condition that the cumulative data of at least one specific learning data matched with the specific new learning data satisfies a preset numerical value.

일 예로, 기설정된 수치를 2라고 할 때, 특정 신규 학습데이터와 매칭되는 적어도 하나의 특정 기 학습데이터의 누적 데이터가 1개 존재한다면 기설정된 수치인 2를 만족하지 못하므로, 컴퓨팅 장치(100)가, 특정 학습패턴 정보를 생성하지 않을 수 있다.For example, assuming that the predetermined value is 2, if there is one accumulated data of at least one specific learning data matched with the specific new learning data, the computing device 100 can not satisfy the predetermined value of 2, May not generate specific learning pattern information.

다른 예로, 기설정된 수치를 2라고 할 때, 특정 신규 학습데이터와 매칭되는 적어도 하나의 특정 기 학습데이터의 누적 데이터가 2개 존재한다면 기설정된 수치인 2를 만족하므로, 컴퓨팅 장치(100)가, 특정 학습패턴 정보를 생성하여 패턴 저장부(120)에 저장할 수 있다.As another example, assuming that the predetermined value is 2, if the cumulative data of at least one specific learning data matched with the specific new learning data exists, Specific learning pattern information can be generated and stored in the pattern storage unit 120. [

또한, 제2 조건을 만족한 후, 상기 컴퓨팅 장치(100)가, 상기 특정 기 학습데이터의 상기 누적 데이터가 상기 기설정된 수치를 초과한 정도를 판단하여, 상기 패턴 저장부(120)에 저장된 상기 특정 학습패턴 정보에 대응되는 패턴 강도 정보를 저장하고, 상기 특정 학습패턴 정보 및 이에 대응되는 상기 패턴 강도 정보를 참조로 하여 쓰레드풀을 관리할 수도 있다.After the second condition is satisfied, the computing device (100) determines the degree to which the cumulative data of the specific pattern learning data exceeds the predetermined value, The pattern strength information corresponding to the specific learning pattern information may be stored and the thread pool may be managed with reference to the specific learning pattern information and the pattern intensity information corresponding thereto.

이때, 특정 기 학습데이터의 누적 데이터가 기설정된 수치를 만족하면 특정 학습패턴 정보가 생성될 수 있으므로, 컴퓨팅 장치(100)는, 특정 기 학습데이터의 누적 데이터가 기설정된 수치를 초과하는 정도에 따라 특정 학습패턴에 대응되는 패턴 강도 정보를 달리하여 저장할 수 있다.At this time, since the specific learning pattern information can be generated when the cumulative data of the specific-period learning data satisfies the preset numerical value, the computing device 100 can calculate the predetermined learning pattern information based on the degree to which the cumulative data of the specific- Pattern intensity information corresponding to a specific learning pattern can be stored differently.

일 예로, 기설정된 수치를 2라고 할 때, 기 학습데이터 중에서 제1 특정 기 학습데이터의 누적 데이터가 5개이고 제2 특정 기 학습데이터의 누적 데이터가 20개인 경우, 제1 특정 기 학습데이터의 누적 데이터가 기설정된 수치를 초과한 정도보다 제2 특정 기 학습데이터의 누적 데이터가 기설정된 수치를 초과한 정도가 더 크다. 기설정된 수치를 초과한 정도가 클 경우, 컴퓨팅 장치(100)는 제1 특정 기 학습데이터에 대응되는 이벤트보다 제2 특정 기 학습데이터에 대응되는 이벤트에 가중치를 부여하고, 상기 가중치를 참조로 하여, 특정 상황에 대해 대비를 할 수 있다.For example, when the predetermined number is 2 and cumulative data of the first specific learning data is 5 and cumulative data of the second specific learning data is 20 among the initial learning data, accumulation of the first specific learning data The degree to which the cumulative data of the second specific learning data exceeds the predetermined value is greater than the degree to which the data exceeds the predetermined value. When the degree of exceeding the predetermined value is large, the computing device 100 assigns a weight to an event corresponding to the second specific learning data, rather than an event corresponding to the first specific learning data, , You can prepare for specific situations.

다른 예로, 컴퓨팅 장치(100)는, 기 학습데이터의 제1 메타데이터에 포함될 수 있는 제1 이벤트 시간 정보를 참조하여, 특정 시간 범위에 생성된 기 학습데이터 중에서 특정 신규 학습 데이터와 매칭되는 적어도 하나의 특정 기 학습데이터의 누적 데이터가 기설정된 수치를 만족하면, 상기 누적 데이터가 기설정된 수치를 초과한 정도를 판단하여 패턴 저장부(120)에 저장된 특정 학습패턴 정보에 대응되는 패턴 강도 정보를 저장하고, 특정 시간 범위에서 특정 학습패턴 정보에 가중치를 부여하고, 상기 가중치를 참조로 하여, 특정 상황에 대해 대비를 할 수 있다.As another example, the computing device 100 refers to the first event time information that can be included in the first meta data of the learned learning data, and generates at least one The pattern intensity information corresponding to the specific learning pattern information stored in the pattern storage unit 120 is stored in the pattern storage unit 120. In this case, And assigns weights to specific learning pattern information within a specific time range, and can prepare for specific situations with reference to the weights.

그리고, 소정의 쿼리가 획득되면, 컴퓨팅 장치(100)가, 소정의 쿼리를 특정 학습패턴 정보에 대응되는 메타데이터 중 적어도 일부와 매칭하고(S450), 메타데이터 중 적어도 일부와 매칭한 결과를 참조로 하여 쓰레드풀을 관리할 수 있다(S460).Then, when a predetermined query is obtained, the computing device 100 matches the predetermined query with at least a part of the meta data corresponding to the specific learning pattern information (S450), and refers to a result matching with at least a part of the meta data To manage the thread pool (S460).

구체적으로, 쿼리는 현재 시각 전후로 소정의 시간 범위 내에 발생하는 이벤트에 대해 대비하기 위해 이용된다. 일 예로, 현재 시각에 대응되는 쿼리가 생성되면, 컴퓨팅 장치(100)가 현재 시각에 대응되는 쿼리를 획득하고, 특정 학습패턴 정보에 대응되는 메타데이터와 매칭하여, 상기 메타데이터가 포함하는 이벤트 발생 시각이 상기 쿼리에 대응되는 현재 시각 전후로 소정의 시간 범위 내에 있을 경우, 특정 학습패턴 정보에 대응되는 메타데이터와 매칭한 결과를 참조하여 쓰레드풀을 관리할 수 있다. 쓰레드풀을 관리하는 구체적인 방법에 대해서는 도 4, 도 5, 도 6을 참조하여 후술한다.Specifically, the query is used to prepare for events occurring within a predetermined time range before and after the current time. For example, when a query corresponding to the current time is generated, the computing device 100 acquires a query corresponding to the current time, matches the meta data corresponding to the specific learning pattern information, When the time is within a predetermined time range before or after the current time corresponding to the query, the thread pool can be managed with reference to the result matched with the metadata corresponding to the specific learning pattern information. A specific method of managing the thread pool will be described later with reference to FIGS. 4, 5, and 6. FIG.

그리고, 컴퓨팅 장치(100)는, 기 학습데이터의 제1 메타데이터와 신규 학습데이터의 제2 메타데이터를 비교하여, 기 학습데이터의 제1 메타데이터에 포함될 수 있는 제1 내지 제n 속성과 신규 학습데이터의 제2 메타데이터에 포함될 수 있는 제1 내지 제n 속성이 모두 동일하다면 제1 조건이 만족된 것으로 판단할 수 있고, 상기 기 학습데이터의 누적 데이터가 제2 조건을 만족하는지 판단할 수 있다.Then, the computing device 100 compares the first meta data of the learning data with the second meta data of the new learning data, and compares the first to nth attributes that can be included in the first meta data of the learning data, If all of the first to nth attributes included in the second meta data of the learning data are the same, it can be determined that the first condition is satisfied, and it is possible to judge whether the accumulated data of the learned data satisfies the second condition have.

일 예로, 제1 메타데이터의 제1 속성은 이벤트 시간 정보(09시 22분 15초), 제2 속성은 이벤트 타입(쓰레드불능), 제3 속성은 이벤트 발생 쓰레드 번호(제6 쓰레드)이고, 제2 메타데이터의 제1 속성은 이벤트 시간 정보(09시 22분 9초), 제2 속성은 이벤트 타입(쓰레드불능), 제3 속성은 이벤트 발생 쓰레드 번호(제 6 쓰레드)라고 하면, 이벤트 시간 정보의 차이에 대응되는 임계 범위를 10초라고 할 때, 제1 메타데이터의 이벤트 시간 정보와 제2 메타데이터의 이벤트 시간 정보의 차이가 6초로서 임계 범위 내이므로 이벤트 시간 정보가 매칭된 것으로 볼 수 있다. 따라서 제1 메타데이터의 속성 및 제2 메타데이터의 속성은 모두 동일하므로 제1 조건이 만족된 것으로 판단할 수 있고, 컴퓨팅 장치(100)는, 다음 단계로서, 상기 기 학습데이터의 누적 데이터가 제2 조건을 만족하는지 판단할 수 있다.For example, the first attribute of the first metadata is the event time information (09:22:15), the second attribute is the event type (thread unavailability), the third attribute is the event occurrence thread number (sixth thread) If the first attribute of the second metadata is the event time information (09:22:9), the second attribute is the event type (thread disabled), and the third attribute is the event occurrence thread number (sixth thread) The difference between the event time information of the first metadata and the event time information of the second metadata is 6 seconds, which is within the threshold range, so that the event time information is matched . Accordingly, it is possible to determine that the first condition is satisfied, because the attributes of the first metadata and the attributes of the second metadata are all the same, and the computing device 100, as the next step, 2 condition is satisfied.

또한, 컴퓨팅 장치(100)는, 기 학습데이터의 제1 메타데이터와 신규 학습데이터의 제2 메타데이터를 비교하여, i) 기 학습데이터의 제1 메타데이터에 포함될 수 있는 제1 내지 제n 속성의 부분집합 및 제2 메타데이터에 포함될 수 있는 제1 내지 제n 속성의 부분집합이 동일하고, ii) 제1 내지 제n 속성 전체에서 부분집합을 구성하는 특정 속성의 비율이 임계치를 초과할경우, 제1 조건이 만족된 것으로 판단할 수 있고, 부분집합을 구성하는 적어도 하나의 특정 속성의 조합별로 신규 학습데이터와 매칭되는 기 학습데이터의 누적 데이터가 제2 조건을 만족하는지 판단할 수 있다.In addition, the computing device 100 compares the first meta data of the learned learning data with the second meta data of the new learning data to compare the first meta data of the first learning data with the first meta data of the first learning data, And the subset of the first to n-th attributes that can be included in the second metadata are the same, and ii) if the ratio of the specific attribute constituting the subset in all of the first to nth attributes exceeds the threshold value , It can be determined that the first condition is satisfied and it can be determined whether cumulative data of the old learning data matching the new learning data for each combination of at least one specific attribute constituting the subset satisfies the second condition.

일 예로, 제1 메타데이터의 제1 속성은 이벤트 시간 정보(09시 22분 45초), 제2 속성은 이벤트 타입(쓰레드결핍), 제3 속성은 이벤트 발생 쓰레드 번호(제6 쓰레드)이고, 제2 메타데이터의 제1 속성은 이벤트 시간 정보(09시 22분 9초), 제2 속성은 이벤트 타입(쓰레드불능), 제3 속성은 이벤트 발생 쓰레드 번호(제 6 쓰레드)라고 하고, 이벤트 시간 정보의 차이에 대응되는 임계 범위는 60초라고 할 때, 제1 메타데이터의 이벤트 시간 정보와 제2 메타데이터의 이벤트 시간 정보의 차이가 35초로서 임계 범위 내에 해당한다. 또한, 제1 메타데이터의 제1 내지 제3 속성 및 제2 메타데이터의 제1 내지 제3 속성 중 동일한 속성의 부분집합은 제1 속성 및 제3 속성이 되고, 제1 내지 제3 속성 중 제1 및 제3 속성의 비율은 66%로서 기설정된 임계치인 가령 60%를 초과하게 되므로, 컴퓨팅 장치(100)는, 제1 조건이 만족된 것으로 판단할 수 있고, 제1 속성 및 제3 속성의 조합별로 신규 학습데이터와 매칭되는 기 학습데이터의 누적 데이터가 제2 조건을 만족하는지 판단할 수 있다.For example, the first attribute of the first metadata is the event time information (09:22:45), the second attribute is the event type (thread deficit), the third attribute is the event occurrence thread number (sixth thread) The first attribute of the second metadata is event time information (09:22:9), the second attribute is an event type (thread disabled), the third attribute is an event occurrence thread number (sixth thread) Assuming that the threshold range corresponding to the information difference is 60 seconds, the difference between the event time information of the first metadata and the event time information of the second metadata is 35 seconds and falls within the critical range. The first to third attributes of the first metadata and the first to third attributes of the second metadata are a first attribute and a third attribute, 1 and the third attribute exceeds 66%, which is a predetermined threshold value, for example, 60%, the computing device 100 can determine that the first condition is satisfied and the first attribute and the third attribute It is possible to judge whether the accumulated data of the old learning data matched with the new learning data for each combination satisfies the second condition.

그리고, 생성된 특정 학습패턴 정보와 동일 또는 유사한 제3 이벤트가 발생하면, 상기 컴퓨팅 장치(100)가, (i) 상기 쓰레드불능 또는 상기 쓰레드유휴가 발생한 쓰레드가 제m 쓰레드(410)인 경우, 상기 링크드리스트 구조를 이용하여, 상기 제m 쓰레드(410)에 연결된 상기 파이프를 제거하고 제m-1 쓰레드(400)와 제m+1 쓰레드(420)를 연결하는 상기 파이프를 생성하며, (ii) 상기 쓰레드결핍이 발생한 쓰레드가 제p 쓰레드인 경우, 상기 링크드리스트 구조를 이용하여, 제n 쓰레드(600)와 제n+1 쓰레드(620)를 연결하는 상기 파이프를 제거하고, 신규 쓰레드(610)를 생성하여 상기 제n 쓰레드(600)와 상기 신규 쓰레드(610), 상기 신규 쓰레드(610)와 상기 제n+1 쓰레드(620)를 연결하는 상기 파이프를 생성한다.When a third event that is the same as or similar to the generated specific learning pattern information occurs, the computing device 100 determines whether the thread in which the thread incapability or the thread idle occurs is the mth thread 410, The pipeline that connects the (m + 1) th thread 400 and the (m + 1) th thread 420 is created by removing the pipe connected to the mth thread 410 using the linked list structure, If the thread in which the thread deficiency occurs is a pth thread, the pipe connecting the nth thread 600 and the (n + 1) th thread 620 is removed using the linked list structure, and the new thread 610 ) To generate the pipe connecting the nth thread 600 with the new thread 610, the new thread 610, and the (n + 1) th thread 620.

구체적으로, 제3 이벤트는 상기 제1 이벤트 및 제2 이벤트와 독립된 이벤트를 의미하며, 제2 이벤트 이후에 발생할 수 있으나 이에 한정되는 것은 아니다. 또한, 제3 이벤트에 대한 정보는 기존에 생성된 특정 학습패턴 정보와 동일 또는 유사하므로, 컴퓨팅 장치(100)는 기존에 생성된 특정 학습패턴 정보를 참조하여 쓰레드풀을 관리할 수 있으며, 특정 학습패턴 정보에 대응되는 패턴 강도 정보를 추가로 참조하여 쓰레드풀을 관리할 수 있다.Specifically, the third event means an event independent of the first event and the second event, and may occur after the second event, but the present invention is not limited thereto. In addition, since the information on the third event is the same as or similar to the specific learning pattern information generated in the past, the computing device 100 can manage the thread pool by referring to the specific learning pattern information generated in the past, The thread pool can be managed by further referring to the pattern strength information corresponding to the pattern information.

쓰레드풀을 관리하는 방법은 도 4, 도 5, 도 6을 참조하여 구체적으로 설명한다.The method of managing the thread pool will be described in detail with reference to FIGS. 4, 5, and 6. FIG.

먼저, 쓰레드풀 내의 적어도 둘 이상의 쓰레드들은 소정의 순서를 가지고 파이프로 연결되는 링크드리스트 구조일 수 있다. 쓰레드는 메시지 큐에 접근하여 데이터를 읽어오면서, 쓰레드 각각이 어디까지 데이터를 읽어왔는지에 대한 데이터 주소 정보를 각각의 쓰레드가 파이프를 통하여 공유할 수 있다.First, at least two threads in the thread pool may be linked-list structures that are piped in a predetermined order. A thread accesses a message queue to read data, and each thread can share data address information about how far each thread has read data through a pipe.

그리고, 도 4를 참조하면, 제m 쓰레드(410)에 쓰레드불능 또는 쓰레드유휴가 발생한 경우, 컴퓨팅 장치(100)는, 제m 쓰레드(410)와 제m-1 쓰레드(400)를 연결하는 파이프, 제m 쓰레드(410)와 제m+1 쓰레드(420)를 연결하는 파이프를 제거하고 제m-1 쓰레드(400)와 제m+1 쓰레드(420)를 연결하는 파이프를 생성할 수 있다.4, when the thread m is inaccessible or the thread idle occurs in the mth thread 410, the computing device 100 transmits a pipe connecting the mth thread 410 and the m-1th thread 400 , The pipe connecting the mth thread 410 and the (m + 1) th thread 420 may be removed and a pipe connecting the (m-1) th thread 400 and the (m + 1) th thread 420 may be created.

이때, 쓰레드불능 또는 쓰레드유휴가 발생한 제m 쓰레드에 연결된 파이프를 제거하고 나머지 쓰레드만으로 데이터를 처리하더라도, 위에서 밝힌 바와 같이 제m 쓰레드가 어디까지 데이터를 읽어왔는지에 대한 데이터 주소 정보를 타 쓰레드가 파이프를 통하여 공유하고 있으므로 데이터의 손실이 일어나지 않게 된다.At this time, even if the pipe connected to the mth thread in which the thread is disabled or the thread idle occurs is removed and the data is processed only by the remaining threads, the data address information about the extent to which the mth thread has read data, So that data loss does not occur.

그리고, 도 5를 참조하면, 쓰레드불능이 발생한 제m 쓰레드(410)가 복구되면, 컴퓨팅 장치(100)는, 제m-1 쓰레드(400)와 제m+1 쓰레드(420)를 연결하는 파이프를 제거하고 제m 쓰레드(410)와 제m-1 쓰레드(400)를 연결하는 파이프 및 제m 쓰레드(410)와 제m+1 쓰레드(420)를 연결하는 파이프를 생성할 수 있다.5, when the mth thread 410 in which the thread is disabled is restored, the computing device 100 may store the thread connecting the (m + 1) th thread 420 and the (m + The pipe connecting the mth thread 410 and the (m-1) th thread 400 and the pipe connecting the mth thread 410 and the (m + 1) th thread 420 can be created.

그리고, 도 6을 참조하여 쓰레드결핍이 발생하는 경우를 설명하면, 제p 쓰레드에 쓰레드결핍이 발생하면, 컴퓨팅 장치(100)는, 제n 쓰레드(600)와 제n+1 쓰레드(620)를 연결하는 파이프를 제거하고, 신규 쓰레드(610)를 생성하여 신규 쓰레드(610)와 제n 쓰레드(600)를 연결하는 파이프 및 신규 쓰레드(610)와 제n+1 쓰레드(620)를 연결하는 파이프를 생성할 수 있다. 이때, 제p 쓰레드와 제n 쓰레드(600)는 다른 쓰레드일 수 있으나 이에 한정되는 것은 아니다.6, when a thread deficiency occurs in the pth thread, the computing device 100 calculates the nth thread 600 and the (n + 1) th thread 620 A pipe for connecting the new thread 610 and the nth thread 600 and a pipe for connecting the new thread 610 and the (n + 1) th thread 620 by removing the connecting pipe, creating a new thread 610, Lt; / RTI > At this time, the pth thread and the nth thread 600 may be different threads, but are not limited thereto.

이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The embodiments of the present invention described above can be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer-readable recording medium. The computer-readable recording medium may include program commands, data files, data structures, and the like, alone or in combination. The program instructions recorded on the computer-readable recording medium may be those specially designed and constructed for the present invention or may be those known and used by those skilled in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those generated by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa.

이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, Those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be construed as being limited to the above-described embodiments, and all of the equivalents or equivalents of the claims, as well as the following claims, I will say.

Claims (20)

머신러닝 기반 쓰레드풀을 관리하는 방법에 있어서,
(a) 적어도 둘 이상의 쓰레드를 갖는 쓰레드풀이 관리되고, 과거의 어느 시간 범위 내에 상기 쓰레드 중 적어도 일부에 적어도 하나의 제1 이벤트가 발생했을 때 상기 제1 이벤트에 대한 정보를 참조로 하여 생성된 기 학습데이터 - 상기 기 학습데이터는 적어도 하나의 제1 메타데이터를 포함함 - 가 학습데이터 저장부에 저장되어 관리되며, 상기 기 학습데이터를 적어도 일부 사용하여 생성된 기 학습패턴 정보가 패턴 저장부에 저장되어 관리되는 상태에서, 컴퓨팅 장치가, 상기 쓰레드 중 적어도 일부로 하여금 메시지 큐의 각각 다른 위치에 접근하도록 하여 데이터를 읽어오는 과정에서, 적어도 하나의 특정 쓰레드에 적어도 하나의 제2 이벤트가 발생하는 경우 상기 제2 이벤트에 대한 정보를 참조로 하여, 적어도 하나의 신규 학습데이터 - 상기 신규 학습데이터는 적어도 하나의 제2 메타데이터를 포함함 - 를 생성하는 단계;
(b) 상기 컴퓨팅 장치가, 상기 신규 학습데이터를 상기 기 학습데이터와 비교한 결과, 상기 신규 학습데이터 중에서 상기 제2 메타데이터가 제1 조건을 만족하는 적어도 하나의 특정 신규 학습데이터를 상기 학습데이터 저장부에 저장하고, 상기 기 학습데이터 중에서 상기 특정 신규 학습데이터와 매칭되는 적어도 하나의 특정 기 학습데이터의 누적 데이터가 제2 조건을 만족하면, 적어도 하나의 특정 학습패턴 정보를 생성하여 상기 패턴 저장부에 저장하는 단계; 및
(c) 소정의 쿼리(query)가 획득되면, 상기 컴퓨팅 장치가, 상기 소정의 쿼리를 상기 특정 학습패턴 정보에 대응되는 상기 메타데이터 중 적어도 일부와 매칭한 결과를 참조로 하여, 상기 쓰레드풀을 관리하는 단계;
를 포함하는 것을 특징으로 하는 방법.
1. A method for managing a machine learning based thread pool,
(a) a thread pool having at least two threads is managed, and when at least one first event occurs in at least a part of the threads within a past time range, Learning data - the first learning data includes at least one first meta data - is stored and managed in a learning data storage unit, and the learning pattern information generated by using at least a part of the learning data is stored in a pattern storage unit In a state where the computing device stores and manages at least one second event in at least one specific thread in the process of reading data by causing at least a portion of the threads to access different locations of the message queue, With reference to the information about the second event, at least one new learning data, S data including at least a second metadata-generating;
(b) when the computing device compares the new learning data with the primary learning data, at least one specific new learning data in which the second metadata satisfies the first condition among the new learning data, When the accumulated data of at least one specific learning data matched with the specific new learning data in the learning data satisfies the second condition, generates at least one specific learning pattern information and stores the pattern storage ; And
(c) when a predetermined query is obtained, the computing device refers to a result of matching the predetermined query with at least a part of the meta data corresponding to the specific learning pattern information, Managing;
≪ / RTI >
제1항에 있어,
상기 메타데이터가, 제1 내지 제n 속성을 포함할 때,
상기 (b) 단계에서, 상기 컴퓨팅 장치가, 상기 기 학습데이터의 상기 제1 메타데이터와 상기 신규 학습데이터의 상기 제2 메타데이터를 비교하여, 상기 제1 메타데이터의 상기 제1 내지 제n 속성의 부분집합 및 상기 제2 메타데이터의 상기 제1 내지 제n 속성의 부분집합이 동일한 경우, 상기 부분집합을 구성하는 적어도 하나의 특정 속성의 조합(combination)별로 상기 신규 학습데이터와 매칭되는 상기 기 학습데이터가 상기 제2 조건을 만족하는지 판단하는 것을 특징으로 하는 방법.
The method of claim 1,
When the metadata includes the first through the n-th attributes,
In the step (b), the computing device compares the first meta data of the learned learning data with the second meta data of the new learning data, and stores the first through n-th attributes Matching the new learning data with a combination of at least one specific attribute constituting the subset if the subset of the first metadata and the first to nth attributes of the second metadata are identical, And determines whether the learning data satisfies the second condition.
제1항에 있어서,
상기 제2 조건은 상기 특정 기 학습데이터의 상기 누적 데이터가 기설정된 수치를 만족하는 조건이며,
상기 (b) 단계에서,
상기 제2 조건을 만족한 후, 상기 컴퓨팅 장치가, 상기 특정 기 학습데이터의 상기 누적 데이터가 상기 기설정된 수치를 초과한 정도를 판단하여, 상기 패턴 저장부에 저장된 상기 특정 학습패턴 정보에 대응되는 패턴 강도 정보를 저장하고,
상기 (c) 단계에서,
상기 컴퓨팅 장치가, 상기 특정 학습패턴 정보 및 이에 대응되는 상기 패턴 강도 정보를 참조로 하여, 상기 쓰레드풀을 관리하는 것을 특징으로 하는 방법.
The method according to claim 1,
Wherein the second condition is a condition that the cumulative data of the specific learning data satisfies a predetermined value,
In the step (b)
The computing device determines the degree to which the cumulative data of the specific pattern learning data exceeds the predetermined value and stores the pattern information corresponding to the specific pattern information stored in the pattern storage Storing pattern intensity information,
In the step (c)
Wherein the computing device manages the thread pool with reference to the specific learning pattern information and the pattern intensity information corresponding thereto.
제1항에 있어서,
상기 쓰레드는 소정의 순서를 가지고 파이프로 연결되는 링크드리스트 구조로서, 상기 컴퓨팅 장치가, 상기 쓰레드로 하여금 상기 쓰레드 각각이 읽고 있는 상기 메시지 큐의 상기 각각 다른 위치의 주소 정보를 상기 쓰레드 각각이 상기 링크드리스트 구조의 상기 파이프를 통해 공유하도록 하는 것을 특징으로 하는 방법.
The method according to claim 1,
Wherein the threads are linked by pipes in a predetermined order, wherein the computing device is operable to cause the threads to provide address information of the respective different locations of the message queues being read by the threads, And sharing through the pipe of the list structure.
제4항에 있어서,
상기 제1 이벤트 및 상기 제2 이벤트는 쓰레드불능, 쓰레드유휴, 쓰레드결핍 중 적어도 일부를 포함하며, 상기 컴퓨팅 장치가, (i) 상기 쓰레드불능 또는 상기 쓰레드유휴가 제m 쓰레드에 발생한 경우, 상기 링크드리스트 구조를 이용하여, 상기 제m 쓰레드에 연결된 상기 파이프를 제거하고 제m-1 쓰레드와 제m+1 쓰레드를 연결하는 상기 파이프를 생성하며, 상기 쓰레드 불능이 발생한 제m 쓰레드가 복구되면, 상기 제m-1 쓰레드와 상기 제m+1 쓰레드를 연결하는 상기 파이프를 제거하고 상기 제m-1쓰레드와 상기 제m 쓰레드, 상기 제m 쓰레드와 상기 제m+1 쓰레드를 연결하는 상기 파이프를 생성하며, (ii) 상기 쓰레드결핍이 제p 쓰레드에 발생한 경우, 상기 링크드리스트 구조를 이용하여, 제n 쓰레드와 제n+1 쓰레드를 연결하는 상기 파이프를 제거하고, 신규 쓰레드를 생성하여 상기 제n 쓰레드와 상기 신규 쓰레드, 상기 신규 쓰레드와 상기 제n+1 쓰레드를 연결하는 상기 파이프를 생성하는 것을 특징으로 하는 방법.
5. The method of claim 4,
Wherein the first event and the second event include at least some of thread incapability, thread idle, and thread depletion, and wherein the computing device is configured to: (i) if the thread unavailability or the thread idle occurs in an mth thread, Thread is connected to the (m + 1) -th thread by removing the pipe connected to the m-th thread by using the list structure, and when the m-th thread in which the thread is disabled is restored, The pipe connecting the (m-1) th thread and the (m + 1) th thread is removed and the pipe connecting the (m-1) th thread and the mth thread, the mth thread and the And (ii) when the thread deficiency occurs in the pth thread, the pipe connecting the nth thread and the (n + 1) th thread is removed using the linked list structure, Thread to create the pipe connecting the nth thread, the new thread, the new thread, and the (n + 1) th thread.
제4항에 있어서,
(d) 상기 특정 학습패턴 정보와 동일 또는 유사한 제3 이벤트 - 상기 제3 이벤트는 쓰레드불능, 쓰레드유휴, 쓰레드결핍 중 적어도 일부를 포함함 - 가 발생하면, 상기 컴퓨팅 장치가, (i) 상기 쓰레드불능 또는 상기 쓰레드유휴가 발생한 쓰레드가 제m 쓰레드인 경우, 상기 링크드리스트 구조를 이용하여, 상기 제m 쓰레드에 연결된 상기 파이프를 제거하고 제m-1 쓰레드와 제m+1 쓰레드를 연결하는 상기 파이프를 생성하며, (ii) 상기 쓰레드결핍이 발생한 쓰레드가 제p 쓰레드인 경우, 상기 링크드리스트 구조를 이용하여, 제n 쓰레드와 제n+1 쓰레드를 연결하는 상기 파이프를 제거하고, 신규 쓰레드를 생성하여 상기 제n 쓰레드와 상기 신규 쓰레드, 상기 신규 쓰레드와 상기 제n+1 쓰레드를 연결하는 상기 파이프를 생성하는 것을 특징으로 하는 방법.
5. The method of claim 4,
(d) if a third event that is the same as or similar to the specific learning pattern information - the third event, comprises at least some of thread incapability, thread idle, or thread depletion, the computing device: (i) 1 thread and the (m + 1) th thread are connected to each other by using the linked list structure to remove the pipe connected to the mth thread and to connect the (m-1) th thread and the (m + (Ii) removing the pipe connecting the nth thread and the (n + 1) th thread by using the linked list structure when the thread in which the thread deficit occurs is a pth thread, And said pipe connecting said nth thread, said new thread, said new thread, and said (n + 1) th thread.
제1항에 있어서,
상기 (a) 단계에서,
상기 컴퓨팅 장치가, 상기 쓰레드 중 적어도 일부로 하여금 상기 메시지 큐의 상기 각각 다른 위치에 접근하도록 하여 할당된 양만큼 데이터를 읽어오도록 하는 것을 특징으로 하는 방법.
The method according to claim 1,
In the step (a)
Wherein the computing device causes at least a portion of the threads to access each of the different locations of the message queue to read data by an amount allocated.
제1항에 있어서,
상기 제1 메타데이터 및 상기 제2 메타데이터는 이벤트 시간 정보 및 이벤트 타입을 포함하며, 상기 제1 조건은, (i) 상기 제1 메타데이터의 상기 이벤트 시간 정보 및 상기 이벤트 타입과 (ii) 상기 제2 메타데이터의 상기 이벤트 시간 정보 및 상기 이벤트 타입 중 적어도 일부가 매칭되는 조건인 것을 특징으로 하는 방법.
The method according to claim 1,
Wherein the first condition includes at least one of (i) the event time information of the first metadata and (ii) the event type, and (ii) The event time information of the second metadata, and the event type.
제8항에 있어서,
상기 제1 메타데이터 및 상기 제2 메타데이터는 이벤트 발생 쓰레드 번호를 추가로 포함하며, 상기 제1 조건은, (i) 상기 제1 메타데이터의 상기 이벤트 시간 정보, 상기 이벤트 타입 및 상기 이벤트 발생 쓰레드 번호와 (ii) 상기 제2 메타데이터의 상기 이벤트 시간 정보, 상기 이벤트 타입 및 상기 이벤트 발생 쓰레드 번호 중 적어도 일부가 매칭되는 조건인 것을 특징으로 하는 방법.
9. The method of claim 8,
Wherein the first metadata and the second metadata further include an event generation thread number, the first condition comprising: (i) the event time information of the first metadata, the event type, And (ii) at least some of the event time information, the event type, and the event generation thread number of the second metadata are matched.
제8항에 있어서,
상기 제1 메타데이터의 상기 이벤트 시간 정보와 상기 제2 메타데이터의 상기 이벤트 시간 정보의 차이가 임계 범위 내인 경우 상기 이벤트 시간 정보가 매칭된 것으로 보는 것을 특징으로 하는 방법.
9. The method of claim 8,
When the difference between the event time information of the first metadata and the event time information of the second metadata is within a threshold range, the event time information is found to be matched.
머신러닝 기반 쓰레드풀을 관리하는 컴퓨팅 장치에 있어서,
인스트럭션들을 저장하는 적어도 하나의 메모리; 및
상기 인스트럭션들을 실행하기 위해 구성된 적어도 하나의 프로세서를 포함하되,
상기 프로세서는, 적어도 둘 이상의 쓰레드를 갖는 쓰레드풀이 관리되고, 과거의 어느 시간 범위 내에 상기 쓰레드 중 적어도 일부에 적어도 하나의 제1 이벤트가 발생했을 때 상기 제1 이벤트에 대한 정보를 참조로 하여 생성된 기 학습데이터 - 상기 기 학습데이터는 적어도 하나의 제1 메타데이터를 포함함 - 가 학습데이터 저장부에 저장되어 관리되며, 상기 기 학습데이터를 적어도 일부 사용하여 생성된 기 학습패턴 정보가 패턴 저장부에 저장되어 관리되는 상태에서, (1) 상기 쓰레드 중 적어도 일부로 하여금 메시지 큐의 각각 다른 위치에 접근하도록 하여 데이터를 읽어오는 과정에서, 적어도 하나의 특정 쓰레드에 적어도 하나의 제2 이벤트가 발생하는 경우 상기 제2 이벤트에 대한 정보를 참조로 하여, 적어도 하나의 신규 학습데이터 - 상기 신규 학습데이터는 적어도 하나의 제2 메타데이터를 포함함 - 를 생성하는 프로세스, (2) 상기 신규 학습데이터를 상기 기 학습데이터와 비교한 결과, 상기 신규 학습데이터 중에서 상기 제2 메타데이터가 제1 조건을 만족하는 적어도 하나의 특정 신규 학습데이터를 상기 학습데이터 저장부에 저장하고, 상기 기 학습데이터 중에서 상기 특정 신규 학습데이터와 매칭되는 적어도 하나의 특정 기 학습데이터의 누적 데이터가 제2 조건을 만족하면, 적어도 하나의 특정 학습패턴 정보를 생성하여 상기 패턴 저장부에 저장하는 프로세스, 및 (3) 소정의 쿼리가 획득되면, 상기 소정의 쿼리를 상기 특정 학습패턴 정보에 대응되는 상기 메타데이터 중 적어도 일부와 매칭한 결과를 참조로 하여, 상기 쓰레드풀을 관리하는 프로세스를 수행하는 상기 인스트럭션들을 실행하는 컴퓨팅 장치.
A computing device for managing a machine learning-based thread pool,
At least one memory for storing instructions; And
At least one processor configured to execute the instructions,
Wherein the processor is configured to manage a thread pool having at least two threads and to generate at least one first event in at least a portion of the threads within a past time range with reference to information about the first event Wherein the first learning data includes at least one first meta data and is stored and managed in a learning data storage unit, and the first learning pattern information generated using at least a part of the first learning data is stored in a pattern storage unit (1) when at least one second event occurs in at least one specific thread in the process of reading data by causing at least a portion of the threads to access different locations in the message queue, With reference to the information about the second event, at least one new learning data, Wherein the learning data includes at least one second meta data; (2) when the second learning data is compared with the first learning data, When the accumulated data of at least one specific learning data matched with the specified new learning data among the basic learning data satisfies the second condition And generating at least one specific learning pattern information and storing the generated at least one specific learning pattern information in the pattern storage unit; and (3) when the predetermined query is obtained, the predetermined query is at least a part of the metadata corresponding to the specific learning pattern information The instructions for performing the process of managing the thread pool are referred to as < RTI ID = 0.0 > Performing a computing device.
제11항에 있어,
상기 메타데이터가, 제1 내지 제n 속성을 포함할 때,
상기 프로세서는,
상기 (2) 프로세스에서,
상기 기 학습데이터의 상기 제1 메타데이터와 상기 신규 학습데이터의 상기 제2 메타데이터를 비교하여, 상기 제1 메타데이터의 상기 제1 내지 제n 속성의 부분집합 및 상기 제2 메타데이터의 상기 제1 내지 제n 속성의 부분집합이 동일한 경우, 상기 부분집합을 구성하는 적어도 하나의 특정 속성의 조합(combination)별로 상기 신규 학습데이터와 매칭되는 상기 기 학습데이터가 상기 제2 조건을 만족하는지 판단하는 것을 특징으로 하는 컴퓨팅 장치.
12. The method of claim 11,
When the metadata includes the first through the n-th attributes,
The processor comprising:
In the process (2)
The first metadata of the first learning data and the second metadata of the new learning data are compared with each other, and a subset of the first through n-th attributes of the first metadata, 1 to n-th attributes are the same, a determination is made as to whether the primary learning data matching the new learning data for each combination of at least one specific attribute constituting the subset satisfies the second condition ≪ / RTI >
제11항에 있어서,
상기 제2 조건은 상기 특정 기 학습데이터의 상기 누적 데이터가 기설정된 수치를 만족하는 조건이며,
상기 프로세서는,
상기 (2) 프로세스에서,
상기 제2 조건을 만족한 후, 상기 특정 기 학습데이터의 상기 누적 데이터가 상기 기설정된 수치를 초과한 정도를 판단하여, 상기 패턴 저장부에 저장된 상기 특정 학습패턴 정보에 대응되는 패턴 강도 정보를 저장하고,
상기 (3) 프로세스에서,
상기 특정 학습패턴 정보 및 이에 대응되는 상기 패턴 강도 정보를 참조로 하여, 상기 쓰레드풀을 관리하는 것을 특징으로 하는 컴퓨팅 장치.
12. The method of claim 11,
Wherein the second condition is a condition that the cumulative data of the specific learning data satisfies a predetermined value,
The processor comprising:
In the process (2)
Determines the degree to which the cumulative data of the specific learning data exceeds the predetermined value after the second condition is satisfied and stores pattern intensity information corresponding to the specific learning pattern information stored in the pattern storage section and,
In the process (3)
Wherein the thread pool management unit manages the thread pool with reference to the specific learning pattern information and the pattern intensity information corresponding thereto.
제11항에 있어서,
상기 쓰레드는 소정의 순서를 가지고 파이프로 연결되는 링크드리스트 구조로서,
상기 프로세서는,
상기 쓰레드로 하여금 상기 쓰레드 각각이 읽고 있는 상기 메시지 큐의 상기 각각 다른 위치의 주소 정보를 상기 쓰레드 각각이 상기 링크드리스트 구조의 상기 파이프를 통해 공유하도록 하는 것을 특징으로 하는 컴퓨팅 장치.
12. The method of claim 11,
The thread is a linked list structure that is piped in a predetermined order,
The processor comprising:
And causes the thread to share address information of each of the different locations of the message queue read by each of the threads through the pipe of the linked list structure.
제14항에 있어서,
상기 제1 이벤트 및 상기 제2 이벤트는 쓰레드불능, 쓰레드유휴, 쓰레드결핍 중 적어도 일부를 포함하며,
상기 프로세서는,
(i) 상기 쓰레드불능 또는 상기 쓰레드유휴가 제m 쓰레드에 발생한 경우, 상기 링크드리스트 구조를 이용하여, 상기 제m 쓰레드에 연결된 상기 파이프를 제거하고 제m-1 쓰레드와 제m+1 쓰레드를 연결하는 상기 파이프를 생성하며, 상기 쓰레드 불능이 발생한 제m 쓰레드가 복구되면, 상기 제m-1 쓰레드와 상기 제m+1 쓰레드를 연결하는 상기 파이프를 제거하고 상기 제m-1쓰레드와 상기 제m 쓰레드, 상기 제m 쓰레드와 상기 제m+1 쓰레드를 연결하는 상기 파이프를 생성하며, (ii) 상기 쓰레드결핍이 제p 쓰레드에 발생한 경우, 상기 링크드리스트 구조를 이용하여, 제n 쓰레드와 제n+1 쓰레드를 연결하는 상기 파이프를 제거하고, 신규 쓰레드를 생성하여 상기 제n 쓰레드와 상기 신규 쓰레드, 상기 신규 쓰레드와 상기 제n+1 쓰레드를 연결하는 상기 파이프를 생성하는 것을 특징으로 하는 컴퓨팅 장치.
15. The method of claim 14,
Wherein the first event and the second event include at least some of a thread incapability, a thread idle, and a thread incompleteness,
The processor comprising:
(i) removing the pipe connected to the mth thread and connecting the (m-1) th thread and the (m + 1) th thread using the linked list structure when the thread incapability or the thread idle occurs in the mth thread 1 thread and the (m + 1) th thread are removed, and the pipe connecting the (m-1) th thread and the (m + Th thread and the (m + 1) -th thread are connected to each other; (ii) when the thread deficiency occurs in the pth thread, the nth thread and the The pipe connecting the +1 thread is removed, and a new thread is created to create the pipe connecting the nth thread and the new thread, the new thread, and the (n + 1) th thread A computing device, characterized in that.
제14항에 있어서,
상기 프로세서는,
(4) 상기 특정 학습패턴 정보와 동일 또는 유사한 제3 이벤트 - 상기 제3 이벤트는 쓰레드불능, 쓰레드유휴, 쓰레드결핍 중 적어도 일부를 포함함 - 가 발생하면, (i) 상기 쓰레드불능 또는 상기 쓰레드유휴가 발생한 쓰레드가 제m 쓰레드인 경우, 상기 링크드리스트 구조를 이용하여, 상기 제m 쓰레드에 연결된 상기 파이프를 제거하고 제m-1 쓰레드와 제m+1 쓰레드를 연결하는 상기 파이프를 생성하며, (ii) 상기 쓰레드결핍이 발생한 쓰레드가 제p 쓰레드인 경우, 상기 링크드리스트 구조를 이용하여, 제n 쓰레드와 제n+1 쓰레드를 연결하는 상기 파이프를 제거하고, 신규 쓰레드를 생성하여 상기 제n 쓰레드와 상기 신규 쓰레드, 상기 신규 쓰레드와 상기 제n+1 쓰레드를 연결하는 상기 파이프를 생성하는 것을 특징으로 하는 컴퓨팅 장치.
15. The method of claim 14,
The processor comprising:
(4) a third event that is the same as or similar to the specific learning pattern information, the third event including at least a part of the thread incapability, the thread idle, and the thread depletion, (i) Thread is an m-th thread, the pipe connected to the m-th thread is removed and the pipe connecting the (m-1) th thread and the (m + 1) th thread is created using the linked list structure ii) if the thread in which the thread is deficient is a pth thread, removes the pipe connecting the nth thread and the (n + 1) th thread using the linked list structure, creates a new thread, And the pipe connecting the new thread, the new thread, and the (n + 1) th thread.
제11항에 있어서,
상기 프로세서는,
상기 (1) 프로세스에서,
상기 쓰레드 중 적어도 일부로 하여금 상기 메시지 큐의 상기 각각 다른 위치에 접근하도록 하여 할당된 양만큼 데이터를 읽어오도록 하는 것을 특징으로 하는 컴퓨팅 장치.
12. The method of claim 11,
The processor comprising:
In the above (1) process,
And causes at least a portion of the threads to access the respective different locations of the message queue to read data by the amount allocated.
제11항에 있어서,
상기 제1 메타데이터 및 상기 제2 메타데이터는 이벤트 시간 정보 및 이벤트 타입을 포함하며, 상기 제1 조건은, (i) 상기 제1 메타데이터의 상기 이벤트 시간 정보 및 상기 이벤트 타입과 (ii) 상기 제2 메타데이터의 상기 이벤트 시간 정보 및 상기 이벤트 타입 중 적어도 일부가 매칭되는 조건인 것을 특징으로 하는 컴퓨팅 장치.
12. The method of claim 11,
Wherein the first condition includes at least one of (i) the event time information of the first metadata and (ii) the event type, and (ii) The event time information of the second metadata, and the event type.
제18항에 있어서,
상기 제1 메타데이터 및 상기 제2 메타데이터는 이벤트 발생 쓰레드 번호를 추가로 포함하며, 상기 제1 조건은, (i) 상기 제1 메타데이터의 상기 이벤트 시간 정보, 상기 이벤트 타입 및 상기 이벤트 발생 쓰레드 번호와 (ii) 상기 제2 메타데이터의 상기 이벤트 시간 정보, 상기 이벤트 타입 및 상기 이벤트 발생 쓰레드 번호 중 적어도 일부가 매칭되는 조건인 것을 특징으로 하는 컴퓨팅 장치.
19. The method of claim 18,
Wherein the first metadata and the second metadata further include an event generation thread number, the first condition comprising: (i) the event time information of the first metadata, the event type, And (ii) at least some of the event time information, the event type, and the event generation thread number of the second metadata are matched.
제18항에 있어서,
상기 제1 메타데이터의 상기 이벤트 시간 정보와 상기 제2 메타데이터의 상기 이벤트 시간 정보의 차이가 임계 범위 내인 경우 상기 이벤트 시간 정보가 매칭된 것으로 보는 것을 특징으로 하는 컴퓨팅 장치.
19. The method of claim 18,
When the difference between the event time information of the first metadata and the event time information of the second metadata is within a threshold range, the event time information is matched.
KR1020180140341A 2018-11-14 2018-11-14 Method for managing thread pool based on machine learning and computing device using the same KR101974091B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180140341A KR101974091B1 (en) 2018-11-14 2018-11-14 Method for managing thread pool based on machine learning and computing device using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180140341A KR101974091B1 (en) 2018-11-14 2018-11-14 Method for managing thread pool based on machine learning and computing device using the same

Publications (1)

Publication Number Publication Date
KR101974091B1 true KR101974091B1 (en) 2019-04-30

Family

ID=66285646

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180140341A KR101974091B1 (en) 2018-11-14 2018-11-14 Method for managing thread pool based on machine learning and computing device using the same

Country Status (1)

Country Link
KR (1) KR101974091B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930681A (en) * 2019-05-13 2020-11-13 中科寒武纪科技股份有限公司 Computing device and related product

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070018000A (en) * 2004-01-05 2007-02-13 디디어 티트가드트 Behavior based multi-agent systems as data types
KR20140021433A (en) * 2012-08-10 2014-02-20 삼성테크윈 주식회사 Method and apparatus for processing the message between processors
KR101695278B1 (en) * 2016-04-26 2017-01-23 (주)시큐레이어 Method for detecting real-time event and server using the same
KR20180015640A (en) * 2015-05-04 2018-02-13 사이드 캄란 하산 Method and apparatus for security management in a computer network
KR101852610B1 (en) * 2017-11-16 2018-04-27 (주)시큐레이어 Method for using resources using ai learning based realtime analyzing system and managemnet server using the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070018000A (en) * 2004-01-05 2007-02-13 디디어 티트가드트 Behavior based multi-agent systems as data types
KR20140021433A (en) * 2012-08-10 2014-02-20 삼성테크윈 주식회사 Method and apparatus for processing the message between processors
KR20180015640A (en) * 2015-05-04 2018-02-13 사이드 캄란 하산 Method and apparatus for security management in a computer network
KR101695278B1 (en) * 2016-04-26 2017-01-23 (주)시큐레이어 Method for detecting real-time event and server using the same
KR101852610B1 (en) * 2017-11-16 2018-04-27 (주)시큐레이어 Method for using resources using ai learning based realtime analyzing system and managemnet server using the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930681A (en) * 2019-05-13 2020-11-13 中科寒武纪科技股份有限公司 Computing device and related product
CN111930681B (en) * 2019-05-13 2023-10-10 中科寒武纪科技股份有限公司 Computing device and related product

Similar Documents

Publication Publication Date Title
US10459761B2 (en) Enabling real-time CPU-bound in-kernel workloads to run infinite loops while keeping RCU grace periods finite
JP6132766B2 (en) Controlled automatic recovery of data center services
US10467048B2 (en) Techniques for virtual machine migration
US9830189B2 (en) Multi-threaded queuing system for pattern matching
US8627143B2 (en) Dynamically modeling and selecting a checkpoint scheme based upon an application workload
US9235440B2 (en) Managing job execution
US9354931B1 (en) Method, server and computer-readable recording medium for managing size of thread pool dynamically
US20150261784A1 (en) Dynamically Varying the Number of Database Replicas
US9910711B1 (en) Method and computing device for managing size of thread pool dynamically
US8255920B2 (en) Time management control method for computer system, and computer system
US20120158451A1 (en) Dispatching Tasks in a Business Process Management System
US20240104089A1 (en) Methods, systems, electronic devices, and storage media for database transaction processing
US9965727B2 (en) Method and apparatus for resolving contention in a computer system
KR101974091B1 (en) Method for managing thread pool based on machine learning and computing device using the same
JP6744545B2 (en) Information processing apparatus, information processing program, and information processing system
Tavakoli et al. Log-assisted straggler-aware I/O scheduler for high-end computing
CN111221468B (en) Storage block data deleting method and device, electronic equipment and cloud storage system
US9274877B2 (en) Incident handling
EP3388943A1 (en) Method and apparatus for managing events in a network that adopts event-driven programming framework
CN113905092A (en) Method, device, terminal and storage medium for determining reusable agent queue
CN101211276A (en) Method and system for modeling interrupts in a business process
US11593035B2 (en) Managing client devices associated with storage nodes in a scale-out storage system
CN110543367B (en) Resource processing method and device, electronic device and medium
US20230362103A1 (en) Reducing placement conflicts between concurrent virtual machine allocations
JP6302103B2 (en) Job net management apparatus and program

Legal Events

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