KR20230049526A - 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 방법 - Google Patents

인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 방법 Download PDF

Info

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

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

인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 방법에 관한 것으로, 인-네트워크 관리 장치는 적어도 하나의 네트워크 스위치 장치에 대한 정보를 전달 받는 통신부 및 상기 네트워크 스위치 장치에 대한 정보를 기반으로 복수의 쿼리에 대응하는 복수의 집약 트리를 생성하고, 상기 복수의 집약 트리를 병합하고, 병합된 집약 트리를 기반으로 상기 복수의 집약 트리 중 적어도 하나의 집약 트리에 대해 재구축된 집약 트리를 생성하는 프로세서를 포함할 수 있다.

Description

인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 방법{APPARATUS FOR DETERMINING OF TREE, NETWORK SWITCH APPARATUS, SYSTEM OF IN-NETWORK DATA AGGREGATION INCLUDING THE SAME AND METHOD THEREOF}
인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 인-네트워크 데이터 집약 방법에 관한 것이다.
종래에는 데이터 평면은 말단 사이에서 또는 말단과 서버 사이에서 단순히 패킷 전달 기능만을 수행하였으나, 최근에는 프로그래밍 가능한 데이터 평면 기술에 의해 보다 다양한 기능을 수행할 수 있게 되었다. 프로그래밍 가능한 데이터 평면 기술은, P4 등과 같이 데이터 평면의 동작에 관한 프로그래밍 언어를 이용하여 프로그래밍 가능한 네트워크 스위치나 네트워크 인터페이스 카드 등의 네트워크 장치를 프로그래밍하는 기술이다. 이들 프로그램을 이용하면, 네트워크 스위치의 파서, 매치-액션 스테이지 및 디-파서의 동작 등의 정의가 가능해지므로, 사용자가 원하는 기능을 유연하게 제공하면서 해당 기능을 보다 신속하게 처리할 수 있다.
데이터 평면 기술의 발달에 따라 인-네트워크 컴퓨팅(In-network computing) 기술도 더불어 성장하고 있다. 인-네트워크 컴퓨팅 기술이란, 종래 서버 장치나 단말 장치 등에서 수행된 일련의 컴퓨팅 처리의 전부 또는 일부를 네트워크 내의 네트워크 스위치(switch)나 라우터(router) 등에서 수행할 수 있도록 하는 기술이다. 이러한 인-네트워크 컴퓨팅은, 컴퓨팅이 필요한 패킷이 컴퓨팅 서버로 우회함으로써 발생되는 지연 시간을 절감할 수 있을 뿐만 아니라, 소프트웨어 기반의 컴퓨팅 대신에 고성능의 하드웨어를 기반으로 컴퓨팅을 수행할 수 있으므로, 신속한 연산 처리가 가능하다.
인-네트워크 컴퓨팅 기술 중에서 인-네트워크 집약(In-network aggregation) 기술이 존재한다. 인-네트워크 집약 기술은, 데이터의 전달 경로 상에 위치한 중간 노드(프로그래밍 가능한 네트워크 스위치 등)가 다른 노드나 단말로부터 데이터를 수신하고, 수신한 데이터를 집약한 후, 이를 다른 노드나 단말로 전달하는 기술이다. 인-네트워크 집약 기술은, 처리 지연 측면에서나 트래픽 부하 절감 차원에서 장점이 있어 최근 많은 주목을 받고 있다. 그러나, 통상 프로그래밍 가능한 네트워크 스위치는 메모리 용량이 수십 메가 바이트 정도로 극히 작은 반면에, 전송 및 처리될 데이터는 이보다 매우 크며, 그 크기가 때때로 수백 메가 바이트 정도를 갖는다. 이와 같이 데이터 용량 대비 네트워크 스위치의 상대적으로 부족한 메모리 용량 때문에, 노드 간에 전달되는 데이터의 집약은 오직 일부에 한하여 수행될 수밖에 없었고, 이는 인-네트워크 집약 성능의 향상에 주요 장애가 되고 있다.
한편, 데이터 센터 네트워크는 다수의 테넌트(tenant)에게 필요한 기능을 동시에 제공하기 위한 소프트웨어 멀티테넌시(software multitenancy) 기술을 사용하고 있는 추세이다. 멀티테넌시 기술의 경우에도, 자원 제약이나 트래픽 절감 등의 이유로 인-네트워크 집약이 필요한데, 최근에는 이러한 인-네트워크 집약을 위해서 균등 분할 방식이 이용되고 있다. 균등 분할 방식은 동시에 동작하는 기능의 집약을 위해서 네트워크 스위치의 가용 자원을 균등하게 분할하여 각 기능에 독점 할당하는 기술이다. 그러나, 자원의 균등 분할 방식은, 실행되는 기능의 개수에 따라 특정한 메모리 파티션이 사용되지 않거나 또는 특정 기능에 할당된 메모리 파티션을 타 기능에 재활용하는 것이 불가능한 문제점이 있다. 이는 네트워크 스위치의 자원 낭비를 초래하고, 인-네트워크 집약 성능을 저하하는 원인이 된다.
생성된 데이터의 양과 가용 자원을 고려하여 네트워크 스위치를 최적으로 선택하고 메모리 파티션의 크기를 결정할 수 있는 인-네트워크 관리 장치, 인-네트워크 데이터 집약 시스템 및 인-네트워크 데이터 집약 방법을 제공하는 것을 해결하고자 하는 과제로 한다.
또한, 상대적으로 적은 메모리 용량으로도 더 많은 집약을 수행할 수 있는 네트워크 스위치를 제공하는 것을 또 다른 해결하고자 하는 과제로 한다.
상술한 과제를 해결하기 위하여 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 방법이 제공된다.
인-네트워크 관리 장치는, 적어도 하나의 네트워크 스위치 장치에 대한 정보를 전달 받는 통신부 및 상기 네트워크 스위치 장치에 대한 정보를 기반으로 복수의 쿼리에 대응하는 복수의 집약 트리를 생성하고, 상기 복수의 집약 트리를 병합하고, 병합된 집약 트리를 기반으로 상기 복수의 집약 트리 중 적어도 하나의 집약 트리에 대해 재구축된 집약 트리를 생성하는 프로세서를 포함할 수 있다.
네트워크 스위치 장치는, 동작 서버 장치 또는 다른 네트워크 스위치 장치로부터 키-값의 쌍을 수신하는 통신부 및 해시 테이블의 슬롯이 공백 여부를 판단하고, 상기 해시 테이블의 슬롯이 공백이면 수신한 상기 키-값의 쌍을 상기 슬롯에 저장하고, 상기 해시 테이블의 슬롯이 공백이 아니면, 상기 슬롯에 기 저장된 키-값의 쌍의 키와 수신한 키를 비교하고, 비교 결과에 따라 상기 슬롯을 갱신하는 프로세서를 포함할 수 있다.
인-네트워크 데이터 집약 방법은, 적어도 하나의 네트워크 스위치 장치에 대한 정보를 전달 받는 단계, 상기 네트워크 스위치 장치에 대한 정보를 기반으로 복수의 쿼리에 대응하는 복수의 집약 트리를 생성하는 단계, 상기 복수의 집약 트리를 병합하는 단계 및 병합된 집약 트리를 기반으로 상기 복수의 집약 트리 중 적어도 하나의 집약 트리에 대해 재구축된 집약 트리를 생성하는 단계를 포함할 수 있다.
인-네트워크 데이터 집약 방법은, 적어도 하나의 네트워크 스위치 장치가 동작 서버 장치 또는 다른 네트워크 스위치 장치로부터 키-값의 쌍을 수신하는 단계, 해시 테이블의 슬롯이 공백 여부를 판단하는 단계, 상기 해시 테이블의 슬롯이 공백이면 수신한 상기 키-값의 쌍을 상기 슬롯에 저장하는 단계, 상기 해시 테이블의 슬롯이 공백이 아니면, 상기 슬롯에 기 저장된 키-값의 쌍의 키와 수신한 키를 비교하는 단계, 상기 비교에 따라 상기 슬롯에 기 저장된 키와 상기 수신한 키가 상이하면, 상기 슬롯에 기 저장된 키를 추출하고, 상기 수신한 키-값의 쌍을 상기 슬롯에 기 저장된 키에 대체하여 상기 슬롯에 기록하는 단계, 상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과와 다른 슬롯에 기 저장된 키에 대응하는 계수 결과를 서로 비교하는 단계 및 상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과가 다른 슬롯에 기 저장된 키에 대응하는 계수 결과보다 작으면, 상기 다른 슬롯에 기 저장된 키를 추출하고, 상기 슬롯에 기 저장된 키-값을 상기 다른 슬롯에 기 저장된 키에 대체하여 상기 다른 슬롯에 저장하는 단계를 포함할 수도 있다.
인-네트워크 데이터 집약 시스템은, 적어도 하나의 네트워크 스위치 장치 및 상기 네트워크 스위치 장치에 대한 정보를 기반으로 복수의 쿼리에 대응하는 복수의 집약 트리를 생성하고, 상기 복수의 집약 트리를 병합하고, 병합된 집약 트리를 기반으로 상기 복수의 집약 트리 중 적어도 하나의 집약 트리에 대해 재구축된 집약 트리를 생성하는 인-네트워크 관리 장치를 포함할 수 있다.
상술한 인-네트워크 관리 장치, 인-네트워크 데이터 집약 시스템 및 인-네트워크 데이터 집약 방법에 의하면, 멀티테넌시가 필요한 환경 하에서 데이터의 양과 가용 자원을 고려하여 네트워크 스위치를 최적으로 선택하고 이를 기반으로 집약 경로를 결정할 수 있게 되는 효과를 얻을 수 있다.
상술한 네트워크 스위치에 의하면, 상대적으로 적은 메모리 용량으로도 더 많은 집약을 수행할 수 있는 효과를 얻을 수 있다.
상술한 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 인-네트워크 데이터 집약 방법에 의하면, 최적 선택된 각 네트워크 스위치의 메모리 파티션의 크기를 적응적으로 결정할 수 있게 되는 효과도 얻을 수 있다.
상술한 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 인-네트워크 데이터 집약 방법에 의하면, 네트워크 경로 상에서의 집약 성능을 향상시킬 수 있어, 데이터에 대한 처리 시간을 단축시키고 해당 데이터에 대한 네트워크 트래픽을 절감할 수 있는 효과도 얻을 수 있다.
도 1은 인-네트워크 데이터 집약 시스템의 일 실시예에 대한 개요도이다.
도 2는 집약 트리의 일 실시예에 대한 도면이다.
도 3은 인-네트워크 관리 장치의 일 실시예에 대한 블록도이다.
도 4 내지 도 11은 인-네트워크 관리 장치의 동작의 일 실시예를 설명하기 위한 제1 내지 제8 도이다.
도 12는 네트워크 스위치 장치의 일 실시예에 대한 블록도이다.
도 13 및 도 14는 네트워크 스위치 장치의 집약 동작의 일례를 설명하기 위한 제1 및 제2 도이다.
도 15는 발생 데이터 종류의 개수에 따른 집약 성능의 변화를 측정한 그래프이다.
도 16은 3개의 애플리케이션이 동시에 동작하는 멀티테넌시 환경 하에서 집약 경로 설정 방법에 따른 집약 성능의 변화를 도시한 그래프이다.
도 17은 인-네트워크 데이터 집약 방법의 일 실시예에 대한 흐름도이다.
도 18은 네트워크 스위치 장치의 집약 동작 과정의 일 실시예에 대한 흐름도이다.
이하 명세서 전체에서 동일 참조 부호는 특별한 사정이 없는 한 동일 구성요소를 지칭한다. 이하에서 사용되는 '부'가 부가된 용어는, 소프트웨어 및/또는 하드웨어로 구현될 수 있으며, 실시예에 따라 하나의 '부'가 하나의 물리적 또는 논리적 부품으로 구현되거나, 복수의 '부'가 하나의 물리적 또는 논리적 부품으로 구현되거나, 하나의 '부'가 복수의 물리적 또는 논리적 부품들로 구현되는 것도 가능하다. 명세서 전체에서 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 어떤 부분과 다른 부분이 상호 간에 물리적으로 연결되었음을 의미할 수도 있고, 및/또는 전기적으로 연결되었음을 의미할 수도 있다. 또한, 어떤 부분이 다른 부분을 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 부분 이외의 또 다른 부분을 제외하는 것이 아니며, 설계자의 선택에 따라서 또 다른 부분을 더 포함할 수 있음을 의미한다. 제1 내지 제N(N은 1 이상의 자연수) 등의 표현은, 적어도 하나의 부분(들)을 다른 부분(들)으로부터 구분하기 위한 것으로, 특별한 기재가 없는 이상 이들이 순차적임을 반드시 의미하지는 않는다. 또한 단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함할 수 있다.
이하 도 1 내지 도 16을 참조하여 인-네트워크 관리 장치 및 다수의 네트워크 스위치 장치를 포함하는 인-네트워크 데이터 집약 시스템의 일 실시예에 대해 설명하도록 한다.
도 1은 인-네트워크 데이터 집약 시스템의 일 실시예에 대한 개요도이고, 도 2는 집약 트리의 일 실시예에 대한 도면이다.
도 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 등) 중 적어도 하나를 포함할 수 있다.
인-네트워크 관리 장치(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)는 멀티테넌시 인식 집약 트리를 포함할 수 있다.
동작 서버 장치(90-1 내지 90-3)는, 독립적으로 또는 종속적으로 인-네트워크 관리 장치(100)로부터 전달 받은 데이터, 명령 또는 질의에 대한 처리를 수행하고, 처리 결과를 다수의 네트워크 스위치 장치(10: 10-1 내지 10-12)를 기반으로 구축된 집약 트리(T1)를 통해 전달할 수 있다. 이 경우, 동작 서버 장치(90-1 내지 90-3)는 주어진 집약 트리(T1)에 따라 처리 결과가 집약, 전달될 수 있도록, 집약 트리(T1) 내에서 처리 결과를 최초로 전달 받을 네트워크 스위치 장치(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) 등으로 전달할 수 있다.
이하 인-네트워크 관리 장치(100)의 구체적인 동작을 설명하도록 한다.
도 3은 인-네트워크 관리 장치의 일 실시예에 대한 블록도이고, 도 4 내지 도 11은 인-네트워크 관리 장치의 동작의 일 실시예를 설명하기 위한 제1 내지 제8 도이다.
도 3을 참조하면, 인-네트워크 관리 장치(100)는, 동작 서버 장치(90-1 내지 90-3) 및 네트워크 스위치 장치(10: 10-1 내지 10-12) 중 적어도 하나와 통신을 수행할 수 있는 동작 통신부(101)와, 트리(T1)의 결정 및 데이터 등의 배포 처리를 수행하기 위한 프로세서(110)를 포함할 수 있다. 실시예에 따라서, 인-네트워크 관리 장치(100)는 단말 장치(2) 등에서 전달되거나, 프로세서(110)의 처리 과정에서 획득하거나 또는 프로세서(110)의 처리 결과에 따라 획득한 데이터, 명령 또는 쿼리 등을 일시적 또는 비일시적으로 저장하는 저장부(102, 주기억장치 및 보조기억장치 중 적어도 하나를 포함 가능함)와, 사용자 등으로부터 명령을 수신하고 처리 결과 등을 시각적 또는 청각적으로 사용자 등에게 제공할 수 있는 유저 인터페이스(105, 키보드나 마우스 장치 등의 입력부 및/또는 디스플레이나 스피커 장치 등의 출력부를 포함할 수 있으며, 실시예에 따라서 통신 모듈이나 데이터 입출력 모듈 등을 포함할 수도 있음)를 더 포함할 수도 있다.
프로세서(110)는 정보 수집부(111), 트리 구성부(112), 트리 재구성부(113) 및 배포 처리부(114)를 포함할 수 있다. 정보 수집부(111), 트리 구성부(112), 트리 재구성부(113) 및 배포 처리부(114)는 논리적으로 및/또는 물리적으로 구분된 것일 수 있다.
정보 수집부(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) 구성에 필요한 정보는 처리될 데이터의 양을 포함할 수 있다. 멀티테넌시 처리를 위한 경우, 데이터의 양은 각각의 애플리케이션의 명령 또는 쿼리로부터 발생하는 데이터의 양을 포함할 수도 있다.
트리 구성부(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)로 전달된다.
제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)에서 더 많은 데이터를 집약해야 함을 의미한다.
트리 재구성부(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)가 부재하면, 마이그레이션은 종료된다.
마이그레이션이 종료되면, 트리 재구성부(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)가 더 적고, 자원 소모량이 적절히 분배되었음을 알 수 있다.
배포 처리부(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)를 기반으로 데이터의 전달 및 집약을 수행할 수 있게 된다.
프로세서(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) 및/또는 이외 각종 연산 및 제어 처리를 수행할 수 있는 적어도 하나의 전자 장치 등을 포함할 수 있다.
또한, 상술한 인-네트워크 관리 장치(100)는, 상술한 트리(T1 내지 T2-7) 등 수행할 수 있도록 특별히 고안된 장치를 이용하여 구현될 수도 있고, 또는 정보처리장치를 단독으로 이용하거나 조합 이용함으로써 구현될 수도 있다. 정보처리장치는 서버용 하드웨어 장치, 데스크톱 컴퓨터, 랩톱 컴퓨터 또는 스마트 폰 등을 포함할 수 있으나 이에 한정되는 것은 아니다.
도 12는 네트워크 스위치 장치의 일 실시예에 대한 블록도이고, 도 13 및 도 14는 네트워크 스위치 장치의 집약 동작의 일례를 설명하기 위한 제1 및 제2 도이다.
네트워크 스위치 장치(10)는 동작 서버 장치(90: 90-1 내지 90-k)나 다른 네트워크 스위치 장치(10: 10-1 내지 10-12 중 적어도 하나)로부터 데이터를 전달 받고, 전달 받은 데이터에 대한 집약 처리를 수행하고, 처리 결과를 인-네트워크 관리 장치(100)나 또 다른 네트워크 스위치 장치(10: 10-1 내지 10-12 중 적어도 하나)로 전달할 수 있다.
일 실시예에 따르면, 네트워크 스위치 장치(10)는 도 12에 도시된 것처럼 저장부(12) 및 프로세서(20)를 포함할 수 있으며, 필요에 따라서, 통신부(11) 및 유저 인터페이스(15) 중 적어도 하나를 더 포함할 수 있다.
저장부(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)를 포함할 수도 있다.
통신부(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 중 적어도 하나)에 대한 정보를 수신할 수 있다.
유저 인터페이스(15)는 네트워크 스위치 장치(10)의 동작과 관련된 데이터, 명령 또는 지시 등을 사용자 등으로부터 직접 입력 받거나, 네트워크 스위치 장치(10)의 동작 결과에 따라 획득한 데이터 등을 사용자 등에게 시각적 또는 청각적으로 제공할 수 있다.
프로세서(20)는, 하나 또는 둘 이상의 중앙 처리 장치, 그래픽 처리 장치, 마이크로 컨트롤러 유닛 또는 애플리케이션 프로세서 등을 기반으로 구현된 것일 수 있으며, 도 12에 도시된 바와 같이, 논리적으로 또는 물리적으로 구분 가능한 슬롯 판단부(21), 키-값 저장 처리부(22), 키-값 비교부(23), 계수 처리부(24), 계수결과 비교부(25) 및 전달처리부(26)를 포함할 수 있다.
도 13 및 도 14를 참조하면, 슬롯 판단부(21)는 수신한 데이터(30)에 대한 해시 인덱스(h1(A), h1(B), h1(I), h1(K), h2(J) 등)를 획득하고, 해당 해시 인덱스와 연결된 슬롯이 공백인지 또는 도 13 및 도 14에 도시된 것처럼 채워져 있는지 여부를 판단할 수 있다. 즉, 슬롯 판단부(21)는 해시 테이블(50)에 수신한 데이터의 키-값의 쌍(30)을 저장할 슬롯이 비어 있는지를 확인할 수 있다. 만약 저장할 슬롯이 비어 있다면, 슬롯 판단부(21)는 키-값 저장 처리부(23)로 이에 대한 정보를 전달하고, 반대로 저장할 슬롯이 비어 있지 않다면, 키-값 비교부(23)로 슬롯이 비어 있지 않다는 정보를 전달한다.
키-값 저장 처리부(22)는, 키-값의 쌍(30)을 저장부(12)의 해시 테이블(50: 51, 52)에 저장할 수 있다. 예를 들어, 만약 슬롯 판단부(21)의 판단 결과에 따라 슬롯이 비어 있다면, 키-값 저장 처리부(22)는 키-값의 쌍(30)을 해당 슬롯에 기록 처리할 수 있다. 또한, 키-값 저장 처리부(22)는, 슬롯이 비어 있지 않다면, 키-값 비교부(23)의 비교 결과에 따라서 새로운 데이터의 값과 기존에 저장된 값을 합산하여 해당 슬롯에 저장하거나, 또는 키-값 비교부(23) 및 계수결과 비교부(25)의 처리 결과에 따라서 해당 슬롯의 기존의 저장된 키와 값을 제거하고 이를 새로운 데이터의 키와 값으로 대체 저장할 수도 있다.
키-값 비교부(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)를 획득할 수 있다.
계수 처리부(24)는 키-값 비교부(23)의 비교 결과를 수신하고, 만약 기존에 해시 테이블(51)에 저장되어 있던 키-값(51-1)의 키와 새로 수신한 데이터의 키-값의 쌍(30)의 키가 서로 동일하다면, 해당 슬롯(51-2)의 계수 결과(count)의 값을 1 증가시킨다. 예를 들어, 만약 기존의 슬롯(51-1)의 계수 결과가 1이었다면, 계수 결과에 1을 더한 값(즉 2)를 이용하여 해당 슬롯(51-2)의 계수 결과를 2로 갱신할 수 있다.
반대로 해시 테이블(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)로 전달될 수 있다.
계수 결과 비교부(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)의 갱신 또는 유지를 반복 수행할 수 있다.
상술한 과정을 통해 마지막으로 추출 및 획득되는 최종 키-값의 쌍(60)은 중복도가 낮다. 이들 키-값의 쌍은, 계수 결과 비교부(25) 또는 키-값 저장 처리부(22)에서 전달 처리부(26)로 전달된다.
전달 처리부(26)는 최종 키-값의 쌍(60)에 대해 캡슐화 처리를 수행하여 이에 대응하는 패킷을 생성하고, 이를 통신부(11)를 통해 다음 노드(다음 네트워크 스위칭 장치(10: 10-1 내지 10-12 중 적어도 하나)나 인-네트워크 관리 장치(100) 등)로 전달할 수 있도록 한다. 이에 따라 최종 키-값의 쌍(60)이 다음 노드로 전달될 수 있게 된다.
이하 도 15 및 도 16을 참조하여 상술한 인-네트워크 데이터 집약 시스템(1)의 효과를 구체적으로 설명한다.
도 15는 발생 데이터 종류의 개수에 따른 집약 성능의 변화를 측정한 그래프이다. 도 15에서 x축은 키-값 쌍의 개수를 의미하고, y축은 감소율을 의미한다. 청색 선은 종래 알려진 네트워크 내에서의 데이터 집약 방법(DAIET: Data Aggregation Inside the Network)의 집약 성능의 변화를 나타낸 것으로, 종래의 네트워크 내에서의 데이터 집약 방법은 멀티테넌시 지원을 위해 메모리의 균등 분할하되, 데이터의 중복도를 고려하지 않고 스위치에 들어온 순서대로 메모리를 처리 및 집약하는 방식이다. 또한, 황색 선(MARINA-DH)은 상술한 네트워크 스위치 장치(10) 및 인-네트워크 관리 장치(100)를 기반으로 수행되되 각 스테이지가 서로 다른 해시함수를 이용하였을 때는 집약 성능의 변화를 나타내고, 녹색 선(MARINA-SH)은 상술한 네트워크 스위치 장치(10) 및 인-네트워크 관리 장치(100)를 기반으로 수행되되 동일한 해시 함수를 이용하여 각 스테이지를 처리하였을 때의 집약 성능의 변화를 나타낸다.
도 15를 참조하면, 종래의 네트워크 내에서의 데이터 집약 방법(DAIET)과 각 스테이지가 서로 다른 해시함수를 이용하는 방법(MARINA-SH)의 경우에는, 데이터(즉, 키-값 쌍)의 양이 가용 메모리의 크기보다 적은 경우에도 집약되지 않는 데이터가 존재하는 반면에, 동일한 해시 함수를 이용하는 인-네트워크 집약 시스템(1)은 대부분의 데이터를 집약할 수 있음을 보여준다. 이는 상술한 인-네트워크 집약 시스템(1)이 고 중복된 데이터를 우선 선별하여 메모리에 저장하기 때문에, 해시 충돌에 의해 비집약된 데이터가 그 중복도가 낮을 확률이 상대적으로 높기 때문이다.
도 16은 3개의 애플리케이션이 동시에 동작하는 멀티테넌시 환경 하에서 집약 경로 설정 방법에 따른 집약 성능의 변화를 도시한 그래프이다. 도 16에서 x축은 순차적으로 종래의 네트워크 내에서의 데이터 집약 방법(DAIET)과, 상술한 네트워크 스위치 장치의 집약 동작과 종래의 네트워크 내에서의 데이터 집약 방법(DAIET)에서 이용되는 스패닝 트리(spanning tree)를 사용하여 집약 경로를 설정하는 방법(MARINA-S)과, 상술한 바와 같이 집약 경로를 설정한 방법(MARINA-H)을 의미한다. 또한, App1은 균등 분할된 메모리 파티션의 용량보다 적은 크기의 데이터를 발생시키는 애플리케이션이고, App2는 균등 분할된 메모리 파티션의 용량과 동일한 크기의 데이터를 발생시키는 애플리케이션이며, App3은 균등 분할된 메모리 파티션의 용량보다 초과하는 크기의 데이터를 발생시키는 애플리케이션이. y축은 각각의 방법 및 각각의 애플리케이션에 따른 감소율을 의미한다.
도 16을 참조하면, 종래의 네트워크 내에서의 데이터 집약 방법(DAIET)은 발생되는 데이터의 크기가 적은 경우에는 집약 성능이 우수하나 발생되는 데이터의 크기가 커질수록 그 집약 성능이 감소한다. 이는 스패닝 트리를 사용하여 집약 경로를 설정한 경우(MARINA-S)에도 동일하다. 반면에 상술한 인-네트워크 집약 시스템(1)과 같이 집약 경로를 설정하는 경우(MARINA-H)에는 대체적으로 발생되는 데이터 양에 무관하게 모든 어플리케이션(app1, app2, app3)에 대해 우수한 집약 성능을 제공하고 있다. 구체적으로, 스패닝 트리를 이용하는 종래의 방법들은 집약 경로 설정과 균등 메모리 파티션으로 인해 동일한 자원으로 더 적은 양의 데이터를 집약하기 때문에 그 집약 성능이 열등하나, 상술한 인-네트워크 집약 시스템(1)은 각각의 어플리케이션의 데이터의 양과 네트워크 스위치(10)의 자원을 고려하여 집약 경로(T1 내지 T2-7)를 설정하고, 각각의 네트워크 스위치(10)의 메모리 파티션의 크기를 적응적으로 조절하므로 집약 성능이 상대적으로 우수하다.
이하 도 17 및 도 18을 참조하여 인-네트워크 데이터 집약 방법의 일 실시예에 대해서 설명하도록 한다.
도 17은 인-네트워크 데이터 집약 방법의 일 실시예에 대한 흐름도이다.
도 17을 참조하면, 먼저 각각의 네트워크 스위치 장치로부터 집약 트리 구성에 필요한 적어도 하나의 정보가 수집된다(300). 여기서, 집약 트리 구성에 필요한 정보는, 각 네트워크 스위치 장치의 잔여 메모리 용량에 대한 정보나, 처리될 데이터의 양을 포함할 수 있다. 처리될 데이터의 양은, 멀티테넌시 처리를 위한 경우, 명령 또는 쿼리 각각으로부터 발생하는 데이터의 총합을 포함할 수도 있다.
수집된 정보를 기반으로 각각의 명령이나 쿼리마다 집약 트리가 하나 이상 생성된다(302). 이 경우, 집약 트리의 생성은 슈타이너 트리 생성 알고리즘을 기반으로 수행될 수도 있다.
생성된 하나 이상의 집약 트리는 병합된다(304). 집약 트리의 병합은, 제1 쿼리에 대한 집약 트리의 각 네트워크 스위치 장치의 데이터 사용량 및 제2 쿼리에 대한 집약 트리의 각 네트워크 스위치 장치의 데이터 사용량을 합하는 것을 포함할 수 있다.
병합 결과에 따라 모든 명령 또는 쿼리에 대한 각각의 네트워크 스위치 장치의 집약 부하 중에서 과부화인 네트워크 스위치 장치가 존재하면, 이에 응하여 부하 마이그레이션이 수행된다(306). 상세하게는 상대적으로 자원 소비량이 높은 네트워크 스위치 장치에 대응하는 네트워크 스위치 장치가 자원 소비량이 없거나 낮은 네트워크 스위치 장치 중에서 선택되고, 하나 또는 둘 이상의 명령이나 쿼리에 대해 자원 소비량이 높은 네트워크 스위치 장치에 대한 부하가 자원 소비량이 낮은 네트워크 스위치 장치로 이전된다. 예를 들어, 도 8에 도시된 바와 같이 제2 쿼리에 대한 집약 트리 내의 네트워크 스위치 장치 대신에, 이에 대응하는 다른 네트워크 스위치 장치가 해당 네트워크 스위치 장치의 처리를 수행하게 된다. 여기서, 자원 소비량이 높은 네트워크 스위치 장치에 대응하는 네트워크 스위치 장치는, 집약 부화가 높은 네트워크 스위치 장치와 동일 레벨이면서, 해당 네트워크 스위치 장치로의 부하 마이그레이션 이후에도 전체적인 연결성이 유지되고 및/또는 자원 소비량이 높은 네트워크 스위치 장치의 마이그레이션 이후의 집약 부하가 마이그레이션 이전보다 작아질 수 있도록 하는 네트워크 스위치 장치를 포함할 수 있다.
이에 따라 모든 명령 또는 쿼리 중에서 적어도 하나의 명령 또는 쿼리에 대응하는 재구축된 집약 트리가 획득된다(308). 이 경우, 모든 명령 또는 쿼리에 대한 집약 트리가 재구축되는 것은 아니다. 예를 들어, 제1 쿼리에 대한 집약 트리는 기존의 형태를 유지하고, 제2 쿼리에 대한 집약 트리는 새로운 형태로 재구축 및 수정될 수도 있다.
재구축된 집약 트리는 데이터를 처리할 동작 서버 장치나 네트워크 스위치 장치 등으로 배포될 수 있다(310). 이에 따라 동작 서버 장치나 네트워크 스위치 장치는 최적화된 집약 트리를 기반으로 데이터의 전달 및 집약을 수행할 수 있게 된다. 상술한 정보의 수집 내지 데이터의 배포(300 내지 310)은, 실시예에 따라서 인-네트워크 관리 장치에 의해 수행될 수 있다.
네트워크 스위치 장치는 전달된 집약 트리에 따라서 데이터를 전달 받고, 집약 처리를 수행하고, 집약 처리 결과를 다른 네트워크 스위치 장치나 인-네트워크 관리 장치로 전달할 수 있다(312).
도 18은 네트워크 스위치 장치의 집약 동작 과정의 일 실시예에 대한 흐름도이다.
도 18을 참조하면, 먼저 네트워크 스위치 장치는, 다른 장치(일례로 동작 서버 장치나 다른 네트워크 스위치 장치)로부터 키-값의 쌍을 입력 받을 수 있다(400).
순차적으로 수신한 데이터(키-값의 쌍)에 대한 해시 인덱스와 연결된 해시 테이블의 적어도 하나의 슬롯이 공백인지 여부가 판단될 수 있다(402).
만약 슬롯에 데이터가 저장되어 있지 않아 슬롯이 비어 있다면(402의 예), 수신한 키-값의 쌍을 해당 슬롯에 저장할 수 있다(404).
반대로 슬롯에 기 저장된 데이터가 존재하여 슬롯이 비어 있지 않다면(402의 아니오), 수신한 데이터의 키와 기존에 슬롯에 저장된 키 사이의 비교가 수행될 수 있다(406, 408).
만약 수신한 데이터의 키와 기존에 슬롯에 저장된 키가 서로 동일하다면(408의 예), 해당 키에 대한 값이 합산될 수 있다(410). 예를 들어, 도 14와 같이 수신한 데이터 및 저장된 데이터의 키가 모두 B라면, 수신한 데이터의 값 1과 기존에 저장된 데이터의 값 3은 합산되고, 합산 결과인 4는 해당 슬롯에 저장된다. 아울러, 해당 키에 대한 계수 결과도 1씩 증가시켜 갱신된다.
반대로 수신한 데이터의 키와 기존에 슬롯에 저장된 키가 서로 동일하지 않다면(408의 아니오), 기존에 슬롯에 저장된 키는 별도로 추출되고, 해당 슬롯에는 새로운 키-값이 저장된다(412). 이 경우, 해당 슬롯에는 새로운 키-값에 대응하는 계수 결과도 함께 저장될 수 있으며, 새로운 키-값에 대응하는 계수 결과는 1일 수 있다.
이어서 해시 테이블의 다른 슬롯이 선택되고(414), 선택된 다른 슬롯의 키-값에 대응하는 계수 결과와 기존의 슬롯에서 추출된 키-값에 대응하는 계수 결과가 상호 비교된다(416).
만약 기존의 슬롯에서 추출된 키-값에 대응하는 계수 결과가 다른 슬롯의 키-값에 대응하는 계수 결과보다 크다면(418의 예), 또 다른 슬롯이 선택되고(420), 또 다른 슬롯의 키-값에 대응하는 계수 결과와 기존의 슬롯에서 추출된 키-값에 대응하는 계수 결과가 상호 비교된다(416).
반대로 만약 기존의 슬롯에서 추출된 키-값에 대응하는 계수 결과가 다른 슬롯의 키-값에 대응하는 계수 결과보다 작다면(418의 예), 기존의 슬롯에서 추출된 키-값을 다른 슬롯에 기록하여 다른 슬롯을 갱신하고, 다른 슬롯의 데이터(키-값의 쌍 및 계수 결과)는 별도로 추출된다(422).
추출된 다른 슬롯의 키-값에 대응하는 계수 결과는 또 다른 슬롯의 키-값에 대응하는 계수 결과와 비교되고(414, 416), 계수 결과의 비교 결과에 따라 또 다른 슬롯에 기록되어 또 다른 슬롯을 갱신하기 위해 이용될 수 있다(418, 422, 424의 예). 이러한 과정은 최종적으로 키-값의 쌍이 획득될 때까지 반복될 수 있다(424).
상술한 과정이 종료되면(424의 아니오), 최종적으로 획득되는 키-값의 쌍은 패킷화되고, 다음 네트워크 스위칭 장치나 인-네트워크 관리 장치로 전달될 수 있다(426).
상술한 인-네트워크 데이터 집약 방법은, 컴퓨터 장치에 의해 구동될 수 있는 프로그램의 형태로 구현될 수 있다. 프로그램은 명령어, 라이브러리, 데이터 파일 및/또는 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며, 기계어 코드나 고급 언어 코드를 이용하여 설계 및 제작된 것일 수 있다. 프로그램은 상술한 인-네트워크 데이터 집약 방법을 구현하기 위하여 특별히 설계된 것일 수도 있고, 컴퓨터 소프트웨어 분야에서 통상의 기술자에게 기 공지되어 사용 가능한 각종 함수나 정의를 이용하여 구현된 것일 수도 있다. 또한, 여기서, 컴퓨터 장치는, 프로그램의 기능을 실현 가능하게 하는 프로세서나 메모리 등을 포함하여 구현된 것일 수 있으며, 필요에 따라 통신 장치를 더 포함할 수도 있다. 상술한 인-네트워크 데이터 집약 방법을 구현하기 위한 프로그램은, 컴퓨터 등의 장치에 의해 판독 가능한 기록 매체에 기록될 수 있다. 컴퓨터에 의해 판독 가능한 기록 매체는, 예를 들어, 롬, 램, SD카드 또는 플래시 메모리(일례로 솔리드 스테이트 드라이브(SSD) 등)와 같은 반도체 저장 매체나, 하드 디스크 또는 플로피 디스크 등과 같은 자기 디스크 저장 매체나, 콤팩트 디스크 또는 디브이디 등과 같은 광 기록 매체나, 또는 플롭티컬 디스크 등과 같은 자기-광 기록 매체 등과 같이 컴퓨터 등의 장치의 호출에 따라 실행되는 하나 이상의 프로그램을 일시적 또는 비일시적으로 저장 가능한 적어도 한 종류의 물리적 저장 매체를 포함할 수 있다.
이상 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 인-네트워크 데이터 집약 방법에 대해 설명하였으나, 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및/또는 인-네트워크 데이터 집약 방법은 오직 상술한 실시예에 한정되는 것은 아니다. 해당 기술 분야에서 통상의 지식을 가진 자가 상술한 실시예를 기초로 수정 및 변형하여 구현할 수 있는 다른 다양한 장치, 시스템 또는 방법 역시 상술한 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 또는 인-네트워크 데이터 집약 방법의 일 실시예가 될 수 있다. 예를 들어, 설명된 방법(들)이 설명된 바와 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성 요소(들)가 설명된 바와 다른 형태로 결합, 연결 또는 조합되거나 다른 구성 요소 또는 균등물 등에 의하여 대치 또는 치환되더라도, 상술한 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및/또는 인-네트워크 데이터 집약 방법의 일 실시예가 될 수 있다.
1: 인-네트워크 데이터 집약 시스템 10: 네트워크 스위치 장치
20: 네트워크 스위치 장치의 프로세서 21: 슬롯 판단부
22: 키-값 저장부 23: 키-값 비교부
24: 계수 처리부 25: 카운터 비교부
26: 전달처리부 30: 키-값 데이터
90: 동작 서버 장치 100: 인-네트워크 관리 장치
111: 정보 수집부 112: 트리 구성부
113: 트리 재구성부 114: 배포 처리부

Claims (21)

  1. 적어도 하나의 네트워크 스위치 장치에 대한 정보를 전달 받는 통신부; 및
    상기 네트워크 스위치 장치에 대한 정보를 기반으로 복수의 쿼리에 대응하는 복수의 집약 트리를 생성하고, 상기 복수의 집약 트리를 병합하고, 병합된 집약 트리를 기반으로 상기 복수의 집약 트리 중 적어도 하나의 집약 트리에 대해 재구축된 집약 트리를 생성하는 프로세서;를 포함하는 인-네트워크 관리 장치.
  2. 제1항에 있어서,
    상기 프로세서는, 병합된 집약 트리 내에서 데이터 처리 부하가 높은 네트워크 스위치 장치에 대응하고 데이터 처리 부하가 낮은 네트워크 스위치 장치를 검출하고, 상기 적어도 하나의 집약 트리의 상기 데이터 처리 부하가 높은 네트워크 스위치 장치로부터 상기 데이터 처리 부하가 낮은 네트워크 스위치 장치로의 마이그레이션을 진행하여 상기 적어도 하나의 집약 트리에 대한 재구축된 집약 트리를 생성하는 인-네트워크 관리 장치.
  3. 제1항에 있어서,
    상기 데이터 처리 부하가 높은 네트워크 스위치 장치에 대응하고 데이터 처리 부하가 낮은 네트워크 스위치 장치는,
    상기 데이터 처리 부하가 높은 네트워크 스위치 장치와 동일 레벨이고, 마이그레이션 이후 상기 집약 트리의 연결성이 유지되고, 집약 부하가 마이그레이션 이전보다 작아지게 하는 네트워크 스위치 장치를 포함하는 인-네트워크 관리 장치.
  4. 제1항에 있어서,
    상기 통신부는, 상기 적어도 하나의 네트워크 스위치 장치 및 상기 적어도 하나의 네트워크 스위치 장치로 데이터를 전달하는 동작 서버 장치 중 적어도 하나로 상기 집약 트리에 대응하는 데이터를 전달하는 인-네트워크 관리 장치.
  5. 제1항에 있어서,
    상기 적어도 하나의 네트워크 스위치 장치는, 동작 서버 장치로부터 키-값의 쌍을 수신하고, 해시 테이블의 슬롯이 공백이면 상기 키-값의 쌍을 상기 슬롯에 저장하고, 상기 해시 테이블의 슬롯이 공백이 아니면, 상기 슬롯에 기 저장된 키-값의 쌍의 키와 수신한 키를 비교하고, 상기 슬롯에 기 저장된 키와 상기 수신한 키가 동일하면, 상기 슬롯에 기 저장된 값과 수신한 값을 합산하고, 합산 결과를 이용하여 상기 슬롯을 갱신하는 인-네트워크 관리 장치.
  6. 제5항에 있어서,
    상기 적어도 하나의 네트워크 스위치 장치는, 상기 슬롯에 기 저장된 키와 상기 수신한 키가 상이하면, 상기 수신한 키-값의 쌍을 상기 슬롯에 기록하고, 상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과와 다른 슬롯에 기 저장된 키에 대응하는 계수 결과를 비교하고, 상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과가 다른 슬롯에 기 저장된 키에 대응하는 계수 결과보다 작으면, 상기 슬롯에 기 저장된 키-값을 상기 다른 슬롯에 저장하는 인-네트워크 관리 장치.
  7. 동작 서버 장치 또는 다른 네트워크 스위치 장치로부터 키-값의 쌍을 수신하는 통신부;
    해시 테이블의 슬롯이 공백 여부를 판단하고, 상기 해시 테이블의 슬롯이 공백이면 수신한 상기 키-값의 쌍을 상기 슬롯에 저장하고, 상기 해시 테이블의 슬롯이 공백이 아니면, 상기 슬롯에 기 저장된 키-값의 쌍의 키와 수신한 키를 비교하고, 비교 결과에 따라 상기 슬롯을 갱신하는 프로세서;를 포함하는 네트워크 스위치 장치.
  8. 제7항에 있어서,
    상기 프로세서는, 상기 비교에 따라 상기 슬롯에 기 저장된 키와 상기 수신한 키가 동일하면, 상기 슬롯에 기 저장된 값과 수신한 값을 합산하고, 합산 결과를 이용하여 상기 슬롯을 갱신하는 네트워크 스위치 장치.
  9. 제7항에 있어서,
    상기 프로세서는, 상기 비교에 따라 상기 슬롯에 기 저장된 키와 상기 수신한 키가 상이하면, 상기 슬롯에 기 저장된 키를 추출하고, 상기 수신한 키-값의 쌍을 상기 슬롯에 기 저장된 키에 대체하여 상기 슬롯에 기록하는 네트워크 스위치 장치.
  10. 제9항에 있어서,
    상기 프로세서는, 상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과와 다른 슬롯에 기 저장된 키에 대응하는 계수 결과를 서로 비교하고, 상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과가 다른 슬롯에 기 저장된 키에 대응하는 계수 결과보다 작으면, 상기 다른 슬롯에 기 저장된 키를 추출하고, 상기 슬롯에 기 저장된 키-값을 상기 다른 슬롯에 기 저장된 키에 대체하여 상기 다른 슬롯에 저장하는 네트워크 스위치 장치.
  11. 적어도 하나의 네트워크 스위치 장치에 대한 정보를 전달 받는 단계;
    상기 네트워크 스위치 장치에 대한 정보를 기반으로 복수의 쿼리에 대응하는 복수의 집약 트리를 생성하는 단계;
    상기 복수의 집약 트리를 병합하는 단계; 및
    병합된 집약 트리를 기반으로 상기 복수의 집약 트리 중 적어도 하나의 집약 트리에 대해 재구축된 집약 트리를 생성하는 단계;를 포함하는 인-네트워크 데이터 집약 방법.
  12. 제11항에 있어서,
    상기 병합된 집약 트리를 기반으로 상기 복수의 집약 트리 중 적어도 하나의 집약 트리에 대해 재구축된 집약 트리를 생성하는 단계는,
    상기 병합된 집약 트리 내에서 데이터 처리 부하가 높은 네트워크 스위치 장치에 대응하고 데이터 처리 부하가 낮은 네트워크 스위치 장치를 검출하는 단계;
    상기 적어도 하나의 집약 트리의 상기 데이터 처리 부하가 높은 네트워크 스위치 장치로부터 상기 데이터 처리 부하가 낮은 네트워크 스위치 장치로의 마이그레이션을 진행하여 상기 적어도 하나의 집약 트리에 대한 재구축된 집약 트리를 생성하는 단계;를 포함하는 인-네트워크 데이터 집약 방법.
  13. 제11항에 있어서,
    상기 데이터 처리 부하가 높은 네트워크 스위치 장치에 대응하고 데이터 처리 부하가 낮은 네트워크 스위치 장치는,
    상기 데이터 처리 부하가 높은 네트워크 스위치 장치와 동일 레벨이고, 마이그레이션 이후 상기 집약 트리의 연결성이 유지되고, 집약 부하가 마이그레이션 이전보다 작아지게 하는 네트워크 스위치 장치를 포함하는 인-네트워크 데이터 집약 방법.
  14. 제11항에 있어서,
    상기 적어도 하나의 네트워크 스위치 장치 및 상기 적어도 하나의 네트워크 스위치 장치로 데이터를 전달하는 동작 서버 장치 중 적어도 하나로 상기 집약 트리에 대응하는 데이터를 전달하는 단계;를 더 포함하는 인-네트워크 데이터 집약 방법.
  15. 제11항에 있어서,
    상기 적어도 하나의 네트워크 스위치 장치가 동작 서버 장치 또는 다른 네트워크 스위치 장치로부터 키-값의 쌍을 수신하는 단계;
    해시 테이블의 슬롯이 공백 여부를 판단하는 단계;
    상기 해시 테이블의 슬롯이 공백이면 수신한 상기 키-값의 쌍을 상기 슬롯에 저장하는 단계;
    상기 해시 테이블의 슬롯이 공백이 아니면, 상기 슬롯에 기 저장된 키-값의 쌍의 키와 수신한 키를 비교하는 단계; 및
    비교 결과에 따라 상기 슬롯을 갱신하는 단계;를 포함하는 인-네트워크 데이터 집약 방법.
  16. 제15항에 있어서,
    상기 비교 결과에 따라 상기 슬롯을 갱신하는 단계는,
    상기 비교에 따라 상기 슬롯에 기 저장된 키와 상기 수신한 키가 동일하면, 상기 슬롯에 기 저장된 값과 수신한 값을 합산하고, 합산 결과를 이용하여 상기 슬롯을 갱신하는 단계;를 더 포함하는 인-네트워크 데이터 집약 방법.
  17. 제16항에 있어서,
    상기 비교 결과에 따라 상기 슬롯을 갱신하는 단계는,
    상기 비교에 따라 상기 슬롯에 기 저장된 키와 상기 수신한 키가 상이하면, 상기 슬롯에 기 저장된 키를 추출하고, 상기 수신한 키-값의 쌍을 상기 슬롯에 기 저장된 키에 대체하여 상기 슬롯에 기록하는 단계;를 더 포함하는 인-네트워크 데이터 집약 방법.
  18. 제17항에 있어서,
    상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과와 다른 슬롯에 기 저장된 키에 대응하는 계수 결과를 서로 비교하는 단계; 및
    상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과가 다른 슬롯에 기 저장된 키에 대응하는 계수 결과보다 작으면, 상기 다른 슬롯에 기 저장된 키를 추출하고, 상기 슬롯에 기 저장된 키-값을 상기 다른 슬롯에 기 저장된 키에 대체하여 상기 다른 슬롯에 저장하는 단계;를 더 포함하는 인-네트워크 데이터 집약 방법.
  19. 제10항에 있어서,
    최종 키-값의 쌍을 추출하여 획득하고, 상기 추출하여 획득한 키-값의 쌍을 다른 네트워크 스위치 장치 또는 인-네트워크 관리 장치로 전달하는 단계;를 더 포함하는 인-네트워크 데이터 집약 방법.
  20. 적어도 하나의 네트워크 스위치 장치가 동작 서버 장치 또는 다른 네트워크 스위치 장치로부터 키-값의 쌍을 수신하는 단계;
    해시 테이블의 슬롯이 공백 여부를 판단하는 단계;
    상기 해시 테이블의 슬롯이 공백이면 수신한 상기 키-값의 쌍을 상기 슬롯에 저장하는 단계;
    상기 해시 테이블의 슬롯이 공백이 아니면, 상기 슬롯에 기 저장된 키-값의 쌍의 키와 수신한 키를 비교하는 단계;
    상기 비교에 따라 상기 슬롯에 기 저장된 키와 상기 수신한 키가 상이하면, 상기 슬롯에 기 저장된 키를 추출하고, 상기 수신한 키-값의 쌍을 상기 슬롯에 기 저장된 키에 대체하여 상기 슬롯에 기록하는 단계;
    상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과와 다른 슬롯에 기 저장된 키에 대응하는 계수 결과를 서로 비교하는 단계; 및
    상기 슬롯에 기 저장된 키에 대응하는 저장된 계수 결과가 다른 슬롯에 기 저장된 키에 대응하는 계수 결과보다 작으면, 상기 다른 슬롯에 기 저장된 키를 추출하고, 상기 슬롯에 기 저장된 키-값을 상기 다른 슬롯에 기 저장된 키에 대체하여 상기 다른 슬롯에 저장하는 단계;를 포함하는 인-네트워크 데이터 집약 방법.
  21. 적어도 하나의 네트워크 스위치 장치; 및
    상기 네트워크 스위치 장치에 대한 정보를 기반으로 복수의 쿼리에 대응하는 복수의 집약 트리를 생성하고, 상기 복수의 집약 트리를 병합하고, 병합된 집약 트리를 기반으로 상기 복수의 집약 트리 중 적어도 하나의 집약 트리에 대해 재구축된 집약 트리를 생성하는 인-네트워크 관리 장치;를 포함하는 인-네트워크 데이터 집약 시스템.
KR1020220014865A 2021-10-06 2022-02-04 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 방법 KR102648743B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2022/001952 WO2023058829A1 (ko) 2021-10-06 2022-02-09 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 방법

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 true KR20230049526A (ko) 2023-04-13
KR102648743B1 KR102648743B1 (ko) 2024-03-19

Family

ID=85978963

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220014865A KR102648743B1 (ko) 2021-10-06 2022-02-04 인-네트워크 관리 장치, 네트워크 스위치, 인-네트워크 데이터 집약 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102648743B1 (ko)

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
KR102648743B1 (ko) 2024-03-19

Similar Documents

Publication Publication Date Title
CN109074377B (zh) 用于实时处理数据流的受管理功能执行
US8290919B1 (en) System and method for distributing and accessing files in a distributed storage system
US9971823B2 (en) Dynamic replica failure detection and healing
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 (zh) 一种数据库快速水平扩展的方法
US10657154B1 (en) Providing access to data within a migrating data partition
Alonso et al. DPI: the data processing interface for modern networks
US11727004B2 (en) Context dependent execution time prediction for redirecting queries
US8954478B2 (en) Systems, methods, and media for managing RAM resources for in-memory NoSQL databases
US9785515B2 (en) Directed backup for massively parallel processing databases
US10268741B2 (en) Multi-nodal compression techniques for an in-memory database
CN108319623A (zh) 一种数据重分布方法、装置及数据库集群
CN106570113B (zh) 一种海量矢量切片数据云存储方法及系统
WO2015196686A1 (zh) 一种数据存储方法以及一种数据存储管理服务器
CN112199427A (zh) 一种数据处理方法和系统
US11178197B2 (en) Idempotent processing of data streams
US11651221B2 (en) Method, device, and computer program product for deep learning
US10019182B2 (en) Management system and management method of computer system
CN107908713B (zh) 一种基于Redis集群的分布式动态杜鹃过滤系统及其过滤方法
CN114443680A (zh) 数据库管理系统、相关装置、方法和介质
US11960616B2 (en) Virtual data sources of data virtualization-based architecture
US11687513B2 (en) Virtual data source manager of data virtualization-based architecture
US11263026B2 (en) Software plugins of data virtualization-based architecture
CN114731342A (zh) 从边缘设备到远程网络的托管数据导出

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