KR20150103477A - 분산환경 기반의 캐쉬 관리 장치 및 방법 - Google Patents

분산환경 기반의 캐쉬 관리 장치 및 방법 Download PDF

Info

Publication number
KR20150103477A
KR20150103477A KR1020140024977A KR20140024977A KR20150103477A KR 20150103477 A KR20150103477 A KR 20150103477A KR 1020140024977 A KR1020140024977 A KR 1020140024977A KR 20140024977 A KR20140024977 A KR 20140024977A KR 20150103477 A KR20150103477 A KR 20150103477A
Authority
KR
South Korea
Prior art keywords
cache
cache data
node
data
distributed
Prior art date
Application number
KR1020140024977A
Other languages
English (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 KR1020140024977A priority Critical patent/KR20150103477A/ko
Priority to US14/245,890 priority patent/US20150248350A1/en
Publication of KR20150103477A publication Critical patent/KR20150103477A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0824Distributed directories, e.g. linked lists of caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명에 따르면, 분산 환경 기반의 캐쉬 서비스에 있어서 분산 환경의 다수의 서로 다른 서버 노드에서의 캐쉬 위치 정보를 기록한 캐쉬 분배 상태 표시부를 각 노드에 구비시키고, 캐쉬 데이터의 변경 시 동기화를 통해 각 노드의 캐쉬 분배 상태 표시부상 해당 캐쉬 데이터의 정보가 갱신되도록 하여 캐쉬 위치 정보의 정합성을 보장시킴으로써 네트워크 및 디스크 접근을 최소화하여 네트워크 처리 효율성을 증대시킬 수 있도록 한다.

Description

분산환경 기반의 캐쉬 관리 장치 및 방법{APPARATUS AND METHOD FOR MANAGING CACHE IN CACHE DISTRIBUTED ENVIRONMENT}
본 발명은 캐쉬 서비스(cache service)에 관한 것으로, 특히 분산 환경 기반의 캐쉬 서비스에 있어서, 분산 환경의 다수의 서로 다른 서버 노드(node)에서의 캐쉬 위치 정보를 기록한 캐쉬 분배 상태 표시부(cache distribution status view)를 각 노드에 구비시키고, 캐쉬 데이터의 변경 시 동기화(synchronization)를 통해 각 노드의 캐쉬 분배 상태 표시부상 해당 캐쉬 데이터의 정보가 갱신되도록 하여 캐쉬 위치 정보의 정합성을 보장시킴으로써 네트워크 및 디스크(disk) 접근을 최소화하여 네트워크 처리 효율성을 증대시킬 수 있도록 하는 분산환경 기반의 캐쉬 관리 장치 및 방법에 관한 것이다.
일반적으로 캐쉬(cache)를 제어하는 기술은 다양한 영역에서 활용되고 검증되어 왔다. 마찬가지로 분산 환경이 지니는 무한 확장성과 높은 가용성의 장점을 활용하기 위한 기술도 끊임없이 발전해 오고 있다.
이러한 캐쉬의 사용을 통해 이익을 얻기 위해서는 I/O-bound 애플리케이션(application)에서의 디스크(disk) 또는 네트워크 동작(network operations)에 대한 효율적 처리가 요구된다. 특히 많은 애플리케이션이 사용하는 데이터베이스(database)의 경우는 디스크와 네트워크 접근이 함께 발생하기 때문에 캐쉬 등을 이용하여 데이터베이스로부터 가져온 데이터의 재사용 여부에 따라 데이터베이스의 성능 향상이 달려있다.
이를 위해 종래에는 지속적 오브젝트 관계 캐싱(persistent object relational caching)을 통해 성능 향상을 도모하고 있다. 또한, 분산 컴퓨팅 환경에서는 서로 다른 자바가상머신(JAVA Virtual Machine : JVM)과의 네트워크 통신이 필수적이며 이를 위해 활용되는 기술은 RMI, JMX 등이다.
위와 같은 캐쉬와 분산 환경 제어 기술이 결합되어 분산 캐쉬 서비스(cache service)가 제시되고 있는데 이것이 적용된 대표적 캐쉬 서비스로 분산 캐싱(distributed caching)과 복제 캐싱(replicated caching) 등이 있다.
먼저, 복제 캐싱은 각 멤버 노드에 동일한 캐쉬 정보를 복제하여 캐쉬 서비스를 제공하는 방법으로서, put 연산 등에 의한 정보 변경이 빈번하지 않고 데이터가 소량이면서 인프로세스(in-process)에 활용되는 경우 유용하다. 이러한 복제 캐싱을 위해서는 서로 다른 서버가 다수의 노드를 형성하는 분산환경에서 한 노드의 변경 내용에 대한 전파와 동기화 기술이 필수적으로 요구된다.
다음으로 분산 캐싱은 분산 환경의 서버 노드 자원을 최대한 균등하게 활용하기 위해 키(key)에 대한 파티셔닝(partitioning) 알고리즘을 적용하여 서버에 고르게 분산 저장 활용하는 캐쉬 서비스 유형이다. 이를 위해 언제나 키에 대한 고정된(static) 위치(location) 결정이 가능해야 한다.
이와 같이 종래 캐쉬 서비스는 정합성이 보장되는 분산 네트워크 처리 기술, 분산 자원의 고른 활용, 분산 환경에서의 성능 보장을 목표로 다양한 기술적 접근이 시도되고 있다.
대한민국 공개특허번호 10-2005-0022272호(공개일자 2005년 03월 07일)
따라서, 본 발명에서는 분산 환경 기반의 캐쉬 서비스에 있어서, 분산 환경의 다수의 서로 다른 서버 노드에서의 캐쉬 위치 정보를 기록한 캐쉬 분배 상태 표시부를 각 노드에 구비시키고, 캐쉬 데이터의 변경 시 동기화를 통해 각 노드의 캐쉬 분배 상태 표시부상 해당 캐쉬 데이터의 정보가 갱신되도록 하여 캐쉬 위치 정보의 정합성을 보장시킴으로써 네트워크 및 디스크 접근을 최소화하여 네트워크 처리 효율성을 증대시킬 수 있도록 하는 분산환경 기반의 캐쉬 관리 장치 및 방법을 제공하고자 한다.
상술한 본 발명은 분산 환경 기반의 캐쉬 관리 장치로서, 기설정된 메모리 용량만큼의 제1 캐쉬 데이터를 저장하고 있는 로컬 캐쉬와, 상기 로컬 캐쉬에 저장된 제1 캐쉬 데이터와 분산 환경 기반의 다른 노드에 저장된 제2 캐쉬 데이터의 위치 정보와 상태 정보를 기록하는 캐쉬 분배 상태 표시부와, 상기 캐쉬 분배 상태 표시부에 기록되는 제1 캐쉬 데이터와 제2 캐쉬 데이터에 대한 위치 정보와 상태 정보를 상기 다른 노드와 동기화되도록 동기화시키는 동기 처리부와, 임의의 애플리케이션으로부터 상기 다수의 노드에 분산 저장된 특정 캐쉬 데이터 요청 수신 시, 상기 캐쉬 분배 상태 표시부를 참조하여 상기 요청된 캐쉬 데이터의 위치를 확인하고, 캐쉬 데이터가 위치된 다른 노드 또는 상기 로컬 캐쉬로부터 상기 요청된 캐쉬 데이터를 검색하여 상기 애플리케이션으로 제공하는 분산 캐쉬 연산 제어부를 포함한다.
또한, 상기 분산 캐쉬 연산 제어부는, 상기 캐쉬 데이터 요청이 상기 다수의 노드에 분산 저장된 캐쉬 데이터에 대한 읽기(get) 요청인 경우, 상기 캐쉬 분배 상태 표시부를 참조하여 상기 분산 환경 기반내 상기 캐쉬 데이터가 저장된 노드를 확인하여 상기 요청된 캐쉬 데이터를 제공하는 것을 특징으로 한다.
또한, 상기 분산 캐쉬 연산 제어부는, 상기 요청된 캐쉬 데이터가 상기 로컬 캐쉬에 저장되어 있는 경우 상기 로컬 캐쉬로부터 해당 캐쉬 데이터를 검색하여 제공하며, 상기 요청된 캐쉬 데이터가 상기 다른 노드에 저장되어 있는 경우 통신을 통해 상기 다른 노드로 상기 캐쉬 데이터를 요청하고, 상기 요청에 응답하여 상기 다른 노드가 전송하는 캐쉬 데이터를 수신하여 상기 애플리케이션으로 제공하는 것을 특징으로 한다.
또한, 상기 분산 캐쉬 연산 제어부는, 상기 캐쉬 데이터 요청이 상기 다수의 노드에 분산 저장된 캐쉬 데이터에 대한 쓰기(put request) 요청인 경우, 상기 요청에 따라 새로운 캐쉬 데이터를 생성하고, 상기 다른 노드 또는 로컬 캐쉬에 저장된 이전 캐쉬 데이터를 삭제시키는 것을 특징으로 한다.
또한, 상기 동기 처리부는, 상기 캐쉬 데이터에 대한 변경이 발생하는 경우, 동일한 캐쉬 데이터 정보를 저장하고 있는 상기 다른 노드로 상기 캐쉬 데이터의 변경사항을 통보하여 상기 다른 노드의 캐쉬 데이터에 대해서도 동일한 변경 내용이 적용되도록 하는 것을 특징으로 한다.
또한, 상기 캐쉬 데이터의 변경 내용은, 상기 다른 노드의 캐쉬 분배 상태 표시부에도 갱신되는 것을 특징으로 한다.
또한, 본 발명은 분산 환경 기반의 캐쉬 관리 방법으로서, 분산 환경 기반의 각 노드에서 로컬 캐쉬에 기설정된 메모리 용량만큼의 제1 캐쉬 데이터를 저장하는 단계와, 상기 저장된 제1 캐쉬 데이터와 상기 분산 환경 기반의 다른 노드에 저장된 제2 캐쉬 데이터의 위치 정보와 상태 정보를 상기 각 노드에 구비되는 캐쉬 분배 상태 표시부에 기록하는 단계와, 상기 캐쉬 분배 상태 표시부에 기록되는 제1 캐쉬 데이터와 제2 캐쉬 데이터에 대한 위치 정보와 상태 정보를 상기 제1 캐쉬 데이터와 제2 캐쉬 데이터상 상태 변경 발생 시마다 상기 다른 노드와 동기화시키는 단계와, 임의의 애플리케이션으로부터 상기 다수의 노드에 분산 저장된 특정 캐쉬 데이터 요청 수신 시, 상기 캐쉬 분배 상태 표시부를 참조하여 상기 요청된 캐쉬 데이터의 위치를 확인하는 단계와, 캐쉬 데이터가 저장된 상기 다른 노드 또는 상기 로컬 캐쉬로부터 상기 요청된 캐쉬 데이터를 검색하여 상기 애플리케이션으로 제공하는 단계를 포함한다.
또한, 상기 제공하는 단계는, 상기 캐쉬 데이터 요청이 상기 다수의 노드에 분산 저장된 캐쉬 데이터에 대한 읽기(get) 요청인 경우, 상기 캐쉬 분배 상태 표시부를 참조하여 상기 분산 환경 기반내 상기 캐쉬 데이터가 저장된 노드를 확인하는 단계와, 상기 확인된 노드로부터 상기 요청된 캐쉬 데이터를 검색하여 상기 애플리케이션으로 제공하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 제공하는 단계는, 상기 요청된 캐쉬 데이터가 상기 로컬 캐쉬에 저장되어 있는 경우 상기 로컬 캐쉬로부터 해당 캐쉬 데이터를 검색하여 제공하는 단계와, 상기 요청된 캐쉬 데이터가 상기 다른 노드에 저장되어 있는 경우 통신을 통해 상기 다른 노드로 상기 캐쉬 데이터를 요청하는 단계와, 상기 요청에 응답하여 상기 다른 노드가 전송하는 캐쉬 데이터를 수신하여 상기 애플리케이션으로 제공하는 단계를 더 포함하는 것을 특징으로 한다.
또한, 상기 제공하는 단계는, 상기 캐쉬 데이터 요청이 상기 다수의 노드에 분산 저장된 캐쉬 데이터에 대한 쓰기(put request) 요청인 경우, 상기 요청에 따라 새로운 캐쉬 데이터를 생성하는 단계와, 상기 다른 노드 또는 로컬 캐쉬에 저장된 이전 캐쉬 데이터를 삭제시키는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 제공하는 단계이 후, 상기 캐쉬 데이터에 대한 변경이 발생하는 경우, 동일한 캐쉬 데이터 정보를 저장하고 있는 상기 다른 노드로 상기 캐쉬 데이터의 변경사항을 통보하여 상기 다른 노드의 캐쉬 데이터에 대해서도 동일한 변경 내용이 적용되도록 하는 단계를 더 포함하는 것을 특징으로 한다.
또한, 상기 캐쉬 데이터의 변경 내용은, 상기 다른 노드의 캐쉬 분배 상태 표시부에도 갱신되는 것을 특징으로 한다.
본 발명에 따르면, 분산 환경 기반의 캐쉬 서비스에 있어서 분산 환경의 다수의 서로 다른 서버 노드에서의 캐쉬 위치 정보를 기록한 캐쉬 분배 상태 표시부를 각 노드에 구비시키고, 캐쉬 데이터의 변경 시 동기화를 통해 각 노드의 캐쉬 분배 상태 표시부상 해당 캐쉬 데이터의 정보가 갱신되도록 하여 캐쉬 위치 정보의 정합성을 보장시킴으로써 네트워크 및 디스크 접근을 최소화하여 네트워크 처리 효율성을 증대시킬 수 있도록 하는 이점이 있다.
도 1은 본 발명의 실시예에 따른 캐쉬 분배 상태 표시부가 적용된 분산환경 기반의 서버 노드의 구조도,
도 2는 본 발명의 실시예에 따른 분산환경 기반의 캐쉬 관리 장치의 상세 블록 구성도,
도 3은 본 발명의 실시예에 따른 get 연산 시의 캐쉬 서비스 처리 개념도,
도 4는 본 발명의 실시예에 따른 put 연산 시의 캐쉬 서비스 처리 개념도,
도 5는 본 발명의 실시예에 따른 분산환경 기반의 캐쉬 관리 장치에서 사용자 get 요청을 처리하는 동작 제어 흐름도,
도 6은 본 발명의 실시예에 따른 분산환경 기반의 캐쉬 관리 장치에서 사용자 get 요청을 처리하는 동작 제어 흐름도,
도 7은 본 발명의 실시예에 따른 put 연산 수행 후, 하부 네트워크 처리단에서 다른 노드들로 동기화 명령을 수행하는 동작 흐름도,
도 8은 본 발명의 실시예에 따른 동기화 명령을 수신한 임의의 노드의 네트워크 단에서 동기화 명령을 수행하는 동작 흐름도.
이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 실시예에 따른 캐쉬 분배 상태 표시부가 적용된 분산환경 기반의 서버 노드의 구조를 도시한 것이다.
위 도 1을 참조하면, 분산환경 기반의 각 서버 노드는 기설정된 메모리의 용량의 캐쉬 데이터를 저장하는 로컬 캐쉬(local cache)(102)를 구비한다. 또한, 서로 다른 서버 노드의 캐쉬 데이터를 백업(back up)하여 저장하는 백업 캐쉬(backup cache)(104)를 구비한다. 이때, 예를 들어 노드 1(100)의 서버의 백업 캐쉬(104)에는 노드 3(300)의 서버의 로컬 캐쉬(302)에 저장된 캐쉬 데이터(E,F)가 저장될 수 있으며, 노드 2(200)의 서버의 백업 캐쉬(204)에는 노드 1(100)의 서버의 로컬 캐쉬(102)에 저장된 캐쉬 데이터(A,B)가 저장될 수 있다.
또한, 분산 환경 기반의 캐쉬 서비스에 있어서, 분산 환경의 다수의 서로 다른 서버 노드에서의 캐쉬 위치 정보를 기록한 캐쉬 분배 상태 표시부(Cache Distribution Status View)(106)를 구비할 수 있다.
이러한, 캐쉬 분배 상태 표시부(106)는 분산 환경에서 관리되는 캐쉬(cache)의 위치 정보와 상태 정보를 관리하기 위한 정보 구성체이다. 이를 위해 키(key), 엔트리(entry)로 구성된 맵(map) 자료유형을 적용하고 있으며, 엔트리(entry)는 다시 캐쉬 위치(cache location)와 캐쉬 상태(cache state)의 정보 단위로 분해된다. 위와 같은 맵 정보 구성 시 키는 손실 없는 압축 상태로 관리된다. 또한, 위치는 키에 해당하는 값(value)이 위치하고 있는 캐쉬 노드(cache nodes)와 노드 클럭(node-clock)을 의미하며, 애플리케이션(app)으로부터 키에 대한 접근 요구 발생 시 분산 환경에서 위치를 특정하는 데에 중요한 역할을 한다.
여기서, 단위 캐쉬 엔트리(cache entry)는 상태 변화가 필연적으로 발생하게 되고, 이에 대한 상태(state) 정보를 캐쉬 분배 상태 표시부(106)에서 관리한다. 이때 캐쉬 분배 상태 표시부(106)에 기록되는 엔트리 상태(entry state)는 신규로 생성된 상태를 의미하는 W(ritten), 원격 노드로부터 읽기(get)한 값이 재사용을 위해 로컬에 니어 캐쉬(Near cache)로 생성되어 있는 N(ear-copy), 제거된 상태를 의미하는 D(eleted)로 정의되어 기록될 수 있다.
이때, 분산 환경하에서의 캐시 서비스 제어는 필수적으로 네트워크 처리에 대한 세밀한 제어가 요구되며 고려해야 할 대상은 크게 두 가지로 구분된다. 하나는 캐쉬 분배 상태 표시부(106)의 동기를 맞추는 것이고, 다른 하나는 캐쉬 데이터의 값(value) 자체를 네트워크를 통해 쓰기(put)를 수행하거나 읽기(get)를 수행하는 부분이다. 뷰(view)의 경우는 작은 패킷(packet)에 대해 참여하고 있는 모든 노드에 반영해야 하므로 신뢰성있는 멀티캐스트(reliable multicast)를 적용한다. 반면 put/get의 경우 유니캐스트(unicast)를 통해 신뢰성 보장을 보다 강화한다.
즉, 본 발명에서는 분산환경 기반에서 캐쉬 정보 저장 위치의 결정에 있어서 쓰기 요청(put request)을 받은 노드 자신(local)이 저장 위치가 되는 지역 기반(Locality-based) 분산 캐쉬 토폴로지(Cache Topology) 유형 적용 시, 최소의 네트워크 및 디스크 접근, 적은 컴퓨팅 자원 사용으로 분산 노드간 캐쉬 위치 정보 정합성이 보장되는 캐쉬 분배 상태 표시부 메커니즘을 사용한다. 또한, 캐쉬 서비스를 구성하는 데에 있어 각 멤버 노드의 로컬에 분산되어 존재하는 캐쉬의 위치 정보를 공유하는 글로벌 캐쉬(global cache) 요약 정보로 정의될 수 있는 캐쉬 분배 상태 표시부(106)를 모든 멤버 노드가 보유하게 함으로써 캐쉬의 존재 유무, 캐쉬의 상태, 캐쉬의 존재 위치를 파악하는 데에 있어 불필요한 네트워크 통신 및 디스크 접근을 방지하는 캐쉬 서비스가 가능해 진다.
한편, 도 1에서는 캐쉬 분배 상태 표시부(106)가 적용되는 일반적인 캐쉬 서비스의 유형으로 지역 기반을 예로 들어 캐쉬의 읽기(put) 연산을 요청 받은 멤버 노드가 해당 캐쉬를 보유하고 그 상황을 캐쉬 분배 상태 표시부(106)에 반영하여 공유하는 서비스 형태를 설명하였지만, 이를 응용하여 다양한 토폴로지(Partitioned + Distribution Status View, Replicated + Distribution Status View 등)의 복합 캐쉬 서비스를 설계하는 것도 가능하다.
도 2는 본 발명의 실시예에 따른 분산환경 기반의 캐쉬 관리 장치의 상세 블록 구성을 도시한 것으로, 로컬 캐쉬(102), 캐쉬 분배 상태 표시부(106), 동기 처리부(160), 분산 캐쉬 연산 제어부(150) 등을 포함할 수 있다.
이하, 도 2를 참조하여 본 발명의 분산환경 기반의 캐쉬 관리 장치의 각 구성요소에서의 동작을 상세히 설명하기로 한다.
먼저, 로컬 캐쉬(102)는 기설정된 메모리 용량만큼의 제1 캐쉬 데이터를 저장한다. 캐쉬 분배 상태 표시부(106)는 로컬 캐쉬(102)에 저장된 제1 캐쉬 데이터와 분산 환경의 다른 노드에 저장된 제2 캐쉬 데이터의 위치 정보와 상태 정보를 기록한다.
동기 처리부(160)는 캐쉬 분배 상태 표시부(106)에 기록되는 제1 캐쉬 데이터와 제2 캐쉬 데이터에 대한 위치 정보와 상태 정보가 분산환경내 다른 노드와 동기화되도록 동기화시킨다.
분산 캐쉬 연산 제어부(150)는 임의의 애플리케이션으로부터 분산 환경내 다수의 노드에 분산 저장된 특정 캐쉬 데이터 요청 수신 시, 캐쉬 분배 상태 표시부(106)를 참조하여 상기 요청된 캐쉬 데이터의 위치를 확인하고, 캐쉬 데이터가 위치된 다른 노드 또는 로컬 캐쉬(102)를 이용하여 처리한다.
즉, 분산 캐쉬 연산 제어부(150)는 예를 들어 캐쉬 데이터 요청이 상기 분산 환경내 다수의 노드에 분산 저장된 캐쉬 데이터에 대한 읽기(get) 요청인 경우(S30, S30'), 도 3에서 보여지는 바와 같이 캐쉬 데이터의 키 정보와 캐쉬 분배 상태 표시부(106)를 참조하여 다수의 서버 노드로 구성된 분산 환경내 해당 캐쉬 데이터를 저장하고 있는 노드를 확인한다.
이때, 상기 요청된 캐쉬 데이터가 로컬 캐쉬(102)에 저장되어 있는 경우 분산 캐쉬 연산 제어부(150)는 로컬 캐쉬(102)로부터 해당 캐쉬 데이터를 검색하여 제공하며(S32), 상기 요청된 캐쉬 데이터가 다른 노드(200)에 저장되어 있는 경우 해당 노드(200)와의 네트워크 통신을 통해 캐쉬 데이터를 요청하고, 상기 요청에 응답하여 해당 노드(200)로부터 전송되는 캐쉬 데이터를 수신하여 상기 애플리케이션(app)으로 제공한다(S32').
또한, 분산 캐쉬 연산 제어부(150)는 예를 들어 캐쉬 데이터 요청이 상기 분산환경내 다수의 노드에 분산 저장된 캐쉬 데이터에 대한 쓰기(put request) 요청인 경우(S40), 도 4에서 보여지는 바와 같이 캐쉬 데이터의 키 정보와 캐쉬 분배 상태 표시부(106)를 참조하여 상기 분산 환경내 캐쉬 데이터가 저장된 노드를 확인하고(S42), 쓰기 요청된 캐쉬 데이터가 로컬 캐쉬(102)에 있는 경우 로컬 캐쉬(102)에 저장된 해당 캐쉬 데이터를 상기 애플리케이션을 통해 수행된 값으로 새로이 저장시키거나 변경시킨다.
한편, 위와 같이 캐쉬 데이터에 대한 쓰기 요청에 대해서는 해당 캐쉬 데이터가 새로이 생성되거나 변경되는 경우, 동기 처리부(160)에 의해 분산환경 기반의 다른 노드들로 캐쉬 분배 상태 표시부(106)에 대한 동기화 명령이 전송되며(S44, S46, S48), 각 노드에서는 동기화 명령을 수신하여 캐쉬 분배 상태 표시부(106)의 정보를 갱신시키게 된다. 이에 따라, 캐쉬 위치 정보의 정합성이 보장되게 된다.
도 5는 본 발명의 실시예에 따른 도 2의 분산환경 기반의 캐쉬 관리 장치에서 사용자 읽기(get) 요청을 처리하는 동작 제어 흐름을 도시한 것이다. 이하, 도 2 및 도 5를 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
먼저, 임의의 애플리케이션으로부터 상기 분산환경 기반의 다수의 노드에 분산 저장된 캐쉬 데이터에 대한 읽기(get) 요청이 수신되는 경우(S500), 분산 캐쉬 연산 제어부(150)는 읽기 요청에 포함된 키값을 추출하여 해당 키가 캐쉬 분배 상태 표시부(106)에 존재하는지 여부를 검색한다(S502).
이때 만일, 캐쉬 분배 상태 표시부(106)에 해당 키가 존재하는 경우(S504) 분산 캐쉬 연산 제어부(150)는 키에 대응되는 캐쉬 데이터가 로컬 캐쉬(102)에 저장되어 있는지 여부를 검사하고(S506), 로컬 캐쉬(102)에 키에 대응되는 캐쉬 데이터가 저장되어 있는 경우 해당 캐쉬 데이터를 추출하여 애플리케이션(app)으로 제공한다(S508).
그러나, 키에 대응되는 캐쉬 데이터가 로컬 캐쉬에 저장되어 있지 않은 경우 분산 캐쉬 연산 제어부(150)는 해당 캐쉬 데이터를 저장하고 있는 분산환경 기반의 다른 노드를 검색한다(S510).
이어, 분산 캐쉬 연산 제어부(150)는 키에 대응되는 캐쉬 데이터가 저장되어 있는 분산환경 기반의 다른 노드로 해당 캐쉬 데이터에 대한 요청을 전송하고(S512), 해당 노드로부터 캐쉬 데이터를 수신하여 애플리케이션에 제공한다(S514).
도 6은 본 발명의 실시예에 따른 도 2의 분산환경 기반의 캐쉬 관리 장치에서 사용자 쓰기(put) 요청을 처리하는 동작 제어 흐름을 도시한 것이다. 이하, 도 2 및 도 6을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
먼저, 임의의 애플리케이션으로부터 상기 분산환경 기반의 다수의 노드에 분산 저장된 캐쉬 데이터에 대한 쓰기(put) 요청이 수신되는 경우(S600), 분산 캐쉬 연산 제어부(150)는 쓰기 요청에 포함된 키 값을 추출하여 해당 키가 캐쉬 분배 상태 표시부(106)에 존재하는지 여부를 검색한다(S602).
이때 만일, 캐쉬 분배 상태 표시부(106)에 해당 키가 존재하는 경우(S604), 분산 캐쉬 연산 제어부(150)는 키에 대응되는 캐쉬 데이터가 로컬 캐쉬(102)에 저장되어 있는지 여부를 검사하고(S606), 로컬 캐쉬(102)에 키에 대응되는 캐쉬 데이터가 저장되어 있지 않는 경우 애플리케이션을 통해 수행된 새로운 캐쉬 데이터를 로컬 캐쉬(102)에 저장시킨다(S610).
그러나, 키에 대응되는 캐쉬 데이터가 로컬 캐쉬(102)에 저장되어 있는 경우 분산 캐쉬 연산 제어부(150)는 해당 캐쉬 데이터를 로컬 캐쉬(102)에서 삭제시키고(S608), 애플리케이션을 통해 수행된 새로운 캐쉬 데이터를 로컬 캐쉬(102)에 저장시킨다(S610).
한편, 위와 같이 쓰기 요청에 의해 로컬 캐쉬에 키에 대응되는 새로운 캐쉬 데이터가 저장되어 캐쉬 분배 상태 표시부(106)상 변경이 발생한 경우, 동기 처리부(160)에 의해 분산환경 기반의 다른 노드들로 캐쉬 분배 상태 표시부(106)에 대한 동기화 명령이 전송된다. 이에 따라 각 노드에서는 동기화 명령을 수신하여 캐쉬 분배 상태 표시부(106)의 정보를 갱신시켜 캐쉬 위치 정보의 정합성을 보장하게 된다.
도 7은 본 발명의 실시예에 따른 쓰기(put) 연산 수행 후, 분산환경 기반의 노드의 하부 네트워크 처리단에서 다른 노드들로 동기화 명령을 수행하는 동작 흐름을 도시한 것이다.
위 도 7을 참조하면, 쓰기 요청에 의해 로컬 캐쉬에 키에 대응되는 새로운 캐쉬 데이터가 저장되는 등과 같이 캐쉬 분배 상태 표시부상 변경이 발생한 경우, 동기 처리부(160)는 분산환경 기반의 다른 노드들로 캐쉬 분배 상태 표시부에 대한 동기화 명령을 네트워크 레벨의 동기화 요청 큐(Sorted MultiSend Queue)(700)에 등록하여 네트워크를 통해 분산환경 기반의 각 노드로 동기화 명령이 전송되도록 한다.
이와 같이, 동기화 요청 큐(700)에 등록된 동기화 명령은 분산환경 기반의 다수의 노드가 연결된 네트워크를 통해 각 노드로 동기화 요청 멀티 송신(SyncView Multi Sender)이 이루어진다. 이어, 동기화 요청 멀티 송신 기록은 응답 대기큐(Ack Wait Queue)(702)에 기록(write)된다.
한편, 위와 같은 동기화 요청을 수신하여 캐쉬 분배 상태 표시부에 대한 동기화를 수행한 분산환경 기반의 다른 노드에서는 동기화 명령을 전송한 노드로 동기화 응답을 전송하게 된다.
이와 같은 동기화 응답(SyncView Ack)은 네트워크를 통해 동기화 명령을 전송한 노드로 수신되며, 해당 노드에서는 동기화 요청에 대한 동기화 응답을 수신하는 경우 응답 대기 큐(702)상 기록된 대응되는 동기화 요청 송신 기록을 삭제(remove)한다.
이에 따라, 분산환경 기반의 각 노드에서의 캐쉬 분배 상태 표시부에 동기화 수행 여부를 확인할 수 있음으로써 캐쉬 위치 정보의 정합성을 보장할 수 있게 된다.
도 8은 본 발명의 실시예에 따른 쓰기(put) 연산 수행 후, 동기화 명령을 수신한 임의의 노드의 하부 네트워크 처리단에서 동기화 명령을 수행하는 동작 흐름을 도시한 것이다.
위 도 8을 참조하면, 분산환경 기반의 각 노드에서는 임의의 노드로부터 요청된 캐쉬 분배 상태 표시부에 대한 동기화 요청(SyncView)을 네트워크를 통해 수신할 수 있다. 이와 같이 네트워크를 통해 캐쉬 분배 상태 표시부에 대한 동기화 요청이 수신(SyncView Receiver)되는 경우 동기화 요청은 해당 노드의 동기 처리부로 전송되며, 이에 따라 동기 처리부에 의해 해당 노드의 캐쉬 분배 상태 표시부에 대한 갱신(Update View)이 수행된다.
이때, 수신된 동기화 요청은 동기화 수행 큐(Sorted UniSend Queue)(800)에 기록되며, 동기 처리부에 의해 캐쉬 분배 상태 표시부에 대한 동기화 처리가 수행된 경우, 동기화 요청을 전송한 노드로 동기화 응답을 송신하게 된다.
이하에서는, 본 발명의 분산환경 기반의 캐쉬 관리 장치에서의 동작에 대해 다시 한번 요약하기로 한다.
먼저, 전송자측에서는 캐쉬 연산(Sender Network Operation)을 수행할 경우 다음과 같은 네트워크 처리가 발생한다. 즉, get 연산의 경우 원격 노드에 키(key)에 대응하는 정보를 요청 후 <sendGetValueRequest(serverName, 0L, key)> 메인 캐쉬(main cache) 또는 백업 캐쉬(backup cache)로부터 키에 해당하는 값(value)를 가져온다. put 연산의 경우 멀티캐스트 동기 뷰(multicast sync-view)를 전송 <sync-view(my-node, clock+1, key, PUT)> 후, <node, clock, key, w>으로 뷰를 구성한다. 이러한 뷰의 구성이 완료되면 메인 캐쉬와 백업 캐쉬에 값을 put한다. remove 연산의 경우, multicast sync-view 전송 <sync-view(my-node, clock+1, key, REMOVE)> 후 <node, clock, key, d>으로 뷰를 구성한다. 뷰의 구성이 완료되면 메인 캐쉬와 백업 캐쉬로부터 값을 제거한다.
다음으로, 수신자측에서는 요청 받은 캐쉬 연산의 캐쉬 분배 상태 표시부 정보 갱신을 위해 다음을 수행한다. 먼저 put 연산의 경우 이미 로컬 캐쉬(local cache)에 존재한다면 삭제 처리한다. 그 다음 <node, click, key, w>로 뷰 구성 후 동기화(sync) 처리한다. remove 연산의 경우 로컬 캐쉬에 존재한다면 삭제 처리한다. 그 후 <node, click, key, d>로 뷰 구성 후 동기화 처리한다.
다음으로, get-value 요청을 받은 분산환경 기반 각 노드의 서버는 이에 대한 요구를 처리하기 위해 다음을 수행한다. 먼저 자신의 캐쉬 분배 상태 표시부에 존재유무를 확인한다. 존재한다면 메인 캐쉬(mainCache)의 값을 응답(reply)한다. 만약 니어(near cache)가 아닌 것으로 검사되고, 높은 버전(higher version)의 캐쉬가 존재한다면 높은 버전의 값을 응답한다. 또한, 해당 노드에서 캐쉬를 찾을 수 없다면 뷰(node, clock, key, state)를 구성 후 NotAvailable로 응답한다.
다음으로, get-value 결과 수신한 서버의 처리 흐름은 다음과 같다. 값을 수신한 경우, 엔트리 상태(entry state)를 'N'으로 업데이트한다. 높은 버전인 경우, 데이터 반송(data return) 처리하고 클럭(clock)과 상태(state) 업데이트를 수행한다. NotAvailable인 경우 현재 뷰(current view)를 응답 받은 뷰와 비교하여 같다면 재시도(retry)한다. 재시도 카운트(retry count)를 확인하고 최대 재시도 카운트(max-retry-count)를 초과한 경우 DataGridMode 에서는 InconsistenceViewException을 던지고, CacheMode에서는 return null 처리한다.
다음으로, push-value 요청을 받은 서버는 이에 대한 처리를 위해 다음을 수행한다. 먼저 캐쉬 분배 상태 표시부에서 엔트리 검색한다. 엔트리가 존재하지 않거나, 노드가 같고 클럭이 낮은 경우 값을 저장 후, 업데이트 뷰 및 reply ACK한다. 노드가 같고 클럭이 같다면 reply ACK한다. 노드가 같고 클럭이 높다면 (my node가 더 최신이라면) reply NACK (node, clock, key)한다.
상기한 바와 같이, 본 발명에 따르면, 분산 환경 기반의 캐쉬 서비스에 있어서 분산 환경의 다수의 서로 다른 서버 노드에서의 캐쉬 위치 정보를 기록한 캐쉬 분배 상태 표시부를 각 노드에 구비시키고, 캐쉬 데이터의 변경 시 동기화를 통해 각 노드의 캐쉬 분배 상태 표시부상 해당 캐쉬 데이터의 정보가 갱신되도록 하여 캐쉬 위치 정보의 정합성을 보장시킴으로써 네트워크 및 디스크 접근을 최소화하여 네트워크 처리 효율성을 증대시킬 수 있도록 한다.
한편 상술한 본 발명의 설명에서는 구체적인 실시예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
102 : 로컬 캐쉬 104 : 백업 캐쉬
106 : 캐쉬 분배 상태 표시부 150 : 분산 캐쉬 연산 제어부
160 : 동기 처리부

Claims (12)

  1. 기설정된 메모리 용량만큼의 제1 캐쉬 데이터를 저장하고 있는 로컬 캐쉬와,
    상기 로컬 캐쉬에 저장된 제1 캐쉬 데이터와 분산 환경 기반의 다른 노드에 저장된 제2 캐쉬 데이터의 위치 정보와 상태 정보를 기록하는 캐쉬 분배 상태 표시부와,
    상기 캐쉬 분배 상태 표시부에 기록되는 제1 캐쉬 데이터와 제2 캐쉬 데이터에 대한 위치 정보와 상태 정보를 상기 다른 노드와 동기화되도록 동기화시키는 동기 처리부와,
    임의의 애플리케이션으로부터 상기 다수의 노드에 분산 저장된 특정 캐쉬 데이터 요청 수신 시, 상기 캐쉬 분배 상태 표시부를 참조하여 상기 요청된 캐쉬 데이터의 위치를 확인하고, 캐쉬 데이터가 위치된 다른 노드 또는 상기 로컬 캐쉬로부터 상기 요청된 캐쉬 데이터를 검색하여 상기 애플리케이션으로 제공하는 분산 캐쉬 연산 제어부
    를 포함하는 분산 환경 기반의 캐쉬 관리 장치.
  2. 제 1 항에 있어서,
    상기 분산 캐쉬 연산 제어부는,
    상기 캐쉬 데이터 요청이 상기 다수의 노드에 분산 저장된 캐쉬 데이터에 대한 읽기(get) 요청인 경우, 상기 캐쉬 분배 상태 표시부를 참조하여 상기 분산 환경 기반내 상기 캐쉬 데이터가 저장된 노드를 확인하여 상기 요청된 캐쉬 데이터를 제공하는 것을 특징으로 하는 분산 환경 기반의 캐쉬 관리 장치.
  3. 제 2 항에 있어서,
    상기 분산 캐쉬 연산 제어부는,
    상기 요청된 캐쉬 데이터가 상기 로컬 캐쉬에 저장되어 있는 경우 상기 로컬 캐쉬로부터 해당 캐쉬 데이터를 검색하여 제공하며, 상기 요청된 캐쉬 데이터가 상기 다른 노드에 저장되어 있는 경우 통신을 통해 상기 다른 노드로 상기 캐쉬 데이터를 요청하고, 상기 요청에 응답하여 상기 다른 노드가 전송하는 캐쉬 데이터를 수신하여 상기 애플리케이션으로 제공하는 것을 특징으로 하는 분산 환경 기반의 캐쉬 관리 장치.
  4. 제 1 항에 있어서,
    상기 분산 캐쉬 연산 제어부는,
    상기 캐쉬 데이터 요청이 상기 다수의 노드에 분산 저장된 캐쉬 데이터에 대한 쓰기(put request) 요청인 경우, 상기 요청에 따라 새로운 캐쉬 데이터를 생성하고, 상기 다른 노드 또는 로컬 캐쉬에 저장된 이전 캐쉬 데이터를 삭제시키는 것을 특징으로 하는 분산 환경 기반의 캐쉬 관리 장치.
  5. 제 1 항에 있어서,
    상기 동기 처리부는,
    상기 캐쉬 데이터에 대한 변경이 발생하는 경우, 동일한 캐쉬 데이터 정보를 저장하고 있는 상기 다른 노드로 상기 캐쉬 데이터의 변경사항을 통보하여 상기 다른 노드의 캐쉬 데이터에 대해서도 동일한 변경 내용이 적용되도록 하는 것을 특징으로 하는 분산 환경 기반의 캐쉬 관리 장치.
  6. 제 5 항에 있어서,
    상기 캐쉬 데이터의 변경 내용은,
    상기 다른 노드의 캐쉬 분배 상태 표시부에도 갱신되는 것을 특징으로 하는 분산 환경 기반의 캐쉬 관리 장치.
  7. 분산 환경 기반의 각 노드에서 로컬 캐쉬에 기설정된 메모리 용량만큼의 제1 캐쉬 데이터를 저장하는 단계와,
    상기 저장된 제1 캐쉬 데이터와 상기 분산 환경 기반의 다른 노드에 저장된 제2 캐쉬 데이터의 위치 정보와 상태 정보를 상기 각 노드에 구비되는 캐쉬 분배 상태 표시부에 기록하는 단계와,
    상기 캐쉬 분배 상태 표시부에 기록되는 제1 캐쉬 데이터와 제2 캐쉬 데이터에 대한 위치 정보와 상태 정보를 상기 제1 캐쉬 데이터와 제2 캐쉬 데이터상 상태 변경 발생 시마다 상기 다른 노드와 동기화시키는 단계와,
    임의의 애플리케이션으로부터 상기 다수의 노드에 분산 저장된 특정 캐쉬 데이터 요청 수신 시, 상기 캐쉬 분배 상태 표시부를 참조하여 상기 요청된 캐쉬 데이터의 위치를 확인하는 단계와,
    캐쉬 데이터가 저장된 상기 다른 노드 또는 상기 로컬 캐쉬로부터 상기 요청된 캐쉬 데이터를 검색하여 상기 애플리케이션으로 제공하는 단계
    를 포함하는 분산 환경 기반의 캐쉬 관리 방법.
  8. 제 7 항에 있어서,
    상기 제공하는 단계는,
    상기 캐쉬 데이터 요청이 상기 다수의 노드에 분산 저장된 캐쉬 데이터에 대한 읽기(get) 요청인 경우, 상기 캐쉬 분배 상태 표시부를 참조하여 상기 분산 환경 기반내 상기 캐쉬 데이터가 저장된 노드를 확인하는 단계와,
    상기 확인된 노드로부터 상기 요청된 캐쉬 데이터를 검색하여 상기 애플리케이션으로 제공하는 단계
    를 포함하는 것을 특징으로 하는 분산 환경 기반의 캐쉬 관리 방법.
  9. 제 8 항에 있어서,
    상기 제공하는 단계는,
    상기 요청된 캐쉬 데이터가 상기 로컬 캐쉬에 저장되어 있는 경우 상기 로컬 캐쉬로부터 해당 캐쉬 데이터를 검색하여 제공하는 단계와,
    상기 요청된 캐쉬 데이터가 상기 다른 노드에 저장되어 있는 경우 통신을 통해 상기 다른 노드로 상기 캐쉬 데이터를 요청하는 단계와,
    상기 요청에 응답하여 상기 다른 노드가 전송하는 캐쉬 데이터를 수신하여 상기 애플리케이션으로 제공하는 단계
    를 더 포함하는 것을 특징으로 하는 분산 환경 기반의 캐쉬 관리 방법.
  10. 제 7 항에 있어서,
    상기 제공하는 단계는,
    상기 캐쉬 데이터 요청이 상기 다수의 노드에 분산 저장된 캐쉬 데이터에 대한 쓰기(put request) 요청인 경우, 상기 요청에 따라 새로운 캐쉬 데이터를 생성하는 단계와,
    상기 다른 노드 또는 로컬 캐쉬에 저장된 이전 캐쉬 데이터를 삭제시키는 단계
    를 포함하는 것을 특징으로 하는 분산 환경 기반의 캐쉬 관리 방법.
  11. 제 7 항에 있어서,
    상기 제공하는 단계이 후,
    상기 캐쉬 데이터에 대한 변경이 발생하는 경우, 동일한 캐쉬 데이터 정보를 저장하고 있는 상기 다른 노드로 상기 캐쉬 데이터의 변경사항을 통보하여 상기 다른 노드의 캐쉬 데이터에 대해서도 동일한 변경 내용이 적용되도록 하는 단계를 더 포함하는 것을 특징으로 하는 분산 환경 기반의 캐쉬 관리 방법.
  12. 제 11 항에 있어서,
    상기 캐쉬 데이터의 변경 내용은,
    상기 다른 노드의 캐쉬 분배 상태 표시부에도 갱신되는 것을 특징으로 하는 분산 환경 기반의 캐쉬 관리 방법.
KR1020140024977A 2014-03-03 2014-03-03 분산환경 기반의 캐쉬 관리 장치 및 방법 KR20150103477A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140024977A KR20150103477A (ko) 2014-03-03 2014-03-03 분산환경 기반의 캐쉬 관리 장치 및 방법
US14/245,890 US20150248350A1 (en) 2014-03-03 2014-04-04 Apparatus and method for managing cache in cache distributed environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140024977A KR20150103477A (ko) 2014-03-03 2014-03-03 분산환경 기반의 캐쉬 관리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20150103477A true KR20150103477A (ko) 2015-09-11

Family

ID=54006831

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140024977A KR20150103477A (ko) 2014-03-03 2014-03-03 분산환경 기반의 캐쉬 관리 장치 및 방법

Country Status (2)

Country Link
US (1) US20150248350A1 (ko)
KR (1) KR20150103477A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190139095A (ko) * 2018-06-07 2019-12-17 주식회사 티맥스 소프트 분산 캐시 환경에서 니어 캐시를 제어하는 방법 및 이를 이용한 분산 캐시 서버
KR20210081619A (ko) 2019-12-24 2021-07-02 주식회사 티맥스티베로 셀렉트 쿼리 처리 시 네트워크 비용 절감을 위해 멀티 캐시를 구비한 클라우드 데이터베이스 시스템

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160179581A1 (en) * 2014-12-19 2016-06-23 Netapp, Inc. Content-aware task assignment in distributed computing systems using de-duplicating cache
CN108009019B (zh) * 2016-10-29 2021-06-22 网宿科技股份有限公司 分布式数据定位实例的方法、客户端及分布式计算***
US10382552B2 (en) * 2016-12-12 2019-08-13 Verizon Patent And Licensing Inc. User device ad-hoc distributed caching of content
CN110990432B (zh) * 2019-11-18 2024-05-03 林上煜 一种跨机房同步分布式缓存集群的装置和方法
CN111190546B (zh) * 2019-12-30 2023-10-20 深圳创新科软件技术有限公司 一种基于alua和本地缓存的分布式块存储性能优化方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002251313A (ja) * 2001-02-23 2002-09-06 Fujitsu Ltd キャッシュサーバ及び分散キャッシュサーバシステム
US6883070B2 (en) * 2001-03-14 2005-04-19 Wisconsin Alumni Research Foundation Bandwidth-adaptive, hybrid, cache-coherence protocol
US7376799B2 (en) * 2005-07-21 2008-05-20 Hewlett-Packard Development Company, L.P. System for reducing the latency of exclusive read requests in a symmetric multi-processing system
CN102204218B (zh) * 2011-05-31 2015-01-21 华为技术有限公司 数据处理方法、缓存节点、协作控制器及***

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190139095A (ko) * 2018-06-07 2019-12-17 주식회사 티맥스 소프트 분산 캐시 환경에서 니어 캐시를 제어하는 방법 및 이를 이용한 분산 캐시 서버
US10783081B2 (en) 2018-06-07 2020-09-22 Tmaxsoft. Co., Ltd. Method for controlling near caches in distributed cache environment, and distributed cache server using the same
KR20210081619A (ko) 2019-12-24 2021-07-02 주식회사 티맥스티베로 셀렉트 쿼리 처리 시 네트워크 비용 절감을 위해 멀티 캐시를 구비한 클라우드 데이터베이스 시스템
KR20210088511A (ko) 2019-12-24 2021-07-14 주식회사 티맥스티베로 셀렉트 쿼리 처리 시 네트워크 비용 절감을 위해 멀티 캐시를 구비한 클라우드 데이터베이스 시스템

Also Published As

Publication number Publication date
US20150248350A1 (en) 2015-09-03

Similar Documents

Publication Publication Date Title
US11647097B2 (en) Providing access to managed content
KR20150103477A (ko) 분산환경 기반의 캐쉬 관리 장치 및 방법
US9262324B2 (en) Efficient distributed cache consistency
US8069224B2 (en) Method, equipment and system for resource acquisition
US9069835B2 (en) Organizing data in a distributed storage system
US20140059217A1 (en) Method for content change notification in a cloud storage system, a corresponding cloud broker and cloud agent
JP5686034B2 (ja) クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム
US10447623B2 (en) Data storage systems and methods using a real-time messaging system
JP2005011354A (ja) 通知ボンドを使用してキャッシュオブジェクトを管理するためのシステムおよび方法
CN110022338B (zh) 文件读取方法、***、元数据服务器和用户设备
KR20100048130A (ko) 메타데이터 클러스터 기반의 분산형 스토리지 시스템 및 그동작 방법
US20150106468A1 (en) Storage system and data access method
WO2019231645A1 (en) Change notifications for object storage
KR20090063669A (ko) 데이터 서버 주소의 변경과 디스크 이동에 투명한 파일메타데이터 관리 방법 및 시스템
JP2005063374A (ja) データ管理方法、データ管理装置、およびそのためのプログラムならびに記録媒体。
JP2004302564A (ja) ネームサービス提供方法及びその実施装置並びにその処理プログラム
US10621148B1 (en) Maintaining multiple object stores in a distributed file system
JP5706956B1 (ja) データベースシステム及びデータベース制御方法
CN106850821A (zh) 一种数据管理方法、数据发送装置、数据接收装置及***
CN116134435A (zh) 通过分布式消息队列的高速缓存更新
JP3861875B2 (ja) 電子メールサーバシステム,電子メールサービス方法およびプログラム並びにサーバ装置
JP2008165833A (ja) サーバ分散管理方法
JP2006190220A (ja) 文書管理システム、文書管理方法、プログラム及び記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment