KR101426673B1 - 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법 - Google Patents

검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법 Download PDF

Info

Publication number
KR101426673B1
KR101426673B1 KR1020120014585A KR20120014585A KR101426673B1 KR 101426673 B1 KR101426673 B1 KR 101426673B1 KR 1020120014585 A KR1020120014585 A KR 1020120014585A KR 20120014585 A KR20120014585 A KR 20120014585A KR 101426673 B1 KR101426673 B1 KR 101426673B1
Authority
KR
South Korea
Prior art keywords
index
storage space
data
nodes
service
Prior art date
Application number
KR1020120014585A
Other languages
English (en)
Other versions
KR20130093202A (ko
Inventor
심우만
오세봉
최종욱
Original Assignee
주식회사 케이티
주식회사 넥스알
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티, 주식회사 넥스알 filed Critical 주식회사 케이티
Priority to KR1020120014585A priority Critical patent/KR101426673B1/ko
Priority to PCT/KR2013/000604 priority patent/WO2013122338A1/ko
Publication of KR20130093202A publication Critical patent/KR20130093202A/ko
Application granted granted Critical
Publication of KR101426673B1 publication Critical patent/KR101426673B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 CDR(Call Detail Record)과 같은 상세 통화 내역 정보 등의 대용량 시계열 데이터를 효율적으로 분석하기 위해 검색 시스템에서 색인 정보의 분산 인덱싱과 이를 바탕으로 한 검색 성능의 향상을 위한 검색 시스템에 관한 것이다.

Description

검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법{Method of Distributed Indexing and Searching for Effective Analysis of Time Series Data in Search System}
본 발명은 검색 시스템에서의 시계열 데이터의 처리 방법에 관한 것으로서, 특히, CDR(Call Detail Record)과 같은 상세 통화 내역 정보 등의 대용량 시계열 데이터를 효율적으로 분석하기 위해 검색 시스템에서 색인 정보의 분산 인덱싱과 이를 바탕으로 한 검색 성능의 향상을 위한 검색 시스템에 관한 것이다.
일자별로 색인되어 다수의 노드에 데이터를 저장하는 기존의 분산 검색 플랫폼에서, 각 노드가 고장 등의 장애 없이 정상적으로 동작하는 경우에는, 시계열 데이터를 일자별로 인덱싱하여 각 노드에 고르게 분산 저장하고 관리할 수 있다. 이와 같은 분산 환경에서 처리량 및 처리 성능을 올리기 위해서 노드 수를 증가 시키는 것이 일반적이다.
이와 같은 분산 환경에서 노드 수의 증가로 시스템이 방대해지는 경우에 필연적으로 여러 가지 장애(예, 시스템 다운, 네트워크 단절 등)가 발생할 수 있다. 어떤 한 노드의 장애 발생시 다른 노드가 장애 발생 노드의 데이터에 대한 복사본을 이용하여 그 노드를 대신해 서비스하고, 해당 노드의 장애 복구 후에는 도 1과 같이 노드별로 색인 수, 즉, 색인된 데이터의 할당 공간을 균일하게 리밸런싱(rebalancing)하게 된다.
그러나, 기존의 분산 검색 플랫폼에서는, CDR과 같은 시계열 구조의 색인저장 구조를 고려하지 않고 장애 발생과 장애 복구에 대한 운용을 하고 있으므로, 도 1과 같이 노드별로 색인된 데이터의 할당 공간은 균일하지만 시계열의 색인(도 1에서 Index A, B, C) 불균형 상황이 발생하는 문제점이 있다. 즉, 특정 노드에 특정일자의 색인이 몰려, 해당 일자의 색인에 대하여는 특정 노드의 리소스만 이용한 검색이 이루어지므로 분산된 노드들의 리소스를 효율적으로 사용할 수 없어 예상된 성능보다 저조한 검색 성능을 나타내는 결과를 초래한다.
따라서, 본 발명은 상술한 문제점을 해결하기 위한 것으로서, 본 발명의 목적은, CDR(Call Detail Record)과 같은 상세 통화 내역 정보 등의 대용량 시계열 데이터를 효율적으로 분석하기 위해 검색 시스템에서, 시간 기반의 색인을 4 단계(예, Hot, Warm, Cold, Frozen)로 세분하여 관리함으로써 조회 성능을 향상시키며, 장애 발생/복구 시의 데이터 재분배에 있어서 노드별로 색인된 데이터의 할당 공간을 균일하게 하면서도 노드별로 특정 색인의 데이터가 집중되지 않고 균일하게 분산되어 저장될 수 있도록 최단 경로로 재분배하여 저장 관리함으로써 노드별 각 색인의 리소스 활용이 효율적으로 균등하게 이루어질 수 있도록 하는 검색 시스템을 제공하는 데 있다.
먼저, 본 발명의 특징을 요약하면, 상기와 같은 본 발명의 목적을 달성하기 위한 본 발명의 일면에 따른, 시계열 데이터의 검색 시스템은, 미리 설정한 규칙에 따라 복수의 노드로 데이터를 분산 저장하기 위해 제어기능을 하는 라우터; 및 상기 라우터로부터 수신한 데이터를 저장공간에 저장하고 검색 명령에 응답하여 결과를 제공하는 상기 복수의 노드를 포함하고, 상기 복수의 노드는 각각이, 기간으로 구분된 색인별 데이터를 일정 크기로 저장 공간에 각각 저장하되, 색인 균등화를 수행하여 상기 검색 명령에 대하여 서비스할 색인을 복수의 저장공간에 균등하게 할당하여 특정 색인 데이터를 분산 저장한다.
상기 라우터로부터 수신하는 데이터는 상기 데이터를 수신하는 시간 또는 상기 데이터에 포함된 시간 정보에 기초한 시간으로 상기 기간이 구분되는 데이터일 수 있다. 또는 상기 라우터로부터 수신하는 데이터는 이동 통신 서비스에서의 CDR(Call Detail Record)을 포함한 시계열 데이터일 수 있다. 상기 CDR에 포함된 통화 종료 시간으로 상기 기간이 구분될 수 있다.
상기 복수의 노드는 각각이, 복수의 색인에 대하여 자신이 서비스하는 저장공간과 하나 이상의 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들을 할당하여 색인별 데이터를 분산 저장하는 인덱스 균등화 서비스 모듈을 포함한다.
상기 인덱스 균등화 서비스 모듈은, 상기 복수의 노드 중 어느 한 노드의 장애 복구나 노드 추가 시에 상기 색인 균등화를 수행하여, 복수의 색인에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 노드별 총수를 일치시키고, 복수의 노드에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 색인별 총수를 일치시킨다.
상기 복수의 노드 중 어느 한 노드의 장애 발생 시에, 동작하는 노드들 중 하나 이상이, 각 색인에 대하여, 장애 발생 노드가 서비스하였던 저장공간의 복사본으로 상기 장애 발생 노드를 대신해 서비스하도록 제어하는 색인기를 포함하고, 상기 제어에 따라 상기 인덱스 균등화 서비스 모듈은, 복수의 색인에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 노드별 총수를 일치시키고, 상기 장애 발생 노드를 제외한 복수의 노드에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 색인별 총수를 일치시킨다.
상기 복수의 노드는 각각이, 각 기간으로 구분된 색인별 데이터를 주메모리와 서브 메모리에 저장하기 위해 각 메모리에 일정 크기의 저장 공간을 할당하도록 제어하는 인덱스 단계 서비스 모듈을 포함하고, 상기 인덱스 단계 서비스 모듈의 제어에 따라, 상기 주메모리는 상기 라우터로부터 수신하는 데이터를 핫(Hot) 인덱스로 분류하여 할당된 상기 저장 공간에 누적하고 일정 크기가 되면 누적된 상기 저장 공간의 데이터를 웜(Warm) 인덱스로 분류하여 상기 서브 메모리의 할당된 상기 저장 공간으로 이동시켜 저장한다.
상기 인덱스 단계 서비스 모듈의 제어에 따라, 상기 서브 메모리는 상기 웜(Warm) 인덱스를 일정 기간 경과 후에 콜드(Cold) 인덱스로 변경하고, 다시 일정 기간 경과 후에 프로즌(Frozen) 인덱스로 변경시킨다.
상기 복수의 노드는 각각이, 복수의 색인에 대하여 자신이 서비스하는 저장공간과 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들을 상기 서브 메모리에 할당하여 색인별 데이터를 분산 저장하는 인덱스 균등화 서비스 모듈을 포함하고, 상기 인덱스 균등화 서비스 모듈은 상기 웜(Warm) 인덱스, 상기 콜드(Cold) 인덱스, 또는 상기 프로즌(Frozen) 인덱스의 저장공간에 대하여 상기 복사본을 저장한다.
상기 인덱스 균등화 서비스 모듈은, 상기 콜드(Cold) 인덱스와 상기 프로즌(Frozen) 인덱스의 저장공간에 대하여, 복수의 색인에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 노드별 총수가 일치하고, 복수의 노드에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 색인별 총수가 일치하도록, 서비스 저장공간과 복사본 저장공간의 데이터를 이동시킨다.
상기 핫(Hot) 인덱스, 상기 웜(Warm) 인덱스, 또는 상기 콜드(Cold) 인덱스의 저장공간에 저장된 데이터에 대하여는 상기 검색 명령에 대한 검색 서비스를 제공하고, 상기 프로즌(Frozen) 인덱스의 저장공간에 저장된 데이터에 대하여는 검색 서비스를 제외시킨다.
본 발명에 따른 시계열 데이터를 처리하는 검색 시스템에 따르면, 시간 기반의 색인을 4 단계(예, Hot, Warm, Cold, Frozen)로 세분하여 관리함으로써 장시간의 배치(batch) 작업없이 실시간으로 각 노드의 색인별 데이터 관리가 가능하고 분산 색인된 노드와 색인의 접근 범위의 조절이 가능하여 조회 성능을 향상시킬 수 있다.
또한, 장애 발생/복구 시의 데이터 재분배에 있어서 노드별로 색인된 데이터의 할당 공간을 균일하게 하면서도 노드별로 특정 색인의 데이터가 집중되지 않고 균일하게 분산되어 저장될 수 있도록 최단 경로로 재분배하여 저장 관리함으로써 특정 시스템의 부하가 감소하고 노드별 각 색인의 리소스 활용이 효율적으로 이루어질 수 있다.
또한, 성능 향상을 위해 노드를 추가해 나가던 기존 방식을 보완하여 색인을 효율적으로 활용하여 성능 향상을 꾀함으로써 노드의 추가를 늦추어 비용 절감 효과를 갖는다.
도 1은 기존의 분산 검색 플랫폼에서의 인덱싱 및 검색의 개념을 설명하기 위한 도면이다.
도 2는 본 발명의 일실시예에 따른 검색 시스템에서의 인덱싱 및 검색의 개념을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 검색 시스템을 설명하기 위한 블록도이다.
도 4는 본 발명의 일실시예에 따른 4가지 색인을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 인덱싱 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 일실시예에 따른 인덱스 균등화의 개념을 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예에 따른 인덱스 균등화 방법을 설명하기 위한 흐름도이다.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다.
도 2는 본 발명의 일실시예에 따른 검색 시스템에서의 인덱싱 및 검색의 개념을 설명하기 위한 도면이다.
본 발명의 일실시예에 따른 검색 시스템에서는, 복수의 노드(예, Node A, B, C) 각각이, 기간으로 구분된 색인별(예, Index A, B, C) 데이터를 일정 크기의 저장 공간에 각각 저장하되, 색인 균등화(Index Equalize)를 수행하여 검색 명령에 대하여 서비스하는 저장공간(21)을 복수의 색인(예, Index A, B, C)에 하나 이상씩 할당하여 각각에 색인별 데이터를 분산 저장하도록 하였다. 복수의 노드(예, Node A, B, C) 각각에서는 기본적으로 복수의 색인(예, Index A, B, C)에 대하여 자신이 서비스하는 저장공간(21)과 하나 이상의 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들(22)을 할당하여 색인별 데이터를 분산 저장할 수 있다.
본 발명에서 이와 같은 색인 균등화(Index Equalize)는 복수의 노드(예, Node A, B, C) 중 어느 하나 이상의 장애 발생 시에 또는 장애 복구(또는 새로운 노드 추가) 시에 데이터 재분배를 통하여 이루어질 수 있으며, 이에 따라 복수의 색인에 대한 미리 결정된 수에 따라 서비스 저장공간(21)과 복사본 저장공간(22)의 노드별 총수(예, 도 2에서 5개)를 일치시키고, 복수의 노드에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 색인별 총수(예, 도 2에서 5개)를 일치시킴으로써, 즉, 노드별로 색인된 데이터(서비스 저장공간의 데이터)의 할당 공간을 균일하게 하면서도 노드별로 특정 색인의 데이터가 집중되지 않고 균일하게 분산되어 저장될 수 있도록 최단 경로로 재분배하여 저장 관리함으로써, 시스템 부하감소가 가능하고 노드별 각 색인의 리소스 활용이 효율적으로 이루어질 수 있도록 하였다.
이외에도 본 발명의 일실시예에 따른 검색 시스템에서는, 각 노드에 저장되는 데이터에 대한 시간 기반의 색인을 4 단계(예, 핫(Hot), 웜(Warm), 콜드(Cold), 프로즌(Frozen))(도 4 참조)로 세분하여 관리하여 시간이 오래된 프로즌(Frozen) 인덱스의 저장공간에 저장된 데이터에 대하여는 검색 서비스를 제외시키는 방법으로 조회 성능을 향상시키며, 위와 같은 장애 발생/복구 시의 데이터 재분배에 있어서 콜드(Cold) 인덱스와 프로즌(Frozen) 인덱스의 데이터를 대상으로 색인 균등화(Index Equalize)를 수행하여 노드별로 색인된 데이터의 할당 공간을 균일하게 하면서도 노드별로 특정 색인의 데이터가 집중되지 않고 균일하게 분산되어 저장될 수 있도록 최단 경로로 재분배하여 저장 관리함으로써 노드별 각 색인의 리소스 활용이 효율적으로 이루어질 수 있도록 하였다.
본 발명의 검색 시스템에서 위와 같은 시간 기반의 색인(예, Index A, B, C)은 데이터를 수신하는 시간으로 구분되어 이루어질 수 있으며, 또는 수신하는 데이터(예, 파일 형태)에 포함된 시간 정보에 기초한 시간으로 구분되어 이루어질 수도 있다. 예를 들어, Index A는 오늘의 기간, Index B는 어제의 기간, Index C는 그제의 기간 등일 수 있다. 본 발명의 검색 시스템에서 수신하는 데이터는 예를 들어, 매일 실시간으로 수신되는 CDR(Call Detail Record)과 같은 이동 통신 서비스에서의 상세 통화 내역 정보(발신번호, 착신번호, 통화 시작 시각, 통화 종료 시각, 호 유형, 과금 유형 등 포함) 등의 대용량 시계열 데이터일 수 있으며, 실시간으로 수신되는 각각의 CDR 에 포함된, 예를 들어, 통화 종료 시간을 판단하여 각 기간으로 구분된 색인(예, Index A, B, C)이 결정될 수 있다.
이하 도 3내지 도 7의 도면을 참조하여 대용량 시계열 데이터를 효율적으로 분석하기 위한 본 발명의 일실시예에 따른 검색 시스템의 동작을 좀더 자세히 설명한다.
도 3은 본 발명의 일실시예에 따른 검색 시스템(100)을 설명하기 위한 블록도이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 검색 시스템(100)은, 실시간 시계열 데이터를 수신하여 미리 설정한 규칙에 따라 복수의 노드로의 데이터의 분산 저장을 제어하는 라우터(110), 및 라우터(110)로부터 수신한 데이터를 저장공간에 저장하고 검색 명령에 응답하여 결과를 제공하는 복수의 노드를 포함한다. 복수의 노드를 구성하는 각각의 노드(120)는 색인기(121), 검색기(122), 주 메모리(123), 서브 메모리(124), 인덱스 단계 서비스 모듈(125), 및 인덱스 균등화 서비스 모듈(126)을 포함할 수 있다. 이와 같은 라우터(110)와 노드(120)는 시계열 데이터를 효율적으로 분석하기 위해 유기적으로 동작하는 하드웨어, 소프트웨어 또는 이들 조합으로 구현될 수 있다. 주 메모리(123)는 컴퓨터의 RAM(Random Access Memory)과 같이 프로세서(CPU)에서의 빠른 억세스를 위한 저장 공간을 갖는 메인 메모리일 수 있으며, 서브 메모리(124)는 컴퓨터의 하드 디스크와 같이 읽고 쓰기 위한 억세스가 RAM 보다는 느린 대용량 저장 공간을 갖는 메모리일 수 있다.
라우터(110)는 실시간으로 수신되는 시계열 데이터에 포함된 정보(예, CDR의 통화 종료 시간)에 대한 소정의 해쉬(hash) 함수를 계산하여 복수의 노드 중 판단된 노드로 해당 데이터를 전달하여 모든 노드들에 데이터가 골고루 분산되어 저장되도록 제어한다. 라우터(110)는 기간(예, 오늘, 어제, 그제 등과 같은 일 단위)으로 구분되는(예, CDR의 통화 종료 시간으로 구분) 데이터를 노드들에 전달할 수 있으며, 기간 구분이 달라지면(예, 날짜 변경) 주 메모리(123)와 서브 메모리(124)가 해당 데이터를 저장할 새로운 공간을 할당하여 저장하도록 제어할 수 있다.
각각의 노드(120)는 라우터(110)로부터 데이터를 수신하면, 기간으로 구분된(예, CDR의 통화 종료 시간으로 구분) 색인별(예, 날짜별) 데이터를 일정 크기의 저장 공간에 각각 저장하되, 하기하는 바와 같은 색인 균등화(index equalize)를 수행하여 검색 명령에 대하여 서비스하는 저장공간(서비스 저장공간)을 복수의 색인에 할당하여 색인별 데이터를 분산 저장할 수 있다.
색인기(121)는 수신되는 데이터에 대한 기간(예, 일 단위)으로 구분되는 색인과 관련된 노드(120) 내의 전반적인 제어를 담당한다.
인덱스 균등화 서비스 모듈(126)은 기본적으로 복수의 색인(예, 날짜 색인)에 대하여 자신이 서비스하는 저장공간(도 6에서 빗금부분 참조)과 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들(도 6에서 빗금없는 부분 참조)을 서브 메모리(124)에 할당하여 색인별 데이터를 분산 저장하도록 제어할 수 있으며, 하기하는 바와 같이 장애 발생 또는 장애 복구 노드(또는 노드 추가)가 감지되면 색인 균등화(Index Equalize)를 수행할 수 있다.
색인기(121)는, 예를 들어, 복수의 노드 중 어느 한 노드의 장애 발생 시에, 그것을 제외한 동작하는 노드들 중 하나 이상이, 각 색인(예, 날짜 색인)에 대하여, 장애 발생 노드가 서비스하였던 서브 메모리(124)의 저장공간의 복사본으로 상기 장애 발생 노드를 대신해 서비스하도록 제어할 수 있다.
검색기(122)는 사용자의 소정 단말을 이용한 검색어 입력(예, 입력 날짜나 기간의 데이터 검색을 위한 해당 날짜 또는 기간)에 따른 검색 명령에 응답하여 서브 메모리(124)의 프로즌(Frozen) 인덱스를 제외한 주 메모리(123)의 핫(Hot) 인덱스와 서브 메모리(124)의 웜(Warm)과 콜드(Cold) 인덱스를 검색하여 해당 검색된 결과에 따른 해당 인덱스(예, 날짜 또는 기간)의 데이터를 사용자 단말로 제공할 수 있다(도 4 참조). 각 노드의 검색기(122) 간에는 통신으로 서로 필요한 데이터를 주고받을 수 있으며, 검색 명령을 받은 해당 노드의 검색기(122)는 다른 노드들의 검색기(122)로 해당 검색 명령을 전달하고 이에 따라 각 노드의 검색기(122)가 전달하는 위와 같은 검색 결과에 따른 데이터를 포함해 사용자 단말로 제공할 수 있다.
이하 도 5를 참조하여 각각의 노드(120)에서 라우터(110)로부터 수신하는 데이터를 수신하면, 도 4와 같이, 기간으로 구분된(예, CDR의 통화 종료 시간으로 구분) 색인별(예, 날짜별) 데이터를 일정 크기의 저장 공간에 각각 저장하되, 핫(Hot) 인덱스, 웜(Warm) 인덱스, 콜드(Cold) 인덱스, 프로즌(Frozen) 인덱스로 구분하여 관리하는 방법을 설명한다.
라우터(110)가 실시간으로 시계열 데이터를 수신하고(S10), 시계열 데이터에 포함된 정보(예, CDR의 통화 종료 시간)에 대한 소정의 해쉬(hash) 함수를 계산하여 복수의 노드 중 판단된 노드로 해당 데이터를 전달하여 모든 노드들에 데이터가 골고루 분산되어 저장되도록 제어한다(S11).
라우터(110)로부터 시계열 데이터를 수신하는 각 노드(120)의 색인기(121)는, 이를 인덱스 단계 서비스 모듈(125)로 통보한다(S12). 이에 따라, 인덱스 단계 서비스 모듈(125)은 라우터(110)로부터 수신된 시계열 데이터에 대하여, 각 기간(예, 일자)으로 구분된 색인별 데이터(도 6 참조)를 주메모리(123)와 서브 메모리(124)에 저장하기 위해 각 메모리에 일정 크기(예, 수십 또는 수백 메가/기가 바이트)의 저장 공간을 할당하도록 제어한다(S20).
예를 들어, 인덱스 단계 서비스 모듈(125)의 제어에 따라, 먼저, 주메모리(123)는 라우터(110)로부터 수신하는 데이터를 핫(Hot) 인덱스로 분류하고 할당된 해당 저장 공간에 누적하고 일정 크기가 되면 누적된 해당 저장 공간의 데이터를 웜(Warm) 인덱스로 분류하여 서브 메모리(124)의 할당된 해당 저장 공간으로 이동시켜 저장할 수 있다. 또한, 인덱스 단계 서비스 모듈(125)의 제어에 따라, 서브 메모리(124)는 웜(Warm) 인덱스를 일정 기간 경과 후에 콜드(Cold) 인덱스로 변경하고, 다시 일정 기간 경과 후에 프로즌(Frozen) 인덱스로 변경할 수 있다(S21). 예를 들어, 웜(Warm) 인덱스의 저장 공간에 오늘 날짜로 색인된 모든 데이터를 저장할 수 있으며, 예를 들어, 오늘 날짜 기준으로 1일 내지 60일 지난 해당 저장 공간의 데이터에 대하여는 콜드(Cold) 인덱스로 색인이 변경될 수 있으며, 이후 오늘 날짜 기준으로 60일이 초과된 해당 저장 공간의 데이터에 대하여는 프로즌(Frozen) 인덱스로 색인이 변경될 수 있다. 프로즌(Frozen) 인덱스의 저장 공간에 저장된 데이터는 소정 날짜 이후(예, 3개월 초과)에 다른 백업 장치로 이동되어 보관되거나 삭제되어 폐기될 수 있다.
한편, 라우터(110)는 실시간으로 시계열 데이터를 수신하는 동안, 기준 기간의 변경(예, 날짜 변경) 시에 주 메모리(123)와 서브 메모리(124)가 해당 데이터를 저장할 새로운 공간을 할당하여 저장하도록 색인기(121)에 통보할 수 있고, 색인기(121)는, 이를 인덱스 단계 서비스 모듈(125)로 통보할 수 있다. 이에 따라, 인덱스 단계 서비스 모듈(125)은 라우터(110)로부터 수신된 구분 기간이 변경된 시계열 데이터에 대하여, 주메모리(123)와 서브 메모리(124)에 구분 기간이 변경된 시계열 데이터를 저장할 새로운 저장공간, 즉, 주메모리(123)의 핫(Hot) 인덱스의 저장공간과 서브 메모리(124)의 웜(Warm) 인덱스 저장 공간을 할당하도록 제어하고, 이에 따라 주메모리(123)와 서브 메모리(124)가 새로이 할당된 저장 공간에 해당 변경된 기간에 대한 데이터가 저장되도록 할 수 있다. 예를 들어, 주메모리(123)는 새로운 날짜에 대한 새로운 핫(Hot) 인덱스의 저장공간에 새로운 날짜의 시계열 데이터를 누적하고 일정 크기가 되면 누적된 해당 저장 공간의 데이터를 위와 같이 새로이 할당된 웜(Warm) 인덱스로 분류하여 서브 메모리(124)의 할당된 해당 저장 공간으로 이동시켜 저장할 수 있다.
또한, 색인기(121)는, 예를 들어, 복수의 노드 중 어느 한 노드의 장애 발생 시에, 그것을 제외한 동작하는 노드들 중 하나 이상이, 각 색인(예, 날짜 색인)에 대하여, 장애 발생 노드가 서비스하였던 서브 메모리(124)의 저장공간의 복사본으로 상기 장애 발생 노드를 대신해 서비스하도록 제어할 수 있다. 이를 위하여 인덱스 균등화 서비스 모듈(126)은 기본적으로 복수의 색인(예, 날짜 색인)에 대하여 자신이 서비스하는 저장공간(도 6에서 빗금부분 참조)과 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들(도 6에서 빗금없는 부분 참조)을 서브 메모리(124)에 할당하여 색인별 데이터를 분산 저장하도록 제어할 수 있으며, 하기하는 바와 같이 장애 발생 또는 장애 복구 노드가 감지되면 색인 균등화(Index Equalize)를 수행할 수 있다. 이때 서브 메모리(124)의 웜(Warm) 인덱스, 콜드(Cold) 인덱스, 또는 프로즌(Frozen) 인덱스의 저장공간에 대하여 인덱스 균등화 서비스 모듈(126)은 다른 노드들이 서비스하는 저장공간들의 복사본을 읽어와 복사본을 저장할 수 있다.
예를 들어, 도 6과 같이 노드가 3개인 경우에, 각 색인(예, 날짜 색인)에 대하여, 노드 1은 자신이 서비스 저장공간 S0에 데이터를 저장하며, 다른 노드들(예, 노드 2, 3)이 서비스하는 저장공간들의 복사본을 읽어와 저장공간들 S1, S2에 저장할 수 있다. 노드 2와 3은 각각 자신의 서비스 저장공간 S1, S2에서 각각 검색기(122)의 검색 명령에 대한 서비스를 수행할 수 있는 것으로 가정하였다. 여기서, 노드 1의 서비스 저장 공간이 S0, 노드 2의 서비스 저장 공간이 S1, 노드 3의 서비스 저장 공간이 S2인 것으로, 설명하지만, 이는 설명의 편의상의 구분이며, 노드 1, 2, 3 각각의 서비스 저장 공간이 S0, S1, S2 중 어느 하나씩의 저장 공간으로 각각 할당될 수 있다.
이하 도 7을 참조하여 각각의 노드(120)에서 색인 균등화(Index Equalize)의 수행으로 복수의 노드(예, 도 6의 Node 1,2,3) 중 어느 하나 이상의 장애 발생 시에 또는 장애 복구 시에 데이터 재분배를 통하여, 노드별로 색인된 데이터(서비스 저장공간의 데이터)의 할당 공간을 균일하게 하면서도 노드별로 특정 색인의 데이터가 집중되지 않고 균일하게 분산되어 저장될 수 있도록 최단 경로로 재분배하여 저장 관리하는 방법을 설명한다.
즉, 인덱스 균등화 서비스 모듈(126)은 노드의 장애 발생 또는 장애 복구 및 노드 추가가 감지되면 색인 균등화(Index Equalize)를 수행하여, 검색 명령에 대하여 서비스하는 저장공간(도 6에서 빗금부분 참조)을 복수의 색인(예, 도 6에서, 20111120, 20111121, 20111122,.. 20111123)에 할당하여 각각에 색인별 데이터를 분산 저장시킬 수 있다.
예를 들어, 도 6에서 Node 1에 장애 발생(예, 시스템다운, 네트워크 단절 등)으로 Node 1이 동작하지 않는 경우에(S30), 도 5에서도 설명한 바와 같이, 색인기(121)는, 그것을 제외한 동작하는 노드들 중 하나 이상(예, Node 2,3)이, 각 색인(예, 날짜 색인)에 대하여, 장애 발생 노드가 서비스하였던 서브 메모리(124)의 저장공간의 복사본으로 상기 장애 발생 노드를 대신해 서비스하도록 제어할 수 있다. 이를 위하여 인덱스 균등화 서비스 모듈(126)은 기본적으로 복수의 색인(예, 날짜 색인)에 대하여 자신이 서비스하는 저장공간(도 6에서 빗금부분 참조)과 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들(도 6에서 빗금없는 부분 참조)을 서브 메모리(124)에 할당하여 색인별 데이터를 분산 저장하도록 제어할 수 있으며, 이때 동작하는 복수의 노드(예, 도 6에서 Node 2,3)의 콜드(Cold) 인덱스와 프로즌(Frozen) 인덱스의 저장공간에 대하여 색인 균등화(Index Equalize)를 수행할 수 있다(S31).
예를 들어, 색인 균등화(Index Equalize)에 따라, 검색 명령에 대하여 서비스하는 저장공간(도 6에서 빗금부분 참조)을 각 노드의 복수의 색인(예, 도 6에서, 20111120, 20111121, 20111122,.. 20111123)에 각각 하나 이상씩 할당하되, 복수의 색인(예, 도 6에서, 20111120, 20111121, 20111122,.. 20111123)에 대한 미리 결정된 수(예, 18개)와 같게 서비스 저장공간과 복사본 저장공간의 노드별 총수를 일치시키고, 동작하는 복수의 노드(예, 도 6에서 Node 2,3)에 대한 미리 결정된 수(예, 9개)와 같게 서비스 저장공간과 복사본 저장공간의 색인별 총수를 일치시킨다.
이에 따라 노드별로 색인된 데이터(서비스 저장공간의 데이터)의 할당 공간을 균일하게 하면서도 노드별로 특정 색인의 데이터가 집중되지 않고 균일하게 분산되어 저장될 수 있으므로, 시스템 부하감소가 가능하고 노드별 각 색인의 리소스 활용이 효율적으로 이루어질 수 있다.
마찬가지로, 장애 발생 노드(예, Node 1)가 복구되거나 새로운 노드가 추가되면, 인덱스 균등화 서비스 모듈(126)은, 위와 같은 장애 발생 시와 유사하게 동작하는 복수의 노드(예, 도 6에서 Node 1,2,3)의 콜드(Cold) 인덱스와 프로즌(Frozen) 인덱스의 저장공간에 대하여 색인 균등화(Index Equalize)를 수행할 수 있다(S40).
예를 들어, 이때에도 색인 균등화(Index Equalize)에 따라, 검색 명령에 대하여 서비스하는 저장공간(도 6에서 빗금부분 참조)을 각 노드의 복수의 색인(예, 도 6에서, 20111120, 20111121, 20111122,.. 20111123)에 각각 하나 이상씩 할당하되, 복수의 색인(예, 도 6에서, 20111120, 20111121, 20111122,.. 20111123)에 대한 미리 결정된 수(예, 12개)와 같게 서비스 저장공간과 복사본 저장공간의 노드별 총수를 일치시키고, 동작하는 복수의 노드(예, 도 6에서 Node 1,2,3)에 대한 미리 결정된 수(예, 9개)와 같게 서비스 저장공간과 복사본 저장공간의 색인별 총수를 일치시킨다(S41).
종래에는 도 1과 같이, 시계열의 색인(도 1에서 Index A, B, C) 불균형 상황이 발생하여, 특정 노드에 특정일자의 색인이 몰림으로써 해당 일자의 색인에 대하여는 특정 노드의 리소스만 이용한 검색이 이루어지므로 분산된 노드들의 리소스를 효율적으로 사용할 수 없었다. 반면, 위와 같은 본 발명의 색인 균등화(Index Equalize)에 따라 노드별로 색인된 데이터(서비스 저장공간의 데이터)의 할당 공간을 균일하게 하면서도 노드별로 특정 색인의 데이터가 집중되지 않고 균일하게 분산되어 저장될 수 있으므로, 시스템 부하감소가 가능하여 노드별 각 색인의 리소스 활용이 효율적으로 이루어질 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
라우터(110)
노드(120)
색인기(121)
검색기(122)
주 메모리(123)
서브 메모리(124)
인덱스 단계 서비스 모듈(125)
인덱스 균등화 서비스 모듈(126)

Claims (12)

  1. 미리 설정한 규칙에 따라 복수의 노드로의 데이터의 분산 저장을 제어하는 라우터; 및 상기 라우터로부터 수신한 데이터를 저장공간에 저장하고 검색 명령에 응답하여 결과를 제공하는 상기 복수의 노드를 포함하고,
    상기 복수의 노드는 각각이, 기간으로 구분된 색인별 데이터를 일정 크기의 저장 공간에 각각 저장하되, 색인 균등화를 수행하여 상기 검색 명령에 대하여 서비스할 색인들을 저장공간에 할당하여 색인 데이터를 분산 저장하는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  2. 제1항에 있어서,
    상기 라우터로부터 수신하는 데이터는 상기 데이터를 수신하는 시간 또는 상기 데이터에 포함된 시간 정보에 기초한 시간으로 상기 기간이 구분되는 데이터인 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  3. 제1항에 있어서,
    상기 라우터로부터 수신하는 데이터는 이동 통신 서비스에서의 CDR(Call Detail Record)을 포함한 시계열 데이터인 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  4. 제3항에 있어서,
    상기 CDR에 포함된 통화 종료 시간으로 상기 기간이 구분되는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  5. 제1항에 있어서,
    상기 복수의 노드는 각각이,
    복수의 색인에 대하여 자신이 서비스하는 저장공간과 하나 이상의 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들을 할당하여 색인별 데이터를 분산 저장하는 인덱스 균등화 서비스 모듈
    을 포함하는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  6. 제5항에 있어서,
    상기 인덱스 균등화 서비스 모듈은, 상기 복수의 노드 중 어느 한 노드의 장애 복구나 노드 추가 시에 상기 색인 균등화를 수행하여, 복수의 색인에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 노드별 총수를 일치시키고, 복수의 노드에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 색인별 총수를 일치시키는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  7. 제5항에 있어서,
    상기 복수의 노드 중 어느 한 노드의 장애 발생 시에, 동작하는 노드들 중 하나 이상이, 각 색인에 대하여, 장애 발생 노드가 서비스하였던 저장공간의 복사본으로 상기 장애 발생 노드를 대신해 서비스하도록 제어하는 색인기를 포함하고,
    상기 제어에 따라 상기 인덱스 균등화 서비스 모듈은, 복수의 색인에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 노드별 총수를 일치시키고, 상기 장애 발생 노드를 제외한 복수의 노드에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 색인별 총수를 일치시키는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  8. 제1항에 있어서,
    상기 복수의 노드는 각각이,
    각 기간으로 구분된 색인별 데이터를 주메모리와 서브 메모리에 저장하기 위해 각 메모리에 일정 크기의 저장 공간을 할당하도록 제어하는 인덱스 단계 서비스 모듈을 포함하고,
    상기 인덱스 단계 서비스 모듈의 제어에 따라, 상기 주메모리는 상기 라우터로부터 수신하는 데이터를 핫(Hot) 인덱스로 분류하여 할당된 상기 저장 공간에 누적하고 일정 크기가 되면 누적된 상기 저장 공간의 데이터를 웜(Warm) 인덱스로 분류하여 상기 서브 메모리의 할당된 상기 저장 공간으로 이동시켜 저장하는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  9. 제8항에 있어서,
    상기 인덱스 단계 서비스 모듈의 제어에 따라, 상기 서브 메모리는 상기 웜(Warm) 인덱스를 일정 기간 경과 후에 콜드(Cold) 인덱스로 변경하고, 다시 일정 기간 경과 후에 프로즌(Frozen) 인덱스로 변경하는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  10. 제9항에 있어서,
    상기 복수의 노드는 각각이, 복수의 색인에 대하여 자신이 서비스하는 저장공간과 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들을 상기 서브 메모리에 할당하여 색인별 데이터를 분산 저장하는 인덱스 균등화 서비스 모듈을 포함하고,
    상기 인덱스 균등화 서비스 모듈은 상기 웜(Warm) 인덱스, 상기 콜드(Cold) 인덱스, 또는 상기 프로즌(Frozen) 인덱스의 저장공간에 대하여 상기 복사본을 저장하는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  11. 제10항에 있어서,
    상기 인덱스 균등화 서비스 모듈은,
    상기 콜드(Cold) 인덱스와 상기 프로즌(Frozen) 인덱스의 저장공간에 대하여, 복수의 색인에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 노드별 총수가 일치하고, 복수의 노드에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 색인별 총수가 일치하도록, 서비스 저장공간과 복사본 저장공간의 데이터를 이동시키는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  12. 제9항에 있어서,
    상기 핫(Hot) 인덱스, 상기 웜(Warm) 인덱스, 또는 상기 콜드(Cold) 인덱스의 저장공간에 저장된 데이터에 대하여는 상기 검색 명령에 대한 검색 서비스를 제공하고, 상기 프로즌(Frozen) 인덱스의 저장공간에 저장된 데이터에 대하여는 검색 서비스를 제외시키는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
KR1020120014585A 2012-02-14 2012-02-14 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법 KR101426673B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120014585A KR101426673B1 (ko) 2012-02-14 2012-02-14 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법
PCT/KR2013/000604 WO2013122338A1 (ko) 2012-02-14 2013-01-25 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120014585A KR101426673B1 (ko) 2012-02-14 2012-02-14 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법

Publications (2)

Publication Number Publication Date
KR20130093202A KR20130093202A (ko) 2013-08-22
KR101426673B1 true KR101426673B1 (ko) 2014-08-05

Family

ID=48984418

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120014585A KR101426673B1 (ko) 2012-02-14 2012-02-14 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법

Country Status (2)

Country Link
KR (1) KR101426673B1 (ko)
WO (1) WO2013122338A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102217990B1 (ko) 2020-07-29 2021-02-19 주식회사 순수교육 외국어 수면 학습 시스템
KR20210074235A (ko) 2019-12-11 2021-06-21 김현식 데클엣지를 갖는 한지 사진 제작 방법 및 그 장치
KR20210145482A (ko) 2020-05-25 2021-12-02 인핸스비 주식회사 글로벌 b2b를 위한 언네임드 제품 거래 시스템 및 그 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9037698B1 (en) * 2006-03-14 2015-05-19 Amazon Technologies, Inc. Method and system for collecting and analyzing time-series data
KR102075386B1 (ko) * 2013-11-28 2020-02-11 한국전자통신연구원 대용량 순차 수집 데이터 처리를 위한 프레임워크 제공장치 및 이의 데이터 처리방법
KR101589038B1 (ko) 2014-03-14 2016-01-27 국방과학연구소 시계열 데이터베이스의 프라이버시 보호에서 상관 관계 보존을 위한 노이즈 생성 방법 및 장치
RU2020127289A (ru) * 2018-01-26 2022-02-28 Уэйгейт Текнолоджиз Ю-Эс-Эй, Лп Поиск в многомерном временном ряду в режиме реального времени
US10891165B2 (en) * 2019-04-12 2021-01-12 Elasticsearch B.V. Frozen indices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100694227B1 (ko) 2005-12-27 2007-03-14 삼성전자주식회사 멀티캐스팅 제어 시스템 및 그 방법
KR20090080065A (ko) * 2006-10-05 2009-07-23 스플렁크 인코퍼레이티드 시계열 검색 엔진

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2996938B2 (ja) * 1997-12-01 2000-01-11 技術研究組合新情報処理開発機構 時系列データの格納方法及び記録媒体
JP2006252394A (ja) * 2005-03-14 2006-09-21 Sony Corp 情報処理システム、情報処理装置および方法、並びにプログラム
JP5381336B2 (ja) * 2009-05-28 2014-01-08 富士通株式会社 管理プログラム、管理装置および管理方法
KR101184916B1 (ko) * 2009-12-18 2012-09-20 주식회사 케이티 장애처리정보 관련 자료구조 생성방법과 이를 이용한 장애관리정보 제공방법 및 제공장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100694227B1 (ko) 2005-12-27 2007-03-14 삼성전자주식회사 멀티캐스팅 제어 시스템 및 그 방법
KR20090080065A (ko) * 2006-10-05 2009-07-23 스플렁크 인코퍼레이티드 시계열 검색 엔진

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210074235A (ko) 2019-12-11 2021-06-21 김현식 데클엣지를 갖는 한지 사진 제작 방법 및 그 장치
KR20210145482A (ko) 2020-05-25 2021-12-02 인핸스비 주식회사 글로벌 b2b를 위한 언네임드 제품 거래 시스템 및 그 방법
KR102217990B1 (ko) 2020-07-29 2021-02-19 주식회사 순수교육 외국어 수면 학습 시스템

Also Published As

Publication number Publication date
WO2013122338A1 (ko) 2013-08-22
KR20130093202A (ko) 2013-08-22

Similar Documents

Publication Publication Date Title
KR101426673B1 (ko) 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법
EP3238106B1 (en) Compaction policy
US9794135B2 (en) Managed service for acquisition, storage and consumption of large-scale data streams
US20130332608A1 (en) Load balancing for distributed key-value store
AU2018202230A1 (en) Client-configurable security options for data streams
US10356150B1 (en) Automated repartitioning of streaming data
AU2014346366A1 (en) Partition-based data stream processing framework
US9210219B2 (en) Systems and methods for consistent hashing using multiple hash rings
JP5228988B2 (ja) 割当制御プログラム及び割当制御装置
US20170344546A1 (en) Code dispersion hash table-based map-reduce system and method
US20130007091A1 (en) Methods and apparatuses for storing shared data files in distributed file systems
JP6269140B2 (ja) アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置
JP6951846B2 (ja) 計算機システム及びタスクの割当方法
US9177274B2 (en) Queue with segments for task management
JP5371656B2 (ja) ファイル検索システム
JP2015022327A (ja) データ再配置装置、方法およびプログラム
JP6690212B2 (ja) データ管理プログラム及びデータ管理方法
US10726017B2 (en) Limiting tuple creation at the tuple level
US20200076681A1 (en) Volume allocation management apparatus, volume allocation management method, and volume allocation management program
US10083121B2 (en) Storage system and storage method
JP6963465B2 (ja) 計算機システム及びデータ処理の制御方法
CN106527960B (zh) 多存储盘负载管理方法、装置、文件系统及存储网络系统
US10228958B1 (en) Systems and methods for archiving time-series data during high-demand intervals
US20170118082A1 (en) Systems and methods for an intelligent, distributed, autonomous, and scalable resource discovery, management, and stitching
KR101754713B1 (ko) 비대칭 분산 파일 시스템, 연산 분배 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180702

Year of fee payment: 5