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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing 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.
Description
본 발명의 실시예들은 캐시 클라우드 구조를 이용한 캐시 시스템 및 캐싱 서비스 제공 방법에 관한 것이다.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
우선, 복수의 클라이언트(110) 중 하나의 클라이언트에서 스위치(121)를 통해 명령어가 전송되면, 이러한 명령어는 복수의 프록시 노드(122) 중 하나의 프록시 노드를 거쳐, 복수의 캐시 노드(123) 중 적어도 하나의 캐시 노드로 전달되어 처리될 수 있다. 이때, 적어도 하나의 캐시 노드에서 처리된 결과는 복수의 프록시 노드(122) 중 하나의 프록시 노드와 스위치(121)를 거쳐 해당 클라이언트로 전달된다. 즉, 복수의 프록시 노드(122)는 정보의 정합성을 위한 중계 역할을 수행할 수 있다.First, when a command is transmitted through the
스위치(121)는 복수의 프록시 노드(122)가 각각 포함하는 프록시 서버에 대한 부하를 분산하고, 헬스 체크(health check)를 담당한다.The
또한, 관리 영역(130)은 복수의 프록시 노드(122)와 복수의 캐시 노드(123)를 관리하고 모니터링함으로써, 보다 쉽게 캐시 시스템을 관리할 수 있게 돕는 역할을 수행할 수 있다. 이때, 관리 영역(130)은 관리 제어부(131)와 관리 웹(132)을 적어도 포함할 수 있다. 관리 제어부(131)와 사용자 인터페이스부(132)에 대해서는, 도 2에서 보다 자세히 설명한다.In addition, the
도 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
스위치(121)는 상술한 바와 같이 복수의 프록시 서버에 대한 부하를 분산시키고 헬스 체크를 담당한다. 예를 들어 헬스 체크의 주기를 5초로 설정하고, 그 이상 응답이 없는 프록시 서버는 장애가 발생한 것으로 판단하여 클라이언트의 요청이나 명령어 등을 전달하지 않는다.The
이때, 도 2에서는 복수의 프록시 노드 중 하나의 프록시 노드(220)와 복수의 캐시 노드 중 하나의 캐시 노드(230)만을 구체화하여 나타내고 있다. 실질적으로 복수의 프록시 노드와 복수의 캐시 노드가 각각 서로 통신할 수 있고, 이후 설명될 관리 노드(240)와도 각각 서로 통신할 수 있으나, 도 2에서는 설명의 편의를 위해 프록시 노드(220)와 캐시 노드(230)만을 이용하여 캐시 시스템을 설명한다.2 illustrates only one
복수의 프록시 노드들 각각은 복수의 캐시 노드들 중 하나 이상의 캐시 노드와 통신할 수 있으나, 도 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
프록시 노드(220)는 기존 캐시 서버(본 실시예에서는 상술한 맴캐쉬디 서버)를 위한 프로토콜을 지원하여 클라이언트가 범용적인 맴캐쉬디 클라이언트(211)를 그대로 이용 가능하도록 지원할 수 있다. 또한, 프록시 노드(220)는 정합적 해싱(consistent hashing)을 통해 캐시 데이터의 정합성을 제공할 수 있고, 캐시 노드들의 장애를 처리할 수 있다. 정합적 해싱과 캐시 노드들에 대한 장애 처리에 대해서는 이후 더욱 자세히 설명한다. 또한, 프록시 노드(220)는 연계된 캐시 노드들을 관리하는 통제 서버의 역할도 동시에 수행할 수 있다. 즉, 프록시 노드(220)의 자원에 대한 통계 정보를 제공하고, 실시간 부하 분산 기능을 제공할 수 있다.The
이러한 기능의 수행을 위해 프록시 노드(220)는 프록시 서버(221), 노드 제어부(222) 및 정보 수집부(223)를 세부 구성요소로 포함할 수 있다.In order to perform such a function, the
프록시 서버(221)는 스위치(121)를 통해 수신되는 클라이언트의 요청을 받아 해당 캐시 노드(230)의 맴캐쉬디(231)로 전송한다.The
노드 제어부(222)는 프록시 서버(221)의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 HB(Heart Beat)를 수행한다. 여기서, HB는 물리적인 장비와 어플리케이션이 정상적으로 동작하는가를 주기적으로 확인하는 동작을 의미할 수 있다. 즉, 캐시 시스템은 이러한 노드 제어부(222)를 이용하여 프록시 서버(221)의 중단 없이 캐시 서버를 추가 및 삭제할 수 있다. 예를 들어, 장애가 발생한 캐시 서버의 실시간 제거 및 프록시 서버의 성능이 임계값이 도달할 경우 캐시 서버의 증설과 같은 과정을 유연하게 처리할 수 있다.The
이때, 노드 제어부(222)는 관리 제어부(242)로부터 시작/중지/재시작 명령을 수신하여 프록시 프로세스를 시작/중지/재시작할 수 있다. 또한, 노드 제어부(222)는 프록시 서버(221)가 포함하는 캐시 서버 리스트에 새로운 캐시 서버를 추가하거나 기존 캐시 서버를 삭제하기 위한 명령을 관리 제어부(242)를 통해 수신하여 처리할 수 있다.In this case, the
정보 수집부(223)는 프록시 노드(220)의 자원을 모니터링한다. 이때, 모니터링된 결과는 이후 설명될 관리 노드(240)의 모니터링부(243)로 전송될 수 있다. 예를 들어, 정보 수집부(223)는 현재 프록시 노드(220)에서 복수의 클라이언트들로부터 수신한 모든 요청의 수와 캐시 노드(230)에서 응답받지 못한 요청의 수 등과 같은 통계 정보를 상기 모니터링된 결과로서 제공할 수 있다.The
캐시 노드(230)는 복수의 맴캐쉬디 서버(231), 노드 제어부(232) 및 정보 수집부(233)를 세부 구성요소로 포함할 수 있다.The
복수의 맴캐쉬디(231) 각각은 캐시 데이터의 저장소로서, 캐시 서버를 의미할 수 있다. 예를 들어, 복수의 맴캐쉬디(231) 각각은 맴캐쉬디 서버일 수 있다.Each of the plurality of
노드 제어부(232)는 캐시 서버의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 HB를 수행한다. 이때, 노드 제어부(222)는 관리 제어부(242)로부터 시작/중지/재시작 명령을 수신하여 캐시 프로세스를 시작/중지/재시작할 수 있다.The
정보 수집부(233)는 캐시 노드(230)의 자원을 모니터링한다. 이 경우에도 모니터링된 결과는 관리 노드(240)의 모니터링부(243)로 전송될 수 있다.The
관리 노드(240)는 메시지 중계부(241), 관리 제어부(242), 모니터링부(243), WAS(Web Application Server)(244), RDB(245) 및 RRD(246)를 포함할 수 있다.The
메시지 중계부(241)는 프록시 노드(220)의 노드 제어부(222) 및 캐시 노드(230)의 노드 제어부(232)로부터 전송되는 정보를 수신하여 관리 제어부(242)로 전송하는 중계 역할을 수행할 수 있다.The
관리 제어부(242)는 메시지 중계부(241)를 통해 노드 제어부(222 및 230)에서 수신된 정보를 통해 각 노드들의 상태를 파악하고, 각 노드들에 시작 및 종료의 명령을 내리고, 각 노드들의 통계 정보를 바탕으로 각 노드들의 헬스 체크를 수행한다. 또한, 필요에 따라 각 노드들의 교체 역시 관리 제어부(242)가 담당할 수 있다.The
예를 들어, 관리 제어부(242)는 노드 제어부(222 및 232)에서 전송하는 HB를 이용하여 프록시 노드(220)나 캐시 노드(230)의 장애를 탐지하고 처리할 수 있다. 장애의 탐지 및 처리에 대해서는 이후 더욱 자세히 설명한다.For example, the
또한, 관리 제어부(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
뿐만 아니라, 관리 제어부(242)는 관리자로부터 수신되는 프록시 노드(220)나 캐시 노드(230)의 시작/중지/재시작 명령을 처리할 수 있다. 이를 위해, 관리 제어부(242)는 프록시 노드(220) 및 캐시 노드(230)의 노드 제어부(222 및 232)로 시작/중지/재시작을 요청할 수 있다.In addition, the
모니터링부(243)는 상술한 바와 같이 정보 수집부(223 및 233)로부터 프록시 노드(220)와 캐시 노드(230)의 자원에 대한 모니터링된 결과를 수신하여 통계 정보를 생성할 수 있다. 예를 들어, 모니터링부(243)는 프록시 노드(220)와 캐시 노드(230)의 정보 수집부(223 및 233)로부터 자원 데이터를 수신할 수 있고, 이러한 자원 데이터를 분석하여 RRD(246)에 저장할 수 있다.The
또한, 모니터링부(243)는 관리 제어부(242)로부터 수신된 QoS 데이터를 분석하여 QoS 데이터의 크기에 따라 RRD(246)에 저장할 수 있다.In addition, the
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
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
도 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
상술한 바와 같이, 기존의 맴캐쉬디 클라이언트와 맴캐쉬디 서버의 형태에서는 서버의 장애가 바로 클라이언트의 장애로 확산될 수 있다. 그러나, 본 실시예에서는 프록시 서버를 중간 매개체로 이용하여 장애에 보다 안정적으로 대처할 수 있다.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
여기서, 캐시 클라우드 영역(420)은 스위치(421) 및 복수의 콤보 노드를 포함할 수 있다. 도 4에서는 복수의 콤보 노드 중 콤보 노드 1(431)과 콤보 노드 N(432)을 구체적으로 나타내고 있다. 이때, 각각의 콤보 노드는 프록시 서버, 복수의 캐시 서버, 노드 제어부 및 정보 수집부를 포함할 수 있다. 도 4에서 삼각형 도형은 프록시 서버를, 원통 도형은 캐시 서버를 각각 의미할 수 있다. 그리고, "N"이 쓰여진 원 도형은 노드 제어부를, "C"가 쓰여진 원 도형은 정보 수집부를 각각 의미할 수 있다.Here, the
또한, 관리 영역(430)은 관리 제어부와 사용자 인터페이스부를 포함할 수 있다. 이때, 도 4에서 "AC"가 쓰여진 원 도형은 관리 제어부를, "UI"가 쓰여진 원 도형은 사용자 인터페이스부를 각각 의미할 수 있다.In addition, the
본 실시예에 따른 캐시 시스템은 도 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
스위치(421)는 복수의 콤보 노드 각각이 포함하는 프록시 서버에 대한 부하를 분산하고, 헬스 체크(health check)를 담당한다.The
또한, 관리 영역(430)은 복수의 콤보 노드를 관리하고 모니터링함으로써, 보다 쉽게 캐시 시스템을 관리할 수 있게 돕는 역할을 수행할 수 있다.In addition, the
도 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
스위치(421)는 상술한 바와 같이 복수의 콤보 노드 각각이 포함하는 프록시 서버에 대한 부하를 분산시키고 헬스 체크를 담당한다. 예를 들어 헬스 체크의 주기를 5초로 설정하고, 그 이상 응답이 없는 프록시 서버는 장애가 발생한 것으로 판단하여 클라이언트의 요청이나 명령어 등을 전달하지 않는다.As described above, the
이때, 도 5에서는 복수의 콤보 노드 중 콤보 노드 N(432)만을 구체화하여 나타내고 있다. 도 5에서는 설명의 편의를 위해 콤보 노드 N(432)을 위주로 캐싱 서비스에 대해 설명한다.5 illustrates only the
콤보 노드 N(432)는 기존 캐시 서버(본 실시예에서는 상술한 맴캐쉬디 서버)를 위한 프로토콜을 지원하여 클라이언트가 범용적인 맴캐쉬디 클라이언트(511)를 그대로 이용 가능하도록 지원할 수 있다. 또한, 콤보 노드 N(432)는 프록시 서버(520)를 이용하여 정합적 해싱을 통해 캐시 데이터의 정합성을 제공할 수 있고, 캐시 노드들의 장애를 처리할 수 있다. 정합적 해싱과 캐시 노드들에 대한 장애 처리에 대해서는 이미 자세히 설명하였고, 본 실시예에서도 동일한 방법을 사용하기 때문에 반복적인 설명은 생략한다. 이때, 프록시 서버(520)는 연계된 캐시 노드들을 관리하는 통제 서버의 역할도 동시에 수행할 수 있다. 또한, 콤보 노드 N(432)는 프록시 서버(520)와 캐시 서버들인 복수의 맴캐쉬디(530) 각각의 자원에 대한 통계 정보를 제공하고, 실시간 부하 분산 기능을 제공할 수 있다.The
이러한 기능의 수행을 위해 콤보 노드 N(432)는 프록시 서버(520), 복수의 맴캐쉬디(530), 노드 제어부(540) 및 정보 수집부(550)를 세부 구성요소로 포함할 수 있다.In order to perform such a function, the
프록시 서버(520)는 스위치(421)를 통해 수신되는 클라이언트의 요청을 받아 해당 맴캐쉬디(530)로 전송한다.The
복수의 맴캐쉬디(530) 각각은 캐시 데이터의 저장소로서, 캐시 서버를 의미할 수 있다. 예를 들어, 복수의 맴캐쉬디(530) 각각은 맴캐쉬디 서버일 수 있다. 이때, 프록시 서버(520)로부터 클라이언트의 요청을 전달받은 캐시 서버는 요청과 관련된 명령어에 따라 캐시 데이터를 저장하거나 제공할 수 있다.Each of the plurality of
노드 제어부(540)는 콤보 노드 N(432)의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 HB를 수행할 수 있다. 즉, 캐시 시스템은 이러한 노드 제어부(540)를 이용하여 프록시 서버(520)의 중단 없이 캐시 서버를 추가 및 삭제할 수 있다. 예를 들어, 장애가 발생한 캐시 서버의 실시간 제거 및 프록시 서버의 성능이 임계값이 도달할 경우 캐시 서버의 증설과 같은 과정을 유연하게 처리할 수 있다.The
이때, 노드 제어부(540)는 관리 노드(560)로부터 시작/중지/재시작 명령을 수신하여 프록시 프로세스를 시작/중지/재시작할 수 있다. 또한, 노드 제어부(540)는 프록시 서버(520)가 포함하는 캐시 서버 리스트에 새로운 캐시 서버를 추가하거나 기존 캐시 서버를 삭제하기 위한 명령을 관리 노드(560)를 통해 수신하여 처리할 수 있다. 관리 노드(560)는 도 2에서 프록시 노드(220) 및 캐시 노드(230)와 통신하는 것이 아니라 도 5에서와 같이 복수의 콤보 노드들과 통신한다는 점을 제외하고는 도 2를 통해 설명한 관리 노드(240)와 동일하게 동작할 수 있기 때문에 반복적인 설명은 생략한다.In this case, the
정보 수집부(550)는 콤보 노드 N(432)의 자원을 모니터링한다. 이때, 모니터링된 결과는 이후 설명될 관리 노드(560)로 전송될 수 있다. 예를 들어, 정보 수집부(550)는 현재 프록시 서버(520)에서 복수의 클라이언트들로부터 수신한 모든 요청의 수와 복수의 맴캐쉬디(530)에서 응답받지 못한 요청의 수 등과 같은 통계 정보를 상기 모니터링된 결과로서 제공할 수 있다.The
도 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
단계(620)에서 프록시 노드는 스위치로부터 수신되는 요청을 복수의 캐시 노드 중 적어도 하나의 캐시 노드로 전달한다. 복수의 프록시 노드들 각각은 복수의 캐시 노드들 중 하나 이상의 캐시 노드와 통신할 수 있다. 즉, 프록시 노드는 기존 캐시 서버를 위한 프로토콜을 지원하여 클라이언트가 범용적인 맴캐쉬디 클라이언트를 그대로 이용 가능하도록 지원할 수 있다.In
여기서, 프록시 노드는 정합적 해싱을 통해 캐시 데이터의 정합성을 제공할 수 있고, 캐시 노드들의 장애를 처리할 수 있다. 또한, 프록시 노드는 연계된 캐시 노드들을 관리하는 통제 서버의 역할도 동시에 수행할 수 있다. 즉, 프록시 노드는 자원에 대한 통계 정보를 제공하고, 실시간 부하 분산 기능을 제공할 수 있다.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
도 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
단계(720)에서 콤보 노드는 스위치로부터 수신되는 요청을 콤보 노드가 포함하는 프록시 서버를 통해 콤보 노드에 연결된 복수의 캐시 서버 중 적어도 하나의 캐시 서버로 전달하도록 제어한다. 즉, 콤보 노드는 프록시 서버와 복수의 캐시 서버를 포함할 수 있다. 이때, 콤보 노드는 프록시 서버를 통해 실시간 부하 분산 기능을 제공할 수 있고, 복수의 캐시 서버에 대한 정합적 해싱을 보장할 수 있다. 또한, 캐시 서버들의 장애를 처리할 수도 있다.In
이러한 콤보 노드는 콤보 노드의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 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
도 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.
상기 복수의 프록시 노드 각각은,
해당 프록시 노드의 자원을 모니터링하여 통계 정보를 생성하는 정보 수집부
를 더 포함하는, 캐시 시스템.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.
상기 노드 제어부는,
시작, 중지 및 재시작 명령을 수신하여 상기 프록시 서버의 프로세스를 시작, 중지 및 재시작하는, 캐시 시스템.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.
상기 노드 제어부는,
캐시 서버 추가/삭제 명령에 기초하여 상기 캐시 서버 리스트에 캐시 서버를 추가하거나 또는 상기 캐시 서버 리스트에서 캐시 서버를 삭제하는, 캐시 시스템.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.
상기 정보 수집부는,
상기 복수의 클라이언트로부터 상기 해당 프록시 노드로 전송된 모든 요청의 수와 상기 복수의 캐시 노드 중 상기 요청을 전달한 캐시 노드로부터 응답받지 못한 요청의 수 중 적어도 하나에 대한 정보를 통계 정보로서 생성하는, 캐시 시스템.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.
상기 복수의 캐시 노드 각각은,
상기 요청에 따른 데이터를 저장하거나 또는 상기 요청에 따른 데이터를 제공하는 복수의 캐시 서버;
상기 복수의 캐시 서버 각각의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 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.
상기 노드 제어부는,
기선정된 명령의 수행시간에 기초하여 데이터 크기 별 응답속도를 측정하는, 캐시 시스템.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.
상기 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.
상기 복수의 프록시 노드와 상기 복수의 캐시 노드로부터 수신되는 데이터에 기초하여 상기 복수의 프록시 노드 및 상기 복수의 캐시 노드를 관리하는 관리 노드
를 더 포함하는 캐시 시스템.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.
상기 관리 노드는,
상기 복수의 프록시 노드와 상기 복수의 캐시 노드가 각각 포함하는 노드 제어부로부터 수신된 정보를 관리 제어부로 전달하는 메시지 중계부;
상기 메시지 중계부를 통해 수신된 정보에 기초하여 상기 복수의 프록시 노드와 상기 복수의 캐시 노드에 대한 상태를 파악하고, 상기 복수의 프록시 노드와 상기 복수의 캐시 노드 각각에 대한 시작 및 종료 명령을 제공하는 상기 관리 제어부;
상기 복수의 프록시 노드와 상기 복수의 캐시 노드가 각각 포함하는 정보 수집부로부터 수신된 정보를 이용하여 통계 정보를 생성하는 모니터링부;
네트워크를 통해 접속하는 관리자 단말기와 통신하는 사용자 인터페이스부; 및
상기 관리 제어부 및 상기 모니터링부에서 생성되는 정보를 저장하는 데이터베이스
를 포함하는, 캐시 시스템.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.
상기 관리 제어부는,
상기 복수의 프록시 노드와 상기 복수의 캐시 노드가 각각 포함하는 노드 제어부를 통해 수신되는 데이터 크기 별 응답속도에 대한 정보 및 상기 관리 제어부가 측정하는 데이터 크기 별 응답속도에 대한 정보를 상기 모니터링부로 전송하는, 캐시 시스템.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.
상기 모니터링부는,
상기 관리 제어부로부터 수신되는 데이터 크기 별 응답속도에 대한 정보를 데이터의 크기에 따라 상기 데이터베이스에 저장하는, 캐시 시스템.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.
상기 관리 제어부는,
상기 사용자 인터페이스부를 통해 수신되는 상기 관리자 단말기의 명령에 기초하여 상기 복수의 프록시 노드와 상기 복수의 캐시 노드 각각에 대한 시작 및 종료 명령을 제공하는, 캐시 시스템. 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.
상기 노드 제어부는,
캐시 서버 추가/삭제 명령에 기초하여 캐시 서버 리스트에 캐시 서버를 추가하거나 또는 상기 캐시 서버 리스트에서 캐시 서버를 삭제하는, 프록시 시스템.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.
상기 복수의 콤보 노드 각각은,
해당 콤보 노드의 어플리케이션 초기화, 시작 및 종료, 모니터링 및 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.
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)
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)
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 |
-
2010
- 2010-09-07 KR KR1020100087548A patent/KR101211207B1/en active IP Right Grant
-
2011
- 2011-08-30 JP JP2011187033A patent/JP5753030B2/en active Active
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 |