KR102459465B1 - 정보 중심 네트워킹 기반 저장기능 통합 인-네트워크 컴퓨팅 처리 방법 및 시스템 - Google Patents

정보 중심 네트워킹 기반 저장기능 통합 인-네트워크 컴퓨팅 처리 방법 및 시스템 Download PDF

Info

Publication number
KR102459465B1
KR102459465B1 KR1020200160074A KR20200160074A KR102459465B1 KR 102459465 B1 KR102459465 B1 KR 102459465B1 KR 1020200160074 A KR1020200160074 A KR 1020200160074A KR 20200160074 A KR20200160074 A KR 20200160074A KR 102459465 B1 KR102459465 B1 KR 102459465B1
Authority
KR
South Korea
Prior art keywords
data
host
function
interest
container
Prior art date
Application number
KR1020200160074A
Other languages
English (en)
Other versions
KR20220072457A (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 KR1020200160074A priority Critical patent/KR102459465B1/ko
Publication of KR20220072457A publication Critical patent/KR20220072457A/ko
Application granted granted Critical
Publication of KR102459465B1 publication Critical patent/KR102459465B1/ko

Links

Images

Classifications

    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 정보 중심 네트워킹(information centric networking, ICN) 기술을 기반으로 하는 인-네트워크 컴퓨팅(in-network computing, INC)을 효율적으로 지원하기 위한 데이터 저장 기능 통합형 인-네트워크 컴퓨팅 방법 및 장치에 관한 것이다. 본 개시에 적용 가능한 일 실시 예에 따르면, 호스트가 INC 인터레스트(interest)를 통해 사용자 요구 사항을 수신하고 확인하는 단계, 상기 호스트가 함수(function) 실행을 위한 컨테이너를 구성하는 단계를 포함하고 여기서, 상기 함수가 요구하는 데이터는 볼륨 마운트 형식을 사용하되, 읽기 전용으로 구성되고,
상기 호스트가 컨테이너의 데이터를 관리하는 단계를 포함하고 여기서, 상기 컨테이너에서 실행한 함수 결과를 저장하는 마운트는 호스트 메모리 영역에 저장되되, 상기 호스트가 컨테이너 종료 메시지를 수신하면 상기 마운트에 저장한 데이터를 호스트 볼륨으로 이관하고,
상기 호스트가 메타데이터를 생성하는 단계를 포함하고, 여기서, 상기 호스트 볼륨으로 데이터 이관 완료 시 매니페스트(manifest) 파일이 생성되되, 상기 매니페스트 파일은 결과 데이터 이름 해싱에 따라 저장될 메타데이터 호스트가 선택될 수 있다.

Description

정보 중심 네트워킹 기반 저장기능 통합 인-네트워크 컴퓨팅 처리 방법 및 시스템{Method and system for distributed data storage integrated in-network computing in information centric networking}
본 발명은 컴퓨터 네트워크, 이름기반 데이터 네트워킹(named data networking, NDN) 및 네트워크 파일 저장소에 관한 것이다. 보다 구체적으로, 정보 중심 네트워킹(information centric networking, ICN) 기술을 기반으로 하는 인-네트워크 컴퓨팅(in-network computing, INC)을 효율적으로 지원하기 위한 데이터 저장 기능 통합형 인-네트워크 컴퓨팅 방안에 관한 것이다.
이름 기반 네트워킹(named data networking, NDN)은 콘텐츠 중심 네트워킹(content centric networking, CCN)과 동일한 개념으로 사용되고 있다. 또한, NDN은 정보 중심 네트워킹(information centric networking, ICN)에서 논의되는 미래 네트워크에 대한 구현 사례 중 하나이다.
NDN에서 콘텐츠는 세그먼트의 집합으로 구성되며 인터레스트(interest)에 대하여 데이터(data)로 응답한다. 즉, NDN에서 콘텐츠는 세그먼트의 집합으로 구성되며 요청(request)에 대하여 응답(response)으로 응답한다. 이상적인 P2P (Point-to-Point) 환경에서는 소비자(consumer)가 요청하는 인터레스트에 대한 데이터를 생산자(producer)가 직접 제공하지만, 보통의 경우 생산자는 자신의 데이터를 네트워크에 저장하기를 원한다. 일반적인 IP(internet protocol) 환경에서 클라우드 또는 데이터센터를 통하여 자신의 데이터를 네트워크에 저장하는 서비스처럼, NDN 환경도 데이터를 네트워크에 저장하는 데이터 저장소가 요구되고 있다.
본 발명은 정보 중심 네트워킹(information centric networking, ICN) 기술을 기반으로 하는 인-네트워크 컴퓨팅(in-network computing, INC)을 효율적으로 지원하기 위한 데이터 저장 기능 통합형 인-네트워크 컴퓨팅 방법 및 장치를 제공하는 것을 그 목적으로 한다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서,
호스트가 INC 인터레스트(interest)를 통해 사용자 요구 사항을 수신하고 확인하는 단계를 포함하고, 상기 호스트가 함수(function) 실행을 위한 컨테이너를 구성하는 단계, 여기서, 상기 함수가 요구하는 데이터는 볼륨 마운트 형식을 사용하되, 읽기 전용으로 구성되고,
상기 호스트가 컨테이너의 데이터를 관리하는 단계를 포함하고, 여기서, 상기 컨테이너에서 실행한 함수 결과를 저장하는 마운트는 호스트 메모리 영역에 저장되되, 상기 호스트가 컨테이너 종료 메시지를 수신하면 상기 마운트에 저장한 데이터를 호스트 볼륨으로 이관하고,
상기 호스트가 메타데이터를 생성하는 단계를 포함하고, 여기서, 상기 호스트 볼륨으로 데이터 이관 완료 시 매니페스트(manifest) 파일이 생성되되, 상기 매니페스트 파일은 결과 데이터 이름 해싱에 따라 저장될 메타데이터 호스트가 선택될 수 있다.
상기 INC 인터레스트는 NDN 인터레스트를 만족하고, 사용할 함수(function) 및 데이터 이름을 포함할 수 있다. 상기 호스트가 INC 인터레스트(interest)를 통해 사용자 요구 사항을 확인하고 수신하는 단계는, 상기 INC 인터레스트에 포함된 함수(function)에 필요한 데이터 파라미터를 해싱(hashing)하는 것을 포함할 수 있다. 상기 INC 인터레스트는 매개변수가 없는 함수(function)만을 지정하는 인터레스트일 수 있다. 상기 INC 인터레스트는 매개변수가 있는 함수를 지정하는 인터레스트일 수 있다. 상기 매개변수가 없는 함수는 사용할 데이터가 없는 함수이고, 상기 컨테이너는 사용자 확인 요구를 수신한 상기 호스트에 생성될 수 있다. 상기 매개변수가 있는 함수는 데이터를 사용하는 함수이고, 상기 컨테이너는 실제 데이터가 저장된 호스트에 생성될 수 있다. 상기 호스트는 함수 이름을 해시한 결과를 사용하여 서브 디렉토리를 생성하는 단계를 더 포함하고, 상기 서브 디렉토리에 함수 결과 데이터가 이관될 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서,
사용자 요구사항 관리부를 포함하고, 상기 사용자 요구사항 관리부는 INC 인터레스트(interest)를 통해 사용자 요구 사항을 수신하고 확인하되, INC에서 사용할 데이터에 대한 정보를 바탕으로 함수 실행을 위한 컨테이너를 생성할 호스트를 결정하고,
볼륨 제어부를 포함하고, 상기 볼륨 제어부는 모든 호스트 및 모든 컨테이너의 디렉토리를 같은 구조로 구성하되, 상기 호스트 및 컨테이너의 디렉토리를 구성한 구조와 동일한 메커니즘을 통하여 서브 디렉토리를 생성하고,
캐시 데이터 관리부를 포함하고, 상기 캐시 데이터 관리부는 상기 컨테이너에서 생성된 데이터를 호스트의 메모리에 저장하되, 상기 호스트의 메모리에 저장한 데이터를 함수(function) 종료 메시지를 수신 시 호스트 볼륨으로 이관하고,
데이터 관리부를 포함하고, 상기 데이터 관리부는 모든 데이터를 볼륨에 저장하되, 상기 볼륨을 마운트한 컨테이너는 사용할 데이터 디렉토리만 읽기 전용으로 공유되고,
메타 데이터 관리부를 포함하고, 상기 메타 데이터 관리부는 상기 사용자 요구사항 관리부로부터 전달받은 데이터 이름을 해싱하여 메타데이터 호스트를 선택하고, 매니페스트 파일을 생성할 수 있다.
상기 INC 인터레스트는 NDN 인터레스트를 만족하고, 사용할 함수(function) 및 데이터 이름을 포함할 수 있다. 상기 호스트가 INC 인터레스트(interest)를 통해 사용자 요구 사항을 수신하고 확인하는 것은, 상기 인터레스트에 포함된 함수(function)에 필요한 데이터 파라미터를 해싱(hashing)하는 것을 포함할 수 있다. 상기 INC 인터레스트는 매개변수가 없는 함수(function)만을 지정하는 인터레스트일 수 있다. 상기 INC 인터레스트는 매개변수가 있는 함수를 지정하는 인터레스트일 수 있다. 상기 사용할 함수는 사용할 데이터가 없는 함수이고, 상기 함수 실행을 위한 컨테이너는 사용자 확인 요구를 수신한 호스트에 생성될 수 있다. 상기 사용할 함수는 데이터를 사용하고, 상기 함수 실행을 위한 컨테이너는 실제 데이터가 저장된 호스트에 생성될 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서,
송수신부, 프로세서 및 메모리를 포함할 수 있으며, 상기 송수신부는 INC 인터레스트(interest)를 통해 사용자 요구 사항을 수신하되, 컨테이너 종료 메시지를 수신하면 마운트에 저장한 데이터를 호스트 볼륨으로 이관하고,
상기 프로세서는 함수(function) 실행을 위한 컨테이너를 구성하되, 여기서, 상기 함수가 요구하는 데이터는 볼륨 마운트 형식을 사용하되, 읽기 전용으로 구성되고, 메타데이터를 생성하되, 여기서, 상기 호스트 볼륨으로 데이터 이관 완료 시 매니페스트(manifest) 파일을 생성하며, 상기 매니페스트 파일은 결과 데이터 이름 해싱에 따라 저장될 메타데이터 호스트가 선택되고,
상기 메모리는 상기 컨테이너에서 실행한 함수 결과를 저장하는 마운트를 호스트 메모리 영역에 저장할 수 있다.
상기 INC 인터레스트는 NDN 인터레스트를 만족하고, 사용할 함수(function) 및 데이터 이름을 포함할 수 있다. 상기 프로세서는 상기 송수신부가 INC 인터레스트(interest)를 통해 수신한 사용자 요구 사항을 확인하고, 상기 INC 인터레스트에 포함된 함수(function)에 필요한 데이터 파라미터를 해싱(hashing)할 수 있다. 상기 INC 인터레스트는 매개변수가 없는 함수(function)만을 지정하는 인터레스트 일 수 있다. 상기 INC 인터레스트는 매개변수가 있는 함수를 지정하는 인터레스트일 수 있다.
본 발명은 정보 중심 네트워킹(information centric networking, ICN) 기술을 기반으로 하는 인-네트워크 컴퓨팅(in-network computing, INC)을 효율적으로 지원하기 위한 데이터 저장 기능 통합형 인-네트워크 컴퓨팅 방법 및 장치를 제공한다.
본 발명은 데이터 이름을 기반으로 실제 데이터가 저장된 호스트에 프로세싱을 위한 컨테이너를 생성함으로써 데이터 처리를 위한 트래픽이 최소화되는 효과를 가진다.
본 발명은 컨테이너가 실행되면 호스트에 지정된 볼륨이 컨테이너의 루트 경로에 보이게 되어 컨테이너는 로컬 데이터를 처리하는 것처럼 사용할 수 있다.
본 발명은 컨테이너의 결과가 호스트의 메모리 영역에 우선 저장됨으로써 데이터 저장 성능을 높이는 효과를 가진다.
본 발명은 데이터를 활용하는 프로세스를 컨테이너로 실행함에 있어서, 데이터가 저장된 호스트에 해당 프로세스를 실행할 수 있다.
도 1은 NDNFS(named data networking-friendly file system)의 기본 아키텍쳐(architecture)를 나타낸 도면이다.
도 2는 카산드라(cassandra) 분산 저장 모델을 나타낸 도면이다.
도 3은 서버리스 컴퓨팅(serverless computing)의 동작 원리를 나타낸 도면이다.
도 4는 본 개시에 적용 가능한 데이터 저장 기능 통합형 INC 장치를 나타낸 도면이다.
도 5는 본 개시에 적용 가능한 데이터 저장 기능 통합형 INC 장치를 나타낸 도면이다.
도 6은 본 개시에 적용 가능한 공유 볼륨의 일 실시 예를 나타낸 도면이다.
도 7은 본 개시에 적용 가능한 본 발명의 동작 구조를 나타낸 도면이다.
도 8은 본 개시에 적용 가능한 본 네트워크에 데이터를 저장하고 처리하는 절차를 나타낸 도면이다.
도 9는 본 개시에 적용 가능한 본 네트워크에 데이터를 저장하고 처리하는 절차의 일 실시 예를 나타낸 도면이다.
도 10은 본 개시에 적용 가능한 INC 인터레스트 구성의 일 실시 예를 나타낸 도면이다.
도 11은 본 개시에 적용 가능한 데이터 이름 해싱 기반 메타데이터 노드 검색을 나타낸 도면이다.
도 12는 본 개시에 적용 가능한 매니페스트 파일의 일 실시 예를 나타낸 도면이다.
도 13은 본 개시에 적용 가능한 데이터 요청이 없는 함수(function)의 일 실 예를 나타낸 도면이다.
도 14는 데이터를 사용하지 않는 컨테이너 결과 저장을 나타낸 도면이다.
도 15는 메모리 데이터를 호스트 볼륨으로 이관하는 것을 나타낸 도면이다.
도 16은 본 개시에 적용 가능한 이미 저장된 데이터를 활용한 함수(function)의 일 실시 예를 나타낸 도면이다.
도 17은 데이터를 사용하는 컨테이너 결과 저장을 나타낸 도면이다.
도 18은 메모리 데이터를 호스트 볼륨으로 이관하는 것을 나타낸 도면이다.
도 19는 본 발명에 적용 가능한 장치 구성의 일 예를 나타낸 도면이다.
이하, 본 발명에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다. 이하의 상세한 설명은 본 발명의 완전한 이해를 제공하기 위해서 구체적 세부사항을 포함한다. 그러나, 당업자는 이러한 구체적 세부사항 없이도 본 발명을 실시할 수 있을 것이다.
이하의 실시예들은 본 발명의 구성요소들과 특징들을 소정 형태로 결합한 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려될 수 있다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성할 수도 있다. 본 발명의 실시예 들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다.
이하의 설명에서 사용되는 특정 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.
몇몇 경우, 본 발명의 개념이 모호해지는 것을 피하기 위하여 공지의 구조 및 장치는 생략되거나, 각 구조 및 장치의 핵심기능을 중심으로 한 블록도 형식으로 도시된다. 또한, 본 명세서 전체에서 동일한 구성요소에 대해서는 동일한 도면 부호를 사용하여 설명한다.
또한, 본 명세서에서 제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 명세서의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게, 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
또한 명세서 전체에서, 어떤 부분이 어떤 구성 요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. 그리고 명세서에 기재된 “…유닛”, “…부” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 및/또는 소프트웨어의 결합으로 구현될 수 있다.
도 1은 NDNFS(named data networking-friendly file system)의 기본 아키텍쳐(architecture)를 나타낸 도면이다. NDNFS는 DB 스토리지(database storage)(102), 코어(core)(104), 서버 모듈(server module)(106)을 포함할 수 있다. 도 1에 예시된 구성요소들은 기능적 블록들로써, 구성요소들은 물리적으로 하나 또는 그 이상의 회로로 구현될 수 있다.
이름 기반 네트워킹(named data networking, NDN)에서 데이터를 네트워크에 저장하기 위한 방안으로, repo-ng, ndn-python-repo, NDNFS 등의 서비스가 제안되었다. 하지만, 대부분 네트워크에 데이터를 저장하는 노드를 기반으로 하는 모델이 제시되고 있다. 이러한 경우, 데이터 저장을 위한 특수한 노드 또는 서버가 존재한다. 또한, 저장소 이외 다른 용도를 겸용하는 경우 별도의 방안이 요구된다.
도 2는 카산드라(cassandra) 분산 저장 모델을 나타낸 도면이다. 카산드라 링(cassandra ring)은 분산 데이터 저장의 기본 구조이다. 카산드라 링은 cassandra config 파일로 구성된다. 카산드라 링의 각 노드들은 고유의 해시(hash) 값을 저장할 범위를 지정 받을 수 있다. 카산드라 링은 데이터 저장 요청이 외부로부터 들어오면 해당 데이터의 파티션 키(partition key) 또는 로우 키(row key)를 일관된 해시(consistent hash)를 통하여 해시 값을 계산한다. 그리고, 카산드라 링은 계산한 값을 담당하는 노드에 데이터를 저장한다. 데이터 읽기 요청은 동일한 파티션 키를 요청하게 되며 일관된 해싱(consistent hashing)을 통하여 노드를 찾을 수 있다. 이러한 방식으로 데이터를 네트워크에 일관성 있게 분산 저장할 수 있다.
인-네트워크 컴퓨팅(in-network computing, INC)은 데이터가 중심이 되는 세상에서 데이터 가공 처리를 네트워크에서 가능하게 하는 것이다. INC의 대표적인 초기 구현으로 클라우드 컴퓨팅이 있다. 데이터 가공을 위한 작업은 분산되어 있는 클라우드에 맡겨져 수행되고, 사용자는 클라우드에 접속만 하는 것으로 데이터 가공 결과를 받을 수 있다.
최근 사물인터넷(internet of things, IoT)의 급속한 발전으로 클라우드의 에지(edge)를 활용한 데이터 가공이 중요시되고 있다. 또한, 중앙 집중형 클라우드에서 지방 분산형 클라우드로 모델이 변화하고 있다. 에지 모델은 중앙 클라우드와 네트워킹이 되지 않아도 분산된 에지 클라우드를 통하여 데이터를 가공할 수 있으며 사용자에 가장 빠르게 응답할 수 있다. 또한, 에지 모델은 중앙 클라우드로 몰리는 트래픽을 분산하여 네트워크의 효율을 높이는 장점이 있다. 또한, 에지 모델은 트래픽을 분산하여 유휴 자원을 높게 활용할 수 있는 장점이 있다.
도 3은 서버리스 컴퓨팅(serverless computing)의 동작 원리를 나타낸 도면이다. INC를 제공하는 방법은 에지 장비를 소규모 클라우드로 관리하는 방식에서 데이터 가공을 위한 컴퓨팅을 보다 효과적으로 활용하기 위하여 서버리스 (serverless)(Function as a Service, FaaS) 컴퓨팅으로 발전하고 있다. 서버리스 컴퓨팅은 데이터 가공 기능을 함수(function) 형태로 구현하고 자동화된 스케일링 방식으로 시시각각 변하는 자원 수요를 지원한다.
서버리스는 가상화 된 컨테이너에서 실행된다. 서버리스는 데이터 가공을 위해 필요한 기능을 함수로 구현한다. 서버리스는 이 함수를 사용자의 요청에 따라 실행하여 결과를 리턴하는 것으로서, 도 3과 같은 동작 절차를 가진다.
NDN 기반 환경에서도 데이터 저장 및 데이터 가공에 대한 요구가 수용될 수 있어야 한다. 조금 더 구체적으로, 단일 스토리지 및 초기 클라우드 서비스처럼 데이터는 네트워크에 단순하게 저장되며 소비자는 네트워크에 저장되어 있는 데이터를 단순하게 소비하는 형태가 아니라, 분산 스토리지 및 서버리스 모델과 같이 많은 종류의 데이터가 안전하게 저장되며 데이터에 대한 가공이 이루어진 결과가 요청되면 결과가 제공되어야 한다. 그 결과로써, 소비자 디바이스의 데이터 가공 처리에 대한 부담 및 네트워크를 통한 데이터의 교환이 줄어들 수 있다.
본 발명은 네트워크에 데이터를 저장하고 저장된 데이터에 대한 처리를 지원함에 있어서 두가지 기능을 통합함으로써 효율성을 제공하는 방안에 관한 것이다.
본 발명의 핵심 아이디어는 컨테이너의 볼륨 공유를 통하여 데이터 저장소를 구축하고, 저장된 데이터를 활용함에 있어 로컬 환경을 제공함으로써 네트워크 사용을 최대한 줄이고 성능을 높이는 것이다. 본 발명에서 일 실시 예로 제시하는 NDN은 정보 중심 네트워킹(information centric networking, ICN) 기술의 하나로써, 다른 ICN 기술을 기반으로 확장 적용할 수 있다.
도 4는 본 개시에 적용 가능한 데이터 저장 기능 통합형 INC 장치를 나타낸 도면이다. 도 4를 참고하면, 호스트(HOST)는 사용자 요구사항 관리부(402), 볼륨 제어부(404), 캐시 데이터 관리부(406), 데이터 관리부(408) 및 메타데이터 관리부(410)을 포함할 수 있다. 도 4에 예시된 구성요소들은 기능적 블록들로써, 구성요소들은 물리적으로 하나 또는 그 이상의 회로로 구현될 수 있다.
사용자 요구사항 관리부(402)는 INC에서 사용할 데이터에 대한 정보를 바탕으로 컨테이너를 생성할 위치를 결정할 수 있다. 즉, 사용자 요구사항 관리부(402)는 데이터 이름을 바탕으로 컨테이너를 생성할 위치를 결정할 수 있다. 사용자 요구사항 관리부(402)는 사용할 데이터 이름에 대한 메타데이터를 검색하고, 메타데이터에 포함된 실제 데이터를 저장한 호스트를 확인함으로써 데이터가 실제로 저장된 호스트에 컨테이너를 생성하는 명령을 내릴 수 있다. 여기에서, 호스트는 노드라는 용어와 혼용될 수 있다.
즉, 사용자 요구사항 관리부(402)는 메타데이터를 확인하고 컨테이너를 생성할 수 있다. 조금 더 구체적으로, INC를 통하여 실행할 프로세스가 사용하는 데이터 이름을 확인하고 해싱할 수 있다. 사용자 요구사항 관리부(402)는 해싱 결과를 바탕으로 메타데이터를 저장 중인 노드를 확인할 수 있다. 사용자 요구사항 관리부(402)는 메타데이터에 포함된 실제 저장 호스트 이름을 확인할 수 있다. 사용자 요구사항 관리부(402)는 실제 데이터 저장 호스트에 컨테이너 생성 요청을 할 수 있다.
NDN은 인터레스트 요청에 대한 데이터 응답으로 구성된다. 이 때, 응답으로 전달되는 데이터는 원본 데이터(raw data) 일 수 있으나 원본 데이터를 가공한 결과가 될 수 있다. NDN을 기반으로 하는 네트워크에서 데이터 가공을 지원하는 방안으로 NFN(named function networking)과 같은 INC 개념이 소개된 바 있다. NFN에서 소개되고 있는 대표적인 사용방법의 예는 아래와 같다.
/func/combine(“”/data/obj1)/NFN
일반적으로 NDN 기반 INC는 NFN에서와 같이 인터레스트 원본 데이터 및 함수(function) 이름을 포함할 수 있다. 함수는 데이터 처리 프로세스 라는 용어와 혼용될 수 있다.
볼륨 제어부(404)는 모든 호스트 및 컨테이너의 디렉토리(directory)를 같은 구조로 구성하며 동일한 메커니즘을 통하여 서브 디렉토리를 생성할 수 있다. 한편, 호스트(노드)는 컨테이너 환경을 지원해야 하며 컨테이너 생성 시 볼륨을 공유하기 위한 디렉토리를 구성할 수 있다. 컨테이너 서비스들은 볼륨 공유 옵션을 제공할 수 있다. 일 실시 예에 따라, 볼륨 공유 옵션을 활용하는 대표적인 컨테이너 서비스 도커(docker)의 경우, 아래와 같은 형식으로 제공된다.
mount source=Host Directory, destination=Container Directory
컨테이너 서비스에서 제공하는 볼륨 공유 방법은 세부적으로 볼륨(volume), 바인드 마운트(bind mount) 및 tmpfs 마운트(mount) 형태로 나누어 질 수 있다. 이하 각각의 특성을 설명한다.
볼륨 형태에서 데이터는 호스트의 도커 시스템 볼륨(docker system volume) 디렉토리에 저장될 수 있다. 일 실시 예에 따라, 아래와 같은 형식을 가질 수 있다.
/var/lib/docker/volume/<volume-name>
바인드 마운트(bind mount)는 호스트에서 컨테이너로 파일을 공유하는 경우에 해당한다. 바인드 마운트는 호스트의 파일 또는 디렉토리가 컨테이너에 마운트 될 수 있다. 또한, 호스트의 파일 또는 디렉토리 구조가 컨테이너가 요구하는 바인드 마운트와 일치한다.
tmpfs 마운트는 호스트 밑 컨테이너에서 데이터 유지가 필요하지 않는 경우에 해당한다. tmpfs 마운트는 호스트의 메모리를 디스크로 사용할 수 있다. 또한, 컨테이너가 중지되면 tmpfs 마운트가 제거되고 파일이 삭제될 수 있다.
공유 볼륨이 적용된 컨테이너는 호스트 디렉토리를 로컬 디렉토리처럼 사용할 수 있다. 이를 활용하면, 특별한 제한없이 로컬 컴퓨터의 폴더에 파일을 넣는 것처럼 사용될 수 있다.
캐시 데이터 관리부(406)에 대하여 설명한다. 볼륨 마운트를 통하여 공유된 데이터 디렉토리는 읽기 전용(read-only)으로 실행될 수 있다. 컨테이너에서 실행되는 프로세스의 결과 데이터를 저장(write)하기 위해서 tmpfs 모드가 활용될 수 있다. 결과적으로 컨테이너는 볼륨 마운트와 tmpfs 모드가 동시에 지원되는 형태로 실행될 수 있다. tmpfs는 메모리에 저장하는 구조로 매우 빠른 응답을 보여준다. 반면 컨테이너가 삭제되면 데이터도 삭제된다. 캐시 데이터 관리부(406)는 컨테이너에서 생성된 데이터를 호스트의 메모리에 저장할 수 있다. 또한, 캐시 데이터 관리부(406)는 컨테이너의 라이프 사이클에 맞추어 메모리에 저장한 데이터를 볼륨으로 이관시킬 수 있다.
캐시 데이터 관리부(406)는 데이터를 저장할 수 있다. 조금 더 구체적으로, 캐시 데이터 관리부(406)는 호스트의 메모리를 활용하여 데이터를 저장할 수 있다. 일 실시 예에 따라, 키(key)/결과(value) 형식의 데이터를 저장할 수 있다. 또한, 캐시 데이터 관리부(406)는 데이터를 이관시킬 수 있다. 조금 더 구체적으로, 컨테이너 라이프 사이클에 따라 종료 예정인 컨테이너 데이터를 볼륨으로 이관시킬 수 있다. 일 실시 예에 따라, 호스트는 컨테이너 데이터 이름의 해시 2문자를 활용하여 서브 디렉토리를 구성할 수 있다. 여기서, 호스트는 노드라는 용어와 혼용될 수 있다. 한편, 캐시 데이터 관리부(406)는 데이터 생산자의 정책에 따라 이관 시점을 조절할 수 있다.
데이터 관리부(408)에 대하여 설명한다. 데이터 관리부(408)는 데이터 생성과 관련하여 호스트에 직접 데이터를 저장하는 방법 및 컨테이너를 활용하는 방법을 지원할 수 있다. 호스트는 노드라는 용어와 혼용될 수 있다.
데이터 관리부(408)는 호스트에 직접 데이터를 저장할 수 있다. 조금 더 구체적으로, 데이터 관리부(408)는 데이터 이름 해시 결과의 2문자를 활용한 서브 디렉토리를 생성할 수 있다. 또한, 데이터 관리부(408)는 서브 디렉토리에 데이터를 저장할 수 있다. 데이터 관리부(408)는 컨테이너를 활용하여 데이터를 저장할 수 있다. 조금 더 구체적으로, 캐시 데이터 관리부를 통하여 데이터를 저장할 수 있다. 데이터를 수집하는 프로세스는 컨테이너를 통하여 동작할 수 있다. 컨테이너 데이터는 호스트의 메모리에 저장될 수 있다. 컨테이너 종료 시 호스트 데이터는 볼륨에 이관될 수 있다.
데이터 관리부(408)는 모든 데이터를 볼륨에 저장할 수 있다. 볼륨을 마운트한 컨테이너의 경우, 데이터 관리부(408)는 사용할 데이터 디렉토리만 읽기 전용으로 공유할 수 있다. 이렇게 함으로써, 컨테이너가 다른 데이터에 접근하는 것을 막을 수 있다.
메타 데이터 관리부(410)에 대해서 설명한다. 메타 데이터는 매니페스트(manifest) 파일로 구성되며, 데이터에 대한 정보가 포함될 수 있다. 데이터 정보는 데이터에 대한 세부 정보를 포함할 수 있다. 일 실시 예에 따라, 데이터 정보는 데이터 이름 및 데이터 블록 ID를 포함할 수 있다. 또한, 메타 데이터는 노드 정보를 포함할 수 있다. 조금 더 구체적으로, 메타 데이터는 데이터를 저장하고 있는 노드의 정보를 포함할 수 있다. 일 실시 예에 따라, 메타 데이터는 노드 이름 및 세그먼트 번호 정보를 포함할 수 있다.
매니페스트 파일은 데이터 이름(key)에 대한 결과(value)로 제공될 수 있다. 하나의 데이터 완전체는 복제되어 여러 노드가 완전체를 가질 수 있다. 데이터가 다른 노드로 복제된 경우, 메타데이터의 노드 정보는 업데이트 될 수 있다.
한편, 참여한 모든 호스트는 일관된 해싱(consistent hashing)을 통하여 해싱 범위(hashing range)를 가질 수 있다. 함수(function)가 사용할 데이터 이름의 해싱 결과는 일정한 호스트를 가리킬 수 있다. 호스트는 노드라는 용어와 혼용될 수 있다. 매니페스트 파일은 데이터 정보를 포함할 수 있다. 또한, 매니페스트 파일은 데이터가 저장되는 호스트 정보를 포함할 수 있다.
메타 데이터 관리부(410)는 사용자 요구사항 관리부(402)를 통해 전달받은 데이터 네임을 해싱하여 메타데이터 호스트를 선택할 수 있다. 또한 메타 데이터 관리부(410)는 데이터 정보 및 데이터가 저장된 호스트 정보가 포함된 매니페스트 파일을 생성할 수 있다.
도 5는 본 개시에 적용 가능한 데이터 저장 기능 통합형 INC 장치를 나타낸 도면이다. 도 5를 참고하면, 호스트(host)는 사용자 요구사항 관리부(502), 볼륨 제어부(504), 캐시 데이터 관리부(506), 데이터 관리부(508) 및 메타데이터 관리부(510)을 포함할 수 있다. 도 5에 예시된 구성요소들은 기능적 블록들로써, 구성요소들은 물리적으로 하나 또는 그 이상의 회로로 구현될 수 있다.
사용자 요구사항 관리부(502)는 INC에서 사용할 데이터에 대한 정보를 바탕으로 컨테이너를 생성할 위치를 결정할 수 있다. 즉, 사용자 요구사항 관리부(502)는 데이터 이름을 바탕으로 컨테이너를 생성할 위치를 결정할 수 있다. 사용자 요구사항 관리부(502)는 사용할 데이터 이름에 대한 메타데이터를 검색하고, 메타데이터에 포함된 실제 데이터를 저장한 호스트를 확인함으로써 데이터가 실제로 저장된 호스트에 컨테이너를 생성하는 명령을 내릴 수 있다. 여기에서, 호스트는 노드라는 용어와 혼용될 수 있다.
볼륨 제어부(504)는 모든 호스트 및 컨테이너의 디렉토리(directory)를 같은 구조로 구성하며 동일한 메커니즘을 통하여 서브 디렉토리를 생성할 수 있다.
캐시 데이터 관리부(506)는 컨테이너에서 생성된 데이터를 호스트의 메모리에 저장할 수 있다. 또한, 캐시 데이터 관리부(506)는 컨테이너의 라이프 사이클에 맞추어 메모리에 저장한 데이터를 볼륨으로 이관시킬 수 있다.
캐시 데이터 관리부(506)는 데이터를 저장할 수 있다. 조금 더 구체적으로, 캐시 데이터 관리부(506)는 호스트의 메모리를 활용하여 데이터를 저장할 수 있다. 일 실시 예에 따라, 키(key)/결과(value) 형식의 데이터를 저장할 수 있다. 또한, 캐시 데이터 관리부(506)는 데이터를 이관시킬 수 있다. 조금 더 구체적으로, 컨테이너 라이프 사이클에 따라 종료 예정인 컨테이너 데이터를 볼륨으로 이관시킬 수 있다. 일 실시 예에 따라, 호스트는 컨테이너 데이터 이름의 해시 2문자를 활용하여 서브 디렉토리를 구성할 수 있다. 여기서, 호스트는 노드라는 용어와 혼용될 수 있다. 한편, 캐시 데이터 관리부(506)는 데이터 생산자의 정책에 따라 이관 시점을 조절할 수 있다.
데이터 관리부(508)는 모든 데이터를 볼륨에 저장할 수 있다. 볼륨을 마운트한 컨테이너의 경우, 데이터 관리부(508)는 사용할 데이터 디렉토리만 읽기 전용으로 공유할 수 있다. 이렇게 함으로써, 컨테이너가 다른 데이터에 접근하는 것을 막을 수 있다.
메타 데이터 관리부(510)는 사용자 요구사항 관리부(502)를 통해 전달받은 데이터 네임을 해싱하여 메타데이터 호스트를 선택할 수 있다. 또한 메타 데이터 관리부(510)는 데이터 정보 및 데이터가 저장된 호스트 정보가 포함된 매니페스트 파일을 생성할 수 있다.
도 6은 본 개시에 적용 가능한 공유 볼륨의 일 실시 예를 나타낸 도면이다. 도 6을 참고하면 볼륨(602)은 .data 디렉토리(606)를 포함할 수 있다. 볼륨 제어부는 모든 호스트 및 컨테이너의 디렉토리를 같은 구조로 구성할 수 있으며, 동일한 메커니즘을 통하여 서브 디렉토리를 생성할 수 있다. 도 6을 참고하면, 모든 노드는 .data 디렉토리(606)를 루트 디렉토리로 구성할 수 있다. 또한, .data 디렉토리(606)를 공유 볼륨으로 마운트 할 수 있다.
도 7은 본 개시에 적용 가능한 본 발명의 동작 구조를 나타낸 도면이다. 이하 본 발명의 동작에 있어서 사전 준비 단계를 설명한다. 다수의 NDN 라우터 및 컴퓨팅을 수행할 수 있는 NDN 노드가 NDN 네트워크를 구성한다. 인터레스트는 사용자의 함수(function) 처리 요청 내용을 포함할 수 있다. 각 NDN 노드는 컨테이너 구성을 위한 소프트웨어 모듈을 포함할 수 있다. 예를 들어, 각 NDN 노드는 도커(docker)를 포함할 수 있다. 본 발명에서 제안한 볼륨 공유를 적용한 노드 및 컨테이너의 네트워크는 NDN으로 구성된다. 각 노드의 볼륨 구성을 위한 디렉토리 구성은 모두 동일하다. 각 노드의 루트 디렉토리의 이름은 동일하며, 서브 디렉토리는 정해진 원칙에 따른다. 생성된 모든 컨테이너는 마인드 마운트(bind mount)와 tmpfs 마운트를 동시에 사용할 수 있다.
도 8은 본 개시에 적용 가능한 본 네트워크에 데이터를 저장하고 처리하는 절차를 나타낸 도면이다.
S801 단계에서, 호스트는 INC 인터레스트를 통하여 사용자 요구사항을 확인한다. 이하 조금 더 구체적으로 설명한다.
사용자는 컨테이너에서 실행될 프로세스를 요청한다. 여기서, 프로세스는 함수(function)와 혼용될 수 있다. 사용자의 요청 인터레스트는 다음과 같이 구성될 수 있다. INC 인터레스트의 네이밍(naming) 체계는 제공 주체 별로 다를 수 있지만 NDN 인터레스트를 만족한다. INC 인터레스트는 사용할 함수(function) 및 데이터 이름을 포함할 수 있다.
INC 요청을 받은 호스트는 인터레스트에 포함된 함수에 필요한 데이터 파라미터(parameter)를 해싱할 수 있다. 일 실시 예에 따라, 데이터 파라미터는 데이터 이름(dataname)과 같을 수 있다. 데이터 이름을 해시 계산한 결과를 사용함으로써 데이터 이름에 대한 메타데이터 호스트가 검색될 수 있다. 이 때, 사용하는 해시 메커니즘은 모든 호스트에 동일하게 적용되기 때문에 어떠한 호스트에서 계산하여도 결과는 같다. 즉, 동일 데이터 이름에 대한 해시 결과는 같으며, 데이터 이름 마다 메타데이터 노드는 일정하게 유지될 수 있다. 각 호스트가 데이터 이름 해시 결과에 따른 매니페스트를 제공하기 위한 범위가 도 11처럼 지정되어 있다. 메타데이터 호스트로부터 데이터 이름 해싱 키(dataname hashing key)에 대한 매니페스트 파일을 제공받을 수 있다. 일 실시 예에 따라, 매니페스트 파일은 결과(value)를 포함할 수 있다. 호스트는 매니페스트 파일의 데이터 정보 및 데이터를 실제 저장한 호스트의 정보를 파악할 수 있다.
S803 단계에서, 호스트가 tmpfs 마운트 컨테이너를 생성한다. 이하 조금 더 구체적으로 설명한다. 호스트는 INC 함수(function)에서 사용할 데이터를 실제 저장하고 있는 호스트에 컨테이너를 구성할 수 있다. 이 때, 함수(function)가 요구하는 데이터는 볼륨 마운트 형식을 사용하며, 읽기 전용으로 구성될 수 있다. 이러는 이유는 컨테이너와 공유된 호스트의 볼륨에 저장(write)하는 것을 방지하기 위함이다. 컨테이너에서 실행되는 함수(function)의 결과도 저장되어야 하기 때문에, tmpfs 마운트 형식이 동시에 사용될 수 있다. 호스트의 메모리 영역에 컨테이너 결과를 저장함으로써 함수(function) 결과를 빠르게 제공할 수 있다. 이는 컨테이너 별로 격리된 메모리 구성을 지원함으로써 데이터를 보호하기 위함이다.
S805 단계에서, 호스트가 컨테이너의 데이터를 관리한다. 이하 조금 더 구체적으로 설명한다. 컨테이너에서 동작하는 함수(function) 결과가 호스트 볼륨으로 이관될 수 있다. 컨테이너에서 실행한 함수(function) 결과를 저장하는 tmpfs 마운트는 호스트 메모리 영역에 저장되기 때문에 컨테이너가 종료되면 데이터도 삭제될 수 있다. 이를 방지하기 위하여, 컨테이너 종료 메시지가 수신되면, tmpfs 마운트에 저장한 데이터가 호스트의 볼륨으로 이관될 수 있다. 호스트는 config 파일을 통하여 데이터를 저장할 루트 디렉토리가 구성되어 있다. 일 실시 예에 따라, 루트 디렉토리는 .data의 형태를 가질 수 있다. 호스트는 함수 이름(function name)을 해시한 결과의 2 문자를 사용하여 서브 디렉토리를 생성할 수 있다. 그리고 호스트는 서브 디렉토리에 함수(function) 결과 데이터를 이관시킬 수 있다. 일 실시 예에 따라, 데이터는 tmpfs 마운트 데이터일 수 있다. 이러한 이관은 컨테이너에서 실행하는 함수(function)의 정책에 따라서 주기적으로 실행될 수 있다. 정책에 따라 주기적으로 실행될 경우, 호스트의 볼륨에 이관이 완료된 결과로써 데이터는 tmpfs 마운트에서 삭제되어야 한다. 즉, 이관이 완료된 결과 데이터는 호스트 메모리에서 삭제되어야 한다.
S807 단계에서, 호스트는 메타데이터를 생성한다. 이하 조금 더 구체적으로 설명한다. 호스트 볼륨에 저장이 완료되면 매니페스트 파일이 구성될 수 있다. 컨테이너 종료 또는 정책으로 인하여 tmpfs 마운트 데이터가 호스트 볼륨으로 이관이 완료되면 매니페스트 파일이 구성될 수 있다. 일 실시 예에 따라, 호스트 볼륨은 .data 형태를 가질 수 있다. 결과 데이터 정보 및 실제 결과 데이터를 저장한 노드 정보가 담긴 매니페스트 파일의 예는 도 12와 같다. 결과 데이터 이관이 완료된 호스트에서 생성한 매니페스트 파일은 그 결과 데이터의 이름(result_dataname) 해시 결과에 따라 메타데이터 호스트를 검색할 수 있다. 검색 완료된 호스트에 결과 데이터의 이름(result_dataname)에 대한 매니페스트 파일이 저장된다. 이렇게 저장된 매니페스트는 추후 결과 데이터의 이름(result_dataname)을 요청하는 사용자에게 제공될 수 있다.
도 9는 본 개시에 적용 가능한 본 네트워크에 데이터를 저장하고 처리하는 절차의 일 실시 예를 나타낸 도면이다.
S901 단계에서, 호스트는 INC 인터레스트를 통하여 사용자의 요구 사항을 확인한다. 조금 더 구체적으로, 호스트는 함수(function)가 요구하는 파라미터를 확인할 수 있다.
S903 단계에서, 호스트는 tmpfs 마운트 컨테이너를 생성한다. 조금 더 구체적으로, 호스트는 함수(function) 실행을 위한 컨테이너를 구성할 수 있다. 데이터 이름에 기반하여 컨테이너를 생성할 노드를 결정할 수 있다. 여기서, 노드는 호스트와 혼용될 수 있다. 데이터 이름에 기반하여 컨테이너를 생성할 노드를 결정하는 것은, 데이터 이름을 해싱하고, 메타데이터 제공 노드를 검색하고, 데이터 저장 호스트 노드를 확인하여 수행될 수 있다. 컨테이너 생성을 위한 볼륨 마운트는 읽기 전용으로 구성된다. 또한, 컨테이너에서 실행되는 함수(function)의 결과도 저장해야 하기 때문에 tmpfs 마운트 형식이 동시에 사용될 수 있다. tmpfs 마운트 형식이 사용됨으로써 호스트 메모리 영역에 컨테이너 결과를 저장할 수 있다.
S905 단계에서, 호스트가 컨테이너의 데이터를 관리한다. 조금 더 구체적으로, 호스트가 함수(function) 결과를 저장하고 결과 데이터를 이관시킬 수 있다. 데이터 관리의 일 실시 예로써, 컨테이너 데이터가 저장될 수 있다. 읽기 전용으로 구성된 볼륨 마운트를 통하여 데이터가 사용될 수 있으며, tmpfs 마운트를 통해 데이터가 저장될 수 있다. 데이터 관리의 다른 실시 예로써, 호스트 데이터가 이관될 수 있다. 조금 더 구체적으로, tmpfs 데이터가 볼륨으로 이관될 수 있다. 컨테이너 생성 호스트의 .data가 활용될 수 있다. 또한, 서브 디렉토리에 데이터가 구성될 수도 있다.
S907 단계에서, 호스트는 메타데이터를 생성한다. 조금 더 구체적으로, 호스트는 매니페스트 파일을 생성하고 메타데이터 제공 노드를 선택할 수 있다. 호스트 데이터 이관 결과로써 신규 데이터가 생성될 수 있다. 또한, 데이터 정보 및 호스트 정보가 활용될 수 있으며, 매니페스트 파일이 생성될 수 있다.
메타데이터 제공 호스트가 검색될 수 있다. 조금 더 구체적으로, 신규 데이터 이름이 해싱되고, 메타데이터 제공 호스트가 선택될 수 있다. 또한 매니페스트 파일이 제공될 수 있다.
도 10은 본 개시에 적용 가능한 INC 인터레스트 구성의 일 실시 예를 나타낸 도면이다. 사용자는 컨테이너에서 실행될 함수(function)를 요청할 수 있다. 여기서 함수는 프로세스와 혼용될 수 있다. 사용자의 요청 인터레스트는 다음과 같이 구성될 수 있다. INC 인터레스트의 체계는 제공 주체별로 다를 수 있지만 NDN 인터레스트를 만족한다. INC 인터레스트는 사용할 함수(function) 및 데이터 이름이 포함되어 있다. 도 10을 참고하면, 인터레스트의 일 실시 예로서 대표적인 INC 서비스인 PiCN-NFN의 네이밍 체계가 사용되고 있다. 데이터 파라미터는 '/data/obj1' 이며 이것은 데이터 이름과 같다.
도 11은 본 개시에 적용 가능한 데이터 이름 해싱 기반 메타데이터 노드 검색을 나타낸 도면이다. INC 요청을 받은 호스트는 인터레스트에 포함된 함수(function)에 필요한 데이터 파라미터를 해싱할 수 있다. 데이터 이름을 해시 계산한 결과를 사용하여 데이터 이름에 대한 메타데이터 호스트가 검색될 수 있다. 이 때, 사용하는 해시 메커니즘은 모든 호스트에 동일하게 적용되기 때문에 어떠한 호스트에서 계산하여도 결과는 같다. 즉, 동일 데이터 이름에 대한 해시 결과는 같으며 데이터 이름마다 메타데이터 노드는 일정하게 유지될 수 있다. 도 11을 참고하면, 각 호스트는 데이터 이름 해시 결과에 따른 매니페스트를 제공하기 위한 범위가 도 11과 같이 지정되어 있다. 그리고, 메타데이터 호스트로부터 데이터 이름 해싱에 대한 매니페스트 파일을 제공받을 수 있다. 또한, 매니페스트 파일의 데이터 정보 및 데이터에 기초하여 실제 저장한 호스트이 정보가 파악될 수 있다.
도 12는 본 개시에 적용 가능한 매니페스트 파일의 일 실시 예를 나타낸 도면이다. INC 함수(function)에서 사용할 데이터를 실제 저장하고 있는 호스트에 컨테이너가 구성될 수 있다. 그리고, 컨테이너에서 동작하는 함수(function) 결과가 호스트 볼륨으로 이관될 수 있다. 컨테이너에서 실행한 함수(function) 결과를 저장하는 tmpfs 마운트는 호스트 메모리 영역에 저장되기 때문에 컨테이너가 종료되면 데이터도 삭제될 수 있다. 이를 방지하기 위하여, 컨테이너 종료 메시지를 수신하면 tmpfs 마운트에 저장한 데이터가 호스트의 볼륨으로 이관될 수 있다. 호스트는 config 파일을 통하여 데이터를 저장할 루트 디렉토리가 구성되어 있다. 호스트는 함수 이름을 해시한 결과의 2 문자를 사용하여 서브 디렉토리를 생성할 수 있다. 호스트는 이러한 서브 디렉토리에 함수 결과 데이터를 이관할 수 있다. 이러한 이관은 컨테이너에서 실행하는 함수(function)의 정책에 따라서 주기적으로 실행될 수 있다. 정책에 따라 주기적으로 실행될 경우 호스트의 볼륨에 이관이 완료되는 결과 데이터는 tmpfs 마운트에서 삭제되어야 한다. 호스트 볼륨에 저장이 완료되면 호스트는 매니페스트 파일을 구성할 수 있다. 조금 더 구체적으로, 컨테이너 종료 또는 정책으로 인하여 tmpfs 마운트 데이터가 호스트 볼륨으로 이관이 완료되면 호스트는 매니페스트 파일을 구성할 수 있다. 도 12를 참고하면, 결과 데이터 정보 및 실제 결과 데이터를 저장한 노드 정보가 담긴 매니페스트 파일의 일 실시 예가 보여진다.
도 13은 본 개시에 적용 가능한 데이터 요청이 없는 함수(function)의 일 실 예를 나타낸 도면이다. 도 14는 데이터를 사용하지 않는 컨테이너 결과 저장을 나타낸 도면이다. 도 15는 메모리 데이터를 호스트 볼륨으로 이관하는 것을 나타낸 도면이다. 이하 도 13, 도14 및 도 15를 참고하여, 함수(function)가 사용할 파라미터를 정의하지 않는 실시 예의 절차에 대하여 설명한다.
사용자는 매개변수가 없는 함수(function)만을 지칭하는 인터레스트를 전송할 수 있다. 일 실시 예에 따라, 인터레스트는 /<functionname>/combine()/NFN의 형태를 가질 수 있다. 호스트가 이와 같은 데이터 요청을 받으면 combine() 부분의 파라미터를 확인한다. 사용하는 파라미터가 없는 경우, 호스트가 해당 함수(function)는 별도의 데이터가 없이 함수(function)의 실행 결과만 저장하면 되는 것으로 확인한다. 함수(function)가 사용할 데이터가 없는 경우 요청을 받은 호스트에 컨테이너가 생성될 수 있다. 이 때, 컨테이너의 이름은 함수(function) 이름을 그대로 사용할 수 있다. 도 13을 참고하면, 컨테이너가 생성되는 호스트는 최초 요청을 받은 node01이 된다.
도 14를 참고하면, 컨테이너의 함수(function) 결과를 저장하기 위하여, 호스트의 도커(docker)에서 제공하는 tmpfs 형식이 마운트 될 수 있다. 또한, 컨테이너의 함수(function)이 생성한 데이터는 호스트의 메모리 영역에 저장될 수 있다. 일 실시 예에 따라, 데이터 이름이 별도로 지정되지 않은 경우에 데이터 이름은 함수(function) 이름을 사용할 수 있다.
컨테이너에서 실행중인 함수(function) 결과 데이터 이름(name) 체계는 아래와 같다.
ndn:/<network prefix>/<nodename>/<functionname>/<version>/<#segment>
컨테이너의 함수(function) 프로세스가 완료되거나 함수(function)에 정책이 적용된 경우, tmpfs의 결과 데이터가 호스트의 볼륨으로 이관될 수 있다. 도 15를 참고하면, 메모리 데이터가 호스트 볼륨으로 이관되는 것을 볼 수 있다. 호스트의 config로부터 생성된 .data 디렉토리에 데이터 이름을 해싱한 결과를 사용하여 서브 디렉토리가 구성될 수 있다. 그리고 생성된 서브 디렉토리에 tmpfs의 데이터가 이관될 수 있다. 이관 완료 시 메모리 데이터는 초기화 될 수 있다.
호스트에 이관된 데이터 디렉토리 체계는 아래와 같다.
/data/<result_dataname hashing>/
호스트에 이관된 데이터 이름 체계는 아래와 같다.
ndn:/<network prefix>/<nodename>/<dataname>/<version>/<#segment>
호스트 볼륨으로 결과 데이터 이관이 완료되면 매니페스트 파일이 생성되고, 결과 데이터 이름을 해싱한 결과를 바탕으로 매니페스트 파일을 저장할 호스트가 선택된다. 조금 더 구체적으로, 결과 데이터 이름을 해싱한 결과를 바탕으로 매니페스트 파일을 저장할 메타데이터 호스트가 선택된다. 일 실시 예에 따라, 매니페스트 파일은 함수(function) 결과 데이터 및 실제 저장한 호스트 정보를 포함할 수 있다. 일 실시 예에 따라, 메타데이터 호스트는 데이터 이름 해싱 결과에 따라 선택되고, 항상 일정한 메타데이터 호스트가 선택될 수 있다. 위치에 관계없이 같은 데이터 이름을 해싱한 결과는 반드시 같기 때문이다. 선택된 호스트에 매니페스트 파일이 저장된다. 일 실시 예에 따라, 메타데이터 호스트에 매니페스트 파일이 저장된다. 도 13에서 데이터 이름의 해싱 결과를 담당하는 호스트는 node02이다.
도 16은 본 개시에 적용 가능한 이미 저장된 데이터를 활용한 함수(function)의 일 실시 예를 나타낸 도면이다. 도 17은 데이터를 사용하는 컨테이너 결과 저장을 나타낸 도면이다. 도 18은 메모리 데이터를 호스트 볼륨으로 이관하는 것을 나타낸 도면이다. 이하, 함수(function)가 사용할 파라미터가 정의된 경우 절차에 대해 설명한다.
도 16을 참고하면, 사용자는 INC 형식의 인터레스트를 전송한다. 인터레스트 형식은 아래와 같다.
/<functionname>/combine(dataname)/NFN
이와 같은 데이터 요청을 받으면, 호스트는 combine(dataname) 부분의 파라미터를 확인한다. 함수(function)가 사용할 파라미터가 정의된 경우, 사용하는 파라미터는 함수(function)가 사용할 데이터의 이름이다. 일 실시 예에 따라, 함수(function)가 요청하는 파라미터는 함수(function)가 사용할 데이터 이름과 같다.
사용자 요청을 받은 호스트는 사용자의 요구 사항을 확인하고, 함수(function)가 사용할 데이터 이름을 인지할 수 있다. 사용자 요청을 받은 호스트는 데이터 이름을 해시하여 해당 데이터 이름에 대한 매니페스트 파일을 요청할 수 있다. 도 16을 참고하면, 사용자 요청을 받은 호스트는 node03 이며 데이트 이름에 대한 메타데이터 호스트는 node02이다.
호스트는 데이터 이름을 해시한 결과를 기반으로 매니페스트 파일을 저장하고 있는 메타데이터 호스트를 찾을 수 있다. 호스트는 발견한 메타데이터 호스트로 데이터 이름의 해시 값을 전달하여 매니페스트 파일을 제공받을 수 있다. 호스트는 메타데이터 호스트로부터 전달받은 매니페스트 파일에서 데이터 이름에 대한 실제 데이터를 저장한 호스트를 확인할 수 있다. 도 16을 참고하면, 메타데이터 호스트인 node02 로부터 전달받은 매니페스트 파일에 명시된 실제 데이터를 저장하고 있는 호스트는 node01 이다.
사용자 요청을 받은 호스트는 실제 데이터가 저장된 호스트로 컨테이너 생성 요청을 전송한다. 실제 데이터가 저장된 호스트에 컨테이너를 생성하는 이유는 컨테이너에서 실행될 함수(function)의 프로세싱 성능을 높이기 위함이다. 도 16을 참고하면, 실제 데이터가 저장된 호스트는 node01 이며 같은 호스트에 컨테이너를 생성한다.
컨테이너 생성 요청을 받은 호스트는 컨테이너를 구성하고 실행한다. 이때 필요한 정보는 함수(function)의 이름과 데이터 이름이다. 조금 더 구체적으로, 함수(function) 이름과 동일한 이름으로 컨테이너를 생성한다. 그리고, 컨테이너의 함수(function)에서 사용할 데이터를 제공하기 위해 호스트의 도커(docker)에서 제공하는 볼륨 형식이 마운트 된다. 이때, 도 17을 참고하면, 마운트 대상이 되는 호스트의 디렉토리는 데이터 이름 해시 결과에 대한 호스트 볼륨의 서브 디렉토리이며 읽기 전용(read-only)으로 마운트 된다. 그리고, 컨테이너의 함수(function) 결과를 저장하기 위해 호스트의 도커(docker)에서 제공하는 tmpfs 형식이 마운트 된다.
컨테이너의 함수(function)는 호스트 볼륨 마운트로 제공된 데이터를 사용한다. 이것은 컨테이너에서 로컬 데이터를 사용하는 것과 같기 때문에 가장 빠른 프로세스 성능을 보일 수 있다. 도 17을 참고하면, 컨테이너 함수(function)가 생성한 결과 데이터는 tmpfs 마운트를 통하여 호스트의 메모리 영역에 저장된다. 이것은 함수(function) 결과 데이터를 제공하는데 가장 빠른 성능을 제공하기 위함이다. 데이터 이름이 별도로 지정되지 않은 경우 데이터 이름은 함수(function) 이름을 사용할 수 있다.
도 18을 참고하면, 컨테이너의 함수(function) 프로세스가 완료되거나 함수(function)에 정책이 적용된 경우 tmpfs의 데이터가 호스트의 볼륨으로 이관될 수 있다. 그리고, 호스트의 config로부터 생성된 .data 디렉토리에 데이터 이름을 해싱한 결과를 사용함으로써 서브 디렉토리가 구성될 수 있다. 이렇게 생성된 서브 디렉토리에 tmpfs의 데이터가 이관될 수 있다. 그리고, 호스트 볼륨으로 데이터 이관이 완료되면 매니페스트 파일을 생성하고 데이터 이름을 해싱한 결과를 바탕으로 매니페스트 파일을 저장할 호스트가 선택될 수 있다. 조금 더 구체적으로, 이관이 완료되면 매니페스트 파일을 생성하고 데이터 이름을 해싱한 결과를 바탕으로 매니페스트 파일을 저장할 메타데이터 호스트가 선택될 수 있다. 그리고, 선택된 호스트에 매니페스트 파일이 저장될 수 있다. 조금 더 구체적으로, 선택된 메타데이터 호스트에 매니페스트 파일이 저장될 수 있다. 도 16을 참고하면 데이터 이름의 해싱 결과를 담당하는 호스트는 node03이다.
이하 이 발명의 효과에 대해서 설명한다. 본 발명을 통해 데이터를 활용하는 프로세스를 컨테이너로 실행함에 있어서, 데이터가 저장된 호스트에서 프로세스가 실행될 수 있다. 최근 인터넷에서 가장 많이 사용되는 데이터는 대규모 멀티미디어 파일이다. 기술의 발전으로 인하여 단말의 성능이 기하 기하급수적으로 발전되었고 이는 대용량의 실시간 데이터가 다량으로 발생하는 환경을 만들었다. 이미 유튜브, 넷플릭스, 인스타그램, 페이스북 등을 중심으로 실시간 방송 서비스가 제공되고 있다. 그리고 끊임없는 서비스를 위하여 서비스 업체들은 실시간 스트리밍 기술에 대한 개발에 박차를 가하고 있다. 특히 이러한 데이터를 처리하는 서비스들은 클라우드를 통하여 데이터를 가공하여야 하는데 데이터의 폭증으로 인하여 데이터 가공 비용이 급증하고 있다. 서버리스, 마이크로서비스를 통하여 성능과 비용 측면을 최적화하고 있으나 중앙 집중형의 클라우드에서 데이터 처리를 위한 컨테이너를 어디에, 어떻게 생성하여야 하는지에 대한 문제는 지속되고 있다.
컨테이너와 관련하여, 데이터 저장 및 처리를 위한 프로세스는 컨테이너 환경을 기반으로 동작한다. 컨테이너를 생성함에 있어서 가장 중요한 것은 데이터를 빠르게 처리하는 것이다. 대규모 데이터의 경우, 네트워크를 통해 데이터를 전달하여야 하는 부담이 있다. 따라서, 데이터 트래픽을 줄이는 방안이 필요하다. 데이터 트래픽을 가장 확실하게 줄일 수 있는 방법은 데이터가 있는 곳에서 데이터를 가공하는 것이다. 본 발명은 데이터 이름을 기반으로 실제 데이터가 저장된 호스트에 프로세싱을 위한 컨테이너를 생성하기 때문에 데이터 처리를 위한 트래픽이 최소화될 수 있다.
많은 서비스들이 데이터를 활용한 다양한 서비스를 효율적으로 제공함에 있어 컨테이너를 활용하고 있다. 컨테이너에서 동작할 함수(function) 또는 프로세스는 데이터 소비를 통해 새로운 데이터를 생성할 수 있다. 하나의 서비스를 위해 생성된 많은 컨테이너 간 데이터 마이그레이션을 위하여 공유 볼륨이 사용된다. 본 발명은 컨테이너에서 사용할 데이터에 대한 트래픽을 최소화하기 위한 방안으로 볼륨 마운트 형식을 읽기 전용으로 사용한다. 또한, 본 발명은 컨테이너 결과를 저장하기 위한 방안으로 호스트 메모리 마운트 형식을 사용한다. 즉, 컨테이너가 실행되면 호스트에 저장된 볼륨이 컨테이너의 루트 경로에 보이게 됨으로써, 컨테이너는 로컬 데이터를 처리하는 것처럼 사용될 수 있다. 또한, 컨테이너의 결과는 호스트의 메모리 영역에 우선 저장됨으로써 데이터 저장 성능을 높인다. 메모리 영역에 저장된 데이터, 즉 컨테이너 프로세스 결과 데이터는 정책 또는 컨테이너 종료 시 호스트의 볼륨 영역으로 복사되어 추후 컨테이너 결과 데이터를 요청하는 다른 컨테이너에 제공될 수 있다.
도 19는 본 발명에 적용 가능한 장치 구성의 일 예를 나타낸 도면이다. 도 19를 참조하면, 디바이스는 메모리(1902), 프로세서(1903), 송수신부(1904) 및 주변 장치(1901)를 포함할 수 있다. 또한, 일 예로, 디바이스는 다른 구성을 더 포함할 수 있으며, 상술한 실시예로 한정되지 않는다.
이때, 일 예로, 디바이스는 상술한 NDN(named data networking) 기반 인-네트워크 컴퓨팅(in-network computing) 처리 장치일 수 있다. 보다 상세하게는, 도 19의 디바이스는 장치의 일 예일 수 있다. 도 19의 디바이스의 주변장치(1901)는 영상을 획득할 수 있다. 프로세서(1903)에서 상술한 수학식들을 이용한 연산을 처리할 수 있다. 메모리(1902)에서 상술한 행렬을 저장할 수 있다.
이때, 일 예로, 메모리(1902)는 비이동식 메모리 또는 이동식 메모리일 수 있다. 또한, 일 예로, 주변 장치(1901)는 디스플레이, GPS 또는 다른 주변기기들을 포함할 수 있으며, 상술한 실시예로 한정되지 않는다. 또한, 일 예로, 상술한 디바이스는 상기 송수신부(1904)와 같이 통신 회로를 포함할 수 있으며, 이에 기초하여 외부 디바이스와 통신을 수행할 수 있다.
또한, 일 예로, 프로세서(1903)는 범용 프로세서, DSP(digital signal processor), DSP 코어, 제어기, 마이크로제어기, ASIC들(Application Specific Integrated Circuits), FPGA(Field Programmable Gate Array) 회로들, 임의의 다른 유형의 IC(integrated circuit) 및 상태 머신과 관련되는 하나 이상의 마이크로프로세서 중 적어도 하나 이상일 수 있다. 즉, 상술한 디바이스를 제어하기 위한 제어 역할을 수행하는 하드웨어적/소프트웨어적 구성일 수 있다. 이때, 프로세서(1903)는 노드의 다양한 필수 기능들을 수행하기 위해 메모리(1902)에 저장된 컴퓨터 실행가능한 명령어들을 실행할 수 있다. 일 예로, 프로세서(1903)는 신호 코딩, 데이터 처리, 전력 제어, 입출력 처리 및 통신 동작 중 적어도 어느 하나를 제어할 수 있다. 또한, 프로세서(1903)는 물리 계층, MAC 계층, 어플리케이션 계층들을 제어할 수 있다. 또한, 일 예로, 프로세서(1903)는 액세스 계층 및/또는 어플리케이션 계층 등에서 인증 및 보안 절차를 수행할 수 있으며, 상술한 실시예로 한정되지 않는다.
또한, 일 예로, 프로세서(1903)는 송수신부(1904)를 통해 다른 장치들과 통신을 수행할 수 있다. 일 예로, 프로세서(1903)는 컴퓨터 실행가능한 명령어들의 실행을 통해 노드가 네트워크를 통해 다른 노드들과 통신을 수행하게 제어할 수 있다. 즉, 본 발명에서 수행되는 통신이 제어될 수 있다. 일 예로, 송수신부(1904)는 NDN 네트워크 상의 노드들간의 통신에 이용될 수 있다. 일 예로, 송수신부(1904)는 안테나를 통해 RF 신호를 전송할 수 있으며, 다양한 통신망에 기초하여 신호를 전송할 수 있다. 또한, 일 예로, 안테나 기술로서 MIMO 기술, 빔포밍 등이 적용될 수 있으며, 상술한 실시예로 한정되지 않는다. 또한, 송수신부(1904)를 통해 송수신한 신호는 변조 및 복조되어 프로세서(1903)에 의해 제어될 수 있으며, 상술한 실시예로 한정되지 않는다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다. 예를 들어, 상기 프로세서는 컴퓨터로 판독가능한 프로그래밍 언어로 작성된 소프트웨어로 구현될 수도 있으며, 상기 범용 프로세서를 포함한 다양한 형태를 띨 수도 있다. 하나 혹은 그 이상의 결합으로 이루어진 하드웨어로 개시될 수도 있음은 자명하다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행 가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로, 본 발명의 범위는 전술 한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 그리고 당해 명세서에는 물건 발명과 방법 발명이 모두 설명되고 있으며, 필요에 따라 양 발명의 설명은 보충적으로 적용될 수 있다.

Claims (20)

  1. ICN(information centric networking)을 기반으로 하는 INC(in-network computing) 방법에 있어서,
    호스트가 INC 인터레스트(interest)를 통해 함수(function)가 요구하는 데이터 파라미터를 확인함으로써, 사용자 요구 사항을 수신하고 확인하는 단계;
    상기 호스트가 함수(function) 실행을 위한 컨테이너를 구성하는 단계, 여기서, 상기 함수가 요구하는 데이터는 볼륨 마운트 형식을 사용하되, 읽기 전용으로 구성되고;
    상기 호스트가 컨테이너의 데이터를 관리하는 단계, 여기서, 상기 컨테이너에서 실행한 함수 결과를 저장하는 마운트는 호스트 메모리 영역에 저장되되, 상기 호스트가 컨테이너 종료 메시지를 수신하면 상기 마운트에 저장한 데이터를 호스트 볼륨으로 이관하고; 및
    상기 호스트가 메타데이터를 생성하는 단계;를 포함하고, 여기서, 상기 호스트 볼륨으로 데이터 이관 완료 시 매니페스트(manifest) 파일이 생성되되, 상기 매니페스트 파일은 결과 데이터 이름 해싱에 따라 저장될 메타데이터 호스트가 선택되는, INC 방법.
  2. 제1항에 있어서,
    상기 INC 인터레스트는 NDN 인터레스트를 만족하고, 사용할 함수(function) 및 데이터 이름을 포함하는, INC 방법.
  3. 제1항에 있어서,
    상기 호스트가 INC 인터레스트(interest)를 통해 사용자 요구 사항을 확인하고 수신하는 단계는,
    상기 INC 인터레스트에 포함된 함수(function)에 필요한 상기 데이터 파라미터를 해싱(hashing)하는 것을 포함하는, INC 방법.
  4. 제2항에 있어서,
    상기 INC 인터레스트는 매개변수가 없는 함수(function)만을 지정하는 인터레스트인, INC 방법.
  5. 제2항에 있어서,
    상기 INC 인터레스트는 매개변수가 있는 함수를 지정하는 인터레스트인, INC 방법.
  6. 제4항에 있어서,
    상기 매개변수가 없는 함수는 사용할 데이터가 없는 함수이고, 상기 컨테이너는 사용자 확인 요구를 수신한 호스트에 생성되는, INC 방법.
  7. 제5항에 있어서,
    상기 매개변수가 있는 함수는 데이터를 사용하는 함수이고, 상기 컨테이너는 실제 데이터가 저장된 호스트에 생성되는, INC 방법.
  8. 제1항에 있어서,
    상기 호스트는 함수 이름을 해시한 결과를 사용하여 서브 디렉토리를 생성하는 단계;를 더 포함하고,
    상기 서브 디렉토리에 함수 결과 데이터가 이관되는, INC 방법.
  9. ICN(information centric networking)을 기반으로 하는 INC(in-network computing) 장치에 있어서,
    사용자 요구사항 관리부;
    상기 사용자 요구사항 관리부는 INC 인터레스트(interest)를 통해 함수(function)가 요구하는 데이터 파라미터를 확인함으로써, 사용자 요구 사항을 수신하고 확인하되, INC에서 사용할 데이터에 대한 정보를 바탕으로 함수 실행을 위한 컨테이너를 생성할 호스트를 결정하고,
    볼륨 제어부;
    상기 볼륨 제어부는 모든 호스트 및 모든 컨테이너의 디렉토리를 같은 구조로 구성하되, 상기 호스트 및 컨테이너의 디렉토리를 구성한 구조와 동일한 메커니즘을 통하여 서브 디렉토리를 생성하고,
    캐시 데이터 관리부;
    상기 캐시 데이터 관리부는 상기 컨테이너에서 생성된 데이터를 호스트의 메모리에 저장하되, 상기 호스트의 메모리에 저장한 데이터를 함수(function) 종료 메시지를 수신 시 호스트 볼륨으로 이관하고,
    데이터 관리부; 및
    상기 데이터 관리부는 모든 데이터를 볼륨에 저장하되, 상기 볼륨을 마운트한 컨테이너는 사용할 데이터 디렉토리만 읽기 전용으로 공유되고,
    메타 데이터 관리부;를 포함하고,
    상기 메타 데이터 관리부는 상기 사용자 요구사항 관리부로부터 전달받은 데이터 이름을 해싱하여 메타데이터 호스트를 선택하고, 매니페스트 파일을 생성하는, INC 장치.

  10. 제9항에 있어서,
    상기 INC 인터레스트는 NDN 인터레스트를 만족하고, 사용할 함수(function) 및 데이터 이름을 포함하는, INC 장치.
  11. 제9항에 있어서,
    상기 호스트가 INC 인터레스트(interest)를 통해 사용자 요구 사항을 수신하고 확인하는 것은,
    상기 INC 인터레스트에 포함된 함수(function)에 필요한 상기 데이터 파라미터를 해싱(hashing)하는 것을 포함하는, INC 장치.
  12. 제10항에 있어서,
    상기 INC 인터레스트는 매개변수가 없는 함수(function)만을 지정하는 인터레스트인, INC 장치.
  13. 제10항에 있어서,
    상기 INC 인터레스트는 매개변수가 있는 함수를 지정하는 인터레스트인, INC 장치.
  14. 제12항에 있어서,
    상기 매개변수가 없는 함수는 사용할 데이터가 없는 함수이고, 상기 함수 실행을 위한 컨테이너는 사용자 확인 요구를 수신한 호스트에 생성되는, INC 장치.
  15. 제13항에 있어서,
    상기 매개변수가 있는 함수는 데이터를 사용하는 함수이고, 상기 함수 실행을 위한 컨테이너는 실제 데이터가 저장된 호스트에 생성되는, INC 장치.
  16. ICN(information centric networking)을 기반으로 하는 INC(in-network computing) 장치에 있어서,
    송수신부;
    프로세서; 및
    메모리;를 포함하고,
    상기 송수신부는 INC 인터레스트(interest)를 통해 함수(function)가 요구하는 데이터 파라미터를 확인함으로써, 사용자 요구 사항을 수신하되, 컨테이너 종료 메시지를 수신하면 마운트에 저장한 데이터를 호스트 볼륨으로 이관하고,
    상기 프로세서는 함수(function) 실행을 위한 컨테이너를 구성하되, 여기서, 상기 함수가 요구하는 데이터는 볼륨 마운트 형식을 사용하되, 읽기 전용으로 구성되고,
    메타데이터를 생성하되, 여기서, 상기 호스트 볼륨으로 데이터 이관 완료 시 매니페스트(manifest) 파일을 생성하며, 상기 매니페스트 파일은 결과 데이터 이름 해싱에 따라 저장될 메타데이터 호스트가 선택되고,
    상기 메모리는 상기 컨테이너에서 실행한 함수 결과를 저장하는 마운트를 호스트 메모리 영역에 저장하는, INC 장치.
  17. 제16항에 있어서,
    상기 INC 인터레스트는 NDN 인터레스트를 만족하고, 사용할 함수(function) 및 데이터 이름을 포함하는, INC 장치.
  18. 제16항에 있어서,
    상기 프로세서는 상기 송수신부가 INC 인터레스트(interest)를 통해 수신한 사용자 요구 사항을 확인하고, 상기 INC 인터레스트에 포함된 함수(function)에 필요한 상기 데이터 파라미터를 해싱(hashing)하는, INC 장치.
  19. 제17항에 있어서,
    상기 INC 인터레스트는 매개변수가 없는 함수(function)만을 지정하는 인터레스트인, INC 장치.
  20. 제17항에 있어서,
    상기 INC 인터레스트는 매개변수가 있는 함수를 지정하는 인터레스트인, INC 장치.
KR1020200160074A 2020-11-25 2020-11-25 정보 중심 네트워킹 기반 저장기능 통합 인-네트워크 컴퓨팅 처리 방법 및 시스템 KR102459465B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200160074A KR102459465B1 (ko) 2020-11-25 2020-11-25 정보 중심 네트워킹 기반 저장기능 통합 인-네트워크 컴퓨팅 처리 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200160074A KR102459465B1 (ko) 2020-11-25 2020-11-25 정보 중심 네트워킹 기반 저장기능 통합 인-네트워크 컴퓨팅 처리 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20220072457A KR20220072457A (ko) 2022-06-02
KR102459465B1 true KR102459465B1 (ko) 2022-10-26

Family

ID=81985176

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200160074A KR102459465B1 (ko) 2020-11-25 2020-11-25 정보 중심 네트워킹 기반 저장기능 통합 인-네트워크 컴퓨팅 처리 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102459465B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160203322A1 (en) 2015-01-12 2016-07-14 Palo Alto Research Center Incorporated Decoupled name security binding for ccn objects
US20190251280A1 (en) 2018-02-09 2019-08-15 University Of South Florida System and method for a secured cloud file system
US20200244728A1 (en) 2019-06-27 2020-07-30 Intel Corporation Optimizing operations in icn based networks

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9772787B2 (en) * 2014-03-31 2017-09-26 Amazon Technologies, Inc. File storage using variable stripe sizes
KR102394773B1 (ko) * 2018-12-07 2022-05-06 한국전자통신연구원 네임 기반 인-네트워크 프로세싱 방법 및 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160203322A1 (en) 2015-01-12 2016-07-14 Palo Alto Research Center Incorporated Decoupled name security binding for ccn objects
US20190251280A1 (en) 2018-02-09 2019-08-15 University Of South Florida System and method for a secured cloud file system
US20200244728A1 (en) 2019-06-27 2020-07-30 Intel Corporation Optimizing operations in icn based networks

Also Published As

Publication number Publication date
KR20220072457A (ko) 2022-06-02

Similar Documents

Publication Publication Date Title
US20170295228A1 (en) Using a shared data store for peer discovery
CN104731516B (zh) 一种存取文件的方法、装置及分布式存储系统
CA2953031C (en) A method and computing device for allowing synchronized access to cloud storage systems based on stub tracking
US10545914B2 (en) Distributed object storage
US10515058B2 (en) Unified file and object data storage
US10534776B2 (en) Proximity grids for an in-memory data grid
US20170109369A1 (en) Publish-subscribe platform for cloud file distribution
US20150215405A1 (en) Methods of managing and storing distributed files based on information-centric network
US20110119444A1 (en) Adaptive caching of data
US20140229582A1 (en) System And Method For Offline Downloading Network Resource Files
US8296420B2 (en) Method and apparatus for constructing a DHT-based global namespace
US8768886B2 (en) Using AMQP for replication
JP5375972B2 (ja) 分散ファイルシステム、そのデータ選択方法およびプログラム
US10503693B1 (en) Method and system for parallel file operation in distributed data storage system with mixed types of storage media
JP2010532526A (ja) 分散ファイルシステムのための効率的な更新
US10635650B1 (en) Auto-partitioning secondary index for database tables
Littley et al. Bolt: Towards a scalable docker registry via hyperconvergence
US20140059094A1 (en) Making use of a file path to determine file locality for applications
US10986065B1 (en) Cell-based distributed service architecture with dynamic cell assignment
US20170351620A1 (en) Caching Framework for Big-Data Engines in the Cloud
George et al. Hadoop MapReduce for mobile clouds
US20220365680A1 (en) Data reading method and terminal
US20140122637A1 (en) Method and apparatus for providing caching service in network infrastructure
US20180205790A1 (en) Distributed data structure in a software defined networking environment
CN105760391A (zh) 数据动态重分布的方法、数据节点、名字节点及系统

Legal Events

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