KR20150134718A - 압축 방식을 이용한 데이터 소스 관리 장치 및 방법 - Google Patents

압축 방식을 이용한 데이터 소스 관리 장치 및 방법 Download PDF

Info

Publication number
KR20150134718A
KR20150134718A KR1020140061843A KR20140061843A KR20150134718A KR 20150134718 A KR20150134718 A KR 20150134718A KR 1020140061843 A KR1020140061843 A KR 1020140061843A KR 20140061843 A KR20140061843 A KR 20140061843A KR 20150134718 A KR20150134718 A KR 20150134718A
Authority
KR
South Korea
Prior art keywords
data sources
data source
hash table
structured query
cache
Prior art date
Application number
KR1020140061843A
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 KR1020140061843A priority Critical patent/KR20150134718A/ko
Priority to PCT/KR2014/011164 priority patent/WO2015178554A1/ko
Publication of KR20150134718A publication Critical patent/KR20150134718A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Landscapes

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

Abstract

압축 방식을 이용한 데이터 소스 관리 장치 및 방법이 개시된다. 데이터 소스들에 상응하는 엘리먼트들 각각을 복수 개의 필드들로 나누어 저장한 해시 테이블을 생성하고, 필드들 중 조회 횟수를 이용하여 데이터 소스들 중 압축될 압축 데이터 소스들의 개수를 결정하고, 데이터 소스들 중 압축 데이터 소스들만을 압축하고, 해시 테이블 및 데이터 소스들이 저장된 캐시를 이용하여 사용자의 구조화 질의어 조회요청을 처리하는 것이 가능하다.

Description

압축 방식을 이용한 데이터 소스 관리 장치 및 방법 {APPARATUS AND METHOD FOR MANAGING DATA-SOURCE USING METHOD OF COMPRESSION}
본 발명은 기존의 캐시 메모리의 공간적 한계성을 극복하고 캐시에 저장된 데이터들의 사용빈도에 기반하여 데이터를 관리할 수 있는 압축 방식을 이용한 데이터 소스 관리 장치 및 방법에 관한 것이다.
대형 트래픽 플랫폼의 경우에는 하루에도 수십에서 수백만 구조화 질의어(SQL; Structrued Query Language)들이 데이터 베이스로 전송된다. 이러한 구조화 질의어에 대해서 데이터 베이스에서는 동일한 구조화 질의어가 반복적으로 전송되는 경우, 이전에 전송했던 구조화 질의어 응답보다는 빠른 응답시간으로 반응하게 된다. 이는 데이터 베이스 블록이 구조화 질의어 전송시 데이터 베이스 서버 메모리(Database Server Memory)상에 캐시가 되기 때문이다. 하지만 DBMS(Database Management System)는 구조화 질의어에 대한 구문이나 의미 체크를 하게 되고, 옵티마이저(Optimizer)를 이용하여 구조화 질의어의 실행 계획을 최적화 하는 작업을 거치기 때문에 느려질 수 밖에 없다.
이러한 작업들 때문에 보통 구조화 질의어 전송 후 응답 값인 데이터 소스를 캐시하기도 하며 이를 간혹 데이터 베이스에서 지원하기도 한다. 하지만 이러한 방법은 데이터 양이 매우 크고, 데이터 조작어(DML; Data Manipulation Language)가 많은 경우에 캐시에서 삭제되면서 오히려 성능이 더 떨어지게 된다. 또한 데이터 베이스에서 매번 요청하게 되면 데이터 베이스가 해당 트래픽을 감당하지 못하고 장애가 발생할 위험이 높아지게 된다.
이러한 데이터 베이스 트래픽을 줄이기 위해서 조회의 경우에는 캐싱(Caching) 기법을 사용하여 조회하게 된다. 캐싱 기법은 최초 조회 시 조회 대상이 캐시 메모리 상에 없으면 데이터 베이스에서 조회하여 읽어온 데이터 소스를 캐시 메모리 상에 저장하고, 이후 동일한 구조화 질의어에 대한 조회일 경우 다시 데이터 베이스를 조회하지 않고 캐시 메모리에서 데이터 소스를 읽어오는 방식이다.
한국 공개 특허 제10-2006-0117006호, 2008년 5월 28일 공개 (명칭: 데이터를 압축하여 관리하는 메모리 및 그 방법)
본 발명의 목적은, 데이터 소스들을 사용 빈도를 기준으로 압축하여 캐시 서버에 저장함으로써, 최대한 많은 양의 데이터를 캐시 서버에 유지하여 구조화 질의어 조회요청에 대한 신속한 응답을 제공하는 것이다.
또한, 본 발명의 목적은 데이터 소스의 사용 빈도에 따라 캐시 서버에 유지되는 데이터 소스들을 관리함으로써, 자주 사용되거나 최근에 사용되었던 데이터 소스들을 캐시 서버에 최대한 오랫동안 유지시켜 데이터 베이스 관리 시스템의 효율을 상승시키는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 데이터 소스 관리 장치는, 데이터 소스들에 상응하는 엘리먼트들 각각을 복수 개의 필드들로 나누어 저장한 해시 테이블을 생성하는 해시 테이블 생성부; 상기 필드들 중 조회 횟수를 이용하여 상기 데이터 소스들 중 압축될 압축 데이터 소스들의 개수를 결정하는 압축 대상 산정부; 상기 데이터 소스들 중 상기 압축 데이터 소스들만을 압축하는 데이터 소스 압축부; 및 상기 해시 테이블 및 상기 데이터 소스들이 저장된 캐시를 이용하여 사용자의 구조화 질의어 조회요청을 처리하는 질의 처리부를 포함한다.
이 때, 질의 처리부는 상기 해시 테이블을 이용하여 상기 데이터 소스들 중 상기 구조화 질의어 조회요청에 상응하는 데이터 소스가 상기 캐시에 존재하는지 여부에 따라 데이터 베이스를 이용하여 상기 구조화 질의어 조회요청을 처리할 수 있다.
이 때, 질의 처리부는 상기 구조화 질의어 조회요청에 상응하는 데이터 소스가 상기 캐시에 존재하지 않는 경우에, 상기 데이터 베이스를 이용하여 상기 구조화 질의어 조회요청에 상응하는 데이터 베이스 블록을 상기 사용자에게 제공하고, 상기 데이터 베이스 블록을 상기 데이터 소스들에 상응하는 형태로 상기 캐시에 저장할 수 있다.
이 때, 질의 처리부는 상기 구조화 질의어 조회요청에 상응하는 데이터 소스가 상기 압축 데이터 소스들에 포함되는지 여부에 따라 상기 데이터 소스의 압축을 해제하여 상기 사용자에게 제공할 수 있다.
이 때, 데이터 소스 관리 장치는 상기 압축 데이터 소스들의 압축을 해제하는 데이터 소스 압축 해제부를 더 포함할 수 있다.
이 때, 압축 대상 산정부는 상기 조회 횟수가 높은 순서로 정렬된 상기 해시 테이블을 기준으로, 상기 데이터 소스들 중 전체 조회 횟수의 기설정된 퍼센트에 상응하는 상기 해시 테이블 상의 상위 데이터 소스들을 제외한 나머지를 이용하여 상기 압축 데이터 소스들의 개수를 결정할 수 있다.
이 때, 데이터 소스 관리 장치는 상기 데이터 소스들 중 기설정된 기간 동안 상기 조회 횟수가 증가하지 않은 적어도 하나의 데이터 소스를 상기 캐시에서 삭제하는 데이터 소스 갱신부를 더 포함할 수 있다.
이 때, 해시 테이블 생성부는 상기 기설정된 기간 동안 요청되는 적어도 하나의 상기 구조화 질의어 조회요청을 기반으로, 상기 기설정된 기간마다 상기 해시 테이블을 갱신할 수 있다.
이 때, 압축 대상 산정부는 상기 기설정된 기간마다 상기 갱신된 해시 테이블의 상기 조회 횟수를 이용하여 상기 압축 데이터 소스들의 개수를 결정할 수 있다.
이 때, 해시 테이블 생성부는 구조화 질의어 테이블이 변경되었을 경우에, 상기 필드들 중 테이블 이름을 이용하여 상기 데이터 소스들 중 상기 구조화 질의어 테이블에 상응하는 데이터 소스들을 조회하여 변경할 수 있다.
또한, 본 발명에 따른 데이터 소스 관리 방법은, 데이터 소스들에 상응하는 엘리먼트들 각각을 복수 개의 필드들로 나누어 저장한 해시 테이블을 생성하는 단계; 상기 필드들 중 조회 횟수를 이용하여 상기 데이터 소스들 중 압축될 압축 데이터 소스들의 개수를 결정하는 단계; 상기 데이터 소스들 중 상기 압축 데이터 소스들만을 압축하는 단계; 상기 해시 테이블 및 상기 데이터 소스들이 저장된 캐시를 이용하여 사용자의 구조화 질의어 조회 요청을 처리하는 단계를 포함한다.
이 때, 처리하는 단계는 상기 해시 테이블을 이용하여 상기 데이터 소스들 중 상기 구조화 질의어 조회요청에 상응하는 데이터 소스가 상기 캐시에 존재하는지 여부를 판단하는 단계를 포함하고, 상기 판단 결과에 따라 데이터 베이스를 이용하여 상기 구조화 질의어 조회요청을 처리할 수 있다.
이 때, 처리하는 단계는 상기 판단 결과 상기 데이터 소스가 상기 캐시에 존재하지 않는 경우에, 상기 데이터 베이스를 이용하여 상기 구조화 질의어 조회요청에 상응하는 데이터 베이스 블록을 상기 사용자에게 제공하는 단계를 포함하고, 상기 데이터 베이스 블록을 상기 데이터 소스들에 상응하는 형태로 상기 캐시에 저장할 수 있다.
이 때, 처리하는 단계는 상기 구조화 질의어 조회요청에 상응하는 데이터 소스가 상기 압축 데이터 소스들에 포함되는지 여부에 따라 상기 데이터 소스의 압축을 해제하여 상기 사용자에게 제공할 수 있다.
이 때, 데이터 소스 관리 방법은 상기 압축 데이터 소스들의 압축을 해제하는 단계를 더 포함할 수 있다.
이 때, 결정하는 단계는 상기 조회 횟수가 높은 순서로 정렬된 상기 해시 테이블을 기준으로, 상기 데이터 소스들 중 전체 조회 횟수의 기설정된 퍼센트에 상응하는 상기 해시 테이블 상의 상위 데이터 소스들을 제외한 나머지를 이용하여 상기 압축 데이터 소스들의 개수를 결정할 수 있다.
이 때, 데이터 소스 관리 방법은 상기 데이터 소스들 중 기설정된 기간 동안 상기 조회 횟수가 증가하지 않은 적어도 하나의 데이터 소스를 상기 캐시에서 삭제하는 단계를 더 포함할 수 있다.
이 때, 생성하는 단계는 상기 기설정된 기간 동안 요청되는 적어도 하나의 상기 구조화 질의어 조회요청을 기반으로, 상기 기설정된 기간마다 상기 해시 테이블을 갱신할 수 있다.
이 때, 결정하는 단계는 상기 기설정된 기간마다 상기 갱신된 해시 테이블의 상기 조회 횟수를 이용하여 상기 압축 데이터 소스들의 개수를 결정할 수 있다.
본 발명에 따르면, 데이터 소스 압축 방식을 이용하여 캐시 서버에 최대한 많은 양의 데이터 소스들을 유지시킴으로써, 구조화 질의어 조회요청 시 보다 신속한 응답을 제공할 수 있다.
또한, 본 발명은 데이터 소스들의 사용 빈도를 기반으로 캐시 서버에 유지되는 데이터 소스들을 결정함으로써, 자주 사용되거나 최근에 사용되었던 데이터 소스를 캐시 서버에 유지시켜 구조화 질의어 조회를 신속하게 처리할 수 있다.
도 1은 본 발명의 일실시예에 따른 데이터 소스 관리 장치를 나타낸 블록도이다.
도 2는 본 발명의 일실시예에 따른 데이터 소스 관리 시스템을 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 해시 테이블을 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 해시 테이블의 테이블 이름으로 조회 가능한 리버스 인덱스 테이블을 나타낸 도면이다.
도 5는 본 발명의 일실시예에 따른 데이터 소스 관리 방법을 나타낸 동작 흐름도이다.
이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. 또한 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다.
도 1은 본 발명의 일실시예에 따른 데이터 소스 관리 장치를 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 데이터 소스 관리 장치(100)는 해시 테이블 생성부(110), 압축 대상 산정부(120), 데이터 소스 압축부(130), 질의 처리부(140), 데이터 소스 압축 해제부(150) 및 데이터 소스 관리부(160)를 포함할 수 있다.
해시 테이블 생성부(110)는 데이터 소스들에 상응하는 엘리먼트들 각각을 복수 개의 필드들로 나누어 저장한 해시 테이블을 생성할 수 있다. 해시 테이블은 데이터 소스에 대한 조회 시 빠른 조회속도를 보이기 위해, 구조화 질의어 텍스트를 MD5 또는 SHA1의 해시 함수를 이용하여 생성한 키 값을 기반으로 생성할 수 있다. 또한, 해시 테이블은 조회 횟수를 기준으로 생성된 순위로 정렬되어 나타낼 수 있다.
이 때, 기설정된 기간 동안 요청되는 적어도 하나의 구조화 질의어 조회 요청을 기반으로, 기설정된 기간마다 해시 테이블을 갱신할 수 있다. 예를 들어, 기설정된 기간을 24시간으로 설정하였을 때, 24시간 동안 요청되는 구조화 질의어 조회요청에 따라 각각 상응하는 데이터 소스의 조회 횟수를 상승시킬 수 있다. 이렇게 변경된 조회 횟수에 따라서 해시 테이블 내에서 데이터 소스들의 정렬 순서가 변경될 수 있고, 데이터 소스들 각각에 대한 압축 상태도 변경될 수도 있다.
이 때, 구조화 질의어 테이블이 변경되었을 경우에, 필드들 중 테이블 이름을 이용하여 데이터 소스들 중 구조화 질의어 테이블에 상응하는 데이터 소스들을 조회하여 변경할 수 있다. 예를 들어, 테이블 이름을 키 값으로 구조화 질의어를 분석하여 리버스 인덱스 테이블을 구성할 수 있다. 이와 같은 리버스 인덱스 테이블은 구조화 질의어 테이블에 데이터 조작어(DML)가 발생하는 경우 캐시에서 삭제하기 위한 용도로 사용될 수 있다.
압축 대상 산정부(120)는 필드들 중 조회 횟수를 이용하여 데이터 소스들 중 압축될 압축 데이터 소스들의 개수를 결정할 수 있다. 조회 횟수를 이용하여 압축 데이터 소스들을 결정함으로써, 사용빈도가 높은 데이터 소스들은 압축하지 않은 상태로 유지하고 상대적으로 사용빈도가 낮은 데이터 소스들을 압축하여 저장할 수 있다.
이 때, 조회 횟수가 높은 순서로 정렬된 해시 테이블을 기준으로, 데이터 소스들 중 전체 조회 횟수의 기설정된 퍼센트에 상응하는 해시 테이블 상의 상위 데이터 소스들을 제외한 나머지를 이용하여 압축 데이터 소스들의 개수를 결정할 수 있다. 예를 들어, 해시 테이블의 정렬 순으로 조회 횟수를 합산하여, 전체 조회 횟수의 80퍼센트가 되는 순위의 데이터 소스까지를 제외한 하위 데이터 소스들을 이용하여 압축 데이터 소스들의 개수를 결정할 수 있다. 이와 같은 기준을 적용하는 이유는 대체로 자주 사용되는 상위 20퍼센트의 상위 데이터 소스들이 80퍼센트의 트래픽을 발생시킬 수 있기 때문이다.
이 때, 기설정된 기간마다 갱신된 해시 테이블의 조회 횟수를 이용하여 압축 데이터 소스들의 개수를 결정할 수 있다. 예를 들어, 기설정된 기간 동안 요청되는 구조화 질의어 조회요청에 의해 해시 테이블 상의 조회 횟수가 변경될 수 있다. 따라서, 해시 테이블의 조회 횟수를 이용하여 결정되는 압축 데이터 소스들의 개수도 기설정된 기간마다 갱신된 해시 테이블의 조회 횟수를 이용하여 새롭게 결정될 수 있다.
데이터 소스 압축부(130)는 데이터 소스들 중 압축 데이터 소스들만을 압축할 수 있다. 캐시에 저장되어 있는 데이터 소스들 중 압축 대상 산정부(120)에서 결정된 압축 데이터 소스들의 개수에 상응하게 데이터 소스들을 압축할 수 있다. 데이터 소스를 압축하여 저장하는 이유는 캐시에 최대한의 데이터 소스를 저장하도록 하여 구조화 데이터 응답의 속도를 향상시키기 위함일 수 있다. 또한, 압축 방식을 사용하는 이유는 디스크를 이용하여 입력 및 출력하는 방식이나 데이터 베이스를 조회하는 방식보다는 중앙 처리 장치(CPU; Central Processing Unit)로 데이터 소스를 압축 및 해제를 수행하는 것이 데이터 처리를 더 빠르게 할 수 있기 때문이다. 또한, 압축 시 기존 대비 10배 가량의 정보를 캐시에 저장할 수 있다.
질의 처리부(140)는 해시 테이블 및 데이터 소스들이 저장된 캐시를 이용하여 사용자의 구조화 질의어 조회요청을 처리할 수 있다. 사용자에 의해 특정 구조화 질의어 조회요청이 접수되는 경우, 해시 테이블을 이용하여 해당 구조화 질의어 조회요청에 상응하는 데이터 소스를 조회하고, 조회된 데이터 소스를 캐시로부터 사용자에게 제공할 수 있다.
이 때, 해시 테이블을 이용하여 데이터 소스들 중 구조화 질의어 조회요청에 상응하는 데이터 소스가 캐시에 존재하는지 여부에 따라 데이터 베이스를 이용하여 구조화 질의어 조회요청을 처리할 수 있다. 예를 들어, 캐시에 저장된 데이터 소스들 중에 구조화 질의어 조회요청에 상응하는 데이터 소스가 존재하지 않는다면, 데이터 베이스에서 구조화 질의어 조회요청에 상응하는 데이터를 조회할 수 있다.
이 때, 구조화 질의어 조회요청에 상응하는 데이터 소스가 캐시에 존재하지 않는 경우에, 데이터 베이스를 이용하여 구조화 질의어 조회요청에 상응하는 데이터 베이스 블록을 사용자에게 제공하고, 데이터 베이스 블록을 데이터 소스들에 상응하는 형태로 캐시에 저장할 수 있다. 일반적으로 한번 요청되었던 구조화 질의어 조회요청은 같은 시기에 여러 번 조회요청이 발생할 수 있다. 따라서, 캐시에 존재하지 않던 데이터 소스가 요청되었다면, 데이터 베이스를 통해 데이터 베이스 블록을 제공한 뒤 캐시에 데이터 소스의 형태로 저장함으로써 다음에 같은 조회요청이 발생하였을 때 신속하게 응답할 수 있도록 할 수 있다.
데이터 소스 압축 해제부(150)는 압축 데이터 소스들의 압축을 해제할 수 있다. 예를 들어, 기설정된 기간마다 갱신되는 해시 테이블에 따라 기존에 압축 데이터 소스로 저장되었던 데이터 소스를 압축 해제상태로 저장할 때 데이터 소스 압축 해제부(150)를 이용하여 압축을 해제할 수 있다. 또한, 구조화 질의어 조회요청에 상응하는 데이터 소스가 캐시에 저장된 압축 데이터 소스일 경우에도 해당 압축 데이터 소스의 압축을 해제한 뒤 사용자에게 제공할 수 있다.
데이터 소스 갱신부(160)는 데이터 소스들 중 기설정된 기간 동안 조회 횟수가 증가하지 않은 적어도 하나의 데이터 소스를 캐시에서 삭제할 수 있다. 예를 들어, 기설정된 기간 동안 조회 횟수가 하위 10퍼센트에 속하거나, 기설정된 기간 동안 조회 횟수가 전혀 증가하지 않은 데이터 소스들은 캐시 상에서 삭제할 수 있다. 일반적으로 캐시 상에서 데이터 소스를 관리할 때에는 각각의 데이터 소스들마다 만료 시간을 부여하여, 만료 시간이 지난 데이터 소스들은 캐시에서 삭제되는 방식을 이용하였다. 그러나 이러한 방식은 동시에 많은 데이터 소스들이 만료되고 다시 데이터 베이스를 이용하여 조회를 요청하는 경우가 발생하여 데이터 베이스에 큰 부담을 줄 수 있다. 또한, 자주 사용되는 데이터 소스들의 경우 비슷한 시간대의 사용 패턴이 발생할 수 있기 때문에 확률적으로도 상기와 같은 문제가 발생할 수 있다.
이와 같은 데이터 소스 관리 장치(100)를 이용하여 캐시에 저장되는 데이터 소스를 관리함으로써, 보다 많은 양의 데이터 소스들을 캐시에 저장하고 사용 빈도가 높은 데이터 소스들을 오랫동안 저장하여, 데이터 베이스 관리 시스템의 처리 속도를 향상시킬 수 있다.
도 2는 본 발명의 일실시예에 따른 데이터 소스 관리 시스템을 나타낸 도면이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 데이터 소스 관리 시스템은 데이터 소스 관리 장치(200), 캐시(210), 데이터 베이스(220) 및 구조화 질의어 전송 서버(230)를 포함할 수 있다.
데이터 소스 관리 장치(200)는 데이터 소스들에 상응하는 엘리먼트들 각각을 복수 개의 필드들로 나누어 저장한 해시 테이블을 생성할 수 있다. 해시 테이블은 데이터 소스에 대한 조회 시 빠른 조회속도를 보이기 위해, 구조화 질의어 텍스트를 MD5 또는 SHA1의 해시 함수를 이용하여 생성한 키 값을 기반으로 생성할 수 있다. 또한, 해시 테이블은 조회 횟수를 기준으로 생성된 순위로 정렬되어 나타낼 수 있다.
이 때, 기설정된 기간 동안 요청되는 적어도 하나의 구조화 질의어 조회 요청을 기반으로, 기설정된 기간마다 해시 테이블을 갱신할 수 있다. 예를 들어, 기설정된 기간을 24시간으로 설정하였을 때, 24시간 동안 요청되는 구조화 질의어 조회요청에 따라 각각 상응하는 데이터 소스의 조회 횟수를 상승시킬 수 있다. 이렇게 변경된 조회 횟수에 따라서 해시 테이블 내에서 데이터 소스들의 정렬 순서가 변경될 수 있고, 데이터 소스들 각각에 대한 압축 상태도 변경될 수도 있다.
이 때, 구조화 질의어 테이블이 변경되었을 경우에, 필드들 중 테이블 이름을 이용하여 데이터 소스들 중 구조화 질의어 테이블에 상응하는 데이터 소스들을 조회하여 변경할 수 있다. 예를 들어, 테이블 이름을 키 값으로 구조화 질의어를 분석하여 리버스 인덱스 테이블을 구성할 수 있다. 이와 같은 리버스 인덱스 테이블은 구조화 질의어 테이블에 데이터 조작어(DML)가 발생하는 경우 캐시(210)에서 삭제하기 위한 용도로 사용될 수 있다.
또한, 데이터 소스 관리 장치(200)는 필드들 중 조회 횟수를 이용하여 데이터 소스들 중 압축될 압축 데이터 소스들의 개수를 결정할 수 있다. 조회 횟수를 이용하여 압축 데이터 소스들을 결정함으로써, 사용빈도가 높은 데이터 소스들은 압축하지 않은 상태로 유지하고 상대적으로 사용빈도가 낮은 데이터 소스들을 압축하여 저장할 수 있다.
이 때, 조회 횟수가 높은 순서로 정렬된 해시 테이블을 기준으로, 데이터 소스들 중 전체 조회 횟수의 기설정된 퍼센트에 상응하는 해시 테이블 상의 상위 데이터 소스들을 제외한 나머지를 이용하여 압축 데이터 소스들의 개수를 결정할 수 있다. 예를 들어, 해시 테이블의 정렬 순으로 조회 횟수를 합산하여, 전체 조회 횟수의 80퍼센트가 되는 순위의 데이터 소스까지를 제외한 하위 데이터 소스들을 이용하여 압축 데이터 소스들의 개수를 결정할 수 있다. 이와 같은 기준을 적용하는 이유는 대체로 자주 사용되는 상위 20퍼센트의 상위 데이터 소스들이 80퍼센트의 트래픽을 발생시킬 수 있기 때문이다.
이 때, 기설정된 기간마다 갱신된 해시 테이블의 조회 횟수를 이용하여 압축 데이터 소스들의 개수를 결정할 수 있다. 예를 들어, 기설정된 기간 동안 요청되는 구조화 질의어 조회요청에 의해 해시 테이블 상의 조회 횟수가 변경될 수 있다. 따라서, 해시 테이블의 조회 횟수를 이용하여 결정되는 압축 데이터 소스들의 개수도 기설정된 기간마다 갱신된 해시 테이블의 조회 횟수를 이용하여 새롭게 결정될 수 있다.
또한, 데이터 소스 관리 장치(200)는 데이터 소스들 중 압축 데이터 소스들만을 압축할 수 있다. 캐시(210)에 저장되어 있는 데이터 소스들 중 압축 대상 산정부(120)에서 결정된 압축 데이터 소스들의 개수에 상응하게 데이터 소스들을 압축할 수 있다. 데이터 소스를 압축하여 저장하는 이유는 캐시(210)에 최대한의 데이터 소스를 저장하도록 하여 구조화 데이터 응답의 속도를 향상시키기 위함일 수 있다. 또한, 압축 방식을 사용하는 이유는 디스크를 이용하여 입력 및 출력하는 방식이나 데이터 베이스(220)를 조회하는 방식보다는 중앙 처리 장치로 데이터 소스를 압축 및 해제를 수행하는 것이 데이터 처리를 더 빠르게 할 수 있기 때문이다. 또한, 압축 시 기존 대비 10배 가량의 정보를 캐시(210)에 저장할 수 있다.
또한, 데이터 소스 관리 장치(200)는 해시 테이블 및 데이터 소스들이 저장된 캐시(210)를 이용하여 사용자의 구조화 질의어 조회요청을 처리할 수 있다. 사용자에 의해 특정 구조화 질의어 조회요청이 접수되는 경우, 해시 테이블을 이용하여 해당 구조화 질의어 조회요청에 상응하는 데이터 소스를 조회하고, 조회된 데이터 소스를 캐시(210)로부터 사용자에게 제공할 수 있다.
이 때, 해시 테이블을 이용하여 데이터 소스들 중 구조화 질의어 조회요청에 상응하는 데이터 소스가 캐시(210)에 존재하는지 여부에 따라 데이터 베이스(220)를 이용하여 구조화 질의어 조회요청을 처리할 수 있다. 예를 들어, 캐시(210)에 저장된 데이터 소스들 중에 구조화 질의어 조회요청에 상응하는 데이터 소스가 존재하지 않는다면, 데이터 베이스(220)에서 구조화 질의어 조회요청에 상응하는 데이터를 조회할 수 있다.
이 때, 구조화 질의어 조회요청에 상응하는 데이터 소스가 캐시(210)에 존재하지 않는 경우에, 데이터 베이스(220)를 이용하여 구조화 질의어 조회요청에 상응하는 데이터 베이스 블록을 사용자에게 제공하고, 데이터 베이스 블록을 데이터 소스들에 상응하는 형태로 캐시(210)에 저장할 수 있다. 일반적으로 한번 요청되었던 구조화 질의어 조회요청은 같은 시기에 여러 번 조회요청이 발생할 수 있다. 따라서, 캐시(210)에 존재하지 않던 데이터 소스가 요청되었다면, 데이터 베이스(220)를 통해 데이터 베이스 블록을 제공한 뒤 캐시(210)에 데이터 소스의 형태로 저장함으로써 다음에 같은 조회요청이 발생하였을 때 신속하게 응답할 수 있도록 할 수 있다.
또한, 데이터 소스 관리 장치(200)는 압축 데이터 소스들의 압축을 해제할 수 있다. 예를 들어, 기설정된 기간마다 갱신되는 해시 테이블에 따라 기존에 압축 데이터 소스로 저장되었던 데이터 소스를 압축 해제상태로 저장할 때 데이터 소스 압축 해제부(150)를 이용하여 압축을 해제할 수 있다. 또한, 구조화 질의어 조회요청에 상응하는 데이터 소스가 캐시(210)에 저장된 압축 데이터 소스일 경우에도 해당 압축 데이터 소스의 압축을 해제한 뒤 사용자에게 제공할 수 있다.
또한, 데이터 소스 관리 장치(200)는 데이터 소스들 중 기설정된 기간 동안 조회 횟수가 증가하지 않은 적어도 하나의 데이터 소스를 캐시(210)에서 삭제할 수 있다. 예를 들어, 기설정된 기간 동안 조회 횟수가 하위 10퍼센트에 속하거나, 기설정된 기간 동안 조회 횟수가 전혀 증가하지 않은 데이터 소스들은 캐시(210) 상에서 삭제할 수 있다. 일반적으로 캐시(210) 상에서 데이터 소스를 관리할 때에는 각각의 데이터 소스들마다 만료 시간을 부여하여, 만료 시간이 지난 데이터 소스들은 캐시(210)에서 삭제되는 방식을 이용하였다. 그러나 이러한 방식은 동시에 많은 데이터 소스들이 만료되고 다시 데이터 베이스(220)를 이용하여 조회를 요청하는 경우가 발생하여 데이터 베이스(220)에 큰 부담을 줄 수 있다. 또한, 자주 사용되는 데이터 소스들의 경우 비슷한 시간대의 사용 패턴이 발생할 수 있기 때문에 확률적으로도 상기와 같은 문제가 발생할 수 있다.
캐시(210)는 데이터 소스들 및 해시 테이블을 저장할 수 있다. 캐시(210)에 저장되는 데이터 소스들은 구조화 질의어 전송 서버(230)로부터 적어도 한번 이상은 구조화 질의어 조회요청이 있었던 데이터 소스들일 수 있다. 이와 같이 캐시(210)를 이용하여 데이터 소스들을 제공하는 이유는, 구조화 질의어 조회요청에 따라 매번 데이터 베이스(220)로 조회요청을 하게 되면 데이터 베이스(220)가 해당 트래픽을 감당하기 못하고 장애가 발생할 수 있기 때문이다. 따라서 구조화 질의어 전송 서버(230)에 의한 구조화 질의어 조회요청을 처리하기 위해서는, 먼저 구조화 질의어 조회요청에 상응하는 데이터 소스가 캐시(210)에 저장되어 있는지 조회할 수 있다. 이때, 캐시(210)에 저장된 데이터 소스들의 정보를 해시 테이블을 이용하여 조회할 수 있다. 만약, 캐시(210)에 구조화 질의어 조회요청에 상응하는 데이터 소스가 존재하지 않는다면, 데이터 베이스(220)를 조회하여 해당하는 데이터 베이스 블록을 구조화 질의어 전송 서버(230)로 제공할 수 있다.
데이터 베이스(220)는 상기에서 설명한 것과 같이 구조화 질의어 조회요청을 처리하기 위한 데이터들을 데이터 베이스 블록의 형태로 저장할 수 있다.
구조화 질의어 전송 서버(230)는 사용자에 의해 요청되는 구조화 질의어 조회요청을 캐시로 전달할 수 있다.
이와 같은 데이터 소스 관리 시스템을 이용하여 사용자가 원하는 구조화 질의어에 대한 데이터 소스를 신속하게 조회하여 제공할 수 있다.
도 3은 본 발명의 일실시예에 따른 해시 테이블을 나타낸 도면이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 해시 테이블(310)은 데이터 소스의 엘리먼트(330)를 여러 개의 컬럼(320)으로 나누어 저장한 것을 알 수 있다.
예를 들어, 컬럼(320)의 종류는 조회 횟수인 Touch Count를 순위로 정렬하기 위한 Rank, 구조화 질의어 텍스트(SQL text)를 MD5 또는 SHA1 등의 해시 함수를 이용하여 만든 값인 Key 값, 해당 구조화 질의어의 조회 횟수를 나타낸 Touch Count, 데이터 소스의 변경시간을 기록한 Update Time 및 데이터 소스를 압축한 이진 문자열을 나타낸 Compress SQL등을 포함할 수 있다.
이와 같은 해시 테이블(310)을 이용하여 캐시에 저장된 데이터 소스들을 조회할 수 있고, 조회 횟수를 이용하여 캐시에 유지될 데이터 소스들을 관리함으로 사용 빈도가 높은 데이터 소스들을 오랫동안 캐시에 유지시킬 수 있다.
도 4는 본 발명의 일실시예에 따른 해시 테이블의 테이블 이름으로 조회 가능한 리버스 인덱스 테이블을 나타낸 도면이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 해시 테이블의 테이블 이름으로 조회 가능한 리버스 인덱스 테이블(410)은 해시 테이블의 컬럼 중 하나인 테이블 이름(Table Name)의 값을 이용하여 데이터 소스들의 키 값을 정렬할 수 있다. 이와 같은 리버스 인덱스 테이블(410)은 특정 구조화 질의어 테이블에 데이터 조작어가 발생하는 경우에 캐시에서 해당 구조화 질의어 테이블에 상응하는 데이터 소스들을 삭제하기 위한 용도로 사용될 수 있다.
도 5는 본 발명의 일실시예에 따른 데이터 소스 관리 방법을 나타낸 동작 흐름도이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 데이터 소스 관리 방법은 데이터 소스들에 상응하는 엘리먼트들 각각을 복수 개의 필드들로 나누어 저장한 해시 테이블을 생성할 수 있다(S510). 해시 테이블은 데이터 소스에 대한 조회 시 빠른 조회속도를 보이기 위해, 구조화 질의어 텍스트를 MD5 또는 SHA1의 해시 함수를 이용하여 생성한 키 값을 기반으로 생성할 수 있다. 또한, 해시 테이블은 조회 횟수를 기준으로 생성된 순위로 정렬되어 나타낼 수 있다.
이 때, 기설정된 기간 동안 요청되는 적어도 하나의 구조화 질의어 조회 요청을 기반으로, 기설정된 기간마다 해시 테이블을 갱신할 수 있다. 예를 들어, 기설정된 기간을 24시간으로 설정하였을 때, 24시간 동안 요청되는 구조화 질의어 조회요청에 따라 각각 상응하는 데이터 소스의 조회 횟수를 상승시킬 수 있다. 이렇게 변경된 조회 횟수에 따라서 해시 테이블 내에서 데이터 소스들의 정렬 순서가 변경될 수 있고, 데이터 소스들 각각에 대한 압축 상태도 변경될 수도 있다.
이 때, 구조화 질의어 테이블이 변경되었을 경우에, 필드들 중 테이블 이름을 이용하여 데이터 소스들 중 구조화 질의어 테이블에 상응하는 데이터 소스들을 조회하여 변경할 수 있다. 예를 들어, 테이블 이름을 키 값으로 구조화 질의어를 분석하여 리버스 인덱스 테이블을 구성할 수 있다. 이와 같은 리버스 인덱스 테이블은 구조화 질의어 테이블에 데이터 조작어(DML)가 발생하는 경우 캐시에서 삭제하기 위한 용도로 사용될 수 있다.
또한, 본 발명의 일실시예에 따른 데이터 소스 관리 방법은 필드들 중 조회 횟수를 이용하여 데이터 소스들 중 압축될 압축 데이터 소스들의 개수를 결정할 수 있다(S520). 조회 횟수를 이용하여 압축 데이터 소스들을 결정함으로써, 사용빈도가 높은 데이터 소스들은 압축하지 않은 상태로 유지하고 상대적으로 사용빈도가 낮은 데이터 소스들을 압축하여 저장할 수 있다.
이 때, 조회 횟수가 높은 순서로 정렬된 해시 테이블을 기준으로, 데이터 소스들 중 전체 조회 횟수의 기설정된 퍼센트에 상응하는 해시 테이블 상의 상위 데이터 소스들을 제외한 나머지를 이용하여 압축 데이터 소스들의 개수를 결정할 수 있다. 예를 들어, 해시 테이블의 정렬 순으로 조회 횟수를 합산하여, 전체 조회 횟수의 80퍼센트가 되는 순위의 데이터 소스까지를 제외한 하위 데이터 소스들을 이용하여 압축 데이터 소스들의 개수를 결정할 수 있다. 이와 같은 기준을 적용하는 이유는 대체로 자주 사용되는 상위 20퍼센트의 상위 데이터 소스들이 80퍼센트의 트래픽을 발생시킬 수 있기 때문이다.
이 때, 기설정된 기간마다 갱신된 해시 테이블의 조회 횟수를 이용하여 압축 데이터 소스들의 개수를 결정할 수 있다. 예를 들어, 기설정된 기간 동안 요청되는 구조화 질의어 조회요청에 의해 해시 테이블 상의 조회 횟수가 변경될 수 있다. 따라서, 해시 테이블의 조회 횟수를 이용하여 결정되는 압축 데이터 소스들의 개수도 기설정된 기간마다 갱신된 해시 테이블의 조회 횟수를 이용하여 새롭게 결정될 수 있다.
또한, 본 발명의 일실시예에 따른 데이터 소스 관리 방법은 데이터 소스들 중 압축 데이터 소스들만을 압축할 수 있다(S530). 캐시에 저장되어 있는 데이터 소스들 중 압축 대상 산정부에서 결정된 압축 데이터 소스들의 개수에 상응하게 데이터 소스들을 압축할 수 있다. 데이터 소스를 압축하여 저장하는 이유는 캐시에 최대한의 데이터 소스를 저장하도록 하여 구조화 데이터 응답의 속도를 향상시키기 위함일 수 있다. 또한, 압축 방식을 사용하는 이유는 디스크를 이용하여 입력 및 출력하는 방식이나 데이터 베이스를 조회하는 방식보다는 중앙 처리 장치로 데이터 소스를 압축 및 해제를 수행하는 것이 데이터 처리를 더 빠르게 할 수 있기 때문이다. 또한, 압축 시 기존 대비 10배 가량의 정보를 캐시에 저장할 수 있다.
또한, 본 발명의 일실시예에 따른 데이터 소스 관리 방법은 해시 테이블 및 데이터 소스들이 저장된 캐시를 이용하여 사용자의 구조화 질의어 조회요청을 처리할 수 있다(S540). 사용자에 의해 특정 구조화 질의어 조회요청이 접수되는 경우, 해시 테이블을 이용하여 해당 구조화 질의어 조회요청에 상응하는 데이터 소스를 조회하고, 조회된 데이터 소스를 캐시로부터 사용자에게 제공할 수 있다.
이 때, 해시 테이블을 이용하여 데이터 소스들 중 구조화 질의어 조회요청에 상응하는 데이터 소스가 캐시에 존재하는지 여부에 따라 데이터 베이스를 이용하여 구조화 질의어 조회요청을 처리할 수 있다. 예를 들어, 캐시에 저장된 데이터 소스들 중에 구조화 질의어 조회요청에 상응하는 데이터 소스가 존재하지 않는다면, 데이터 베이스에서 구조화 질의어 조회요청에 상응하는 데이터를 조회할 수 있다.
이 때, 구조화 질의어 조회요청에 상응하는 데이터 소스가 캐시에 존재하지 않는 경우에, 데이터 베이스를 이용하여 구조화 질의어 조회요청에 상응하는 데이터 베이스 블록을 사용자에게 제공하고, 데이터 베이스 블록을 데이터 소스들에 상응하는 형태로 캐시에 저장할 수 있다. 일반적으로 한번 요청되었던 구조화 질의어 조회요청은 같은 시기에 여러 번 조회요청이 발생할 수 있다. 따라서, 캐시에 존재하지 않던 데이터 소스가 요청되었다면, 데이터 베이스를 통해 데이터 베이스 블록을 제공한 뒤 캐시에 데이터 소스의 형태로 저장함으로써 다음에 같은 조회요청이 발생하였을 때 신속하게 응답할 수 있도록 할 수 있다.
도 5에는 도시하지 아니하였지만, 본 발명의 일실시예에 따른 데이터 소스 관리 방법은 압축 데이터 소스들의 압축을 해제할 수 있다. 예를 들어, 기설정된 기간마다 갱신되는 해시 테이블에 따라 기존에 압축 데이터 소스로 저장되었던 데이터 소스를 압축 해제상태로 저장할 때 데이터 소스 압축 해제부(150)를 이용하여 압축을 해제할 수 있다. 또한, 구조화 질의어 조회요청에 상응하는 데이터 소스가 캐시에 저장된 압축 데이터 소스일 경우에도 해당 압축 데이터 소스의 압축을 해제한 뒤 사용자에게 제공할 수 있다.
또한, 도 5에는 도시하지 아니하였지만, 본 발명의 일실시예에 따른 데이터 소스 관리 방법은 데이터 소스들 중 기설정된 기간 동안 조회 횟수가 증가하지 않은 적어도 하나의 데이터 소스를 캐시에서 삭제할 수 있다. 예를 들어, 기설정된 기간 동안 조회 횟수가 하위 10퍼센트에 속하거나, 기설정된 기간 동안 조회 횟수가 전혀 증가하지 않은 데이터 소스들은 캐시 상에서 삭제할 수 있다. 일반적으로 캐시 상에서 데이터 소스를 관리할 때에는 각각의 데이터 소스들마다 만료 시간을 부여하여, 만료 시간이 지난 데이터 소스들은 캐시에서 삭제되는 방식을 이용하였다. 그러나 이러한 방식은 동시에 많은 데이터 소스들이 만료되고 다시 데이터 베이스를 이용하여 조회를 요청하는 경우가 발생하여 데이터 베이스에 큰 부담을 줄 수 있다. 또한, 자주 사용되는 데이터 소스들의 경우 비슷한 시간대의 사용 패턴이 발생할 수 있기 때문에 확률적으로도 상기와 같은 문제가 발생할 수 있다.
이와 같은 데이터 소스 관리 방법을 이용하여 데이터 소스들을 사용 빈도 기준으로 압축하여 캐시에 저장함으로써, 최대한 많은 양의 데이터를 캐시에 유지시켜 구조화 질의어 조회요청에 대한 신속한 처리를 가능하게 할 수 있다.
본 발명에 따른 데이터 소스 관리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 모든 형태의 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서와 같이 본 발명에 따른 압축 방식을 이용한 데이터 소스 관리 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
본 발명에 의하면 데이터 소스들에 상응하는 엘리먼트들 각각을 복수 개의 필드들로 나누어 저장한 해시 테이블을 생성하고, 필드들 중 조회 횟수를 이용하여 데이터 소스들 중 압축될 압축 데이터 소스들의 개수를 결정하고, 데이터 소스들 중 압축 데이터 소스들만을 압축하고, 해시 테이블 및 데이터 소스들이 저장된 캐시를 이용하여 사용자 구조화 질의어 조회 요청을 처리할 수 있다. 나아가, 데이터 소스 압축 방식을 이용하여 캐시 서버에 최대한 많은 양의 데이터 소스들을 유지시킴으로써, 캐시 서버를 확장하는 비용을 절감하면서 구조화 질의어 조회요청 시 보다 신속한 응답을 제공할 수 있다.
100, 200: 데이터 소스 관리 장치 110: 해시 테이블 생성부
120: 압축 대상 산정부 130: 데이터 소스 압축부
140: 질의 처리부 150: 데이터 소스 압축 해제부
160: 데이터 소스 관리부 210: 캐시
220: 데이터 베이스 230: 구조화 질의어 전송 서버
310: 해시 테이블 320: 컬럼
330: 데이터 소스의 엘리먼트 410: 리버스 인덱스 테이블

Claims (20)

  1. 데이터 소스들에 상응하는 엘리먼트들 각각을 복수 개의 필드들로 나누어 저장한 해시 테이블을 생성하는 해시 테이블 생성부;
    상기 필드들 중 조회 횟수를 이용하여 상기 데이터 소스들 중 압축될 압축 데이터 소스들의 개수를 결정하는 압축 대상 산정부;
    상기 데이터 소스들 중 상기 압축 데이터 소스들만을 압축하는 데이터 소스 압축부; 및
    상기 해시 테이블 및 상기 데이터 소스들이 저장된 캐시를 이용하여 사용자의 구조화 질의어 조회요청을 처리하는 질의 처리부
    를 포함하는 것을 특징으로 하는 데이터 소스 관리 장치.
  2. 청구항 1에 있어서,
    상기 질의 처리부는
    상기 해시 테이블을 이용하여 상기 데이터 소스들 중 상기 구조화 질의어 조회요청에 상응하는 데이터 소스가 상기 캐시에 존재하는지 여부에 따라 데이터 베이스를 이용하여 상기 구조화 질의어 조회요청을 처리하는 것을 특징으로 하는 데이터 소스 관리 장치.
  3. 청구항 2에 있어서,
    상기 질의 처리부는
    상기 구조화 질의어 조회요청에 상응하는 데이터 소스가 상기 캐시에 존재하지 않는 경우에, 상기 데이터 베이스를 이용하여 상기 구조화 질의어 조회요청에 상응하는 데이터 베이스 블록을 상기 사용자에게 제공하고, 상기 데이터 베이스 블록을 상기 데이터 소스들에 상응하는 형태로 상기 캐시에 저장하는 것을 특징으로 하는 데이터 소스 관리 장치.
  4. 청구항 2에 있어서,
    상기 질의 처리부는
    상기 구조화 질의어 조회요청에 상응하는 데이터 소스가 상기 압축 데이터 소스들에 포함되는지 여부에 따라 상기 데이터 소스의 압축을 해제하여 상기 사용자에게 제공하는 것을 특징으로 하는 데이터 소스 관리 장치.
  5. 청구항 4에 있어서,
    상기 데이터 소스 관리 장치는
    상기 압축 데이터 소스들의 압축을 해제하는 데이터 소스 압축 해제부를 더 포함하는 것을 특징으로 하는 데이터 소스 관리 장치.
  6. 청구항 1에 있어서,
    상기 압축 대상 산정부는
    상기 조회 횟수가 높은 순서로 정렬된 상기 해시 테이블을 기준으로, 상기 데이터 소스들 중 전체 조회 횟수의 기설정된 퍼센트에 상응하는 상기 해시 테이블 상의 상위 데이터 소스들을 제외한 나머지를 이용하여 상기 압축 데이터 소스들의 개수를 결정하는 것을 특징으로 하는 데이터 소스 관리 장치.
  7. 청구항 1에 있어서,
    상기 데이터 소스 관리 장치는
    상기 데이터 소스들 중 기설정된 기간 동안 상기 조회 횟수가 증가하지 않은 적어도 하나의 데이터 소스를 상기 캐시에서 삭제하는 데이터 소스 갱신부를 더 포함하는 것을 특징으로 하는 데이터 소스 관리 장치.
  8. 청구항 7에 있어서,
    상기 해시 테이블 생성부는
    상기 기설정된 기간 동안 요청되는 적어도 하나의 상기 구조화 질의어 조회요청을 기반으로, 상기 기설정된 기간마다 상기 해시 테이블을 갱신하는 것을 특징으로 하는 데이터 소스 관리 장치.
  9. 청구항 8에 있어서,
    상기 압축 대상 산정부는
    상기 기설정된 기간마다 상기 갱신된 해시 테이블의 상기 조회 횟수를 이용하여 상기 압축 데이터 소스들의 개수를 결정하는 것을 특징으로 하는 데이터 소스 관리 장치.
  10. 청구항 8에 있어서,
    상기 해시 테이블 생성부는
    구조화 질의어 테이블이 변경되었을 경우에, 상기 필드들 중 테이블 이름을 이용하여 상기 데이터 소스들 중 상기 구조화 질의어 테이블에 상응하는 데이터 소스들을 조회하여 변경하는 것을 특징으로 하는 데이터 소스 관리 장치.
  11. 데이터 소스들에 상응하는 엘리먼트들 각각을 복수 개의 필드들로 나누어 저장한 해시 테이블을 생성하는 단계;
    상기 필드들 중 조회 횟수를 이용하여 상기 데이터 소스들 중 압축될 압축 데이터 소스들의 개수를 결정하는 단계;
    상기 데이터 소스들 중 상기 압축 데이터 소스들만을 압축하는 단계; 및
    상기 해시 테이블 및 상기 데이터 소스들이 저장된 캐시를 이용하여 사용자의 구조화 질의어 조회 요청을 처리하는 단계
    를 포함하는 것을 특징으로 하는 데이터 소스 관리 방법.
  12. 청구항 11에 있어서,
    상기 처리하는 단계는
    상기 해시 테이블을 이용하여 상기 데이터 소스들 중 상기 구조화 질의어 조회요청에 상응하는 데이터 소스가 상기 캐시에 존재하는지 여부를 판단하는 단계를 포함하고,
    상기 판단 결과에 따라 데이터 베이스를 이용하여 상기 구조화 질의어 조회요청을 처리하는 것을 특징으로 하는 데이터 소스 관리 방법.
  13. 청구항 12에 있어서,
    상기 처리하는 단계는
    상기 판단 결과 상기 데이터 소스가 상기 캐시에 존재하지 않는 경우에, 상기 데이터 베이스를 이용하여 상기 구조화 질의어 조회요청에 상응하는 데이터 베이스 블록을 상기 사용자에게 제공하는 단계를 포함하고,
    상기 데이터 베이스 블록을 상기 데이터 소스들에 상응하는 형태로 상기 캐시에 저장하는 것을 특징으로 하는 데이터 소스 관리 방법.
  14. 청구항 12에 있어서,
    상기 처리하는 단계는
    상기 구조화 질의어 조회요청에 상응하는 데이터 소스가 상기 압축 데이터 소스들에 포함되는지 여부에 따라 상기 데이터 소스의 압축을 해제하여 상기 사용자에게 제공하는 것을 특징으로 하는 데이터 소스 관리 방법.
  15. 청구항 14에 있어서,
    상기 데이터 소스 관리 방법은
    상기 압축 데이터 소스들의 압축을 해제하는 단계를 더 포함하는 것을 특징으로 하는 데이터 소스 관리 방법.
  16. 청구항 11에 있어서,
    상기 결정하는 단계는
    상기 조회 횟수가 높은 순서로 정렬된 상기 해시 테이블을 기준으로, 상기 데이터 소스들 중 전체 조회 횟수의 기설정된 퍼센트에 상응하는 상기 해시 테이블 상의 상위 데이터 소스들을 제외한 나머지를 이용하여 상기 압축 데이터 소스들의 개수를 결정하는 것을 특징으로 하는 데이터 소스 관리 방법.
  17. 청구항 11에 있어서,
    상기 데이터 소스 관리 방법은
    상기 데이터 소스들 중 기설정된 기간 동안 상기 조회 횟수가 증가하지 않은 적어도 하나의 데이터 소스를 상기 캐시에서 삭제하는 단계를 더 포함하는 것을 특징으로 하는 데이터 소스 관리 방법.
  18. 청구항 17에 있어서,
    상기 생성하는 단계는
    상기 기설정된 기간 동안 요청되는 적어도 하나의 상기 구조화 질의어 조회요청을 기반으로, 상기 기설정된 기간마다 상기 해시 테이블을 갱신하는 것을 특징으로 하는 데이터 소스 관리 방법.
  19. 청구항 18에 있어서,
    상기 결정하는 단계는
    상기 기설정된 기간마다 상기 갱신된 해시 테이블의 상기 조회 횟수를 이용하여 상기 압축 데이터 소스들의 개수를 결정하는 것을 특징으로 하는 데이터 소스 관리 방법.
  20. 청구항 11 내지 19 중 어느 항 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록매체.
KR1020140061843A 2014-05-22 2014-05-22 압축 방식을 이용한 데이터 소스 관리 장치 및 방법 KR20150134718A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140061843A KR20150134718A (ko) 2014-05-22 2014-05-22 압축 방식을 이용한 데이터 소스 관리 장치 및 방법
PCT/KR2014/011164 WO2015178554A1 (ko) 2014-05-22 2014-11-20 압축 방식을 이용한 데이터 소스 관리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140061843A KR20150134718A (ko) 2014-05-22 2014-05-22 압축 방식을 이용한 데이터 소스 관리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20150134718A true KR20150134718A (ko) 2015-12-02

Family

ID=54554196

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140061843A KR20150134718A (ko) 2014-05-22 2014-05-22 압축 방식을 이용한 데이터 소스 관리 장치 및 방법

Country Status (2)

Country Link
KR (1) KR20150134718A (ko)
WO (1) WO2015178554A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114553975B (zh) * 2020-11-18 2024-03-15 北京广利核系统工程有限公司 基于udp网络的数据通信方法、装置和计算机设备
CN113568917B (zh) * 2021-08-13 2023-07-28 网易(杭州)网络有限公司 数据排名方法及装置、电子设备、存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5450562A (en) * 1992-10-19 1995-09-12 Hewlett-Packard Company Cache-based data compression/decompression
JP2001125820A (ja) * 1999-10-26 2001-05-11 Nec Eng Ltd Webブラウザのキャッシュデータ管理装置
KR101189766B1 (ko) * 2008-12-22 2012-10-10 한국전자통신연구원 데이터 서버로 분산 수집된 접근 횟수 기반의 핫 데이터 관리 방법
US8161211B2 (en) * 2009-02-25 2012-04-17 Hitachi, Ltd. Storage system and data processing method for the same
KR101956031B1 (ko) * 2012-10-15 2019-03-11 삼성전자 주식회사 데이터 압축 장치 및 방법, 데이터 압축 장치를 포함하는 메모리 시스템

Also Published As

Publication number Publication date
WO2015178554A1 (ko) 2015-11-26

Similar Documents

Publication Publication Date Title
US9710517B2 (en) Data record compression with progressive and/or selective decomposition
US8892586B2 (en) Accelerated query operators for high-speed, in-memory online analytical processing queries and operations
US10726016B2 (en) In-memory column-level multi-versioned global dictionary for in-memory databases
US10756759B2 (en) Column domain dictionary compression
US9298775B2 (en) Changing the compression level of query plans
US9760593B2 (en) Data dictionary with a reduced need for rebuilding
US9740734B2 (en) Group-by processing for data containing singleton groups
US10977251B1 (en) Join index bitmap for non-equality query conditions
JP5926321B2 (ja) 大容量データを処理するための、sqlパーシングによる2レベルクエリー及び結果キャッシングを用いたオンライン分析プロセッシング方法
US20190377711A1 (en) Reducing database fragmentation
EP3859550A1 (en) Similarity matching
CN115935090B (zh) 一种基于时间分片的数据查询方法及系统
US9646053B2 (en) OLTP compression of wide tables
CN115168319A (zh) 一种数据库系统、数据处理方法及电子设备
EP3514695B1 (en) Integrated database table access
US8200673B2 (en) System and method for on-demand indexing
KR20150134718A (ko) 압축 방식을 이용한 데이터 소스 관리 장치 및 방법
US10769214B2 (en) Encoding and decoding files for a document store
US20130173564A1 (en) System and method for data compression using multiple encoding tables
US20190057120A1 (en) Efficient Key Data Store Entry Traversal and Result Generation
KR101542299B1 (ko) 하둡 기반의 질의 처리 방법 및 장치
US11971856B2 (en) Efficient database query evaluation
US20240168929A1 (en) Optimizing storage of data in row-oriented data storages
WO2016051492A1 (ja) データベース管理システム、データベース管理方法及び記憶媒体
JP2010079627A (ja) データベースに対する問合せを処理する装置、処理方法、プログラムおよび記録媒体

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination