Nothing Special   »   [go: up one dir, main page]

KR101211207B1 - Cache system and caching service providing method using structure of cache cloud - Google Patents

Cache system and caching service providing method using structure of cache cloud Download PDF

Info

Publication number
KR101211207B1
KR101211207B1 KR1020100087548A KR20100087548A KR101211207B1 KR 101211207 B1 KR101211207 B1 KR 101211207B1 KR 1020100087548 A KR1020100087548 A KR 1020100087548A KR 20100087548 A KR20100087548 A KR 20100087548A KR 101211207 B1 KR101211207 B1 KR 101211207B1
Authority
KR
South Korea
Prior art keywords
cache
node
proxy
nodes
server
Prior art date
Application number
KR1020100087548A
Other languages
Korean (ko)
Other versions
KR20120025658A (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 KR1020100087548A priority Critical patent/KR101211207B1/en
Priority to JP2011187033A priority patent/JP5753030B2/en
Publication of KR20120025658A publication Critical patent/KR20120025658A/en
Application granted granted Critical
Publication of KR101211207B1 publication Critical patent/KR101211207B1/en

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/562Brokering proxy 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/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

캐시 클라우드 구조를 이용한 캐시 시스템 및 캐싱 서비스 제공 방법이 개시된다. 캐시 시스템은 복수의 클라이언트로부터 수신된 요청을 복수의 프록시 노드로 분산하여 전달하는 스위치, 스위치로부터 수신되는 요청을 복수의 캐시 노드 중 적어도 하나의 캐시 노드로 전달하는 복수의 프록시 노드 및 복수의 프록시 노드 중 적어도 하나의 프록시 노드로부터 수신된 요청을 처리하는 복수의 캐시 노드를 포함한다.Disclosed are a cache system and a caching service providing method using a cache cloud structure. The cache system includes a switch for distributing and receiving requests from a plurality of clients to a plurality of proxy nodes, a plurality of proxy nodes and a plurality of proxy nodes for forwarding requests received from the switch to at least one cache node of the plurality of cache nodes. And a plurality of cache nodes for processing requests received from at least one proxy node.

Figure R1020100087548
Figure R1020100087548

Description

캐시 클라우드 구조를 이용한 캐시 시스템 및 캐싱 서비스 제공 방법{CACHE SYSTEM AND CACHING SERVICE PROVIDING METHOD USING STRUCTURE OF CACHE CLOUD}CACHE SYSTEM AND CACHING SERVICE PROVIDING METHOD USING STRUCTURE OF CACHE CLOUD}

본 발명의 실시예들은 캐시 클라우드 구조를 이용한 캐시 시스템 및 캐싱 서비스 제공 방법에 관한 것이다.Embodiments of the present invention relate to a cache system and a caching service providing method using a cache cloud structure.

종래기술에 따른 캐싱 솔루션(caching solution)에서는 각각의 클라이언트들이 필요한 모든 캐시 서버(cache server)와 연결된 구조를 갖는다. 이때, 캐시 서버에 문제가 발생하면, 클라이언트(client)들에서 직접 문제점을 파악하고, 독립적으로 캐시 서버 리스트를 이용하여 해싱(hashing)해야 한다. 여기서, 클라이언트는 캐시 솔루션을 사용하는 시스템을 의미하는 것으로, 예를 들어 일반적인 웹 시스템에서는 웹 서버나 웹 어플리케이션 서버(web application server, WAS)를 의미할 수 있다.In the caching solution according to the related art, each client has a structure connected to all the cache servers required. At this time, if a problem occurs in the cache server, the client should identify the problem directly and hash it using the cache server list independently. Here, the client refers to a system using a cache solution. For example, in a general web system, the client may mean a web server or a web application server (WAS).

즉, 캐시 서버의 문제를 캐싱 솔루션을 이용하는 클라이언트가 직접 해결해야 하기 때문에 전체 클라이언트에 추가적인 기능을 추가하는 클라이언트 위주의 폴트-톨러런스(fault-tolerance)가 필수적이다. 또한, 각 클라이언트가 독립적으로 캐시 서버 리스트를 유지보수(maintenance)하는 경우, 분산 해시 테이블에서 정합성(consistency) 문제가 발생한다. 예를 들어, 같은 키(key)에 대한 해시가 다른 캐시 서버에 매칭될 수 있는 여지가 존재하는 문제점이 있다.That is, a client-driven fault-tolerance that adds additional functionality to the entire client is essential because the client using the caching solution must solve the cache server problem. In addition, when each client independently maintains a cache server list, a consistency problem occurs in a distributed hash table. For example, there is a problem that hashes for the same key can be matched to different cache servers.

따라서, 보다 안전하고 효율적인 캐시 기술의 도입에 대한 요구가 증가하고 있는 추세이다.Thus, there is a growing demand for the introduction of more secure and efficient cache technology.

클라이언트가 복수의 캐시 서버 각각에 개별적으로 접속할 필요 없이 캐시 클라우드(cache cloud)에 접속하여 캐싱 서비스를 제공받을 수 있는 캐시 시스템 및 캐싱 서비스 제공 방법이 제공된다.Provided are a cache system and a caching service providing method capable of providing a caching service by accessing a cache cloud without requiring a client to individually access each of a plurality of cache servers.

클라이언트에서 별도의 구성을 추가하지 않더라도 캐싱 서비스를 제공받을 수 있는 캐시 시스템 및 캐싱 서비스 제공 방법이 제공된다.There is provided a cache system and a caching service providing method capable of receiving a caching service without adding a separate configuration to a client.

프록시 서버를 이용하여 클라이언트와 캐시 서버간의 장애가 발생하는 경우에도 정합성을 보장할 수 있는 캐시 시스템 및 캐싱 서비스 제공 방법이 제공된다.Provided are a cache system and a caching service providing method that guarantees consistency even when a failure occurs between a client and a cache server using a proxy server.

별도의 관리 구성을 통해 캐시 클라우드를 관리함으로써, 캐시 클라우드의 확장성을 클라이언트에서 고려할 필요가 없고, 해당 관리 구성을 이용하여 프록시 서버나 캐시 서버의 통계 정보 및 자원 상황을 실시간으로 모니터링하여 장애의 발생을 예방하고, 서비스 품질을 지속적으로 향상시킬 수 있는 캐시 시스템 및 캐싱 서비스 제공 방법이 제공된다.By managing the cache cloud through a separate management configuration, there is no need to consider the scalability of the cache cloud in the client, and using the management configuration to monitor the statistical information and resource status of the proxy server or the cache server in real time to generate a failure A cache system and a caching service provision method are provided to prevent a problem and to continuously improve a service quality.

복수의 클라이언트로부터 수신된 요청을 복수의 프록시 노드로 분산하여 전달하는 스위치, 스위치로부터 수신되는 요청을 복수의 캐시 노드 중 적어도 하나의 캐시 노드로 전달하는 복수의 프록시 노드 및 복수의 프록시 노드 중 적어도 하나의 프록시 노드로부터 수신된 요청을 처리하는 복수의 캐시 노드를 포함하는 캐시 시스템이 제공된다.At least one of a plurality of proxy nodes and a plurality of proxy nodes for distributing and receiving a request received from a plurality of clients to a plurality of proxy nodes, a plurality of proxy nodes for forwarding a request received from the switch to at least one of the plurality of cache nodes A cache system is provided that includes a plurality of cache nodes that process a request received from a proxy node of.

일측에 따르면, 복수의 프록시 노드 각각은 캐시 서버 리스트에 기초하여 적어도 하나의 캐시 노드를 선택하고, 캐시 노드로 요청을 전송하는 프록시 서버, 프록시 서버의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 HB(Heart Beat) 중 적어도 하나를 제어하는 노드 제어부 및 해당 프록시 노드의 자원을 모니터링하여 통계 정보를 생성하는 정보 수집부를 포함할 수 있다.According to one side, each of the plurality of proxy nodes to select at least one cache node based on the cache server list, the proxy server for sending a request to the cache node, the application initialization, start and shutdown, monitoring and HB of the proxy server And a node controller for controlling at least one of the Beats and an information collector for monitoring statistical resources of the proxy node to generate statistical information.

다른 측면에 따르면, 복수의 캐시 노드 각각은 요청에 따른 데이터를 저장하거나 또는 요청에 따른 데이터를 제공하는 복수의 캐시 서버, 복수의 캐시 서버 각각의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 HB 중 적어도 하나를 제어하는 노드 제어부 및 해당 캐시 노드의 자원을 모니터링하여 통계 정보를 생성하는 정보 수집부를 포함할 수 있다.According to another aspect, each of the plurality of cache nodes includes at least one of a plurality of cache servers storing data on demand or providing data on request, application initialization, startup and shutdown, monitoring, and HB of each of the plurality of cache servers. It may include a node control unit for controlling the information collection unit for generating statistical information by monitoring the resources of the cache node.

또 다른 측면에 따르면, 캐시 시스템은 복수의 프록시 노드와 복수의 캐시 노드로부터 수신되는 데이터에 기초하여 복수의 프록시 노드 및 복수의 캐시 노드를 관리하는 관리 노드를 더 포함할 수 있다. 이 경우, 관리 노드는 복수의 프록시 노드와 복수의 캐시 노드가 각각 포함하는 노드 제어부로부터 수신된 정보를 관리 제어부로 전달하는 메시지 중계부, 메시지 중계부를 통해 수신된 정보에 기초하여 복수의 프록시 노드와 복수의 캐시 노드에 대한 상태를 파악하고, 복수의 프록시 노드와 복수의 캐시 노드 각각에 대한 시작 및 종료 명령을 제공하는 관리 제어부, 복수의 프록시 노드와 복수의 캐시 노드가 각각 포함하는 정보 수집부로부터 수신된 정보를 이용하여 통계 정보를 생성하는 모니터링부, 네트워크를 통해 접속하는 관리자 단말기와 통신하는 사용자 인터페이스부 및 관리 제어부 및 모니터링부에서 생성되는 정보를 저장하는 데이터베이스를 포함할 수 있다.According to another aspect, the cache system may further include a management node managing a plurality of proxy nodes and a plurality of cache nodes based on data received from the plurality of proxy nodes and the plurality of cache nodes. In this case, the management node may include a message relay unit for transmitting the information received from the node control unit included in the plurality of proxy nodes and the plurality of cache nodes to the management control unit, and the plurality of proxy nodes based on the information received through the message relay unit. A management control unit for identifying a state of the plurality of cache nodes and providing start and end commands for each of the plurality of proxy nodes and the plurality of cache nodes, and an information collection unit each of the plurality of proxy nodes and the plurality of cache nodes; It may include a monitoring unit for generating statistical information by using the received information, a user interface unit for communicating with a manager terminal connected via a network, and a database for storing information generated by the management control unit and the monitoring unit.

스위치로부터 클라이언트의 요청을 수신하고, 복수의 캐시 노드 중 캐시 서버 리스트에 기초하여 선택된 적어도 하나의 캐시 노드로 요청을 전송하는 프록시 서버, 프록시 서버의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 HB 중 적어도 하나를 제어하는 노드 제어부 및 시스템 자원을 모니터링하여 통계 정보를 생성하는 정보 수집부를 포함하는 프록시 시스템이 제공된다.At least one of a proxy server that receives a client's request from the switch and sends the request to at least one cache node selected based on the cache server list among the plurality of cache nodes, application initialization, startup and shutdown, monitoring, and HB of the proxy server. Provided is a proxy system including a node controller for controlling the information and an information collector for monitoring the system resources and generating statistical information.

복수의 클라이언트로부터 수신된 요청을 복수의 콤보 노드로 분산하여 전달하는 스위치 및 프록시 서버와 복수의 캐시 노드를 각각 포함하고, 스위치로부터 수신되는 요청을 프록시 서버를 통해 복수의 캐시 서버 중 적어도 하나의 캐시 서버로 전달하는 복수의 콤보 노드를 포함하는 캐시 시스템이 제공된다.And a switch and a proxy server and a plurality of cache nodes, respectively, for distributing and forwarding a request received from a plurality of clients to a plurality of combo nodes, and at least one cache of the plurality of cache servers through the proxy server. A cache system is provided that includes a plurality of combo nodes for delivering to a server.

스위치에서 복수의 클라이언트로부터 수신된 요청을 복수의 프록시 노드로 분산하여 전달하는 단계, 프록시 노드에서 스위치로부터 수신되는 요청을 복수의 캐시 노드 중 적어도 하나의 캐시 노드로 전달하는 단계 및 캐시 노드에서 복수의 프록시 노드 중 적어도 하나의 프록시 노드로부터 수신된 요청을 처리하는 단계를 포함하는 캐싱 서비스 제공 방법이 제공된다.Distributing and forwarding a request received from a plurality of clients at a switch to a plurality of proxy nodes, forwarding a request received from the switch at a proxy node to at least one cache node of the plurality of cache nodes, and at the cache node A caching service providing method is provided that includes processing a request received from at least one proxy node of the proxy nodes.

스위치에서 복수의 클라이언트로부터 수신된 요청을 복수의 콤보 노드로 분산하여 전달하는 단계, 콤보 노드에서 스위치로부터 수신되는 요청을 콤보 노드가 포함하는 프록시 서버를 통해 콤보 노드에 연결된 복수의 캐시 서버 중 적어도 하나의 캐시 서버로 전달하도록 제어하는 단계 및 콤보 노드에서 적어도 하나의 캐시 서버가 전달된 요청을 처리하도록 제어하는 단계를 포함하는 캐싱 서비스 제공 방법이 제공된다.Distributing and forwarding a request received from a plurality of clients at a switch to a plurality of combo nodes; at least one of a plurality of cache servers connected to the combo node through a proxy server including a combo node at the combo node; A method of providing a caching service is provided, the method comprising: controlling delivery to a cache server of a server; and controlling the at least one cache server to process a forwarded request at a combo node.

클라이언트가 복수의 캐시 서버 각각에 개별적으로 접속할 필요 없이 캐시 클라우드(cache cloud)에 접속하여 캐싱 서비스를 제공받을 수 있다.Clients may be provided with a caching service by accessing a cache cloud without having to individually connect to each of a plurality of cache servers.

클라이언트에서 별도의 구성을 추가하지 않더라도 캐싱 서비스를 제공받을 수 있다.Caching service can be provided without additional configuration.

프록시 서버를 이용하여 클라이언트와 캐시 서버간의 장애가 발생하는 경우에도 정합성을 보장할 수 있다.Using a proxy server ensures consistency even in the event of a failure between the client and the cache server.

별도의 관리 구성을 통해 캐시 클라우드를 관리함으로써, 캐시 클라우드의 확장성을 클라이언트에서 고려할 필요가 없고, 해당 관리 구성을 이용하여 프록시 서버나 캐시 서버의 통계 정보 및 자원 상황을 실시간으로 모니터링하여 장애의 발생을 예방하고, 서비스 품질을 지속적으로 향상시킬 수 있다.By managing the cache cloud through a separate management configuration, there is no need to consider the scalability of the cache cloud in the client, and using the management configuration to monitor the statistical information and resource status of the proxy server or the cache server in real time to generate a failure Prevention and continually improving service quality.

도 1은 본 발명의 일실시예에 있어서, 캐시 시스템의 개괄적인 모습을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 캐시 시스템의 내부 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일실시예에 따른 캐시 시스템에서 정합적 해싱을 보장하기 위한 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 다른 실시예에 있어서, 캐시 시스템의 개괄적인 모습을 도시한 도면이다.
도 5는 본 발명의 다른 실시예에 따른 캐시 시스템의 내부 구성을 설명하기 위한 블록도이다.
도 6은 본 발명의 일실시예에 있어서, 캐싱 서비스 제공 방법을 도시한 흐름도이다.
도 7은 본 발명의 다른 실시예에 있어서, 캐싱 서비스 제공 방법을 도시한 흐름도이다.
1 is a view showing an overview of a cache system according to an embodiment of the present invention.
2 is a block diagram illustrating an internal configuration of a cache system according to an embodiment of the present invention.
3 is a diagram illustrating a method for guaranteeing coherent hashing in a cache system according to an exemplary embodiment of the present invention.
4 is a view showing an overview of a cache system according to another embodiment of the present invention.
5 is a block diagram illustrating an internal configuration of a cache system according to another embodiment of the present invention.
6 is a flowchart illustrating a caching service providing method according to an exemplary embodiment of the present invention.
7 is a flowchart illustrating a caching service providing method according to another exemplary embodiment of the present invention.

이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명의 실시예들에 따른 캐시 시스템은 캐시 기능을 빠르고, 안전하게 제공하기 위한 서비스이며, 기본적으로 캐시 클라우드 컴퓨팅 형태로 구성될 수 있다.The cache system according to embodiments of the present invention is a service for quickly and securely providing a cache function, and may basically be configured in a cache cloud computing form.

도 1은 본 발명의 일실시예에 있어서, 캐시 시스템의 개괄적인 모습을 도시한 도면이다. 도 1은 복수의 클라이언트(110), 캐시 클라우드 영역(120), 관리 영역(130) 및 관리자 단말기(140)를 나타내고 있다. 이때, 본 실시예에 따른 캐시 시스템은 캐시 클라우드 영역(120) 및 관리 영역(130)에 포함되는 구성들을 포함할 수 있다. 여기서, 캐시 클라우드 영역(120)은 스위치(121), 복수의 프록시 노드(122) 및 복수의 캐시 노드(123)를 포함하고 있고, 관리 영역(130)은 관리 제어부(131) 및 사용자 인터페이스(132)를 포함하고 있다.1 is a view showing an overview of a cache system according to an embodiment of the present invention. 1 illustrates a plurality of clients 110, a cache cloud area 120, a management area 130, and a manager terminal 140. In this case, the cache system according to the present embodiment may include components included in the cache cloud area 120 and the management area 130. Here, the cache cloud area 120 includes a switch 121, a plurality of proxy nodes 122, and a plurality of cache nodes 123, and the management area 130 includes a management controller 131 and a user interface 132. ) Is included.

우선, 복수의 클라이언트(110) 중 하나의 클라이언트에서 스위치(121)를 통해 명령어가 전송되면, 이러한 명령어는 복수의 프록시 노드(122) 중 하나의 프록시 노드를 거쳐, 복수의 캐시 노드(123) 중 적어도 하나의 캐시 노드로 전달되어 처리될 수 있다. 이때, 적어도 하나의 캐시 노드에서 처리된 결과는 복수의 프록시 노드(122) 중 하나의 프록시 노드와 스위치(121)를 거쳐 해당 클라이언트로 전달된다. 즉, 복수의 프록시 노드(122)는 정보의 정합성을 위한 중계 역할을 수행할 수 있다.First, when a command is transmitted through the switch 121 in one of the plurality of clients 110, the command passes through one proxy node of the plurality of proxy nodes 122, and among the plurality of cache nodes 123. It may be delivered to and processed by at least one cache node. In this case, the result processed by the at least one cache node is transmitted to the corresponding client through one proxy node and the switch 121 of the plurality of proxy nodes 122. That is, the plurality of proxy nodes 122 may perform a relay role for information matching.

스위치(121)는 복수의 프록시 노드(122)가 각각 포함하는 프록시 서버에 대한 부하를 분산하고, 헬스 체크(health check)를 담당한다.The switch 121 distributes load on proxy servers included in the plurality of proxy nodes 122 and is responsible for a health check.

또한, 관리 영역(130)은 복수의 프록시 노드(122)와 복수의 캐시 노드(123)를 관리하고 모니터링함으로써, 보다 쉽게 캐시 시스템을 관리할 수 있게 돕는 역할을 수행할 수 있다. 이때, 관리 영역(130)은 관리 제어부(131)와 관리 웹(132)을 적어도 포함할 수 있다. 관리 제어부(131)와 사용자 인터페이스부(132)에 대해서는, 도 2에서 보다 자세히 설명한다.In addition, the management area 130 may serve to help manage the cache system more easily by managing and monitoring the plurality of proxy nodes 122 and the plurality of cache nodes 123. In this case, the management area 130 may include at least a management controller 131 and a management web 132. The management control unit 131 and the user interface unit 132 will be described in more detail with reference to FIG. 2.

도 2는 본 발명의 일실시예에 따른 캐시 시스템의 내부 구성을 설명하기 위한 블록도이다. 우선, 클라이언트(210)는 맴캐쉬디 클라이언트(211)를 세부 구성요소로 포함할 수 있다. 여기서, 맴캐쉬디 클라이언트(211)는 일례로, 기존 맴캐쉬디(memcached) 서버의 이용을 위해 이용되는 클라이언트 프로그램을 포함할 수 있다. 즉, 클라이언트(210)는 별도의 구성을 추가할 필요 없이 본 실시예에 따른 캐시 시스템을 통해 캐싱 서비스를 이용할 수 있다.2 is a block diagram illustrating an internal configuration of a cache system according to an embodiment of the present invention. First, the client 210 may include the Memcached client 211 as a detailed component. Here, the memcached client 211, for example, may include a client program used for the use of the existing memcached (memcached) server. That is, the client 210 may use the caching service through the cache system according to the present embodiment without adding a separate configuration.

스위치(121)는 상술한 바와 같이 복수의 프록시 서버에 대한 부하를 분산시키고 헬스 체크를 담당한다. 예를 들어 헬스 체크의 주기를 5초로 설정하고, 그 이상 응답이 없는 프록시 서버는 장애가 발생한 것으로 판단하여 클라이언트의 요청이나 명령어 등을 전달하지 않는다.The switch 121 distributes the load to the plurality of proxy servers and performs the health check as described above. For example, if the health check cycle is set to 5 seconds, and no response is made, the proxy server determines that a failure has occurred and does not transmit a client's request or command.

이때, 도 2에서는 복수의 프록시 노드 중 하나의 프록시 노드(220)와 복수의 캐시 노드 중 하나의 캐시 노드(230)만을 구체화하여 나타내고 있다. 실질적으로 복수의 프록시 노드와 복수의 캐시 노드가 각각 서로 통신할 수 있고, 이후 설명될 관리 노드(240)와도 각각 서로 통신할 수 있으나, 도 2에서는 설명의 편의를 위해 프록시 노드(220)와 캐시 노드(230)만을 이용하여 캐시 시스템을 설명한다.2 illustrates only one proxy node 220 and one cache node 230 of the plurality of proxy nodes. Substantially, the plurality of proxy nodes and the plurality of cache nodes may communicate with each other, and the management node 240 to be described later may also communicate with each other, but in FIG. 2, the proxy node 220 and the cache are provided for convenience of description. Only the node 230 is used to describe the cache system.

복수의 프록시 노드들 각각은 복수의 캐시 노드들 중 하나 이상의 캐시 노드와 통신할 수 있으나, 도 2에서는 설명의 편의를 위해 프록시 노드(220)가 스위치(121)를 통해 클라이언트의 요청을 수신하고, 수신된 클라이언트의 요청을 전달하기 위해 캐시 노드(230)와 통신한다고 가정한다.Each of the plurality of proxy nodes may communicate with one or more cache nodes of the plurality of cache nodes. In FIG. 2, for convenience of description, the proxy node 220 receives a client request through the switch 121, Assume that it communicates with cache node 230 to forward a received client's request.

프록시 노드(220)는 기존 캐시 서버(본 실시예에서는 상술한 맴캐쉬디 서버)를 위한 프로토콜을 지원하여 클라이언트가 범용적인 맴캐쉬디 클라이언트(211)를 그대로 이용 가능하도록 지원할 수 있다. 또한, 프록시 노드(220)는 정합적 해싱(consistent hashing)을 통해 캐시 데이터의 정합성을 제공할 수 있고, 캐시 노드들의 장애를 처리할 수 있다. 정합적 해싱과 캐시 노드들에 대한 장애 처리에 대해서는 이후 더욱 자세히 설명한다. 또한, 프록시 노드(220)는 연계된 캐시 노드들을 관리하는 통제 서버의 역할도 동시에 수행할 수 있다. 즉, 프록시 노드(220)의 자원에 대한 통계 정보를 제공하고, 실시간 부하 분산 기능을 제공할 수 있다.The proxy node 220 may support a protocol for an existing cache server (MemCaddy server described above in this embodiment) so that the client can use the general MashCaddy client 211 as it is. In addition, proxy node 220 may provide consistency of cache data through consistent hashing and may handle failure of cache nodes. Consistent hashing and failure handling for cache nodes are discussed in more detail later. In addition, the proxy node 220 may simultaneously perform the role of the control server managing the associated cache nodes. That is, statistics information about the resources of the proxy node 220 may be provided and a real time load balancing function may be provided.

이러한 기능의 수행을 위해 프록시 노드(220)는 프록시 서버(221), 노드 제어부(222) 및 정보 수집부(223)를 세부 구성요소로 포함할 수 있다.In order to perform such a function, the proxy node 220 may include a proxy server 221, a node controller 222, and an information collector 223 as detailed components.

프록시 서버(221)는 스위치(121)를 통해 수신되는 클라이언트의 요청을 받아 해당 캐시 노드(230)의 맴캐쉬디(231)로 전송한다.The proxy server 221 receives a client's request received through the switch 121 and transmits the request to the cache 230 of the corresponding cache node 230.

노드 제어부(222)는 프록시 서버(221)의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 HB(Heart Beat)를 수행한다. 여기서, HB는 물리적인 장비와 어플리케이션이 정상적으로 동작하는가를 주기적으로 확인하는 동작을 의미할 수 있다. 즉, 캐시 시스템은 이러한 노드 제어부(222)를 이용하여 프록시 서버(221)의 중단 없이 캐시 서버를 추가 및 삭제할 수 있다. 예를 들어, 장애가 발생한 캐시 서버의 실시간 제거 및 프록시 서버의 성능이 임계값이 도달할 경우 캐시 서버의 증설과 같은 과정을 유연하게 처리할 수 있다.The node controller 222 performs application initialization, start and end, monitoring, and heart beat (HB) of the proxy server 221. Here, the HB may refer to an operation of periodically checking whether the physical equipment and the application operate normally. That is, the cache system may add and delete cache servers without interruption of the proxy server 221 using the node controller 222. For example, it is possible to flexibly handle processes such as real-time removal of a failed cache server and expansion of a cache server when the performance of the proxy server reaches a threshold value.

이때, 노드 제어부(222)는 관리 제어부(242)로부터 시작/중지/재시작 명령을 수신하여 프록시 프로세스를 시작/중지/재시작할 수 있다. 또한, 노드 제어부(222)는 프록시 서버(221)가 포함하는 캐시 서버 리스트에 새로운 캐시 서버를 추가하거나 기존 캐시 서버를 삭제하기 위한 명령을 관리 제어부(242)를 통해 수신하여 처리할 수 있다.In this case, the node controller 222 may start / stop / restart the proxy process by receiving a start / stop / restart command from the management controller 242. In addition, the node controller 222 may receive and process a command for adding a new cache server or deleting an existing cache server to the cache server list included in the proxy server 221 through the management controller 242.

정보 수집부(223)는 프록시 노드(220)의 자원을 모니터링한다. 이때, 모니터링된 결과는 이후 설명될 관리 노드(240)의 모니터링부(243)로 전송될 수 있다. 예를 들어, 정보 수집부(223)는 현재 프록시 노드(220)에서 복수의 클라이언트들로부터 수신한 모든 요청의 수와 캐시 노드(230)에서 응답받지 못한 요청의 수 등과 같은 통계 정보를 상기 모니터링된 결과로서 제공할 수 있다.The information collector 223 monitors the resources of the proxy node 220. In this case, the monitored result may be transmitted to the monitoring unit 243 of the management node 240 which will be described later. For example, the information collector 223 may monitor the statistical information such as the number of all requests received from the plurality of clients at the proxy node 220 and the number of requests not received at the cache node 230, and the like. Can be provided as a result.

캐시 노드(230)는 복수의 맴캐쉬디 서버(231), 노드 제어부(232) 및 정보 수집부(233)를 세부 구성요소로 포함할 수 있다.The cache node 230 may include a plurality of memory servers 231, a node controller 232, and an information collector 233 as detailed components.

복수의 맴캐쉬디(231) 각각은 캐시 데이터의 저장소로서, 캐시 서버를 의미할 수 있다. 예를 들어, 복수의 맴캐쉬디(231) 각각은 맴캐쉬디 서버일 수 있다.Each of the plurality of memory caches 231 may represent a cache server as a storage of cache data. For example, each of the plurality of memory caches 231 may be a memory server.

노드 제어부(232)는 캐시 서버의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 HB를 수행한다. 이때, 노드 제어부(222)는 관리 제어부(242)로부터 시작/중지/재시작 명령을 수신하여 캐시 프로세스를 시작/중지/재시작할 수 있다.The node controller 232 performs application initialization, startup and termination, monitoring, and HB of the cache server. In this case, the node controller 222 may start / stop / restart the cache process by receiving a start / stop / restart command from the management controller 242.

정보 수집부(233)는 캐시 노드(230)의 자원을 모니터링한다. 이 경우에도 모니터링된 결과는 관리 노드(240)의 모니터링부(243)로 전송될 수 있다.The information collector 233 monitors the resources of the cache node 230. In this case, the monitored result may be transmitted to the monitoring unit 243 of the management node 240.

관리 노드(240)는 메시지 중계부(241), 관리 제어부(242), 모니터링부(243), WAS(Web Application Server)(244), RDB(245) 및 RRD(246)를 포함할 수 있다.The management node 240 may include a message relay unit 241, a management controller 242, a monitoring unit 243, a web application server (WAS) 244, an RDB 245, and an RRD 246.

메시지 중계부(241)는 프록시 노드(220)의 노드 제어부(222) 및 캐시 노드(230)의 노드 제어부(232)로부터 전송되는 정보를 수신하여 관리 제어부(242)로 전송하는 중계 역할을 수행할 수 있다.The message relay unit 241 may serve as a relay for receiving information transmitted from the node controller 222 of the proxy node 220 and the node controller 232 of the cache node 230 and transmitting the information to the management controller 242. Can be.

관리 제어부(242)는 메시지 중계부(241)를 통해 노드 제어부(222 및 230)에서 수신된 정보를 통해 각 노드들의 상태를 파악하고, 각 노드들에 시작 및 종료의 명령을 내리고, 각 노드들의 통계 정보를 바탕으로 각 노드들의 헬스 체크를 수행한다. 또한, 필요에 따라 각 노드들의 교체 역시 관리 제어부(242)가 담당할 수 있다.The management control unit 242 checks the status of each node through the information received from the node control units 222 and 230 through the message relay unit 241, gives commands to start and end of each node, and The health check of each node is performed based on the statistical information. In addition, the management controller 242 may be in charge of replacing each node as necessary.

예를 들어, 관리 제어부(242)는 노드 제어부(222 및 232)에서 전송하는 HB를 이용하여 프록시 노드(220)나 캐시 노드(230)의 장애를 탐지하고 처리할 수 있다. 장애의 탐지 및 처리에 대해서는 이후 더욱 자세히 설명한다.For example, the management controller 242 may detect and process a failure of the proxy node 220 or the cache node 230 by using the HBs transmitted from the node controllers 222 and 232. The detection and handling of faults will be described in more detail later.

또한, 관리 제어부(242)는 노드 제어부(222 및 232)에서 전송하는 QoS(Quality of Service) 데이터와 관리 제어부(242)가 측정하는 QoS 데이터를 모니터링부(243)로 전송할 수 있다. 즉, 프록시 노드(220)와 캐시 노드(230)의 노드 제어부(222 및 232)는 QoS 데이터를 측정하여 주기적으로 관리 제어부(242)로 전송할 수 있고, 관리 제어부(242)는 모니터링부(243)로 QoS 데이터를 전송할 수 있다. 노드 제어부(222 및 232)는 예를 들어, 주기적으로 등록된 IP 포트에 "set" 명령과 "get" 명령을 보내어 측정된, 명령의 수행 시간에 기초하여 QoS 데이터를 생성할 수 있다. 예를 들어, QoS 데이터는 데이터 크기 별 응답속도 정보를 포함할 수 있다.In addition, the management controller 242 may transmit the QoS (Quality of Service) data transmitted from the node controllers 222 and 232 and the QoS data measured by the management controller 242 to the monitoring unit 243. That is, the node controllers 222 and 232 of the proxy node 220 and the cache node 230 may measure QoS data and periodically transmit the QoS data to the management controller 242, and the management controller 242 may monitor the 243. QoS data can be transmitted over the network. The node controllers 222 and 232 may generate QoS data based on, for example, the execution time of the command measured by sending a "set" command and a "get" command to a registered IP port periodically. For example, the QoS data may include response rate information for each data size.

뿐만 아니라, 관리 제어부(242)는 관리자로부터 수신되는 프록시 노드(220)나 캐시 노드(230)의 시작/중지/재시작 명령을 처리할 수 있다. 이를 위해, 관리 제어부(242)는 프록시 노드(220) 및 캐시 노드(230)의 노드 제어부(222 및 232)로 시작/중지/재시작을 요청할 수 있다.In addition, the management controller 242 may process start / stop / restart commands of the proxy node 220 or the cache node 230 received from the manager. To this end, the management controller 242 may request start / stop / restart to the node controllers 222 and 232 of the proxy node 220 and the cache node 230.

모니터링부(243)는 상술한 바와 같이 정보 수집부(223 및 233)로부터 프록시 노드(220)와 캐시 노드(230)의 자원에 대한 모니터링된 결과를 수신하여 통계 정보를 생성할 수 있다. 예를 들어, 모니터링부(243)는 프록시 노드(220)와 캐시 노드(230)의 정보 수집부(223 및 233)로부터 자원 데이터를 수신할 수 있고, 이러한 자원 데이터를 분석하여 RRD(246)에 저장할 수 있다.The monitoring unit 243 may generate statistical information by receiving the monitored results for the resources of the proxy node 220 and the cache node 230 from the information collecting units 223 and 233 as described above. For example, the monitoring unit 243 may receive resource data from the information collecting units 223 and 233 of the proxy node 220 and the cache node 230, and analyzes the resource data to the RRD 246. Can be stored.

또한, 모니터링부(243)는 관리 제어부(242)로부터 수신된 QoS 데이터를 분석하여 QoS 데이터의 크기에 따라 RRD(246)에 저장할 수 있다.In addition, the monitoring unit 243 may analyze the QoS data received from the management control unit 242 and store it in the RRD 246 according to the size of the QoS data.

WAS(244)는 관리자와 통신하기 위한 사용자 인터페이스를 제공하기 위한 것으로 도 1에서 설명한 사용자 인터페이스부(132)에 대응될 수 있다. 즉, 관리자는 관리자 단말기와 웹을 통해 WAS(244)에 접속하여 프록시 서버(220)와 캐시 서버(230)를 모니터링하고, 관리할 수 있다. 관리자나 사용자들에게는 예를 들어, 캐시 시스템, 프록시 노드(220), 캐시 노드(230)의 QoS 결과, 프록시 노드(220)와 캐시 노드(230)의 CPU, 네트워크, 디스크 등의 시스템 자원과 프록시 서버(221)의 사용량 정보 등이 제공될 수 있다.The WAS 244 is provided to provide a user interface for communicating with an administrator and may correspond to the user interface unit 132 described with reference to FIG. 1. That is, the administrator may access the WAS 244 through the administrator terminal and the web to monitor and manage the proxy server 220 and the cache server 230. For administrators or users, for example, the cache system, proxy node 220, QoS results of cache node 230, system resources such as proxy node 220 and cache node 230, network, disk, and proxy Usage information of the server 221 may be provided.

RDB(Relational DataBase)(245) 및 RRD(Round Robin Database)(246)는 각각 관리 제어부(242) 및 모니터링부(243)가 수집한 데이터를 저장하는 데이터베이스를 의미할 수 있다.The relational database (RDB) 245 and the round robin database (RDR) 246 may refer to a database that stores data collected by the management controller 242 and the monitoring unit 243, respectively.

도 3은 본 발명의 일실시예에 따른 캐시 시스템에서 정합적 해싱을 보장하기 위한 방법을 설명하기 위한 도면이다. 제1 점선박스(310)는 노드 1 내지 노드 4의 네 개의 노드와 네 개의 노드 각각이 포함하는 키 목록을 나타내고 있다. 여기서 각각의 노드들은 캐시 노드를 의미할 수 있고, 각각의 키들은 특정 해쉬 함수에 의해 생성될 수 있다. 이때, 노드 4에 장애가 발생하는 경우, 키 'jkl', 'jkm' 및 'jkn'을 이용할 수 없게 되어 해싱값들이 불일치하게 된다. 제2 점선박스(320)는 노드 1 내지 노드 3의 세 개의 노드와 세 개의 노드 각각이 포함하는 키 목록을 나타내고 있다. 즉, 키 'jkl', 'jkm' 및 'jkn'가 세 개의 노드에 분산 저장되었음을 나타내고 있다. 이와 같이, 캐시 시스템의 프록시 노드는 장애가 발생한 캐시 노드의 키들을 노드들에 분산 저장함으로써, 정합적 해싱을 보장할 수 있다.3 is a diagram illustrating a method for guaranteeing coherent hashing in a cache system according to an exemplary embodiment of the present invention. The first dotted line box 310 shows a list of keys included in four nodes and four nodes of the nodes 1 to 4. Here, each node may mean a cache node, and each key may be generated by a specific hash function. At this time, if a failure occurs in the node 4, the keys 'jkl', 'jkm' and 'jkn' are not available and the hashing values are inconsistent. The second dotted line box 320 shows a list of keys included in each of the three nodes and the three nodes of the nodes 1 to 3. That is, the keys 'jkl', 'jkm' and 'jkn' are distributed and stored in three nodes. As such, the proxy node of the cache system can ensure consistent hashing by distributing the keys of the failed cache node to nodes.

상술한 바와 같이, 기존의 맴캐쉬디 클라이언트와 맴캐쉬디 서버의 형태에서는 서버의 장애가 바로 클라이언트의 장애로 확산될 수 있다. 그러나, 본 실시예에서는 프록시 서버를 중간 매개체로 이용하여 장애에 보다 안정적으로 대처할 수 있다.As described above, in the form of the existing Memcached client and Memcached server, the failure of the server can be spread to the failure of the client. However, in this embodiment, it is possible to more stably cope with the failure by using a proxy server as an intermediate medium.

예를 들어, 클라이언트는 "get" 명령을 통해 캐시 서버로 작업을 요청하고, 일정기간 후에도 응답이 없는 경우 캐시 미스(cache miss)가 발생시키고, 데이터 저장("set" 명령 등을 이용하여) 작업을 요청하고, 일정기간 후에도 응답이 없는 경우 서버 에러를 발생시킨다. 이때, 프록시 노드와 캐시 노드의 노드 제어부는 캐시 서버의 상태를 감지하고, 장애가 발생한 캐시 서버를 제거한 후 다른 캐시 서버에서 캐싱 서비스를 지속적으로 처리하도록 제어할 수 있다.For example, a client requests a job to the cache server through a "get" command, and if there is no response after a certain period of time, a cache miss is generated, and data is stored (eg, using a "set" command). If there is no response after a certain period of time, a server error occurs. At this time, the node control unit of the proxy node and the cache node can detect the state of the cache server, remove the failed cache server and control to continue processing the caching service in another cache server.

다른 예로, 프록시 서버는 캐시 서버의 장애를 감지한 순간부터 기선정된 제1 기간 동안 기선정된 제2 기간마다 캐시 서버의 상태를 확인할 수 있다. 예를 들어, 프록시 서버는 10분 동안 2초 간격으로 캐시 서버의 상태를 확인할 수 있다. 이때, 10분 내에 캐시 서버의 상태가 정상적으로 돌아오는 경우, 프록시 서버는 캐시 서버를 자동으로 연결하여 클라이언트에 정상적으로 서비스할 수 있도록 제어할 수 있다. 이러한 상황은 캐시 노드의 노드 제어부에서도 처리될 수 있으나 노드 제어부가 감지하지 못한 경우, 예를 들어 프록시 노드와 캐시 노드간의 네트워크 문제로 인해 일시적으로 연결이 끊어지는 상황에서 프록시 서버가 자체적인 헬스 체크를 통해 장애를 처리할 수 있다.As another example, the proxy server may check the state of the cache server every second predetermined period during the first predetermined period from the moment of detecting the failure of the cache server. For example, the proxy server can check the status of the cache server every two seconds for 10 minutes. In this case, when the state of the cache server normally returns within 10 minutes, the proxy server may automatically connect the cache server to control the service to the client. This situation can be handled by the node control unit of the cache node, but if the node control unit fails to detect it, the proxy server performs its own health check in the case of temporary disconnection due to a network problem between the proxy node and the cache node. Can handle faults.

도 4는 본 발명의 다른 실시예에 있어서, 캐시 시스템의 개괄적인 모습을 도시한 도면이다. 도 4는 복수의 클라이언트(410), 캐시 클라우드 영역(420), 관리 영역(430) 및 관리자 단말기(140)를 나타내고 있다. 이때, 본 실시예에 따른 캐시 시스템은 캐시 클라우드 영역(420) 및 관리 영역(430)에 포함되는 구성들을 포함할 수 있다.4 is a view showing an overview of a cache system according to another embodiment of the present invention. 4 illustrates a plurality of clients 410, a cache cloud area 420, a management area 430, and a manager terminal 140. In this case, the cache system according to the present embodiment may include components included in the cache cloud area 420 and the management area 430.

여기서, 캐시 클라우드 영역(420)은 스위치(421) 및 복수의 콤보 노드를 포함할 수 있다. 도 4에서는 복수의 콤보 노드 중 콤보 노드 1(431)과 콤보 노드 N(432)을 구체적으로 나타내고 있다. 이때, 각각의 콤보 노드는 프록시 서버, 복수의 캐시 서버, 노드 제어부 및 정보 수집부를 포함할 수 있다. 도 4에서 삼각형 도형은 프록시 서버를, 원통 도형은 캐시 서버를 각각 의미할 수 있다. 그리고, "N"이 쓰여진 원 도형은 노드 제어부를, "C"가 쓰여진 원 도형은 정보 수집부를 각각 의미할 수 있다.Here, the cache cloud area 420 may include a switch 421 and a plurality of combo nodes. In FIG. 4, the combo node 1 431 and the combo node N 432 are specifically illustrated among the plurality of combo nodes. In this case, each combo node may include a proxy server, a plurality of cache servers, a node controller, and an information collector. In FIG. 4, a triangular figure may mean a proxy server, and a cylindrical figure may mean a cache server. The circle figure written with "N" may mean a node controller, and the circle figure written with "C" may mean an information collection unit.

또한, 관리 영역(430)은 관리 제어부와 사용자 인터페이스부를 포함할 수 있다. 이때, 도 4에서 "AC"가 쓰여진 원 도형은 관리 제어부를, "UI"가 쓰여진 원 도형은 사용자 인터페이스부를 각각 의미할 수 있다.In addition, the management area 430 may include a management control unit and a user interface unit. In this case, in FIG. 4, a circle figure written with "AC" may mean a management controller, and a circle figure written with "UI" may mean a user interface unit.

본 실시예에 따른 캐시 시스템은 도 1 및 2에서 설명한 캐시 시스템과는 달리 프록시 서버와 캐시 서버를 하나의 콤보 노드로 구성한다.Unlike the cache system described with reference to FIGS. 1 and 2, the cache system according to the present embodiment configures a proxy server and a cache server as one combo node.

이때, 복수의 클라이언트(410) 중 하나의 클라이언트에서 스위치(421)를 통해 명령어가 전송되면, 이러한 명령어는 복수의 콤보 노드 중 하나의 콤보 노드로 전달되어 처리될 수 있다. 하나의 콤보 노드 내에서는 프록시 서버가 해당 명령어를 수신하여 복수의 캐시 서버 중 적어도 하나의 캐시 서버에 명령어를 전달할 수 있고, 명령어를 수신한 캐시 서버는 수신된 명령어에 따라 데이터를 저장 또는 제공할 수 있다. 적어도 하나의 캐시 노드에서 처리된 결과는 프록시 서버와 스위치(421)를 거쳐 해당 클라이언트로 전달된다. 이때, 프록시 서버는 정보의 정합성을 위한 중계 역할을 위해 이용될 수 있다.In this case, when a command is transmitted through the switch 421 from one client of the plurality of clients 410, the command may be delivered to and processed by one of the plurality of combo nodes. Within a combo node, the proxy server may receive the command and transmit the command to at least one of the plurality of cache servers, and the cache server receiving the command may store or provide data according to the received command. have. The results processed by the at least one cache node are delivered to the client via the proxy server and the switch 421. In this case, the proxy server may be used for a relay role for information integrity.

스위치(421)는 복수의 콤보 노드 각각이 포함하는 프록시 서버에 대한 부하를 분산하고, 헬스 체크(health check)를 담당한다.The switch 421 distributes the load on the proxy server included in each of the plurality of combo nodes, and is in charge of a health check.

또한, 관리 영역(430)은 복수의 콤보 노드를 관리하고 모니터링함으로써, 보다 쉽게 캐시 시스템을 관리할 수 있게 돕는 역할을 수행할 수 있다.In addition, the management area 430 may serve to help manage a cache system more easily by managing and monitoring a plurality of combo nodes.

도 5는 본 발명의 다른 실시예에 따른 캐시 시스템의 내부 구성을 설명하기 위한 블록도이다. 우선, 클라이언트(510)는 맴캐쉬디 클라이언트(511)를 세부 구성요소로 포함할 수 있다. 여기서, 맴캐쉬디 클라이언트(511)는 일례로, 기존 맴캐쉬디(memcached) 서버의 이용을 위해 이용되는 클라이언트 프로그램을 포함할 수 있다. 즉, 클라이언트(510)는 별도의 구성을 추가할 필요 없이 본 실시예에 따른 캐시 시스템을 통해 캐싱 서비스를 이용할 수 있다.5 is a block diagram illustrating an internal configuration of a cache system according to another embodiment of the present invention. First, the client 510 may include the Memcached client 511 as a detailed component. Here, the memcached client 511 may include, for example, a client program used for use of an existing memcached server. That is, the client 510 may use the caching service through the cache system according to the present embodiment without adding a separate configuration.

스위치(421)는 상술한 바와 같이 복수의 콤보 노드 각각이 포함하는 프록시 서버에 대한 부하를 분산시키고 헬스 체크를 담당한다. 예를 들어 헬스 체크의 주기를 5초로 설정하고, 그 이상 응답이 없는 프록시 서버는 장애가 발생한 것으로 판단하여 클라이언트의 요청이나 명령어 등을 전달하지 않는다.As described above, the switch 421 distributes the load to the proxy server included in each of the plurality of combo nodes and is responsible for the health check. For example, if the health check cycle is set to 5 seconds, and no response is made, the proxy server determines that a failure has occurred and does not transmit a client's request or command.

이때, 도 5에서는 복수의 콤보 노드 중 콤보 노드 N(432)만을 구체화하여 나타내고 있다. 도 5에서는 설명의 편의를 위해 콤보 노드 N(432)을 위주로 캐싱 서비스에 대해 설명한다.5 illustrates only the combo node N 432 among the plurality of combo nodes. In FIG. 5, a caching service will be described based on the combo node N 432 for convenience of description.

콤보 노드 N(432)는 기존 캐시 서버(본 실시예에서는 상술한 맴캐쉬디 서버)를 위한 프로토콜을 지원하여 클라이언트가 범용적인 맴캐쉬디 클라이언트(511)를 그대로 이용 가능하도록 지원할 수 있다. 또한, 콤보 노드 N(432)는 프록시 서버(520)를 이용하여 정합적 해싱을 통해 캐시 데이터의 정합성을 제공할 수 있고, 캐시 노드들의 장애를 처리할 수 있다. 정합적 해싱과 캐시 노드들에 대한 장애 처리에 대해서는 이미 자세히 설명하였고, 본 실시예에서도 동일한 방법을 사용하기 때문에 반복적인 설명은 생략한다. 이때, 프록시 서버(520)는 연계된 캐시 노드들을 관리하는 통제 서버의 역할도 동시에 수행할 수 있다. 또한, 콤보 노드 N(432)는 프록시 서버(520)와 캐시 서버들인 복수의 맴캐쉬디(530) 각각의 자원에 대한 통계 정보를 제공하고, 실시간 부하 분산 기능을 제공할 수 있다.The combo node N 432 may support a protocol for an existing cache server (MemCaddy server described above in this embodiment) so that the client can use the universal MMC client 511 as it is. In addition, combo node N 432 can provide consistency of cache data through coherent hashing using proxy server 520 and can handle failure of cache nodes. Coherent hashing and failure handling for cache nodes have already been described in detail, and since the same method is used in the present embodiment, repetitive description is omitted. In this case, the proxy server 520 may also simultaneously perform the role of the control server managing the associated cache nodes. In addition, the combo node N 432 may provide statistical information on resources of each of the plurality of memcache dies which are the proxy server 520 and the cache servers, and provide a real-time load balancing function.

이러한 기능의 수행을 위해 콤보 노드 N(432)는 프록시 서버(520), 복수의 맴캐쉬디(530), 노드 제어부(540) 및 정보 수집부(550)를 세부 구성요소로 포함할 수 있다.In order to perform such a function, the combo node N 432 may include a proxy server 520, a plurality of memory caches 530, a node controller 540, and an information collector 550 as detailed components.

프록시 서버(520)는 스위치(421)를 통해 수신되는 클라이언트의 요청을 받아 해당 맴캐쉬디(530)로 전송한다.The proxy server 520 receives a client request received through the switch 421 and transmits the request to the corresponding memory 530.

복수의 맴캐쉬디(530) 각각은 캐시 데이터의 저장소로서, 캐시 서버를 의미할 수 있다. 예를 들어, 복수의 맴캐쉬디(530) 각각은 맴캐쉬디 서버일 수 있다. 이때, 프록시 서버(520)로부터 클라이언트의 요청을 전달받은 캐시 서버는 요청과 관련된 명령어에 따라 캐시 데이터를 저장하거나 제공할 수 있다.Each of the plurality of memory caches 530 may represent a cache server as a storage of cache data. For example, each of the plurality of memory caches 530 may be a memory server. In this case, the cache server receiving the client's request from the proxy server 520 may store or provide cache data according to a command related to the request.

노드 제어부(540)는 콤보 노드 N(432)의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 HB를 수행할 수 있다. 즉, 캐시 시스템은 이러한 노드 제어부(540)를 이용하여 프록시 서버(520)의 중단 없이 캐시 서버를 추가 및 삭제할 수 있다. 예를 들어, 장애가 발생한 캐시 서버의 실시간 제거 및 프록시 서버의 성능이 임계값이 도달할 경우 캐시 서버의 증설과 같은 과정을 유연하게 처리할 수 있다.The node controller 540 may perform application initialization, start and end, monitoring, and HB of the combo node N 432. That is, the cache system may add and delete cache servers without interrupting the proxy server 520 using the node controller 540. For example, it is possible to flexibly handle processes such as real-time removal of a failed cache server and expansion of a cache server when the performance of the proxy server reaches a threshold value.

이때, 노드 제어부(540)는 관리 노드(560)로부터 시작/중지/재시작 명령을 수신하여 프록시 프로세스를 시작/중지/재시작할 수 있다. 또한, 노드 제어부(540)는 프록시 서버(520)가 포함하는 캐시 서버 리스트에 새로운 캐시 서버를 추가하거나 기존 캐시 서버를 삭제하기 위한 명령을 관리 노드(560)를 통해 수신하여 처리할 수 있다. 관리 노드(560)는 도 2에서 프록시 노드(220) 및 캐시 노드(230)와 통신하는 것이 아니라 도 5에서와 같이 복수의 콤보 노드들과 통신한다는 점을 제외하고는 도 2를 통해 설명한 관리 노드(240)와 동일하게 동작할 수 있기 때문에 반복적인 설명은 생략한다.In this case, the node controller 540 may start / stop / restart the proxy process by receiving a start / stop / restart command from the management node 560. In addition, the node controller 540 may receive and process a command for adding a new cache server or deleting an existing cache server to the cache server list included in the proxy server 520 through the management node 560. The management node 560 described in FIG. 2 is not in communication with the proxy node 220 and the cache node 230 in FIG. 2, but in communication with a plurality of combo nodes as in FIG. 5. Since it may operate in the same manner as 240, repeated description thereof will be omitted.

정보 수집부(550)는 콤보 노드 N(432)의 자원을 모니터링한다. 이때, 모니터링된 결과는 이후 설명될 관리 노드(560)로 전송될 수 있다. 예를 들어, 정보 수집부(550)는 현재 프록시 서버(520)에서 복수의 클라이언트들로부터 수신한 모든 요청의 수와 복수의 맴캐쉬디(530)에서 응답받지 못한 요청의 수 등과 같은 통계 정보를 상기 모니터링된 결과로서 제공할 수 있다.The information collector 550 monitors the resources of the combo node N 432. In this case, the monitored result may be transmitted to the management node 560 which will be described later. For example, the information collecting unit 550 may provide statistical information such as the number of all requests received from the plurality of clients at the proxy server 520 and the number of requests not received from the plurality of memory caches 530. It can serve as the monitored result.

도 5에서 생략된 내용은 도 5 이전의 설명을 참조할 수 있다.A description omitted in FIG. 5 may refer to the description before FIG. 5.

도 6은 본 발명의 일실시예에 있어서, 캐싱 서비스 제공 방법을 도시한 흐름도이다. 본 실시예에 따른 캐싱 서비스 제공 방법은 도 2를 통해 설명한 캐시 시스템에 의해 수행될 수 있다. 도 6에서는 캐시 시스템이 포함하는 구성들이 각각의 단계를 수행하는 과정을 설명함으로써 캐싱 서비스 제공 방법을 설명한다.6 is a flowchart illustrating a caching service providing method according to an exemplary embodiment of the present invention. The caching service providing method according to the present embodiment may be performed by the cache system described with reference to FIG. 2. In FIG. 6, a caching service providing method will be described by describing a process in which components included in a cache system perform each step.

단계(610)에서 캐시 시스템은 스위치에서 복수의 클라이언트로부터 수신된 요청을 복수의 프록시 노드로 분산하여 전달한다. 우선, 복수의 클라이언트 각각은 맴캐쉬디 클라이언트와 같이 기존의 캐시 서버를 이용하기 위해 사용되는 클라이언트 프로그램을 그대로 이용할 수 있다. 클라이언트는 별도의 구성을 추가할 필요 없이 본 실시예에 따른 캐시 시스템을 통해 캐싱 서비스를 제공 받을 수 있다. 스위치는 복수의 프록시 서버에 대한 부하를 분산시키고 헬스 체크를 담당한다. 예를 들어 헬스 체크의 주기를 5초로 설정하고, 그 이상 응답이 없는 프록시 서버는 장애가 발생한 것으로 판단하여 클라이언트의 요청이나 명령어 등을 전달하지 않는다.In step 610, the cache system distributes and forwards the requests received from the plurality of clients in the switch to the plurality of proxy nodes. First, each of the plurality of clients may use a client program used to use an existing cache server, such as Memcached client. The client may be provided with a caching service through the cache system according to the present embodiment without adding a separate configuration. The switch balances the load across multiple proxy servers and is responsible for health checks. For example, if the health check cycle is set to 5 seconds, and no response is made, the proxy server determines that a failure has occurred and does not transmit a client's request or command.

단계(620)에서 프록시 노드는 스위치로부터 수신되는 요청을 복수의 캐시 노드 중 적어도 하나의 캐시 노드로 전달한다. 복수의 프록시 노드들 각각은 복수의 캐시 노드들 중 하나 이상의 캐시 노드와 통신할 수 있다. 즉, 프록시 노드는 기존 캐시 서버를 위한 프로토콜을 지원하여 클라이언트가 범용적인 맴캐쉬디 클라이언트를 그대로 이용 가능하도록 지원할 수 있다.In step 620, the proxy node forwards the request received from the switch to at least one cache node of the plurality of cache nodes. Each of the plurality of proxy nodes may be in communication with one or more cache nodes of the plurality of cache nodes. That is, the proxy node may support a protocol for an existing cache server so that the client can use the general Maddy cache client as it is.

여기서, 프록시 노드는 정합적 해싱을 통해 캐시 데이터의 정합성을 제공할 수 있고, 캐시 노드들의 장애를 처리할 수 있다. 또한, 프록시 노드는 연계된 캐시 노드들을 관리하는 통제 서버의 역할도 동시에 수행할 수 있다. 즉, 프록시 노드는 자원에 대한 통계 정보를 제공하고, 실시간 부하 분산 기능을 제공할 수 있다.Here, the proxy node may provide consistency of cache data through coherent hashing, and may handle failure of cache nodes. In addition, the proxy node may simultaneously perform the role of the control server managing the associated cache nodes. That is, the proxy node may provide statistical information about the resource and provide a real-time load balancing function.

단계(630)에서 캐시 노드는 복수의 프록시 노드 중 적어도 하나의 프록시 노드로부터 수신된 요청 처리한다. 이때, 캐시 노드 각각은 캐시 데이터의 저장소인 복수의 캐시 서버를 포함할 수 있다. 즉, 캐시 노드는 단계(630)에서 수신된 요청에 따라 캐시 데이터를 저장 또는 제공할 수 있다.In step 630, the cache node processes the request received from at least one proxy node of the plurality of proxy nodes. In this case, each of the cache nodes may include a plurality of cache servers that are stores of cache data. That is, the cache node may store or provide cache data according to the request received in step 630.

도 7은 본 발명의 다른 실시예에 있어서, 캐싱 서비스 제공 방법을 도시한 흐름도이다. 본 실시예에 따른 캐싱 서비스 제공 방법은 도 5를 통해 설명한 캐시 시스템에 의해 수행될 수 있다. 도 7에서는 캐시 시스템이 포함하는 구성들이 각각의 단계를 수행하는 과정을 설명함으로써 캐싱 서비스 제공 방법을 설명한다.7 is a flowchart illustrating a caching service providing method according to another exemplary embodiment of the present invention. The caching service providing method according to the present embodiment may be performed by the cache system described with reference to FIG. 5. In FIG. 7, a caching service providing method will be described by describing a process of performing components by the components included in the cache system.

단계(710)에서 스위치는 복수의 클라이언트로부터 수신된 요청을 복수의 콤보 노드로 분산하여 전달한다. 우선, 복수의 클라이언트 각각은 맴캐쉬디 클라이언트와 같이 기존의 캐시 서버를 이용하기 위해 사용되는 클라이언트 프로그램을 그대로 이용할 수 있다. 클라이언트는 별도의 구성을 추가할 필요 없이 본 실시예에 따른 캐시 시스템을 통해 캐싱 서비스를 제공 받을 수 있다. 스위치는 복수의 프록시 서버에 대한 부하를 분산시키고 헬스 체크를 담당한다. 예를 들어 헬스 체크의 주기를 5초로 설정하고, 그 이상 응답이 없는 프록시 서버는 장애가 발생한 것으로 판단하여 클라이언트의 요청이나 명령어 등을 전달하지 않는다.In step 710, the switch distributes and forwards the requests received from the plurality of clients to the plurality of combo nodes. First, each of the plurality of clients may use a client program used to use an existing cache server, such as Memcached client. The client may be provided with a caching service through the cache system according to the present embodiment without adding a separate configuration. The switch balances the load across multiple proxy servers and is responsible for health checks. For example, if the health check cycle is set to 5 seconds, and no response is made, the proxy server determines that a failure has occurred and does not transmit a client's request or command.

단계(720)에서 콤보 노드는 스위치로부터 수신되는 요청을 콤보 노드가 포함하는 프록시 서버를 통해 콤보 노드에 연결된 복수의 캐시 서버 중 적어도 하나의 캐시 서버로 전달하도록 제어한다. 즉, 콤보 노드는 프록시 서버와 복수의 캐시 서버를 포함할 수 있다. 이때, 콤보 노드는 프록시 서버를 통해 실시간 부하 분산 기능을 제공할 수 있고, 복수의 캐시 서버에 대한 정합적 해싱을 보장할 수 있다. 또한, 캐시 서버들의 장애를 처리할 수도 있다.In step 720, the combo node controls to transmit a request received from the switch to at least one cache server of a plurality of cache servers connected to the combo node through a proxy server included in the combo node. That is, the combo node may include a proxy server and a plurality of cache servers. In this case, the combo node may provide a real-time load balancing function through a proxy server, and may guarantee coherent hashing of a plurality of cache servers. It may also handle the failure of cache servers.

이러한 콤보 노드는 콤보 노드의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 HB를 수행하는 노드 제어부와 콤보 노드의 자원을 모니터링하여 통계 정보를 생성하는 정보 수집부를 더 포함할 수 있고, 캐시 시스템이 관리 노드를 더 포함하는 경우, 관리 노드와의 통신을 통해 통계 정보를 제공하거나 해당 콤보 노드의 상태 정보를 제공할 수 있다.The combo node may further include a node control unit for performing application initialization, startup and termination, monitoring, and HB of the combo node, and an information collection unit for generating statistical information by monitoring the resources of the combo node, and the cache system may manage the managed node. If further included, it may provide statistical information through communication with the management node or may provide status information of the combo node.

단계(730)에서 캐시 시스템은 콤보 노드에서 적어도 하나의 캐시 서버가 전달된 요청을 처리하도록 제어한다. 즉, 캐시 서버는 전달된 요청에 따라 캐시 데이터를 저장하거나 또는 제공할 수 있다.In step 730, the cache system controls at least one cache server in the combo node to process the forwarded request. In other words, the cache server may store or provide cache data according to the delivered request.

도 6 및 도 7에서 생략된 내용은 도 1 내지 도 5를 참조할 수 있다.6 and 7 may refer to FIGS. 1 to 5.

이와 같이, 본 발명의 실시예들에 따르면, 클라이언트가 복수의 캐시 서버 각각에 개별적으로 접속할 필요 없이 캐시 클라우드(cache cloud)에 접속하여 캐싱 서비스를 제공받을 수 있고, 클라이언트에서 별도의 구성을 추가하지 않더라도 캐싱 서비스를 제공받을 수 있다. 또한, 프록시 서버를 이용하여 클라이언트와 캐시 서버간의 장애가 발생하는 경우에도 정합성을 보장할 수 있다. 뿐만 아니라, 별도의 관리 구성을 통해 캐시 클라우드를 관리함으로써, 캐시 클라우드의 확장성을 클라이언트에서 고려할 필요가 없고, 해당 관리 구성을 이용하여 프록시 서버나 캐시 서버의 통계 정보 및 자원 상황을 실시간으로 모니터링하여 장애의 발생을 예방하고, 서비스 품질을 지속적으로 향상시킬 수 있다.As such, according to embodiments of the present invention, a client may be provided with a caching service by accessing a cache cloud without having to individually access each of a plurality of cache servers, and does not add a separate configuration at the client. If you do not have a caching service. In addition, consistency may be ensured even when a failure occurs between the client and the cache server by using the proxy server. In addition, by managing the cache cloud through a separate management configuration, there is no need to consider the scalability of the cache cloud in the client, and by using the management configuration to monitor the statistical information and resource status of the proxy server or cache server in real time It can prevent the occurrence of failures and continually improve the quality of service.

본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 또한, 상술한 파일 시스템은 컴퓨터 판독이 가능한 기록 매체에 기록될 수 있다.The methods according to embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. In addition, the above-described file system can be recorded in a computer-readable recording medium.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.

110: 복수의 클라이언트
120: 캐시 클라우드 영역
121: 스위치
122: 복수의 프록시 노드
123: 복수의 캐시 노드
130: 관리 영역
110: multiple clients
120: cache cloud zone
121: switch
122: multiple proxy nodes
123: multiple cache nodes
130: management area

Claims (20)

복수의 클라이언트로부터 수신된 요청을 복수의 프록시 노드로 분산하여 전달하는 스위치;
상기 스위치로부터 수신되는 요청을 복수의 캐시 노드 중 적어도 하나의 캐시 노드로 전달하는 상기 복수의 프록시 노드; 및
상기 복수의 프록시 노드 중 적어도 하나의 프록시 노드로부터 수신된 요청을 처리하는 상기 복수의 캐시 노드
를 포함하고,
상기 복수의 프록시 노드 각각은,
캐시 서버 리스트에 기초하여 상기 적어도 하나의 캐시 노드를 선택하고, 상기 캐시 노드로 상기 요청을 전송하는 프록시 서버; 및
상기 프록시 서버의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 HB(Heart Beat) 중 적어도 하나를 제어하는 노드 제어부
를 포함하는 캐시 시스템.
A switch for distributing and forwarding requests received from the plurality of clients to the plurality of proxy nodes;
The plurality of proxy nodes forwarding a request received from the switch to at least one cache node of the plurality of cache nodes; And
The plurality of cache nodes processing a request received from at least one proxy node of the plurality of proxy nodes
Including,
Each of the plurality of proxy nodes,
A proxy server that selects the at least one cache node based on a cache server list and sends the request to the cache node; And
Node control unit for controlling at least one of application initialization, start and end, monitoring, and heart beat (HB) of the proxy server
Cache system comprising a.
제1항에 있어서,
상기 복수의 프록시 노드 각각은,
해당 프록시 노드의 자원을 모니터링하여 통계 정보를 생성하는 정보 수집부
를 더 포함하는, 캐시 시스템.
The method of claim 1,
Each of the plurality of proxy nodes,
Information collecting unit for generating statistical information by monitoring the resource of the proxy node
The cache system further comprises.
제1항에 있어서,
상기 노드 제어부는,
시작, 중지 및 재시작 명령을 수신하여 상기 프록시 서버의 프로세스를 시작, 중지 및 재시작하는, 캐시 시스템.
The method of claim 1,
The node control unit,
Receiving, start, stop, and restart commands to start, stop, and restart the process of the proxy server.
제1항에 있어서,
상기 노드 제어부는,
캐시 서버 추가/삭제 명령에 기초하여 상기 캐시 서버 리스트에 캐시 서버를 추가하거나 또는 상기 캐시 서버 리스트에서 캐시 서버를 삭제하는, 캐시 시스템.
The method of claim 1,
The node control unit,
Adding a cache server to the cache server list or deleting a cache server from the cache server list based on a cache server add / delete command.
제2항에 있어서,
상기 정보 수집부는,
상기 복수의 클라이언트로부터 상기 해당 프록시 노드로 전송된 모든 요청의 수와 상기 복수의 캐시 노드 중 상기 요청을 전달한 캐시 노드로부터 응답받지 못한 요청의 수 중 적어도 하나에 대한 정보를 통계 정보로서 생성하는, 캐시 시스템.
The method of claim 2,
The information collecting unit,
A cache for generating, as statistical information, information on at least one of the number of all requests sent from the plurality of clients to the corresponding proxy node and the number of requests not received from the cache node that delivered the request among the plurality of cache nodes. system.
제1항에 있어서,
상기 복수의 캐시 노드 각각은,
상기 요청에 따른 데이터를 저장하거나 또는 상기 요청에 따른 데이터를 제공하는 복수의 캐시 서버;
상기 복수의 캐시 서버 각각의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 HB 중 적어도 하나를 제어하는 노드 제어부; 및
해당 캐시 노드의 자원을 모니터링하여 통계 정보를 생성하는 정보 수집부
를 포함하는, 캐시 시스템.
The method of claim 1,
Each of the plurality of cache nodes,
A plurality of cache servers storing data according to the request or providing data according to the request;
A node controller for controlling at least one of application initialization, start and termination, monitoring, and HB of each of the plurality of cache servers; And
Information collecting unit for generating statistical information by monitoring the resources of the cache node
Including, the cache system.
제1항 또는 제6항에 있어서,
상기 노드 제어부는,
기선정된 명령의 수행시간에 기초하여 데이터 크기 별 응답속도를 측정하는, 캐시 시스템.
7. The method according to claim 1 or 6,
The node control unit,
A cache system for measuring the response speed for each data size based on the execution time of the predetermined command.
제1항 또는 제6항에 있어서,
상기 HB는 물리적인 장비와 어플리케이션이 정상적으로 동작하는가를 주기적으로 확인하는 동작을 포함하는, 캐시 시스템.
7. The method according to claim 1 or 6,
The HB includes the operation of periodically checking whether the physical equipment and the application is operating normally.
제1항에 있어서,
상기 복수의 프록시 노드와 상기 복수의 캐시 노드로부터 수신되는 데이터에 기초하여 상기 복수의 프록시 노드 및 상기 복수의 캐시 노드를 관리하는 관리 노드
를 더 포함하는 캐시 시스템.
The method of claim 1,
A management node for managing the plurality of proxy nodes and the plurality of cache nodes based on data received from the plurality of proxy nodes and the plurality of cache nodes.
The cache system further comprises.
제9항에 있어서,
상기 관리 노드는,
상기 복수의 프록시 노드와 상기 복수의 캐시 노드가 각각 포함하는 노드 제어부로부터 수신된 정보를 관리 제어부로 전달하는 메시지 중계부;
상기 메시지 중계부를 통해 수신된 정보에 기초하여 상기 복수의 프록시 노드와 상기 복수의 캐시 노드에 대한 상태를 파악하고, 상기 복수의 프록시 노드와 상기 복수의 캐시 노드 각각에 대한 시작 및 종료 명령을 제공하는 상기 관리 제어부;
상기 복수의 프록시 노드와 상기 복수의 캐시 노드가 각각 포함하는 정보 수집부로부터 수신된 정보를 이용하여 통계 정보를 생성하는 모니터링부;
네트워크를 통해 접속하는 관리자 단말기와 통신하는 사용자 인터페이스부; 및
상기 관리 제어부 및 상기 모니터링부에서 생성되는 정보를 저장하는 데이터베이스
를 포함하는, 캐시 시스템.
10. The method of claim 9,
The management node,
A message relay unit for transmitting the information received from the node control unit included in each of the plurality of proxy nodes and the plurality of cache nodes to a management control unit;
Grasping the state of the plurality of proxy nodes and the plurality of cache nodes based on the information received through the message relay unit, and providing start and end commands for each of the plurality of proxy nodes and the plurality of cache nodes. The management control unit;
A monitoring unit generating statistical information by using information received from an information collecting unit included in each of the plurality of proxy nodes and the plurality of cache nodes;
A user interface unit communicating with an administrator terminal connected through a network; And
Database for storing the information generated by the management control unit and the monitoring unit
Including, the cache system.
제10항에 있어서,
상기 관리 제어부는,
상기 복수의 프록시 노드와 상기 복수의 캐시 노드가 각각 포함하는 노드 제어부를 통해 수신되는 데이터 크기 별 응답속도에 대한 정보 및 상기 관리 제어부가 측정하는 데이터 크기 별 응답속도에 대한 정보를 상기 모니터링부로 전송하는, 캐시 시스템.
The method of claim 10,
The management control unit,
Transmitting information on the response speed for each data size received through the node controller included in each of the plurality of proxy nodes and the plurality of cache nodes and information on the response speed for each data size measured by the management controller to the monitoring unit. , Cache system.
제11항에 있어서,
상기 모니터링부는,
상기 관리 제어부로부터 수신되는 데이터 크기 별 응답속도에 대한 정보를 데이터의 크기에 따라 상기 데이터베이스에 저장하는, 캐시 시스템.
The method of claim 11,
The monitoring unit,
And storing information on a response speed for each data size received from the management controller in the database according to the size of the data.
제10항에 있어서,
상기 관리 제어부는,
상기 사용자 인터페이스부를 통해 수신되는 상기 관리자 단말기의 명령에 기초하여 상기 복수의 프록시 노드와 상기 복수의 캐시 노드 각각에 대한 시작 및 종료 명령을 제공하는, 캐시 시스템.
The method of claim 10,
The management control unit,
And a start and end command for each of the plurality of proxy nodes and the plurality of cache nodes based on commands of the manager terminal received through the user interface unit.
스위치로부터 클라이언트의 요청을 수신하고, 복수의 캐시 노드 중 캐시 서버 리스트에 기초하여 선택된 적어도 하나의 캐시 노드로 상기 요청을 전송하는 프록시 서버;
상기 프록시 서버의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 HB 중 적어도 하나를 제어하는 노드 제어부; 및
시스템 자원을 모니터링하여 통계 정보를 생성하는 정보 수집부
를 포함하는 프록시 시스템.
A proxy server that receives a client's request from a switch and sends the request to at least one cache node selected based on a cache server list among a plurality of cache nodes;
A node controller for controlling at least one of application initialization, start and termination, monitoring, and HB of the proxy server; And
Information collector to monitor system resources and generate statistical information
Proxy system comprising a.
제14항에 있어서,
상기 노드 제어부는,
캐시 서버 추가/삭제 명령에 기초하여 캐시 서버 리스트에 캐시 서버를 추가하거나 또는 상기 캐시 서버 리스트에서 캐시 서버를 삭제하는, 프록시 시스템.
15. The method of claim 14,
The node control unit,
Add a cache server to the cache server list or delete a cache server from the cache server list based on a cache server add / delete command.
복수의 클라이언트로부터 수신된 요청을 복수의 콤보 노드로 분산하여 전달하는 스위치; 및
프록시 서버와 복수의 캐시 서버를 각각 포함하고, 상기 스위치로부터 수신되는 요청을 상기 프록시 서버를 통해 상기 복수의 캐시 서버 중 적어도 하나의 캐시 서버로 전달하는 상기 복수의 콤보 노드
를 포함하는 캐시 시스템.
A switch that distributes and forwards the requests received from the plurality of clients to the plurality of combo nodes; And
The plurality of combo nodes each including a proxy server and a plurality of cache servers, and forwarding a request received from the switch to at least one of the plurality of cache servers through the proxy server;
Cache system comprising a.
제16항에 있어서,
상기 복수의 콤보 노드 각각은,
해당 콤보 노드의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 HB 중 적어도 하나를 제어하는 노드 제어부; 및
해당 콤보 노드의 자원을 모니터링하여 통계 정보를 생성하는 정보 수집부
를 더 포함하는 캐시 시스템.
17. The method of claim 16,
Each of the plurality of combo nodes,
A node controller for controlling at least one of application initialization, start and end, monitoring, and HB of the combo node; And
Information collecting unit that generates statistical information by monitoring the resources of the combo node
The cache system further comprises.
스위치에서 복수의 클라이언트로부터 수신된 요청을 복수의 프록시 노드로 분산하여 전달하는 단계;
프록시 노드에서 상기 스위치로부터 수신되는 요청을 복수의 캐시 노드 중 적어도 하나의 캐시 노드로 전달하는 단계; 및
캐시 노드에서 상기 복수의 프록시 노드 중 적어도 하나의 프록시 노드로부터 수신된 요청을 처리하는 단계
를 포함하고,
상기 캐시 노드로 전달하는 단계는,
상기 프록시 노드에 포함된 프록시 서버에서 캐시 서버 리스트에 기초하여 상기 적어도 하나의 캐시 노드를 선택하고, 상기 캐시 노드로 상기 요청을 전송하는 단계; 및
상기 프록시 노드에 포함된 노드 제어부에서 상기 프록시 서버의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 HB(Heart Beat) 중 적어도 하나를 제어하는 단계
를 포함하는 캐싱 서비스 제공 방법.
Distributing and forwarding a request received from the plurality of clients to the plurality of proxy nodes in the switch;
Forwarding, at a proxy node, a request received from the switch to at least one cache node of a plurality of cache nodes; And
Processing a request received from at least one proxy node of the plurality of proxy nodes at a cache node
Including,
Delivering to the cache node,
Selecting the at least one cache node based on a cache server list in the proxy server included in the proxy node, and transmitting the request to the cache node; And
Controlling at least one of application initialization, startup and termination, monitoring, and heart beat (HB) of the proxy server by a node controller included in the proxy node;
Caching service providing method comprising a.
스위치에서 복수의 클라이언트로부터 수신된 요청을 복수의 콤보 노드로 분산하여 전달하는 단계;
상기 콤보 노드에서 상기 스위치로부터 수신되는 요청을 상기 콤보 노드가 포함하는 프록시 서버를 통해 상기 콤보 노드에 연결된 복수의 캐시 서버 중 적어도 하나의 캐시 서버로 전달하도록 제어하는 단계; 및
상기 콤보 노드에서 상기 적어도 하나의 캐시 서버가 상기 전달된 요청을 처리하도록 제어하는 단계
를 포함하는 캐싱 서비스 제공 방법.
Distributing and forwarding a request received from the plurality of clients to the plurality of combo nodes in the switch;
Controlling the combo node to forward a request received from the switch to at least one cache server of a plurality of cache servers connected to the combo node through a proxy server included in the combo node; And
Controlling the at least one cache server to process the forwarded request at the combo node
Caching service providing method comprising a.
제18항 또는 제19항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium having recorded thereon a program for performing the method of claim 18.
KR1020100087548A 2010-09-07 2010-09-07 Cache system and caching service providing method using structure of cache cloud KR101211207B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100087548A KR101211207B1 (en) 2010-09-07 2010-09-07 Cache system and caching service providing method using structure of cache cloud
JP2011187033A JP5753030B2 (en) 2010-09-07 2011-08-30 Caching system using cache cloud structure and method for providing caching service

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100087548A KR101211207B1 (en) 2010-09-07 2010-09-07 Cache system and caching service providing method using structure of cache cloud

Publications (2)

Publication Number Publication Date
KR20120025658A KR20120025658A (en) 2012-03-16
KR101211207B1 true KR101211207B1 (en) 2012-12-11

Family

ID=46056218

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100087548A KR101211207B1 (en) 2010-09-07 2010-09-07 Cache system and caching service providing method using structure of cache cloud

Country Status (2)

Country Link
JP (1) JP5753030B2 (en)
KR (1) KR101211207B1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9602614B1 (en) 2012-11-26 2017-03-21 Amazon Technologies, Inc. Distributed caching cluster client configuration
US9847907B2 (en) * 2012-11-26 2017-12-19 Amazon Technologies, Inc. Distributed caching cluster management
US9529772B1 (en) 2012-11-26 2016-12-27 Amazon Technologies, Inc. Distributed caching cluster configuration
KR101630640B1 (en) * 2014-08-05 2016-06-15 엔트릭스 주식회사 System for servicing cloud streaming, method of servicing cloud streaming and server for the same
JP5908057B1 (en) * 2014-12-16 2016-04-26 エヌ・ティ・ティ・アドバンステクノロジ株式会社 Database system and database control method
KR102050735B1 (en) * 2015-02-23 2019-12-03 에스케이플래닛 주식회사 Proxy server for cloud streaming service, cloud streaming system and method using the same
KR102050736B1 (en) * 2015-02-23 2020-01-08 에스케이플래닛 주식회사 Cloud streaming system and apparatus for caching date in the system
CN112990859B (en) * 2021-03-08 2022-12-27 浪潮云信息技术股份公司 Intelligent closed-loop supervision system based on market subject and implementation method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11296456A (en) * 1998-04-08 1999-10-29 Oki Electric Ind Co Ltd Proxy server for server integration
US6490615B1 (en) * 1998-11-20 2002-12-03 International Business Machines Corporation Scalable cache
JP2000207270A (en) * 1999-01-13 2000-07-28 Hitachi Ltd Www proxy device
JP2002351733A (en) * 2001-05-24 2002-12-06 Nec Commun Syst Ltd Network access system and server
JP2004038439A (en) * 2002-07-02 2004-02-05 Hitachi Ltd Web access relay system
JP2004070860A (en) * 2002-08-09 2004-03-04 Hitachi Ltd Stream contents distribution system and proxy server
JP2007066161A (en) * 2005-09-01 2007-03-15 Hitachi Ltd Cache system
JP4231065B2 (en) * 2006-06-16 2009-02-25 株式会社エヌ・ティ・ティ・ドコモ Seamless access communication system

Also Published As

Publication number Publication date
JP5753030B2 (en) 2015-07-22
KR20120025658A (en) 2012-03-16
JP2012059257A (en) 2012-03-22

Similar Documents

Publication Publication Date Title
KR101211207B1 (en) Cache system and caching service providing method using structure of cache cloud
US11677860B2 (en) Decentralization processing method, communication proxy, host, and storage medium
CN107947960B (en) Configuration information pushing method and system and configuration information receiving method and system
WO2022007552A1 (en) Processing node management method, configuration method and related apparatus
US8069237B2 (en) Network system, information management server, and information management method
CN103677967B (en) A kind of remote date transmission system of data base and method for scheduling task
US9450700B1 (en) Efficient network fleet monitoring
US20150347246A1 (en) Automatic-fault-handling cache system, fault-handling processing method for cache server, and cache manager
US8543692B2 (en) Network system
US8578379B2 (en) Managing memory overload of java virtual machines in web application server systems
CN105357296A (en) Elastic caching system based on Docker cloud platform
CN110830283B (en) Fault detection method, device, equipment and system
CN103812699A (en) Monitoring management system based on cloud computing
JP2004295811A (en) Storage system trouble management method and device with job management function
CN103581276A (en) Cluster management device and system, service client side and corresponding method
CN113946408A (en) Cloud native edge container control method and system and storage medium
CN114553900B (en) Distributed block storage management system, method and electronic equipment
KR101569038B1 (en) High Availability Load Balancing Method and Apparatus for Cluster Expanding and Reduciing Virtual Machine Automatically
CN106559282A (en) A kind of lock file management method and device
JP6115396B2 (en) Information processing system, information processing apparatus, information processing apparatus control program, and information processing system control method
KR101596325B1 (en) System for managing server/storge system
CN116886286A (en) Big data authentication service self-adaption method, device and equipment
CN105511952A (en) Resource self-migration method and system based on cloud computing platform
CN103795766B (en) A kind of P2SP multi-source download system
JP4909830B2 (en) Server application monitoring system and monitoring method

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
FPAY Annual fee payment

Payment date: 20151102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161024

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171011

Year of fee payment: 6