KR20190076836A - 분산 캐싱 시스템 및 방법 - Google Patents

분산 캐싱 시스템 및 방법 Download PDF

Info

Publication number
KR20190076836A
KR20190076836A KR1020180129636A KR20180129636A KR20190076836A KR 20190076836 A KR20190076836 A KR 20190076836A KR 1020180129636 A KR1020180129636 A KR 1020180129636A KR 20180129636 A KR20180129636 A KR 20180129636A KR 20190076836 A KR20190076836 A KR 20190076836A
Authority
KR
South Korea
Prior art keywords
content
network
various embodiments
client
processor
Prior art date
Application number
KR1020180129636A
Other languages
English (en)
Other versions
KR102557994B1 (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 삼성전자주식회사
Publication of KR20190076836A publication Critical patent/KR20190076836A/ko
Application granted granted Critical
Publication of KR102557994B1 publication Critical patent/KR102557994B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1063Application servers providing network services
    • H04L67/2814
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Abstract

분산 캐싱 시스템 및 방법이 개시된다. 본 시스템은 적어도 하나의 네트워크-연결 스토리지 장치, 콘텐츠서버 및 제어서버를 포함한다. 제어서버는 적어도 하나의 네트워크-연결 스토리지 장치를 탐색하고, 적어도 하나의 네트워크-연결 스토리지 장치로부터 장치정보를 수집하며(여기서, 장치정보는 장치위치를 포함), 각 장치위치에 기초한 장치 도메인에 적어도 하나의 네트워크-연결 스토리지 장치 각각을 할당하고, 적어도 하나의 네트워크-연결 스토리지 장치에 대한 장치정보를 콘텐츠서버에 제공한다.

Description

분산 캐싱 시스템 및 방법{A SYSTEM AND METHOD FOR DISTRIBUTED CACHING}
본 개시의 일부 실시예들은 일반적으로 네트워크-연결 스토리지(Network-Attached Storage) 장치들을 이용하는 콘텐츠 캐싱(content caching)에 관한 것이다.
스토리지 서버들은 다양한 데이터 스토리지 응용기술에 활용된다. 일부 응용기술들에 있어서, 스토리지 서버는 수많은 원격 클라이언트들에게 데이터 스토리지를 제공할 수 있다. 예를 들어, 스토리지 서버는 데이터베이스, 미디어 콘텐츠, 백업 스토리지 등을 저장할 수 있다. 미디어 콘텐츠 전송 시 통상적으로 전세계에 분포된 데이터센터들에 위치하는 스토리지 서버들을 이용한다.
도 1은 종래의 콘텐츠 전송 시스템의 예시를 나타낸다.
도 1을 참조하면, 데이터센터(100)는 백본 네트워크(110) 및 로컬 네트워크(120)와 연결되도록 배치될 수 있다. 백본 네트워크는 일반적으로 먼 거리를 아우르는 장거리(long-haul) 네트워크로서, 도시, 주, 국가 및 전세계에 걸친 데이터센터들, 서버들 및 사용자를 연결한다. 로컬 네트워크(120)는 일반적으로 단거리 네트워크로서, 예를 들어, 최종 사용자(end user)들을 데이터센터 및 백본 네트워크(110)와 연결시킨다. 데이터센터(100)는 두 네트워크들(110/120)과의 연결을 위해 데이터센터의 서버들에 의해 사용되는 에지 라우터들(130/135)을 포함한다. 콘텐츠 전송 시스템의 경우, 데이터센터는 멀티미디어 콘텐츠(145)를 저장하는 콘텐츠서버(140)와, 최종 사용자 장치로 신속하게 콘텐츠를 배포하기 위한 복수의 캐싱 서버들(150-156)을 포함할 수 있다. 예를 들어, 콘텐츠서버(140)는 콘텐츠 제공자의 콘텐츠 전부를 저장할 수 있고 백본 네트워크(110)를 이용하여 업데이트를 수신할 수 있다. 그런 다음, 콘텐츠서버(140)는 캐싱 서버들(150-156)로 멀티미디어 콘텐츠의 일부분들을 분배할 수 있다. 최종 사용자 장치는 로컬 네트워크(120)를 통해 콘텐츠를 요청할 수 있고 적절한 캐싱 서버(150-156)로부터 콘텐츠를 검색할 수 있다.
현재 콘텐츠 전송 시스템은 여러 가지 문제점들을 내포하고 있다. 현 콘텐츠 전송 시스템은 고가의 하드웨어를 많이 필요로 하고 전력을 많이 소모하며 많은 양의 냉각을 필요로 한다. 또한, 상대적으로 적은 수의 캐싱 장치들을 이용하기 때문에, 성능 병목현상을 발생시킬 뿐만 아니라 시스템을 해킹에 더욱 취약하게 만든다. 따라서, 새로운 시스템이 필요하다.
이상의 내용은 본 개시의 실시예들의 배경기술에 대한 이해를 돕기 위한 것일 뿐이므로, 선행기술을 구성하지 않는 내용을 포함할 수 있다.
본 개시의 실시예들에 따른 과제는 비용 효율적이고 개선된 성능을 갖는 분산 캐싱 시스템 및 방법을 제공하는데 있다.
본 개시의 일부 실시예들은 분산 캐싱 시스템 및 방법을 제공한다. 다양한 실시예들에 따르면, 분산 캐싱 시스템은 적어도 하나의 네트워크-연결 스토리지 장치, 콘텐츠서버 및 제어서버를 포함한다. 다양한 실시예들에 따르면, 제어서버는 적어도 하나의 네트워크-연결 스토리지 장치를 탐색하고, 적어도 하나의 네트워크-연결 스토리지 장치로부터 장치정보를 수집하며(여기서, 장치정보는 장치위치를 포함), 각 장치위치에 기초한 장치 도메인에 적어도 하나의 네트워크-연결 스토리지 장치 각각을 할당하고, 적어도 하나의 네트워크-연결 스토리지 장치에 대한 장치정보를 콘텐츠서버에 제공한다.
다양한 실시예들에 따르면, 적어도 하나의 네트워크-연결 스토리지 장치는 이더넷 솔리드 스테이트 드라이브(eSSD)를 포함한다.
다양한 실시예들에 따르면, 제어서버는 장치 테이블을 생성하고, 장치 테이블은 탐색된 적어도 하나의 네트워크-연결 스토리지 장치 각각에 대한 엔트리를 포함한다. 여기서, 엔트리는 캐시 장치 식별자, 장치위치 및 할당된 장치 도메인을 포함한다.
다양한 실시예들에 따르면, 캐시 장치 식별자는 IP 주소이다.
다양한 실시예들에 따르면, 콘텐츠서버는 각 장치위치에 기초하여 적어도 하나의 네트워크-연결 스토리지 장치 각각에 콘텐츠를 푸시한다.
다양한 실시예들에 따르면, 콘텐츠서버는 캐싱된 콘텐츠 테이블을 포함하고, 캐싱된 콘텐츠 테이블은 적어도 하나의 네트워크-연결 스토리지 장치에 저장된 각 콘텐츠에 대한 콘텐츠 엔트리를 포함한다. 여기서, 콘텐츠 엔트리는 캐시 장치 식별자 및 콘텐츠 식별자를 포함한다.
다양한 실시예들에 따르면, 적어도 하나의 네트워크-연결 스토리지 장치 각각은 호스팅된 콘텐츠 테이블을 포함한다. 다양한 실시예들에 따르면, 호스팅된 콘텐츠 테이블은 네트워크-연결 스토리지 장치에 저장된 각 콘텐츠에 대한 클라이언트 장치의 액세스 권한을 확인하기 위한 인가 엔트리를 포함한다.
다양한 실시예들에 따르면, 분산 캐싱 시스템은 복수의 네트워크-연결 스토리지 장치들을 포함할 수 있다. 다양한 실시예들에 따르면, 네트워크-연결 스토리지 장치들 각각은 적어도 하나의 콘텐츠와, 장치위치에 기초한 도메인을 포함한다. 다양한 실시예들에 따르면, 분산 캐싱 시스템은 메모리 및 메모리에 저장된 명령어들을 실행하는 프로세서를 포함하는 콘텐츠서버도 포함한다. 명령어들은 프로세서에 의해 실행될 때 프로세서로 하여금, 요청된 콘텐츠에 액세스 하기 위한 클라이언트의 액세스 권한을 확인하는 동작; 클라이언트의 위치를 식별하는 동작; 클라이언트의 위치를 최근접 도메인에 매칭하는 동작; 클라이언트에 대한 인가 엔트리를 포함하도록 최근접 도메인에 속하는 장치의 호스팅된 콘텐츠 테이블을 업데이트하는 동작; 및 캐싱 장치 식별자를 포함하는 리다이렉트 메시지를 클라이언트에게 전송하는 동작을 수행하도록 한다.
다양한 실시예들에 따르면, 복수의 네트워크-연결 스토리지 장치 각각은 이더넷 솔리드 스테이트 드라이브(eSSD)를 포함한다.
다양한 실시예들에 따르면, 명령어들은 프로세서에 의해 실행될 때 프로세서로 하여금, 최근접 도메인 내에 콘텐츠가 저장되어 있는지 확인하는 동작을 더 수행하도록 한다.
다양한 실시예들에 따르면, 명령어들은 프로세서에 의해 실행될 때 프로세서로 하여금, 요청된 콘텐츠의 제1 샤드를 최근접 도메인의 네트워크-연결 스토리지 장치로 푸시하는 동작을 더 수행하도록 한다.
다양한 실시예들에 따르면, 명령어들은 프로세서에 의해 실행될 때 프로세서로 하여금, 요청된 콘텐츠의 추가 샤드를 최근접 도메인의 네트워크-연결 스토리지 장치로 푸시하는 동작을 더 수행하도록 한다.
다양한 실시예들에 따르면, 장치위치는 물리적인 위치이다.
다양한 실시예들에 따르면, 분산 캐싱 시스템은 복수의 이더넷 솔리드 스테이트 드라이브(eSSD)들, 콘텐츠서버 및 제어서버를 포함한다. 여기서, 각 eSSD는 IP 주소를 포함한다. 다양한 실시예들에 따르면, 제어서버는 제1 메모리 및 제1 메모리에 저장된 제1 명령어들을 실행하는 제1 프로세서를 포함한다. 제1 명령어들은 제1 프로세서에 의해 실행될 때 제1 프로세서로 하여금, 복수의 eSSD들 각각을 탐색하는 동작; IP 주소에 기초한 장치위치를 포함하는 장치정보를 복수의 eSSD들 각각으로부터 수집하는 동작; 각 장치위치에 기초하는 장치 도메인에 상기 복수의 eSSD들 각각을 할당하는 동작; 및 eSSD들의 리스트와 각 해당 장치위치를 콘텐츠서버에 제공하는 동작을 수행하도록 한다.
다양한 실시예들에 따르면, 제1 명령어들은 제1 프로세서에 의해 실행될 때 제1 프로세서로 하여금, 장치 테이블을 생성하는 동작을 더 수행하도록 한다. 여기서, 장치 테이블은 복수의 eSSD들 각각에 대한 엔트리를 포함한다. 다양한 실시예들에 따르면, 각 엔트리는 캐시 장치 식별자, 장치위치 및 할당된 장치 도메인을 포함한다.
다양한 실시예들에 따르면, 콘텐츠서버는 각 장치위치에 기초하여 복수의 eSSD들 각각에 콘텐츠를 푸시한다.
다양한 실시예들에 따르면, 콘텐츠서버는 캐싱된 콘텐츠 테이블을 포함하며, 캐싱된 콘텐츠 테이블은 복수의 eSSD들에 저장된 각 콘텐츠에 대한 콘텐츠 엔트리를 포함한다. 다양한 실시예들에 따르면, 콘텐츠 엔트리는 캐시 장치 식별자 및 콘텐츠 식별자를 포함한다.
다양한 실시예들에 따르면, 복수의 eSSD들 각각은 호스팅된 콘텐츠 테이블을 포함한다. 다양한 실시예들에 따르면, 호스팅된 콘텐츠 테이블은 eSSD에 저장된 각 콘텐츠에 대한 클라이언트 장치의 액세스 권한을 확인하기 위한 인가 엔트리를 포함한다.
다양한 실시예들에 따르면, 콘텐츠서버는 제2 메모리 및 제2 메모리에 저장된 제2 명령어들을 실행하는 제2 프로세서를 포함한다. 다양한 실시예들에 따르면, 제2 명령어들은 제2 프로세서에 의해 실행될 때 제2 프로세서로 하여금, 요청된 콘텐츠에 액세스하기 위한 클라이언트의 액세스 권한을 확인하는 동작; 클라이언트의 위치를 식별하는 동작; 클라이언트의 위치를 최근접 도메인에 매칭하는 동작; 클라이언트에 대한 인가 엔트리를 포함하도록, 최근접 도메인에 속하는 eSSD의 호스팅된 콘텐츠 테이블을 업데이트하는 동작; 및 캐싱 장치 식별자를 포함하는 리다이렉트 메시지를 클라이언트에게 전송하는 동작을 수행하도록 한다.
다양한 실시예들에 따르면, 제2 명령어들은 제2 프로세서에 의해 실행될 때 제2 프로세서로 하여금, 최근접 도메인 내에 콘텐츠가 저장되어 있는지 확인하는 동작; 및 최근접 도메인의 eSSD로 요청된 콘텐츠를 푸시하는 동작을 수행하도록 한다.
다양한 실시예들에 따르면, 네트워크-연결 스토리지 장치는 네트워크 연결, 적어도 하나의 멀티미디어 콘텐츠를 저장하는 영구 메모리, 및 스토리지 컨트롤러를 포함한다. 다양한 실시예들에 따르면, 스토리지 컨트롤러는 적어도 하나의 멀티미디어 콘텐츠에 대한 인가 엔트리를 포함하는 호스팅된 콘텐츠 테이블을 저장하는 메모리, 및 메모리에 저장된 명령어들을 실행하는 프로세서를 포함한다. 명령어들은 프로세서에 의해 실행될 때 프로세서로 하여금, 호스팅된 콘텐츠 테이블에 따라, 요청된 멀티미디어 콘텐츠에 대한 클라이언트의 액세스 권한을 확인하는 동작; 및 네트워크 연결을 통해 클라이언트로 요청된 멀티미디어 콘텐츠를 전송하는 동작을 수행하도록 한다.
다양한 실시예들에 따르면, 인가 엔트리는 클라이언트 ID, 콘텐츠 ID, 다운로드 타임스탬프, 사용 타임스탬프 및 사용계수를 포함한다.
다양한 실시예들에 따르면, 적어도 하나의 멀티미디어 콘텐츠는 소정의 멀티미디어 콘텐츠의 제1 샤드이다.
다양한 실시예들에 따르면, 네트워크-연결 스토리지 장치는 소정의 멀티미디어 콘텐츠의 제1 샤드의 전송에 따라, 콘텐츠서버의 소정의 멀티미디어 콘텐츠의 제2 샤드를 요청할 수 있다.
다양한 실시예들에 따르면, 네트워크-연결 스토리지 장치는 소정의 멀티미디어 콘텐츠의 제1 샤드의 전송에 따라, 콘텐츠서버에 알림을 전송할 수 있다.
본 개시의 실시예들에 따른 분산 캐싱 시스템 및 방법은 비용 대비 우수한 성능을 가질 수 있으며, 전력을 덜 소모하고 많은 냉각을 필요로 하지 않을 수 있다.
본 개시의 일부 실시예들은 이하의 첨부도면들을 참조하여 아래의 설명으로부터 보다 구체적으로 이해될 수 있다.
도 1은 종래의 콘텐츠 전송 시스템의 예시도이다.
도 2는 본 개시의 다양한 실시예들에 따른 분산 캐싱 시스템의 예시도이다.
도 3은 본 개시의 다양한 실시예들에 따라 분산 캐싱 시스템을 초기화하기 위한 통신 흐름도이다.
도 4는 본 개시의 다양한 실시예들에 따른 시스템 초기화 방법의 흐름도이다.
도 5a는 본 개시의 다양한 실시예들에 따른 제어서버에서 사용되는 장치 테이블을 도시한다.
도 5b는 본 개시의 다양한 실시예들에 따른 콘텐츠서버에 의해 사용되는 캐싱된 콘텐츠 테이블을 도시한다.
도 5c는 본 개시의 다양한 실시예들에 따른 콘텐츠서버에 의해 클라이언트 장치로 전송되는 리다이렉트 메시지를 도시한다.
도 5d는 본 개시의 다양한 실시예들에 따른 네트워크-연결 스토리지 장치에서 사용되는 콘텐츠 테이블을 도시한다.
도 6은 본 개시의 다양한 실시예들에 따라 분산 캐싱 시스템을 이용하여 콘텐츠를 다운로드하기 위한 통신 흐름도이다.
도 7은 본 개시의 다양한 실시예들에 따라 분산 캐싱 시스템을 이용하여 콘텐츠를 다운로드하는 방법의 흐름도이다.
도 8은 본 개시의 다양한 실시예들에 따라 로컬 캐싱 장치에서 해당 콘텐츠가 현재 이용 불가능한 경우 분산 캐싱 시스템을 이용하여 해당 콘텐츠를 다운로드하기 위한 통신 흐름도이다.
도 9는 본 개시의 다양한 실시예들에 따라 로컬 캐싱 장치에서 해당 콘텐츠가 현재 이용 불가능한 경우 분산 캐싱 시스템을 이용하여 해당 콘텐츠를 다운로드하는 방법의 흐름도이다.
본 개시에 따른 기술적 사상의 특징들 및 이를 달성하기 위한 방법들은 첨부도면 및 이하의 실시예들에 대한 구체적인 설명을 참조하여 보다 쉽게 이해될 수 있다. 이하, 첨부도면들(전체적으로 동일한 참조부호들은 동일한 구성요소들을 지칭)을 참조하여 본 개시의 예시적인 실시예들에 대해 보다 구체적으로 설명한다. 다만, 본 발명은 다른 다양한 방식들로 구체화될 수 있으며, 본 명세서에 도시된 실시예들로 제한되는 것으로 해석되어서는 안 된다. 이러한 실시예들은 본 개시가 철저히 완전해지고 본 발명의 양상들 및 특징들이 통상의 기술자에게 충분히 전달되도록 예시로서 제공되는 것이다. 따라서, 본 발명의 양상들 및 특징들에 대한 완전한 이해를 위해 본 개시가 속한 기술분야의 통상의 기술자에게 불필요한 프로세스들, 구성들 및 기법들에 대한 설명은 생략될 수 있다. 특별히 언급하지 않는 한, 첨부도면 및 상세한 설명 전반에 걸쳐 동일한 참조부호는 동일한 구성요소를 나타내므로 동일한 구성요소에 대한 설명은 반복하지 않는다. 도면에 도시된 구성요소들, 계층들 및 영역들의 상대적인 크기는 명확성을 위해 과장 및/또는 단순화될 수 있다.
이하의 상세한 설명에는 본 개시에 따른 다양한 실시예들을 완전히 이해할 수 있도록 수많은 특정 세부설명들이 기재된다. 그러나 본 개시에 따른 다양한 실시예들은 이러한 특정 세부사항들 없이, 또는 하나 이상의 동등한 구성들로 실시될 수 있음은 자명하다. 다른 예시들에 있어서, 본 개시의 다양한 실시예들이 불필요하게 모호해지지 않도록 공지/공용의 구조들 및 장치들은 도면에 도시되지 않는다.
어느 요소, 계층, 영역 또는 구성요소가 다른 요소, 계층, 영역 또는 구성요소 "상에", "에 연결된" 또는 "에 결합된" 것으로 언급되는 경우, 이는 직접적으로 다른 요소, 계층, 영역 또는 구성요소 "상에", "에 연결된" 또는 "에 결합된" 것을 의미하거나, 하나 이상의 매개 요소들, 계층들, 영역들 또는 구성요소들이 존재하는 것을 의미할 수 있다. 그러나 "직접 연결/직접 결합"된 것이라 함은 매개 구성요소 없이 하나의 구성요소가 다른 구성요소에 연결 또는 결합된 것을 나타낸다. 한편, "사이에", "사이에 바로" 또는 "인접한", "바로 인접한"과 같은 구성요소들 간의 관계를 나타내는 다른 표현들도 이와 마찬가지로 해석될 수 있다. 또한, 어느 구성요소나 계층이 두 구성요소들 또는 계층들 "사이에" 존재하는 것으로 언급되는 경우, 이는 두 요소들 또는 계층들 사이에 하나의 요소 또는 계층만이 존재하는 것을 의미하거나, 하나 이상의 매개 요소들이나 매개 계층들이 존재하는 것을 의미할 수 있다.
본 명세서에서 사용되는 용어는 단지 특정 실시예들을 설명하기 위한 것이며 본 발명을 한정하고자 하는 것이 아니다. 본 명세서에 사용되는 단수형태 용어는 문맥상 명백히 다르게 지시하지 않는 한 복수형태 용어도 포함한다. 본 명세서에서 사용되는 "포함한다", "포함하는", "구비한다", "구비하는", "갖는다" 및 "갖는"과 같은 용어들은 언급된 특징부들, 숫자들, 단계들, 동작들, 요소들 및/또는 구성들의 존재를 명시하지만, 하나 이상의 다른 특징부들, 숫자들, 단계들, 동작들, 요소들, 구성들 및/또는 이들의 집합들이 존재하거나 부가되는 것을 배제하는 것은 아니다. 본 명세서에서 사용되는 "및/또는"이라는 용어는 열거된 하나 이상의 관련 항목들의 임의의 조합 및 모든 조합들을 포함한다.
본 명세서에서 사용되는 "실질적으로", "약", "대략" 및 이와 유사한 용어들은 정도(degree)를 나타내는 용어가 아닌 근사(approximation)를 나타내는 용어로서 사용되는 것이며, 본 개시가 속한 기술분야의 통상의 기술자에 의해 인식될 측정값 또는 계산값에 내재된 편차를 설명하기 위한 것이다. 본 명세서에서 사용되는 "약" 또는 "대략"은 기재된 값을 포함할 뿐만 아니라, 당해 측정 및 특정 수량의 측정과 관련된 오차를 고려하여 본 개시의 기술분야의 통상의 기술자에 의해 결정되는 특정 값에 대한 허용가능한 범위의 편차 이내라는 의미를 갖는다. 예를 들어, "약"은 하나 이상의 표준편차 이내 또는 기재된 값의 ± 30%, 20%, 10%, 5% 이내를 의미할 수 있다. 또한, 본 개시의 실시예들에 대한 설명에 있어 "할 수 있다(may)"라는 표현이 사용된 경우, 이는 "본 개시의 하나 이상의 실시예들"을 지칭하는 것이다. 본 명세서에서 사용된 "사용한다", "사용하는" 및 "사용되는"이라는 용어들은 각각 "활용한다", "활용하는" 및 "활용되는"이라는 용어들과 동의어로 간주될 수 있다. 또한, "예시적인"이라는 용어는 예시 또는 일례를 지칭한다.
소정의 실시예가 다르게 구현될 수 있는 경우, 특정 프로세스 순서는 설명된 순서와 다르게 수행될 수 있다. 예를 들어, 연속적으로 설명된 2개의 프로세스들은 실질적으로 동시에 수행될 수 있거나, 설명된 순서와 반대로 수행될 수 있다.
본 명세서에서는 실시예들 및/또는 중간 구조들의 개략적인 도시인 부분적인 도시들을 참조하여 다양한 실시예들에 대해 설명한다. 따라서, 예컨대 제조기법 및/또는 허용오차 등의 결과로서 도시된 예시들의 형태로부터 변형이 이루어질 수 있음을 예상해야 한다. 또한, 본 명세서에 개시된 특정한 구조 또는 기능의 설명은 본 개시의 기술적 사상에 따른 실시예들을 설명하기 위한 목적으로 예시적인 것일 뿐이다. 따라서, 본 명세서에 개시된 실시예들은 도시된 특정 형상의 영역들에 한정되는 것으로 해석되어서는 안되며, 예컨대 제조 등의 결과로서 형상에 편차가 내재할 수 있음은 당연하다. 예를 들어, 직사각형으로 도시된 주입 영역은 일반적으로 둥근 형상이나 굽은 형상, 및/또는 주입 영역에서 비주입 영역으로의 이원변화가 아닌 그 경계부분에서의 주입농도 기울기를 가질 것이다. 마찬가지로, 주입에 의해 형성된 매립 영역은 주입이 일어나는 면과 매립 영역 사이의 영역에 어느 정도의 주입을 발생시킬 수 있다. 그러므로, 도면에 도시된 영역들은 사실상 개략적인 것으로, 그 형태들은 장치의 어느 영역의 실제 형태를 도시하는 것이 아니며 도시된 형태로 제한하고자 하는 것도 아니다.
본 명세서에서 설명되는 본 개시의 실시예들에 따르면, 전자/전기 장치들 및/또는 임의의 다른 관련 장치/구성요소들은 임의의 적절한 하드웨어, 펌웨어(예: 주문형 집적회로), 소프트웨어 또는 이들의 조합을 이용하여 구현될 수 있다. 예를 들어, 이러한 장치들의 다양한 구성요소들은 하나의 집적회로(IC) 칩이나 개개의 IC 칩들에 형성될 수 있다. 또한, 이러한 장치들의 다양한 구성요소들은 연성 인쇄회로 필름(Flexible Printed Circuit Film), 테이프 캐리어 패키지(Tape Carrier Package: TCP), 인쇄회로기판(Printed Circuit Board: PCB)에 구현되거나, 하나의 기판에 형성될 수 있다. 또한, 이러한 장치들의 다양한 구성요소들은 프로세스 또는 스레드로서, 하나 이상의 컴퓨팅 장치의 하나 이상의 프로세서에서 실행되고, 컴퓨터 프로그램 명령들을 실행하며, 본 명세서에 설명된 다양한 기능들을 수행하기 위해 다른 시스템 구성요소들과 상호작용할 수 있다. 컴퓨터 프로그램 명령들은 메모리에 저장되며, 메모리는 예컨대, 랜덤 액세스 메모리(Random Access Memory: RAM)와 같은 표준 메모리 장치를 사용하는 컴퓨팅 장치에 구현될 수 있다. 컴퓨터 프로그램 명령들은 예컨대, CD-ROM, 플래시 드라이브 등과 같은 다른 비일시적인 컴퓨터 판독가능 매체에도 저장될 수 있다. 또한, 본 개시가 속한 기술분야의 통상의 기술자는 본 개시의 예시적인 실시예들의 사상 및 범위를 벗어나지 않는 범위에서, 다양한 컴퓨팅 장치들의 기능이 단일 컴퓨팅 장치로 결합 또는 통합될 수 있거나, 또는 특정 컴퓨팅 장치의 기능이 하나 이상의 다른 컴퓨팅 장치에 분산될 수 있음을 인식할 것이다.
본 명세서에서 사용되는 모든 용어들(기술용어 및 과학용어 포함)은 달리 정의되지 않는 한, 본 개시가 속하는 기술분야의 통상의 기술자가 일반적으로 이해하는 바와 동일한 의미를 갖는다. 또한, 일반적으로 사용되는 사전들에 정의된 것과 같은 용어들은 관련기술 및/또는 본 명세서의 맥락상의 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백히 정의하지 않는 한 이상적이거나 지나치게 형식적인 의미로 해석되어서는 안 된다.
본 개시의 실시예들은 네트워크-연결 스토리지(Network-Attached Storage) 장치들을 이용하는 분산 캐싱 시스템 및 방법을 포함한다. 다양한 실시예들에 따르면, 본 시스템은 이더넷 SSD(Ethernet SSD: eSSD)와 같은 하나 이상의 네트워크-연결 스토리지 장치들, 또는 다른 네트워크-연결 마이크로 장치들을 포함한다. 네트워크-연결 스토리지 장치들은 데이터센터에 분산되거나, 로컬 네트워크 전반에 걸쳐 분산될 수 있다. 제어서버는 네트워크-연결 스토리지 장치들을 캐싱 장치로 구성하는데 사용된다. 캐싱 장치들은 멀티미디어 콘텐츠 전송 시스템의 일부로서 사용될 수 있으며, 캐싱 장치들은 콘텐츠서버와 연동하여 멀티미디어 또는 다른 콘텐츠를 사용자들에게 제공한다.
도 2는 본 개시의 다양한 실시예들에 따른 분산 캐싱 시스템의 예시도이다.
도 2를 참조하면, 다양한 실시예들에 따른 분산 캐싱 시스템(200)은 복수의 캐싱 네트워크-연결 스토리지 장치들을 이용하여 스토리지 서비스를 제공할 수 있다. 예를 들어, 분산 캐싱 시스템(200)은 데이터센터(210)에 존재하는 다양한 구성요소들을 포함할 수 있다. 데이터센터(210)는 백본 에지 라우터(230)를 통해 백본 네트워크에 연결될 수 있고, 로컬 에지 라우터(235)를 통해 로컬 네트워크에 연결될 수 있다. 다양한 실시예들에 따른 데이터센터(210)는 멀티미디어 콘텐츠(222)를 저장하는 콘텐츠서버(220)를 포함한다. 멀티미디어 콘텐츠(222)는 예컨대, 비디오, 오디오 및 다른 멀티미디어 파일들을 포함할 수 있다. 예를 들어, 다양한 실시예들에 따른 멀티미디어 콘텐츠(222)는 제1 비디오(224) 및 제2 비디오(226)를 포함할 수 있다. 다양한 실시예들에 따른 데이터센터(210)는 하나 이상의 데이터센터 캐싱 네트워크-연결 스토리지 장치들(240, 245)을 포함한다. 이와 유사하게, 다양한 실시예들에 따른 하나 이상의 로컬 캐싱 네트워크-연결 스토리지 장치들(250-256)은 로컬 네트워크 상에 위치할 수 있다. 다양한 실시예들에 따른 캐싱 네트워크-연결 스토리지 장치들은 eSSD와 같은 마이크로 장치들을 포함할 수 있다. 예를 들어, 다양한 실시예들에 따른 eSSD는 프로세서, 메모리(예: DRAM), 영구 메모리(예: 펌웨어)를 포함하는 스토리지 컨트롤러와 네트워크 연결 및 영구 메모리(예: 플래시 메모리)를 포함한다. eSSD는 네트워크 연결을 통해 원격 호스트들과 입력/출력 동작들을 수행한다. 다양한 실시예들에 따른 캐싱 네트워크-연결 스토리지 장치들은 미디어 콘텐츠(222)의 일부를 저장하고, 저장된 미디어 콘텐츠에 대한 액세스를 하나 이상의 클라이언트 장치들에게 제공한다.
예를 들어, 다양한 실시예들에 따라 제1 비디오(224)는 데이터센터 캐싱 네트워크-연결 스토리지 장치(240)에 저장될 수 있고, 제2 비디오(226)는 데이터센터 캐싱 네트워크-연결 스토리지 장치(245)에 저장될 수 있다. 클라이언트 장치들은 데이터센터 캐싱 네트워크-연결 스토리지 장치들(240, 245)로부터 제1 비디오(224) 및 제2 비디오(226)를 검색할 수 있다. 일부 실시예들에 따르면, 모든 미디어 콘텐츠(222) 또는 그 일부는 로컬 캐싱 네트워크-연결 스토리지 장치들(250-256)에 저장될 수 있다. 예를 들어, 다양한 실시예들에 따라 제1 비디오(224)는 로컬 캐싱 네트워크-연결 스토리지 장치들(250 및 252)에 저장될 수 있고, 제2 비디오(226)는 로컬 캐싱 네트워크-연결 스토리지 장치들(254 및 256)에 저장될 수 있다. 다양한 실시예들에 따라, 데이터센터 및 로컬 캐싱 네트워크-연결 스토리지 장치들은 제1 비디오(224) 및 제2 비디오(226)의 일부를 저장할 수 있다. 예를 들어, 로컬 캐싱 네트워크-연결 스토리지 장치(250)는 제1 비디오(224)의 제1 부분을 저장할 수 있고, 로컬 캐싱 네트워크-연결 스토리지 장치(252)는 제1 비디오(224)의 제2 부분을 저장할 수 있으며, 데이터센터 캐싱 네트워크-연결 스토리지 장치(240)는 제1 비디오(224)의 제3 부분을 저장할 수 있다. 후술하는 바와 같이, 멀티미디어 콘텐츠(222)는 다양한 방식들으로 여러 캐싱 네트워크-연결 스토리지 장치들에 걸쳐 저장될 수 있다.
다양한 실시예들에 따른 제어서버(260)는 다양한 캐싱 네트워크-연결 장치들(240, 245, 250-256)에 대해 관리기능들을 수행할 수 있다. 예를 들어, 제어서버(260)는 데이터센터(210)에 위치하여 각각의 캐싱 네트워크-연결 장치들과 통신할 수 있는 한편, 다른 실시예들에 따른 제어서버(260)는 로컬 네트워크에 위치하거나 백본 네트워크와 연결될 수 있다. 다양한 실시예들에 따른 관리기능들에는 캐싱 네트워크-연결 장치들의 초기화(추후 설명함) 및 그 설정에 대한 후속 변경들이 포함될 수 있다.
도 3은 본 개시의 다양한 실시예들에 따라 분산 캐싱 시스템을 초기화하기 위한 통신 흐름도이다. 도 4는 본 개시의 다양한 실시예들에 따른 시스템 초기화 방법의 흐름도이다.
도 3 및 도 4를 참조하면, 다양한 실시예들에 따른 제어서버(300)는 멀티미디어 콘텐츠를 클라이언트 장치들(350)에 분배하기 위해 콘텐츠서버(310)와 함께 사용하기 위한, 연결된 캐싱 네트워크-연결 장치들(320, 330, 340)을 설정할 수 있다. 다양한 실시예들에 따르면, "탐색 시작" (Start of Day) 단계(S400)에서 초기화가 개시될 수 있다. 다양한 실시예들에 따르면, 분산 캐싱 시스템이 처음으로 설정될 때, 또는 새로운 캐싱 네트워크-연결 스토리지 장치들(320, 330, 340)이 분산 캐싱 시스템에 추가될 때 "탐색 시작" 단계가 발생할 수 있다.
다양한 실시예들에 따르면, "탐색 시작" 단계 이후, 제어서버(300)는 이용 가능한 각각의 캐싱 네트워크-연결 스토리지 장치(320-340)를 탐색할 것이다(S410). 예를 들어, 다양한 실시예들에 따른 제어서버(300)는 캐싱 네트워크-연결 스토리지 장치를 가질 가능성이 있는 IP 주소들로 탐색 패킷들(discovery packets)을 전송한다(360). 예를 들어, 제어서버(300)는 네트워크-연결 스토리지 장치들의 IP 주소들을 핑(ping)할 수 있다. 다양한 실시예들에 따르면, 네트워크-연결 스토리지 장치들(320, 330, 340)은 그들이 이용 가능한 상태일 때, 제어서버(300)에 응답할 수 있다(370).
다양한 실시예들에 따르면, 네트워크-연결 스토리지 장치들(320, 330, 340)의 응답에는 장치정보가 포함될 수 있다(S420). 예를 들어, 장치정보에는 네트워크-연결 스토리지 장치들의 식별자(예: IP 주소 또는 MAC 주소), 장치의 물리적 위치(예: 지리적 위치), 및 장치의 성능특성(예: 이용가능한 스토리지 공간, 전체 스토리지 공간, 네트워크 대역폭 등)이 포함될 수 있다.
다양한 실시예들에 따르면, 제어서버(300)는 장치정보를 이용하여 캐싱 도메인들을 생성할 수 있다(S430). 예를 들어, 다양한 실시예들에 따른 제어서버(300)는 상대적으로 근접한 지리적 위치에 있는 장치들을 포함하는 캐싱 도메인들을 생성할 수 있다. 예를 들어, 네트워크-연결 스토리지 장치(320)는 모두 상대적으로 동일한 지리적 영역(예: 같은 도시)에 위치하는 다수의 네트워크-연결 스토리지 장치들을 대표할 수 있다. 이와 유사하게, 네트워크-연결 스토리지 장치들(330 및 340)도 각각 상대적으로 동일한 지리적 영역에 위치하는 다수의 네트워크-연결 스토리지 장치들을 대표할 수 있다.
다양한 실시예들에 따른 제어서버(300)는 탐색된 각각의 네트워크-연결 스토리지 장치(320, 330, 340)를 포함하는 장치 테이블(예: 후술할 도 5a에 도시된 장치 테이블)을 생성할 수 있고, 제어서버(300)를 포함하도록(즉, 제어서버(300)의 제어 하에 있도록) 네트워크-연결 스토리지 장치들의 콘텐츠 테이블들(예: 후술할 도 5d에 도시된 콘텐츠 테이블) 각각을 업데이트할 수 있다(380)(S440). 다양한 실시예들에 따르면, 제어서버(300)는 이용 가능한 네트워크-연결 스토리지 장치들(예: 후술할 도 5b에 도시된 캐싱 콘텐츠 테이블)을 포함하는 테이블을 콘텐츠서버(310)에 제공할 수 있고, 콘텐츠서버(310)는 네트워크-연결 스토리지 장치들(320, 330, 340)로 콘텐츠를 분배하기 시작할 수 있다(390)(S450).
도 5a는 본 개시의 다양한 실시예들에 따른 제어서버에서 사용되는 장치 테이블을 도시한다. 도 5b는 본 개시의 다양한 실시예들에 따른 콘텐츠서버에 의해 사용되는 캐싱된 콘텐츠 테이블을 도시한다. 도 5c는 본 개시의 다양한 실시예들에 따른 콘텐츠서버에 의해 클라이언트 장치로 전송되는 리다이렉트(redirect) 메시지를 도시한다. 도 5d는 본 개시의 다양한 실시예들에 따른 네트워크-연결 스토리지 장치에서 사용되는 콘텐츠 테이블을 도시한다.
도 5a를 참조하면, 다양한 실시예들에 따른 제어서버는 장치 테이블(500)을 생성 및 유지할 수 있다. 다양한 실시예들에 따르면, 장치 테이블(500)은 캐싱 시스템에 의해 사용 가능한 캐싱 장치들을 각각 나열하며, 이들의 위치 및 도메인을 포함한다. 장치 테이블(500)은 "탐색 시작"(예: 시스템 초기화) 단계에서 처음 생성될 수 있고, 캐싱 시스템에서 캐싱 네트워크-연결 스토리지 장치들이 추가 및 제거될 때 제어서버에 의해 업데이트될 수 있다. 다양한 실시예들에 따르면, 장치 테이블(500)은 캐싱 장치 식별자(502), 장치위치(504) 및 도메인(506)을 포함한다. 다양한 실시예들에 따르면, 장치 식별자는 캐싱 네트워크-연결 스토리지 장치에 대한 고유 식별자를 포함할 수 있다. 예를 들어, 다양한 실시예들에 따른 장치 식별자는 해당 장치에 대한 IP 주소를 포함할 수 있다. 다양한 실시예들에 따르면, 장치위치(504)는 해당 장치의 실제 지리적 위치를 나타낸다. 예를 들어, 다양한 실시예들에 따른 장치위치(504)는 우편번호를 포함할 수 있다. 다른 실시예들에 따르면, 장치위치(504)는 해당 장치의 경도 및 위도를 포함할 수 있다. 다양한 실시예들에 따르면, 장치 도메인(506)은 제어서버가 해당 장치를 추가한 그룹이다. 예를 들어, 동일 또는 유사한 장치위치를 갖는 장치들은 같은 도메인으로 분류될 수 있다. 다양한 실시예들에 따르면, 장치 테이블(500)은 제어서버의 제어 하에 있는 각 장치에 대한 장치 엔트리(508-516)를 포함한다.
도 5b를 참조하면, 다양한 실시예들에 따른 콘텐츠서버는 캐싱된 콘텐츠 테이블(518)로 설정될 수 있다. 다양한 실시예들에 따르면, 캐싱된 콘텐츠 테이블(518)은 콘텐츠서버에 캐싱 네트워크-연결 스토리지 장치 리스트, 그 장치들의 위치, 및 각 장치에 저장된 콘텐츠 리스트를 제공한다. 예를 들어, 다양한 실시예들에 따른 캐싱된 콘텐츠 테이블(518)은 캐시 장치 식별자(520), 위치(522) 및 콘텐츠 식별자(524)를 포함할 수 있다. 캐시 장치 식별자(520) 및 위치(522)는 전술한 캐시 장치 식별자(502) 및 장치위치(504)에 대응될 수 있다. 다양한 실시예들에 따르면, 콘텐츠 식별자(524)는 콘텐츠(예: 멀티미디어 콘텐츠)의 고유 식별자를 포함한다. 예를 들어, 콘텐츠 식별자(524)는 영화 제목을 포함할 수 있다. 다양한 실시예들에 따르면, 캐시 장치는 완전한 콘텐츠의 일부분(예: 소정의 비디오의 일부분)만을 저장할 수 있고, 콘텐츠 식별자(524)는 콘텐츠의 어느 부분이 캐싱 장치에 저장되었는지를 나타낼 수 있다. 예를 들어, 캐싱된 콘텐츠 테이블(518)은 장치 엔트리들(526-534)을 포함한다. 본 예시에서, 제1 캐싱 장치(526)는 우편번호 95134(예: 미국 캘리포니아주 산호세)의 지역에 위치하며, 콘텐츠 1의 샤드(shard) 1 내지 샤드 5(예: 콘텐츠 1의 처음 5개 부분들)를 저장하고 있다. 제2 캐싱 장치(528)는 우편번호 95136(예: 미국 캘리포니아주 산호세)의 지역에 위치하며, 콘텐츠 1의 샤드 6 내지 샤드 10(예: 콘텐츠 1의 마지막 5개 부분들)을 저장하고 있다. 다양한 실시예들에 따르면, 캐싱된 콘텐츠 테이블(518)은 각 콘텐츠의 엔트리를 포함할 수 있다(예: 엔트리(530) 및 엔트리(532)를 포함하는 장치 3과 같이, 장치가 2개 이상의 콘텐츠를 저장하는 경우 해당 장치는 여러 리스팅(listing)들을 가질 수 있음). 다른 다양한 실시예들에 따르면, 캐싱된 콘텐츠 테이블(518)은 각 캐싱 장치에 대하여 단 하나의 엔트리를 포함할 수 있고, 해당 장치에 저장된 모든 콘텐츠를 콘텐츠 식별자(524)로 나열할 수 있다.
다양한 실시예들에 따르면, 캐싱된 콘텐츠 테이블(518)은 제어서버와 함께 콘텐츠서버에 의해 생성 및 유지될 수 있다. 예를 들어, 다양한 실시예들에 따른 제어서버가 캐싱된 콘텐츠 테이블을 생성할 수 있고, 캐싱된 콘텐츠 테이블을 캐싱에 사용되고 있는 각 장치로 채울 수 있다. 다른 실시예들에 따르면, 콘텐츠서버가 캐싱된 콘텐츠 테이블(518)을 생성할 수 있고, 제어서버로부터 장치 리스트를 수신할 수 있다.
도 5c를 참조하면, 다양한 실시예들에 따른 리다이렉트 메시지(536)는 콘텐츠서버에 의해 클라이언트로 전송되어, 요청된 데이터를 저장하고 있는 장치로 클라이언트를 지향시킬 수 있다. 예를 들어, 다양한 실시예들에 따른 리다이렉트 메시지(536)는 클라이언트 식별자(538), 콘텐츠 식별자(540) 및 캐싱 장치 식별자(542)를 포함한다. 다양한 실시예들에 따르면, 클라이언트 식별자(538)는 해당 클라이언트에 대한 고유 식별자이다. 예를 들어, 클라이언트 식별자(538)는 IP 주소일 수 있다. 다른 예로, 클라이언트 식별자(538)는 클라이언트 사용자명(user name)이나 클라이언트와 관련된 보안토큰(security token)을 포함할 수 있다. 다양한 실시예들에 따르면, 콘텐츠 식별자(540)는 콘텐츠의 고유 식별자를 포함하며, 콘텐츠 식별자(524)와 대응될 수 있다. 다양한 실시예들에 따르면, 캐싱 장치 식별자(542)는 캐시 장치 식별자(502 및 520)와 대응될 수 있다. 예를 들어, 전술한 것과 같이 캐싱 장치 식별자들(502, 520, 542)은 캐싱 장치에 대한 IP 주소를 포함할 수 있다.
도 5d를 참조하면, 다양한 실시예들에 따른 각 캐싱 네트워크-연결 스토리지 장치는 호스팅된 콘텐츠 테이블(544)을 포함할 수 있다. 다양한 실시예들에 따르면, 호스팅된 콘텐츠 테이블(544)은 예를 들어, 펌웨어나 메인스토리지(예: 플래시)의 장치 컨트롤러와 같은, 영구 메모리의 네트워크-연결 스토리지 장치에 저장된다. 다양한 실시예들에 따르면, 호스팅된 콘텐츠 테이블(544)은 이전에 장치로부터 콘텐츠를 다운로드한 적이 있는 각 클라이언트에 대한 인가(authorization) 엔트리(엔트리들 (556-564))를 포함한다. 예를 들어, 호스팅된 콘텐츠 테이블(544)은 클라이언트 식별자(546), 콘텐츠 식별자(548), 다운로드 타임스탬프(550), 사용 타임스탬프(552) 및 사용계수(use count, 554)를 갖는 엔트리들을 포함할 수 있다. 다양한 실시예들에 따르면, 클라이언트 식별자(546)는 전술한 클라이언트 식별자(538)와 대응될 수 있다. 다양한 실시예들에 따르면, 콘텐츠 식별자(548)는 콘텐츠 식별자(524 및 540)와 동일한 콘텐츠 식별자일 수 있다. 다양한 실시예들에 따르면, 다운로드 타임스탬프(550)는 해당 콘텐츠가 콘텐츠서버로부터 다운로드되었던 때의 타임스탬프일 수 있다. 예를 들어, 일부 실시예들에 따른 장치는 기 정의된 임계치보다 오래된 콘텐츠를 제거할 수 있다. 다양한 실시예들에 따르면, 사용 타임스탬프(552)는 클라이언트가 해당 콘텐츠를 다운로드했던 때의 타임스탬프를 포함한다. 다양한 실시예들에 따르면, 사용계수(554)는 클라이언트에 의한 해당 콘텐츠의 총 조회수를 포함할 수 있다.
도 6은 본 개시의 다양한 실시예들에 따라 분산 캐싱 시스템을 이용하여 콘텐츠를 다운로드하기 위한 통신 흐름도이다. 도 7은 본 개시의 다양한 실시예들에 따라 분산 캐싱 시스템을 이용하여 콘텐츠를 다운로드하는 방법의 흐름도이다.
도 6 및 도 7을 참조하면, 다양한 실시예들에 따른 분산 캐싱 시스템은 캐싱 네트워크-연결 스토리지 장치들과 연동하여, 그리고 제어서버로부터의 추가적인 개입없이 콘텐츠서버를 이용하여 콘텐츠를 분배할 수 있다. 다양한 실시예들에 따르면, 캐싱 네트워크-연결 스토리지 장치들은 제1 위치에 존재하며 "도메인 A"에 할당된 하나 이상의 eSSD들(320)로 이루어진 제1 그룹, 제2 위치에 존재하며 "도메인 B"에 할당된 하나 이상의 eSSD들(330)로 이루어진 제2 그룹, 및 제3 위치에 존재하며 "도메인 C"에 할당된 하나 이상의 eSSD들(340)로 이루어진 제3 그룹을 포함한다.
다양한 실시예들에 따르면, 클라이언트(350)는 콘텐츠서버(310)의 소정의 콘텐츠에 액세스하기 위해 요청을 전송할 수 있다(600)(S700). 다양한 실시예들에 따르면, 콘텐츠서버(310)는 해당 콘텐츠에 대한 클라이언트의 액세스 권한을 확인할 수 있다(S710). 예를 들어, 해당 요청에는 클라이언트에 대한 사용자명 및 암호(또는 다른 사용자 계정 식별정보)가 포함될 수 있으며, 이들은 사용자의 신원을 확인하고 사용자의 신원을 해당 콘텐츠에 대한 액세스 권한과 비교하기 위한 것이다. 다양한 실시예들에 따르면, 콘텐츠서버(310)는 클라이언트 장치(350)의 위치를 식별할 수 있고, 상대적으로 클라이언트 장치(350)에 근접한 위치에 있는 캐싱 장치들을 갖는 도메인을 식별할 수 있다(S720). 예를 들어, 콘텐츠서버(310)는 클라이언트(350)의 IP 주소를 이용하여 클라이언트(350)의 위치를 식별한 뒤, 요청된 콘텐츠를 포함하고 있는 장치들 및 이들의 위치를 식별하기 위한 캐싱된 콘텐츠 테이블을 이용하여 클라이언트(350)를 가장 가까운 캐싱 장치들과 매칭시킬 수 있다.
다양한 실시예들에 따르면, 콘텐츠서버(310)는 인가 업데이트를 캐싱 장치(320) 및 클라이언트(350)에 제공하여(610), 클라이언트(350)가 캐싱 장치(320)의 요청된 콘텐츠에 액세스하도록 할 수 있다. 예를 들어, 다양한 실시예들에 따른 콘텐츠서버(310)는 식별된 캐싱 장치(320)에 그 장치의 호스팅된 콘텐츠 테이블(예: 도 5d의 호스팅된 콘텐츠 테이블)에 대한 업데이트를 제공하여 클라이언트 장치(350)가 캐싱 장치(320)에 액세스하도록 할 수 있고, 클라이언트 장치(350)로 리다이렉트 메시지(예: 도 5c의 리다이렉트 메시지)를 전송할 수 있다(S730).
다양한 실시예들에 따르면, 클라이언트(350)는 콘텐츠서버(310)로부터 리다이렉트 메시지를 수신하고, 리다이렉트 메시지에 제공된 정보를 이용하여 캐싱 장치(320)의 해당 콘텐츠를 요청한다(620)(S740). 다양한 실시예들에 따르면, 캐싱 장치(320)는 클라이언트(350)로부터 요청을 수신할 것이고, 자신의 호스팅된 콘텐츠 테이블(도 5d의 호스팅된 콘텐츠 테이블)을 확인함으로써 클라이언트(350)가 해당 콘텐츠에 액세스할 권한을 갖고 있는지를 확인할 것이다. 클라이언트(350)가 액세스 권한을 갖는 것으로 확인되면, 캐싱 장치(320)는 해당 콘텐츠를 제공한다(630)(S750).
도 8은 본 개시의 다양한 실시예들에 따라 로컬 캐싱 장치에서 해당 콘텐츠가 현재 이용 불가능한 경우 분산 캐싱 시스템을 이용하여 해당 콘텐츠를 다운로드하기 위한 통신 흐름도이다. 도 9는 본 개시의 다양한 실시예들에 따라 로컬 캐싱 장치에서 해당 콘텐츠가 현재 이용 불가능한 경우 분산 캐싱 시스템을 이용하여 해당 콘텐츠를 다운로드하는 방법의 흐름도이다.
도 8 및 도 9를 참조하면, 다양한 실시예들에 따른 분산 캐싱 시스템은 로컬 캐싱 장치가 해당 콘텐츠를 저장하고 있지 않은 경우에도, 캐싱 네트워크-연결 스토리지 장치들과 연동하여, 그리고 제어서버로부터의 추가적인 개입없이 콘텐츠서버를 이용하여 콘텐츠를 분배할 수 있다.
다양한 실시예들에 따르면, 클라이언트(350)는 콘텐츠서버(310)의 콘텐츠에 액세스하기 위해 요청을 전송할 수 있다(800)(S900). 다양한 실시예들에 따르면, 콘텐츠서버(310)는 해당 콘텐츠에 대한 클라이언트의 액세스 권한을 확인할 수 있다(S910). 전술한 바와 같이, 다양한 실시예들에 따른 요청에는 클라이언트에 대한 사용자명 및 암호(또는 다른 사용자 계정 식별정보)가 포함될 수 있으며, 이들은 사용자의 신원을 확인하고 사용자의 신원을 해당 콘텐츠에 대한 액세스 권한과 비교하기 위한 것이다. 다양한 실시예들에 따르면, 콘텐츠서버(310)는 클라이언트 장치(350)의 위치를 식별할 수 있고, 상대적으로 클라이언트 장치(350)에 근접한 위치(예: 물리적으로 또는 논리적으로)에 있는 캐싱 장치들을 갖는 도메인을 식별할 수 있다. 어떤 경우에는, 가장 가까운 도메인(예: 근접 도메인)이 요청된 콘텐츠를 호스팅하는 장치들을 전혀 포함하지 않을 수 있다(S920). 예를 들어, "도메인 B”의 캐싱 장치들(330)이 클라이언트(350)에 가장 가까운 캐싱 장치들이지만, 요청된 콘텐츠는 현재 포함하고 있지 않을 수 있다. 다양한 실시예들에 따르면, 콘텐츠서버(310)는 클라이언트(350)에 가장 가까운 도메인을 식별하고, 식별된 도메인의 캐싱 장치로 해당 콘텐츠(즉, 요청된 콘텐츠) 또는 해당 콘텐츠의 제1 샤드를 푸시(push)한다(810)(S930). 다양한 실시예들에 따르면, 캐싱된 콘텐츠 테이블(예: 도 5b의 캐싱된 콘텐츠 테이블)은 새롭게 캐싱된 콘텐츠를 반영하도록 업데이트될 수 있다. 다양한 실시예들에 있어서, 콘텐츠서버(310)는 클라이언트 장치(350)가 캐싱 장치(330)에 액세스할 수 있도록, 식별된 캐싱 장치(330)에 그 장치의 호스팅된 콘텐츠 테이블에 대한 업데이트를 제공할 수 있고(예: 도 5d의 호스팅된 콘텐츠 테이블에 인가 엔트리를 추가), 클라이언트 장치(350)에 리다이렉트 메시지(예: 도 5c의 리다이렉트 메시지)를 전송할 수 있다(820)(S940).
예를 들어, 콘텐츠서버(310)는 클라이언트(350)의 IP 주소를 이용하여 클라이언트(350)의 위치를 식별한 뒤, 요청된 콘텐츠를 포함하고 있는 장치들 및 이들의 위치를 식별하기 위한 캐싱된 콘텐츠 테이블을 이용하여, 클라이언트(350)를 가장 가까운 캐싱 장치들(예: 근접 캐싱 장치)과 매칭시킬 수 있다. 다양한 실시예들에 따르면, 클라이언트(350)는 콘텐츠서버(310)로부터 리다이렉트 메시지를 수신하고, 리다이렉트 메시지에서 제공되는 정보를 이용하여 캐싱 장치(320)의 콘텐츠를 요청하며(830), 캐싱 장치(330)는 자신의 호스팅된 콘텐츠 테이블(예: 도 5d의 호스팅된 콘텐츠 테이블)을 확인함으로써 클라이언트(350)가 해당 콘텐츠에 액세스할 권한을 갖고 있는지를 확인한 후, 해당 콘텐츠를 제공한다(840)(S950).
다양한 실시예들에 따르면, 콘텐츠서버(310)는 클라이언트 장치(350)가 샤드들을 요청할 때, 캐싱 장치들(330)로 해당 샤드들을 전송할 수 있다(850)(S960). 예를 들어, 다양한 실시예들에 따른 요청된 콘텐츠는 비디오 파일을 포함할 수 있다. 비디오 파일은 복수 개의 샤드들로 분할될 수 있다. 복수 개의 샤드들은 균일한 크기 또는 균일하지 않은 크기를 가질 수 있다. 예를 들어, 제1 샤드는 소정의 비디오의 처음 3분을 포함할 수 있고, 이어지는 샤드들은 각각 소정의 비디오의 다음 10분을 포함할 수 있다. 다양한 실시예들에 따르면, 클라이언트가 비디오를 재생할 때, 캐싱 장치들(330)은 콘텐츠서버(310)에 추가 샤드들이 언제 필요한지(예: 클라이언트가 언제 현 샤드의 다운로드를 완료할 것인지)를 알릴 수 있고, 콘텐츠서버(310)는 사용하고 있는 캐싱 장치(들)(330)로 추가 샤드들을 푸시할 수 있다(850)(그리고 캐싱된 콘텐츠 테이블을 필요에 따라 업데이트할 수 있음). 다양한 실시예들에 따르면, 샤드들은 같은 도메인에 있는 다른 캐싱 장치들에 푸시될 수 있다. 이러한 경우에, 콘텐츠서버(310)는 필요에 따라서 리다이렉트 메시지들을 전송하여, 클라이언트 장치를 요청된 콘텐츠를 갖고 있는 캐싱 장치들로 적절히 지향시킬 수 있다. 추가적으로, 콘텐츠서버(310)는 캐싱 장치들의 호스팅된 콘텐츠 테이블들을 업데이트하여 캐싱 장치들이 저장하고 있는 콘텐츠에 클라이언트가 액세스할 수 있도록 할 수 있다.
따라서, 본 개시의 전술한 실시예들은 분산 캐싱 시스템을 위한 시스템 및 방법을 제공한다.
전술한 내용은 예시적인 실시예들을 설명하기 위한 것으로, 본 개시의 기술적 사상을 제한하는 것으로 해석되어서는 안 된다. 몇 가지 예시적인 실시예들이 설명되었으나, 본 개시의 기술분야에 속하는 통상의 기술자는 본 개시의 신규한 교시들 및 이점들로부터 크게 벗어나지 않고 해당 실시예들에 대해 가능한 수많은 변형예들이 존재할 수 있음을 쉽게 이해할 것이다. 따라서, 이러한 모든 변형예들은 청구범위에 정의된 본 개시의 기술적 사상의 범위 내에 포함된다. 청구범위에 있어서, 기능식 청구항들은 기재된 기능을 수행하는 것으로 본 명세서에서 설명된 구조들과, 이의 구조적 균등범위 및 균등한 구조들을 포함하는 것으로 의도된다. 따라서, 전술한 내용은 예시적인 실시예들을 설명하기 위한 것으로, 개시된 특정 실시예들로 한정되어서는 안 되며, 다른 예시적인 실시예들 뿐만 아니라 개시된 예시적인 실시예들의 변형예들도 청구범위 내에 포함되는 것으로 이해되어야 한다. 본 개시의 기술적 사상은 청구범위 및 이에 포함되는 균등범위에 의해 규정된다.
200: 분산 캐싱 시스템 210: 데이터센터
220: 콘텐츠서버 222: 멀티미디어 콘텐츠
224: 제1 비디오 226: 제2 비디오
230: 백본 에지 라우터 235: 로컬 에지 라우터
240, 245: 데이터센터 캐싱 네트워크-연결 스토리지 장치
250, 252, 254, 256: 로컬 캐싱 네트워크-연결 스토리지 장치
260: 제어서버

Claims (10)

  1. 적어도 하나의 네트워크-연결 스토리지 장치, 콘텐츠서버 및 제어서버를 포함하는 분산 캐싱 시스템에 있어서,
    상기 제어서버는,
    메모리; 및
    상기 메모리에 저장된 명령어들을 실행하는 프로세서를 포함하고,
    상기 명령어들은 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금,
    상기 적어도 하나의 네트워크-연결 스토리지 장치를 탐색하는 동작;
    장치위치를 포함하는 장치정보를 상기 적어도 하나의 네트워크-연결 스토리지 장치로부터 수집하는 동작;
    각 장치위치에 기초하는 장치 도메인에 상기 적어도 하나의 네트워크-연결 스토리지 장치 각각을 할당하는 동작; 및
    상기 적어도 하나의 네트워크-연결 스토리지 장치의 상기 장치정보를 상기 콘텐츠서버에 제공하는 동작을 수행하도록 하는, 분산 캐싱 시스템.
  2. 제1항에 있어서,
    상기 적어도 하나의 네트워크-연결 스토리지 장치는 이더넷 솔리드 스테이트 드라이브(Ethernet Solid State Drive: eSSD)를 포함하는, 분산 캐싱 시스템.
  3. 제1항에 있어서,
    상기 명령어들은 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금, 장치 테이블을 생성하는 동작을 더 수행하도록 하고,
    상기 장치 테이블은 상기 탐색된 적어도 하나의 네트워크-연결 스토리지 장치에 대한 엔트리를 포함하며,
    상기 엔트리는 캐시 장치 식별자, 상기 장치위치 및 상기 할당된 장치 도메인을 포함하는, 분산 캐싱 시스템.
  4. 제1항에 있어서,
    상기 콘텐츠서버는 상기 각 장치위치에 기초하여 상기 적어도 하나의 네트워크-연결 스토리지 장치 각각에 콘텐츠를 푸시하는, 분산 캐싱 시스템.
  5. 제4항에 있어서,
    상기 콘텐츠서버는 캐싱된 콘텐츠 테이블을 포함하고,
    상기 캐싱된 콘텐츠 테이블은 상기 적어도 하나의 네트워크-연결 스토리지 장치에 저장된 각 콘텐츠에 대한 콘텐츠 엔트리를 포함하며,
    상기 콘텐츠 엔트리는 캐시 장치 식별자 및 콘텐츠 식별자를 포함하는, 분산 캐싱 시스템.
  6. 제5항에 있어서,
    상기 적어도 하나의 네트워크-연결 스토리지 장치 각각은 호스팅된 콘텐츠 테이블을 포함하고,
    상기 호스팅된 콘텐츠 테이블은 상기 네트워크-연결 스토리지 장치에 저장된 각 콘텐츠에 대한 클라이언트 장치의 액세스 권한을 확인하기 위한 인가 엔트리를 포함하는, 분산 캐싱 시스템.
  7. 각각 적어도 하나의 콘텐츠와, 장치위치에 기초한 도메인을 포함하는 복수의 네트워크-연결 스토리지 장치들; 및
    콘텐츠서버를 포함하되,
    상기 콘텐츠서버는,
    메모리; 및
    상기 메모리에 저장된 명령어들을 실행하는 프로세서를 포함하고,
    상기 명령어들은 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금,
    요청된 콘텐츠에 액세스하기 위한 클라이언트의 액세스 권한을 확인하는 동작;
    상기 클라이언트의 위치를 식별하는 동작;
    상기 클라이언트의 위치를 최근접 도메인에 매칭하는 동작;
    상기 클라이언트에 대한 인가 엔트리를 포함하도록, 상기 최근접 도메인에 속하는 장치의 호스팅된 콘텐츠 테이블을 업데이트하는 동작; 및
    캐싱 장치 식별자를 포함하는 리다이렉트 메시지를 상기 클라이언트에게 전송하는 동작을 수행하도록 하는, 분산 캐싱 시스템.
  8. 제7항에 있어서,
    상기 복수의 네트워크-연결 스토리지 장치 각각은 이더넷 솔리드 스테이트 드라이브(Ethernet Solid State Drive: eSSD)를 포함하는, 분산 캐싱 시스템.
  9. 제7항에 있어서,
    상기 명령어들은 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금,
    상기 최근접 도메인 내에 상기 콘텐츠가 저장되어 있는지 확인하는 동작을 더 수행하도록 하는, 분산 캐싱 시스템.
  10. 제9항에 있어서,
    상기 명령어들은 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금,
    상기 요청된 콘텐츠의 제1 샤드를 상기 최근접 도메인의 네트워크-연결 스토리지 장치로 푸시하는 동작을 더 수행하도록 하는, 분산 캐싱 시스템.
KR1020180129636A 2017-12-22 2018-10-29 분산 캐싱 시스템 및 방법 KR102557994B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201762610036P 2017-12-22 2017-12-22
US201762609948P 2017-12-22 2017-12-22
US62/610,036 2017-12-22
US62/609,948 2017-12-22
US15/921,568 2018-03-14
US15/921,568 US10728332B2 (en) 2017-12-22 2018-03-14 System and method for distributed caching

Publications (2)

Publication Number Publication Date
KR20190076836A true KR20190076836A (ko) 2019-07-02
KR102557994B1 KR102557994B1 (ko) 2023-07-20

Family

ID=66950863

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180129636A KR102557994B1 (ko) 2017-12-22 2018-10-29 분산 캐싱 시스템 및 방법

Country Status (3)

Country Link
US (5) US10681137B2 (ko)
KR (1) KR102557994B1 (ko)
CN (1) CN110059022A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102265085B1 (ko) * 2020-12-04 2021-06-14 김근석 코드 분산 처리 서버, 코드 분산 처리 방법 및 기록 매체에 저장된 프로그램
WO2022119328A1 (ko) * 2020-12-04 2022-06-09 김근석 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3460597A1 (de) * 2017-09-21 2019-03-27 Siemens Aktiengesellschaft Erstellen einer konfiguration zur einrichtung einer konfigurationsspezifischen web-basierten applikation und generieren einer solchen konfigurationsspezifischen web-basierten applikation
US11038979B2 (en) * 2018-11-08 2021-06-15 Cisco Technology, Inc. Methods and apparatuses for content delivery over mobile networks with multi-access edge computing (MEC) control and user plane separation (CUPS)
US11019178B1 (en) * 2019-01-07 2021-05-25 West Corporation Deployment router based on channel traffic
US11281794B2 (en) * 2019-09-26 2022-03-22 Microsoft Technology Licensing, Llc Fine grained access control on procedural language for databases based on accessed resources

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130132544A1 (en) * 2011-11-23 2013-05-23 Telefonaktiebolaget L M Ericsson (Publ) Precise geolocation for content caching in evolved packet core networks
US20160285882A1 (en) * 2015-03-25 2016-09-29 International Business Machines Corporation Preview serving from an external preview service
US20160294971A1 (en) * 2015-03-30 2016-10-06 Huawei Technologies Co., Ltd. Distributed Content Discovery for In-Network Caching
WO2017124083A1 (en) * 2016-01-15 2017-07-20 Vid Scale, Inc. Scalable coding based video distribution

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5964835A (en) * 1992-12-17 1999-10-12 Tandem Computers Incorporated Storage access validation to data messages using partial storage address data indexed entries containing permissible address range validation for message source
JP4082858B2 (ja) * 2000-10-30 2008-04-30 富士通株式会社 ネットワークアクセス制御方法及びそれを用いたネットワークシステム及びそれを構成する装置
US20020161767A1 (en) 2001-04-30 2002-10-31 Shapiro Aaron M. System and method for updating content on a plurality of content server computers over a network
US6981032B2 (en) 2001-07-27 2005-12-27 International Business Machines Corporation Enhanced multicast-based web server
US7173929B1 (en) 2001-12-10 2007-02-06 Incipient, Inc. Fast path for performing data operations
US7007142B2 (en) * 2002-02-19 2006-02-28 Intel Corporation Network data storage-related operations
JP3923863B2 (ja) * 2002-07-09 2007-06-06 株式会社日立製作所 リクエストルータ装置
JPWO2004073269A1 (ja) * 2003-02-13 2006-06-01 富士通株式会社 伝送システム,配信経路制御装置,負荷情報収集装置および配信経路制御方法
WO2005086001A1 (en) 2004-02-27 2005-09-15 Incipient, Inc. Distributed asynchronous ordered replication
US8719501B2 (en) * 2009-09-08 2014-05-06 Fusion-Io Apparatus, system, and method for caching data on a solid-state storage device
US8677091B2 (en) * 2006-12-18 2014-03-18 Commvault Systems, Inc. Writing data and storage system specific metadata to network attached storage device
US7945643B2 (en) * 2007-04-30 2011-05-17 Hewlett-Packard Development Company, L.P. Rules for shared entities of a network-attached storage device
US10127295B2 (en) 2009-06-05 2018-11-13 Microsoft Technolofy Licensing, Llc Geographic co-location service for cloud computing
US8422641B2 (en) * 2009-06-15 2013-04-16 Calabrio, Inc. Distributed record server architecture for recording call sessions over a VoIP network
US9158769B2 (en) 2009-12-28 2015-10-13 Adam Dunstan Systems and methods for network content delivery
US20130198636A1 (en) 2010-09-01 2013-08-01 Pilot.Is Llc Dynamic Content Presentations
US8438185B2 (en) 2010-11-17 2013-05-07 Hitachi, Ltd. File storage apparatus and access control method
CN102244900B (zh) 2011-07-15 2014-01-22 上海华为技术有限公司 缓存数据热度值的同步方法、分布缓存方法、装置及系统
KR101402923B1 (ko) 2011-11-02 2014-06-30 주식회사 케이티 캐시 장치에 사전 배포하는 콘텐츠를 관리하는 서버 및 방법, 그리고 캐시 장치
US9529871B2 (en) * 2012-03-30 2016-12-27 Commvault Systems, Inc. Information management of mobile device data
GB2502337A (en) * 2012-05-25 2013-11-27 Ibm System providing storage as a service
US9772866B1 (en) 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
US9304828B2 (en) * 2012-09-27 2016-04-05 Hitachi, Ltd. Hierarchy memory management
US9128892B2 (en) 2012-12-10 2015-09-08 Netflix, Inc. Managing content on an ISP cache
US9069790B2 (en) 2013-03-14 2015-06-30 Stephen P. LORD Multi-threaded message passing journal
US10270748B2 (en) 2013-03-22 2019-04-23 Nok Nok Labs, Inc. Advanced authentication techniques and applications
US9088457B1 (en) 2013-04-25 2015-07-21 Amazon Technology, Inc. Transmission of an application download via an encoded image identifying the authorized recipient
US20150058441A1 (en) 2013-08-20 2015-02-26 Samsung Electronics Co., Ltd. Efficient content caching management method for wireless networks
KR20150123678A (ko) 2014-04-24 2015-11-04 숭실대학교산학협력단 분산 이동성 관리를 통한 cdn 서비스 시스템 및 제공방법
US9509718B1 (en) * 2014-07-17 2016-11-29 Sprint Communications Company L.P. Network-attached storage solution for application servers
JP2016046785A (ja) 2014-08-27 2016-04-04 株式会社日立製作所 キャッシュサーバ選択装置、分散キャッシュシステム、及びキャッシュサーバ選択方法
US10915347B1 (en) * 2014-09-30 2021-02-09 Acronis International Gmbh System and method for platform-independent migration and replication of computer systems
EP3026513B1 (de) 2014-11-28 2018-01-03 Siemens Aktiengesellschaft Redundantes Automatisierungssystem und Verfahren zum Betrieb
KR102450556B1 (ko) * 2015-04-17 2022-10-04 삼성전자주식회사 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US9996267B2 (en) * 2015-08-11 2018-06-12 International Business Machines Corporation Adjustment of volume synchronization
US10291654B2 (en) * 2015-09-30 2019-05-14 Symantec Corporation Automated construction of network whitelists using host-based security controls
US20170147158A1 (en) 2015-11-19 2017-05-25 Netapp, Inc. Methods and systems for managing gui components in a networked storage environment
JP2018022397A (ja) * 2016-08-04 2018-02-08 富士通株式会社 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
US10289309B2 (en) * 2016-09-12 2019-05-14 Toshiba Memory Corporation Automatic detection of multiple streams
US11003830B2 (en) 2016-09-26 2021-05-11 Adobe Inc. Providing location-based font recommendations
US11240306B2 (en) 2017-11-06 2022-02-01 Vast Data Ltd. Scalable storage system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130132544A1 (en) * 2011-11-23 2013-05-23 Telefonaktiebolaget L M Ericsson (Publ) Precise geolocation for content caching in evolved packet core networks
US20160285882A1 (en) * 2015-03-25 2016-09-29 International Business Machines Corporation Preview serving from an external preview service
US20160294971A1 (en) * 2015-03-30 2016-10-06 Huawei Technologies Co., Ltd. Distributed Content Discovery for In-Network Caching
WO2017124083A1 (en) * 2016-01-15 2017-07-20 Vid Scale, Inc. Scalable coding based video distribution

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102265085B1 (ko) * 2020-12-04 2021-06-14 김근석 코드 분산 처리 서버, 코드 분산 처리 방법 및 기록 매체에 저장된 프로그램
WO2022119328A1 (ko) * 2020-12-04 2022-06-09 김근석 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램

Also Published As

Publication number Publication date
CN110059022A (zh) 2019-07-26
US20200244736A1 (en) 2020-07-30
US20200322433A1 (en) 2020-10-08
US11283870B2 (en) 2022-03-22
US20190199817A1 (en) 2019-06-27
KR102557994B1 (ko) 2023-07-20
US20220217207A1 (en) 2022-07-07
US20190199796A1 (en) 2019-06-27
US10681137B2 (en) 2020-06-09
US10728332B2 (en) 2020-07-28
US11290535B2 (en) 2022-03-29

Similar Documents

Publication Publication Date Title
KR102557994B1 (ko) 분산 캐싱 시스템 및 방법
CN107690800B (zh) 管理动态ip地址分配
US20200177632A1 (en) Network function service discovery method and device
US10693863B2 (en) Methods and systems for single sign-on while protecting user privacy
CN113746887A (zh) 一种跨集群数据请求处理方法、设备及存储介质
JP5466723B2 (ja) ホスト提供システム及び通信制御方法
US11082505B2 (en) Dynamic discovery of available storage servers
US7453865B2 (en) Communication channels in a storage network
US10250677B1 (en) Decentralized network address control
US9009782B2 (en) Steering traffic among multiple network services using a centralized dispatcher
JP2016116184A (ja) 網監視装置および仮想ネットワーク管理方法
JP2013186654A (ja) ホスト提供システム及びホスト提供方法
US11108854B2 (en) Peer-to-peer network for internet of things resource allocation operation
KR101984846B1 (ko) 객체 이동성을 제공하는 통신 방법 및 장치
US11323355B1 (en) Partition abstraction in distributed computing systems
CN111736944A (zh) 基于Kubernetes的Docker容器定位方法及装置
CN112910796B (zh) 流量管理方法、装置、设备、存储介质以及程序产品
US10148766B2 (en) Methods, systems, and computer readable media for subscriber binding repository reconfiguration
US8881242B2 (en) Information communication system, information communication method, node apparatus and recording medium
CN116886523A (zh) 一种应用于容器编排系统k8s的服务处理方法、系统及装置

Legal Events

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