KR102648743B1 - Apparatus for determining of tree, network switch apparatus, system of in-network data aggregation including the same and method thereof - Google Patents

Apparatus for determining of tree, network switch apparatus, system of in-network data aggregation including the same and method thereof Download PDF

Info

Publication number
KR102648743B1
KR102648743B1 KR1020220014865A KR20220014865A KR102648743B1 KR 102648743 B1 KR102648743 B1 KR 102648743B1 KR 1020220014865 A KR1020220014865 A KR 1020220014865A KR 20220014865 A KR20220014865 A KR 20220014865A KR 102648743 B1 KR102648743 B1 KR 102648743B1
Authority
KR
South Korea
Prior art keywords
slot
key
stored
network switch
switch device
Prior art date
Application number
KR1020220014865A
Other languages
Korean (ko)
Other versions
KR20230049526A (en
Inventor
백상헌
한솔
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to PCT/KR2022/001952 priority Critical patent/WO2023058829A1/en
Publication of KR20230049526A publication Critical patent/KR20230049526A/en
Application granted granted Critical
Publication of KR102648743B1 publication Critical patent/KR102648743B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • H04L41/0897Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 방법에 관한 것으로, 인-네트워크 관리 장치는 적어도 하나의 네트워크 스위치 장치에 대한 정보를 전달 받는 통신부 및 상기 네트워크 스위치 장치에 대한 정보를 기반으로 복수의 쿼리에 대응하는 복수의 집약 트리를 생성하고, 상기 복수의 집약 트리를 병합하고, 병합된 집약 트리를 기반으로 상기 복수의 집약 트리 중 적어도 하나의 집약 트리에 대해 재구축된 집약 트리를 생성하는 프로세서를 포함할 수 있다.It relates to an in-network management device, a network switch, and an in-network data collection system and method, wherein the in-network management device is based on a communication unit that receives information about at least one network switch device and information about the network switch device. Generate a plurality of aggregate trees corresponding to a plurality of queries, merge the plurality of aggregate trees, and create a reconstructed aggregate tree for at least one aggregate tree among the plurality of aggregate trees based on the merged aggregate tree. May include a processor that generates

Description

인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 방법{APPARATUS FOR DETERMINING OF TREE, NETWORK SWITCH APPARATUS, SYSTEM OF IN-NETWORK DATA AGGREGATION INCLUDING THE SAME AND METHOD THEREOF}In-network management device, network switch, in-network data aggregation system and method {APPARATUS FOR DETERMINING OF TREE, NETWORK SWITCH APPARATUS, SYSTEM OF IN-NETWORK DATA AGGREGATION INCLUDING THE SAME AND METHOD THEREOF}

인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 인-네트워크 데이터 집약 방법에 관한 것이다.It relates to an in-network management device, a network switch, an in-network data aggregation system, and an in-network data aggregation method.

종래에는 데이터 평면은 말단 사이에서 또는 말단과 서버 사이에서 단순히 패킷 전달 기능만을 수행하였으나, 최근에는 프로그래밍 가능한 데이터 평면 기술에 의해 보다 다양한 기능을 수행할 수 있게 되었다. 프로그래밍 가능한 데이터 평면 기술은, P4 등과 같이 데이터 평면의 동작에 관한 프로그래밍 언어를 이용하여 프로그래밍 가능한 네트워크 스위치나 네트워크 인터페이스 카드 등의 네트워크 장치를 프로그래밍하는 기술이다. 이들 프로그램을 이용하면, 네트워크 스위치의 파서, 매치-액션 스테이지 및 디-파서의 동작 등의 정의가 가능해지므로, 사용자가 원하는 기능을 유연하게 제공하면서 해당 기능을 보다 신속하게 처리할 수 있다.Previously, the data plane simply performed a packet forwarding function between endpoints or between endpoints and servers, but recently, programmable data plane technology has enabled it to perform more diverse functions. Programmable data plane technology is a technology for programming network devices such as programmable network switches or network interface cards using a programming language related to data plane operation, such as P4. Using these programs, it is possible to define the operations of the network switch's parser, match-action stage, and de-parser, allowing users to flexibly provide the functions they want and process the functions more quickly.

데이터 평면 기술의 발달에 따라 인-네트워크 컴퓨팅(In-network computing) 기술도 더불어 성장하고 있다. 인-네트워크 컴퓨팅 기술이란, 종래 서버 장치나 단말 장치 등에서 수행된 일련의 컴퓨팅 처리의 전부 또는 일부를 네트워크 내의 네트워크 스위치(switch)나 라우터(router) 등에서 수행할 수 있도록 하는 기술이다. 이러한 인-네트워크 컴퓨팅은, 컴퓨팅이 필요한 패킷이 컴퓨팅 서버로 우회함으로써 발생되는 지연 시간을 절감할 수 있을 뿐만 아니라, 소프트웨어 기반의 컴퓨팅 대신에 고성능의 하드웨어를 기반으로 컴퓨팅을 수행할 수 있으므로, 신속한 연산 처리가 가능하다.As data plane technology develops, in-network computing technology is also growing. In-network computing technology is a technology that allows all or part of a series of computing processes performed in conventional server devices or terminal devices to be performed by a network switch or router within a network. This in-network computing not only reduces the delay time caused by packets requiring computing being diverted to the computing server, but also allows computing to be performed based on high-performance hardware instead of software-based computing, allowing for faster computation. Processing is possible.

인-네트워크 컴퓨팅 기술 중에서 인-네트워크 집약(In-network aggregation) 기술이 존재한다. 인-네트워크 집약 기술은, 데이터의 전달 경로 상에 위치한 중간 노드(프로그래밍 가능한 네트워크 스위치 등)가 다른 노드나 단말로부터 데이터를 수신하고, 수신한 데이터를 집약한 후, 이를 다른 노드나 단말로 전달하는 기술이다. 인-네트워크 집약 기술은, 처리 지연 측면에서나 트래픽 부하 절감 차원에서 장점이 있어 최근 많은 주목을 받고 있다. 그러나, 통상 프로그래밍 가능한 네트워크 스위치는 메모리 용량이 수십 메가 바이트 정도로 극히 작은 반면에, 전송 및 처리될 데이터는 이보다 매우 크며, 그 크기가 때때로 수백 메가 바이트 정도를 갖는다. 이와 같이 데이터 용량 대비 네트워크 스위치의 상대적으로 부족한 메모리 용량 때문에, 노드 간에 전달되는 데이터의 집약은 오직 일부에 한하여 수행될 수밖에 없었고, 이는 인-네트워크 집약 성능의 향상에 주요 장애가 되고 있다.Among in-network computing technologies, in-network aggregation technology exists. In-network aggregation technology is a technology in which an intermediate node (programmable network switch, etc.) located on the data transmission path receives data from other nodes or terminals, aggregates the received data, and then delivers it to other nodes or terminals. It's technology. In-network integration technology has recently received a lot of attention due to its advantages in terms of processing delay and traffic load reduction. However, programmable network switches usually have extremely small memory capacities of tens of megabytes, while the data to be transmitted and processed is much larger, sometimes hundreds of megabytes in size. Due to the relatively insufficient memory capacity of the network switch compared to the data capacity, the aggregation of data transmitted between nodes can only be performed partially, which is a major obstacle to improving in-network aggregation performance.

한편, 데이터 센터 네트워크는 다수의 테넌트(tenant)에게 필요한 기능을 동시에 제공하기 위한 소프트웨어 멀티테넌시(software multitenancy) 기술을 사용하고 있는 추세이다. 멀티테넌시 기술의 경우에도, 자원 제약이나 트래픽 절감 등의 이유로 인-네트워크 집약이 필요한데, 최근에는 이러한 인-네트워크 집약을 위해서 균등 분할 방식이 이용되고 있다. 균등 분할 방식은 동시에 동작하는 기능의 집약을 위해서 네트워크 스위치의 가용 자원을 균등하게 분할하여 각 기능에 독점 할당하는 기술이다. 그러나, 자원의 균등 분할 방식은, 실행되는 기능의 개수에 따라 특정한 메모리 파티션이 사용되지 않거나 또는 특정 기능에 할당된 메모리 파티션을 타 기능에 재활용하는 것이 불가능한 문제점이 있다. 이는 네트워크 스위치의 자원 낭비를 초래하고, 인-네트워크 집약 성능을 저하하는 원인이 된다.Meanwhile, data center networks are increasingly using software multitenancy technology to simultaneously provide necessary functions to multiple tenants. Even in the case of multi-tenancy technology, in-network integration is necessary for reasons such as resource constraints or traffic reduction, and recently, an equal division method has been used for such in-network integration. The equal division method is a technology that divides the available resources of a network switch equally and allocates them exclusively to each function in order to integrate functions that operate simultaneously. However, the equal division method of resources has a problem in that a specific memory partition is not used depending on the number of functions being executed, or a memory partition allocated to a specific function cannot be reused for other functions. This causes waste of network switch resources and deteriorates in-network integration performance.

생성된 데이터의 양과 가용 자원을 고려하여 네트워크 스위치를 최적으로 선택하고 메모리 파티션의 크기를 결정할 수 있는 인-네트워크 관리 장치, 인-네트워크 데이터 집약 시스템 및 인-네트워크 데이터 집약 방법을 제공하는 것을 해결하고자 하는 과제로 한다.The goal is to provide an in-network management device, an in-network data aggregation system, and an in-network data aggregation method that can optimally select a network switch and determine the size of the memory partition considering the amount of generated data and available resources. Make it a task.

또한, 상대적으로 적은 메모리 용량으로도 더 많은 집약을 수행할 수 있는 네트워크 스위치를 제공하는 것을 또 다른 해결하고자 하는 과제로 한다.In addition, another problem to be solved is to provide a network switch that can perform more aggregation even with a relatively small memory capacity.

상술한 과제를 해결하기 위하여 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 방법이 제공된다.In order to solve the above-mentioned problems, an in-network management device, a network switch, and an in-network data collection system and method are provided.

인-네트워크 관리 장치는, 적어도 하나의 네트워크 스위치 장치에 대한 정보를 전달 받는 통신부 및 상기 네트워크 스위치 장치에 대한 정보를 기반으로 복수의 쿼리에 대응하는 복수의 집약 트리를 생성하고, 상기 복수의 집약 트리를 병합하고, 병합된 집약 트리를 기반으로 상기 복수의 집약 트리 중 적어도 하나의 집약 트리에 대해 재구축된 집약 트리를 생성하는 프로세서를 포함할 수 있다.The in-network management device generates a plurality of aggregate trees corresponding to a plurality of queries based on a communication unit that receives information about at least one network switch device and information about the network switch device, and the plurality of aggregate trees It may include a processor that merges and generates a reconstructed aggregate tree for at least one aggregate tree among the plurality of aggregate trees based on the merged aggregate tree.

네트워크 스위치 장치는, 동작 서버 장치 또는 다른 네트워크 스위치 장치로부터 키-값의 쌍을 수신하는 통신부 및 해시 테이블의 슬롯이 공백 여부를 판단하고, 상기 해시 테이블의 슬롯이 공백이면 수신한 상기 키-값의 쌍을 상기 슬롯에 저장하고, 상기 해시 테이블의 슬롯이 공백이 아니면, 상기 슬롯에 기 저장된 키-값의 쌍의 키와 수신한 키를 비교하고, 비교 결과에 따라 상기 슬롯을 갱신하는 프로세서를 포함할 수 있다.The network switch device determines whether the slot of the hash table and the communication unit that receives the key-value pair from the operation server device or another network switch device are empty, and if the slot of the hash table is empty, the received key-value pair is A processor that stores the pair in the slot and, if the slot in the hash table is not empty, compares the key of the key-value pair previously stored in the slot with the received key, and updates the slot according to the comparison result. can do.

인-네트워크 데이터 집약 방법은, 적어도 하나의 네트워크 스위치 장치에 대한 정보를 전달 받는 단계, 상기 네트워크 스위치 장치에 대한 정보를 기반으로 복수의 쿼리에 대응하는 복수의 집약 트리를 생성하는 단계, 상기 복수의 집약 트리를 병합하는 단계 및 병합된 집약 트리를 기반으로 상기 복수의 집약 트리 중 적어도 하나의 집약 트리에 대해 재구축된 집약 트리를 생성하는 단계를 포함할 수 있다.The in-network data aggregation method includes receiving information about at least one network switch device, generating a plurality of aggregation trees corresponding to a plurality of queries based on the information about the network switch device, and the plurality of aggregation trees. It may include merging aggregate trees and generating a reconstructed aggregate tree for at least one aggregate tree among the plurality of aggregate trees based on the merged aggregate trees.

인-네트워크 데이터 집약 방법은, 적어도 하나의 네트워크 스위치 장치가 동작 서버 장치 또는 다른 네트워크 스위치 장치로부터 키-값의 쌍을 수신하는 단계, 해시 테이블의 슬롯이 공백 여부를 판단하는 단계, 상기 해시 테이블의 슬롯이 공백이면 수신한 상기 키-값의 쌍을 상기 슬롯에 저장하는 단계, 상기 해시 테이블의 슬롯이 공백이 아니면, 상기 슬롯에 기 저장된 키-값의 쌍의 키와 수신한 키를 비교하는 단계, 상기 비교에 따라 상기 슬롯에 기 저장된 키와 상기 수신한 키가 상이하면, 상기 슬롯에 기 저장된 키를 추출하고, 상기 수신한 키-값의 쌍을 상기 슬롯에 기 저장된 키에 대체하여 상기 슬롯에 기록하는 단계, 상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과와 다른 슬롯에 기 저장된 키에 대응하는 계수 결과를 서로 비교하는 단계 및 상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과가 다른 슬롯에 기 저장된 키에 대응하는 계수 결과보다 작으면, 상기 다른 슬롯에 기 저장된 키를 추출하고, 상기 슬롯에 기 저장된 키-값을 상기 다른 슬롯에 기 저장된 키에 대체하여 상기 다른 슬롯에 저장하는 단계를 포함할 수도 있다.The in-network data aggregation method includes the steps of: receiving, by at least one network switch device, a key-value pair from an operation server device or another network switch device; determining whether a slot in a hash table is empty; If the slot is empty, storing the received key-value pair in the slot; if the slot in the hash table is not empty, comparing the key of the key-value pair previously stored in the slot with the received key. , If the key pre-stored in the slot is different from the received key according to the comparison, the key pre-stored in the slot is extracted, and the received key-value pair is replaced with the key pre-stored in the slot to replace the key pre-stored in the slot. Comparing the stored coefficient result corresponding to the key pre-stored in the slot with the coefficient result corresponding to the key pre-stored in another slot, and the stored coefficient result corresponding to the key pre-stored in the slot in the other slot If it is smaller than the coefficient result corresponding to the key previously stored in the other slot, extracting the key previously stored in the other slot, replacing the key-value previously stored in the slot with the key previously stored in the other slot and storing it in the other slot. It may also include .

인-네트워크 데이터 집약 시스템은, 적어도 하나의 네트워크 스위치 장치 및 상기 네트워크 스위치 장치에 대한 정보를 기반으로 복수의 쿼리에 대응하는 복수의 집약 트리를 생성하고, 상기 복수의 집약 트리를 병합하고, 병합된 집약 트리를 기반으로 상기 복수의 집약 트리 중 적어도 하나의 집약 트리에 대해 재구축된 집약 트리를 생성하는 인-네트워크 관리 장치를 포함할 수 있다.The in-network data aggregation system generates a plurality of aggregation trees corresponding to a plurality of queries based on at least one network switch device and information about the network switch device, merges the plurality of aggregation trees, and merges the merged aggregation trees. It may include an in-network management device that generates a reconstructed aggregate tree for at least one aggregate tree among the plurality of aggregate trees based on the aggregate tree.

상술한 인-네트워크 관리 장치, 인-네트워크 데이터 집약 시스템 및 인-네트워크 데이터 집약 방법에 의하면, 멀티테넌시가 필요한 환경 하에서 데이터의 양과 가용 자원을 고려하여 네트워크 스위치를 최적으로 선택하고 이를 기반으로 집약 경로를 결정할 수 있게 되는 효과를 얻을 수 있다.According to the above-described in-network management device, in-network data aggregation system, and in-network data aggregation method, network switches are optimally selected in consideration of the amount of data and available resources in an environment requiring multi-tenancy, and aggregation is performed based on this. You can achieve the effect of being able to determine the route.

상술한 네트워크 스위치에 의하면, 상대적으로 적은 메모리 용량으로도 더 많은 집약을 수행할 수 있는 효과를 얻을 수 있다.According to the above-mentioned network switch, it is possible to achieve the effect of performing more aggregation even with a relatively small memory capacity.

상술한 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 인-네트워크 데이터 집약 방법에 의하면, 최적 선택된 각 네트워크 스위치의 메모리 파티션의 크기를 적응적으로 결정할 수 있게 되는 효과도 얻을 수 있다.According to the above-described in-network management device, network switch, in-network data aggregation system, and in-network data aggregation method, the effect of being able to adaptively determine the size of the memory partition of each optimally selected network switch can be obtained. .

상술한 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 인-네트워크 데이터 집약 방법에 의하면, 네트워크 경로 상에서의 집약 성능을 향상시킬 수 있어, 데이터에 대한 처리 시간을 단축시키고 해당 데이터에 대한 네트워크 트래픽을 절감할 수 있는 효과도 얻을 수 있다.According to the above-described in-network management device, network switch, in-network data aggregation system, and in-network data aggregation method, aggregation performance on the network path can be improved, thereby shortening the processing time for data and You can also achieve the effect of reducing network traffic.

도 1은 인-네트워크 데이터 집약 시스템의 일 실시예에 대한 개요도이다.
도 2는 집약 트리의 일 실시예에 대한 도면이다.
도 3은 인-네트워크 관리 장치의 일 실시예에 대한 블록도이다.
도 4 내지 도 11은 인-네트워크 관리 장치의 동작의 일 실시예를 설명하기 위한 제1 내지 제8 도이다.
도 12는 네트워크 스위치 장치의 일 실시예에 대한 블록도이다.
도 13 및 도 14는 네트워크 스위치 장치의 집약 동작의 일례를 설명하기 위한 제1 및 제2 도이다.
도 15는 발생 데이터 종류의 개수에 따른 집약 성능의 변화를 측정한 그래프이다.
도 16은 3개의 애플리케이션이 동시에 동작하는 멀티테넌시 환경 하에서 집약 경로 설정 방법에 따른 집약 성능의 변화를 도시한 그래프이다.
도 17은 인-네트워크 데이터 집약 방법의 일 실시예에 대한 흐름도이다.
도 18은 네트워크 스위치 장치의 집약 동작 과정의 일 실시예에 대한 흐름도이다.
1 is a schematic diagram of one embodiment of an in-network data aggregation system.
Figure 2 is a diagram of one embodiment of an aggregation tree.
Figure 3 is a block diagram of one embodiment of an in-network management device.
Figures 4 to 11 are first to eighth figures for explaining an embodiment of the operation of the in-network management device.
Figure 12 is a block diagram of an embodiment of a network switch device.
Figures 13 and 14 are first and second figures for explaining an example of integrated operation of a network switch device.
Figure 15 is a graph measuring the change in integration performance according to the number of generated data types.
Figure 16 is a graph showing the change in aggregation performance according to the aggregation path setting method in a multi-tenancy environment in which three applications operate simultaneously.
Figure 17 is a flowchart of an embodiment of an in-network data aggregation method.
Figure 18 is a flowchart of an embodiment of an integrated operation process of a network switch device.

이하 명세서 전체에서 동일 참조 부호는 특별한 사정이 없는 한 동일 구성요소를 지칭한다. 이하에서 사용되는 '부'가 부가된 용어는, 소프트웨어 및/또는 하드웨어로 구현될 수 있으며, 실시예에 따라 하나의 '부'가 하나의 물리적 또는 논리적 부품으로 구현되거나, 복수의 '부'가 하나의 물리적 또는 논리적 부품으로 구현되거나, 하나의 '부'가 복수의 물리적 또는 논리적 부품들로 구현되는 것도 가능하다. 명세서 전체에서 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 어떤 부분과 다른 부분이 상호 간에 물리적으로 연결되었음을 의미할 수도 있고, 및/또는 전기적으로 연결되었음을 의미할 수도 있다. 또한, 어떤 부분이 다른 부분을 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 부분 이외의 또 다른 부분을 제외하는 것이 아니며, 설계자의 선택에 따라서 또 다른 부분을 더 포함할 수 있음을 의미한다. 제1 내지 제N(N은 1 이상의 자연수) 등의 표현은, 적어도 하나의 부분(들)을 다른 부분(들)으로부터 구분하기 위한 것으로, 특별한 기재가 없는 이상 이들이 순차적임을 반드시 의미하지는 않는다. 또한 단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함할 수 있다.Throughout the specification below, the same reference signs refer to the same components unless there are special circumstances. Terms with the addition of 'unit' used below may be implemented as software and/or hardware, and depending on the embodiment, one 'unit' may be implemented as one physical or logical part, or a plurality of 'units' may be implemented. It is also possible to be implemented with one physical or logical part, or one 'part' to be implemented with a plurality of physical or logical parts. When a part is said to be connected to another part throughout the specification, this may mean that the part and the other part are physically connected to each other and/or electrically connected. In addition, when a part includes another part, this does not mean excluding another part other than the other part unless specifically stated to the contrary, and means that another part may be included depending on the designer's choice. do. Expressions such as the first to Nth (N is a natural number greater than or equal to 1) are intended to distinguish at least one part(s) from other part(s), and do not necessarily mean that they are sequential unless otherwise specified. Additionally, singular expressions may include plural expressions, unless the context clearly makes an exception.

이하 도 1 내지 도 16을 참조하여 인-네트워크 관리 장치 및 다수의 네트워크 스위치 장치를 포함하는 인-네트워크 데이터 집약 시스템의 일 실시예에 대해 설명하도록 한다.Hereinafter, an embodiment of an in-network data aggregation system including an in-network management device and a plurality of network switch devices will be described with reference to FIGS. 1 to 16.

도 1은 인-네트워크 데이터 집약 시스템의 일 실시예에 대한 개요도이고, 도 2는 집약 트리의 일 실시예에 대한 도면이다.FIG. 1 is a schematic diagram of an embodiment of an in-network data aggregation system, and FIG. 2 is a diagram of an embodiment of an aggregation tree.

도 1을 참조하면, 인-네트워크 데이터 집약 시스템(1)은 적어도 하나의 네트워크 스위치 장치(10: 10-1 내지 10-6)와 적어도 하나의 인-네트워크 관리 장치(100)를 포함할 수 있고, 실시예에 따라서 적어도 하나의 동작 서버 장치(90: 90-1 내지 90-k)를 포함할 수 있다. 각각의 네트워크 스위치 장치(10: 10-1 내지 10-6), 동작 서버 장치(90: 90-1 내지 90-k) 및 인-네트워크 관리 장치(100) 중 적어도 둘은 일방으로 또는 쌍방으로 데이터나 명령 등을 전달할 수 있도록, 유선 통신 네트워크 및 무선 통신 네트워크 중 적어도 하나를 통해 연결되어 있을 수 있다. 네트워크 스위치 장치(10: 10-1 내지 10-6) 동작 서버 장치(90) 및 인-네트워크 관리 장치(10) 각각의 개수는 사용자, 운영자 또는 설계자(이하 사용자 등)에 의해 임의적으로 정해질 수 있다. 무선 통신 네트워크는 근거리 무선 통신 네트워크(와이파이, 와이파이 다이렉트, 블루투스 또는 블루투스 저에너지 등) 및 원거리 무선 통신 네트워크(HSPA, HSPA+, LTE, LTE-Advanced, 5G 또는 6G 등) 중 적어도 하나를 포함할 수 있다.Referring to FIG. 1, the in-network data aggregation system 1 may include at least one network switch device 10 (10-1 to 10-6) and at least one in-network management device 100. , Depending on the embodiment, it may include at least one operation server device 90 (90-1 to 90-k). At least two of each network switch device (10: 10-1 to 10-6), operation server device (90: 90-1 to 90-k), and in-network management device (100) transmit data one-way or two-way. It may be connected through at least one of a wired communication network and a wireless communication network to transmit commands, commands, etc. The number of each of the network switch devices (10: 10-1 to 10-6), the operation server device (90), and the in-network management device (10) may be arbitrarily determined by the user, operator, or designer (hereinafter referred to as user, etc.). there is. The wireless communication network may include at least one of a short-range wireless communication network (Wi-Fi, Wi-Fi Direct, Bluetooth, or Bluetooth Low Energy, etc.) and a long-range wireless communication network (HSPA, HSPA+, LTE, LTE-Advanced, 5G or 6G, etc.).

인-네트워크 관리 장치(100)는, 도 2에 도시된 바와 같이, 외부의 단말 장치(2, 스마트폰, 태블릿 피씨, 데스크톱 컴퓨터 또는 랩톱 컴퓨터 등)과 유무선 통신 네트워크를 통해 통신을 수행하고, 만약 단말 장치(2)로부터 데이터, 명령 또는 질의(쿼리) 등을 수신하면, 해당 데이터, 명령 또는 질의를 각각의 동작 서버 장치(90: 90-1 내지 90-k)로 전달할 수 있다. 이 경우, 인-네트워크 관리 장치(100)는, 데이터, 명령 또는 질의 등을 동작 서버 장치(90: 90-1 내지 90-k)에 따라 분할하고, 분할된 데이터, 명령 또는 질의 등을 각각의 동작 서버 장치(90: 90-1 내지 90-k) 중 해당 동작 서버 장치(90: 90-1 내지 90-k 중 적어도 하나)에 할당 및 전달하여, 동작 서버 장치(90: 90-1 내지 90-k) 각각이 할당된 부분의 데이터, 명령 또는 질의를 처리하도록 할 수도 있다. 또한, 인-네트워크 관리 장치(100)는 다수의 네트워크 스위치 장치(10: 10-1 내지 10-12) 중 적어도 하나(일례로 10-1, 10-2, 10-3, 10-5, 10-7, 10-8, 10-10 및 10-12 등)를 이용하여 적어도 하나의 집약 트리(T1, 집약 경로)를 결정 및 생성하고, 적어도 하나의 집약 트리(T1)를 동작 서버 장치(90: 90-1 내지 90-k)나 네트워크 스위치 장치(10: 10-1 내지 10-12) 등으로 전달할 수도 있다. 여기서, 적어도 하나의 집약 트리(T1)는 멀티테넌시 인식 집약 트리를 포함할 수 있다.As shown in FIG. 2, the in-network management device 100 communicates with an external terminal device (2, smartphone, tablet PC, desktop computer or laptop computer, etc.) through a wired or wireless communication network, and if Upon receiving data, commands, or queries from the terminal device 2, the data, commands, or queries may be transmitted to each operation server device 90 (90-1 to 90-k). In this case, the in-network management device 100 divides data, commands, or queries, etc. according to the operation server devices (90: 90-1 to 90-k), and sends the divided data, commands, or queries to each By assigning and transferring to the corresponding operation server device (90: 90-1 to 90-k) among the operation server devices (90: 90-1 to 90-k), the operation server device (90: 90-1 to 90) -k) You can also have each handle its assigned portion of data, commands, or queries. In addition, the in-network management device 100 includes at least one of a plurality of network switch devices 10: 10-1 to 10-12 (for example, 10-1, 10-2, 10-3, 10-5, 10). -7, 10-8, 10-10, and 10-12, etc.) are used to determine and generate at least one aggregate tree (T1, an aggregate path), and at least one aggregate tree (T1) is operated by the operation server device 90. : 90-1 to 90-k) or a network switch device (10: 10-1 to 10-12). Here, at least one aggregate tree (T1) may include a multi-tenancy-aware aggregate tree.

동작 서버 장치(90-1 내지 90-3)는, 독립적으로 또는 종속적으로 인-네트워크 관리 장치(100)로부터 전달 받은 데이터, 명령 또는 질의에 대한 처리를 수행하고, 처리 결과를 다수의 네트워크 스위치 장치(10: 10-1 내지 10-12)를 기반으로 구축된 집약 트리(T1)를 통해 전달할 수 있다. 이 경우, 동작 서버 장치(90-1 내지 90-3)는 주어진 집약 트리(T1)에 따라 처리 결과가 집약, 전달될 수 있도록, 집약 트리(T1) 내에서 처리 결과를 최초로 전달 받을 네트워크 스위치 장치(10-1, 10-2)로 처리 결과를 전달할 수 있다.The operation server devices 90-1 to 90-3 independently or dependently process data, commands, or queries received from the in-network management device 100, and send the processing results to a plurality of network switch devices. It can be transmitted through an aggregate tree (T1) built based on (10: 10-1 to 10-12). In this case, the operation server devices 90-1 to 90-3 are network switch devices that will first receive the processing results within the aggregation tree (T1) so that the processing results can be aggregated and delivered according to the given aggregation tree (T1). The processing results can be delivered to (10-1, 10-2).

네트워크 스위치 장치(10: 10-1 내지 10-12)는, 처리 결과를 집약하고, 연결된 다음 네트워크 스위치 장치(10: 10-1 내지 10-12)로 집약 결과를 전달할 수 있다. 이 경우, 생성된 집약 트리(T1)에 해당하는 네트워크 스위치 장치(10: 10-1 내지 10-12)가, 처리 결과 또는 집약 결과의 수신과 처리 결과 또는 집약 결과에 대한 집약을 수행할 수 있다. 하나 또는 둘 이상의 네트워크 스위치 장치(일례로 10-1, 10-2, 10-3, 10-5, 10-7, 10-8, 10-10 및 10-12 등)를 경유하여 집약 처리된 결과는 최종적으로 인-네트워크 관리 장치(100)로 전달될 수 있으며, 인-네트워크 관리 장치(100)는 집약 처리된 결과를 저장하거나 또는 단말 장치(2) 등으로 전달할 수 있다.The network switch device (10: 10-1 to 10-12) may aggregate the processing results and transmit the integrated result to the next connected network switch device (10: 10-1 to 10-12). In this case, the network switch device (10: 10-1 to 10-12) corresponding to the generated aggregation tree (T1) may receive the processing result or the aggregation result and perform aggregation of the processing result or aggregation result. . Results aggregated via one or more network switch devices (e.g. 10-1, 10-2, 10-3, 10-5, 10-7, 10-8, 10-10, and 10-12) Can be finally transmitted to the in-network management device 100, and the in-network management device 100 can store the aggregated processing result or transmit it to the terminal device 2, etc.

이하 인-네트워크 관리 장치(100)의 구체적인 동작을 설명하도록 한다.Hereinafter, the specific operation of the in-network management device 100 will be described.

도 3은 인-네트워크 관리 장치의 일 실시예에 대한 블록도이고, 도 4 내지 도 11은 인-네트워크 관리 장치의 동작의 일 실시예를 설명하기 위한 제1 내지 제8 도이다.FIG. 3 is a block diagram of an embodiment of an in-network management device, and FIGS. 4 to 11 are first to eighth views for explaining an embodiment of the operation of the in-network management device.

도 3을 참조하면, 인-네트워크 관리 장치(100)는, 동작 서버 장치(90-1 내지 90-3) 및 네트워크 스위치 장치(10: 10-1 내지 10-12) 중 적어도 하나와 통신을 수행할 수 있는 동작 통신부(101)와, 트리(T1)의 결정 및 데이터 등의 배포 처리를 수행하기 위한 프로세서(110)를 포함할 수 있다. 실시예에 따라서, 인-네트워크 관리 장치(100)는 단말 장치(2) 등에서 전달되거나, 프로세서(110)의 처리 과정에서 획득하거나 또는 프로세서(110)의 처리 결과에 따라 획득한 데이터, 명령 또는 쿼리 등을 일시적 또는 비일시적으로 저장하는 저장부(102, 주기억장치 및 보조기억장치 중 적어도 하나를 포함 가능함)와, 사용자 등으로부터 명령을 수신하고 처리 결과 등을 시각적 또는 청각적으로 사용자 등에게 제공할 수 있는 유저 인터페이스(105, 키보드나 마우스 장치 등의 입력부 및/또는 디스플레이나 스피커 장치 등의 출력부를 포함할 수 있으며, 실시예에 따라서 통신 모듈이나 데이터 입출력 모듈 등을 포함할 수도 있음)를 더 포함할 수도 있다.Referring to FIG. 3, the in-network management device 100 performs communication with at least one of the operation server devices 90-1 to 90-3 and the network switch devices 10: 10-1 to 10-12. It may include a communication unit 101 capable of performing operations, and a processor 110 for determining the tree T1 and distributing data. Depending on the embodiment, the in-network management device 100 transmits data, commands, or queries transmitted from the terminal device 2, etc., acquired during processing of the processor 110, or acquired according to the processing result of the processor 110. A storage unit (102, which may include at least one of a main memory and an auxiliary memory) that temporarily or non-temporarily stores information, etc., and a storage unit (102) that receives commands from a user, etc. and visually or audibly provides processing results, etc. to the user, etc. It further includes a user interface (105, which may include an input unit such as a keyboard or mouse device and/or an output unit such as a display or speaker device, and may also include a communication module or a data input/output module, etc. depending on the embodiment). You may.

프로세서(110)는 정보 수집부(111), 트리 구성부(112), 트리 재구성부(113) 및 배포 처리부(114)를 포함할 수 있다. 정보 수집부(111), 트리 구성부(112), 트리 재구성부(113) 및 배포 처리부(114)는 논리적으로 및/또는 물리적으로 구분된 것일 수 있다.The processor 110 may include an information collection unit 111, a tree construction unit 112, a tree reconstruction unit 113, and a distribution processing unit 114. The information collection unit 111, tree construction unit 112, tree reconstruction unit 113, and distribution processing unit 114 may be logically and/or physically separated.

정보 수집부(111)는, 도 4에 도시된 바와 같이, 통신부(101)를 이용하여 각각의 네트워크 스위치 장치(10: 10-1 내지 10-12)로부터 집약 트리(T2) 구성에 필요한 정보를 획득할 수 있다. 집약 트리(T2) 구성에 필요한 정보는, 각 네트워크 스위치 장치(10: 10-1 내지 10-12)의 잔여 메모리 용량에 대한 정보를 포함할 수 있다. 잔여 메모리 용량에 대한 정보는, 예를 들어, 제1 네트워크 스위치 장치(10-1), 제2 네트워크 스위치 장치(10-2), 제8 네트워크 스위치 장치(10-8), 제9 네트워크 스위치 장치(10-9), 제10 네트워크 스위치 장치(10-10) 및 제12 네트워크 스위치 장치(10-12)는 4분의 3의 잔여 용량을 가지고 있고, 제3 네트워크 스위치 장치(10-3)는 사용 용량이 없고, 제4 네트워크 스위치 장치(10-4) 및 제11 네트워크 스위치 장치(10-11)는 절반의 잔여 용량을 가지고 있으며, 제5 네트워크 스위치 장치(10-5), 제6 네트워크 스위치 장치(10-6) 및 제7 네트워크 스위치 장치(10-7)는 4분의 1의 잔여 용량을 가지고 있다는 정보를 포함할 수 있다. 또한, 집약 트리(T1) 구성에 필요한 정보는 처리될 데이터의 양을 포함할 수 있다. 멀티테넌시 처리를 위한 경우, 데이터의 양은 각각의 애플리케이션의 명령 또는 쿼리로부터 발생하는 데이터의 양을 포함할 수도 있다.As shown in FIG. 4, the information collection unit 111 uses the communication unit 101 to collect information necessary for configuring the aggregation tree (T2) from each network switch device (10: 10-1 to 10-12). It can be obtained. Information required for configuring the aggregation tree (T2) may include information about the remaining memory capacity of each network switch device (10: 10-1 to 10-12). Information about the remaining memory capacity is, for example, the first network switch device 10-1, the second network switch device 10-2, the eighth network switch device 10-8, and the ninth network switch device. (10-9), the tenth network switch device (10-10) and the twelfth network switch device (10-12) have a remaining capacity of three quarters, and the third network switch device (10-3) has a remaining capacity of three quarters. There is no used capacity, the fourth network switch device (10-4) and the eleventh network switch device (10-11) have half of the remaining capacity, and the fifth network switch device (10-5) and the sixth network switch The device 10-6 and the seventh network switch device 10-7 may include information that they have a remaining capacity of one quarter. Additionally, information required to construct the aggregate tree (T1) may include the amount of data to be processed. For multi-tenancy processing, the amount of data may include the amount of data resulting from commands or queries of each application.

트리 구성부(112)는 수집한 정보를 이용하여 각각의 데이터, 명령 또는 쿼리에 대한 트리(T2)를 결정하여 생성할 수 있다. 이 경우, 생성된 트리(T2)는 슈타이너 트리(Steiner Tree)를 포함할 수도 있다. 즉, 트리 구성부(112)는, 슈타이너 트리 근사 알고리즘을 기반으로, 적어도 하나의 동작 서버 장치(90) 및 인-네트워크 관리 장치(100)는 단말로 하고, 네트워크 스위치 장치(10: 10-1 내지 10-12) 각각은 슈타이너 정점으로 하여 집약 트리(T2)를 구축할 수도 있다. 한편, 적어도 하나의 쿼리가 입력된 경우, 트리 구성부(112)는, 도 5 및 도 6에 도시된 바와 같이, 쿼리를 반영하여 적어도 하나의 쿼리 각각에 대응하는 집약 트리(T2-1, T2-2)를 생성할 수 있다. 예컨대, 두 개의 쿼리(제1 쿼리 및 제2 쿼리)가 입력되되 양 쿼리가 3대 2의 비율로 데이터를 생성하는 경우, 제1 쿼리에 대한 집약 트리(T2-1)는 도 5와 같이 생성될 수 있다. 예를 들어, 제1 쿼리의 처리 결과는, 제1 네트워크 스위치 장치(10-1)와 제2 네트워크 스위치 장치(10-2)로 각각 입력되고, 제3 네트워크 스위치 장치(10-3), 제5 네트워크 스위치 장치(10-5), 제6 네트워크 스위치 장치(10-6), 제8 네트워크 스위치 장치(10-8), 제10 네트워크 스위치 장치(10-10) 및 제12 네트워크 스위치 장치(10-12)를 거쳐 인-네트워크 관리 장치(100)로 전달된다. 한편 제2 쿼리에 대한 집약 트리(T2-2)는 도 6과 같이 생성될 수 있으며, 예를 들어, 제2 쿼리의 처리 결과는, 제1 네트워크 스위치 장치(10-1), 제3 네트워크 스위치 장치(10-3), 제5 네트워크 스위치 장치(10-5), 제6 네트워크 스위치 장치(10-6), 제8 네트워크 스위치 장치(10-8), 제10 네트워크 스위치 장치(10-10) 및 제12 네트워크 스위치 장치(10-12)를 거쳐 인-네트워크 관리 장치(100)로 전달되거나, 제11 네트워크 스위치 장치(10-11), 제10 네트워크 스위치 장치(10-10) 및 제12 네트워크 스위치 장치(10-12)를 거쳐 인-네트워크 관리 장치(100)로 전달된다.The tree constructor 112 may determine and create a tree (T2) for each data, command, or query using the collected information. In this case, the generated tree (T2) may include a Steiner Tree. That is, the tree configuration unit 112 uses at least one operation server device 90 and the in-network management device 100 as terminals, and the network switch device 10: 10-1, based on the Steiner tree approximation algorithm. to 10-12), each of which can be used as a Steiner vertex to construct an aggregate tree (T2). Meanwhile, when at least one query is input, the tree constructor 112 reflects the query, as shown in FIGS. 5 and 6, to create aggregate trees (T2-1, T2) corresponding to each of the at least one query. -2) can be created. For example, when two queries (a first query and a second query) are input, but both queries generate data at a ratio of 3 to 2, the aggregate tree (T2-1) for the first query is generated as shown in Figure 5. It can be. For example, the processing result of the first query is input to the first network switch device 10-1 and the second network switch device 10-2, respectively, and the third network switch device 10-3 and the third network switch device 10-3. 5 network switch device (10-5), 6th network switch device (10-6), 8th network switch device (10-8), 10th network switch device (10-10) and 12th network switch device (10) It is transmitted to the in-network management device 100 through -12). Meanwhile, the aggregate tree (T2-2) for the second query can be created as shown in FIG. 6. For example, the processing result of the second query is the first network switch device 10-1 and the third network switch. Device (10-3), fifth network switch device (10-5), sixth network switch device (10-6), eighth network switch device (10-8), tenth network switch device (10-10) and transmitted to the in-network management device 100 via the 12th network switch device 10-12, or the 11th network switch device 10-11, the 10th network switch device 10-10, and the 12th network. It is transmitted to the in-network management device 100 via the switch device 10-12.

제1 쿼리에 대한 집약 트리(T2-1) 및 제2 쿼리에 대한 집약 트리(T2-2)는 서로 다른 집약 트리(T2-2, T2-1)에 의해 소모되는 자원을 고려하지 않고 생성된 것이므로, 해당 집약 트리(T2-1, T2-2)를 그대로 이용하여 제1 쿼리 및 제2 쿼리에 대한 집약 처리를 수행하는 경우, 도 7에 도시된 바와 같이, 특정 네트워크 스위치 장치(10-1, 10-3, 10-5, 10-6, 10-8, 10-10, 10-12)에 대해선 과도하게 데이터가 집중되어, 집약 부하가 높은 반면에, 다른 네트워크 스위치 장치(10-4, 10-7, 10-9)에는 데이터가 전혀 집중되지 않아 자원 활용성이 극히 저하된다. 다시 말해서, 병합된 집약 트리(T2-3)에서 데이터 사용량이 더 큰 네트워크 스위치 장치(10-1, 10-3, 10-5, 10-6, 10-8, 10-10, 10-12)는, 더 많은 수의 쿼리에 의해 공유되거나 해당 장치(10-1, 10-3, 10-5, 10-6, 10-8, 10-10, 10-12)에서 더 많은 데이터를 집약해야 함을 의미한다.The aggregate tree (T2-1) for the first query and the aggregate tree (T2-2) for the second query are generated without considering the resources consumed by the different aggregate trees (T2-2, T2-1). Therefore, when performing intensive processing on the first query and the second query using the corresponding aggregation trees (T2-1, T2-2) as is, as shown in FIG. 7, a specific network switch device (10-1) , 10-3, 10-5, 10-6, 10-8, 10-10, 10-12), data is excessively concentrated and the concentration load is high, while other network switch devices (10-4, 10-7, 10-9), data is not concentrated at all, and resource utilization is extremely low. In other words, network switch devices (10-1, 10-3, 10-5, 10-6, 10-8, 10-10, 10-12) with greater data usage in the merged aggregate tree (T2-3). , must be shared by a larger number of queries or aggregate more data from those devices (10-1, 10-3, 10-5, 10-6, 10-8, 10-10, 10-12) means.

트리 재구성부(113)는, 데이터 집중에 따른 특정 장치(10-1, 10-3, 10-5, 10-6, 10-8, 10-10, 10-12)의 과부하를 해소하고 유휴 장치(10-4, 10-7, 10-9)를 활용하기 위하여, 먼저 각각의 쿼리에 대응하여 소모되는 자원을 기반으로 각 쿼리에 대한 집약 트리(T2-1, T2-2)를 재구성하여 새로운 집약 트리(도 10의 T2-6, 도 11의 T-7)를 생성한다. 구체적으로 예를 들어, 도 7 및 도 8에 도시된 바를 참조하면, 트리 재구성부(113)는, 제1 쿼리에 대한 집약 트리(T2-1) 및 제2 쿼리에 대한 집약 트리(T2-2)를 병합하여, 병합된 집약 트리(T2-3)을 획득한다. 구체적으로, 트리 재구성부(113)는 두 트리(T2-1, T2-2)가 공유하는 정점, 즉, 네트워크 스위치 장치(10-1, 10-3, 10-5, 10-6, 10-8, 10-10, 10-12)를 병합하여 병합된 집약 트리(T2-3)를 획득할 수도 있다. 이 경우, 모든 정점, 즉 네트워크 스위치 장치(10-1 내지 10-12)에 대해 병합을 수행하는 것도 가능하다. 네트워크 스위치 장치(10-1 내지 10-12)의 병합은, 제1 쿼리에 대한 집약 트리(T2-1)의 각 네트워크 스위치 장치(10-1 내지 10-12)의 데이터 사용량 및 제2 쿼리에 대한 집약 트리(T2-2)의 각 네트워크 스위치 장치(10-1 내지 10-12)의 데이터 사용량을 합하는 것을 포함한다. 필요에 따라 트리 재구성부(113)는, 각 집약 트리(T2-1, T2-2) 내의 네트워크 스위치 장치(10-1 내지 10-12)가 사용하는 데이터 양 각각에 대해 가중치를 부가하여 두 트리(T2-1, T2-2)가 공유하는 정점, 즉, 네트워크 스위치 장치(10-1, 10-3, 10-5, 10-6, 10-8, 10-10, 10-12)를 병합하는 것도 가능하다. 이어서, 트리 재구성부(113)는, 도 8에 도시된 것처럼, 병합 처리 결과를 참조하여, 상대적으로 데이터 처리 부하가 낮은 네트워크 스위치 장치(10-4, 10-7, 10-9) 중에서, 데이터 처리 부하가 높은 네트워크 스위치 장치(10-1, 10-3, 10-5, 10-6, 10-8, 10-10, 10-12)에 대해서 대응하는 네트워크 스위치 장치(10-4, 10-7, 10-9)를 검색한다. 예를 들어, 제3 네트워크 스위치 장치(10-3)에 대해서는 제4 네트워크 스위치 장치(10-4)를 검출하고, 제6 네트워크 스위치 장치(10-6)에 대해서는 제7 네트워크 스위치 장치(10-7)를 검출하며, 제10 네트워크 스위치 장치(10-10)에 대해서는 제9 네트워크 스위치 장치(10-9)를 검출한다. 이 경우, 과부화된 네트워크 스위치 장치(10-3, 10-6, 10-10)에 대응하는 네트워크 스위치 장치(10-4, 10-7, 10-9)는, 과부화된 정점(즉, 네트워크 스위치 장치(10-3, 10-6, 10-10))와 동일 레벨의 정점(즉, 네트워크 스위치 장치(10-4, 10-7, 10-9))이면서, 해당 네트워크 스위치 장치(10-4, 10-7, 10-9)로의 부하 마이그레이션(migration) 이후에도 전체적인 트리(T2-3)의 연결성이 유지되어야 하며 및/또는 마이그레이션 이후의 각 과부화된 정점(10-3, 10-6, 10-10)의 집약 부하가 마이그레이션 이전보다 작아져야 한다. 실시예에 따라, 모든 과부화된 네트워크 스위치 장치(10-1, 10-3, 10-5, 10-6, 10-8, 10-10, 10-12)에 대해 대응하는 네트워크 스위치 장치가 검출될 수도 있고, 또는 일부의 과부화된 네트워크 스위치 장치(10-3, 10-6, 10-10)에 대해서 대응하는 네트워크 스위치 장치(10-4, 10-7, 10-9)가 검출될 수도 있다. 대응하는 네트워크 스위치 장치(10-4, 10-7, 10-9)가 검출되면, 이에 응하여 과부화된 네트워크 스위치 장치(10-3, 10-6, 10-10)의 부하에 대한 마이그레이션이 진행된다. 마이그레이션은, 제1 쿼리에 대한 집약 트리(T2-1) 및 제2 쿼리에 대한 집약 트리(T2-2) 중 적어도 하나의 네트워크 스위치 장치(10-3, 10-6, 10-10)에 대해 수행될 수 있다. 예를 들어, 도 8에 도시된 바와 같이, 제2 쿼리에 대한 집약 트리(T2-2) 내의 데이터 처리 부하가 높은 네트워크 스위치 장치(10-3, 10-6, 10-10)의 부하가, 이에 대응하고 데이터 처리 부하가 낮은 다른 네트워크 스위치 장치(10-4, 10-7, 10-9)로 이전될 수 있다. 상술한 검출 및 마이그레이션은 순차적으로 수행될 수 있으며, 실시예에 따라 네트워크 스위치 장치(10-1 내지 10-12) 각각마다 순차적으로 수행될 수도 있다. 만약 더 이상 마이그레이션을 진행 가능한 네트워크 스위치 장치(10-3, 10-6, 10-1)가 부재하면, 마이그레이션은 종료된다. The tree reconfiguration unit 113 relieves overload of specific devices (10-1, 10-3, 10-5, 10-6, 10-8, 10-10, and 10-12) due to data concentration and reorganizes idle devices. In order to utilize (10-4, 10-7, 10-9), first, based on the resources consumed in response to each query, the aggregate tree (T2-1, T2-2) for each query is reorganized to create a new An aggregate tree (T2-6 in Figure 10, T-7 in Figure 11) is created. Specifically, for example, referring to FIGS. 7 and 8, the tree reconstruction unit 113 constructs an aggregate tree (T2-1) for the first query and an aggregate tree (T2-2) for the second query. ) to obtain the merged aggregate tree (T2-3). Specifically, the tree reconfiguration unit 113 vertices shared by the two trees (T2-1 and T2-2), that is, the network switch devices (10-1, 10-3, 10-5, 10-6, 10- 8, 10-10, 10-12) can also be merged to obtain a merged aggregate tree (T2-3). In this case, it is also possible to perform merging on all vertices, that is, network switch devices 10-1 to 10-12. The merging of the network switch devices (10-1 to 10-12) is based on the data usage of each network switch device (10-1 to 10-12) in the aggregation tree (T2-1) for the first query and the second query. It includes adding up the data usage of each network switch device (10-1 to 10-12) of the aggregation tree (T2-2). If necessary, the tree reconfiguration unit 113 adds a weight to each amount of data used by the network switch devices (10-1 to 10-12) in each aggregate tree (T2-1, T2-2) to reorganize the two trees. Merge vertices shared by (T2-1, T2-2), i.e. network switch devices (10-1, 10-3, 10-5, 10-6, 10-8, 10-10, 10-12) It is also possible to do so. Next, as shown in FIG. 8, the tree reconfiguration unit 113 refers to the merge processing result and selects data among the network switch devices 10-4, 10-7, and 10-9 with relatively low data processing load. Network switch devices (10-4, 10-) corresponding to network switch devices (10-1, 10-3, 10-5, 10-6, 10-8, 10-10, 10-12) with high processing load. Search for 7, 10-9). For example, for the third network switch device 10-3, the fourth network switch device 10-4 is detected, and for the sixth network switch device 10-6, the seventh network switch device 10- 7) is detected, and for the tenth network switch device (10-10), the ninth network switch device (10-9) is detected. In this case, the network switch devices (10-4, 10-7, 10-9) corresponding to the overloaded network switch devices (10-3, 10-6, 10-10) are connected to the overloaded vertex (i.e., the network switch device (10-3, 10-6, 10-10)) and the same level peak (i.e., network switch device (10-4, 10-7, 10-9)), and the corresponding network switch device (10-4) , 10-7, 10-9), the connectivity of the overall tree (T2-3) must be maintained and/or each overloaded vertex (10-3, 10-6, 10- 10) The integrated load should be smaller than before migration. According to an embodiment, for all overloaded network switch devices (10-1, 10-3, 10-5, 10-6, 10-8, 10-10, 10-12), a corresponding network switch device may be detected. Alternatively, corresponding network switch devices 10-4, 10-7, and 10-9 may be detected for some of the overloaded network switch devices 10-3, 10-6, and 10-10. When the corresponding network switch device (10-4, 10-7, 10-9) is detected, migration of the load of the overloaded network switch device (10-3, 10-6, 10-10) is performed accordingly. . Migration is performed for at least one network switch device (10-3, 10-6, 10-10) among the aggregate tree (T2-1) for the first query and the aggregate tree (T2-2) for the second query. It can be done. For example, as shown in FIG. 8, the load of the network switch devices 10-3, 10-6, and 10-10 with high data processing load in the aggregate tree T2-2 for the second query is, In response to this, the data processing load can be transferred to other network switch devices (10-4, 10-7, 10-9) with a low load. The above-described detection and migration may be performed sequentially, and depending on the embodiment, may be performed sequentially for each of the network switch devices 10-1 to 10-12. If there are no more network switch devices (10-3, 10-6, 10-1) capable of performing migration, the migration is terminated.

마이그레이션이 종료되면, 트리 재구성부(113)는 도 9 및 도 10에 도시된 바와 같이 제1 쿼리에 대해 새로운 집약 트리(T2-5)와 제2 쿼리에 대한 새로운 집약 트리(T2-6)를 획득할 수 있다. 새로운 집약 트리(T2-5, T2-6) 중 적어도 하나는 기존의 집약 트리(T2-1, T2-2)와 동일할 수도 있고 상이할 수도 있다. 예를 들어, 제1 쿼리에 대해 새로운 집약 트리(T2-5)는 기존의 집약 트리(T2-1)와 동일하고, 제2 쿼리에 대한 새로운 집약 트리(T2-6)는 기존의 집약 트리(T2-2)와 상이할 수 있다. 한편, 새로 획득된 집약 트리(T2-5, T2-6)를 병합해보면(상황에 따라, 양 트리(T2-5, T2-6)는 모두 마이그레이션 처리된 것일 수도 있고 또는 일부만이 마이그레이션 처리된 것일 수도 있음), 도 11에 도시된 바와 같이, 마이그레이션 이후 병합된 집약 트리(T2-5)는 마이그레이션 이전에 병합된 집약 트리(T2-3)보다 경로 상에 부화가 과한 네트워크 스위치 장치(10-1, 10-5, 10-8, 10-2)가 더 적고, 자원 소모량이 적절히 분배되었음을 알 수 있다.When migration is completed, the tree reconstruction unit 113 creates a new aggregate tree (T2-5) for the first query and a new aggregate tree (T2-6) for the second query, as shown in FIGS. 9 and 10. It can be obtained. At least one of the new aggregate trees (T2-5, T2-6) may be the same as or different from the existing aggregate trees (T2-1, T2-2). For example, for the first query, the new aggregate tree (T2-5) is the same as the existing aggregate tree (T2-1), and the new aggregate tree (T2-6) for the second query is the same as the existing aggregate tree (T2-1). It may be different from T2-2). Meanwhile, when merging the newly acquired aggregate trees (T2-5, T2-6) (depending on the situation, both trees (T2-5, T2-6) may have been migrated or only some of them may have been migrated. 11, the aggregate tree (T2-5) merged after migration has more enrichment on the path than the aggregate tree (T2-3) merged before migration. , 10-5, 10-8, 10-2) are less, and it can be seen that resource consumption is appropriately distributed.

배포 처리부(114)는, 집약 트리(T2-5, T2-6)에 대응하는 데이터(예를 들어, 집약 트리(T2-5, T2-6)의 재구축을 통해 획득된 데이터의 처리 경로 등)를, 데이터를 처리할 동작 서버 장치(90: 90-1 내지 90-k)나 네트워크 스위치 장치(10: 10-1 내지 10-12)로 배포할 수 있다. 이에 따라 동작 서버 장치(90: 90-1 내지 90-k)나 네트워크 스위치 장치(10: 10-1 내지 10-12)는 최적화된 집약 트리(T2-5, T2-6)를 기반으로 데이터의 전달 및 집약을 수행할 수 있게 된다.The distribution processor 114 processes data corresponding to the aggregate trees (T2-5, T2-6) (e.g., a processing path for data acquired through reconstruction of the aggregate trees (T2-5, T2-6), etc. ) can be distributed to operation server devices (90: 90-1 to 90-k) or network switch devices (10: 10-1 to 10-12) to process data. Accordingly, the operation server device (90: 90-1 to 90-k) or the network switch device (10: 10-1 to 10-12) stores data based on the optimized aggregate tree (T2-5, T2-6). Delivery and aggregation can be performed.

프로세서(110)는 중앙 처리 장치(CPU: Central Processing Unit), 그래픽 처리 장치(GPU: Graphic Processing Unit), 마이크로 컨트롤러 유닛(MCU: Micro Controller Unit), 애플리케이션 프로세서(AP: Application Processor), 전자 제어 유닛(ECU: Electronic Controlling Unit), 기본보드 관리 컨트롤러(BMC: Baseboard Management Controller), 마이컴(Micom: Micro Processor) 및/또는 이외 각종 연산 및 제어 처리를 수행할 수 있는 적어도 하나의 전자 장치 등을 포함할 수 있다. The processor 110 includes a central processing unit (CPU), a graphics processing unit (GPU), a microcontroller unit (MCU), an application processor (AP), and an electronic control unit. It may include an Electronic Controlling Unit (ECU), a Baseboard Management Controller (BMC), a Micro Processor (Micom), and/or at least one electronic device capable of performing various calculations and control processing. You can.

또한, 상술한 인-네트워크 관리 장치(100)는, 상술한 트리(T1 내지 T2-7) 등 수행할 수 있도록 특별히 고안된 장치를 이용하여 구현될 수도 있고, 또는 정보처리장치를 단독으로 이용하거나 조합 이용함으로써 구현될 수도 있다. 정보처리장치는 서버용 하드웨어 장치, 데스크톱 컴퓨터, 랩톱 컴퓨터 또는 스마트 폰 등을 포함할 수 있으나 이에 한정되는 것은 아니다. In addition, the above-described in-network management device 100 may be implemented using a device specifically designed to perform the above-described tree (T1 to T2-7), or may be implemented using an information processing device alone or in combination. It can also be implemented by using Information processing devices may include, but are not limited to, server hardware devices, desktop computers, laptop computers, or smart phones.

도 12는 네트워크 스위치 장치의 일 실시예에 대한 블록도이고, 도 13 및 도 14는 네트워크 스위치 장치의 집약 동작의 일례를 설명하기 위한 제1 및 제2 도이다.FIG. 12 is a block diagram of an embodiment of a network switch device, and FIGS. 13 and 14 are first and second diagrams for explaining an example of an integrated operation of a network switch device.

네트워크 스위치 장치(10)는 동작 서버 장치(90: 90-1 내지 90-k)나 다른 네트워크 스위치 장치(10: 10-1 내지 10-12 중 적어도 하나)로부터 데이터를 전달 받고, 전달 받은 데이터에 대한 집약 처리를 수행하고, 처리 결과를 인-네트워크 관리 장치(100)나 또 다른 네트워크 스위치 장치(10: 10-1 내지 10-12 중 적어도 하나)로 전달할 수 있다.The network switch device 10 receives data from an operation server device (90: 90-1 to 90-k) or another network switch device (10: at least one of 10-1 to 10-12), and stores data in the received data. The integrated processing may be performed, and the processing result may be transmitted to the in-network management device 100 or another network switch device (10: at least one of 10-1 to 10-12).

일 실시예에 따르면, 네트워크 스위치 장치(10)는 도 12에 도시된 것처럼 저장부(12) 및 프로세서(20)를 포함할 수 있으며, 필요에 따라서, 통신부(11) 및 유저 인터페이스(15) 중 적어도 하나를 더 포함할 수 있다.According to one embodiment, the network switch device 10 may include a storage unit 12 and a processor 20 as shown in FIG. 12, and, if necessary, a communication unit 11 and a user interface 15. It may contain at least one more.

저장부(12)는 주기억장치 및 보조기억장치 중 적어도 하나를 포함하며, 다른 네트워크 스위치 장치(10: 10-1 내지 10-12 중 적어도 하나)로부터 전달 받은 데이터, 프로세서(20)의 처리 과정에서 생성된 데이터 또는 프로세서(20)가 획득한 데이터를 일시적 또는 비일시적으로 저장할 수 있다. 일 실시예에 따르면, 저장부(12)는 해시 테이블(50)을 저장할 수도 있다. 해시 테이블(50: 51, 52, 53)은 도 13 및 도 14에 도시된 바와 같이 수신한 데이터(30)의 키(key)와 키에 대응하는 값(value)을 저장하여 구축된 것일 수 있다. 구체적으로, 해시 테이블(50: 51, 52, 53)은, 수신한 데이터의 키를 해시하여 생성된 해시 인덱스를 기반으로 키 및 값의 쌍을 저장하여 획득될 수 있다. 키는 특정 단어(word)를 포함하고, 값은 특정한 단어가 텍스트 내에서 발생한 횟수를 포함할 수 있으나, 이에 한정되는 것은 아니다. 또한, 해시 테이블(50: 51, 52, 53)은 특정 키를 포함하는 데이터를 수신한 횟수를 지시하는 계수 결과(카운터, count)를 포함할 수도 있다.The storage unit 12 includes at least one of a main memory and an auxiliary memory, and data received from another network switch device (10: at least one of 10-1 to 10-12) is processed by the processor 20. Generated data or data acquired by the processor 20 may be temporarily or non-temporarily stored. According to one embodiment, the storage unit 12 may store the hash table 50. The hash table 50 (51, 52, 53) may be constructed by storing the key of the received data 30 and the value corresponding to the key, as shown in FIGS. 13 and 14. . Specifically, the hash table 50 (51, 52, 53) can be obtained by storing key and value pairs based on a hash index generated by hashing the key of the received data. The key may include a specific word, and the value may include, but is not limited to, the number of times a specific word occurs in the text. Additionally, the hash table 50 (51, 52, 53) may include a count result (counter) indicating the number of times data containing a specific key has been received.

통신부(11)는, 유선 또는 무선 통신 네트워크를 통해 다른 네트워크 스위치 장치(10: 10-1 내지 10-12 중 적어도 하나), 동작 서버 장치(90: 90-1 내지 90-k) 및 인-네트워크 관리 장치(100) 중 적어도 하나와 통신을 수행하고, 다른 네트워크 스위치 장치(10: 10-1 내지 10-12 중 적어도 하나)나 동작 서버 장치(90: 90-1 내지 90-k)로부터 데이터를 전달 받거나, 인-네트워크 관리 장치(100)로부터 집약 처리 결과를 전달할 다른 네트워크 스위치 장치(10: 10-1 내지 10-12 중 적어도 하나)에 대한 정보를 수신할 수 있다.The communication unit 11 communicates with other network switch devices (10: at least one of 10-1 to 10-12), operation server devices (90: 90-1 to 90-k), and in-network devices through a wired or wireless communication network. Performs communication with at least one of the management devices 100 and receives data from another network switch device (10: at least one of 10-1 to 10-12) or an operation server device (90: 90-1 to 90-k). Alternatively, information about another network switch device (10: at least one of 10-1 to 10-12) that will deliver the aggregate processing result may be received from the in-network management device 100.

유저 인터페이스(15)는 네트워크 스위치 장치(10)의 동작과 관련된 데이터, 명령 또는 지시 등을 사용자 등으로부터 직접 입력 받거나, 네트워크 스위치 장치(10)의 동작 결과에 따라 획득한 데이터 등을 사용자 등에게 시각적 또는 청각적으로 제공할 수 있다.The user interface 15 receives data, commands, or instructions related to the operation of the network switch device 10 directly from the user, etc., or displays data obtained according to the results of the operation of the network switch device 10 to the user, etc. Alternatively, it can be provided auditorily.

프로세서(20)는, 하나 또는 둘 이상의 중앙 처리 장치, 그래픽 처리 장치, 마이크로 컨트롤러 유닛 또는 애플리케이션 프로세서 등을 기반으로 구현된 것일 수 있으며, 도 12에 도시된 바와 같이, 논리적으로 또는 물리적으로 구분 가능한 슬롯 판단부(21), 키-값 저장 처리부(22), 키-값 비교부(23), 계수 처리부(24), 계수결과 비교부(25) 및 전달처리부(26)를 포함할 수 있다.The processor 20 may be implemented based on one or two or more central processing units, graphics processing units, microcontroller units, or application processors, and as shown in FIG. 12, logically or physically distinguishable slots. It may include a determination unit 21, a key-value storage processing unit 22, a key-value comparison unit 23, a coefficient processing unit 24, a counting result comparison unit 25, and a transmission processing unit 26.

도 13 및 도 14를 참조하면, 슬롯 판단부(21)는 수신한 데이터(30)에 대한 해시 인덱스(h1(A), h1(B), h1(I), h1(K), h2(J) 등)를 획득하고, 해당 해시 인덱스와 연결된 슬롯이 공백인지 또는 도 13 및 도 14에 도시된 것처럼 채워져 있는지 여부를 판단할 수 있다. 즉, 슬롯 판단부(21)는 해시 테이블(50)에 수신한 데이터의 키-값의 쌍(30)을 저장할 슬롯이 비어 있는지를 확인할 수 있다. 만약 저장할 슬롯이 비어 있다면, 슬롯 판단부(21)는 키-값 저장 처리부(23)로 이에 대한 정보를 전달하고, 반대로 저장할 슬롯이 비어 있지 않다면, 키-값 비교부(23)로 슬롯이 비어 있지 않다는 정보를 전달한다.13 and 14, the slot determination unit 21 determines the hash indexes (h1(A), h1(B), h1(I), h1(K), and h2(J) for the received data 30. ), etc.) can be obtained, and it can be determined whether the slot connected to the corresponding hash index is empty or filled as shown in FIGS. 13 and 14. That is, the slot determination unit 21 can check whether the slot for storing the key-value pair 30 of the received data in the hash table 50 is empty. If the slot to be stored is empty, the slot determination unit 21 transmits information about this to the key-value storage processing unit 23. Conversely, if the slot to be stored is not empty, the slot is not empty to the key-value comparison unit 23. It conveys information that it does not exist.

키-값 저장 처리부(22)는, 키-값의 쌍(30)을 저장부(12)의 해시 테이블(50: 51, 52)에 저장할 수 있다. 예를 들어, 만약 슬롯 판단부(21)의 판단 결과에 따라 슬롯이 비어 있다면, 키-값 저장 처리부(22)는 키-값의 쌍(30)을 해당 슬롯에 기록 처리할 수 있다. 또한, 키-값 저장 처리부(22)는, 슬롯이 비어 있지 않다면, 키-값 비교부(23)의 비교 결과에 따라서 새로운 데이터의 값과 기존에 저장된 값을 합산하여 해당 슬롯에 저장하거나, 또는 키-값 비교부(23) 및 계수결과 비교부(25)의 처리 결과에 따라서 해당 슬롯의 기존의 저장된 키와 값을 제거하고 이를 새로운 데이터의 키와 값으로 대체 저장할 수도 있다.The key-value storage processing unit 22 may store the key-value pair 30 in the hash table 50 (51, 52) of the storage unit 12. For example, if the slot is empty according to the determination result of the slot determination unit 21, the key-value storage processing unit 22 may record the key-value pair 30 in the corresponding slot. In addition, if the slot is not empty, the key-value storage processing unit 22 adds the value of the new data and the previously stored value according to the comparison result of the key-value comparison unit 23 and stores it in the corresponding slot, or Depending on the processing results of the key-value comparison unit 23 and the counting result comparison unit 25, the existing stored key and value of the corresponding slot may be removed and replaced with the key and value of new data.

키-값 비교부(23)는, 해시 테이블(50)에 수신한 데이터의 키-값의 쌍(30)을 저장할 슬롯이 비어 있지 않다면, 도 13에 도시된 바와 같이, 기존에 해시 테이블(51)에 저장되어 있던 키-값(51-1)의 키와 새로 수신한 데이터의 키-값의 쌍(30)의 키를 상호 비교할 수 있다. 만약 양 자의 키가 동일하다면(일례로 모두 B라면), 비교 결과는 제1 키-값 저장 처리부(22) 및 계수 처리부(24)로 전달되고, 키-값 저장 처리부(22)는 해당 키에 대한 값을 합산하고 합산 결과를 해당 키에 대응하는 슬롯(51-1, 즉, 새로 수신한 데이터의 키-값의 쌍(30)의 키와 동일한 키가 저장되어 있던 슬롯)에 기록하여 갱신된 슬롯(51-1a)를 획득할 수 있다. 예를 들어, 키-값 저장 처리부(22)는, 수신한 데이터(30)의 값 1과 기존에 저장된 데이터(51-1)의 값 3을 합산하여 4를 획득하고, 획득한 4를 이용하여 해당 슬롯(51-1)의 갱신 결과(51-1a)를 획득할 수 있다.If the slot for storing the key-value pair 30 of the received data in the hash table 50 is not empty, the key-value comparison unit 23, as shown in FIG. 13, uses the existing hash table 51 ) can be compared with the key of the key-value pair 51-1 stored in ) and the key of the key-value pair 30 of the newly received data. If both keys are the same (for example, both are B), the comparison result is transmitted to the first key-value storage processing unit 22 and the coefficient processing unit 24, and the key-value storage processing unit 22 stores the corresponding key. The values are added and the summed result is recorded in the slot corresponding to the key (51-1, that is, the slot in which the same key as the key of the key-value pair 30 of the newly received data was stored) and updated. The slot (51-1a) can be obtained. For example, the key-value storage processing unit 22 obtains 4 by adding the value 1 of the received data 30 and the value 3 of the previously stored data 51-1, and uses the obtained 4 to The update result (51-1a) of the corresponding slot (51-1) can be obtained.

계수 처리부(24)는 키-값 비교부(23)의 비교 결과를 수신하고, 만약 기존에 해시 테이블(51)에 저장되어 있던 키-값(51-1)의 키와 새로 수신한 데이터의 키-값의 쌍(30)의 키가 서로 동일하다면, 해당 슬롯(51-2)의 계수 결과(count)의 값을 1 증가시킨다. 예를 들어, 만약 기존의 슬롯(51-1)의 계수 결과가 1이었다면, 계수 결과에 1을 더한 값(즉 2)를 이용하여 해당 슬롯(51-2)의 계수 결과를 2로 갱신할 수 있다.The coefficient processing unit 24 receives the comparison result of the key-value comparison unit 23, and if the key of the key-value (51-1) previously stored in the hash table 51 and the key of the newly received data -If the keys of the value pair 30 are the same, the value of the count result (count) of the corresponding slot 51-2 is increased by 1. For example, if the coefficient result of the existing slot (51-1) was 1, the coefficient result of the corresponding slot (51-2) can be updated to 2 by adding 1 to the coefficient result (i.e., 2). there is.

반대로 해시 테이블(50)에 수신한 데이터의 키-값의 쌍(30)을 저장할 슬롯이 비어 있지 않으나, 만약 양 자의 키가 도 14에 도시된 바와 같이 서로 상이하다면(예를 들어, 수신한 데이터의 키-값의 쌍(30)에서 키는 B를 가지나, 저장된 해시 테이블(52)에는 이와 다른 A나 K의 키만 저장되어 있다면), 키-값 저장 처리부(22)는 수신한 데이터의 키-값의 쌍(30) 및 해시 테이블(52)의 해당 슬롯(52-1)에 기 저장된 키-값 중 어느 하나만 해시 테이블(52)의 해당 슬롯(52-1)에 저장할 수 있다. 일 실시예에 의하면, 해당 슬롯(52-1)에 저장되는 데이터는, 수신한 데이터의 키-값의 쌍(30) 및 해시 테이블(52)의 해당 슬롯(52-1)에 기 저장된 키-값 중에서 계수 결과가 더 작은 데이터를 포함할 수 있다. 이 경우, 새로 입력되는 데이터의 키-값의 쌍(30)은 계수 결과가 항상 1이므로, 해당 슬롯(52-1)은 새로 입력되는 데이터의 키-값의 쌍(30)에 의해 교체되어 기록된다(52-1a). 한편, 해당 슬롯(52-1)에 기 기록되어 있던 키-값 및 계수 결과(52-1b)는 추출된 후, 계수 결과 비교부(25)로 전달될 수 있다.On the other hand, there is no empty slot in the hash table 50 to store the key-value pair 30 of the received data, but if both keys are different from each other as shown in FIG. 14 (for example, the received data In the key-value pair 30, the key is B, but only the different keys of A or K are stored in the stored hash table 52), the key-value storage processing unit 22 stores the key of the received data- Only one of the value pair 30 and the key-value previously stored in the corresponding slot 52-1 of the hash table 52 can be stored in the corresponding slot 52-1 of the hash table 52. According to one embodiment, the data stored in the corresponding slot 52-1 includes the key-value pair 30 of the received data and the key previously stored in the corresponding slot 52-1 of the hash table 52- Among the values, the coefficient result may include smaller data. In this case, since the coefficient result of the key-value pair 30 of the newly input data is always 1, the corresponding slot 52-1 is replaced by the key-value pair 30 of the newly input data and recorded. It becomes (52-1a). Meanwhile, the key-value and coefficient result 52-1b previously recorded in the slot 52-1 may be extracted and then transmitted to the coefficient result comparison unit 25.

계수 결과 비교부(25)는 추출된 키-값(52-1b)의 계수 결과와, 해시 테이블(52) 내의 다른 슬롯(52-2)의 키-값의 계수 결과를 상호 비교하고, 비교 결과를 키-값 저장 처리부(22)로 전달하고, 키-값 저장 처리부(22)는 비교 결과에 따라서 계수 결과가 큰 데이터가 해당 슬롯(52-2)에 기록되도록 할 수 있다. 예를 들어, 도 14에 도시된 바와 같이 추출된 키-값(52-1b)에 해당하는 계수 결과(일례로 6)가 소정 슬롯(53-1)의 계수 결과(5)보다 크다면, 키-값 저장 처리부(22)는 소정 슬롯(52-2)의 데이터(52-2b, 즉, 키-값 및 계수 결과)를 추출하고 해당 슬롯(52-2)에 이전에 추출된 키-값(52-1b)을 기록하여 갱신된 슬롯(52-2a)을 획득할 수 있다. 순차적으로 계수 결과 비교부(25)는 소정 슬롯(53-1)의 원 데이터(52-2b)에 대해서, 원 데이터(52-2b)의 계수 결과(일례로 5)를, 해시 테이블(52) 내의 다른 슬롯(52-3)의 키-값의 계수 결과와 다시 비교하고, 키-값 저장 처리부(22)는 비교 결과에 따라서 해당 슬롯(52-3)의 갱신 또는 유지를 반복 수행할 수 있다. The counting result comparison unit 25 compares the counting result of the extracted key-value 52-1b with the counting result of the key-value of the other slot 52-2 in the hash table 52, and the comparison result is transmitted to the key-value storage processing unit 22, and the key-value storage processing unit 22 can cause data with a large coefficient result to be recorded in the corresponding slot 52-2 according to the comparison result. For example, as shown in FIG. 14, if the coefficient result (for example, 6) corresponding to the extracted key-value (52-1b) is greater than the coefficient result (5) of the predetermined slot 53-1, the key -The value storage processing unit 22 extracts data 52-2b (i.e., key-value and coefficient result) of a predetermined slot 52-2 and inserts the previously extracted key-value into the corresponding slot 52-2 ( An updated slot 52-2a can be obtained by recording 52-1b). The coefficient result comparison unit 25 sequentially compares the coefficient result (for example, 5) of the raw data 52-2b to the hash table 52 for the raw data 52-2b of the predetermined slot 53-1. The key-value coefficient result of another slot 52-3 within the key-value is again compared, and the key-value storage processing unit 22 may repeatedly update or maintain the corresponding slot 52-3 according to the comparison result. .

상술한 과정을 통해 마지막으로 추출 및 획득되는 최종 키-값의 쌍(60)은 중복도가 낮다. 이들 키-값의 쌍은, 계수 결과 비교부(25) 또는 키-값 저장 처리부(22)에서 전달 처리부(26)로 전달된다.The final key-value pair (60) finally extracted and obtained through the above-described process has low redundancy. These key-value pairs are transferred from the coefficient result comparison unit 25 or the key-value storage processing unit 22 to the transfer processing unit 26.

전달 처리부(26)는 최종 키-값의 쌍(60)에 대해 캡슐화 처리를 수행하여 이에 대응하는 패킷을 생성하고, 이를 통신부(11)를 통해 다음 노드(다음 네트워크 스위칭 장치(10: 10-1 내지 10-12 중 적어도 하나)나 인-네트워크 관리 장치(100) 등)로 전달할 수 있도록 한다. 이에 따라 최종 키-값의 쌍(60)이 다음 노드로 전달될 수 있게 된다.The delivery processing unit 26 performs encapsulation processing on the final key-value pair 60 to generate a corresponding packet, and sends it to the next node (next network switching device 10: 10-1) through the communication unit 11. to at least one of 10-12) or the in-network management device 100, etc.). Accordingly, the final key-value pair 60 can be transmitted to the next node.

이하 도 15 및 도 16을 참조하여 상술한 인-네트워크 데이터 집약 시스템(1)의 효과를 구체적으로 설명한다. Hereinafter, the effects of the above-described in-network data collection system 1 will be described in detail with reference to FIGS. 15 and 16.

도 15는 발생 데이터 종류의 개수에 따른 집약 성능의 변화를 측정한 그래프이다. 도 15에서 x축은 키-값 쌍의 개수를 의미하고, y축은 감소율을 의미한다. 청색 선은 종래 알려진 네트워크 내에서의 데이터 집약 방법(DAIET: Data Aggregation Inside the Network)의 집약 성능의 변화를 나타낸 것으로, 종래의 네트워크 내에서의 데이터 집약 방법은 멀티테넌시 지원을 위해 메모리의 균등 분할하되, 데이터의 중복도를 고려하지 않고 스위치에 들어온 순서대로 메모리를 처리 및 집약하는 방식이다. 또한, 황색 선(MARINA-DH)은 상술한 네트워크 스위치 장치(10) 및 인-네트워크 관리 장치(100)를 기반으로 수행되되 각 스테이지가 서로 다른 해시함수를 이용하였을 때는 집약 성능의 변화를 나타내고, 녹색 선(MARINA-SH)은 상술한 네트워크 스위치 장치(10) 및 인-네트워크 관리 장치(100)를 기반으로 수행되되 동일한 해시 함수를 이용하여 각 스테이지를 처리하였을 때의 집약 성능의 변화를 나타낸다.Figure 15 is a graph measuring the change in integration performance according to the number of generated data types. In Figure 15, the x-axis represents the number of key-value pairs, and the y-axis represents the reduction rate. The blue line shows the change in aggregation performance of the conventionally known data aggregation method within the network (DAIET: Data Aggregation Inside the Network), which divides memory equally to support multi-tenancy. However, this method processes and aggregates memory in the order in which it enters the switch without considering the redundancy of the data. In addition, the yellow line (MARINA-DH) is performed based on the network switch device 10 and the in-network management device 100 described above, but indicates the change in integration performance when each stage uses a different hash function, The green line (MARINA-SH) represents the change in integration performance when each stage is processed based on the above-described network switch device 10 and the in-network management device 100 using the same hash function.

도 15를 참조하면, 종래의 네트워크 내에서의 데이터 집약 방법(DAIET)과 각 스테이지가 서로 다른 해시함수를 이용하는 방법(MARINA-SH)의 경우에는, 데이터(즉, 키-값 쌍)의 양이 가용 메모리의 크기보다 적은 경우에도 집약되지 않는 데이터가 존재하는 반면에, 동일한 해시 함수를 이용하는 인-네트워크 집약 시스템(1)은 대부분의 데이터를 집약할 수 있음을 보여준다. 이는 상술한 인-네트워크 집약 시스템(1)이 고 중복된 데이터를 우선 선별하여 메모리에 저장하기 때문에, 해시 충돌에 의해 비집약된 데이터가 그 중복도가 낮을 확률이 상대적으로 높기 때문이다.Referring to FIG. 15, in the case of the conventional data aggregation method (DAIET) within a network and the method (MARINA-SH) in which each stage uses a different hash function, the amount of data (i.e. key-value pairs) is While there is data that is not aggregated even when the size is smaller than the available memory, the in-network aggregation system (1) using the same hash function shows that most data can be aggregated. This is because the above-described in-network aggregation system 1 first selects highly redundant data and stores it in memory, so the probability that data that has not been aggregated due to a hash collision has a low degree of redundancy is relatively high.

도 16은 3개의 애플리케이션이 동시에 동작하는 멀티테넌시 환경 하에서 집약 경로 설정 방법에 따른 집약 성능의 변화를 도시한 그래프이다. 도 16에서 x축은 순차적으로 종래의 네트워크 내에서의 데이터 집약 방법(DAIET)과, 상술한 네트워크 스위치 장치의 집약 동작과 종래의 네트워크 내에서의 데이터 집약 방법(DAIET)에서 이용되는 스패닝 트리(spanning tree)를 사용하여 집약 경로를 설정하는 방법(MARINA-S)과, 상술한 바와 같이 집약 경로를 설정한 방법(MARINA-H)을 의미한다. 또한, App1은 균등 분할된 메모리 파티션의 용량보다 적은 크기의 데이터를 발생시키는 애플리케이션이고, App2는 균등 분할된 메모리 파티션의 용량과 동일한 크기의 데이터를 발생시키는 애플리케이션이며, App3은 균등 분할된 메모리 파티션의 용량보다 초과하는 크기의 데이터를 발생시키는 애플리케이션이. y축은 각각의 방법 및 각각의 애플리케이션에 따른 감소율을 의미한다.Figure 16 is a graph showing the change in aggregation performance according to the aggregation path setting method in a multi-tenancy environment in which three applications operate simultaneously. In FIG. 16, the x-axis sequentially represents a spanning tree used in the conventional data aggregation method within a network (DAIET), the aggregation operation of the network switch device described above, and the conventional data aggregation method within a network (DAIET). ) refers to a method of setting an aggregated path using (MARINA-S) and a method of setting an aggregated path as described above (MARINA-H). In addition, App1 is an application that generates data of a size smaller than the capacity of the equally divided memory partition, App2 is an application that generates data of the same size as the capacity of the equally divided memory partition, and App3 is an application that generates data of the same size as the capacity of the equally divided memory partition. An application that generates data exceeding its capacity. The y-axis represents the reduction rate for each method and each application.

도 16을 참조하면, 종래의 네트워크 내에서의 데이터 집약 방법(DAIET)은 발생되는 데이터의 크기가 적은 경우에는 집약 성능이 우수하나 발생되는 데이터의 크기가 커질수록 그 집약 성능이 감소한다. 이는 스패닝 트리를 사용하여 집약 경로를 설정한 경우(MARINA-S)에도 동일하다. 반면에 상술한 인-네트워크 집약 시스템(1)과 같이 집약 경로를 설정하는 경우(MARINA-H)에는 대체적으로 발생되는 데이터 양에 무관하게 모든 어플리케이션(app1, app2, app3)에 대해 우수한 집약 성능을 제공하고 있다. 구체적으로, 스패닝 트리를 이용하는 종래의 방법들은 집약 경로 설정과 균등 메모리 파티션으로 인해 동일한 자원으로 더 적은 양의 데이터를 집약하기 때문에 그 집약 성능이 열등하나, 상술한 인-네트워크 집약 시스템(1)은 각각의 어플리케이션의 데이터의 양과 네트워크 스위치(10)의 자원을 고려하여 집약 경로(T1 내지 T2-7)를 설정하고, 각각의 네트워크 스위치(10)의 메모리 파티션의 크기를 적응적으로 조절하므로 집약 성능이 상대적으로 우수하다.Referring to FIG. 16, the conventional data aggregation method (DAIET) within a network has excellent aggregation performance when the size of generated data is small, but as the size of generated data increases, the aggregation performance decreases. This is the same even when the aggregate path is set using spanning tree (MARINA-S). On the other hand, when setting up an aggregation path (MARINA-H) like the in-network aggregation system (1) described above, excellent aggregation performance is generally achieved for all applications (app1, app2, app3) regardless of the amount of data generated. It is provided. Specifically, conventional methods using spanning trees have inferior aggregation performance because they aggregate a smaller amount of data with the same resources due to aggregation path settings and equal memory partitions, but the in-network aggregation system (1) described above has inferior aggregation performance. Aggregation paths (T1 to T2-7) are set considering the amount of data of each application and the resources of the network switch 10, and the size of the memory partition of each network switch 10 is adjusted adaptively, thereby improving the concentration performance. This is relatively excellent.

이하 도 17 및 도 18을 참조하여 인-네트워크 데이터 집약 방법의 일 실시예에 대해서 설명하도록 한다.Hereinafter, an embodiment of the in-network data aggregation method will be described with reference to FIGS. 17 and 18.

도 17은 인-네트워크 데이터 집약 방법의 일 실시예에 대한 흐름도이다.Figure 17 is a flowchart of an embodiment of an in-network data aggregation method.

도 17을 참조하면, 먼저 각각의 네트워크 스위치 장치로부터 집약 트리 구성에 필요한 적어도 하나의 정보가 수집된다(300). 여기서, 집약 트리 구성에 필요한 정보는, 각 네트워크 스위치 장치의 잔여 메모리 용량에 대한 정보나, 처리될 데이터의 양을 포함할 수 있다. 처리될 데이터의 양은, 멀티테넌시 처리를 위한 경우, 명령 또는 쿼리 각각으로부터 발생하는 데이터의 총합을 포함할 수도 있다.Referring to FIG. 17, first, at least one piece of information required to construct an aggregation tree is collected from each network switch device (300). Here, the information required for configuring the aggregation tree may include information about the remaining memory capacity of each network switch device or the amount of data to be processed. The amount of data to be processed may include the total amount of data generated from each command or query in the case of multi-tenancy processing.

수집된 정보를 기반으로 각각의 명령이나 쿼리마다 집약 트리가 하나 이상 생성된다(302). 이 경우, 집약 트리의 생성은 슈타이너 트리 생성 알고리즘을 기반으로 수행될 수도 있다.Based on the collected information, one or more aggregate trees are created for each command or query (302). In this case, generation of the aggregate tree may be performed based on the Steiner tree generation algorithm.

생성된 하나 이상의 집약 트리는 병합된다(304). 집약 트리의 병합은, 제1 쿼리에 대한 집약 트리의 각 네트워크 스위치 장치의 데이터 사용량 및 제2 쿼리에 대한 집약 트리의 각 네트워크 스위치 장치의 데이터 사용량을 합하는 것을 포함할 수 있다.The one or more aggregate trees created are merged (304). Merging the aggregation trees may include summing the data usage of each network switch device in the aggregation tree for the first query and the data usage of each network switch device in the aggregation tree for the second query.

병합 결과에 따라 모든 명령 또는 쿼리에 대한 각각의 네트워크 스위치 장치의 집약 부하 중에서 과부화인 네트워크 스위치 장치가 존재하면, 이에 응하여 부하 마이그레이션이 수행된다(306). 상세하게는 상대적으로 자원 소비량이 높은 네트워크 스위치 장치에 대응하는 네트워크 스위치 장치가 자원 소비량이 없거나 낮은 네트워크 스위치 장치 중에서 선택되고, 하나 또는 둘 이상의 명령이나 쿼리에 대해 자원 소비량이 높은 네트워크 스위치 장치에 대한 부하가 자원 소비량이 낮은 네트워크 스위치 장치로 이전된다. 예를 들어, 도 8에 도시된 바와 같이 제2 쿼리에 대한 집약 트리 내의 네트워크 스위치 장치 대신에, 이에 대응하는 다른 네트워크 스위치 장치가 해당 네트워크 스위치 장치의 처리를 수행하게 된다. 여기서, 자원 소비량이 높은 네트워크 스위치 장치에 대응하는 네트워크 스위치 장치는, 집약 부화가 높은 네트워크 스위치 장치와 동일 레벨이면서, 해당 네트워크 스위치 장치로의 부하 마이그레이션 이후에도 전체적인 연결성이 유지되고 및/또는 자원 소비량이 높은 네트워크 스위치 장치의 마이그레이션 이후의 집약 부하가 마이그레이션 이전보다 작아질 수 있도록 하는 네트워크 스위치 장치를 포함할 수 있다.According to the merge result, if an overloaded network switch device exists among the aggregated loads of each network switch device for all commands or queries, load migration is performed accordingly (306). In detail, a network switch device corresponding to a network switch device with relatively high resource consumption is selected from among network switch devices with no or low resource consumption, and the load on the network switch device with high resource consumption is selected for one or two or more commands or queries. is transferred to a network switch device with low resource consumption. For example, as shown in FIG. 8, instead of the network switch device in the aggregation tree for the second query, another corresponding network switch device performs the processing of the corresponding network switch device. Here, the network switch device corresponding to the network switch device with high resource consumption is at the same level as the network switch device with high aggregation, overall connectivity is maintained even after load migration to the network switch device, and/or the network switch device has high resource consumption. It may include a network switch device that allows the aggregate load after migration of the network switch device to be smaller than before migration.

이에 따라 모든 명령 또는 쿼리 중에서 적어도 하나의 명령 또는 쿼리에 대응하는 재구축된 집약 트리가 획득된다(308). 이 경우, 모든 명령 또는 쿼리에 대한 집약 트리가 재구축되는 것은 아니다. 예를 들어, 제1 쿼리에 대한 집약 트리는 기존의 형태를 유지하고, 제2 쿼리에 대한 집약 트리는 새로운 형태로 재구축 및 수정될 수도 있다.Accordingly, a reconstructed aggregate tree corresponding to at least one command or query among all commands or queries is obtained (308). In this case, the aggregate tree for every command or query is not reconstructed. For example, the aggregate tree for the first query may maintain its existing form, and the aggregate tree for the second query may be rebuilt and modified in a new form.

재구축된 집약 트리는 데이터를 처리할 동작 서버 장치나 네트워크 스위치 장치 등으로 배포될 수 있다(310). 이에 따라 동작 서버 장치나 네트워크 스위치 장치는 최적화된 집약 트리를 기반으로 데이터의 전달 및 집약을 수행할 수 있게 된다. 상술한 정보의 수집 내지 데이터의 배포(300 내지 310)은, 실시예에 따라서 인-네트워크 관리 장치에 의해 수행될 수 있다.The reconstructed aggregate tree can be distributed to an operation server device or network switch device to process data (310). Accordingly, the operation server device or network switch device can transmit and aggregate data based on the optimized aggregation tree. The collection of information and distribution of data (300 to 310) described above may be performed by an in-network management device, depending on the embodiment.

네트워크 스위치 장치는 전달된 집약 트리에 따라서 데이터를 전달 받고, 집약 처리를 수행하고, 집약 처리 결과를 다른 네트워크 스위치 장치나 인-네트워크 관리 장치로 전달할 수 있다(312).The network switch device can receive data according to the delivered aggregation tree, perform aggregation processing, and transmit the aggregation processing result to another network switch device or in-network management device (312).

도 18은 네트워크 스위치 장치의 집약 동작 과정의 일 실시예에 대한 흐름도이다.Figure 18 is a flowchart of an embodiment of an integrated operation process of a network switch device.

도 18을 참조하면, 먼저 네트워크 스위치 장치는, 다른 장치(일례로 동작 서버 장치나 다른 네트워크 스위치 장치)로부터 키-값의 쌍을 입력 받을 수 있다(400).Referring to FIG. 18, first, the network switch device can receive a key-value pair from another device (for example, an operation server device or another network switch device) (400).

순차적으로 수신한 데이터(키-값의 쌍)에 대한 해시 인덱스와 연결된 해시 테이블의 적어도 하나의 슬롯이 공백인지 여부가 판단될 수 있다(402).It may be determined whether at least one slot of the hash table associated with the hash index for sequentially received data (key-value pairs) is empty (402).

만약 슬롯에 데이터가 저장되어 있지 않아 슬롯이 비어 있다면(402의 예), 수신한 키-값의 쌍을 해당 슬롯에 저장할 수 있다(404).If the slot is empty because no data is stored in the slot (example in 402), the received key-value pair can be stored in the slot (404).

반대로 슬롯에 기 저장된 데이터가 존재하여 슬롯이 비어 있지 않다면(402의 아니오), 수신한 데이터의 키와 기존에 슬롯에 저장된 키 사이의 비교가 수행될 수 있다(406, 408).Conversely, if there is data previously stored in the slot and the slot is not empty (No in 402), a comparison between the key of the received data and the key previously stored in the slot may be performed (406, 408).

만약 수신한 데이터의 키와 기존에 슬롯에 저장된 키가 서로 동일하다면(408의 예), 해당 키에 대한 값이 합산될 수 있다(410). 예를 들어, 도 14와 같이 수신한 데이터 및 저장된 데이터의 키가 모두 B라면, 수신한 데이터의 값 1과 기존에 저장된 데이터의 값 3은 합산되고, 합산 결과인 4는 해당 슬롯에 저장된다. 아울러, 해당 키에 대한 계수 결과도 1씩 증가시켜 갱신된다.If the key of the received data and the key previously stored in the slot are the same (example in 408), the values for the corresponding keys may be added (410). For example, if the keys of both the received data and the stored data are B as shown in FIG. 14, the value 1 of the received data and the value 3 of the previously stored data are added, and the sum result of 4 is stored in the corresponding slot. In addition, the coefficient result for the corresponding key is also updated by increasing it by 1.

반대로 수신한 데이터의 키와 기존에 슬롯에 저장된 키가 서로 동일하지 않다면(408의 아니오), 기존에 슬롯에 저장된 키는 별도로 추출되고, 해당 슬롯에는 새로운 키-값이 저장된다(412). 이 경우, 해당 슬롯에는 새로운 키-값에 대응하는 계수 결과도 함께 저장될 수 있으며, 새로운 키-값에 대응하는 계수 결과는 1일 수 있다.Conversely, if the key of the received data and the key previously stored in the slot are not the same (No in 408), the key previously stored in the slot is extracted separately, and a new key-value is stored in the slot (412). In this case, the coefficient result corresponding to the new key-value may also be stored in the corresponding slot, and the coefficient result corresponding to the new key-value may be 1.

이어서 해시 테이블의 다른 슬롯이 선택되고(414), 선택된 다른 슬롯의 키-값에 대응하는 계수 결과와 기존의 슬롯에서 추출된 키-값에 대응하는 계수 결과가 상호 비교된다(416).Next, another slot of the hash table is selected (414), and the coefficient result corresponding to the key-value of the other selected slot is compared with the coefficient result corresponding to the key-value extracted from the existing slot (416).

만약 기존의 슬롯에서 추출된 키-값에 대응하는 계수 결과가 다른 슬롯의 키-값에 대응하는 계수 결과보다 크다면(418의 예), 또 다른 슬롯이 선택되고(420), 또 다른 슬롯의 키-값에 대응하는 계수 결과와 기존의 슬롯에서 추출된 키-값에 대응하는 계수 결과가 상호 비교된다(416).If the coefficient result corresponding to the key-value extracted from the existing slot is greater than the coefficient result corresponding to the key-value of another slot (example in 418), another slot is selected (420), and another slot The coefficient result corresponding to the key-value is compared with the coefficient result corresponding to the key-value extracted from the existing slot (416).

반대로 만약 기존의 슬롯에서 추출된 키-값에 대응하는 계수 결과가 다른 슬롯의 키-값에 대응하는 계수 결과보다 작다면(418의 예), 기존의 슬롯에서 추출된 키-값을 다른 슬롯에 기록하여 다른 슬롯을 갱신하고, 다른 슬롯의 데이터(키-값의 쌍 및 계수 결과)는 별도로 추출된다(422).Conversely, if the coefficient result corresponding to the key-value extracted from the existing slot is smaller than the coefficient result corresponding to the key-value of another slot (example 418), the key-value extracted from the existing slot is stored in the other slot. Other slots are updated by recording, and data (key-value pairs and coefficient results) of other slots are extracted separately (422).

추출된 다른 슬롯의 키-값에 대응하는 계수 결과는 또 다른 슬롯의 키-값에 대응하는 계수 결과와 비교되고(414, 416), 계수 결과의 비교 결과에 따라 또 다른 슬롯에 기록되어 또 다른 슬롯을 갱신하기 위해 이용될 수 있다(418, 422, 424의 예). 이러한 과정은 최종적으로 키-값의 쌍이 획득될 때까지 반복될 수 있다(424).The extracted coefficient result corresponding to the key-value of another slot is compared with the coefficient result corresponding to the key-value of another slot (414, 416), and is recorded in another slot according to the comparison result of the coefficient result to another slot. Can be used to update slots (examples 418, 422, 424). This process can be repeated until the key-value pair is finally obtained (424).

상술한 과정이 종료되면(424의 아니오), 최종적으로 획득되는 키-값의 쌍은 패킷화되고, 다음 네트워크 스위칭 장치나 인-네트워크 관리 장치로 전달될 수 있다(426).When the above-described process is completed (No in 424), the finally obtained key-value pair is packetized and can be transmitted to the next network switching device or in-network management device (426).

상술한 인-네트워크 데이터 집약 방법은, 컴퓨터 장치에 의해 구동될 수 있는 프로그램의 형태로 구현될 수 있다. 프로그램은 명령어, 라이브러리, 데이터 파일 및/또는 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며, 기계어 코드나 고급 언어 코드를 이용하여 설계 및 제작된 것일 수 있다. 프로그램은 상술한 인-네트워크 데이터 집약 방법을 구현하기 위하여 특별히 설계된 것일 수도 있고, 컴퓨터 소프트웨어 분야에서 통상의 기술자에게 기 공지되어 사용 가능한 각종 함수나 정의를 이용하여 구현된 것일 수도 있다. 또한, 여기서, 컴퓨터 장치는, 프로그램의 기능을 실현 가능하게 하는 프로세서나 메모리 등을 포함하여 구현된 것일 수 있으며, 필요에 따라 통신 장치를 더 포함할 수도 있다. 상술한 인-네트워크 데이터 집약 방법을 구현하기 위한 프로그램은, 컴퓨터 등의 장치에 의해 판독 가능한 기록 매체에 기록될 수 있다. 컴퓨터에 의해 판독 가능한 기록 매체는, 예를 들어, 롬, 램, SD카드 또는 플래시 메모리(일례로 솔리드 스테이트 드라이브(SSD) 등)와 같은 반도체 저장 매체나, 하드 디스크 또는 플로피 디스크 등과 같은 자기 디스크 저장 매체나, 콤팩트 디스크 또는 디브이디 등과 같은 광 기록 매체나, 또는 플롭티컬 디스크 등과 같은 자기-광 기록 매체 등과 같이 컴퓨터 등의 장치의 호출에 따라 실행되는 하나 이상의 프로그램을 일시적 또는 비일시적으로 저장 가능한 적어도 한 종류의 물리적 저장 매체를 포함할 수 있다.The above-described in-network data aggregation method may be implemented in the form of a program that can be driven by a computer device. A program may include instructions, libraries, data files, and/or data structures, etc., singly or in combination, and may be designed and produced using machine code or high-level language code. The program may be specially designed to implement the above-described in-network data collection method, or may be implemented using various functions or definitions known and available to those skilled in the art in the computer software field. In addition, here, the computer device may be implemented by including a processor or memory that enables the function of the program, and may further include a communication device if necessary. A program for implementing the above-described in-network data aggregation method may be recorded on a recording medium readable by a device such as a computer. Recording media that can be read by a computer include, for example, semiconductor storage media such as ROM, RAM, SD cards, or flash memory (eg, solid state drives (SSD), etc.), or magnetic disk storage such as hard disks or floppy disks. At least one medium capable of temporarily or non-temporarily storing one or more programs that are executed upon call from a device such as a computer, such as an optical recording medium such as a compact disk or DVD, or a magneto-optical recording medium such as a floptical disk. It may include any type of physical storage medium.

이상 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 인-네트워크 데이터 집약 방법에 대해 설명하였으나, 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및/또는 인-네트워크 데이터 집약 방법은 오직 상술한 실시예에 한정되는 것은 아니다. 해당 기술 분야에서 통상의 지식을 가진 자가 상술한 실시예를 기초로 수정 및 변형하여 구현할 수 있는 다른 다양한 장치, 시스템 또는 방법 역시 상술한 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 또는 인-네트워크 데이터 집약 방법의 일 실시예가 될 수 있다. 예를 들어, 설명된 방법(들)이 설명된 바와 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성 요소(들)가 설명된 바와 다른 형태로 결합, 연결 또는 조합되거나 다른 구성 요소 또는 균등물 등에 의하여 대치 또는 치환되더라도, 상술한 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및/또는 인-네트워크 데이터 집약 방법의 일 실시예가 될 수 있다.Although the in-network management device, network switch, in-network data aggregation system, and in-network data aggregation method have been described above, the in-network management device, network switch, in-network data aggregation system, and/or in-network data aggregation method have been described above. The aggregation method is not limited to only the above-described embodiments. Various other devices, systems, or methods that can be implemented by those skilled in the art by modifying and modifying the above-described embodiments are also the in-network management device, network switch, in-network data collection system, or It may be an embodiment of an in-network data aggregation method. For example, the described method(s) may be performed in an order other than as described, and/or component(s) of the described system, structure, device, circuit, etc. may be combined, connected, or otherwise in a form other than as described. Even if combined or replaced or replaced by other components or equivalents, it can be an embodiment of the above-described in-network management device, network switch, in-network data aggregation system, and/or in-network data aggregation method.

1: 인-네트워크 데이터 집약 시스템 10: 네트워크 스위치 장치
20: 네트워크 스위치 장치의 프로세서 21: 슬롯 판단부
22: 키-값 저장부 23: 키-값 비교부
24: 계수 처리부 25: 카운터 비교부
26: 전달처리부 30: 키-값 데이터
90: 동작 서버 장치 100: 인-네트워크 관리 장치
111: 정보 수집부 112: 트리 구성부
113: 트리 재구성부 114: 배포 처리부
1: In-network data aggregation system 10: Network switch device
20: Processor of network switch device 21: Slot determination unit
22: key-value storage unit 23: key-value comparison unit
24: counting processing unit 25: counter comparison unit
26: Delivery processing unit 30: Key-value data
90: operation server device 100: in-network management device
111: Information collection unit 112: Tree configuration unit
113: tree reconstruction unit 114: distribution processing unit

Claims (21)

적어도 하나의 네트워크 스위치 장치에 대한 정보를 전달 받는 통신부; 및
상기 네트워크 스위치 장치에 대한 정보를 기반으로 복수의 쿼리에 대응하는 복수의 집약 트리를 생성하고, 상기 복수의 집약 트리를 병합하고, 병합된 집약 트리를 기반으로 상기 복수의 집약 트리 중 적어도 하나의 집약 트리에 대해 재구축된 집약 트리를 생성하는 프로세서를 포함하고,
상기 적어도 하나의 네트워크 스위치 장치는, 동작 서버 장치로부터 키-값의 쌍을 수신하고, 해시 테이블의 슬롯이 공백이면 상기 키-값의 쌍을 상기 슬롯에 저장하고, 상기 해시 테이블의 슬롯이 공백이 아니면, 상기 슬롯에 기 저장된 키-값의 쌍의 키와 수신한 키를 비교하고, 상기 슬롯에 기 저장된 키와 상기 수신한 키가 동일하면, 상기 슬롯에 기 저장된 값과 수신한 값을 합산하고, 합산 결과를 이용하여 상기 슬롯을 갱신하는,
인-네트워크 관리 장치.
a communication unit that receives information about at least one network switch device; and
Generate a plurality of aggregate trees corresponding to a plurality of queries based on information about the network switch device, merge the plurality of aggregate trees, and aggregate at least one of the plurality of aggregate trees based on the merged aggregate tree. a processor that generates a reconstructed aggregate tree for the tree;
The at least one network switch device receives a key-value pair from an operation server device, stores the key-value pair in the slot if the slot of the hash table is empty, and stores the key-value pair in the slot if the slot of the hash table is empty. Alternatively, the key of the key-value pair previously stored in the slot is compared with the received key, and if the key previously stored in the slot and the received key are the same, the value previously stored in the slot and the received value are added together. , updating the slot using the summation result,
In-network management device.
제1항에 있어서,
상기 프로세서는, 병합된 집약 트리 내에서 데이터 처리 부하가 높은 네트워크 스위치 장치에 대응하고 데이터 처리 부하가 낮은 네트워크 스위치 장치를 검출하고, 상기 적어도 하나의 집약 트리의 상기 데이터 처리 부하가 높은 네트워크 스위치 장치로부터 상기 데이터 처리 부하가 낮은 네트워크 스위치 장치로의 마이그레이션을 진행하여 상기 적어도 하나의 집약 트리에 대한 재구축된 집약 트리를 생성하는 인-네트워크 관리 장치.
According to paragraph 1,
The processor detects a network switch device with a low data processing load that corresponds to a network switch device with a high data processing load within the merged aggregation tree, and selects a network switch device with a high data processing load from the at least one aggregation tree. An in-network management device that generates a reconstructed aggregation tree for the at least one aggregation tree by migrating to a network switch device with a low data processing load.
제2항에 있어서,
상기 데이터 처리 부하가 높은 네트워크 스위치 장치에 대응하고 데이터 처리 부하가 낮은 네트워크 스위치 장치는,
상기 데이터 처리 부하가 높은 네트워크 스위치 장치와 동일 레벨이고, 마이그레이션 이후 상기 집약 트리의 연결성이 유지되고, 집약 부하가 마이그레이션 이전보다 작아지게 하는 네트워크 스위치 장치를 포함하는 인-네트워크 관리 장치.
According to paragraph 2,
A network switch device that corresponds to the network switch device with a high data processing load and has a low data processing load,
An in-network management device comprising a network switch device whose data processing load is at the same level as a high network switch device, connectivity of the aggregation tree is maintained after migration, and the aggregation load is made smaller than before migration.
제1항에 있어서,
상기 통신부는, 상기 적어도 하나의 네트워크 스위치 장치 및 상기 적어도 하나의 네트워크 스위치 장치로 데이터를 전달하는 동작 서버 장치 중 적어도 하나로 상기 집약 트리에 대응하는 데이터를 전달하는 인-네트워크 관리 장치.
According to paragraph 1,
The communication unit transmits data corresponding to the aggregation tree to at least one of the at least one network switch device and an operation server device that transmits data to the at least one network switch device.
삭제delete 제1항에 있어서,
상기 적어도 하나의 네트워크 스위치 장치는, 상기 슬롯에 기 저장된 키와 상기 수신한 키가 상이하면, 상기 수신한 키-값의 쌍을 상기 슬롯에 기록하고, 상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과와 다른 슬롯에 기 저장된 키에 대응하는 계수 결과를 비교하고, 상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과가 다른 슬롯에 기 저장된 키에 대응하는 계수 결과보다 작으면, 상기 슬롯에 기 저장된 키-값을 상기 다른 슬롯에 저장하는 인-네트워크 관리 장치.
According to paragraph 1,
The at least one network switch device, if the key pre-stored in the slot and the received key are different, records the received key-value pair in the slot, and stores a stored coefficient corresponding to the key pre-stored in the slot. The result is compared with the coefficient result corresponding to the key pre-stored in another slot, and if the stored coefficient result corresponding to the key pre-stored in the slot is smaller than the coefficient result corresponding to the key pre-stored in the other slot, the coefficient result previously stored in the slot is An in-network management device that stores key-values in the different slots.
동작 서버 장치 또는 다른 네트워크 스위치 장치로부터 키-값의 쌍을 수신하는 통신부;
해시 테이블의 슬롯이 공백 여부를 판단하고, 상기 해시 테이블의 슬롯이 공백이면 수신한 상기 키-값의 쌍을 상기 슬롯에 저장하고, 상기 해시 테이블의 슬롯이 공백이 아니면, 상기 슬롯에 기 저장된 키-값의 쌍의 키와 수신한 키를 비교하고, 비교 결과에 따라 상기 슬롯을 갱신하는 프로세서를 포함하고,
상기 프로세서는, 상기 비교에 따라 상기 슬롯에 기 저장된 키와 상기 수신한 키가 동일하면, 상기 슬롯에 기 저장된 값과 수신한 값을 합산하고, 합산 결과를 이용하여 상기 슬롯을 갱신하는,
네트워크 스위치 장치.
a communication unit that receives a key-value pair from an operation server device or another network switch device;
Determine whether the slot of the hash table is empty, if the slot of the hash table is empty, store the received key-value pair in the slot, and if the slot of the hash table is not empty, the key previously stored in the slot - Compares the key of the value pair with the received key and updates the slot according to the comparison result,
If the key pre-stored in the slot and the received key are the same according to the comparison, the processor adds the value pre-stored in the slot and the received value, and updates the slot using the sum result.
Network switch device.
삭제delete 제7항에 있어서,
상기 프로세서는, 상기 비교에 따라 상기 슬롯에 기 저장된 키와 상기 수신한 키가 상이하면, 상기 슬롯에 기 저장된 키를 추출하고, 상기 수신한 키-값의 쌍을 상기 슬롯에 기 저장된 키에 대체하여 상기 슬롯에 기록하는 네트워크 스위치 장치.
In clause 7,
If the key pre-stored in the slot is different from the received key according to the comparison, the processor extracts the key pre-stored in the slot and replaces the received key-value pair with the key pre-stored in the slot. A network switch device that writes to the slot.
제9항에 있어서,
상기 프로세서는, 상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과와 다른 슬롯에 기 저장된 키에 대응하는 계수 결과를 서로 비교하고, 상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과가 다른 슬롯에 기 저장된 키에 대응하는 계수 결과보다 작으면, 상기 다른 슬롯에 기 저장된 키를 추출하고, 상기 슬롯에 기 저장된 키-값을 상기 다른 슬롯에 기 저장된 키에 대체하여 상기 다른 슬롯에 저장하는 네트워크 스위치 장치.
According to clause 9,
The processor compares a stored coefficient result corresponding to a key pre-stored in the slot with a coefficient result corresponding to a key pre-stored in another slot, and the stored coefficient result corresponding to the key pre-stored in the slot is stored in the other slot. If it is smaller than the coefficient result corresponding to the stored key, the network switch device extracts the key previously stored in the other slot, replaces the key-value previously stored in the slot with the key previously stored in the other slot, and stores the key in the other slot. .
적어도 하나의 네트워크 스위치 장치에 대한 정보를 전달 받는 단계;
상기 네트워크 스위치 장치에 대한 정보를 기반으로 복수의 쿼리에 대응하는 복수의 집약 트리를 생성하는 단계;
상기 복수의 집약 트리를 병합하는 단계; 및
병합된 집약 트리를 기반으로 상기 복수의 집약 트리 중 적어도 하나의 집약 트리에 대해 재구축된 집약 트리를 생성하는 단계를 포함하고,
상기 적어도 하나의 네트워크 스위치 장치가 동작 서버 장치 또는 다른 네트워크 스위치 장치로부터 키-값의 쌍을 수신하는 단계;
해시 테이블의 슬롯이 공백 여부를 판단하는 단계;
상기 해시 테이블의 슬롯이 공백이면 수신한 상기 키-값의 쌍을 상기 슬롯에 저장하는 단계;
상기 해시 테이블의 슬롯이 공백이 아니면, 상기 슬롯에 기 저장된 키-값의 쌍의 키와 수신한 키를 비교하는 단계; 및
비교 결과에 따라 상기 슬롯을 갱신하는 단계;를 포함하는,
인-네트워크 데이터 집약 방법.
Receiving information about at least one network switch device;
generating a plurality of aggregate trees corresponding to a plurality of queries based on information about the network switch device;
merging the plurality of aggregate trees; and
Generating a reconstructed aggregate tree for at least one aggregate tree among the plurality of aggregate trees based on the merged aggregate tree,
The at least one network switch device receiving a key-value pair from an operation server device or another network switch device;
determining whether a slot in the hash table is empty;
If the slot of the hash table is empty, storing the received key-value pair in the slot;
If the slot of the hash table is not empty, comparing the key of the key-value pair previously stored in the slot with the received key; and
Including, updating the slot according to the comparison result.
In-network data aggregation method.
제11항에 있어서,
상기 병합된 집약 트리를 기반으로 상기 복수의 집약 트리 중 적어도 하나의 집약 트리에 대해 재구축된 집약 트리를 생성하는 단계는,
상기 병합된 집약 트리 내에서 데이터 처리 부하가 높은 네트워크 스위치 장치에 대응하고 데이터 처리 부하가 낮은 네트워크 스위치 장치를 검출하는 단계;
상기 적어도 하나의 집약 트리의 상기 데이터 처리 부하가 높은 네트워크 스위치 장치로부터 상기 데이터 처리 부하가 낮은 네트워크 스위치 장치로의 마이그레이션을 진행하여 상기 적어도 하나의 집약 트리에 대한 재구축된 집약 트리를 생성하는 단계;를 포함하는 인-네트워크 데이터 집약 방법.
According to clause 11,
The step of generating a reconstructed aggregate tree for at least one aggregate tree among the plurality of aggregate trees based on the merged aggregate tree,
detecting a network switch device with a low data processing load and corresponding to a network switch device with a high data processing load within the merged aggregation tree;
generating a reconstructed aggregation tree for the at least one aggregation tree by migrating the at least one aggregation tree from a network switch device with a high data processing load to a network switch device with a low data processing load; In-network data aggregation method including.
제12항에 있어서,
상기 데이터 처리 부하가 높은 네트워크 스위치 장치에 대응하고 데이터 처리 부하가 낮은 네트워크 스위치 장치는,
상기 데이터 처리 부하가 높은 네트워크 스위치 장치와 동일 레벨이고, 마이그레이션 이후 상기 집약 트리의 연결성이 유지되고, 집약 부하가 마이그레이션 이전보다 작아지게 하는 네트워크 스위치 장치를 포함하는 인-네트워크 데이터 집약 방법.
According to clause 12,
A network switch device that corresponds to the network switch device with a high data processing load and has a low data processing load,
An in-network data aggregation method comprising a network switch device whose data processing load is at the same level as a high network switch device, connectivity of the aggregation tree is maintained after migration, and the aggregation load is made smaller than before migration.
제11항에 있어서,
상기 적어도 하나의 네트워크 스위치 장치 및 상기 적어도 하나의 네트워크 스위치 장치로 데이터를 전달하는 동작 서버 장치 중 적어도 하나로 상기 집약 트리에 대응하는 데이터를 전달하는 단계;를 더 포함하는 인-네트워크 데이터 집약 방법.
According to clause 11,
In-network data aggregation method further comprising: transmitting data corresponding to the aggregation tree to at least one of the at least one network switch device and an operation server device that transmits data to the at least one network switch device.
삭제delete 제11항에 있어서,
상기 비교 결과에 따라 상기 슬롯을 갱신하는 단계는,
상기 비교에 따라 상기 슬롯에 기 저장된 키와 상기 수신한 키가 동일하면, 상기 슬롯에 기 저장된 값과 수신한 값을 합산하고, 합산 결과를 이용하여 상기 슬롯을 갱신하는 단계;를 더 포함하는 인-네트워크 데이터 집약 방법.
According to clause 11,
The step of updating the slot according to the comparison result is,
If the key pre-stored in the slot and the received key are the same according to the comparison, adding up the value pre-stored in the slot and the received value, and updating the slot using the sum result; -Network data aggregation method.
제16항에 있어서,
상기 비교 결과에 따라 상기 슬롯을 갱신하는 단계는,
상기 비교에 따라 상기 슬롯에 기 저장된 키와 상기 수신한 키가 상이하면, 상기 슬롯에 기 저장된 키를 추출하고, 상기 수신한 키-값의 쌍을 상기 슬롯에 기 저장된 키에 대체하여 상기 슬롯에 기록하는 단계;를 더 포함하는 인-네트워크 데이터 집약 방법.
According to clause 16,
The step of updating the slot according to the comparison result is,
If the key pre-stored in the slot is different from the received key according to the comparison, the key pre-stored in the slot is extracted, and the received key-value pair is replaced with the key pre-stored in the slot to be stored in the slot. An in-network data aggregation method further comprising: recording.
제17항에 있어서,
상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과와 다른 슬롯에 기 저장된 키에 대응하는 계수 결과를 서로 비교하는 단계; 및
상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과가 다른 슬롯에 기 저장된 키에 대응하는 계수 결과보다 작으면, 상기 다른 슬롯에 기 저장된 키를 추출하고, 상기 슬롯에 기 저장된 키-값을 상기 다른 슬롯에 기 저장된 키에 대체하여 상기 다른 슬롯에 저장하는 단계;를 더 포함하는 인-네트워크 데이터 집약 방법.
According to clause 17,
Comparing a stored coefficient result corresponding to a key pre-stored in the slot with a coefficient result corresponding to a key pre-stored in another slot; and
If the stored coefficient result corresponding to the key pre-stored in the slot is smaller than the coefficient result corresponding to the key pre-stored in the other slot, the key pre-stored in the other slot is extracted, and the key-value pre-stored in the slot is used in the other slot. An in-network data aggregation method further comprising: replacing a key previously stored in a slot and storing it in the other slot.
제11항에 있어서,
최종 키-값의 쌍을 추출하여 획득하고, 상기 추출하여 획득한 키-값의 쌍을 다른 네트워크 스위치 장치 또는 인-네트워크 관리 장치로 전달하는 단계;를 더 포함하는 인-네트워크 데이터 집약 방법.
According to clause 11,
An in-network data aggregation method further comprising extracting and obtaining a final key-value pair, and transmitting the extracted and obtained key-value pair to another network switch device or an in-network management device.
적어도 하나의 네트워크 스위치 장치가 동작 서버 장치 또는 다른 네트워크 스위치 장치로부터 키-값의 쌍을 수신하는 단계;
해시 테이블의 슬롯이 공백 여부를 판단하는 단계;
상기 해시 테이블의 슬롯이 공백이면 수신한 상기 키-값의 쌍을 상기 슬롯에 저장하는 단계;
상기 해시 테이블의 슬롯이 공백이 아니면, 상기 슬롯에 기 저장된 키-값의 쌍의 키와 수신한 키를 비교하는 단계;
상기 비교에 따라 상기 슬롯에 기 저장된 키와 상기 수신한 키가 상이하면, 상기 슬롯에 기 저장된 키를 추출하고, 상기 수신한 키-값의 쌍을 상기 슬롯에 기 저장된 키에 대체하여 상기 슬롯에 기록하는 단계;
상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과와 다른 슬롯에 기 저장된 키에 대응하는 계수 결과를 서로 비교하는 단계; 및
상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과가 다른 슬롯에 기 저장된 키에 대응하는 계수 결과보다 작으면, 상기 다른 슬롯에 기 저장된 키를 추출하고, 상기 슬롯에 기 저장된 키-값을 상기 다른 슬롯에 기 저장된 키에 대체하여 상기 다른 슬롯에 저장하는 단계;를 포함하는 인-네트워크 데이터 집약 방법.
At least one network switch device receiving a key-value pair from an operation server device or another network switch device;
determining whether a slot in the hash table is empty;
If the slot of the hash table is empty, storing the received key-value pair in the slot;
If the slot of the hash table is not empty, comparing the key of the key-value pair previously stored in the slot with the received key;
If the key pre-stored in the slot is different from the received key according to the comparison, the key pre-stored in the slot is extracted, and the received key-value pair is replaced with the key pre-stored in the slot to be stored in the slot. recording step;
Comparing a stored coefficient result corresponding to a key pre-stored in the slot with a coefficient result corresponding to a key pre-stored in another slot; and
If the stored coefficient result corresponding to the key pre-stored in the slot is smaller than the coefficient result corresponding to the key pre-stored in the other slot, the key pre-stored in the other slot is extracted, and the key-value pre-stored in the slot is used in the other slot. In-network data aggregation method including; replacing the key previously stored in the slot and storing it in the other slot.
삭제delete
KR1020220014865A 2021-10-06 2022-02-04 Apparatus for determining of tree, network switch apparatus, system of in-network data aggregation including the same and method thereof KR102648743B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2022/001952 WO2023058829A1 (en) 2021-10-06 2022-02-09 In-network management device, network switch, and in-network data aggregation system and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210132342 2021-10-06
KR20210132342 2021-10-06

Publications (2)

Publication Number Publication Date
KR20230049526A KR20230049526A (en) 2023-04-13
KR102648743B1 true KR102648743B1 (en) 2024-03-19

Family

ID=85978963

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220014865A KR102648743B1 (en) 2021-10-06 2022-02-04 Apparatus for determining of tree, network switch apparatus, system of in-network data aggregation including the same and method thereof

Country Status (1)

Country Link
KR (1) KR102648743B1 (en)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANNA FERNANDEZ-RAJAL SABALA, Comparison of flow tables algorithms for stateful Load Balancers, Bachelor thesis, Universitat Politecnica de Catalunya, 2021.01, 18,26,30면.*
XIANG SHILI, Multiple Query Optimization in Wireless Sensor Networks Ph.D Theses, National University of Singapore, 2011.01.29., 18,21-23,25-28,30면.*

Also Published As

Publication number Publication date
KR20230049526A (en) 2023-04-13

Similar Documents

Publication Publication Date Title
US10769148B1 (en) Relocating data sharing operations for query processing
US10664169B2 (en) Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device
US8290919B1 (en) System and method for distributing and accessing files in a distributed storage system
CN107430528B (en) Opportunistic resource migration to optimize resource placement
US8768981B1 (en) System and method for distributing and accessing files in a distributed storage system
US8392368B1 (en) System and method for distributing and accessing files in a distributed storage system
CN102930062B (en) The method of the quick horizontal extension of a kind of database
CN109815283B (en) Heterogeneous data source visual query method
US10356150B1 (en) Automated repartitioning of streaming data
Alonso et al. DPI: the data processing interface for modern networks
CN106570113B (en) Mass vector slice data cloud storage method and system
US20210390089A1 (en) Code dictionary generation based on non-blocking operations
US20130185283A1 (en) Query optimization in a parallel computer system with multiple networks
US11960616B2 (en) Virtual data sources of data virtualization-based architecture
US20240004853A1 (en) Virtual data source manager of data virtualization-based architecture
Senger et al. BSP cost and scalability analysis for MapReduce operations
Zhang et al. Optimizing declarative graph queries at large scale
US9898273B1 (en) Dynamically updating APIS based on updated configuration file of a computing system
CN114443680A (en) Database management system, related apparatus, method and medium
US20190294717A1 (en) Method and system for performing inner-joins on a sharded data set
CN103678425A (en) Integrated analysis for multiple systems
CN107908713B (en) Distributed dynamic rhododendron filtering system based on Redis cluster and filtering method thereof
US20210373916A1 (en) Software plugins of data virtualization-based architecture
CN105635285A (en) State-sensing-based VM migration scheduling method
KR102648743B1 (en) Apparatus for determining of tree, network switch apparatus, system of in-network data aggregation including the same and method thereof

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant