KR20240067674A - Container-based dynamic workload processing system, apparatus and method considering data local information - Google Patents

Container-based dynamic workload processing system, apparatus and method considering data local information Download PDF

Info

Publication number
KR20240067674A
KR20240067674A KR1020220148945A KR20220148945A KR20240067674A KR 20240067674 A KR20240067674 A KR 20240067674A KR 1020220148945 A KR1020220148945 A KR 1020220148945A KR 20220148945 A KR20220148945 A KR 20220148945A KR 20240067674 A KR20240067674 A KR 20240067674A
Authority
KR
South Korea
Prior art keywords
workload
dynamic
information
processing
dynamic workload
Prior art date
Application number
KR1020220148945A
Other languages
Korean (ko)
Inventor
전재호
강성주
전인걸
Original Assignee
한국전자통신연구원
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Publication of KR20240067674A publication Critical patent/KR20240067674A/en

Links

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network

Abstract

본 발명의 일 실시예에 따른 동적 워크로드 처리 장치는, 적어도 하나 이상의 명령을 저장하는 메모리(memory); 및 적어도 하나 이상의 명령을 수행하는 프로세서(processor)를 포함한다. 이때 프로세서는 적어도 하나 이상의 명령을 수행함으로써, 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하고, 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하고, 로컬 정보에 기반하여 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리한다. A dynamic workload processing device according to an embodiment of the present invention includes a memory storing at least one command; and a processor that performs at least one instruction. At this time, the processor obtains task information necessary to support the user service request by executing at least one command, obtains local information of a data source for processing the task corresponding to the task information, and performs the task based on the local information. Dynamically processes the workload to process tasks corresponding to information.

Description

데이터 로컬 정보를 고려하는 컨테이너 기반 동적 워크로드 처리 시스템, 장치 및 방법 {CONTAINER-BASED DYNAMIC WORKLOAD PROCESSING SYSTEM, APPARATUS AND METHOD CONSIDERING DATA LOCAL INFORMATION}Container-based dynamic workload processing system, apparatus, and method considering data local information {CONTAINER-BASED DYNAMIC WORKLOAD PROCESSING SYSTEM, APPARATUS AND METHOD CONSIDERING DATA LOCAL INFORMATION}

본 발명은 에지 컴퓨팅(edge computing), 및 마이크로 서비스(micro service)에 관한 것으로, 데이터 위치를 고려하여 빅데이터 처리를 가능하게 하는 컨테이너 기반 동적 워크로드 처리 기술에 관한 것이다. The present invention relates to edge computing and micro services, and to container-based dynamic workload processing technology that enables big data processing considering data location.

이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래 기술을 구성하는 것은 아니다.The content described in this section simply provides background information for this embodiment and does not constitute prior art.

종래 기술에 따르면 대부분의 응용 프로그램은 모놀로식(Monolithic) 구조로 개발되었다. 모놀리식 구조는 응용 프로그램을 하나의 큰 덩어리 단위로 개발하여 프로그램의 동작에 필요한 다양한 프로세스와 데이터베이스를 연결하고, 프로그램을 계층적으로 구성하는 방식이다. 모놀리식 구조 스타일은 각각의 내부 프로세스와 긴밀히 연결되어 있으며, 일반적으로 하나의 설계 프로그램을 이용하여 개발된다.According to the prior art, most applications were developed in a monolithic structure. Monolithic structure is a method of developing an application program as one large block, connecting various processes and databases required for the operation of the program, and organizing the program hierarchically. The monolithic structural style is closely linked to each internal process and is typically developed using a single design program.

반면, 마이크로서비스 구조(Microservice Architecture)는 하나의 응용 프로그램을 개발할 때 복수 개의 작은 서비스들로 분할하고, 분할된 작은 서비스들을 병합하여 하나의 응용 프로그램을 완성한다. 즉, 마이크로서비스 구조는 각각의 서비스를 모듈별로 특화하고, 인터페이스를 이용하여 각각의 모듈을 연결하고 통합함으로써, 하나의 응용 서비스를 생성한다.On the other hand, when developing an application, Microservice Architecture divides it into multiple small services and merges the small services to complete one application. In other words, the microservice structure creates one application service by specializing each service by module and connecting and integrating each module using an interface.

센서가 부착된 사물 인터넷(Internet of Things; IoT) 디바이스에서 클라우드 또는 서버로 수집된 데이터를 전송하는 경우 기존 디바이스는 펌웨어 형식으로 프로그램을 구현하여 데이터를 전송하거나, 임베디드(Embedded) OS(Operating System)를 이용하여 소프트웨어를 생성하여 데이터를 전송한다.When transmitting data collected from an Internet of Things (IoT) device equipped with a sensor to the cloud or server, existing devices transmit data by implementing a program in the form of firmware or an embedded OS (Operating System). Create software and transmit data using .

사물인터넷(IoT)의 출현으로, 상당한 양의 데이터가 에지(Edge) 네트워크에서 생성된다. 방대하고 다양한 데이터, 빅데이터 도메인은 빠르게 발전했으며, 복잡한 비즈니스 로직에서 끊임없이 증가하는 볼륨, 속도 및 다양한 데이터를 처리하는데 필요한 인프라에 이르기까지 다양한 부분에서 문제가 발생하고 있다. With the advent of the Internet of Things (IoT), significant amounts of data are generated in edge networks. The vast and diverse data, big data domain, has developed rapidly, and problems are arising in various areas, from complex business logic to the infrastructure required to process the ever-increasing volume, speed, and variety of data.

에지 컴퓨팅(edge computing) 기술은 에지 디바이스의 하드웨어 리소스를 활용하여 클라우드 컴퓨팅을 보완하는 것을 목적으로 한다. 하지만 방대하고 다양한 데이터를 처리하는 솔루션(빅데이터 처리 솔루션)들은 전통적으로 클라우드 서비스 워크로드에 맞게 설계되었기 때문에 마이크로 서비스 및 에지 컴퓨팅에 적용하는 것은 적합하지 않거나 비효율적인 문제점이 지적되고 있다. Edge computing technology aims to complement cloud computing by utilizing the hardware resources of edge devices. However, since solutions that process vast and diverse data (big data processing solutions) have traditionally been designed for cloud service workloads, their application to microservices and edge computing has been pointed out as unsuitable or inefficient.

한국공개특허 KR 10-2021-0060203호 "마이크로서비스 구조 재구성 방법 및 장치" (공개일 2021년 5월 26일)Korean Patent Publication No. KR 10-2021-0060203 “Microservice structure reconstruction method and device” (publication date May 26, 2021)

본 발명의 목적은 데이터 소스의 위치/지역 정보를 고려하여 효율적으로 데이터 서비스를 제공할 수 있는 컨테이너 기반 동적 워크로드 처리 시스템, 장치, 및 방법을 제안하는 것이다.The purpose of the present invention is to propose a container-based dynamic workload processing system, device, and method that can efficiently provide data services by considering location/region information of the data source.

본 발명의 목적은 데이터 소스의 위치/지역 정보를 고려하여 효율적으로 데이터 서비스를 제공할 수 있는 에지 서버 노드의 클러스터 기반 동적 워크로드 처리 시스템, 장치, 및 방법을 제안하는 것이다. The purpose of the present invention is to propose a cluster-based dynamic workload processing system, device, and method for edge server nodes that can efficiently provide data services by considering location/region information of data sources.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 서비스를 제공하기 위한 워크로드(workload)를 동적으로 처리하는 동적 워크로드 처리 장치는, 적어도 하나 이상의 명령을 저장하는 메모리(memory); 및 적어도 하나 이상의 명령을 수행하는 프로세서(processor)를 포함한다. 이때 프로세서는 적어도 하나 이상의 명령을 수행함으로써, 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하고, 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하고, 로컬 정보에 기반하여 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리한다. A dynamic workload processing device that dynamically processes a workload for providing a service according to an embodiment of the present invention for achieving the above object includes: a memory storing at least one command; and a processor that performs at least one instruction. At this time, the processor obtains task information necessary to support the user service request by executing at least one command, obtains local information of a data source for processing the task corresponding to the task information, and performs the task based on the local information. Dynamically processes the workload to process tasks corresponding to information.

프로세서는, 워크로드를 동적으로 처리함에 있어서, 로컬 정보에 기반하여 워크로드의 순서, 및 워크로드의 수행 주체 중 적어도 하나 이상의 스케줄링을 동적으로 재구성할 수 있다. When dynamically processing a workload, the processor may dynamically reconfigure the order of the workload and the scheduling of at least one of the workload performers based on local information.

프로세서는, 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득함에 있어서, 제1 클러스터 내의 제어 계층으로부터 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 요청하는 태스크 정보 요청을 수신할 수 있고, 태스크 정보 요청에 대응하는 사용자 서비스 요청을 분석하여 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득할 수 있다. In obtaining task information necessary to support a user service request, the processor may receive a task information request requesting task information necessary to support the user service request from a control layer in the first cluster, and request task information. By analyzing the user service request corresponding to , task information necessary to support the user service request can be obtained.

프로세서는, 데이터 소스의 로컬 정보를 획득함에 있어서, 제1 클러스터 내의 데이터 계층으로부터 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득할 수 있다.In obtaining local information of the data source, the processor may obtain local information of the data source for processing a task corresponding to task information from the data layer in the first cluster.

프로세서는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제1 근접 동적 워크로드 처리 노드의 정보를 획득할 수 있다. The processor may obtain information on a first proximate dynamic workload processing node located around the data source based on local information of the data source.

프로세서는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제1 근접 동적 워크로드 처리 노드의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다. In dynamically processing the workload, the processor may dynamically process the workload based on local information of the data source and information of the first adjacent dynamic workload processing node.

프로세서는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드가 포함되는 제2 클러스터의 정보를 획득할 수 있다. The processor may obtain information of a second cluster including a second proximate dynamic workload processing node located around the data source based on local information of the data source.

프로세서는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제2 클러스터의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다. When dynamically processing a workload, the processor may dynamically process the workload based on local information of the data source and information of the second cluster.

프로세서는, 제2 근접 동적 워크로드 처리 노드가 복수개인 경우에, 제2 클러스터 내의 복수개의 제2 근접 동적 워크로드 처리 노드들이 태스크 정보에 대응하는 태스크를 분산 처리하도록 워크로드를 동적으로 스케줄링할 수 있다. When there are a plurality of second proximate dynamic workload processing nodes, the processor may dynamically schedule the workload so that the plurality of second proximate dynamic workload processing nodes in the second cluster distribute and process tasks corresponding to the task information. there is.

본 발명의 일 실시예에 따른 동적 워크로드 처리 시스템은 제1 클러스터 내의 제어 계층에 대응하는 제1 동적 워크로드 처리 노드; 및 제1 클러스터 내의 연산 계층에 대응하는 제2 동적 워크로드 처리 노드를 포함한다. A dynamic workload processing system according to an embodiment of the present invention includes a first dynamic workload processing node corresponding to a control layer in a first cluster; and a second dynamic workload processing node corresponding to a computational layer within the first cluster.

이때 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 수신하고, 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 요청하는 태스크 정보 요청을 제2 동적 워크로드 처리 노드로 전달하고, 제2 동적 워크로드 처리 노드가 태스크 정보 요청에 대응하는 사용자 서비스 요청을 분석하여 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하고, 제2 동적 워크로드 처리 노드가 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하고, 제2 동적 워크로드 처리 노드가 로컬 정보에 기반하여 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리한다. At this time, the first dynamic workload processing node receives the user service request, and the first dynamic workload processing node transmits a task information request requesting task information necessary to support the user service request to the second dynamic workload processing node. And, the second dynamic workload processing node analyzes the user service request corresponding to the task information request to obtain task information necessary to support the user service request, and the second dynamic workload processing node performs the task corresponding to the task information. Local information of the data source for processing is acquired, and the second dynamic workload processing node dynamically processes the workload for processing the task corresponding to the task information based on the local information.

제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리함에 있어서, 로컬 정보에 기반하여 워크로드의 순서, 및 워크로드의 수행 주체 중 적어도 하나 이상의 스케줄링을 동적으로 재구성할 수 있다. When the second dynamic workload processing node dynamically processes the workload, the order of the workload and the scheduling of at least one of the workload performers may be dynamically reconfigured based on local information.

제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보를 획득함에 있어서, 제1 클러스터 내의 데이터 계층에 대응하는 제1 근접 동적 워크로드 처리 노드로부터 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득할 수 있다. The second dynamic workload processing node obtains local information of the data source, wherein the local information of the data source is used to process the task corresponding to the task information from the first proximate dynamic workload processing node corresponding to the data layer in the first cluster. Information can be obtained.

제2 동적 워크로드 처리 노드는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드의 정보를 획득할 수 있다. The second dynamic workload processing node may obtain information about a second adjacent dynamic workload processing node located around the data source based on local information of the data source.

제2 동적 워크로드 처리 노드는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제2 근접 동적 워크로드 처리 노드의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다. When dynamically processing the workload, the second dynamic workload processing node may dynamically process the workload based on local information of the data source and information of the second adjacent dynamic workload processing node.

제2 동적 워크로드 처리 노드는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드가 포함되는 제2 클러스터의 정보를 획득할 수 있다. The second dynamic workload processing node may obtain information of a second cluster including a second adjacent dynamic workload processing node located around the data source based on local information of the data source.

제2 동적 워크로드 처리 노드는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제2 클러스터의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다. The second dynamic workload processing node may dynamically process the workload based on local information of the data source and information of the second cluster.

제2 동적 워크로드 처리 노드는, 제2 근접 동적 워크로드 처리 노드가 복수개인 경우에, 제2 클러스터 내의 복수개의 제2 근접 동적 워크로드 처리 노드들이 태스크 정보에 대응하는 태스크를 분산 처리하도록 워크로드를 동적으로 스케줄링할 수 있다. The second dynamic workload processing node is configured to distribute the workload so that the plurality of second adjacent dynamic workload processing nodes in the second cluster distribute tasks corresponding to the task information when there is a plurality of second adjacent dynamic workload processing nodes. can be scheduled dynamically.

제2 동적 워크로드 처리 노드가 복수개인 경우에, 제1 동적 워크로드 처리 노드의 동작 실패 여부, 및 업데이트된 로컬 정보 중 적어도 하나 이상에 기반하여 복수개의 제2 동적 워크로드 처리 노드 중 하나가 제1 동적 워크로드 처리 노드를 대체하여 제어 계층에 대응될 수 있다. When there are a plurality of second dynamic workload processing nodes, one of the plurality of second dynamic workload processing nodes is selected based on at least one of the operation failure of the first dynamic workload processing node and the updated local information. 1 It can correspond to the control layer by replacing the dynamic workload processing node.

본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제1 클러스터 내의 제어 계층에 대응하는 제1 동적 워크로드 처리 노드를 경유하여 수신되는 사용자 서비스 요청을, 제1 클러스터 내의 연산 계층에 대응하는 제2 동적 워크로드 처리 노드가 분석하여 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하는 단계; 제2 동적 워크로드 처리 노드가 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하는 단계; 및 제2 동적 워크로드 처리 노드가 로컬 정보에 기반하여 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리하는 단계를 포함한다. The dynamic workload processing method according to an embodiment of the present invention includes processing a user service request received via a first dynamic workload processing node corresponding to a control layer in a first cluster to a user service request corresponding to a computation layer in the first cluster. Analyzing by a second dynamic workload processing node to obtain task information necessary to support a user service request; Obtaining, by a second dynamic workload processing node, local information of a data source for processing a task corresponding to the task information; and a second dynamic workload processing node dynamically processing a workload for processing a task corresponding to task information based on local information.

제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계에서, 로컬 정보에 기반하여 워크로드의 순서, 및 워크로드의 수행 주체 중 적어도 하나 이상의 스케줄링이 동적으로 재구성될 수 있다. In the step where the second dynamic workload processing node dynamically processes the workload, the order of the workload and the scheduling of at least one of the workload performers may be dynamically reconfigured based on local information.

본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 수신하는 단계; 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 요청하는 태스크 정보 요청을 제2 동적 워크로드 처리 노드로 전달하는 단계를 더 포함할 수 있다. A dynamic workload processing method according to an embodiment of the present invention includes the steps of: a first dynamic workload processing node receiving a user service request; It may further include transmitting, by the first dynamic workload processing node, a task information request requesting task information necessary to support the user service request to the second dynamic workload processing node.

제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보를 획득하는 단계에서, 제1 클러스터 내의 데이터 계층에 대응하는 제1 근접 동적 워크로드 처리 노드로부터 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보가 획득될 수 있다. In the step of the second dynamic workload processing node acquiring local information of the data source, the data source for processing the task corresponding to the task information from the first proximate dynamic workload processing node corresponding to the data layer in the first cluster Local information can be obtained.

본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드의 정보를 획득하는 단계를 더 포함할 수 있다. The dynamic workload processing method according to an embodiment of the present invention includes the second dynamic workload processing node obtaining information about a second adjacent dynamic workload processing node located around the data source based on local information of the data source. Additional steps may be included.

제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계에서, 데이터 소스의 로컬 정보 및 제2 근접 동적 워크로드 처리 노드의 정보에 기반하여 워크로드가 동적으로 처리될 수 있다. In the step where the second dynamic workload processing node dynamically processes the workload, the workload may be dynamically processed based on local information of the data source and information of the second adjacent dynamic workload processing node.

본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드가 포함되는 제2 클러스터의 정보를 획득하는 단계를 더 포함할 수 있다. The dynamic workload processing method according to an embodiment of the present invention includes a second dynamic workload processing node where the second dynamic workload processing node includes a second proximate dynamic workload processing node located around the data source based on local information of the data source. A step of obtaining cluster information may be further included.

제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계에서, 데이터 소스의 로컬 정보 및 제2 클러스터의 정보에 기반하여 워크로드가 동적으로 처리될 수 있다. In the step where the second dynamic workload processing node dynamically processes the workload, the workload may be dynamically processed based on local information of the data source and information of the second cluster.

제2 근접 동적 워크로드 처리 노드가 복수개인 경우에, 제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계에서, 제2 동적 워크로드 처리 노드는, 제2 클러스터 내의 복수개의 제2 근접 동적 워크로드 처리 노드들이 태스크 정보에 대응하는 태스크를 분산 처리하도록 워크로드를 동적으로 스케줄링할 수 있다. When there are a plurality of second adjacent dynamic workload processing nodes, in the step of the second dynamic workload processing node dynamically processing the workload, the second dynamic workload processing node is configured to Workloads can be dynamically scheduled so that dynamic workload processing nodes distribute tasks corresponding to task information.

본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제2 동적 워크로드 처리 노드가 복수개인 경우에, 제1 동적 워크로드 처리 노드의 동작 실패 여부, 및 업데이트된 로컬 정보 중 적어도 하나 이상에 기반하여 복수개의 제2 동적 워크로드 처리 노드 중 하나를 제1 동적 워크로드 처리 노드를 대체하여 제어 계층에 대응시키는 단계를 더 포함할 수 있다. The dynamic workload processing method according to an embodiment of the present invention is based on at least one of whether the first dynamic workload processing node fails to operate and updated local information when there are a plurality of second dynamic workload processing nodes. Based on this, the method may further include replacing one of the plurality of second dynamic workload processing nodes with the first dynamic workload processing node to correspond to the control layer.

본 발명의 실시예에 따르면 방대한 데이터를 직접 클라우드 서버로 전송하는 과정을 생략할 수 있으므로 종래 기술의 클라우드로 전송할 때 발생하는 대기 시간으로 인한 비용을 절감할 수 있다.According to an embodiment of the present invention, the process of directly transmitting large amounts of data to a cloud server can be omitted, thereby reducing costs due to waiting time that occurs when transmitting to a cloud in the prior art.

본 발명의 실시예에 따르면 대기 시간이 짧은 시나리오의 비용 손실 없이 서비스를 지원할 수 있다.According to an embodiment of the present invention, a service can be supported without cost loss in a scenario with a short waiting time.

본 발명의 실시예에 따르면 쿠버네티스 컨테이너 기반으로 동작함으로써 데이터 통합 및 처리 논리 측면에서 에지 디바이스가 동작하는 기술의 종류에 구애받지 않는 방식으로 통합적으로 문제를 해결할 수 있다. According to an embodiment of the present invention, by operating based on a Kubernetes container, it is possible to comprehensively solve problems in terms of data integration and processing logic in a way that is not limited by the type of technology on which the edge device operates.

본 발명의 실시예에 따르면 에지 서버 하드웨어 리소스를 최대한 활용하는 빅데이터 워크로드를 처리할 수 있다. According to an embodiment of the present invention, it is possible to process a big data workload that makes full use of edge server hardware resources.

본 발명의 실시예에 따르면 데이터 소스의 지역/위치를 고려한 효율적인 빅데이터 연산을 처리할 수 있다. According to an embodiment of the present invention, efficient big data operations can be processed considering the region/location of the data source.

도 1은 본 발명의 일 실시예에 따른 동적 워크로드 처리 방법이 적용되는 서비스 시나리오를 도시하는 개념도이다.
도 2는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템을 도시하는 개념도이다.
도 3은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 처리 방법을 도시하는 개념도이다.
도 4는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템의 일부인 제어 계층을 도시하는 개념도이다.
도 5는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템의 일부인 연산 계층을 도시하는 개념도이다.
도 6은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템의 일부인 데이터 계층을 도시하는 개념도이다.
도 7은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 계층 간 통신 프로토콜을 도시하는 개념도이다.
도 8은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 동적 워크로드 처리 방법을 도시하는 동작 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 동적 워크로드 스케줄링의 시나리오를 도시하는 개념도이다.
도 10은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 동적 워크로드 스케줄링의 시나리오를 도시하는 개념도이다.
도 11은 도 1 내지 도 10의 과정의 적어도 일부를 수행할 수 있는 일반화된 동적 워크로드 장치, 동적 워크로드 시스템 또는 컴퓨팅 시스템의 예시를 도시하는 개념도이다.
1 is a conceptual diagram illustrating a service scenario to which a dynamic workload processing method according to an embodiment of the present invention is applied.
Figure 2 is a conceptual diagram illustrating a dynamic workload processing device and system according to an embodiment of the present invention.
Figure 3 is a conceptual diagram illustrating a processing method executed in a dynamic workload processing device and system according to an embodiment of the present invention.
4 is a conceptual diagram illustrating a control layer that is part of a dynamic workload processing device and system according to an embodiment of the present invention.
Figure 5 is a conceptual diagram illustrating an operation layer that is part of a dynamic workload processing device and system according to an embodiment of the present invention.
Figure 6 is a conceptual diagram illustrating a data layer that is part of a dynamic workload processing device and system according to an embodiment of the present invention.
Figure 7 is a conceptual diagram illustrating an inter-layer communication protocol in a dynamic workload processing device and system according to an embodiment of the present invention.
FIG. 8 is an operational flowchart illustrating a dynamic workload processing method executed in a dynamic workload processing device and system according to an embodiment of the present invention.
FIG. 9 is a conceptual diagram illustrating a scenario of dynamic workload scheduling executed in a dynamic workload processing device and system according to an embodiment of the present invention.
FIG. 10 is a conceptual diagram illustrating a scenario of dynamic workload scheduling executed in a dynamic workload processing device and system according to an embodiment of the present invention.
FIG. 11 is a conceptual diagram illustrating an example of a generalized dynamic workload device, dynamic workload system, or computing system capable of performing at least a portion of the processes of FIGS. 1 to 10.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present invention can make various changes and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all changes, equivalents, and substitutes included in the spirit and technical scope of the present invention.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. '및/또는' 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, a first component may be named a second component without departing from the scope of the present invention, and similarly, the second component may also be named a first component. The term 'and/or' includes any of a plurality of related stated items or a combination of a plurality of related stated items.

본 출원의 실시예들에서, "A 및 B 중에서 적어도 하나"는 "A 또는 B 중에서 적어도 하나" 또는 "A 및 B 중 하나 이상의 조합들 중에서 적어도 하나"를 의미할 수 있다. 또한, 본 출원의 실시예들에서, "A 및 B 중에서 하나 이상"은 "A 또는 B 중에서 하나 이상" 또는 "A 및 B 중 하나 이상의 조합들 중에서 하나 이상"을 의미할 수 있다.In embodiments of the present application, “at least one of A and B” may mean “at least one of A or B” or “at least one of combinations of one or more of A and B.” Additionally, in embodiments of the present application, “one or more of A and B” may mean “one or more of A or B” or “one or more of combinations of one or more of A and B.”

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is said to be "connected" or "connected" to another component, it is understood that it may be directly connected to or connected to the other component, but that other components may exist in between. It should be. On the other hand, when it is mentioned that a component is “directly connected” or “directly connected” to another component, it should be understood that there are no other components in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this application are only used to describe specific embodiments and are not intended to limit the invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, terms such as “comprise” or “have” are intended to designate the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, but are not intended to indicate the presence of one or more other features. It should be understood that this does not exclude in advance the possibility of the existence or addition of elements, numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as generally understood by a person of ordinary skill in the technical field to which the present invention pertains. Terms defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted in an ideal or excessively formal sense unless explicitly defined in the present application. No.

한편 본 출원일 전에 공지된 기술이라 하더라도 필요 시 본 출원 발명의 구성의 일부로서 포함될 수 있으며, 이에 대해서는 본 발명의 취지를 흐리지 않는 범위 내에서 본 명세서에서 설명한다. 다만 본 출원 발명의 구성을 설명함에 있어, 본 출원일 전에 공지된 기술로서 당업자가 자명하게 이해할 수 있는 사항에 대한 자세한 설명은 본 발명의 취지를 흐릴 수 있으므로, 공지 기술에 대한 지나치게 자세한 사항의 설명은 생략한다. Meanwhile, even if the technology was known before the filing date of this application, it may be included as part of the structure of the invention of this application when necessary, and this will be described herein to the extent that it does not obscure the purpose of the present invention. However, in explaining the configuration of the invention of this application, a detailed description of matters that can be clearly understood by a person skilled in the art as known technology before the date of filing this application may obscure the purpose of the present invention, so excessively detailed description of the known technology is not necessary. Omit it.

예를 들어, 마이크로 서비스 구조를 재구성하는 기술, 쿠버네티스 환경에서 컨테이너 기반 서비스 구조를 구현하는 기술 등은 본 발명의 출원 전 공지 기술을 이용할 수 있으며, 이들 공지 기술들 중 적어도 일부는 본 발명을 실시하는 데에 필요한 요소 기술로서 적용될 수 있다. For example, technologies for reconfiguring a microservice structure, technologies for implementing a container-based service structure in a Kubernetes environment, etc. may use technologies known before the application of the present invention, and at least some of these known technologies are related to the present invention. It can be applied as an element technology necessary for implementation.

그러나 본 발명의 취지는 이들 공지 기술에 대한 권리를 주장하고자 하는 것이 아니며 공지 기술의 내용은 본 발명의 취지에 벗어나지 않는 범위 내에서 본 발명의 일부로서 포함될 수 있다. However, the purpose of the present invention is not to claim rights to these known technologies, and the content of the known technologies may be included as part of the present invention within the scope without departing from the spirit of the present invention.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the attached drawings. In order to facilitate overall understanding when describing the present invention, the same reference numerals are used for the same components in the drawings, and duplicate descriptions of the same components are omitted.

도 1은 본 발명의 일 실시예에 따른 동적 워크로드 처리 방법이 적용되는 서비스 시나리오를 도시하는 개념도이다.1 is a conceptual diagram illustrating a service scenario to which a dynamic workload processing method according to an embodiment of the present invention is applied.

도 1을 참조하면 서버(240)와 에지 디바이스(250) 사이에 에지 서버(210)들이 배치되며, 에지 서버(210)들 각각은 하나의 노드로서 서버(240)와 에지 디바이스(250) 사이에서 데이터 서비스를 위한 연산을 분담할 수 있다.Referring to FIG. 1, edge servers 210 are placed between the server 240 and the edge device 250, and each of the edge servers 210 is a node between the server 240 and the edge device 250. Computation for data services can be divided.

데이터 서비스의 사용자는 에지 디바이스(250)를 통하여 필요한 데이터 서비스를 제공받을 수 있고, 별도의 사용자 단말을 통하여 데이터 서비스를 제공받을 수 있다. Users of data services can receive necessary data services through the edge device 250, and can receive data services through a separate user terminal.

에지 디바이스(250)는 데이터 소스가 될 수 있다. 예를 들어, 데이터 서비스에서는 에지 디바이스 A가 가진 데이터에 대한 연산 및 처리가 수행되어 사용자 측의 에지 디바이스 B로 서비스가 제공될 수 있다. Edge device 250 may be a data source. For example, in a data service, operations and processing may be performed on data held by edge device A, and the service may be provided to edge device B on the user's side.

이때 에지 디바이스 A가 가진 데이터에 대한 연산 및 처리는 에지 디바이스 A, 에지 디바이스 B, 및 에지 서버(210)들에 의하여 분담되어 처리될 수 있다. At this time, operations and processing of data held by edge device A may be divided and processed by edge device A, edge device B, and the edge servers 210.

즉, 에지 디바이스(250)는 데이터 소스이면서 워크로드의 수행의 일부를 분담할 수 있는 수행 주체가 될 수 있다. In other words, the edge device 250 can be both a data source and a performing entity that can share part of the performance of the workload.

이때 본 발명의 일 실시예에서는 에지 서버(210)들 중 복수개의 노드들이 하나의 클러스터(100)를 형성하고 클러스터(100) 내의 노드들이 역할을 분담하여 데이터 서비스를 처리하고, 데이터 서비스 처리에 필요한 워크로드를 동적으로 처리하고, 워크로드의 처리를 위한 스케줄링을 동적으로 수행할 수 있다. At this time, in one embodiment of the present invention, a plurality of nodes among the edge servers 210 form one cluster 100, and the nodes within the cluster 100 share roles to process data services, and process data services necessary for data service processing. Workloads can be processed dynamically, and scheduling for workload processing can be performed dynamically.

사물인터넷(IoT)의 출현으로, 상당한 양의 데이터가 에지(Edge) 네트워크에서 생성되고 있으며, 여기에서 생성되는 방대한 데이터를 처리하여 데이터 서비스를 사용자에게 제공하는 경우에 네트워크를 통한 데이터 전송 지연 및 비용이 대표적인 문제점으로 지적되고 있다. 이런 방대한 데이터를 클라우드로 전송하는 것은 대기 시간이 발생할 수 있는 높은 비용의 작업이고, 이로 인해 대기 시간이 짧은 서비스 시나리오는 실현 불가능하게 되는 경우가 생긴다. 이러한 문제를 해결하기 위해 에지 컴퓨팅 플랫폼 기술이 등장하였다. With the advent of the Internet of Things (IoT), a significant amount of data is being generated in edge networks, and when processing the vast amount of data generated here and providing data services to users, the delay and cost of data transmission through the network are increased. This is pointed out as a representative problem. Transmitting such massive amounts of data to the cloud is a high-cost operation that can cause latency, making low-latency service scenarios unfeasible. To solve these problems, edge computing platform technology has emerged.

종래의 에지 컴퓨팅 기술은 에지 디바이스의 하드웨어 리소스를 활용하여 클라우드 컴퓨팅을 보완하는 것을 목적으로 한다. 일반적으로 지연 시간 요구사항을 만족시키기 위해 네트워크의 에지 디바이스(250)에 더 가깝게 에지 컴퓨팅 디바이스를 더 가깝게 배치해서 프로세스 부하를 줄인다. Conventional edge computing technology aims to complement cloud computing by utilizing the hardware resources of edge devices. Typically, edge computing devices are placed closer to the edge device 250 of the network to meet latency requirements to reduce processing load.

하지만 에지 컴퓨팅을 통한 데이터 서비스를 처리하는 솔루션들은 전통적으로 클라우드 서버(240)에 워크로드를 집중시키는 방향으로 설계되었기 때문에 에지 디바이스(250) 상호 간에 요구되는 데이터 서비스를 처리하기 위하여 클라우드 서버에서 워크로드를 스케줄링하고, 할당하고 워크로드를 처리하는 과정은 에지 컴퓨팅의 취지를 충분히 살리지 못하는 비효율이 존재하였다. However, solutions that process data services through edge computing have traditionally been designed to concentrate the workload on the cloud server 240, so the edge devices 250 store the workload on the cloud server in order to process the data services required for each other. The process of scheduling, allocating, and processing workloads had inefficiencies that did not fully utilize the purpose of edge computing.

종래 기술에서 전통적으로 빅데이터를 처리하기 위한 표준 솔루션으로 클라우드 서비스 공급자가 이용되고 있다. 클라우드 서비스는 본질적으로 전 세계 소수의 위치(예를 들면, 데이터 센터)에 과도하게 중앙 집중화되어 있다. In the prior art, cloud service providers are traditionally used as a standard solution for processing big data. Cloud services are inherently overly centralized in a few locations (e.g., data centers) around the world.

사물인터넷(IoT)의 출현으로 많은 데이터가 에지 디바이스(250)에서 생성이 되고 있는 현재, 지리적으로 분산된 시스템에서 빅데이터 처리를 수행하면서도 데이터 전송 지연 및 비용을 줄여야 하는 요구가 대두되고 있다. With the advent of the Internet of Things (IoT), a lot of data is being generated in edge devices 250, and there is a growing need to reduce data transmission delays and costs while performing big data processing in geographically distributed systems.

일반적으로 에지 컴퓨팅 환경은 에지 디바이스(250)에 가까울수록 사용 가능한 리소스가 제한되고 단일 호스트에서 지정된 시점에 처리되는 데이터의 양이 작으므로 데이터 연산 및 스트리밍이 지속적으로 처리되고 효과적인 처리량을 달성하기 위해 워크로드 처리가 가능한 한 신속하게 이루어질 것이 요구된다. In general, the closer the edge computing environment is to the edge device 250, the more limited the available resources are, and the smaller the amount of data processed at a given time on a single host, so data operations and streaming are continuously processed and work is required to achieve effective throughput. Load processing is required to occur as quickly as possible.

워크로드가 가능한 한 신속하게 처리되기 위해서는 데이터 소스의 지역/위치, 즉 데이터의 로컬 정보를 고려한 워크로드 처리 메커니즘이 지원되어 동적으로 처리될 것이 요구된다. In order for the workload to be processed as quickly as possible, a workload processing mechanism that takes into account the region/location of the data source, that is, the local information of the data, is supported and required to be processed dynamically.

이에 비하여, 종래 기술은 사물인터넷의 출현으로 기하급수적인 에지 단말 수의 증가에 따른 데이터 서비스의 수요 증가, 이로 인한 빅데이터 처리를 위한 워크로드를 효율적으로 처리하지 못하는 문제점이 있었다. In comparison, the prior art had the problem of not being able to efficiently process the workload for big data processing due to the increase in demand for data services due to the exponential increase in the number of edge terminals with the advent of the Internet of Things.

종래 기술에서는 빅데이터 처리를 위해 클라우드의 서버(240)로 전송되는 데이터 양이 증가하여, 이로 인한 워크로드 과부하 발생 및 긴 대기 시간 발생의 문제점과 이로 인한 비용 증가가 문제점으로 대두되었다. In the prior art, the amount of data transmitted to the cloud server 240 for big data processing increased, and problems such as workload overload and long waiting time, as well as increased costs, emerged as problems.

종래 기술에서는 대기시간이 짧고, 적은 리소스를 필요로 하며, 빈번하게 발생하는 서비스들에 대한 워크로드를 처리할 때에도 매번 컨테이너를 생성 및 삭제함으로써 불필요한 비용이 발생하는 문제점이 있었다. The prior art had a short waiting time, required few resources, and had the problem of incurring unnecessary costs by creating and deleting containers each time, even when processing workloads for frequently occurring services.

종래 기술에서는 서로 다른 프로그래밍 언어 또는 기술로 개발된 데이터 처리 방식을 통합적으로 처리하기 어려운 문제점이 있었다. In the prior art, there was a problem in that it was difficult to integrate data processing methods developed in different programming languages or technologies.

이러한 종래 기술의 문제점을 해결하기 위해 본 발명의 실시예에서는 에지 디바이스(250)를 컨테이너 기반의 클러스터(100)로 구성하고, 이를 기반으로 효율적인 워크로드를 처리할 수 있는 시스템 및 장치를 제공할 수 있다.In order to solve these problems of the prior art, in an embodiment of the present invention, the edge device 250 is configured as a container-based cluster 100, and based on this, systems and devices that can efficiently process workloads can be provided. there is.

본 발명의 실시예에서는 에지 디바이스(250)와 가까운 에지 서버(210)들로 이루어진 클러스터 개념을 도입하여 클러스터를 이용하여 워크로드를 동적으로 처리함에 있어서 효율을 높일 수 있다.In an embodiment of the present invention, the concept of a cluster consisting of edge servers 210 close to the edge device 250 is introduced to increase efficiency in dynamically processing workloads using the cluster.

본 발명의 실시예에서는 에지 서버(210)들이 동적 워크로드 처리 및 데이터 서비스에 필요한 연산을 분담하여 수행함으로써 서버(240) 측에 전달되는 데이터 및 정보의 양을 절감하고 전체 네트워크 내의 트래픽을 저감하며, 이로 인하여 낮은 비용으로 데이터 서비스를 제공할 수 있는 동적 워크로드 처리 시스템, 장치, 및 방법을 제공할 수 있다. In an embodiment of the present invention, the edge servers 210 share and perform calculations required for dynamic workload processing and data services, thereby reducing the amount of data and information transmitted to the server 240 and reducing traffic within the entire network. , This makes it possible to provide a dynamic workload processing system, device, and method that can provide data services at low cost.

위에서 언급한 문제점들을 해결하기 위해서 본 발명의 실시예에서는 데이터 소스의 지역/위치 정보를 고려하고, 장수명(Long-lived) 컨테이너(즉, 수명 주기가 서비스 종료 시 함께 소멸되지 않고 사용자가 지정한 요건에 만족할 때까지 살아서 동작하는 컨테이너)를 활용하여 워크로드 처리 과정을 수행하고, 컨테이너를 통해 서로 다른 데이터 소스와의 상호 작용을 처리할 수 있다 In order to solve the above-mentioned problems, the embodiment of the present invention considers the region/location information of the data source and uses a long-lived container (i.e., the life cycle is not destroyed at the end of the service and meets the requirements specified by the user). You can perform workload processing using containers (that live and run until you are satisfied) and handle interactions with different data sources through containers.

본 발명의 실시예에서는 데이터 소스의 지역/위치 정보를 고려하여 효율적으로 데이터를 처리할 수 있는 컨테이너 기반의 동적 워크로드 처리 시스템, 장치, 및 방법을 제안할 수 있다. Embodiments of the present invention may propose a container-based dynamic workload processing system, device, and method that can efficiently process data by considering regional/location information of the data source.

본 발명의 실시예에서는 데이터 소스의 지역/위치 정보를 고려하여 효율적으로 데이터를 처리할 수 있는 에지 서버(210) 노드의 클러스터(100) 기반의 동적 워크로드 처리 시스템, 장치, 및 방법을 제안할 수 있다. An embodiment of the present invention proposes a dynamic workload processing system, device, and method based on a cluster 100 of edge server 210 nodes that can efficiently process data by considering the region/location information of the data source. You can.

본 발명의 실시예에서는 에지 서버(210) 노드들이 스케줄링을 동적으로 재구성할 수 있다. 이때 스케줄링은 워크로드(workload)의 수행 순서, 수행 주체를 재구성하는 것을 의미할 수 있다. In an embodiment of the present invention, edge server 210 nodes can dynamically reconfigure scheduling. At this time, scheduling may mean reorganizing the execution order and performer of the workload.

종래 기술은 이러한 스케줄링 과정이 클라우드의 메인 서버(240)에서 수행되기 때문에 필요한 정보가 메인 서버(240)까지 전달되고 워크로드의 수행 순서 및 수행 주체가 메인 서버(240)에 의하여 결정되므로 메인 서버(240)에 연산 부하가 집중되고 스케줄링의 결정에 걸리는 시간 지연이 존재하였다. In the prior art, since this scheduling process is performed in the main server 240 of the cloud, the necessary information is transmitted to the main server 240, and the execution order and performer of the workload are determined by the main server 240, so the main server (240) 240), the computational load was concentrated and there was a time delay in scheduling decisions.

본 발명의 실시예에서는 local cluster를 설정하여 그 안에서 에지 서버(210)들을 관리함으로써 클라우드의 메인 서버(240)를 거치지 않고 에지 서버(210)들끼리 협력하여 스케줄링을 동적으로 재구성할 수 있다. 즉, 에지 서버(210)의 클러스터 내에서 워크로드의 수행 순서, 및/또는 수행 주체를 재구성할 수 있다. In an embodiment of the present invention, by setting up a local cluster and managing the edge servers 210 within it, scheduling can be dynamically reconfigured through cooperation among the edge servers 210 without going through the main server 240 of the cloud. That is, the execution order of the workload and/or the execution subject within the cluster of the edge server 210 can be reconfigured.

이때 워크로드의 수행 주체는 에지 디바이스(250), 및/또는 에지 서버(210)일 수 있다. 에지 디바이스(250)는 데이터 소스이면서 워크로드의 수행의 일부를 분담할 수 있는 주체이고, 도 1의 서비스 시나리오에서는 데이터 서비스를 제공받는 사용자일 수도 있다. At this time, the entity performing the workload may be the edge device 250 and/or the edge server 210. The edge device 250 is a data source and an entity that can share part of the workload, and in the service scenario of FIG. 1, it may be a user who receives a data service.

본 발명의 실시예에서는 스케줄링을 동적으로 재구성하는 것은 주로 에지 서버(210)에서 실행될 수 있다. In an embodiment of the present invention, dynamically reconfiguring scheduling may be performed primarily on the edge server 210.

한편 본 발명의 실시예에서는 클러스터를 long-live 컨테이너에 기반하여 관리하고 동적 스케줄링을 수행할 수 있는데 long-live 컨테이너를 이용함으로써 동적 스케줄링의 효율을 증대할 수 있다.Meanwhile, in an embodiment of the present invention, a cluster can be managed based on long-live containers and dynamic scheduling can be performed. By using long-live containers, the efficiency of dynamic scheduling can be increased.

도 2는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템을 도시하는 개념도이다.Figure 2 is a conceptual diagram illustrating a dynamic workload processing device and system according to an embodiment of the present invention.

도 2를 참조하면, 복수개의 노드들로 구성된 클러스터(100) 내부의 구성 요소 및 상호 작용이 도시된다.Referring to FIG. 2, components and interactions within a cluster 100 composed of a plurality of nodes are shown.

후술할 제어 계층(110)에 대응하여 마스터 노드(220)가 설정될 수 있다. 마스터 노드(220)는 에지 서버(210) 중의 하나일 수 있다.The master node 220 may be set in response to the control layer 110, which will be described later. Master node 220 may be one of edge servers 210.

후술할 연산 계층(120) 및/또는 데이터 계층(130)에 대응하여 워커 노드(230)가 설정될 수 있다. 워커 노드(220)는 에지 서버(210) 중의 하나일 수 있다.A worker node 230 may be set to correspond to the computation layer 120 and/or the data layer 130, which will be described later. Worker node 220 may be one of edge servers 210.

하나의 클러스터(100) 내에 어떤 노드가 포함되는 지, 어떤 노드가 마스터 노드(220)로 설정되고 어떤 노드가 워커 노드(230)로 설정되는 지가 클러스터(100) 내의 노드들의 상호협력적 동작에 의하여 동적으로 결정될 수 있다. Which nodes are included in one cluster 100, which nodes are set as the master node 220, and which nodes are set as the worker nodes 230 are determined by the cooperative operation of the nodes within the cluster 100. Can be determined dynamically.

마스터 노드(220)가 가지는 속성 및 워커 노드(230)가 가지는 속성 중 적어도 일부는 종래 기술인 쿠버네티스(K8S, Kubernetes)) 플랫폼에서 개시된 사항을 참조할 수 있다. 그러나 본 발명의 사상은 쿠버네티스 플랫폼을 이용하는 실시예에 국한되지 않음은 당업자에게 자명하게 이해될 것이다. At least some of the properties of the master node 220 and the properties of the worker node 230 may refer to those disclosed in the prior art Kubernetes (K8S) platform. However, it will be readily understood by those skilled in the art that the spirit of the present invention is not limited to embodiments using the Kubernetes platform.

본 발명의 실시예에서는 마스터 노드(220) 및 워커 노드(230)의 동적 설정에 필요한 속성이 추가적으로 설정될 수 있다. 마스터 노드(220) 및 워커 노드(230)의 지정은 영구적이지 않으며 상황 및 시스템의 요구에 응답하여 동적으로 변경될 수 있다. 또한 각 노드가 클러스터(100)에 포함되는 지 여부, 및 어떤 클러스터(100)에 포함되는 지도 영구적으로 결정되지 않으며 상황 및 시스템의 요구에 응답하여 동적으로 변경될 수 있다. In an embodiment of the present invention, attributes necessary for dynamic setting of the master node 220 and the worker node 230 may be additionally set. The designation of the master node 220 and worker node 230 is not permanent and may change dynamically in response to the situation and needs of the system. Additionally, whether or not each node is included in the cluster 100 and which cluster 100 it is included in are not permanently determined and may change dynamically in response to situations and system needs.

본 발명의 일 실시예에 따른 서비스를 제공하기 위한 워크로드를 동적으로 처리하는 동적 워크로드 처리 장치는, 적어도 하나 이상의 명령을 저장하는 메모리(memory); 및 적어도 하나 이상의 명령을 수행하는 프로세서(processor)를 포함하는 에지 서버(210) 중의 하나일 수 있다. A dynamic workload processing device that dynamically processes a workload for providing a service according to an embodiment of the present invention includes a memory that stores at least one command; and an edge server 210 including a processor that executes at least one command.

이때 에지 서버(210)의 프로세서는 적어도 하나 이상의 명령을 수행함으로써, 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하고, 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하고, 로컬 정보에 기반하여 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리한다. At this time, the processor of the edge server 210 obtains task information necessary to support a user service request by performing at least one command, and obtains local information of a data source for processing a task corresponding to the task information, Based on local information, the workload for processing tasks corresponding to task information is dynamically processed.

설명의 편의상 대상 노드가 속하는 클러스터를 제1 클러스터로 표시하고, 제1 클러스터 이외의 클러스터를 제2 클러스터로 구분하여 표시할 수 있다. For convenience of explanation, the cluster to which the target node belongs can be displayed as a first cluster, and clusters other than the first cluster can be displayed as second clusters.

프로세서는, 워크로드를 동적으로 처리함에 있어서, 로컬 정보에 기반하여 워크로드의 순서, 및 워크로드의 수행 주체 중 적어도 하나 이상의 스케줄링을 동적으로 재구성할 수 있다. 워크로드의 수행 주체는 각 노드 자기 자신, 제1 클러스터 내의 다른 노드, 제2 클러스터의 노드, 및 에지 디바이스(250) 중 적어도 하나 이상을 포함할 수 있다. When dynamically processing a workload, the processor may dynamically reconfigure the order of the workload and the scheduling of at least one of the workload performers based on local information. The entity performing the workload may include at least one of each node itself, other nodes in the first cluster, nodes in the second cluster, and the edge device 250.

프로세서는, 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득함에 있어서, 특정한 노드가 속하는 제1 클러스터 내의 제어 계층(110)으로부터 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 요청하는 태스크 정보 요청을 수신할 수 있고, 태스크 정보 요청에 대응하는 사용자 서비스 요청을 분석하여 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득할 수 있다. In obtaining the task information necessary to support the user service request, the processor receives a task information request requesting the task information necessary to support the user service request from the control layer 110 in the first cluster to which the specific node belongs. It is possible to obtain task information necessary to support the user service request by analyzing the user service request corresponding to the task information request.

프로세서는, 데이터 소스의 로컬 정보를 획득함에 있어서, 제1 클러스터 내의 데이터 계층(130)으로부터 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득할 수 있다. 데이터 소스는 에지 디바이스(250) 중의 하나일 수 있다. 데이터 소스는 데이터 서비스를 수행하는 데 필요한 데이터를 보유하고 있는 에지 디바이스(250)를 의미할 수 있다. In obtaining local information of a data source, the processor may obtain local information of a data source for processing a task corresponding to task information from the data layer 130 in the first cluster. The data source may be one of the edge devices 250. A data source may refer to an edge device 250 that holds data necessary to perform a data service.

프로세서는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제1 근접 동적 워크로드 처리 노드의 정보를 획득할 수 있다. 데이터 소스의 로컬 정보는 데이터 소스의 지리적 위치, 데이터 소스에 가까운 위치의 노드들의 정보를 포함할 수 있다. 데이터 소스에 가까운 위치의 노드들 중 데이터 서비스의 수행에 필요한 워크로드의 적어도 일부를 분담하기 위해 선택된 노드를 설명의 편의상 제1 근접 동적 워크로드 처리 노드라 칭할 수 있다. 데이터 소스에 가까운 위치의 노드들 중 제1 근접 동적 워크로드 처리 노드를 선택하는 과정은 제1 클러스터 내의 노드들의 상호 협력적 동작에 의하여 수행될 수 있다. The processor may obtain information on a first proximate dynamic workload processing node located around the data source based on local information of the data source. The local information of the data source may include the geographical location of the data source and information on nodes located close to the data source. For convenience of explanation, a node selected to share at least a portion of the workload required to perform a data service among nodes located close to the data source may be referred to as a first adjacent dynamic workload processing node. The process of selecting a first proximate dynamic workload processing node among nodes located close to the data source may be performed through cooperative operations of nodes in the first cluster.

제1 근접 동적 워크로드 처리 노드는 제1 클러스터 내에 포함될 수도 있고, 제1 클러스터 내에 포함되지 않을 수도 있다. The first proximate dynamic workload processing node may or may not be included within the first cluster.

프로세서는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제1 근접 동적 워크로드 처리 노드의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다. In dynamically processing the workload, the processor may dynamically process the workload based on local information of the data source and information of the first adjacent dynamic workload processing node.

프로세서는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드가 포함되는 제2 클러스터의 정보를 획득할 수 있다. 데이터 소스에 가까운 위치의 노드들 중 워크로드의 처리를 분담하면서 제1 클러스터가 아닌 제2 클러스터에 속하는 노드를 설명의 편의상 근접 제2 동적 워크로드로 칭할 수 있다. The processor may obtain information of a second cluster including a second proximate dynamic workload processing node located around the data source based on local information of the data source. Among the nodes located close to the data source, a node that shares the processing of the workload and belongs to the second cluster rather than the first cluster may be referred to as a nearby second dynamic workload for convenience of explanation.

프로세서는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제2 클러스터의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다. When dynamically processing a workload, the processor may dynamically process the workload based on local information of the data source and information of the second cluster.

프로세서는, 제2 근접 동적 워크로드 처리 노드가 복수개인 경우에, 제2 클러스터 내의 복수개의 제2 근접 동적 워크로드 처리 노드들이 태스크 정보에 대응하는 태스크를 분산 처리하도록 워크로드를 동적으로 스케줄링할 수 있다. 즉, 워크로드의 동적 처리는 데이터 소스 주변의 노드들 중 어느 하나에 의하여 분담될 수도 있고, 데이터 소스 주변의 노드들을 포함하는 클러스터(제2 클러스터)에 의하여 분담될 수도 있다. 제2 클러스터 내의 복수개의 노드들이 워크로드를 분담하여 처리하는 경우에는 태스크의 처리가 제2 클러스터 내의 복수개의 노드들에 분산 할당될 수 있다. When there are a plurality of second proximate dynamic workload processing nodes, the processor may dynamically schedule the workload so that the plurality of second proximate dynamic workload processing nodes in the second cluster distribute and process tasks corresponding to the task information. there is. That is, dynamic processing of the workload may be shared by any one of the nodes around the data source, or by a cluster (second cluster) including nodes around the data source. When a plurality of nodes in the second cluster share and process the workload, task processing may be distributed and allocated to a plurality of nodes in the second cluster.

본 발명의 다른 일 실시예에 따른 동적 워크로드 처리 시스템은 제1 클러스터 내의 제어 계층(110)에 대응하는 제1 동적 워크로드 처리 노드; 및 제1 클러스터 내의 연산 계층(120)에 대응하는 제2 동적 워크로드 처리 노드를 포함한다. A dynamic workload processing system according to another embodiment of the present invention includes a first dynamic workload processing node corresponding to a control layer 110 in a first cluster; and a second dynamic workload processing node corresponding to the computational layer 120 in the first cluster.

이때 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 수신하고, 제2 동적 워크로드 처리 노드가 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 요청하는 태스크 정보 요청을 제2 동적 워크로드 처리 노드로 전달하고, 제2 동적 워크로드 처리 노드가 태스크 정보 요청에 대응하는 사용자 서비스 요청을 분석하여 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하고, 제2 동적 워크로드 처리 노드가 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하고, 제2 동적 워크로드 처리 노드가 로컬 정보에 기반하여 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리한다. At this time, the first dynamic workload processing node receives the user service request, and the second dynamic workload processing node transmits a task information request requesting task information necessary to support the user service request to the second dynamic workload processing node. And, the second dynamic workload processing node analyzes the user service request corresponding to the task information request to obtain task information necessary to support the user service request, and the second dynamic workload processing node performs the task corresponding to the task information. Local information of the data source for processing is acquired, and the second dynamic workload processing node dynamically processes the workload for processing the task corresponding to the task information based on the local information.

제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리함에 있어서, 로컬 정보에 기반하여 워크로드의 순서, 및 워크로드의 수행 주체 중 적어도 하나 이상의 스케줄링을 동적으로 재구성할 수 있다. When the second dynamic workload processing node dynamically processes the workload, the order of the workload and the scheduling of at least one of the workload performers may be dynamically reconfigured based on local information.

제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보를 획득함에 있어서, 제1 클러스터 내의 데이터 계층(130)에 대응하는 제1 근접 동적 워크로드 처리 노드로부터 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득할 수 있다. When the second dynamic workload processing node obtains local information of the data source, data for processing a task corresponding to the task information from the first proximate dynamic workload processing node corresponding to the data layer 130 in the first cluster Local information of the source can be obtained.

제2 동적 워크로드 처리 노드는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드의 정보를 획득할 수 있다. The second dynamic workload processing node may obtain information about a second adjacent dynamic workload processing node located around the data source based on local information of the data source.

제2 동적 워크로드 처리 노드는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제2 근접 동적 워크로드 처리 노드의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다. When dynamically processing the workload, the second dynamic workload processing node may dynamically process the workload based on local information of the data source and information of the second adjacent dynamic workload processing node.

제2 동적 워크로드 처리 노드는, 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드가 포함되는 제2 클러스터의 정보를 획득할 수 있다. The second dynamic workload processing node may obtain information of a second cluster including a second adjacent dynamic workload processing node located around the data source based on local information of the data source.

제2 동적 워크로드 처리 노드는, 워크로드를 동적으로 처리함에 있어서, 데이터 소스의 로컬 정보 및 제2 클러스터의 정보에 기반하여 워크로드를 동적으로 처리할 수 있다. The second dynamic workload processing node may dynamically process the workload based on local information of the data source and information of the second cluster.

연산 계층(120)에 대응하는 제2 동적 워크로드 처리 노드는, 제2 근접 동적 워크로드 처리 노드가 복수개인 경우에, 제2 클러스터 내의 복수개의 제2 근접 동적 워크로드 처리 노드들이 태스크 정보에 대응하는 태스크를 분산 처리하도록 워크로드를 동적으로 스케줄링할 수 있다. The second dynamic workload processing node corresponding to the operation layer 120 is, when there are a plurality of second proximate dynamic workload processing nodes, a plurality of second proximate dynamic workload processing nodes in the second cluster correspond to task information. Workloads can be dynamically scheduled to distribute tasks.

제2 동적 워크로드 처리 노드가 복수개인 경우에, 제1 동적 워크로드 처리 노드의 동작 실패 여부, 및 업데이트된 로컬 정보 중 적어도 하나 이상에 기반하여 복수개의 제2 동적 워크로드 처리 노드 중 하나가 제1 동적 워크로드 처리 노드를 대체하여 제어 계층(110)에 대응될 수 있다. When there are a plurality of second dynamic workload processing nodes, one of the plurality of second dynamic workload processing nodes is 1 It may correspond to the control layer 110 by replacing the dynamic workload processing node.

도 3은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 처리 방법을 도시하는 개념도이다.Figure 3 is a conceptual diagram illustrating a processing method executed in a dynamic workload processing device and system according to an embodiment of the present invention.

이하의 본 발명의 실시예에 따르면, 컨테이너 기반의 동적 워크로드 처리 시스템이 개시된다. 마이크로 서비스 기반의 컨테이너 아키텍처에 따르면 사용자가 기여하는 코드와 프레임워크 제공 구성 요소가 결합되어 사용자가 지정 가능한 워크플로우 정의 및 실행이 가능하다. 즉, 각 디바이스 또는 하위의 코드가 서로 다른 프로그래밍 언어 또는 기술로 구현되더라도 서로 독립적으로 분리되어 실행 및 결합되기 때문에 본 발명의 실시예에 따른 시스템을 활용하면 효율적으로 통합(integration) 관리될 수 있다.According to an embodiment of the present invention below, a container-based dynamic workload processing system is disclosed. According to the microservice-based container architecture, user-contributed code and framework-provided components are combined to define and execute user-specifiable workflows. In other words, even if each device or sub-code is implemented in a different programming language or technology, it can be efficiently integrated and managed by using the system according to the embodiment of the present invention because it is executed and combined independently from each other.

도 3을 참조하면 본 발명의 일 실시예에 따른 동적 워크로드 처리 시스템의 클러스터(100)는 제어 계층(110), 연산 계층(120), 및 데이터 계층(130)을 포함한다.Referring to FIG. 3, the cluster 100 of the dynamic workload processing system according to an embodiment of the present invention includes a control layer 110, an operation layer 120, and a data layer 130.

제어 계층(110)의 노드는 연산 계층(120)의 노드에 태스크 수행 신호를 전달할 수 있다(S310).The node of the control layer 110 may transmit a task performance signal to the node of the operation layer 120 (S310).

연산 계층(120)의 노드는 데이터 계층(130)의 노드에 데이터를 푸시할 수 있다(S320). The node of the computation layer 120 may push data to the node of the data layer 130 (S320).

연산 계층(120)의 노드는 데이터 계층(130)의 노드로부터 데이터를 풀링할 수 있다(S330).The nodes of the computation layer 120 may pool data from the nodes of the data layer 130 (S330).

연산 계층(120)의 노드는 제여 계층(110)의 노드에 태스크 완료 유무를 알릴 수 있다(S340).The node of the computation layer 120 may notify the node of the control layer 110 whether the task has been completed (S340).

클러스터(100) 내에서 처리된 데이터 서비스는 외부 트래픽 네트워크(340)를 경유하여 클라우드 서버(240) 또는 외부의 사용자에게 제공될 수 있다. 이때 로드 밸런서(350)가 부분적으로 외부 트래픽 네트워크(340)를 경유하는 트래픽을 스케줄링할 수 있다. Data services processed within the cluster 100 may be provided to the cloud server 240 or external users via the external traffic network 340. At this time, the load balancer 350 may partially schedule traffic passing through the external traffic network 340.

도 4는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템의 일부인 제어 계층(110)을 도시하는 개념도이다.FIG. 4 is a conceptual diagram illustrating a control layer 110 that is part of a dynamic workload processing device and system according to an embodiment of the present invention.

제어 계층(110)은 데이터 정의와 관련된 워크플로우의 실행에 관련된 결정을 수행할 수 있다. 워크플로우는 태스크 처리를 위한 일련의 순서를 의미한다. 제어 계층(110)은 오케스트레이터(112) 모듈을 포함하고, 오케스트레이터(112) 모듈은 전략 컨테이너(114)와 API 서버(116)를 포함할 수 있다. The control layer 110 may make decisions related to execution of workflows related to data definition. Workflow refers to a series of sequences for task processing. The control layer 110 includes an orchestrator 112 module, and the orchestrator 112 module may include a strategy container 114 and an API server 116.

오케스트레이터(112)는 연산 계층(120)에서 수행되는 태스크를 코디네이션할 수 있다. 제어 계층(110)에서 새로운 데이터를 처리할 수 있다는 알림을 사용자 또는 클라이언트로부터 받으면, 오케스트레이터(112)는 현재 새로 들어온 데이터를 처리하기 위해 어떤 유형의 태스크를 호출해야 하는 지에 대해 결정할 수 있다. Orchestrator 112 may coordinate tasks performed in the computation layer 120. When control layer 110 receives notification from a user or client that new data is available for processing, orchestrator 112 can determine what type of task should be invoked to process the current new data.

오케스트레이터(112)가 어떤 유형의 태스크를 호출해야 하는 지를 결정하고, 후술할 연산 계층(120)의 스마트 태스크 처리기(122) 모듈에서 태스크 로직 컨테이너(126)를 통해 태스크 종류 및 순서를 판단할 수 있다. 예를 들어, 세 개의 순차적 단계로 구성된 워크플로우에서 두 번째 단계에서 출력된 데이터 처리의 결과를 세 번째 단계의 인스턴스로 전달하는 경우가 위의 실시예에 해당될 수 있다. The orchestrator 112 determines what type of task to call, and determines the task type and order through the task logic container 126 in the smart task processor 122 module of the operation layer 120, which will be described later. there is. For example, in a workflow consisting of three sequential steps, the above embodiment may include transferring the result of data processing output from the second step to an instance of the third step.

오케스트레이터(112)는 중앙집중식이고 단일 오케스트레이터 인스턴스가 쿠버네티스 클러스터 내에 배포될 수 있다. 해당 오케스트레이터 인스턴스는 클러스터(100) 내의 모든 노드를 관장하는 역할을 수행할 수 있다. 오케스트레이터(112)는 전략 컨테이너(114)를 통해 단일 복제본 전략(single-replica strategy)를 추구할 수 있다. 본 발명의 일 실시예에서는 오케스트레이터(112)는 상태를 메모리에 저장하는 상태 저장 서비스(stateful service)이고, 멀티 복제본 전략을 사용하면 복제본 간의 상태를 저장, 공유를 위해 외부 솔루션과의 동기화 문제가 발생하기 때문에 단일 복제본 전략을 적용할 수 있다. 오케스트레이터(112)는 쿠버네티스 서비스를 통해 배포될 수 있다. Orchestrator 112 is centralized and a single orchestrator instance can be deployed within a Kubernetes cluster. The corresponding orchestrator instance may perform the role of managing all nodes within the cluster 100. The orchestrator 112 may pursue a single-replica strategy through the strategy container 114. In one embodiment of the present invention, the orchestrator 112 is a stateful service that stores the state in memory, and when a multi-replica strategy is used, synchronization problems with external solutions are eliminated for storing and sharing the state between replicas. Since this occurs, a single replica strategy can be applied. Orchestrator 112 may be deployed through a Kubernetes service.

시스템 전체에서 동일한 유형의 태스크 처리 인스턴스가 있을 수 있다. 오케스트레이터(112)의 전략 컨테이너(114)는 데이터 처리를 수행할 인스턴스 중 하나를 선택하고, 기존의 로드밸런싱 알고리즘(라운드로빈, 랜덤, 최소 연결 등)에 의존하는 대신 사용자 지정 라우팅 결정 알고리즘을 사용할 수 있다. 그리고 데이터 위치, 현재 워크로드, 다양한 리소스 가용성, 비용 등을 고려해서 라우팅 전략에 대하여 결정할 수 있다. 모든 워크로드 대상에 대한 정보를 동기적으로 처리하려면 상당한 성능 저하 및 비용 발생 문제가 생길 수 있기 때문에 라우팅 결정 등의 과정은 사전 계산되거나 비동기적으로 계산될 수 있다.There may be task processing instances of the same type throughout the system. The strategy container 114 of the orchestrator 112 selects one of the instances to perform data processing and uses a custom routing decision algorithm instead of relying on traditional load balancing algorithms (round robin, random, least connections, etc.). You can. You can then decide on a routing strategy by considering data location, current workload, availability of various resources, and cost. Because synchronous processing of information about all workload targets can result in significant performance degradation and cost issues, processes such as routing decisions can be pre-calculated or asynchronously calculated.

API 서버(116)는 종래 기술의 쿠버네티스의 API 서버 기능 및 구현에 필요한 사항을 부분적으로 채용할 수 있다. API 서버(116)는 분산 호스팅된 노드와 컴포넌트로부터 오는 요청을 전부 수신하고 클러스터(110) 내 노드들 간의 통신 그리고 외부 컴포넌트와 서로 통신할 수 있도록 HTTP API를 제공할 수 있다. The API server 116 may partially adopt the API server functions and implementation of Kubernetes in the prior art. The API server 116 may receive all requests from distributed hosted nodes and components and provide an HTTP API to enable communication between nodes within the cluster 110 and with external components.

도 5는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템의 일부인 연산 계층(120)을 도시하는 개념도이다.FIG. 5 is a conceptual diagram illustrating an operation layer 120 that is part of a dynamic workload processing device and system according to an embodiment of the present invention.

연산 계층(120)은 복수의 스마트 태스크 처리기(122) 모듈을 포함할 수 있다. 복수의 스마트 태스크 처리기(122) 모듈 각각은 제어 계층(110)의 오케스트레이터(112)에서 태스크 수행에 필요한 순서와 정의 정보를 전달받고, 태스크를 구성하고 워크플로우를 수행할 수 있다. 연산 계층(120)에서 실행 모델 순서는 다음과 같은 단순화되어 구현될 수 있다. Computational layer 120 may include a plurality of smart task processor 122 modules. Each of the plurality of smart task processor 122 modules receives order and definition information necessary for task performance from the orchestrator 112 of the control layer 110, configures tasks, and performs workflow. The execution model order in the computation layer 120 can be simplified and implemented as follows.

스마트 태스크 처리기(122) 모듈은 에이전트 컨테이너(124)와 태스크 로직 컨테이너(126)를 포함할 수 있다. 에이전트 컨테이너(124)는 연산을 수행할 수 있고, 태스크 로직 컨테이너(126)는 오케스트레이터(112)에서 제공하는 명령을 논리적으로 분석할 수 있다. 이 둘은 항상 사이드카 배치 패턴으로 형성될 수 있고, 서로 다른 컨테이너로 분리되어 있을 수 있다. The smart task processor 122 module may include an agent container 124 and a task logic container 126. The agent container 124 can perform operations, and the task logic container 126 can logically analyze commands provided by the orchestrator 112. These two can always be formed in a sidecar deployment pattern and can be separated into different containers.

데이터 단위의 입력이 스마트 태스크 처리기(122)로 입력될 수 있다. Data units may be input to the smart task processor 122.

태스크 로직 컨테이너(126)에 의하여 데이터를 논리적 처리할 수 있다. 논리적 처리란 데이터의 종류, 및/또는 양 등에 대한 정보를 분석하는 작업을 의미할 수 있다. 태스크 로직 컨테이너(126)는 오케스트레이터(112)에서 정의해 준 특정 태스크에 해당 데이터를 입력값으로 지정하고 태스크를 수행할 수 있다. Data can be logically processed by the task logic container 126. Logical processing may mean the task of analyzing information about the type and/or amount of data. The task logic container 126 can specify the data as input to a specific task defined by the orchestrator 112 and perform the task.

처리된 태스크에 대한 결과(출력)는 하나 또는 복수개일 수 있다. 태스크의 처리 결과에 대한 알림은 에이전트 컨테이너(124)를 통해 오케스트레이터(126)에게 전달될 수 있다.There may be one or multiple results (outputs) for the processed task. Notification of the processing results of the task may be delivered to the orchestrator 126 through the agent container 124.

에이전트 컨테이너(124)는 입력 데이터 검색, 처리 로직 호출, 출력 데이터 처리와 같은 단일 태스크의 컨텍스트에서 실행을 조정할 수 있다. 에이전트 컨테이너(124)는 다음과 같은 인터페이스를 제공할 수 있다. Agent container 124 can coordinate execution in the context of a single task, such as retrieving input data, invoking processing logic, and processing output data. The agent container 124 may provide the following interface.

에이전트 컨테이너(124)는 데이터 단위를 처리하기 위해 오케스트레이터(112)의 요청(태스크 수행 신호)을 수신할 수 있다. The agent container 124 may receive a request (task performance signal) from the orchestrator 112 to process a data unit.

에이전트 컨테이너(124)는 오케스트레이터(112)에서 받은 지침에 따라 후술할 데이터 계층(130)의 데이터 제어 매니저(132)와 통신해서 입력 데이터를 검색할 수 있다. The agent container 124 may retrieve input data by communicating with the data control manager 132 of the data layer 130, which will be described later, according to instructions received from the orchestrator 112.

에이전트 컨테이너(124)는 입력 데이터 정보를 기반으로 연산 수행을 위한 태스크 로직 컨테이너(126)를 호출 및 수행할 수 있다. The agent container 124 may call and perform the task logic container 126 to perform operations based on input data information.

연산 계층(120)에서 연산 수행이 완료되면 출력 데이터는 데이터 계층(130)의 데이터 제어 매니저(132)에게 전달(푸시)되고(S320), 새 데이터를 처리할 수 있게 되었음이 오케스트레이터(112)에게 통지될 수 있다. When the operation is completed in the computation layer 120, the output data is delivered (pushed) to the data control manager 132 of the data layer 130 (S320), and the orchestrator 112 is able to process new data. may be notified.

본 발명의 실시예에서 포함하는 연산 계층(120)은 프로그래밍 언어, OS 종류와 상관없이 어떠한 로직의 컨테이너든지 수행하고 처리할 수 있는 기능을 지원할 수 있다. 본 발명의 실시예에서는 입력 데이터와 출력 데이터에 대한 정의를 별도로 필요로 하지 않는다. The operation layer 120 included in the embodiment of the present invention can support the function of performing and processing any logic container regardless of programming language or OS type. In the embodiment of the present invention, separate definitions of input data and output data are not required.

도 6은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템의 일부인 데이터 계층(130)을 도시하는 개념도이다.FIG. 6 is a conceptual diagram illustrating a data layer 130 that is part of a dynamic workload processing device and system according to an embodiment of the present invention.

데이터 계층(130)은 데이터 제어 매니저(132) 모듈과 에지 스토리지(138) 모듈을 포함할 수 있다. 데이터 계층(130)은 데이터 처리에 관련된 모든 구성 요소를 포함할 수 있다. 예를 들어 데이터의 저장 및 검색, 필요한 워크로드에 대한 정보를 계산하기 위해 호스트(노드) 간에 데이터를 이동하는 기능이 포함될 수 있다. 데이터 전송 관리 컨테이너(134)는 RDMA(Remote Direct Memory Access) 방식을 통해 구현되고 이로 인하여 서로 다른 노드들 간에 데이터를 공유할 수 있다. RDMA는 하나의 노드의 메모리에 저장된 데이터를 전송할 때 CPU와 OS 커널의 개입없이 직접적으로 전송할 수 있는 방식이다. 해당 방식을 이용하면 워크플로우 실행에 필요한 각 단계 간의 데이터를 전달할 수 있다. 에지 스토리지(138)와의 모든 상호작용은 데이터 제어 매니저(132)를 통해 이루어질 수 있다. The data layer 130 may include a data control manager 132 module and an edge storage 138 module. The data layer 130 may include all components related to data processing. This may include the ability to move data between hosts (nodes), for example to store and retrieve data, and to compute information about required workloads. The data transfer management container 134 is implemented using RDMA (Remote Direct Memory Access), which allows data to be shared between different nodes. RDMA is a method that allows data stored in the memory of one node to be transmitted directly without the intervention of the CPU and OS kernel. Using this method, data can be passed between each step required to execute a workflow. All interactions with edge storage 138 may occur through data control manager 132.

데이터 전송 관리 컨테이너(134)는 태스크 수행에 필요한 입력 데이터 또는 출력 데이터를 검색하고 타 계층으로 전달하는 역할을 담당할 수 있다. The data transmission management container 134 may be responsible for retrieving input data or output data required to perform a task and delivering it to another layer.

에지 스토리지(138)는 클러스터(100) 내 모든 태스크와 관련된 정보들을 저장하는 저장소이며 파일시스템 방식으로 구동될 수 있다. 태스크와 태스크 사이의 입력데이터, 출력데이터, 노드 정보, 로컬 정보 등이 저장될 수 있다. The edge storage 138 is a storage that stores information related to all tasks within the cluster 100 and can be operated in a file system manner. Input data, output data, node information, local information, etc. between tasks can be stored.

데이터 전송 관리 컨테이너(136)는 데이터 푸시와 풀링을 관리할 수 있다. 에지 스토리지(138)를 통해 검색된 데이터는 파일에 저장되고 파일의 데이터만 에지 스토리지(138)로 업로드될 수 있다. 데이터 제어 매니저(132)는 쿠버네티스의 데몬셋 개념을 사용하여 배포될 수 있다. 클러스터(100)에 있는 모든 노드들은 로컬 스토리지를 활용하여 워크플로우에서 처리 중인 데이터를 저장할 수 있다. 데이터 전송 관리 컨테이너(136)가 데이터를 푸시/풀링하는 과정에 관여할 수 있다. 데이터 로컬 정보 관리 컨테이너(136)는 데이터에 대한 로컬 정보를 캡처하여 저장할 수 있다. The data transfer management container 136 can manage data pushing and pulling. Data retrieved through edge storage 138 is stored in a file, and only data in the file can be uploaded to edge storage 138. The data control manager 132 can be deployed using the DaemonSet concept of Kubernetes. All nodes in the cluster 100 can utilize local storage to store data being processed in a workflow. The data transfer management container 136 may be involved in the process of pushing/pulling data. The data local information management container 136 can capture and store local information about data.

본 발명의 일 실시예에 따른 데이터 로컬 정보 관리 컨테이너(134)는 데이터 소스의 지역/위치 정보를 이용함으로써 얻어지는 이점을 더욱 효과적으로 활용하기 위하여 하드 링크 방식을 사용할 수 있다. 일반적으로 하드 링크는 복사보다 더 빠른 작업이기 때문에 디렉토리 간 데이터 이동에 소요되는 시간을 더욱 단축할 수 있다. 볼륨은 기본 노드 파일 시스템의 디렉터리를 기반으로 하고 서로 다른 디렉터리가 포드(pod)에 서로 다른 볼륨으로 마운트되더라도 하드 링크의 해결은 노드 파일 시스템에 위임될 수 있다. 이를 통해 하드 링크는 서로 다른 포드에 장착된 볼륨을 교차할 수 있다. 이와는 대조적으로 심볼릭 링크는 특정 경로를 해결하려고 시도함으로써 모든 포드가 동일한 경로 아래에 동일한 볼륨을 탑재하지 않는 한 서로 다른 볼륨을 교차할 수 없다. The data local information management container 134 according to an embodiment of the present invention can use a hard link method to more effectively utilize the advantages obtained by using the region/location information of the data source. Since hard linking is generally a faster operation than copying, the time required to move data between directories can be further reduced. Volumes are based on directories in the underlying Node filesystem, and resolution of hard links can be delegated to the Node filesystem, even if different directories are mounted as different volumes in the pod. This allows hard links to cross volumes mounted on different pods. In contrast, symbolic links attempt to resolve a specific path, so they cannot cross different volumes unless all pods mount the same volume under the same path.

데이터 로컬 정보 관리 컨테이너(136)는 서로 다른 구성 요소의 데이터 정보를 기반으로 워크로드 스케줄링에 필요한 물리적 로컬정보를 제공할 수 있다. 로컬 정보는 데이터가 발생하는 에지 디바이스(250)의 지리적 위치, 에지 디바이스(250)의 하드웨어 정보, 에지 디바이스(250)와 인접하고 있는 다른 에지 디바이스 간의 위치 정보, 연결 정보 등을 포함할 수 있다. 데이터 로컬 정보 관리 컨테이너(136)는 다음과 특성을 가질 수 있다. The data local information management container 136 can provide physical local information necessary for workload scheduling based on data information of different components. Local information may include the geographical location of the edge device 250 where data is generated, hardware information of the edge device 250, location information between the edge device 250 and other adjacent edge devices, connection information, etc. The data local information management container 136 may have the following characteristics.

데이터 로컬 정보 관리 컨테이너(136)는 라우팅 정보 제공을 위해 연산 계층(120)과 데이터 계층(130) 양쪽에 로컬 정보를 제공할 수 있다.The data local information management container 136 may provide local information to both the operation layer 120 and the data layer 130 to provide routing information.

데이터 로컬 정보 관리 컨테이너(136)에서 데이터 소스와의 물리적 거리에 대한 정보가 계산될 수 있고, 계산된 정보는 클러스터(100) 내 모든 노드들에게 공유될 수 있다. Information about the physical distance to the data source may be calculated in the data local information management container 136, and the calculated information may be shared with all nodes in the cluster 100.

데이터 로컬 정보 관리 컨테이너(136)는 호스트 노드의 정보를 수집할 수 있을 만큼 세분화된 정보 필드에 기반하여 로컬 정보를 관리할 수 있다. The data local information management container 136 can manage local information based on information fields that are granular enough to collect information on host nodes.

도 7은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 계층 간 통신 프로토콜을 도시하는 개념도이다.Figure 7 is a conceptual diagram illustrating an inter-layer communication protocol in a dynamic workload processing device and system according to an embodiment of the present invention.

도 7을 참조하면, 사용자(클라이언트) (260)는 제어 계층(110)으로 서비스 요청을 전달할 수 있다(S410).Referring to FIG. 7, the user (client) 260 may transmit a service request to the control layer 110 (S410).

제어 계층(110)으로부터 연산 계층(120)으로 태스크 정보 요청이 전달될 수 있다(S420).A task information request may be transmitted from the control layer 110 to the operation layer 120 (S420).

연산 계층(120)에서 서비스 요청에 대응할 수 있는 태스크 정보가 계산되고, 태스크 정보가 연산 계층(120)으로부터 제어 계층(110)으로 회신될 수 있다(S430).Task information that can correspond to the service request is calculated in the computation layer 120, and the task information can be returned from the computation layer 120 to the control layer 110 (S430).

제어 계층(110)으로부터 데이터 계층(130)으로 태스크 정보에 관련되는 데이터 요청이 전달될 수 있다(S440). 데이터 계층(130)에서는 태스크 수행에 필요한 데이터를 연산 계층(120)으로 회신할 수 있다(S450). 연산 계층(120)에서 태스크 수행에 필요한 데이터에 기반하여 데이터 서비스를 위한 연산이 수행될 수 있다. 연산 계층(120)의 연산 후 서비스 정보가 연산 계층(120)으로부터 제어 계층(110)으로 전달될 수 있다(S460). A data request related to task information may be transmitted from the control layer 110 to the data layer 130 (S440). The data layer 130 may return data necessary for task performance to the computation layer 120 (S450). In the computation layer 120, computation for data service may be performed based on data required for task performance. After the operation of the operation layer 120, service information may be transferred from the operation layer 120 to the control layer 110 (S460).

제어 계층(110)으로부터 사용자(클라이언트)(260)로 서비스 지원 결과가 전달될 수 있다(S470).The service support result may be transmitted from the control layer 110 to the user (client) 260 (S470).

제어 계층(110)은 연산 계층(120)과 데이터 계층(130)과 연결되며 연산 계층(120)에서 필요로 하는 데이터가 데이터 계층(130)으로부터 연산 계층(120)으로 전달될 수 있도록 워크 플로우를 제어할 수 있다. The control layer 110 is connected to the computation layer 120 and the data layer 130 and establishes a workflow so that the data needed by the computation layer 120 can be transferred from the data layer 130 to the computation layer 120. You can control it.

연산 계층(120)은 서비스를 수행하기 위하여 필요한 태스크 정보를 연산할 수 있다. 예를 들어 사용자(260)가 요구한 데이터 서비스를 수행하기 위하여 필요한 태스크 정보는 A, B, C로 구성되어 있음을 연산 계층(120)이 분석하여 인식할 수 있다. The computation layer 120 can calculate task information necessary to perform a service. For example, the operation layer 120 may analyze and recognize that the task information required to perform the data service requested by the user 260 consists of A, B, and C.

연산 계층(120)은 서비스를 수행하는 데에 필요한 태스크 정보 A, B, C를 제어 계층(110)으로 회신할 수 있다(S430). 제어 계층(110)은 태스크 정보 A, B, C에 관련되는 데이터 소스의 정보 등을 확인하기 위하여 데이터 계층(130)의 노드에 데이터 소스의 정보를 요청할 수 있고, 태스크 정보 A, B, C를 수행하기 위하여 필요한 데이터를 데이터 계층(130)으로 요청할 수 있다(S440).The computation layer 120 may return task information A, B, and C required to perform the service to the control layer 110 (S430). The control layer 110 may request data source information from the node of the data layer 130 to check the data source information related to task information A, B, and C, and provide task information A, B, and C. Data necessary for execution can be requested from the data layer 130 (S440).

데이터 계층(130)은 태스크 A, B, C를 수행하기 위하여 필요한 데이터를 연산 계층(120)으로 회신할 수 있다(S450). 이때 데이터 계층(130)은 태스크 A, B, C를 수행하기 위하여 필요한 데이터 소스의 로컬 정보를 연산 계층(120)으로 회신할 수 있다. The data layer 130 may return the data necessary to perform tasks A, B, and C to the operation layer 120 (S450). At this time, the data layer 130 may return local information about the data source needed to perform tasks A, B, and C to the operation layer 120.

연산 계층(120)은 수신된 데이터 및 데이터 소스의 로컬 정보에 기반하여, 태스크 A, B, C의 수행에 필요한 워크로드를 동적으로 스케줄링할 수 있고, 동적으로 처리할 수도 있다. The computation layer 120 may dynamically schedule and dynamically process the workload required to perform tasks A, B, and C based on the received data and local information of the data source.

예를 들어 최초의 분석 시 태스크 A, B, C의 순서로 수행되는 것이 최적이라고 분석되었으나, 데이터 및 데이터 소스의 로컬 정보를 수신한 이후 태스크 A, C, B의 순서로 수행되는 것이 최적이라고 동적으로 스케줄링할 수 있다. For example, during the initial analysis, it was analyzed that it was optimal to perform tasks in the order of A, B, and C, but after receiving the data and local information of the data source, it was dynamically determined that it was optimal to perform tasks in the order of A, C, and B. You can schedule it.

도 7에서는 연산 계층(120)과 데이터 계층(130)이 완전히 분리된 실시예가 도시되었으나, 본 발명의 다른 실시예에서는 연산 계층(120)과 데이터 계층(130)에 동일한 노드가 할당되어 계층의 기능을 수행할 수도 있다. In Figure 7, an embodiment in which the calculation layer 120 and the data layer 130 are completely separated is shown, but in another embodiment of the present invention, the same node is allocated to the calculation layer 120 and the data layer 130 to perform the functions of the layers. You can also perform .

본 발명의 실시예에서는 제어 계층(110)의 노드와 연산 계층(120)/데이터 계층(130)의 노드는 구분되며, 제어 계층(110)의 노드는 데이터 처리 또는 연산을 직접 수행하지 않을 수 있다. In an embodiment of the present invention, the nodes of the control layer 110 and the nodes of the operation layer 120/data layer 130 are distinguished, and the nodes of the control layer 110 may not directly perform data processing or operations. .

본 발명의 일 실시예에서 데이터 처리 과정을 데이터 계층(130)이 아닌 연산 계층(120)에서 수행하도록 데이터 계층(130)과 연산 계층(120)을 분리하면 다음과 같은 장점을 얻을 수 있다. In one embodiment of the present invention, if the data layer 130 and the operation layer 120 are separated so that the data processing process is performed in the operation layer 120 rather than the data layer 130, the following advantages can be obtained.

본 발명의 일 실시예에 따르면, 마이크로서비스와 같은 모듈형 아키텍처 기반으로 데이터 서비스가 가능한 동적 워크로드 장치 및 시스템을 구현할 수 있다. 이러한 마이크로 서비스의 모듈형 아키텍쳐에 의하여 반복적인 태스크가 처리될 수 있도록 재사용성이 촉진될 수 있다. 예를 들어, 이미지 처리를 수행하는 컨테이너를 여러 데이터 소스의 이미지를 처리하는데 재사용할 수 있고, 동일한 데이터 결과값을 다른 컴퓨팅 단계에서 재사용할 수 있다. According to an embodiment of the present invention, a dynamic workload device and system capable of providing data services can be implemented based on a modular architecture such as microservices. The modular architecture of these microservices can promote reusability so that repetitive tasks can be processed. For example, a container that performs image processing can be reused to process images from multiple data sources, and the same data output can be reused in other computing steps.

또한 본 발명의 일 실시예에 따르면 각 데이터 소스 또는 에지 디바이스(250)를 구현하는 프로그래밍 언어가 달라도 서로 구성 요소가 통신하는데 문제가 없다. Additionally, according to an embodiment of the present invention, there is no problem in the components communicating with each other even if the programming language implementing each data source or edge device 250 is different.

도 8은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 동적 워크로드 처리 방법을 도시하는 동작 흐름도이다. FIG. 8 is an operational flowchart illustrating a dynamic workload processing method executed in a dynamic workload processing device and system according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제1 클러스터 내의 제어 계층(110)에 대응하는 제1 동적 워크로드 처리 노드를 경유하여 수신되는 사용자 서비스 요청을, 제1 클러스터 내의 연산 계층(120)에 대응하는 제2 동적 워크로드 처리 노드가 분석하여(S510) 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하는 단계(S520); 제2 동적 워크로드 처리 노드가 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하는 단계(S530); 및 제2 동적 워크로드 처리 노드가 로컬 정보에 기반하여 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리하는 단계(S540)를 포함한다. 이때 제1 동적 워크로드 처리 노드는 도 2의 마스터 노드(220)일 수 있고, 제2 동적 워크로드 처리 노드는 도 2의 워커 노드(230)일 수 있다. The dynamic workload processing method according to an embodiment of the present invention is to process a user service request received via a first dynamic workload processing node corresponding to the control layer 110 in the first cluster, to the operation layer in the first cluster. A second dynamic workload processing node corresponding to (120) analyzes (S510) and obtains task information necessary to support a user service request (S520); A second dynamic workload processing node acquiring local information of a data source for processing a task corresponding to the task information (S530); and a step in which the second dynamic workload processing node dynamically processes the workload for processing the task corresponding to the task information based on local information (S540). At this time, the first dynamic workload processing node may be the master node 220 of FIG. 2, and the second dynamic workload processing node may be the worker node 230 of FIG. 2.

제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계에서, 로컬 정보에 기반하여 워크로드의 순서, 및 워크로드의 수행 주체 중 적어도 하나 이상의 스케줄링이 동적으로 재구성될 수 있다. In the step where the second dynamic workload processing node dynamically processes the workload, the order of the workload and the scheduling of at least one of the workload performers may be dynamically reconfigured based on local information.

본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 수신하는 단계(S410); 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 요청하는 태스크 정보 요청을 제2 동적 워크로드 처리 노드로 전달하는 단계(S420)를 더 포함할 수 있다. A dynamic workload processing method according to an embodiment of the present invention includes the steps of a first dynamic workload processing node receiving a user service request (S410); It may further include a step (S420) in which the first dynamic workload processing node transmits a task information request requesting task information necessary to support the user service request to the second dynamic workload processing node.

제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보를 획득하는 단계(S530)에서, 제1 클러스터 내의 데이터 계층(130)에 대응하는 제1 근접 동적 워크로드 처리 노드로부터 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보가 획득될 수 있다. In the step (S530) of the second dynamic workload processing node acquiring local information of the data source, a task corresponding to the task information is selected from the first adjacent dynamic workload processing node corresponding to the data layer 130 in the first cluster. Local information of the data source for processing may be obtained.

본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드의 정보를 획득하는 단계를 더 포함할 수 있다. The dynamic workload processing method according to an embodiment of the present invention includes the second dynamic workload processing node obtaining information about a second adjacent dynamic workload processing node located around the data source based on local information of the data source. Additional steps may be included.

제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계(S540)에서, 데이터 소스의 로컬 정보 및 제2 근접 동적 워크로드 처리 노드의 정보에 기반하여 워크로드가 동적으로 처리될 수 있다. In the step (S540) in which the second dynamic workload processing node dynamically processes the workload, the workload may be dynamically processed based on local information of the data source and information of the second adjacent dynamic workload processing node.

본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제2 동적 워크로드 처리 노드가 데이터 소스의 로컬 정보에 기반하여 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드가 포함되는 제2 클러스터의 정보를 획득하는 단계를 더 포함할 수 있다. The dynamic workload processing method according to an embodiment of the present invention includes a second dynamic workload processing node where the second dynamic workload processing node includes a second proximate dynamic workload processing node located around the data source based on local information of the data source. A step of obtaining cluster information may be further included.

제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계(S540)에서, 데이터 소스의 로컬 정보 및 제2 클러스터의 정보에 기반하여 워크로드가 동적으로 처리될 수 있다. In the step (S540) in which the second dynamic workload processing node dynamically processes the workload, the workload may be dynamically processed based on local information of the data source and information of the second cluster.

제2 근접 동적 워크로드 처리 노드가 복수개인 경우에, 제2 동적 워크로드 처리 노드가 워크로드를 동적으로 처리하는 단계(S540)에서, 제2 동적 워크로드 처리 노드는, 제2 클러스터 내의 복수개의 제2 근접 동적 워크로드 처리 노드들이 태스크 정보에 대응하는 태스크를 분산 처리하도록 워크로드를 동적으로 스케줄링할 수 있다. When there are a plurality of second adjacent dynamic workload processing nodes, in the step (S540) of the second dynamic workload processing node dynamically processing the workload, the second dynamic workload processing node is connected to a plurality of adjacent dynamic workload processing nodes in the second cluster. The workload may be dynamically scheduled so that second adjacent dynamic workload processing nodes distribute and process tasks corresponding to task information.

본 발명의 일 실시예에 따른 동적 워크로드 처리 방법은, 제2 동적 워크로드 처리 노드가 복수개인 경우에, 제1 동적 워크로드 처리 노드의 동작 실패 여부, 및 업데이트된 로컬 정보 중 적어도 하나 이상에 기반하여 복수개의 제2 동적 워크로드 처리 노드 중 하나를 제1 동적 워크로드 처리 노드를 대체하여 제어 계층(110)에 대응시키는 단계를 더 포함할 수 있다. The dynamic workload processing method according to an embodiment of the present invention is based on at least one of whether the first dynamic workload processing node fails to operate and updated local information when there are a plurality of second dynamic workload processing nodes. Based on this, a step of replacing one of the plurality of second dynamic workload processing nodes with the first dynamic workload processing node and corresponding to the control layer 110 may be further included.

도 9는 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 동적 워크로드 스케줄링의 시나리오를 도시하는 개념도이다.FIG. 9 is a conceptual diagram illustrating a scenario of dynamic workload scheduling executed in a dynamic workload processing device and system according to an embodiment of the present invention.

도 9를 참조하면 연산 계층(120)에서 스마트 태스크 처리기(122) 모듈은 동일한 연산 유형의 복수개의 인스턴스가 병렬로 실행되도록 구현될 수 있다. Referring to FIG. 9, the smart task processor 122 module in the computation layer 120 may be implemented so that multiple instances of the same computation type are executed in parallel.

도 9에는 동일한 연산 유형의 복수개의 인스턴스로서 이미지 처리용 인스턴스가 개시된다. In Figure 9, an instance for image processing is disclosed as a plurality of instances of the same operation type.

도 10은 본 발명의 일 실시예에 따른 동적 워크로드 처리 장치 및 시스템에서 실행되는 동적 워크로드 스케줄링의 시나리오를 도시하는 개념도이다.FIG. 10 is a conceptual diagram illustrating a scenario of dynamic workload scheduling executed in a dynamic workload processing device and system according to an embodiment of the present invention.

도 10을 참조하면 연산 계층(120)에서 스마트 태스크 처리기(122) 모듈은 동일한 연산 유형의 복수 개의 인스턴스가 여러 호스트(노드)에 분산될 수 있다.Referring to FIG. 10, in the computation layer 120, the smart task processor 122 module may have multiple instances of the same computation type distributed across multiple hosts (nodes).

데이터 서비스를 수행하기 위한 태스크 1, 2, 3이 호스트(노드) 1, 2, ??. n에 분산되어 처리되도록 할당될 수 있다. Tasks 1, 2, and 3 to perform data services are connected to hosts (nodes) 1, 2, and ??. It can be allocated to be distributed and processed among n.

도 11은 도 1 내지 도 10의 과정의 적어도 일부를 수행할 수 있는 일반화된 동적 워크로드 처리 장치, 동적 워크로드 처리 시스템 또는 컴퓨팅 시스템의 예시를 도시하는 개념도이다. FIG. 11 is a conceptual diagram illustrating an example of a generalized dynamic workload processing device, dynamic workload processing system, or computing system capable of performing at least a portion of the processes of FIGS. 1 to 10.

본 발명의 일 실시예에 따른 동적 워크로드 처리 방법의 적어도 일부의 과정은 도 11의 컴퓨팅 시스템(1000)에 의하여 실행될 수 있다. At least some processes of the dynamic workload processing method according to an embodiment of the present invention may be executed by the computing system 1000 of FIG. 11.

도 11을 참조하면, 본 발명의 일 실시예에 따른 컴퓨팅 시스템(1000)은, 프로세서(1100), 메모리(1200), 통신 인터페이스(1300), 저장 장치(1400), 입력 인터페이스(1500), 출력 인터페이스(1600) 및 버스(bus)(1700)를 포함하여 구성될 수 있다.Referring to FIG. 11, the computing system 1000 according to an embodiment of the present invention includes a processor 1100, a memory 1200, a communication interface 1300, a storage device 1400, an input interface 1500, and an output. It may be configured to include an interface 1600 and a bus 1700.

본 발명의 일 실시예에 따른 컴퓨팅 시스템(1000)은, 적어도 하나의 프로세서(processor)(1100) 및 상기 적어도 하나의 프로세서(1100)가 적어도 하나의 단계를 수행하도록 지시하는 명령어들(instructions)을 저장하는 메모리(memory)(1200)를 포함할 수 있다. 본 발명의 일 실시예에 따른 방법의 적어도 일부의 단계는 상기 적어도 하나의 프로세서(1100)가 상기 메모리(1200)로부터 명령어들을 로드하여 실행함으로써 수행될 수 있다. The computing system 1000 according to an embodiment of the present invention includes at least one processor 1100 and instructions instructing the at least one processor 1100 to perform at least one step. It may include a memory 1200 for storing. At least some steps of the method according to an embodiment of the present invention may be performed by the at least one processor 1100 loading instructions from the memory 1200 and executing them.

프로세서(1100)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. The processor 1100 may refer to a central processing unit (CPU), a graphics processing unit (GPU), or a dedicated processor on which methods according to embodiments of the present invention are performed.

메모리(1200) 및 저장 장치(1400) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(1200)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다. Each of the memory 1200 and the storage device 1400 may be comprised of at least one of a volatile storage medium and a non-volatile storage medium. For example, the memory 1200 may be comprised of at least one of read only memory (ROM) and random access memory (RAM).

또한, 컴퓨팅 시스템(1000)은, 무선 네트워크를 통해 통신을 수행하는 통신 인터페이스(1300)를 포함할 수 있다. Additionally, the computing system 1000 may include a communication interface 1300 that performs communication through a wireless network.

또한, 컴퓨팅 시스템(1000)은, 저장 장치(1400), 입력 인터페이스(1500), 출력 인터페이스(1600) 등을 더 포함할 수 있다.Additionally, the computing system 1000 may further include a storage device 1400, an input interface 1500, an output interface 1600, etc.

또한, 컴퓨팅 시스템(1000)에 포함된 각각의 구성 요소들은 버스(bus)(1700)에 의해 연결되어 서로 통신을 수행할 수 있다.Additionally, each component included in the computing system 1000 may be connected by a bus 1700 and communicate with each other.

본 발명의 컴퓨팅 시스템(1000)의 예를 들면, 통신 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant) 등일 수 있다.Examples of the computing system 1000 of the present invention include a communication capable desktop computer, laptop computer, laptop, smart phone, tablet PC, and mobile phone. (mobile phone), smart watch, smart glass, e-book reader, PMP (portable multimedia player), portable game console, navigation device, digital camera, DMB (digital) It may be a multimedia broadcasting player, digital audio recorder, digital audio player, digital video recorder, digital video player, PDA (Personal Digital Assistant), etc. .

본 발명의 실시예에 따른 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽힐 수 있는 정보가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.The operation of the method according to the embodiment of the present invention can be implemented as a computer-readable program or code on a computer-readable recording medium. Computer-readable recording media include all types of recording devices that store information that can be read by a computer system. Additionally, computer-readable recording media can be distributed across networked computer systems so that computer-readable programs or codes can be stored and executed in a distributed manner.

또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.Additionally, computer-readable recording media may include hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, etc. Program instructions may include not only machine language code such as that created by a compiler, but also high-level language code that can be executed by a computer using an interpreter, etc.

본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시 예에서, 가장 중요한 방법 단계들의 적어도 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.Although some aspects of the invention have been described in the context of an apparatus, it may also refer to a corresponding method description, where a block or device corresponds to a method step or feature of a method step. Similarly, aspects described in the context of a method may also be represented by corresponding blocks or items or features of a corresponding device. Some or all of the method steps may be performed by (or using) a hardware device, such as a microprocessor, programmable computer, or electronic circuit, for example. In some embodiments, at least one or more of the most important method steps may be performed by such an apparatus.

실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그래머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그래머블 게이트 어레이(field-programmable gate array)는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서(microprocessor)와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.In embodiments, a programmable logic device (e.g., a field programmable gate array) may be used to perform some or all of the functionality of the methods described herein. In embodiments, a field-programmable gate array may operate in conjunction with a microprocessor to perform one of the methods described herein. In general, the methods are preferably performed by some hardware device.

이상 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the present invention has been described with reference to preferred embodiments of the present invention, those skilled in the art may make various modifications and changes to the present invention without departing from the spirit and scope of the present invention as set forth in the claims below. You will understand that it is possible.

Claims (20)

서비스를 제공하기 위한 워크로드를 동적으로 처리하는 동적 워크로드 처리 장치로서,
적어도 하나 이상의 명령을 저장하는 메모리(memory); 및
상기 적어도 하나 이상의 명령을 수행하는 프로세서(processor);
를 포함하고,
상기 프로세서는 상기 적어도 하나 이상의 명령을 수행함으로써,
사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하고,
상기 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하고,
상기 로컬 정보에 기반하여 상기 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리하는,
동적 워크로드 처리 장치.
A dynamic workload processing device that dynamically processes workloads to provide services,
A memory that stores at least one command; and
A processor that performs the at least one command;
Including,
The processor performs the at least one instruction,
Obtain necessary task information to support user service requests,
Obtain local information of a data source for processing a task corresponding to the task information,
Dynamically processing a workload for processing a task corresponding to the task information based on the local information,
Dynamic workload processing unit.
제1항에 있어서,
상기 프로세서는,
상기 워크로드를 동적으로 처리함에 있어서,
상기 로컬 정보에 기반하여 상기 워크로드의 순서, 및 상기 워크로드의 수행 주체 중 적어도 하나 이상의 스케줄링을 동적으로 재구성하는,
동적 워크로드 처리 장치.
According to paragraph 1,
The processor,
In dynamically processing the workload,
Dynamically reconfiguring the scheduling of at least one of the order of the workload and the entity performing the workload based on the local information,
Dynamic workload processing unit.
제1항에 있어서,
상기 프로세서는,
상기 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득함에 있어서,
제1 클러스터 내의 제어 계층으로부터 상기 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 요청하는 태스크 정보 요청을 수신하고,
상기 태스크 정보 요청에 대응하는 상기 사용자 서비스 요청을 분석하여 상기 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하고,
상기 데이터 소스의 상기 로컬 정보를 획득함에 있어서,
상기 제1 클러스터 내의 데이터 계층으로부터 상기 태스크 정보에 대응하는 태스크를 처리하기 위한 상기 데이터 소스의 상기 로컬 정보를 획득하는,
동적 워크로드 처리 장치.
According to paragraph 1,
The processor,
In obtaining task information necessary to support the user service request,
Receiving a task information request requesting task information necessary to support the user service request from a control layer in the first cluster,
Analyzing the user service request corresponding to the task information request to obtain task information necessary to support the user service request,
In obtaining the local information of the data source,
Obtaining the local information of the data source for processing a task corresponding to the task information from a data layer in the first cluster,
Dynamic workload processing unit.
제1항에 있어서,
상기 프로세서는,
상기 데이터 소스의 상기 로컬 정보에 기반하여 상기 데이터 소스 주변에 위치하는 제1 근접 동적 워크로드 처리 노드의 정보를 획득하고,
상기 워크로드를 동적으로 처리함에 있어서,
상기 데이터 소스의 상기 로컬 정보 및 상기 제1 근접 동적 워크로드 처리 노드의 정보에 기반하여 상기 워크로드를 동적으로 처리하는,
동적 워크로드 처리 장치.
According to paragraph 1,
The processor,
Obtain information on a first proximate dynamic workload processing node located around the data source based on the local information of the data source,
In dynamically processing the workload,
Dynamically processing the workload based on the local information of the data source and information of the first proximate dynamic workload processing node,
Dynamic workload processing unit.
제1항에 있어서,
상기 프로세서는,
상기 데이터 소스의 상기 로컬 정보에 기반하여 상기 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드가 포함되는 제2 클러스터의 정보를 획득하고,
상기 워크로드를 동적으로 처리함에 있어서,
상기 데이터 소스의 상기 로컬 정보 및 상기 제2 클러스터의 정보에 기반하여 상기 워크로드를 동적으로 처리하는,
동적 워크로드 처리 장치.
According to paragraph 1,
The processor,
Obtaining information on a second cluster including a second proximate dynamic workload processing node located around the data source based on the local information of the data source,
In dynamically processing the workload,
Dynamically processing the workload based on the local information of the data source and the information of the second cluster,
Dynamic workload processing unit.
제5항에 있어서,
상기 제2 근접 동적 워크로드 처리 노드가 복수개인 경우에,
상기 프로세서는,
상기 제2 클러스터 내의 상기 복수개의 제2 근접 동적 워크로드 처리 노드들이 상기 태스크 정보에 대응하는 태스크를 분산 처리하도록 상기 워크로드를 동적으로 스케줄링하는,
동적 워크로드 처리 장치.
According to clause 5,
When the second adjacent dynamic workload processing node is plural,
The processor,
Dynamically scheduling the workload so that the plurality of second adjacent dynamic workload processing nodes in the second cluster distribute and process tasks corresponding to the task information,
Dynamic workload processing unit.
제1 클러스터 내의 제어 계층에 대응하는 제1 동적 워크로드 처리 노드; 및
상기 제1 클러스터 내의 연산 계층에 대응하는 제2 동적 워크로드 처리 노드;
를 포함하고,
상기 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 수신하고,
상기 제1 동적 워크로드 처리 노드가 상기 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 요청하는 태스크 정보 요청을 상기 제2 동적 워크로드 처리 노드로 전달하고,
상기 제2 동적 워크로드 처리 노드가 상기 태스크 정보 요청에 대응하는 상기 사용자 서비스 요청을 분석하여 상기 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하고,
상기 제2 동적 워크로드 처리 노드가 상기 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하고,
상기 제2 동적 워크로드 처리 노드가 상기 로컬 정보에 기반하여 상기 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리하는,
동적 워크로드 처리 시스템.
a first dynamic workload processing node corresponding to a control layer within the first cluster; and
a second dynamic workload processing node corresponding to a computational layer within the first cluster;
Including,
The first dynamic workload processing node receives a user service request,
The first dynamic workload processing node transmits a task information request requesting task information necessary to support the user service request to the second dynamic workload processing node,
The second dynamic workload processing node analyzes the user service request corresponding to the task information request to obtain task information necessary to support the user service request,
The second dynamic workload processing node acquires local information of a data source for processing a task corresponding to the task information,
The second dynamic workload processing node dynamically processes a workload for processing a task corresponding to the task information based on the local information,
Dynamic workload processing system.
제7항에 있어서,
상기 제2 동적 워크로드 처리 노드가 상기 워크로드를 동적으로 처리함에 있어서,
상기 로컬 정보에 기반하여 상기 워크로드의 순서, 및 상기 워크로드의 수행 주체 중 적어도 하나 이상의 스케줄링을 동적으로 재구성하는,
동적 워크로드 처리 시스템.
In clause 7,
When the second dynamic workload processing node dynamically processes the workload,
Dynamically reconfiguring the scheduling of at least one of the order of the workload and the entity performing the workload based on the local information,
Dynamic workload processing system.
제7항에 있어서,
상기 제2 동적 워크로드 처리 노드가 상기 데이터 소스의 상기 로컬 정보를 획득함에 있어서,
상기 제1 클러스터 내의 데이터 계층에 대응하는 제1 근접 동적 워크로드 처리 노드로부터 상기 태스크 정보에 대응하는 태스크를 처리하기 위한 상기 데이터 소스의 상기 로컬 정보를 획득하는,
동적 워크로드 처리 시스템.
In clause 7,
In the second dynamic workload processing node obtaining the local information of the data source,
Obtaining the local information of the data source for processing a task corresponding to the task information from a first proximal dynamic workload processing node corresponding to a data layer in the first cluster,
Dynamic workload processing system.
제7항에 있어서,
상기 제2 동적 워크로드 처리 노드는,
상기 데이터 소스의 상기 로컬 정보에 기반하여 상기 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드의 정보를 획득하고,
상기 워크로드를 동적으로 처리함에 있어서,
상기 데이터 소스의 상기 로컬 정보 및 상기 제2 근접 동적 워크로드 처리 노드의 정보에 기반하여 상기 워크로드를 동적으로 처리하는,
동적 워크로드 처리 시스템.
In clause 7,
The second dynamic workload processing node,
Obtain information about a second nearby dynamic workload processing node located around the data source based on the local information of the data source,
In dynamically processing the workload,
Dynamically processing the workload based on the local information of the data source and information of the second proximate dynamic workload processing node,
Dynamic workload processing system.
제7항에 있어서,
상기 제2 동적 워크로드 처리 노드는,
상기 데이터 소스의 상기 로컬 정보에 기반하여 상기 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드가 포함되는 제2 클러스터의 정보를 획득하고,
상기 워크로드를 동적으로 처리함에 있어서,
상기 데이터 소스의 상기 로컬 정보 및 상기 제2 클러스터의 정보에 기반하여 상기 워크로드를 동적으로 처리하는,
동적 워크로드 처리 시스템.
In clause 7,
The second dynamic workload processing node,
Obtaining information on a second cluster including a second proximate dynamic workload processing node located around the data source based on the local information of the data source,
In dynamically processing the workload,
Dynamically processing the workload based on the local information of the data source and the information of the second cluster,
Dynamic workload processing system.
제11항에 있어서,
상기 제2 근접 동적 워크로드 처리 노드가 복수개인 경우에,
상기 제2 동적 워크로드 처리 노드는,
상기 제2 클러스터 내의 상기 복수개의 제2 근접 동적 워크로드 처리 노드들이 상기 태스크 정보에 대응하는 태스크를 분산 처리하도록 상기 워크로드를 동적으로 스케줄링하는,
동적 워크로드 처리 시스템.
According to clause 11,
When the second adjacent dynamic workload processing node is plural,
The second dynamic workload processing node,
Dynamically scheduling the workload so that the plurality of second adjacent dynamic workload processing nodes in the second cluster distribute and process tasks corresponding to the task information,
Dynamic workload processing system.
제7항에 있어서,
상기 제2 동적 워크로드 처리 노드가 복수개인 경우에,
상기 제1 동적 워크로드 처리 노드의 동작 실패 여부, 및 업데이트된 상기 로컬 정보 중 적어도 하나 이상에 기반하여 상기 복수개의 제2 동적 워크로드 처리 노드 중 하나를 상기 제1 동적 워크로드 처리 노드를 대체하여 상기 제어 계층에 대응시키는,
동적 워크로드 처리 시스템.
In clause 7,
When there are multiple second dynamic workload processing nodes,
One of the plurality of second dynamic workload processing nodes replaces the first dynamic workload processing node based on whether the first dynamic workload processing node fails to operate and at least one of the updated local information. Corresponding to the control layer,
Dynamic workload processing system.
제1 클러스터 내의 제어 계층에 대응하는 제1 동적 워크로드 처리 노드를 경유하여 수신되는 사용자 서비스 요청을, 상기 제1 클러스터 내의 연산 계층에 대응하는 제2 동적 워크로드 처리 노드가 분석하여 상기 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 획득하는 단계;
상기 제2 동적 워크로드 처리 노드가 상기 태스크 정보에 대응하는 태스크를 처리하기 위한 데이터 소스의 로컬 정보를 획득하는 단계; 및
상기 제2 동적 워크로드 처리 노드가 상기 로컬 정보에 기반하여 상기 태스크 정보에 대응하는 태스크를 처리하기 위한 워크로드를 동적으로 처리하는 단계;
를 포함하는, 동적 워크로드 처리 방법.
A second dynamic workload processing node corresponding to a computation layer in the first cluster analyzes a user service request received via a first dynamic workload processing node corresponding to a control layer in the first cluster, and makes the user service request. Obtaining task information necessary to support;
acquiring, by the second dynamic workload processing node, local information of a data source for processing a task corresponding to the task information; and
dynamically processing, by the second dynamic workload processing node, a workload for processing a task corresponding to the task information based on the local information;
Dynamic workload processing method, including.
제14항에 있어서,
상기 제2 동적 워크로드 처리 노드가 상기 워크로드를 동적으로 처리하는 단계에서,
상기 로컬 정보에 기반하여 상기 워크로드의 순서, 및 상기 워크로드의 수행 주체 중 적어도 하나 이상의 스케줄링을 동적으로 재구성하는,
동적 워크로드 처리 방법.
According to clause 14,
In the step of the second dynamic workload processing node dynamically processing the workload,
Dynamically reconfiguring the scheduling of at least one of the order of the workload and the entity performing the workload based on the local information,
How to handle dynamic workloads.
제14항에 있어서,
상기 제1 동적 워크로드 처리 노드가 사용자 서비스 요청을 수신하는 단계;
상기 제1 동적 워크로드 처리 노드가 상기 사용자 서비스 요청을 지원하기 위하여 필요한 태스크 정보를 요청하는 태스크 정보 요청을 상기 제2 동적 워크로드 처리 노드로 전달하는 단계;
를 더 포함하고,
상기 제2 동적 워크로드 처리 노드가 상기 데이터 소스의 상기 로컬 정보를 획득하는 단계에서,
상기 제1 클러스터 내의 데이터 계층에 대응하는 제1 근접 동적 워크로드 처리 노드로부터 상기 태스크 정보에 대응하는 태스크를 처리하기 위한 상기 데이터 소스의 상기 로컬 정보를 획득하는,
동적 워크로드 처리 방법.
According to clause 14,
receiving, by the first dynamic workload processing node, a user service request;
transmitting, by the first dynamic workload processing node, a task information request requesting task information necessary to support the user service request to the second dynamic workload processing node;
It further includes,
In the step of the second dynamic workload processing node acquiring the local information of the data source,
Obtaining the local information of the data source for processing a task corresponding to the task information from a first proximate dynamic workload processing node corresponding to a data layer in the first cluster,
How to handle dynamic workloads.
제14항에 있어서,
상기 제2 동적 워크로드 처리 노드가 상기 데이터 소스의 상기 로컬 정보에 기반하여 상기 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드의 정보를 획득하는 단계;
를 더 포함하고,
상기 제2 동적 워크로드 처리 노드가 상기 워크로드를 동적으로 처리하는 단계에서,
상기 데이터 소스의 상기 로컬 정보 및 상기 제2 근접 동적 워크로드 처리 노드의 정보에 기반하여 상기 워크로드를 동적으로 처리하는,
동적 워크로드 처리 방법.
According to clause 14,
obtaining, by the second dynamic workload processing node, information of a second adjacent dynamic workload processing node located around the data source based on the local information of the data source;
It further includes,
In the step of the second dynamic workload processing node dynamically processing the workload,
Dynamically processing the workload based on the local information of the data source and information of the second proximate dynamic workload processing node,
How to handle dynamic workloads.
제14항에 있어서,
상기 제2 동적 워크로드 처리 노드가 상기 데이터 소스의 상기 로컬 정보에 기반하여 상기 데이터 소스 주변에 위치하는 제2 근접 동적 워크로드 처리 노드가 포함되는 제2 클러스터의 정보를 획득하는 단계;
를 더 포함하고,
상기 제2 동적 워크로드 처리 노드가 상기 워크로드를 동적으로 처리하는 단계에서,
상기 데이터 소스의 상기 로컬 정보 및 상기 제2 클러스터의 정보에 기반하여 상기 워크로드를 동적으로 처리하는,
동적 워크로드 처리 방법.
According to clause 14,
The second dynamic workload processing node obtaining information of a second cluster including a second adjacent dynamic workload processing node located around the data source based on the local information of the data source;
It further includes,
In the step of the second dynamic workload processing node dynamically processing the workload,
Dynamically processing the workload based on the local information of the data source and the information of the second cluster,
How to handle dynamic workloads.
제18항에 있어서,
상기 제2 근접 동적 워크로드 처리 노드가 복수개인 경우에,
상기 제2 동적 워크로드 처리 노드가 상기 워크로드를 동적으로 처리하는 단계에서,
상기 제2 동적 워크로드 처리 노드는, 상기 제2 클러스터 내의 상기 복수개의 제2 근접 동적 워크로드 처리 노드들이 상기 태스크 정보에 대응하는 태스크를 분산 처리하도록 상기 워크로드를 동적으로 스케줄링하는,
동적 워크로드 처리 방법.
According to clause 18,
When the second adjacent dynamic workload processing node is plural,
In the step of the second dynamic workload processing node dynamically processing the workload,
The second dynamic workload processing node dynamically schedules the workload so that the plurality of second adjacent dynamic workload processing nodes in the second cluster distribute and process tasks corresponding to the task information.
How to handle dynamic workloads.
제14항에 있어서,
상기 제2 동적 워크로드 처리 노드가 복수개인 경우에,
상기 제1 동적 워크로드 처리 노드의 동작 실패 여부, 및 업데이트된 상기 로컬 정보 중 적어도 하나 이상에 기반하여 상기 복수개의 제2 동적 워크로드 처리 노드 중 하나를 상기 제1 동적 워크로드 처리 노드를 대체하여 상기 제어 계층에 대응시키는 단계;
를 더 포함하는,
동적 워크로드 처리 방법.
According to clause 14,
When there are multiple second dynamic workload processing nodes,
One of the plurality of second dynamic workload processing nodes replaces the first dynamic workload processing node based on whether the first dynamic workload processing node fails to operate and at least one of the updated local information. Corresponding to the control layer;
Containing more,
How to handle dynamic workloads.
KR1020220148945A 2022-11-09 Container-based dynamic workload processing system, apparatus and method considering data local information KR20240067674A (en)

Publications (1)

Publication Number Publication Date
KR20240067674A true KR20240067674A (en) 2024-05-17

Family

ID=

Similar Documents

Publication Publication Date Title
US20220075643A1 (en) Unified resource management for containers and virtual machines
US11159411B2 (en) Distributed testing service
Singh Optimize cloud computations using edge computing
US10733019B2 (en) Apparatus and method for data processing
US20130073600A1 (en) Remote process execution management
US11206316B2 (en) Multiple model injection for a deployment cluster
CN105786603B (en) Distributed high-concurrency service processing system and method
US20130073601A1 (en) Remote process execution management
CN116601606A (en) Multi-tenant control plane management on a computing platform
CN103873534A (en) Method and device for application cluster migration
Huang et al. A geospatial hybrid cloud platform based on multi-sourced computing and model resources for geosciences
US11848983B2 (en) Remotely discover and map a network resource model in a cloud environment
CN116028163A (en) Method, device and storage medium for scheduling dynamic link library of container group
US11755297B2 (en) Compiling monoglot function compositions into a single entity
CN113472638B (en) Edge gateway control method, system, device, electronic equipment and storage medium
KR20240067674A (en) Container-based dynamic workload processing system, apparatus and method considering data local information
CN114625479A (en) Cloud edge collaborative application management method in edge computing and corresponding device
CN114969199A (en) Method, device and system for processing remote sensing data and storage medium
Benomar et al. Deviceless: A serverless approach for the Internet of Things
CN113296913A (en) Data processing method, device and equipment based on single cluster and storage medium
US11507433B2 (en) Infrastructure load balancing using software-defined networking controllers
Trifunovic et al. Cloud deployment and management of dataflow engines
US20230418681A1 (en) Intelligent layer derived deployment of containers
CN116069481B (en) Container scheduling system and scheduling method for sharing GPU resources
US11526286B1 (en) Adaptive snapshot chunk sizing for snapshots of block storage volumes