KR20100047652A - Method for storing data using content server and cache server, content server and content delivery system thereof - Google Patents

Method for storing data using content server and cache server, content server and content delivery system thereof Download PDF

Info

Publication number
KR20100047652A
KR20100047652A KR1020080106636A KR20080106636A KR20100047652A KR 20100047652 A KR20100047652 A KR 20100047652A KR 1020080106636 A KR1020080106636 A KR 1020080106636A KR 20080106636 A KR20080106636 A KR 20080106636A KR 20100047652 A KR20100047652 A KR 20100047652A
Authority
KR
South Korea
Prior art keywords
data
server
content
priority
cache server
Prior art date
Application number
KR1020080106636A
Other languages
Korean (ko)
Other versions
KR101150725B1 (en
Inventor
장현민
Original Assignee
에스케이텔레콤 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Priority to KR1020080106636A priority Critical patent/KR101150725B1/en
Publication of KR20100047652A publication Critical patent/KR20100047652A/en
Application granted granted Critical
Publication of KR101150725B1 publication Critical patent/KR101150725B1/en

Links

Images

Classifications

    • 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/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/464Multimedia object, e.g. image, video

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Strategic Management (AREA)
  • Primary Health Care (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

PURPOSE: A data storing method using a contents server and a cache server, a contents server and a system for providing contents are provided to enhance storage efficiency of the cache server by storing selectively contents frequently requested from a client in the cache server. CONSTITUTION: A contents server calculates each value of data(S420). The contents server decides priority of data transmission(S430). The contents server sorts the data according to the priority (S440). The contents server calculates the sum of data size(S450). The contents server selects data to store(S460). The contents server excludes duplicated data(S470). The contents server transmits the data which is not duplicated to the cache server(S480).

Description

컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법, 그 컨텐츠서버 및 컨텐츠 제공시스템{Method for storing data using content server and cache server, content server and content delivery system thereof}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a content server and a cache server,

본 발명은 컨텐츠서버 및 캐시서버를 이용한 데이터의 저장방법, 그 컨텐츠서버 및 컨텐츠 제공시스템에 관한 것으로, 특히 컨텐츠서버에서 복수 데이터의 히트 수, 스테일 타임 및 데이터 사이즈를 고려하여 우선순위를 결정하고 이에 따라 각 데이터 캐시서버로 전송하여 저장하도록 하는 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법, 그 컨텐츠서버 및 컨텐츠 제공시스템에 관한 것이다.The present invention relates to a method of storing data using a content server and a cache server, and more particularly, to a content server and a content providing system, in which a content server determines priorities in consideration of the number of hits, To a data server and a content providing system using the cache server.

일반적으로 컨텐츠 제공자(CP: Content Provider)의 웹 서버가 클라이언트에 제공할 컨텐츠(예컨대, 동영상, 음악, 파일 등)의 수는 매우 많다. 웹 서버가 이들의 일부 또는 전부를 다수의 클라이언트들 각각에게 일대일로 제공하기에는 많은 부하가 발생한다. 왜냐하면, 웹 서버는 단일의 ISP(Internet Service Provider)에 연결되어 있는데 반하여 컨텐츠를 요구하는 클라이언트는 다수의 ISP에 존재하기 때문이다.In general, the number of contents (for example, video, music, file, etc.) to be provided to a client by a web server of a content provider (CP) is very large. A great deal of load arises for the web server to provide some or all of these to a plurality of clients on a one-to-one basis. This is because the web server is connected to a single ISP (Internet Service Provider) while the client requesting the content exists in multiple ISPs.

따라서 ISP들 간의 트래픽은 컨텐츠 제공자와 클라이언트가 늘어남에 따라 기하급수적으로 증가하게 되고, 트래픽 혼잡으로 인한 전송지연 및/또는 전송실패율이 높아진다. 최악의 경우에는 웹 서버의 기능장애(fail-over)가 발생하기도 한다.Therefore, the traffic between ISPs increases exponentially as the number of content providers and clients increases, and transmission delay and / or transmission failure rate increases due to traffic congestion. In the worst case, the web server may fail-over.

이러한 문제점을 극복하기 위해 도입된 것이 CDN(Content Delivery Network)이다. CDN이란 클라이언트들로부터 멀리 떨어져 있는 컨텐츠 제공자의 웹 서버에 집중되어 있는 컨텐츠, 예를 들어 그림, 배너, 비디오 또는 오디오와 같이 용량이 크거나 클라이언트들의 요구가 빈번한 컨텐츠를 다수의 ISP 상호 접속점(PoP: Point of Presence)에 광역적으로 분산 배치된 호스트 서버에 미리 저장해 놓고, 클라이언트의 요구가 있을 경우 해당 이용자와 가장 근접한 호스트 서버의 경로를 반환함으로써 클라이언트가 그 반환된 경로를 통해 호스트 서버에 접속한 후 컨텐츠를 제공받을 수 있도록 한 서비스이다. 여기서 호스트 서버는 캐시서버, 복제서버 또는 고스트서버(이하, 캐시서버로 칭함)로 다양하게 일컬어진다.To overcome this problem, CDN (Content Delivery Network) is introduced. A CDN is a content that is concentrated in a content provider's web server remote from the clients, for example, a picture, a banner, a video or an audio, Point of Presence), and when the client requests a return, the path of the host server closest to the user is returned so that the client accesses the host server through the returned path It is a service that enables contents to be provided. Here, the host server is variously referred to as a cache server, a replication server, or a ghost server (hereinafter referred to as a cache server).

캐시서버는 다수의 컨텐츠 서버로부터 수신한 다양한 컨텐츠 들을 저장하는데, 그 저장공간의 한계로 인하여 컨텐츠 서버가 보유한 컨텐츠 중 일부만이 저장될 수 있다. 캐시서버에 저장되는 컨텐츠의 선택에 있어, 종래에는, 클라이언트가 요청하는 컨텐츠가 캐시서버에 저장되어 있는지 확인한 후, 없는 경우 컨텐츠 서버로 요청하여 클라이언트로 전송함과 동시에 캐시서버에 저장하는 방식을 사용해 왔다.The cache server stores various contents received from a plurality of contents servers. Due to the limitation of the storage space, only a part of contents held by the contents server can be stored. Conventionally, in the case of selecting contents to be stored in the cache server, after checking whether the contents requested by the client are stored in the cache server, if there is no contents, the contents are transmitted to the client and stored in the cache server come.

이러한 종래의 기술은 캐시서버의 한정된 저장소에서 어떠한 데이터를 삭제하고 저장할 것인지, 그리고 실제로 클라이언트가 요청하는 컨텐츠가 캐시서버에 저장될 가치가 있을 정도로 인기가 있는(popular) 컨텐츠인지에 대해 고려함이 없이 저장함으로써, 캐시서버의 저장 효율을 떨어뜨린다는 문제가 있었다.Such prior art techniques may be used to store and retrieve data without considering what data is to be deleted and stored in the limited repository of the cache server and whether the content actually requested by the client is content that is popular enough to be stored on the cache server. There is a problem that the storage efficiency of the cache server is lowered.

본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로서, 컨텐츠서버가 데이터의 히트 수, 스테일 타임 및 데이터 사이즈를 고려하여 캐시서버에 저장되는 컨텐츠를 선택하고 캐시서버로 전송하여 저장하도록 함으로써 캐시서버의 저장효율을 높이고 전체 응답지연(latency)을 줄일 수 있는 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법, 그 컨텐츠서버 및 컨텐츠 제공시스템을 제공하는데 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been proposed in order to solve the above-mentioned problems of the prior art, and it is an object of the present invention to provide a content server in which a content stored in a cache server is selected, A content server and a content providing system using the content server and the cache server, which can increase the storage efficiency of the server and reduce the overall response latency.

상기와 같은 목적을 달성하기 위한 본 발명의 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법은, 컨텐츠서버가 특정기간 동안 복수 데이터의 히트 수, 스테일 타임 및 상기 데이터의 사이즈를 포함하는 정보를 수집하는 수집단계, 상기 컨텐츠서버가 상기 수집된 정보를 이용하여 히트 수, 스테일 타임의 역수 및 데이터 사이즈의 역수 축에 대응되는 상기 데이터의 값들을 계산하여 우선순위를 결정하는 결정단계, 및 상기 컨텐츠서버가 상기 결정한 우선순위를 참조하여 캐시서버로 상기 데이터 중 하나 이상의 데이터를 전송하고 저장하도록 하는 저장단계를 포함한다.According to another aspect of the present invention, there is provided a method of storing data using a content server and a cache server, the method comprising the steps of: collecting information including a hit count, a stall time, Determining, by the content server, the values of the data corresponding to inverse axes of the number of hits, the inverse of the stale times, and the data size using the collected information, and determining a priority; And storing and transmitting one or more of the data to the cache server with reference to the determined priority.

본 발명의 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법에 있어서, 상기 수집단계는, 상기 컨텐츠서버에 저장된 데이터 및 상기 캐시서버를 포함한 하나 이상의 캐시서버에 저장된 데이터에 대한 정보를 수집하는 것을 특징으로 한다.In the data storage method using the content server and the cache server according to the present invention, the collecting step collects information on data stored in the content server and data stored in one or more cache servers including the cache server .

본 발명의 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법에 있어서, 상기 수집단계는, 상기 컨텐츠서버가 상기 하나 이상의 캐시서버로부터 해당 캐시서버에 저장된 데이터에 대한 정보를 수신하여 상기 정보를 수집하는 것을 특징으로 한다.In the data storage method using the content server and the cache server according to the present invention, the content server collects the information by receiving information on data stored in the corresponding cache server from the one or more cache servers .

본 발명의 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법에 있어서, 상기 결정단계에서 상기 히트 수, 스테일 타임의 역수 및 데이터 사이즈의 역수 축에 대응되는 상기 데이터 값들 중 하나 이상의 값은, 로그값인 것을 특징으로 한다.In the data storing method using the content server and the cache server according to the present invention, in the determining step, one or more of the data values corresponding to the inverse number axis of the hit number, .

본 발명의 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법에 있어서, 상기 결정단계는, 상기 계산한 값들을 이용하여 상기 데이터 각각의 벡터값을 계산하고 해당 벡터값의 절대값을 다른 데이터의 절대값과 비교하여 우선순위를 결정하는 것을 특징으로 한다.In the data storing method using the content server and the cache server according to the present invention, the determining step may include calculating the vector value of each of the data using the calculated values, and comparing the absolute value of the corresponding vector value with the absolute value of the other data And the priority is determined by comparison.

본 발명의 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법에 있어서, 상기 결정단계는, 상기 계산한 데이터의 값들 중 하나 이상의 값에 가중치 값을 곱하여 우선순위를 결정하는 것을 특징으로 한다.In the method of storing data using a content server and a cache server according to the present invention, the determining step determines a priority by multiplying one or more values of the calculated data by a weight value.

본 발명의 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법에 있어서, 상기 저장단계는, 상기 결정한 우선순위가 큰 데이터부터 순차적으로 전송하고 저장하도록 하는 것을 특징으로 한다.In the data storage method using the content server and the cache server according to the present invention, the storing step sequentially transmits and stores the data having the determined priority order.

본 발명의 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법에 있어서, 상기 저장단계는, 상기 결정한 우선순위가 큰 데이터부터 순차적으로 해당 데이터의 사이즈를 합하여 그 합이 상기 캐시서버의 저장 용량 이하가 되는 데이터까지 전송 하고 저장하도록 하는 것을 특징으로 한다.In the data storing method using the content server and the cache server according to the present invention, the storing step may include storing data in which the sum of sizes of corresponding data is sequentially larger than the decided priority data, And then stores the data.

본 발명의 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법에 있어서, 상기 저장단계는, 상기 전송하는 데이터와 상기 캐시서버에 기저장된 데이터를 비교하여, 중복되는 데이터를 제외한 나머지 데이터를 전송하고 저장하도록 하는 것을 특징으로 한다.In the data storing method using the content server and the cache server according to the present invention, the storing step may include comparing the data to be transmitted with the data stored in the cache server, and transmitting and storing the remaining data excluding the duplicated data .

본 발명의 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법에 있어서, 상기 저장단계는, 상기 컨텐츠서버에서 선택한 하나 이상의 다른 데이터를 더 포함하여 상기 캐시서버로 전송하는 것을 특징으로 한다.In the method of storing data using the content server and the cache server according to the present invention, the storing step may further include one or more other data selected by the content server, and then transmitted to the cache server.

상기와 같은 목적을 달성하기 위한 본 발명의 컨텐츠서버는, 데이터 송수신을 위한 입출력부, 컨텐츠를 저장하는 데이터베이스, 및 특정기간 동안 복수 데이터의 히트 수, 스테일 타임 및 상기 데이터의 사이즈를 포함한 정보를 수집하고, 상기 수집된 정보를 이용하여 상기 히트 수, 스테일 타임의 역수 및 데이터 사이즈의 역수 축에 대응되는 각각의 데이터의 값을 계산하여 각 데이터의 우선순위를 결정하며, 상기 결정한 우선순위를 참조하여 상기 데이터베이스에 저장된 상기 컨텐츠 데이터 중 하나 이상의 컨텐츠 데이터를 캐시서버로 전송하는 제어모듈을 포함한다.According to another aspect of the present invention, there is provided a content server including an input / output unit for transmitting and receiving data, a database for storing contents, and information including a hit count, a stall time, Calculates the value of each piece of data corresponding to the inverse number axis of the hit number, the inverse number of the stall time and the data size using the collected information, determines the priority of each data, and refers to the determined priority And a control module for transmitting at least one content data among the content data stored in the database to a cache server.

본 발명의 컨텐츠서버에 있어서, 상기 제어모듈은, 상기 컨텐츠서버에 저장된 데이터 및 하나 이상의 캐시서버에 저장된 데이터에 대한 정보를 수집하는 것을 특징으로 한다.In the content server of the present invention, the control module collects data stored in the content server and data stored in one or more cache servers.

본 발명의 컨텐츠서버에 있어서, 상기 제어모듈은, 상기 계산한 값들을 이용하여 상기 데이터 각각의 벡터값을 계산하고 해당 벡터값의 절대값을 다른 데이터의 절대값과 비교하여 우선순위를 결정하는 것을 특징으로 한다.In the content server of the present invention, the control module calculates a vector value of each of the data using the calculated values, and compares an absolute value of the corresponding vector with an absolute value of the other data to determine a priority .

상기와 같은 목적을 달성하기 위한 본 발명의 컨텐츠 제공시스템은, 특정기간 동안 복수의 컨텐츠 데이터에 대한 히트 수, 스테일 타임 및 상기 컨텐츠 데이터의 사이즈를 포함한 정보를 수집하고, 상기 수집한 정보를 이용하여 히트 수, 스테일 타임의 역수 및 데이터 사이즈의 역수 축에 대응되는 각각의 데이터의 값들을 계산하여 우선순위를 결정하며, 상기 결정한 우선순위에 따라 상기 복수의 컨텐츠 데이터 중 하나 이상의 컨텐츠 데이터를 전송하는 컨텐츠서버, 및 상기 컨텐츠서버가 전송한 데이터를 수신하여 저장하고 클라이언트로부터의 요청에 응답하여 상기 컨텐츠 데이터를 전송하는 캐시서버를 포함한다.According to an aspect of the present invention, there is provided a content providing system for collecting information including a hit count, a stall time, and a size of the content data for a plurality of content data for a specific period of time, Wherein the control unit determines a priority by calculating values of respective data corresponding to the number of hits, the inverse of the stall time, and the reciprocal axis of the data size, and transmits one or more contents data among the plurality of contents data according to the determined priority And a cache server for receiving and storing the data transmitted by the content server and transmitting the content data in response to a request from the client.

본 발명의 컨텐츠 제공시스템에 있어서, 상기 컨텐츠서버는, 상기 컨텐츠서버에서 선택한 하나 이상의 다른 데이터를 더 포함하여 전송하는 것을 특징으로 한다.In the content providing system of the present invention, the content server further includes one or more other data selected by the content server.

본 발명에 의하면, 클라이언트로부터 빈번히 요청되는 컨텐츠를 선별적으로 캐시서버에 저장할 수 있어 캐시서버의 저장 효율을 높일 수 있게 되고, 이로 인해 클라이언트의 컨텐츠 요청에 따른 응답지연을 줄일 수 있게 된다.According to the present invention, content frequently requested by a client can be selectively stored in a cache server, thereby increasing the storage efficiency of the cache server, thereby reducing a response delay in response to a content request from the client.

이하 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the detailed description of known functions and configurations incorporated herein will be omitted when it may unnecessarily obscure the subject matter of the present invention. The same reference numerals are used for portions having similar functions and functions throughout the drawings.

도 1은 본 발명의 일 실시예에 따른 컨텐츠 제공시스템의 구성도이다. 도 1을 참조하면, 본 실시예에 따른 컨텐츠 제공시스템은 네트워크(network)를 통해 데이터 송수신이 가능한 캐시서버(100), 컨텐츠서버(200) 및 클라이언트(300)를 포함하여 구성된다.1 is a configuration diagram of a content providing system according to an embodiment of the present invention. Referring to FIG. 1, a content providing system according to an embodiment of the present invention includes a cache server 100, a content server 200, and a client 300 capable of transmitting and receiving data through a network.

클라이언트(300)는 네트워크로 연결된 서버로부터 정보를 제공받는 컴퓨터 등을 의미한다. 클라이언트(300)는 브라우저에 특정 컨텐츠를 요청(request)하는 URL(Uniform Resource Locater) 등이 입력되면, DNS(Domain Name Server) 등의 네임서버에 액세스(access)하여 도메인명을 해당 컨텐츠를 제공하는 컨텐츠서버(200) 또는 캐시서버(100)의 IP 주소로 변환하고 해당 IP 주소에 대응되는 서버로 접속하는 역할을 한다.The client 300 refers to a computer or the like that receives information from a network-connected server. The client 300 accesses a name server such as a DNS (Domain Name Server) or the like to input a domain name to a content providing server (not shown) if a URL (Uniform Resource Locator) To the IP address of the content server 200 or the cache server 100, and connects to the server corresponding to the corresponding IP address.

컨텐츠서버(200)는 컨텐츠 제공자가 제공하는 웹페이지 및 객체(object) 등을 저장하고 있다가 클라이언트(300)로부터의 컨텐츠 요청이 있을 경우 응답하는 역할을 하는 서버이다. 즉, 컨텐츠서버(200)는 클라이언트(300)로부터 요청된 컨텐 츠를 전송하는 역할을 하며, 컨텐츠서버(200)가 보유한 컨텐츠 중 일부를 캐시서버(100)로 전송하여 저장하도록 한다. 이를 통해, 캐시서버(100)에서 클라이언트(300)의 요청에 따른 컨텐츠를 신속하게 제공하는 것이 가능하게 된다.The content server 200 is a server that stores web pages and objects provided by a content provider, and replies when a content request from the client 300 is received. That is, the content server 200 transmits the requested content from the client 300, and transmits a part of the content held by the content server 200 to the cache server 100 for storage. Accordingly, the cache server 100 can quickly provide the contents according to the request of the client 300.

캐시서버(cache server)(100)는 예를 들어, 복제서버(replication server) 또는 고스트서버(ghost server) 등으로 불리며, 컨텐츠서버(200)가 저장 및 관리하는 컨텐츠 데이터의 복사본을 저장하여 클라이언트(300)로부터의 컨텐츠 요청이 있을 경우 신속하게 제공하는 역할을 한다.The cache server 100 stores a copy of content data stored and managed by the content server 200, for example, a replication server or a ghost server, 300 in case of a request for content.

본 발명에서 컨텐츠서버(200)는 특정기간 동안 복수 데이터의 히트 수, 스테일 타임 및 상기 데이터의 사이즈 정보를 수집하는 기능을 한다. 데이터의 히트(hit) 수는 해당 컨텐츠에 대한 요청 횟수 또는 요청에 대한 응답 횟수 등을 의미한다. 스테일 타임(stale time)은 해당 컨텐츠가 마지막으로 요청된 시간부터 현재까지의 시간을 의미한다. 데이터의 사이즈는 바이트(byte) 단위 등으로 표현한 각 컨텐츠 데이터의 크기를 의미한다.In the present invention, the content server 200 collects the number of hits, the stall time, and the size of the data for a specific period. The number of hits of data means the number of requests for the content or the number of responses to the request. Stale time means the time from the time the content was last requested to the present time. The size of the data means the size of each content data expressed in units of bytes.

컨텐츠서버(200)는 캐시서버(100)에 기저장된 컨텐츠 데이터뿐만 아니라, 캐시서버(100)에는 저장되어 있지 않으나 컨텐츠서버(200)에서 제공하는 컨텐츠 데이터에 대한 정보를 수집한다. 컨텐츠서버(200)가 캐시서버(100)에 저장된 컨텐츠 데이터에 대한 히트 수, 스테일 타임 및 데이터 사이즈 정보를 수집하는 경우에는, 캐시서버(100)에서 해당 정보들을 수집하고 컨텐츠서버(200)가 수신하는 방식으로 정보의 수집이 이루어질 수 있다.The content server 200 collects not only the content data stored in the cache server 100 but also the content data that is not stored in the cache server 100 but is provided by the content server 200. When the content server 200 collects the hit count, stale time, and data size information for the content data stored in the cache server 100, the cache server 100 collects relevant information, and the content server 200 receives The information can be collected in such a way that the information can be collected.

컨텐츠서버(200)는 복수 데이터의 히트 수, 스테일 타임 및 데이터 사이즈 정보를 수집하면, 수집한 정보를 이용하여 히트 수, 스테일 타임의 역수 및 데이터 사이즈의 역수 축에 대응되는 데이터의 값들을 계산한다. 이는, 히트 수가 높을수록 또는 스테일 타임이 작을수록 클라이언트(300)로부터의 요청이 빈번한 컨텐츠이고, 캐시서버(100)에 저장하여 응답 지연시간을 줄일 필요가 있기 때문이다. 또한, 캐시서버(100)의 저장공간은 한정되어 있으므로, 데이터 사이즈가 상대적으로 작은 컨텐츠에 우선순위를 두어 캐시서버(100)에 저장할 수 있도록 데이터 사이즈의 역수 값을 계산한다. When the content server 200 acquires the hit count, the stall time, and the data size information of a plurality of data, the content server 200 calculates data values corresponding to the inverse number of the hits, the inverse of the stall times, and the inverse of the data size using the collected information . This is because the higher the number of hits or the smaller the stall time is, the more frequently the content is requested from the client 300, and it is necessary to store the content in the cache server 100 to reduce the response delay time. Since the cache space of the cache server 100 is limited, a reciprocal value of the data size is calculated so that the cache server 100 can store the content having a relatively small data size in a priority order.

특정 실시예에서, 계산에 이용하는 히트 수, 스테일 타임 및 데이터 사이즈 등의 정보는 계산에 용이하도록, 예를 들어, 로그 척도(log scale)로 계산된 로그값일 수 있을 것이다. 또 다른 실시예에서, 히트 수, 스테일 타임의 역수 및 데이터 사이즈의 역수 축에 대응되는 값들 각각에 가중치 값을 곱하여 우선순위를 계산하는 데 이용할 수도 있다.In a particular embodiment, information such as the number of hits, stall times, and data sizes used in the calculation may be log values computed, for example, on a log scale, to facilitate calculation. In yet another embodiment, each of the values corresponding to the inverse number axis of the number of hits, the inverse of the stale time, and the inverse of the data size may be used to calculate the priority by multiplying the weight value.

본 발명의 일 실시예에서, 컨텐츠서버(200)는 계산한 히트 수, 스테일 타임의 역수 및 데이터 사이즈의 역수 값을 이용하여 각 컨텐츠 데이터의 벡터값을 계산한다. 예를 들어, 이때 계산되는 히트 수의 벡터값은 (히트 수 값, 0, 0), 스테일 타임 역수의 벡터값은 (0, 스테일 타임의 역수값, 0), 데이터 사이즈 역수의 벡터값은 (0, 0, 데이터 사이즈의 역수값)과 같이 표현될 수 있다. 이때, 히트 수, 스테일 타임의 역수 및 데이터 사이즈의 역수로 표현되는 데이터의 벡터값은 (히트 수 값, 스테일 타임의 역수값, 데이터 사이즈의 역수값)과 같다.In an embodiment of the present invention, the content server 200 calculates the vector value of each piece of content data using the calculated number of hits, the inverse of the stale time, and the reciprocal of the data size. For example, the vector value of the number of hits to be calculated at this time (the number of hits, 0, 0), the vector value of the stale time reciprocal (0, the reciprocal value of the stale time, 0) 0, 0, the reciprocal of the data size). At this time, the vector value of the data expressed by the number of hits, the inverse of the stall time, and the reciprocal of the data size is equal to (the number of hits, the inverse of the stall time, and the reciprocal of the data size).

그리고 계산한 벡터값의 절대값을 다른 데이터의 절대값과 비교하여 우선순 위를 계산한다. 예를 들어, 각 데이터 벡터값의 절대값을 계산하는 식은 아래의 수학식 1과 같을 수 있을 것이다.Then, the absolute value of the calculated vector value is compared with the absolute value of the other data to calculate the priority value. For example, the equation for calculating the absolute value of each data vector value may be as shown in Equation 1 below.

Figure 112008075264826-PAT00001
벡터값의 절대값 =
Figure 112008075264826-PAT00001
Absolute value of vector value =

* 'A' 는 히트 수의 벡터값* 'A' is the vector value of the number of hits

* 'B' 는 스테일 타임의 역수의 벡터값* 'B' is the vector value of the reciprocal of the stall time

* 'C' 는 데이터 사이즈의 역수의 벡터값* 'C' is the vector value of the reciprocal of the data size

데이터들의 절대값을 비교하여 우선순위를 결정하는 경우, 벡터 각각의 히트 수, 스테일 타임의 역수 및 데이터 사이즈의 역수 값에 가중치 값을 곱하여 우선순위를 결정할 수도 있다. 가중치 값은 세 개의 축에 대응되는 값의 크기 차이가 큰 경우 또는 우선순위 결정에 미치는 중요도에 있어 상대적인 차이가 있는 경우 등에 있어 이를 보정해 주기 위한 인자 값이다. 가중치 값을 주어 각 데이터 벡터값의 절대값을 구하는 식은, 예를 들어, 아래의 수학식 2 또는 수학식 3과 같을 수 있다.In order to determine the priority by comparing the absolute values of the data, the priorities may be determined by multiplying the number of hits of each vector, the inverse of the stale time, and the reciprocal of the data size by the weight value. The weight value is a factor for correcting the difference in the magnitude of the value corresponding to the three axes or in a case where there is a relative difference in the importance of prioritization. The equation for obtaining the absolute value of each data vector value given a weight value may be, for example, the following equation (2) or (3).

Figure 112008075264826-PAT00002
벡터값의 절대값 =
Figure 112008075264826-PAT00002
Absolute value of vector value =

* 'A' 는 히트 수의 벡터값* 'A' is the vector value of the number of hits

* 'B' 는 스테일 타임의 역수의 벡터값* 'B' is the vector value of the reciprocal of the stall time

* 'C' 는 데이터 사이즈의 역수의 벡터값* 'C' is the vector value of the reciprocal of the data size

* 'l' 는 히트 수의 가중치 값* 'l' is the weight value of the number of hits

* 'm' 는 스테일 타임의 역수의 가중치 값* 'm' is the weight value of reciprocal of stale time

* 'n' 는 데이터 사이즈의 역수의 가중치 값* 'n' is the reciprocal weight value of the data size

Figure 112008075264826-PAT00003
벡터값의 절대값 =
Figure 112008075264826-PAT00003
Absolute value of vector value =

* 'A' 는 히트 수의 벡터값* 'A' is the vector value of the number of hits

* 'B' 는 스테일 타임의 역수의 벡터값* 'B' is the vector value of the reciprocal of the stall time

* 'C' 는 데이터 사이즈의 역수의 벡터값* 'C' is the vector value of the reciprocal of the data size

* 'l' 는 히트 수의 가중치 값* 'l' is the weight value of the number of hits

* 'm' 는 스테일 타임의 역수의 가중치 값* 'm' is the weight value of reciprocal of stale time

* 'n' 는 데이터 사이즈의 역수의 가중치 값* 'n' is the reciprocal weight value of the data size

컨텐츠서버(200)는 각 컨텐츠 데이터 벡터값의 절대값을 구하면 그 값을 서로 비교하여 우선순위가 큰 데이터부터 순차적으로 캐시서버(100)로 전송하고 저장하도록 한다. 이때, 컨텐츠서버(200)는 우선순위가 큰 데이터부터 순차적으로 해당 데이터의 사이즈를 합하여 그 합이 캐시서버(100) 내 저장공간의 저장 용량 이하가 되는 데이터까지 캐시서버(100)로 전송하여 저장하도록 할 수 있다. 해당 저장 용량은, 예를 들어, 특정 컨텐츠 제공자에 대해 할당된 저장공간의 용량일 수도 있고, 특정 데이터 종류를 저장하기 위한 저장공간의 용량일 수도 있다. When the absolute value of each content data vector value is obtained, the content server 200 compares the absolute value of each content data vector value with each other and transmits the data to the cache server 100 sequentially from the highest priority data. At this time, the contents server 200 adds the size of the data sequentially from the data having the highest priority to the data of which the sum is less than the storage capacity of the storage space in the cache server 100, and transmits the data to the cache server 100 . The storage capacity may be, for example, the capacity of storage space allocated for a specific content provider, or the capacity of storage space for storing a specific data type.

이때, 데이터 사이즈의 합의 캐시서버(100) 내 저장 용량 이내인 데이터 중, 기존에 캐시서버(100)에 저장되어 있는 컨텐츠와 중복되는 컨텐츠의 데이터가 있다면, 컨텐츠서버(200)는 해당 중복 컨텐츠를 제외한 나머지 컨텐츠의 데이터만을 캐시서버(100)로 전송하여 저장하도록 할 수 있다.At this time, if there is data of content which is the sum of the data sizes and which is within the storage capacity of the cache server 100 and which is duplicated with the content stored in the cache server 100, the content server 200 stores the duplicated content Only the data of the remaining content can be transmitted to the cache server 100 and stored.

반면, 컨텐츠서버(200)는 우선순위를 참조하여 캐시서버(100)로 데이터를 전송하는 경우, 우선순위에 관계없이 특정 데이터를 더 포함하여 전송하고 저장하도록 할 수 있다. 예를 들어, 새로운 컨텐츠가 생성되었고, 클라이언트(300)로부터의 요청이 예상된다고 판단되는 경우 우선순위와 관계없이 캐시서버(100)로 전송하여 저장하도록 할 수 있는 것이다.On the other hand, when the content server 200 transmits data to the cache server 100 with reference to the priority, the content server 200 may transmit and store specific data, regardless of the priority. For example, when new content is generated and it is determined that a request from the client 300 is expected, the new content can be transmitted to the cache server 100 and stored regardless of the priorities.

본 발명의 일 실시예에 따른 컨텐츠서버(200)의 구성에 대해서는 도 2를 참조하여 좀 더 상세히 설명하기로 한다.The configuration of the content server 200 according to an embodiment of the present invention will be described in more detail with reference to FIG.

도 2는 본 발명의 일 실시예에 따른 컨텐츠서버(200)의 구성도이다. 도 2를 참조하면 컨텐츠서버(200)는 입출력부(210), 제어모듈(220) 및 데이터베이스(230)를 포함하여 구성된다.2 is a configuration diagram of a content server 200 according to an embodiment of the present invention. 2, the content server 200 includes an input / output unit 210, a control module 220, and a database 230.

입출력부(210)는 데이터 송수신을 위한 인터페이스를 갖는다.The input / output unit 210 has an interface for data transmission / reception.

데이터베이스(230)는 컨텐츠 데이터의 저장소이다.The database 230 is a repository of content data.

제어모듈(220)은 입출력부(210)를 통해 송수신되는 데이터 및 데이터베이스(230)에 저장되는 데이터를 제어하는 모듈이다. 본 발명의 제어모듈(220)은 특정기간 동안 데이터베이스(230) 또는 캐시서버(100)를 포함한 하나 이상의 캐시서버에 저장된 복수 데이터의 히트 수, 스테일 타임 및 데이터 사이즈 정보를 수집한다. 캐시서버(100)를 포함한 하나 이상의 캐시서버에 저장된 데이터에 대한 정보의 수집은 네트워크 및 입출력부(210)를 통하여 각각의 캐시서버로부터 해당 정보를 수신하는 방식으로 이루어질 수 있다.The control module 220 is a module for controlling data transmitted and received through the input / output unit 210 and data stored in the database 230. The control module 220 of the present invention collects the hit count, stall time, and data size information of a plurality of data stored in one or more cache servers including the database 230 or the cache server 100 for a specific period of time. The collection of the information about the data stored in the one or more cache servers including the cache server 100 may be performed by receiving the corresponding information from the respective cache servers through the network and the input / output unit 210. [

그리고 제어모듈(220)은 수집한 정보를 이용하여 히트 수, 스테일 타임의 역수 및 데이터 사이즈의 역수 축에 대응되는 각각의 값을 계산하여 각 데이터의 우선순위를 결정한다. 이때, 제어모듈(220)은 계산한 값들을 이용하여 대응되는 데이터의 벡터값을 계산하고 해당 벡터값의 절대값을 다른 데이터의 절대값과 비교하여 우선순위를 결정할 수 있다.Then, the control module 220 calculates the respective numbers corresponding to the reciprocal axes of the number of hits, the inverse of the stall times, and the data size using the collected information to determine the priority of each data. At this time, the control module 220 may calculate the vector value of the corresponding data using the calculated values, and determine the priority by comparing the absolute value of the corresponding vector value with the absolute value of the other data.

컨텐츠서버(200)의 제어모듈(220)이 수집한 정보들을 이용하여 우선순위를 결정하는 과정에 대해서는 도 3을 참조하여 좀 더 상세하게 설명하기로 한다.The process of determining the priority using the information collected by the control module 220 of the content server 200 will be described in more detail with reference to FIG.

도 3은 본 발명의 일 실시예에 따른 우선순위 결정 테이블(310)의 구성도이다. 우선순위 결정 테이블(310)은 컨텐츠서버(200)의 제어모듈(200)이 상기 수학식 2의 방식으로 우선순위를 결정하는 데에 참조하는 테이블의 일 예이며, 본 발명의 기술적 범위는 아래의 설명에 한정되는 것이 아니다.FIG. 3 is a configuration diagram of a priority determination table 310 according to an embodiment of the present invention. The priority determination table 310 is an example of a table that the control module 200 of the content server 200 refers to in order to determine the priority in the manner of Equation 2. The technical scope of the present invention is as follows. The present invention is not limited to the description.

본 실시예에서 우선순위 결정 테이블(310)을 참조하면, 데이터, 히트 수, 스테일 타임, 데이터 사이즈, 가중치 값, 절대값 및 우선순위 항목을 포함하여 이루어진다.In this embodiment, referring to the priority determination table 310, it includes data, a number of hits, a stall time, a data size, a weight value, an absolute value, and a priority item.

데이터 항목은 우선순위를 결정하여 캐시서버(100)로 전송하여 저장하도록 하는 대상이 될 수 있는 데이터를 나타내는 필드이다. The data item is a field indicating data that can be an object to be determined to be prioritized and transferred to the cache server 100 for storage.

히트 수 항목은 특정 기간 동안 클라이언트(300)로부터 해당 데이터가 요청된 횟수 벡터의 크기를 나타내는 필드이다. The hit number field is a field indicating the size of the number of times the corresponding data is requested from the client 300 for a specific period.

스테일 타임 항목은 마지막으로 해당 데이터가 요청된 이후 현재까지의 경과 시간 벡터의 크기를 나타내는 필드이다.The stale time field is a field indicating the size of the elapsed time vector up to the present since the last data is requested.

데이터 사이즈는 해당 데이터 사이즈 벡터의 크기를 나타내는 필드이다.The data size is a field indicating the size of the corresponding data size vector.

본 실시예에서 히트 수, 스테일 타임 및 데이터 사이즈 항목은 로그 척도(log scale)로 표현된 값을 나타낸다.In this embodiment, the number of hits, the stall time, and the data size indicate values represented by a log scale.

가중치 값 항목은 우선순위 결정에 있어 히트 수의 벡터값, 스테일 타임 역수의 벡터값 및 데이터 사이즈 역수의 벡터값의 보정을 위해 각각의 값에 곱해지는 값을 나타내는 필드이다.The weight value item is a field indicating a value multiplied to each value for correction of the vector value of the number of hits, the vector value of the stale time reciprocal, and the vector value of the reciprocal of the data size in the priority determination.

절대값 항목은 각각의 벡터값을 이용하여 계산한 절대값을 나타내는 필드이다.The absolute value field is a field indicating an absolute value calculated by using each vector value.

우선순위 항목은 계산한 절대값을 이용하여 결정된 각 데이터의 우선순위를 나타내는 필드이다.The priority item is a field indicating the priority of each data determined using the calculated absolute value.

우선순위 결정 테이블(310)의 1번 행(row)(No.1)을 참조하면, 데이터가 'XXX.gif'이고 로그 척도로 계산한 해당 데이터의 히트 수 벡터값의 크기, 스테일 타임 벡터값의 크기 및 데이터 사이즈 벡터값의 크기가 각각 2, 3, 3 임을 알 수 있다. Referring to the row (No. 1) of the priority determination table 310, the size of the hit number vector value of the corresponding data calculated by the log scale and the data is 'XXX.gif' And size of the data size vector values are 2, 3, and 3, respectively.

가중치 값 항목을 참조하면, 가중치가 '1, 4, 3'으로 되어 있으므로, 벡터값의 절대값을 계산함에 있어, 히트 수의 벡터값(log scale)에는 '1'이, 스테일 타임 역수의 벡터값에는 '4'가, 데이터 사이즈 역수의 벡터값에는 '3'의 가중치 값이 각각 곱해진다.In calculating the absolute value of the vector value, the vector value (log scale) of the number of hits is set to "1", the vector of the stellitime reciprocal number Quot; 4 ", and the vector value of the inverse data size is multiplied by the weight value of " 3 ".

상기 값들을 이용하여 수학식 2의 계산법으로 데이터 'XXX.gif'의 벡터값의 절대값을 계산하면, l=1, |A|=2, m=4, |B|=1/3, n=3, |C|=1/3이 되므로, 절대값은 대략 2.6이 된다.When the absolute value of the vector value of the data 'XXX.gif' is calculated using the above-described calculation method of Equation (2), l = 1, | A | = 2, m = 4, | B | = 1/3, n = 3 and | C | = 1/3, the absolute value becomes approximately 2.6.

마찬가지로, 우선순위 결정 테이블(310)의 2번 행 및 3번 행을 참조하면, 'YYY.gif' 데이터의 히트 수 벡터값의 크기, 스테일 타임 벡터값의 크기 및 데이터 사이즈 벡터값의 크기가 각각 3, 4, 2 이고, 'ZZZ.gif' 데이터의 히트 수 벡터값의 크기, 스테일 타임 벡터값의 크기 및 데이터 사이즈 벡터값의 크기가 각각 2, 4, 3 임을 알 수 있다. Similarly, referring to row 2 and row 3 of the priority determination table 310, the size of the hit number vector value, the size of the stale time vector value, and the size of the data size vector value of the 'YYY.gif' data are 3, 4 and 2, and the size of the hit number vector value of the 'ZZZ.gif' data, the size of the stale time vector value, and the size of the data size vector value are 2, 4 and 3, respectively.

가중치 값은 모두 1, 4, 3 이므로, 1번 행과 같은 방법으로 계산하면 'YYY.gif' 데이터 벡터값의 절대값은 대략 3.5 이고, 'ZZZ.gif' 데이터 벡터값의 절대값은 대략 2.45가 된다.Since the weight values are 1, 4, and 3, the absolute value of the data vector value of 'YYY.gif' is approximately 3.5 and the absolute value of the data vector value of 'ZZZ.gif' is approximately 2.45 .

각 데이터에 대응되는 절대값을 비교하여, 그 절대값이 큰 순서대로 우선순위를 결정하면, 'YYY.gif' 데이터가 우선순위가 제일 높은 '1'의 값을 갖고, 다음 으로 'XXX.gif'의 데이터가 '2'의 우선순위를 갖게 되며, 'ZZZ.gif'의 데이터가 '3'의 우선순위를 갖게 된다. 해당 우선순위 값은 다른 데이터에 대한 벡터값의 절대값을 계산하여 바뀔 수 있다.If the absolute values corresponding to the respective data are compared and the priority order is determined in the ascending order of the absolute values, 'YYY.gif' data has a value of '1' having the highest priority, and then 'XXX.gif 'Has priority of' 2 ', and data of' ZZZ.gif 'has priority of' 3 '. The priority value may be changed by calculating the absolute value of the vector value for the other data.

본 실시예에서 우선순위 결정 테이블(310)의 데이터가 확장자가 'gif'인 파일로 되어 있으나, 본 발명의 기술적 범위가 이것에 한정되지 않는 것은 물론이다. 또한 각 데이터의 우선순위 계산에 있어 상기 수학식 1 또는 수학식 3과 같은 다른 수학식을 이용하거나, 가중치 값을 변경함으로써 본 실시예와 다른 우선순위 값이 결정될 수 있다.In the present embodiment, the data of the priority determination table 310 is a file having an extension 'gif', but the technical scope of the present invention is not limited to this. Further, in calculating the priority of each data, a different priority value can be determined by using another equation such as Equation 1 or Equation 3, or by changing the weight value.

본 발명의 일 실시예에 따른 캐시서버(100)에 데이터를 저장하는 과정에 대해서는 도 4를 참조하여 좀 더 상세하게 설명하기로 한다.The process of storing data in the cache server 100 according to an exemplary embodiment of the present invention will be described in detail with reference to FIG.

도 4는 본 발명의 일 실시예에 따른 데이터 저장방법의 흐름도이다. 도 1 및 도 4를 참조하면, 컨텐츠서버(200)는 데이터베이스(230)에 저장된 데이터 및/또는 캐시서버(100)를 포함한 하나 이상의 캐시서버에 저장된 데이터의 히트 수, 스테일 타임 및 데이터 사이즈 정보를 수집한다(S410). 캐시서버(100)를 포함한 하나 이상의 캐시서버에 저장된 데이터에 대한 정보의 수집은 컨텐츠서버(200)가 캐시서버(100)로부터 해당 정보를 수신하는 방식으로 이루어질 수 있다.4 is a flowchart of a data storage method according to an embodiment of the present invention. Referring to FIGS. 1 and 4, the content server 200 stores the hit count, the stall time, and the data size information of data stored in the database 230 and / or data stored in one or more cache servers including the cache server 100 (S410). The collection of information about the data stored in one or more cache servers including the cache server 100 may be performed in such a manner that the content server 200 receives the corresponding information from the cache server 100.

컨텐츠서버(200)는 수집된 정보를 이용하여 히트 수, 스테일 타임의 역수, 및 데이터 사이즈의 역수 축에 대응되는 데이터 각각의 값을 계산한다(S420). 그리고 단계(S420)에서 계산된 값들을 이용하여 어떠한 데이터가 캐시서버(100)로 전송 되어 저장되어야 하는지에 대한 우선순위를 결정한다(S430).The content server 200 calculates the value of each of the data corresponding to the inverse number axis of the number of hits, the inverse of the stale time, and the data size using the collected information (S420). In operation S430, a priority is determined as to which data is to be transferred to the cache server 100 and stored using the values calculated in operation S420.

단계(S430)에서 각 데이터의 우선순위가 결정되면, 해당 데이터를 우선순위에 따라 정렬하고(S440), 정렬된 순서에 따라 각 데이터 사이즈의 합을 계산한다(S450). If the priority of each data is determined in step S430, the data is sorted in order of priority (S440), and the sum of the data sizes is calculated according to the sorted order (S450).

그리고 컨텐츠서버(200)는 단계(S450)에서 계산한 데이터 사이즈의 합과 컨텐츠서버(200)의 컨텐츠 데이터를 저장하도록 설정된 캐시서버(100)의 저장 용량을 고려하여, 데이터 사이즈의 합이 해당 저장 용량 이하가 되는 데이터까지를 캐시서버(100)에 저장될 데이터로 선택한다(S460).The content server 200 calculates the sum of the data sizes corresponding to the sum of the data sizes calculated in step S450 and the storage capacity of the cache server 100 configured to store the content data of the content server 200, The data up to the capacity is selected as data to be stored in the cache server 100 (S460).

단일 컨텐츠서버(200)가 우선순위와 관계없이 특정 데이터를 더 포함하여 캐시서버(100)에 저장하고자 한다면, 단계(S460)에서의 데이터 선택은 더 포함되는 특정 데이터의 사이즈를 포함하여 총 데이터 사이즈 합이 해당 저장 용량 이하가 되도록 이루어져야 한다.If the single content server 200 desires to store specific data in the cache server 100, regardless of the priority, the data selection in step S460 may include the size of the specific data, Sum should be less than or equal to the corresponding storage capacity.

단계(S460)에서 저장될 데이터가 선택되면, 컨텐츠서버(200)는 캐시서버(100)에 이미 저장되어 있는 데이터와 중복되는 데이터를 제외하고(S470), 중복되지 않는 데이터를 캐시서버(100)로 전송하여 저장하도록 한다(S480).If the data to be stored is selected in step S460, the content server 200 excludes data that is duplicated with the data already stored in the cache server 100 (S470) (S480).

본 발명에 의하면, 컨텐츠서버가 컨텐츠의 우선순위를 고려하고 캐시서버에 이미 저장된 데이터를 제외한 나머지 데이터만을 전송하여 캐시서버에 저장되도록 할 수 있어, 캐시서버의 저장 효율을 높일 수 있으며, 네트워크 대역폭의 낭비를 줄이고 클라이언트로부터 빈번히 요청되는 컨텐츠에 대한 응답지연을 줄일 수 있 다.According to the present invention, the content server can transmit only the data except for the data already stored in the cache server in consideration of the priority of the content, and can be stored in the cache server, thereby enhancing the storage efficiency of the cache server, Reducing waste and reducing response delays for frequently requested content from clients.

도 1은 본 발명의 일 실시예에 따른 컨텐츠 제공시스템의 구성도이다.1 is a configuration diagram of a content providing system according to an embodiment of the present invention.

도 2는 도 1에 따른 컨텐츠서버의 구성도이다.2 is a configuration diagram of a content server according to FIG.

도 3은 도 1의 컨텐츠서버에서 참조하는 우선순위 결정 테이블의 구성도이다.3 is a configuration diagram of a priority determination table referenced by the content server of FIG.

도 4는 본 발명의 일 실시예에 따른 데이터 저장방법의 흐름도이다.4 is a flowchart of a data storage method according to an embodiment of the present invention.

Claims (15)

컨텐츠서버가 특정기간 동안 복수 데이터의 히트(Hit) 수, 스테일 타임(stale time) 및 상기 데이터의 사이즈를 포함하는 정보를 수집하는 수집단계;A collection step of collecting information including a number of hits of a plurality of data, a stale time and a size of the data for a specific period of time; 상기 컨텐츠서버가 상기 수집된 정보를 이용하여 히트 수, 스테일 타임의 역수 및 데이터 사이즈의 역수 축에 대응되는 상기 데이터의 값들을 계산하여 우선순위를 결정하는 결정단계; 및Determining a priority by calculating values of data corresponding to reciprocal axes of the number of hits, the inverse of the stall times, and the data size using the collected information by the content server; And 상기 컨텐츠서버가 상기 결정한 우선순위를 참조하여 캐시서버로 상기 데이터 중 하나 이상의 데이터를 전송하고 저장하도록 하는 저장단계; 를 포함하는 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법.A storing step of causing the content server to transmit and store one or more pieces of the data to the cache server by referring to the determined priority; And a cache server for storing the data. 제1항에 있어서, 상기 수집단계는2. The method of claim 1, 상기 컨텐츠서버에 저장된 데이터 및 상기 캐시서버를 포함한 하나 이상의 캐시서버에 저장된 데이터에 대한 정보를 수집하는 것을 특징으로 하는 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법.And collecting information on data stored in the content server and data stored in one or more cache servers including the cache server. 제2항에 있어서, 상기 수집단계는3. The method of claim 2, wherein the collecting step 상기 컨텐츠서버가 상기 하나 이상의 캐시서버로부터 해당 캐시서버에 저장된 데이터에 대한 정보를 수신하여 상기 정보를 수집하는 것을 특징으로 하는 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법.Wherein the content server receives information on data stored in the cache server from the one or more cache servers and collects the information. 제1항에 있어서, 상기 결정단계에서2. The method according to claim 1, 상기 히트 수, 스테일 타임의 역수 및 데이터 사이즈의 역수 축에 대응되는 상기 데이터 값들 중 하나 이상의 값은 로그값인 것을 특징으로 하는 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법.Wherein the value of one or more of the data values corresponding to the inverse number axis of the number of hits, the inverse of the stail time, and the data size is a log value. 제1항에 있어서, 상기 결정단계는2. The method of claim 1, 상기 계산한 값들을 이용하여 상기 데이터 각각의 벡터값을 계산하고 해당 벡터값의 절대값을 다른 데이터의 절대값과 비교하여 우선순위를 결정하는 것을 특징으로 하는 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법.And calculating a vector value of each of the data using the calculated values and comparing the absolute value of the vector value with the absolute value of the other data to determine a priority. . 제1항 또는 제5항에 있어서, 상기 결정단계는6. The method according to claim 1 or 5, 상기 계산한 데이터의 값들 중 하나 이상의 값에 가중치 값을 곱하여 우선순위를 결정하는 것을 특징으로 하는 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법.Wherein the priority value is determined by multiplying one or more values of the calculated data by a weight value. 제1항에 있어서, 상기 저장단계는2. The method of claim 1, 상기 결정한 우선순위가 큰 데이터부터 순차적으로 전송하고 저장하도록 하는 것을 특징으로 하는 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법.And sequentially transmitting and storing the determined data having a higher priority, and storing the data. 제1항에 있어서, 상기 저장단계는2. The method of claim 1, 상기 결정한 우선순위가 큰 데이터부터 순차적으로 해당 데이터의 사이즈를 합하여 그 합이 상기 캐시서버의 저장 용량 이하가 되는 데이터까지 전송하고 저장하도록 하는 것을 특징으로 하는 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법.Wherein the cache server is configured to transmit and store the sum of the data sizes of the data having the determined priority order and the data having the storage capacity smaller than the storage capacity of the cache server sequentially. 제1항에 있어서, 상기 저장단계는2. The method of claim 1, 상기 전송하는 데이터와 상기 캐시서버에 기저장된 데이터를 비교하여, 중복되는 데이터를 제외한 나머지 데이터를 전송하고 저장하도록 하는 것을 특징으로 하는 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법.Comparing the data to be transmitted with the data stored in the cache server, and transmitting and storing data other than redundant data, wherein the data is stored in the cache server. 제1항에 있어서, 상기 저장단계는2. The method of claim 1, 상기 컨텐츠서버에서 선택한 하나 이상의 다른 데이터를 더 포함하여 상기 캐시서버로 전송하는 것을 특징으로 하는 컨텐츠서버 및 캐시서버를 이용한 데이터 저장방법.Wherein the cache server further includes one or more other data selected by the content server and transmits the data to the cache server. 데이터 송수신을 위한 입출력부;An input / output unit for data transmission / reception; 컨텐츠를 저장하는 데이터베이스; 및A database for storing contents; And 특정기간 동안 복수 데이터의 히트 수, 스테일 타임 및 상기 데이터의 사이즈를 포함한 정보를 수집하고, 상기 수집된 정보를 이용하여 상기 히트 수, 스테일 타임의 역수 및 데이터 사이즈의 역수 축에 대응되는 각각의 데이터의 값을 계산하여 각 데이터의 우선순위를 결정하며, 상기 결정한 우선순위를 참조하여 상기 데이터베이스에 저장된 상기 컨텐츠 데이터 중 하나 이상의 컨텐츠 데이터를 캐시서버로 전송하는 제어모듈; 을 포함하는 컨텐츠서버.The information including the number of hits of a plurality of data, the stall time, and the size of the data for a specific period is collected, and each piece of data corresponding to the inverse number axis of the number of hits, A control module for determining a priority of each data and transmitting one or more contents data of the contents data stored in the database to the cache server with reference to the determined priority; . 제11항에 있어서, 상기 제어모듈은12. The apparatus of claim 11, wherein the control module 상기 컨텐츠서버에 저장된 데이터 및 하나 이상의 캐시서버에 저장된 데이터에 대한 정보를 수집하는 것을 특징으로 하는 컨텐츠서버.And collects information on data stored in the content server and data stored in one or more cache servers. 제10항에 있어서, 상기 제어모듈은11. The system of claim 10, wherein the control module 상기 계산한 값들을 이용하여 상기 데이터 각각의 벡터값을 계산하고 해당 벡터값의 절대값을 다른 데이터의 절대값과 비교하여 우선순위를 결정하는 것을 특징으로 하는 컨텐츠서버.Calculates a vector value of each of the data using the calculated values, and compares an absolute value of the vector value with an absolute value of the other data to determine a priority. 특정기간 동안 복수의 컨텐츠 데이터에 대한 히트 수, 스테일 타임 및 상기 컨텐츠 데이터의 사이즈를 포함한 정보를 수집하고, 상기 수집한 정보를 이용하여 히트 수, 스테일 타임의 역수 및 데이터 사이즈의 역수 축에 대응되는 각각의 데이터의 값들을 계산하여 우선순위를 결정하며, 상기 결정한 우선순위에 따라 상기 복수의 컨텐츠 데이터 중 하나 이상의 컨텐츠 데이터를 전송하는 컨텐츠서버; 및The information including the number of hits, the stall time, and the size of the content data for a plurality of pieces of content data for a specific period of time is collected, and the information including the number of hits, the inverse of the stale time, A content server for calculating values of respective data to determine a priority, and transmitting one or more pieces of content data among the plurality of content data according to the determined priority; And 상기 컨텐츠서버가 전송한 데이터를 수신하여 저장하고 클라이언트로부터의 요청에 응답하여 상기 컨텐츠 데이터를 전송하는 캐시서버; 를 포함하는 컨텐츠 제공시스템.A cache server for receiving and storing data transmitted by the content server and transmitting the content data in response to a request from a client; And a content providing system. 제14항에 있어서, 상기 컨텐츠서버는15. The system of claim 14, wherein the content server 상기 컨텐츠서버에서 선택한 하나 이상의 다른 데이터를 더 포함하여 전송하는 것을 특징으로 하는 컨텐츠 제공시스템.Further comprising one or more other data selected by the content server.
KR1020080106636A 2008-10-29 2008-10-29 Method for storing data using content server and cache server, content server and content delivery system thereof KR101150725B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080106636A KR101150725B1 (en) 2008-10-29 2008-10-29 Method for storing data using content server and cache server, content server and content delivery system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080106636A KR101150725B1 (en) 2008-10-29 2008-10-29 Method for storing data using content server and cache server, content server and content delivery system thereof

Publications (2)

Publication Number Publication Date
KR20100047652A true KR20100047652A (en) 2010-05-10
KR101150725B1 KR101150725B1 (en) 2012-06-08

Family

ID=42274588

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080106636A KR101150725B1 (en) 2008-10-29 2008-10-29 Method for storing data using content server and cache server, content server and content delivery system thereof

Country Status (1)

Country Link
KR (1) KR101150725B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190068859A (en) * 2017-12-11 2019-06-19 엔에이치엔 주식회사 Method and system for synchronizing file update of cache server
KR20210069508A (en) * 2019-12-03 2021-06-11 경희대학교 산학협력단 A caching rate-control method and apparatus for Streaming Data on Resource-Limited Edge Nodes

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140021372A (en) * 2012-08-10 2014-02-20 에스케이텔레콤 주식회사 Contents delivery service method and local cache apparatus using contents identification
KR101441403B1 (en) * 2012-08-29 2014-09-18 에스케이텔레콤 주식회사 Content Delivery Service system, apparatus and method for supporting contents delivery service thereof

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100860076B1 (en) 2007-02-22 2008-09-24 한국전자통신연구원 Apparatus and method for the replacement of cache for streaming service in the proxy server

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190068859A (en) * 2017-12-11 2019-06-19 엔에이치엔 주식회사 Method and system for synchronizing file update of cache server
KR20210069508A (en) * 2019-12-03 2021-06-11 경희대학교 산학협력단 A caching rate-control method and apparatus for Streaming Data on Resource-Limited Edge Nodes

Also Published As

Publication number Publication date
KR101150725B1 (en) 2012-06-08

Similar Documents

Publication Publication Date Title
EP2266043B1 (en) Cache optimzation
US8255557B2 (en) Partial object distribution in content delivery network
KR101383905B1 (en) method and apparatus for processing server load balancing with the result of hash function
AU2011307319B2 (en) Request routing in a networked environment
US9083743B1 (en) Managing request routing information utilizing performance information
US8495220B2 (en) Managing CDN registration by a storage provider
US8510448B2 (en) Service provider registration by a content broker
US8041814B2 (en) Method, system and computer program product for hierarchical load balancing
WO2011126481A1 (en) Partial object distribution in content delivery network
EP3066577B1 (en) Content node selection using network performance profiles
KR101150725B1 (en) Method for storing data using content server and cache server, content server and content delivery system thereof
KR101066872B1 (en) System and method for content delivery using cache server, and cache server thereof
KR101131787B1 (en) Method for updating data stored in cache server, cache server and content delivery system thereof
JP6693670B2 (en) Request processing in the content distribution framework
US10452563B1 (en) Cache eviction scheme for acceptable substitutes in online media
KR101104727B1 (en) System and method for content delivery using cache server and browser cache
KR101066871B1 (en) System and method for content delivery using cache server and browser cache
KR101128292B1 (en) System and method for content delivery using multiple cache server, and cache server thereof
KR20180067936A (en) System and for wordpress content delivery using cache server and browser cache

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
N231 Notification of change of applicant
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150429

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160428

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180427

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190422

Year of fee payment: 8