KR101646954B1 - 데이터베이스 장치, 데이터베이스 장치에서 수행되는 데이터베이스 관리 방법 및 이를 저장하는 기록매체 - Google Patents

데이터베이스 장치, 데이터베이스 장치에서 수행되는 데이터베이스 관리 방법 및 이를 저장하는 기록매체 Download PDF

Info

Publication number
KR101646954B1
KR101646954B1 KR1020140138823A KR20140138823A KR101646954B1 KR 101646954 B1 KR101646954 B1 KR 101646954B1 KR 1020140138823 A KR1020140138823 A KR 1020140138823A KR 20140138823 A KR20140138823 A KR 20140138823A KR 101646954 B1 KR101646954 B1 KR 101646954B1
Authority
KR
South Korea
Prior art keywords
cache
database
unit
query
query result
Prior art date
Application number
KR1020140138823A
Other languages
English (en)
Other versions
KR20160036447A (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 주식회사 엘지씨엔에스
Publication of KR20160036447A publication Critical patent/KR20160036447A/ko
Application granted granted Critical
Publication of KR101646954B1 publication Critical patent/KR101646954B1/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/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application

Landscapes

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

Abstract

데이터베이스 장치는 데이터 성격을 기초로 분류된 제1 데이터 집합 및 제2 데이터 집합을 저장하는 데이터베이스부, 상기 제1 데이터 집합과 연관되고 제1 캐시 아키텍처를 가지는 제1 캐시부 및 상기 제2 데이터 집합과 연관되고 제2 캐시 아키텍처를 가지는 제2 캐시부를 포함한다.

Description

데이터베이스 장치, 데이터베이스 장치에서 수행되는 데이터베이스 관리 방법 및 이를 저장하는 기록매체{DATABASE APPARATUS, DATABASE MANAGEMENT METHOF PERFORMING IN DATABASE APPARATUS AND STORAGE MEDIA STORING THE SAME}
본 발명은 데이터베이스 장치 기술에 관한 것으로, 보다 구체적으로, 데이터를 데이터의 성격을 기초로 분류하여 서로 상이한 아키텍처를 가지는 캐시에 저장하는 데이터베이스 장치, 데이터베이스 장치에서 수행되는 데이터베이스 관리 방법 및 이를 저장하는 기록매체에 관한 것이다.
일반적으로, 캐싱 서비스는 검색 작업이 복잡한 데이터를 임시로 저장하여 네트워크 응용 서버에서 데이터베이스의 호출 없이 데이터를 전송하는 서비스이다. 캐싱 서비스는 임시 저장된 데이터를 전송하므로 데이터베이스의 부하를 감소시키고 응답 시간을 단축 시킬 수 있다.
한국등록특허 제10-0496159호는 유용성 기반의 질의 결과 캐쉬 관리 방법에 관한 것으로, 질의 결과들을 효과적으로 캐쉬에 저장 및 관리하기 위하여 최근에 실행된 질의들에 대한 질의 결과들의 유용성을 계산하고 그 유용성을 기준으로 질의 결과들을 저장, 삭제 및 교체함으로써 질의 처리 성능을 향상시킨다.
한국공개특허 제10-2004-0085057호는 데이터베이스 결과 및 파생된 개체를 캐싱 및 무효화하기 위한 시스템 및 방법에 관한 것으로, 데이터베이스 질의로부터 생성된 미가공 데이터, 개체 및 질의 가능한 데이터 세트 등과 같은 결과를 저장하고 저장된 결과의 일치성에 영향을 미치는 데이터베이스 변화가 발생하거나 만료 기간이 경과한 경우에는 저장된 결과를 무효화 시킴으로써 불일치하는 저장된 데이터를 사용하는 것을 완화시킨다.
한국등록특허 제10-0496159호 한국공개특허 제10-2004-0085057호
본 발명의 일 실시예는 데이터를 성격을 기초로 분류하여 저장하는 것을 통하여 읽기 및 쓰기의 부하가 발생하는 것을 방지할 수 있는 데이터베이스 장치를 제공하고자 한다.
본 발명의 일 실시예는 데이터 성격을 기초로 데이터를 분류하여 데이터 성격에 적합한 아키텍처를 가지는 캐시에 저장할 수 있는 데이터베이스 장치를 제공하고자 한다.
본 발명의 일 실시예는 데이터의 크기 및 데이터에 대한 트랜잭션을 기초로 데이터 성격을 분류할 수 있는 데이터베이스 장치를 제공하고자 한다.
본 발명의 일 실시예는 질의에 대한 버전을 관리하여 캐시에 저장되어 있는 질의 결과의 버전과 현재 버전을 매칭시켜 질의 결과를 동기화시킬 수 있는 데이터베이스 장치를 제공하고자 한다.
실시예들 중에서, 데이터베이스 장치는 데이터 특성을 기초로 분류될 수 있는 제1 데이터 집합 및 제2 데이터 집합을 저장하는 데이터베이스부, 상기 제1 데이터 집합과 연관되고 제1 캐시 아키텍처를 가지는 제1 캐시부 및 상기 제2 데이터 집합과 연관되고 제2 캐시 아키텍처를 가지는 제2 캐시부를 포함한다.
일 실시예에서, 상기 제1 데이터 집합의 평균 데이터 사이즈는 상기 제2 데이터 집합의 평균 데이터 사이즈보다 같거나 작고, 상기 제1 데이터 집합의 평균 트랜잭션 빈도수는 제2 데이터 집합의 평균 트랜잭션 빈도수보다 같거나 작을 수 있다.
일 실시예에서, 사용자로부터 수신된 데이터베이스 쿼리를 분석하여 상기 분석된 데이터베이스 쿼리를 상기 데이터베이스부, 상기 제1 캐시부 또는 상기 제2 캐시부에 송신하는 제어부를 더 포함할 수 있다.
일 실시예에서, 상기 제어부는 상기 데이터베이스 쿼리의 쿼리 조건절을 분석하여 해당 테이블이 제1 데이터 집합과 연관되면 상기 분석된 데이터베이스 쿼리를 제1 캐시부에 송신할 수 있다.
일 실시예에서, 상기 제1 캐시부는 상기 송신된 데이터베이스 쿼리를 해석하여 캐시 매핑 테이블을 검색하고, 상기 해석된 데이터베이스 쿼리가 상기 캐시 매핑 테이블에서 검색되면 상기 송신된 데이터베이스 쿼리에 대한 쿼리 결과의 유효성을 체크할 수 있다.
일 실시예에서, 상기 데이터베이스 쿼리의 쿼리 식별자와 쿼리 조건절을 기초로 제1 캐시 키를 생성하여 상기 캐시 매핑 테이블로부터 생성된 제1 캐시 키를 검색할 수 있다.
일 실시예에서, 상기 제1 캐시부는 상기 해석된 데이터베이스 쿼리가 상기 캐시 매핑 테이블에서 검색되면 상기 쿼리 결과의 버전을 체크하여 상기 체크된 버전이 가장 최근의 버전에 해당하면 상기 쿼리 결과를 제공할 수 있다.
일 실시예에서, 상기 제1 캐시부는 상기 해석된 데이터베이스 쿼리가 상기 캐시 매핑 테이블에서 검색되면 상기 쿼리 결과의 버전을 체크하여 상기 체크된 버전이 가장 최근의 버전에 해당하지 않으면 상기 수신된 데이터베이스 쿼리를 통하여 상기 데이터베이스부로부터 제2 쿼리 결과를 가져올 수 있다.
일 실시예에서, 상기 제1 캐시부는 상기 생성된 캐시 키와 상기 제2 쿼리 결과를 기초로 상기 캐시 매핑 테이블을 갱신할 수 있다.
일 실시예에서, 상기 제1 캐시부는 상기 해석된 데이터베이스 쿼리가 상기 캐시 매핑 테이블에서 검색되지 않으면 상기 데이터베이스부를 통하여 상기 해석된 데이터베이스 쿼리에 대한 제3 쿼리 결과를 입력할 수 있다.
일 실시예에서, 상기 제1캐시부는 상기 제3 쿼리 결과를 제공하거나 또는 상기 제3 쿼리 결과를 기초로 상기 캐시 매핑 테이블을 갱신할 수 있다.
일 실시예에서, 상기 제어부는 상기 데이터베이스 쿼리의 쿼리 조건절을 분석하여 해당 테이블이 제2 데이터 집합과 연관되면 상기 분석된 데이터베이스 쿼리를 제2 캐시부에 송신할 수 있다.
일 실시예에서, 상기 제2 캐시부는 마스터 캐시부(410) 및 복수의 슬래이브 캐시부들(420)을 포함하고, 상기 복수의 슬래이브 캐시부들(420)는 상기 마스터 캐시부(410)의 적어도 일부를 복제하여 생성되고 상기 마스터 캐시부(410)와 동기화될 수 있다.
일 실시예에서, 상기 제2 캐시부는 상기 분석된 데이터 베이스 쿼리를 상기 복수의 슬래이브 캐시부들(420) 중에서 상기 분석된 쿼리 조건절과 연관된 슬래이브 캐시부에 송신할 수 있다.
일 실시예에서, 상기 제2 캐시부는 상기 슬래이브 캐시부에 송신된 데이터베이스 쿼리를 해석하여 상기 데이터베이스 쿼리에 해당하는 제2 캐시 키 결정하고 상기 제2 캐시 키와 연관된 쿼리 결과의 유효성을 체크할 수 있다.
일 실시예에서, 상기 제2 캐시부는 상기 제2 캐시 키와 연관된 밸류(value) 중에서 상기 쿼리 결과의 버전을 체크하여 상기 체크된 버전이 가장 최근의 버전에 해당하면 상기 쿼리 결과를 제공할 수 있다.
일 실시예에서, 상기 제2 캐시부는 상기 제2 캐시 키와 연관된 밸류(value) 중에서 상기 쿼리 결과의 버전을 체크하여 상기 체크된 버전이 가장 최근의 버전에 해당하지 않으면 상기 수신된 데이터베이스 쿼리를 통하여 상기 데이터베이스부로부터 제2 쿼리 결과를 상기 마스터 캐시부(410)로 가져올 수 있다.
일 실시예에서, 상기 마스터 캐시부(410)는 상기 제2 쿼리 결과를 제2 캐시 키와 연관된 밸류로 저장하고 상기 슬레이브 캐시부는 상기 마스터 캐시부(410)와 동기화할 수 있다.
일 실시예에서, 상기 제2 캐시부는 상기 제2 캐시 키와 연관된 밸류(value)가 검색되지 않으면 상기 데이터베이스부를 통하여 상기 해석된 데이터베이스 쿼리에 대한 제3 쿼리 결과를 상기 마스터 캐시부(410)로 입력 받을 수 있다.
일 실시예에서, 상기 제2 캐시부는 상기 제3 쿼리 결과를 제공하거나 또는 상기 마스터 캐시부(410)에 상기 제3 쿼리 결과를 상기 제2 캐시 키와 연관된 밸류로 저장할 수 있다.
일 실시예에서, 상기 제어부는 상기 데이터베이스 쿼리의 쿼리 조건절을 분석하여 해당 테이블이 상기 데이터베이스부와 연관되면 상기 분석된 데이터베이스 쿼리를 상기 데이터베이스부에 송신할 수 있다.
일 실시예에서, 상기 데이터베이스부는 상기 송신된 데이터베이스 쿼리를 해석하여 상기 데이터베이스부에 데이터를 입력, 갱신 및 삭제 중 적어도 하나를 수행할 수 있다.
실시예들 중에서, 데이터 관리 방법은 데이터베이스 장치에서 수행된다. 상기 데이터 관리 방법은 (a) 사용자로부터 데이터베이스 쿼리를 수신하는 단계, (b) 상기 데이터베이스 쿼리를 분석하는 단계 및 (c) 상기 분석된 데이터베이스 쿼리를 기초로 데이터베이스부, 제1 캐시부 또는 제2 캐시부로부터 쿼리 결과를 제공하는 단계를 포함한다.
일 실시예에서, 상기 (c) 단계는 상기 분석된 데이터베이스 쿼리가 상기 제1 캐시부 또는 상기 제2 캐시부와 연관된 경우에는 상기 쿼리 결과의 버전을 체크하는 단계를 포함할 수 있다.
일 실시예에서, 상기 (c) 단계는 상기 분석된 데이터베이스 쿼리가 상기 제1 캐시부 또는 상기 제2 캐시부와 연관되고 상기 제1 캐시부 또는 상기 제2 캐시부에 상기 쿼리 결과가 존재하지 않는 경우에는 상기 데이터베이스부로부터 해당 쿼리 결과를 가져오거나 또는 상기 데이터베이스부에 해당 쿼리 결과를 입력하는 단계를 포함할 수 있다.
실시예들 중에서, 데이터베이스 장치에서 수행되는 데이터 관리 방법에 관한 컴퓨터 프로그램을 기록한 기록매체는 사용자로부터 데이터베이스 쿼리를 수신하는 기능, 상기 데이터베이스 쿼리를 분석하는 기능 및 상기 분석된 데이터베이스 쿼리를 기초로 데이터베이스부, 제1 캐시부 또는 제2 캐시부로부터 쿼리 결과를 제공하는 기능을 포함하는 데이터 관리 방법에 관한 컴퓨터 프로그램을 기록한다.
본 발명의 일 실시예에 따른 데이터베이스 장치는 데이터를 성격을 기초로 분류하여 저장하는 것을 통하여 읽기 및 쓰기의 부하가 발생하는 것을 방지할 수 있다.
본 발명의 일 실시예에 따른 데이터베이스 장치는 데이터 성격을 기초로 데이터를 분류하여 데이터 성격에 적합한 아키텍처를 가지는 캐시에 저장할 수 있다.
본 발명의 일 실시예에 따른 데이터베이스 장치는 데이터의 크기 및 데이터에 대한 트랜잭션을 기초로 데이터 성격을 분류할 수 있다.
본 발명의 일 실시예에 따른 데이터베이스 장치는 질의에 대한 버전을 관리하여 캐시에 저장되어 있는 질의 결과의 버전과 현재 버전을 매칭시켜 질의 결과를 동기화시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 데이터베이스 장치를 나타내는 블록도이다.
도 2는 제1 캐시 아키텍처를 가지는 제1 캐시부에 저장되는 제1 데이터 집합의 예시이다.
도 3은 제2 캐시 아키텍처를 가지는 제2 캐시부에 저장되는 제2 데이터 집합의 예시이다.
도 4는 제2 캐시부의 제2 캐시 아키텍처의 예시이다.
도 5는 도 1의 데이터베이스 장치에서 수행되는 데이터베이스 관리 방법을 나타내는 흐름도이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한, 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명의 일 실시예에 따른 데이터베이스 장치를 나타내는 블록도이다.
도 1을 참조하면 데이터베이스 장치(100)는 데이터베이스부(110), 제1 캐시부(120), 제2 캐시부(130) 및 제어부(140)를 포함한다. 여기에서, 데이터베이스부(110)는 제어부(110)와 연결되어 있고 제1 캐시부(120) 및 제2 캐시부(130)는 제어부(140)를 통하여 데이터베이스부(110)와 연결되어 있다.
데이터베이스부(110)는 데이터의 특성을 기초로 분류될 수 있는 제1 데이터 집합 및 제2 데이터 집합을 저장한다. 여기에서, 제1 데이터 집합은 제2 데이터 집합보다 평균 데이터 사이즈가 같거나 작고, 제1 데이터 집합의 평균 트랜잭션 빈도수는 제2 데이터 집합의 평균 트랜잭션 빈도수 보다 같거나 크다. 예를 들어, TV를 통하여 사용자에게 컨텐츠를 제공하는 서비스의 경우에 제1 데이터 집합은 공통 정보로서 콘텐츠 리스트, 방송 편성표 또는 상품에 해당할 수 있고, 제2 데이터 집합은 개인화 정보로서 즐겨 찾기 또는 customer offer에 해당할 수 있다. 이하, 본 발명의 설명을 돕기 위한 예시는 TV를 통하여 사용자에게 컨텐츠를 제공하는 서비스의 경우를 예로 들어 설명하겠다. 다만, 본 발명이 이에 한정 되는 것은 아니다.
일 실시예에서, 데이터베이스부(110)는 제1 데이터 집합 및 제2 데이터 집합뿐만 아니라 그 이외의 정보를 포함할 수 있다. 예를 들어, 고객정보, 공통 정보 또는 개인화 정보를 포함할 수 있고, 고객정보는 가입자, device, 가입 상품에 해당할 수 있고, 공통 정보는 content list, category, album, title, poster에 해당할 수 있으며, 개인화 정보는 favorite, NSC Product, Custom offer, buy에 해당할 수 있다. 또한, 고객정보, 공통정보 또는 개인화 정보는 각각의 데이터 특성에 따라 제1 데이터 또는 제2 데이터에 해당할 수 있다.
제1 캐시부(120)는 제1 데이터 집합과 연관되고 제1 캐시 아키텍처를 가진다.
제1 캐시 아키텍처는 예를 들어, 도 2를 참조하면 제1 캐시 아키텍처를 가지는 제1 캐시부에 저장되는 제1 데이터 집합에 해당한다. 제1 캐시 아키텍처는 테이블 형태로 저장되고 테이블에서 key는 특정 테이블에 접근하기 위한 제1 캐시 키에 해당하고 cv는 해쉬 맵(hash map)으로서 캐시 버전에 해당하고 ci는 캐시 정보에 해당하고 uc는 재사용 횟수에 해당하고 av는 캐시 가용 여부에 해당한다.
예를 들어, 도 2의 쿼리 결과를 얻기 위한 데이터베이스 쿼리는 아래의 [질의 문1]에 해당할 수 있고, 쿼리 결과는 아래의 [표1]에 해당할 수 있다.
SELECT C.NAME, C.AGE, F.FAVORITE_CH
FROM TB_CUSTOMER C, TB_FAVORITE F, TB_CHANEL G
WHERE C.SA_ID = F.SA_ID
AND F.CHANEL_ID = G.,CHANEL_ID
AND G.GUBUN = V_GUBUN - '영화'
AND C.MAC_ADDR = V_MAC_ADDR - 'MACADDR0001'
AND C.SA_ID = V_SA_ID - 'SAID0001'
[질의 문1]
NAME AGE FAVORITE_CH
김경철 24 영화가좋다
김순이 34 영화기행
위의 쿼리 결과를 제1 캐시 아키텍처로 저장하는 경우에는 도 2와 같이 해당 쿼리 결과를 나타낼 수 있는 식별자 역할을 하는 제1 캐시 키인 '01^SQLID0001^SAID0001^MACADDR0001^영화'가 key에 저장되고 해당 키에 대한 cv, ci, v, uc 및 av 값이 테이블에 저장된다. cv값은 식별키와 버전이 한 쌍으로 저장되며, 예를 들어, {C0001,1}은 C0001의 버전이 1에 해당한다는 것이고, {01^SAID0001^P0001,2}는 01^SAID0001^P0001의 버전이 2에 해당한다는 것이다. ci값은 object[] 형태로 저장되며 예를 들어, {“김경철”, 24, “영화가 좋다”}는 이름은 “김경철”, 나이는 24, 좋아하는 채널은 “영화가 좋다”에 해당한다. av는 캐시 가용 여부를 나타내는 것으로 예를 들어, 0은 가용불가이고 1은 가용가능에 해당할 수 있다.
제2 캐시부(130)는 제2 데이터 집합과 연관되고 제2 캐시 아키텍처를 가진다.
제2 캐시 아키텍처는 예를 들어, 도 3를 참조하면 제2 캐시 아키텍처를 가지는 제2 캐시부에 저장되는 제2 데이터 집합에 해당한다. 제2 캐시 아키텍처는 key-value 형태로 저장된다. 다만, 이하에서는 제2 캐시 아키텍처에 대한 이해의 편의상 테이블 형태로 나타낸다. 즉, 도 3의 C0001, ci, uc, av, om, omd는 실제적으로 키에 해당하거나 밸류에 해당하는 것이 아니라, 제1 캐시 아키텍처의 테이블에서의 각각의 요소와 대응되는 것으로서, 의미적으로만 존재하는 것이다. 따라서, 제2 아키텍처는 C0001, ci, uc, av, om, omd 자체를 해당 밸류 값에 접근하기 위한 키로 사용되는 것이 아니다. 다시 말하면, 키값인 D^SQLID0001^영화^1034에 대하여 밸류로서 “4”, “{“영화가 좋다”, “TVN”}, {“영화기행”,”SBS”}”, “10021”, “1”, “1” 및 “2014/06/01 12:23:45.0001212”가 저장된다. C0001은 캐시버전에 해당하는 것으로서, 예를 들어, 제2 캐시부의 일련번호에 해당할 수 있다. om은 캐시가 생성 중인지 여부를 나타내는 것으로 0은 생성 완료, 1은 생성 중 및 2는 더미(dummy)에 해당하고 omd는 쓰레드(Thread) 수행이 실패할 경우를 대비하여 다음 작업이 일정시간이 지나도 안 바뀔 사실을 확인하는 경우에는 캐시를 재생성한다는 것에 해당한다. 나머지는 제1 캐시 아키텍쳐의 각각의 구성의 의미와 동일하다.
예를 들어, 도 3의 쿼리 결과를 얻기 위한 데이터베이스 쿼리는 아래의 [질의 문2]에 해당할 수 있고, 쿼리 결과는 아래의 [표2]에 해당할 수 있다.
SELECT G.CH_NAME, G.CH_COMPANY
FROM TB_CHANEL G
WHERE 1 = 1
AND G.GUBU = V_GUBUN -- '영화'
AND G.CH_ID = V_CH_ID - '1034'
[질의 문 2]
CH_NAME CH_COMPANY
영화가좋다 TVN
영화기행 SBS
위의 쿼리 결과를 제2 캐시 아키텍처로 저장하는 경우에는 도 3과 같이 해당 쿼리 결과를 나타낼 수 있는 식별자 역할을 하는 제2 캐시 키가 'D^SQLID0001^영화^1034'RK 되고 해당 키에 연관되어 저장되는 밸류는 '4', '{"영화가 좋다”, “TVN”}, {“영화기행”, “SBS”}', '100021', '1', '1', ALC '2014/06/01 012:23:45.0001212'가 될 수 있다.
제1 캐시부(120) 및 제2 캐시부(130)는 데이터베이스의 일부 데이터를 복사하여 임시로 저장해놓으며, 제1 캐시부(120)는 제1 데이터 집합을 임시 저장하고 제2 캐시부(130)는 제2 데이터 집합을 임시 저장한다.
제어부(140)는 사용자로부터 데이터베이스 쿼리를 수신하고 분석하여 해당 데이터베이스 쿼리를 데이터베이스부(110), 제1 캐시부(120) 또는 제2 캐시부(130)에 송신한다.
일 실시예에서, 제어부(140)는 사용자로부터 수신한 데이터베이스 쿼리의 쿼리 조건절을 분석하여 해당 테이블이 제1 데이터 집합과 연관되면 분석된 데이터베이스 쿼리를 제1 캐시부(120)에 송신한다.
이하, 제어부(140)로부터 데이터베이스 쿼리를 수신한 제1 캐시부(120)에서 수행되는 데이터베이스 관리 방법을 설명한다.
일 실시예에서, 제1 캐시부(120)는 송신된 데이터베이스 쿼리를 해석하여 캐시 매핑 테이블을 검색하고, 해석된 데이터베이스 쿼리가 캐시 매핑 테이블에서 검색되면 송신된 데이터베이스 쿼리에 대한 쿼리 결과의 유효성을 체크한다. 여기에서, 캐시 매핑 테이블은 데이터베이스 쿼리를 기초로 해당 데이터베이스 쿼리의 쿼리 결과와 연관될 수 있는 테이블로서 캐시 매핑 테이블은 적어도 하나일 수 있으며, 쿼리 결과의 유효성은 해당 쿼리 결과가 사용자가 의도하는 쿼리 결과에 해당하는지, 즉, 유효한 쿼리 결과에 해당하는지를 체크하는 것이고 쿼리 결과의 버전의 비교를 통하여 유효성이 체크될 수 있다.
일 실시예에서, 제1 캐시부(120)는 데이터베이스 쿼리의 쿼리 식별자와 쿼리 조건절을 기초로 제1 캐시 키를 생성하여 상기 캐시 매핑 테이블로부터 생성된 제1 캐시 키를 검색할 수 있다. 예를 들어, [질의 문 1]을 참조하면, 각 쿼리마다 별도로 부여된 쿼리 식별자와 [질의 문 1]의 WHERE절의 쿼리 조건절을 기초로 [도 2]의 key에 해당하는 '01^SQLID0001^SAID0001^MACADDR0001^영화'가 제1 캐시 키로 생성될 수 있다. 제1 캐시 키를 생성한 다음에 제1 캐시부(120)는 캐시 매핑 테이블로부터 제1 캐시키를 검색할 수 있다.
일 실시예에서, 제1 캐시부(120)는 해석된 데이터베이스 쿼리가 캐시 매핑 테이블에서 검색되면, 즉, 제1 캐시 키가 캐시 매핑 테이블에서 검색되면 쿼리 결과의 버전을 체크할 수 있다. 여기에서, 쿼리 결과의 버전은 데이터베이스부(110)로부터 해당 쿼리 결과를 제1 캐시부(120)로 가져올 때 데이터베이스 쿼리에 부여한 특정 식별자에 해당할 수 있다. 예를 들어, 데이터베이스 쿼리가 {'이름', '나이'}를 검색하는 쿼리이면 해당 쿼리에 '버전1'을 부여할 수 있고, 데이터베이스 쿼리가 {'이름', '성별'}을 검색하는 쿼리이면 해당 쿼리에 '버전2'를 부여할 수 있다. 일 실시예에서, 쿼리 결과의 버전은 데이터베이스부(110)를 통하여만 관리되고, 제1 캐시부(120) 또는 제2 캐시부(130)를 통하여 수정되거나 변경될 수 없으며, 쿼리 결과의 버전의 비교를 통하여 제1 캐시부(120) 또는 제2 캐시부(130)에서 관리되고 있는 쿼리 결과가 데이터베이스부(110)에서 관리되고 있는 현재의 쿼리 결과와 일치하는지 여부를 확인할 수 있다.
예를 들어, 도 2를 참조하면, cv 의 해쉬 맵으로 저장되어 있는 버전과 v에 저장되어 있는 현재 버전을 비교하여 쿼리 결과의 버전을 비교할 수 있고, 도 2 에서는 01^SAID0001^P0002의 버전이 다르다는 것을 볼 수 있다.
일 실시예에서, 제1 캐시부(120)는 쿼리 결과의 버전이 가장 최근의 버전에 해당하는 경우에는 해당 쿼리 결과를 제공할 수 있다. 여기에서, 가장 최근의 버전에 해당한다는 의미는 현재 버전과 제1 캐시부(120)에 저장되어 있는 쿼리 결과의 버전이 일치하는 것에 해당할 수 있다. 예를 들어, 도 2를 참조하면, 01^SAID0001^P0001은 현재 버전 및 제1 캐시부(120)에 저장되어 있는 쿼리 결과의 버전이 2로 동일하므로 가장 최근의 버전에 해당할 수 있다.
다른 일 실시예에서, 제1 캐시부(120)는 쿼리 결과의 버전이 가장 최근의 버전에 해당하지 않으면 수신된 데이터베이스 쿼리를 통하여 데이터베이스부(110)로부터 쿼리 결과를 가져올 수 있다. 여기에서, 쿼리 결과의 버전이 가장 최근의 버전에 해당하지 않는다는 것은 데이터베이스 쿼리에 해당하는 쿼리 결과의 버전과 제1 캐시부(120)에 저장되어 있는 쿼리 결과의 버전이 서로 다르다는 것으로서, 사용자가 의도하는 쿼리 결과와 제1 캐시부(120)에 저장되어 있는 쿼리 결과가 일치하지 않음을 의미한다. 제1 캐시부(120)는 데이터베이스부(110)로부터 데이터베이스 쿼리에 해당하는 쿼리 결과를 가져올 수 있고 제1 캐시부(120)는 생성된 제1 캐시 키와 데이터베이스부(110)로부터 가져온 쿼리 결과를 기초로 캐시 매핑 테이블을 갱신할 수 있다.
일 실시예에서, 제1 캐시부(120)는 해석된 데이터베이스 쿼리가 캐시 매핑 테이블에서 검색되지 않으면 데이터베이스부(110)를 통하여 쿼리 결과를 입력받을 수 있다. 데이터베이스 쿼리가 캐시 매핑 테이블에서 검색되지 않는다는 것은 데이터베이스 쿼리에 해당하는 쿼리 결과 자체가 존재하지 않는다는 것에 해당하므로 데이터베이스부(110)를 통하여 사용자가 쿼리 결과를 입력할 수 있다. 예를 들어, 사용자가 {'이름', '나이'}에 해당하는 쿼리 결과를 얻기 위하여 데이터베이스 쿼리를 입력하였지만 해당 쿼리 결과가 존재하지 않는 경우에는 사용자가 직접 데이터베이스부(110)를 통하여 {'홍길동', '30'}에 해당하는 쿼리 결과를 입력할 수 있다.
일 실시예에서, 제어부(140)는 데이터베이스부(110)를 통하여 입력된 쿼리 결과를 데이터베이스부(110)에서 사용자에게 바로 제공하거나 또는 데이터베이스부(110)를 통하여 입력된 쿼리 결과를 기초로 제1 캐시부(120)의 캐시 매핑 테이블을 갱신할 수 있다. 즉, 데이터베이스부(110)를 통하여 입력된 쿼리 결과는 사용자에게 바로 제공되거나 또는 제1 캐시부(120)에서 갱신된 다음에 제1 캐시부(120)를 통하여 사용자에게 제공될 수 있다.
일 실시예에서, 제어부(140)는 데이터베이스 쿼리의 쿼리 조건절을 분석하여 해당 테이블이 제2 데이터 집합과 연관되면 분석된 데이터베이스 쿼리를 제2 캐시부(130)에 송신할 수 있다.
이하, 제어부(140)로부터 데이터베이스 쿼리를 수신한 제2 캐시부(120)에서 수행되는 데이터베이스 관리 방법을 설명한다. 우선, 도 4를 참조하여, 제2 캐시부(130)의 제2 캐시 아키텍처에 대한 특징으로 설명한다.
도 4를 참조하면, 제2 캐시부(130)는 마스터 캐시부(410) 및 복수의 슬래이브 캐시부들(420)을 포함하고, 복수의 슬래이브 캐시부들(420)은 상기 마스터 캐시부(410)의 적어도 일부 또는 전체를 복제하여 생성되고 마스터 캐시부(410)와 동기화될 수 있다. 보다 구체적으로, 제2 캐시부(130)는 데이터베이스부(110)를 통하여 제2 데이터 집합을 제2 캐시부(130)의 마스터 캐시부(410)에 비동기 식으로 제공하고, 마스터 캐시부(410)는 마스터 캐시부(410)에 있는 제2 데이터 집합의 일부 또는 전체를 복제하여 복수의 슬래이브 캐시부(420)에 동기식으로 제공한다. 즉, 복수의 슬래이브 캐시부(420)는 마스터 캐시부(410)와 동기화된다.
일 실시예에서, 제2 캐시부(130)는 분석된 데이터 베이스 쿼리를 복수의 슬래이브 캐시부들(420) 중에서 분석된 쿼리 조건절과 연관된 슬래이브 캐시부에 송신할 수 있다. 예를 들어, 슬래이브 캐시부가 마스터 캐시부(410)로부터 서울 지역에 해당하는 일부의 제2 데이터 집합을 복제하여 생성된 경우에는, 제2 캐시부(130)는 분석된 쿼리 조건절이 서울 지역과 연관된 경우에만 해당 슬래이브 캐시부에 데이터베이스 쿼리를 송신할 수 있다. 다른 일 실시예에서, 슬래이브 캐시부가 마스터 캐시부(410)의 모든 제2 데이터 집합을 복제하여 생성된 경우에는, 제2 캐시부(130)는 분석된 데이터베이스 쿼리를 복수의 슬래이브 캐시부들(420) 중에서 랜덤으로 선택된 슬래이브 캐시부에 송신할 수 있다.
일 실시예에서, 제2 캐시부(130)는 슬래이브 캐시부에 송신된 데이터베이스 쿼리를 해석하여 데이터베이스 쿼리에 해당하는 제2 캐시 키를 생성할 수 있다. 예를 들어, [질의 문 2]를 참조하면, 쿼리의 식별자와 [질의 문 2]의 WHERE절의 쿼리 조건절을 기초로 [도 3]의 key에 해당하는 'D^SQLID0001^영화^1034'가 제2 캐시 키로 생성될 수 있다. 일 실시예에서, 제2 캐시부(130)는 제2 데이터 집합으로부터 제2 캐시 키를 검색하여 제2 캐시 키와 연관된 쿼리 결과의 유효성을 체크할 수 있다. 보다 구체적으로, 제2 캐시부(130)는 키-밸류 형태로 저장되어 있는 제2 데이터 집합으로부터 제2 캐시 키를 검색하여 제2 캐시 키가 검색되는 경우에는 검색된 쿼리 결과가 유효한지 여부를 체크할 수 있고, 쿼리 결과의 유효성은 쿼리 결과의 버전의 비교를 통하여 체크될 수 있다.
일 실시예에서, 제2 캐시부(130)는 제2 캐시 키와 연관된 밸류들(values) 중에서 쿼리 결과의 버전을 체크할 수 있다. 여기에서, 쿼리 결과의 버전은 제1 캐시부(120)에서 설명된 것과 동일한 의미에 해당하고, 제2 캐시부(130)는 키-밸류로 데이터가 관리 되므로 밸류들 중에서 쿼리 결과의 버전에 해당하는 값과 현재 버전을 비교하여 쿼리 결과의 버전을 체크할 수 있다.
예를 들어, 도 3을 참조하면, 제2 캐시부(130)에 저장되어 있는 쿼리 결과의 버전은 'C0001'의 값인 '4' 이지만, 현재 쿼리 결과의 버전은 'V^C0001' key에 해당하는 밸류인 '5'에 해당하므로 도 3에서 D^SQLID0001^영화^1034의 버전은 현재 쿼리 버전과 다르다는 것을 볼 수 있다.
일 실시예에서, 제2 캐시부(130)는 쿼리 결과의 버전이 가장 최근의 버전에 해당하는 경우에는 해당 쿼리 결과를 제공할 수 있다. 여기에서, 가장 최근의 버전에 해당한다는 의미는 현재 버전과 제2 캐시부(130)에 저장되어 있는 쿼리 결과의 버전이 일치하는 것에 해당할 수 있다.
다른 일 실시예에서, 제2 캐시부(130)는 쿼리 결과의 버전이 가장 최근의 버전에 해당하지 않으면 수신된 데이터베이스 쿼리를 통하여 데이터베이스부(110)로부터 쿼리 결과를 제2 캐시부(130)의 마스터 캐시부(410)로 가져올 수 있다. 여기에서, 쿼리 결과의 버전이 가장 최근의 버전에 해당하지 않는다는 것은 제1 캐시부(130)에서 설명된 것과 동일한 의미이다. 제2 캐시부(130)의 마스터 캐시부(410)는 데이터베이스부(110)로부터 데이터베이스 쿼리에 해당하는 쿼리 결과를 가져올 수 있고, 마스터 캐시부(410)는 해당 쿼리 결과를 제2 캐시 키의 밸류로 저장할 수 있다. 또한, 슬래이브 캐시부는 마스터 캐시부(410)에서 갱신된 제2 캐시 키와 해당 쿼리 결과를 마스터 캐시부(410)로부터 동기화 할 수 있다.
일 실시예에서, 제2 캐시부(130)는 제2 캐시 키와 연관된 밸류들(values)이 검색되지 않으면 데이터베이스부(110)를 통하여 해석된 데이터베이스 쿼리에 대한 쿼리 결과를 입력할 수 있다. 데이터 베이스 쿼리를 통하여 생성된 제2 캐시 키가 제2 캐시부(130)부에서 검색되지 않는다는 것은 데이터 베이스 쿼리에 해당하는 쿼리 결과 자체가 존재하지 않는다는 것에 해당하므로 데이터베이스부(110)를 통하여 사용자가 쿼리 결과를 입력할 수 있다.
일 실시예에서, 제어부(140)는 데이터베이스부(110)를 통하여 입력된 쿼리 결과를 데이터베이스부(110)에서 사용자에게 바로 제공하거나 또는 데이터베이스부(110)를 통하여 입력된 쿼리 결과를 기초로 제2 캐시부(130)의 마스터 캐시부(410)를 갱신하고 마스터 캐시부(410)의 갱신된 쿼리 결과에 대한 내용을 슬래이브 캐시부(410)에 동기화 할 수 있다. 즉, 데이터베이스부(110)를 통하여 입력된 쿼리 결과는 사용자에게 바로 제공되거나 또는 제2 캐시부(130)의 마스터 캐시부(410) 및 슬래이브 캐시부를 갱신한 다음에 슬래이브 캐시부를 통하여 사용자에게 제공될 수 있다.
일 실시예에서, 제어부(140)는 데이터베이스 쿼리의 쿼리 조건절을 분석하여 해당 테이블이 데이터베이스부(110)와 연관되면 분석된 데이터베이스 쿼리를 데이터베이스부(110)에 송신할 수 있다. 여기에서, 데이터베이스부(110)와 연관된 데이터베이스 쿼리는 데이터 자체의 입력, 갱신 및 삭제에 해당할 수 있다.
일 실시예에서, 데이터베이스부(110)는 송신된 데이터베이스 쿼리를 해석하여 데이터베이스부(110)에 데이터를 입력, 갱신 및 삭제 중 적어도 하나를 수행할 수 있다. 데이터베이스부(110)를 통하여 데이터의 입력, 갱신 및 삭제가 발생된 경우에는 제1 캐시부(110) 및 제2 캐시부(120)에 바로 반영이 되는 것이 아니라, 데이터베이스부(110)를 통하여 입력, 갱신 및 삭제된 데이터와 연관된 데이터베이스 쿼리를 수신하여, 해당 데이터베이스 쿼리가 제1 캐시부(120) 또는 제2 캐시부(130)에 제공되는 경우에만, 데이터베이스부(110)를 통하여 입력, 갱신 및 삭제된 데이터가 제1 캐시부(120) 또는 제2 캐시부(130)에 반영될 수 있다. 예를 들어, 데이터베이스부(110)를 통하여 데이터 A 가 데이터 A`으로 갱신되고 데이터 A는 제1 데이터 집합과 연관된 경우에, 제어부(140)가 사용자로부터 데이터 A`에 대한 데이터베이스 쿼리를 수신하여 해당 데이터베이스 쿼리가 제1 캐시부(120)로 제공되면 제1 캐시부(120)는 데이터베이스부(110)로부터 데이터A에 대하여 갱신된 값인 데이터 A`를 제공받아 데이터A`에 해당하는 내용으로 갱신할 수 있다. 즉, 사용자로부터 데이터 A`에 대한 데이터베이스 쿼리를 수신하지 않은 경우에는 제1 캐시부(120)는 데이터 A`에 대한 내용으로 갱신될 수 없다.
도 5는 도 1의 데이터베이스 장치에서 수행되는 데이터베이스 관리 방법을 나타내는 흐름도이다.
데이터베이스 장치(100)의 제어부(140)는 사용자로부터 데이터베이스 쿼리를 수신하고(단계 S510), 데이터베이스 쿼리를 분석한다(단계 S520). 여기에서, 데이터 베이스 쿼리는 조건절인 WHERE절을 기초로 분석될 수 있다.
제어부(140)는 데이터베이스 쿼리 분석 결과를 기초로 데이터베이스부(110), 제1 캐시부(120) 또는 제2 캐시부(130)로 데이터베이스 쿼리를 송신한다(단계 S530). 보다 구체적으로, 제어부(140)는 데이터베이스 쿼리 분석 결과가 데이터의 입력, 갱신 및 삭제 중 적어도 하나에 해당하는 경우에는 데이터베이스부(110)로 송신하고, 제1 데이터 집합과 연관된 경우에는 제1 캐시부(120)로, 제2 데이터 집합과 연관된 경우에는 제2 캐시부(130)로 송신한다.
제어부(140)는 데이터베이스부(110), 제1 캐시부(120) 또는 제2 캐시부(130)로부터 쿼리 결과를 제공받아 사용자에게 제공한다(단계 S540). 보다 구체적으로, 제어부(140)는 데이터베이스 쿼리의 분석 및 해석을 통하여 생성된 제1 또는 제2 캐시 키를 기초로 제1 캐시부(120) 또는 제2 캐시부(130)에 쿼리 결과가 있는지 및 쿼리 결과의 버전이 현재 버전과 일치하는지를 체크하여 제1 캐시부(120) 또는 제2 캐시부(130)에 있는 쿼리 결과를 제공하거나 또는 데이터베이스부(110)에 있는 쿼리 결과를 제공할 수 있다. 쿼리 결과가 존재하지 않는 경우에는, 제어부(140)는 쿼리 결과를 데이터베이스부(110)를 통하여 사용자로부터 직접 입력받아 해당 쿼리 결과를 제공할 수 있다.
상기에서는 본 출원의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 출원을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 데이터베이스 장치
110: 데이터베이스부
120: 제1 캐시부
130: 제2 캐시부
140: 제어부
410: 마스터 캐시부
420: 복수의 슬래이브 캐시부들

Claims (26)

  1. 데이터 특성을 기초로 데이터 사이즈 및 빈도에 따라 분류될 수 있는 제1 데이터 집합 및 제2 데이터 집합을 저장하는 데이터베이스부;
    상기 제1 데이터 집합과 연관되고 제1 캐시 아키텍처를 가지는 제1 캐시부; 및
    상기 제2 데이터 집합과 연관되고 제2 캐시 아키텍처를 가지는 제2 캐시부를 포함하고,
    상기 제1 캐시 아키텍처와 상기 제2 캐시아키텍처는 서로 상이하게 구성된 데이터베이스 장치.
  2. 제1항에 있어서, 상기 제1 데이터 집합의 평균 데이터 사이즈는 상기 제2 데이터 집합의 평균 데이터 사이즈보다 같거나 작고, 상기 제1 데이터 집합의 평균 트랜잭션 빈도수는 제2 데이터 집합의 평균 트랜잭션 빈도수보다 같거나 큰 것을 특징으로 하는 데이터베이스 장치.
  3. 제1항에 있어서,
    사용자로부터 수신된 데이터베이스 쿼리를 분석하여 상기 분석된 데이터베이스 쿼리를 상기 데이터베이스부, 상기 제1 캐시부 또는 상기 제2 캐시부에 송신하는 제어부를 더 포함하는 것을 특징으로 하는 데이터베이스 장치.
  4. 제3항에 있어서, 상기 제어부는
    상기 데이터베이스 쿼리의 쿼리 조건절을 분석하여 해당 테이블이 제1 데이터 집합과 연관되면 상기 분석된 데이터베이스 쿼리를 제1 캐시부에 송신하는 것을 특징으로 하는 데이터베이스 장치.
  5. 제4항에 있어서, 상기 제1 캐시부는
    상기 송신된 데이터베이스 쿼리를 해석하여 캐시 매핑 테이블을 검색하고, 상기 해석된 데이터베이스 쿼리가 상기 캐시 매핑 테이블에서 검색되면 상기 송신된 데이터베이스 쿼리에 대한 쿼리 결과의 유효성을 체크하는 것을 특징으로 하는 데이터베이스 장치.
  6. 제5항에 있어서,
    상기 데이터베이스 쿼리의 쿼리 식별자와 쿼리 조건절을 기초로 제1 캐시 키를 생성하여 상기 캐시 매핑 테이블로부터 생성된 제1 캐시 키를 검색하는 것을 특징으로 하는 데이터베이스 장치.
  7. 제5항에 있어서, 상기 제1 캐시부는
    상기 해석된 데이터베이스 쿼리가 상기 캐시 매핑 테이블에서 검색되면 상기 쿼리 결과의 버전을 체크하여 상기 체크된 버전이 가장 최근의 버전에 해당하면 상기 쿼리 결과를 제공하는 것을 특징으로 하는 데이터베이스 장치.
  8. 제5항에 있어서, 상기 제1 캐시부는
    상기 해석된 데이터베이스 쿼리가 상기 캐시 매핑 테이블에서 검색되면 상기 쿼리 결과의 버전을 체크하여 상기 체크된 버전이 가장 최근의 버전에 해당하지 않으면 상기 수신된 데이터베이스 쿼리를 통하여 상기 데이터베이스부로부터 쿼리 결과를 가져오는 것을 특징으로 하는 데이터베이스 장치.
  9. 제8항에 있어서, 상기 제1 캐시부는
    생성된 캐시 키와 상기 데이터베이스로부터 가져온 쿼리 결과를 기초로 상기 캐시 매핑 테이블을 갱신하는 것을 특징으로 하는 데이터베이스 장치.
  10. 제5항에 있어서, 상기 제1 캐시부는
    상기 해석된 데이터베이스 쿼리가 상기 캐시 매핑 테이블에서 검색되지 않으면 상기 데이터베이스부를 통하여 상기 해석된 데이터베이스 쿼리에 대한 쿼리 결과를 입력하는 것을 특징으로 하는 데이터베이스 장치.
  11. 제10항에 있어서, 상기 제1캐시부는
    상기 데이터베이스부를 통하여 입력된 쿼리 결과를 제공하거나 또는 상기 데이터베이스부를 통하여 입력된 쿼리 결과를 기초로 상기 캐시 매핑 테이블을 갱신하는 것을 특징으로 하는 데이터베이스 장치.
  12. 제3항에 있어서, 상기 제어부는
    상기 데이터베이스 쿼리의 쿼리 조건절을 분석하여 해당 테이블이 제2 데이터 집합과 연관되면 상기 분석된 데이터베이스 쿼리를 제2 캐시부에 송신하는 것을 특징으로 하는 데이터베이스 장치.
  13. 제12항에 있어서, 상기 제2 캐시부는
    마스터 캐시부 및 복수의 슬래이브 캐시부들을 포함하고, 상기 복수의 슬래이브 캐시부들는 상기 마스터 캐시부의 적어도 일부 또는 전체를 복제하여 생성되고 상기 마스터 캐시부와 동기화되는 것을 특징으로 하는 데이터베이스 장치.
  14. 제13항에 있어서, 상기 제2 캐시부는
    상기 분석된 데이터 베이스 쿼리를 상기 복수의 슬래이브 캐시부들 중에서 상기 분석된 쿼리 조건절과 연관된 슬래이브 캐시부에 송신하는 것을 특징으로 하는 데이터베이스 장치.
  15. 제14항에 있어서, 상기 제2 캐시부는
    상기 슬래이브 캐시부에 송신된 데이터베이스 쿼리를 해석하여 상기 데이터베이스 쿼리에 해당하는 제2 캐시 키 결정하고 상기 제2 캐시 키와 연관된 쿼리 결과의 유효성을 체크하는 것을 특징으로 하는 데이터베이스 장치.
  16. 제15항에 있어서, 상기 제2 캐시부는
    상기 제2 캐시 키와 연관된 밸류(value) 중에서 상기 쿼리 결과의 버전을 체크하여 상기 체크된 버전이 가장 최근의 버전에 해당하면 상기 쿼리 결과를 제공하는 것을 특징으로 하는 데이터베이스 장치.
  17. 제15항에 있어서, 상기 제2 캐시부는
    상기 제2 캐시 키와 연관된 밸류(value) 중에서 상기 쿼리 결과의 버전을 체크하여 상기 체크된 버전이 가장 최근의 버전에 해당하지 않으면 상기 수신된 데이터베이스 쿼리를 통하여 상기 데이터베이스부로부터 쿼리 결과를 상기 마스터 캐시부로 가져오는 것을 특징으로 하는 데이터베이스 장치.
  18. 제17항에 있어서,
    상기 마스터 캐시부는 상기 데이터베이스부로부터 가져온 쿼리 결과를 제2 캐시 키와 연관된 밸류로 저장하고 슬레이브 캐시부는 상기 마스터 캐시부와 동기화 하여 상기 마스터 캐시부에서 갱신된 내용을 저장하는 것을 특징으로 하는 데이터베이스 장치.
  19. 제15항에 있어서, 상기 제2 캐시부는
    상기 제2 캐시 키와 연관된 밸류(value)가 검색되지 않으면 상기 데이터베이스부를 통하여 상기 해석된 데이터베이스 쿼리에 대한 쿼리 결과를 입력 받는 것을 특징으로 하는 데이터베이스 장치.
  20. 제19항에 있어서, 상기 제2 캐시부는
    상기 데이터베이스부를 통하여 입력 받은 쿼리 결과를 제공하거나 또는 상기 마스터 캐시부에 상기 데이터베이스부를 통하여 입력 받은 쿼리 결과를 상기 제2 캐시 키와 연관된 밸류로 저장하는 것을 특징으로 하는 데이터베이스 장치.
  21. 제3항에 있어서, 상기 제어부는
    상기 데이터베이스 쿼리의 쿼리 조건절을 분석하여 해당 테이블이 상기 데이터베이스부와 연관되면 상기 분석된 데이터베이스 쿼리를 상기 데이터베이스부에 송신하는 것을 특징으로 하는 데이터베이스 장치.
  22. 제21항에 있어서, 상기 데이터베이스부는
    상기 송신된 데이터베이스 쿼리를 해석하여 상기 데이터베이스부에 데이터를 입력, 갱신 및 삭제 중 적어도 하나를 수행하는 것을 특징으로 하는 데이터베이스 장치.
  23. 데이터베이스 장치에서 수행되는 데이터 관리 방법에 있어서,
    (a) 사용자로부터 데이터베이스 쿼리를 수신하는 단계;
    (b) 상기 데이터베이스 쿼리를 분석하는 단계 및
    (c) 상기 분석된 데이터베이스 쿼리를 기초로 (i) 데이터 사이즈 및 빈도에 따라 분류될 수 있는 제1 데이터 집합 및 제2 데이터 집합을 저장하는 데이터베이스부, (ii) 상기 제1 데이터 집합과 연관되고 제1 캐시 아키텍처를 가지는 제1 캐시부 또는 (iii) 상기 제2 데이터 집합과 연관되고 상기 제1 캐시 아키텍처와 상이하게 구성된 제2 캐시 아키텍처를 가지는 제2 캐시부로부터 쿼리 결과를 제공하는 단계를 포함하는 데이터 관리 방법.
  24. 제23항에 있어서, 상기 (c) 단계는
    상기 분석된 데이터베이스 쿼리가 상기 제1 캐시부 또는 상기 제2 캐시부와 연관된 경우에는 상기 쿼리 결과의 버전을 체크하는 단계를 포함하는 것을 특징으로 하는 데이터 관리 방법.
  25. 제23항에 있어서, 상기 (c) 단계는
    상기 분석된 데이터베이스 쿼리가 상기 제1 캐시부 또는 상기 제2 캐시부와 연관되고 상기 제1 캐시부 또는 상기 제2 캐시부에 상기 쿼리 결과가 존재하지 않는 경우에는 상기 데이터베이스부로부터 해당 쿼리 결과를 가져오거나 또는 상기 데이터베이스부에 해당 쿼리 결과를 입력하는 단계를 포함하는 것을 특징으로 하는 데이터 관리 방법.
  26. 데이터베이스 장치에서 수행되는 데이터 관리 방법에 관한 컴퓨터 프로그램을 기록한 기록매체에 있어서,
    사용자로부터 데이터베이스 쿼리를 수신하는 기능;
    상기 데이터베이스 쿼리를 분석하는 기능 및
    상기 분석된 데이터베이스 쿼리를 기초로 (i) 데이터 사이즈 및 빈도에 따라 분류될 수 있는 제1 데이터 집합 및 제2 데이터 집합을 저장하는 데이터베이스부, (ii) 상기 제1 데이터 집합과 연관되고 제1 캐시 아키텍처를 가지는 제1 캐시부 또는 (iii) 상기 제2 데이터 집합과 연관되고 상기 제1 캐시 아키텍처와 상이하게 구성된 제2 캐시 아키텍처를 가지는 제2 캐시부로부터 쿼리 결과를 제공하는 기능을 포함하는 데이터 관리 방법에 관한 컴퓨터 프로그램을 기록한 기록매체.
KR1020140138823A 2014-09-25 2014-10-15 데이터베이스 장치, 데이터베이스 장치에서 수행되는 데이터베이스 관리 방법 및 이를 저장하는 기록매체 KR101646954B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/496,814 2014-09-25
US14/496,814 US10242075B2 (en) 2014-09-25 2014-09-25 Database apparatus, database management method performed in database apparatus and storing the same

Publications (2)

Publication Number Publication Date
KR20160036447A KR20160036447A (ko) 2016-04-04
KR101646954B1 true KR101646954B1 (ko) 2016-08-09

Family

ID=55584623

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140138823A KR101646954B1 (ko) 2014-09-25 2014-10-15 데이터베이스 장치, 데이터베이스 장치에서 수행되는 데이터베이스 관리 방법 및 이를 저장하는 기록매체

Country Status (2)

Country Link
US (1) US10242075B2 (ko)
KR (1) KR101646954B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10642821B2 (en) * 2017-03-17 2020-05-05 Apple Inc. Elastic data storage system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003108561A (ja) * 2001-09-28 2003-04-11 Kawasaki Steel Systems R & D Corp データベース検索システム
KR100478586B1 (ko) 2001-12-27 2005-03-28 삼성에스디에스 주식회사 관계형 데이터베이스에서의 데이터 캐싱방법
JP2011253299A (ja) * 2010-06-01 2011-12-15 Nippon Telegr & Teleph Corp <Ntt> 検索装置、検索方法及び検索プログラム
JP2012018607A (ja) 2010-07-09 2012-01-26 Nomura Research Institute Ltd 分散キャッシュシステム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453404B1 (en) * 1999-05-27 2002-09-17 Microsoft Corporation Distributed data cache with memory allocation model
KR100496159B1 (ko) 2002-06-29 2005-06-20 주식회사 케이티 유용성 기반의 질의 결과 캐쉬 관리 방법
US20040193656A1 (en) 2003-03-28 2004-09-30 Pizzo Michael J. Systems and methods for caching and invalidating database results and derived objects
US7840557B1 (en) * 2004-05-12 2010-11-23 Google Inc. Search engine cache control
JP4574230B2 (ja) * 2004-05-27 2010-11-04 株式会社日立製作所 データベース管理方法及びデータベースシステム
US20120054440A1 (en) * 2010-08-31 2012-03-01 Toby Doig Systems and methods for providing a hierarchy of cache layers of different types for intext advertising
US8627448B2 (en) * 2010-11-02 2014-01-07 Jose Renato Santos Selective invalidation of packet filtering results
EP2453368B1 (en) * 2010-11-12 2017-05-31 Accenture Global Services Limited Custom web services data link layer
US9021201B2 (en) * 2012-01-17 2015-04-28 International Business Machines Corporation Demoting partial tracks from a first cache to a second cache

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003108561A (ja) * 2001-09-28 2003-04-11 Kawasaki Steel Systems R & D Corp データベース検索システム
KR100478586B1 (ko) 2001-12-27 2005-03-28 삼성에스디에스 주식회사 관계형 데이터베이스에서의 데이터 캐싱방법
JP2011253299A (ja) * 2010-06-01 2011-12-15 Nippon Telegr & Teleph Corp <Ntt> 検索装置、検索方法及び検索プログラム
JP2012018607A (ja) 2010-07-09 2012-01-26 Nomura Research Institute Ltd 分散キャッシュシステム

Also Published As

Publication number Publication date
US20160092460A1 (en) 2016-03-31
US10242075B2 (en) 2019-03-26
KR20160036447A (ko) 2016-04-04

Similar Documents

Publication Publication Date Title
USRE47546E1 (en) Techniques for replicating changes to access control lists on investigative analysis data
US8185546B2 (en) Enhanced control to users to populate a cache in a database system
US9020916B2 (en) Database server apparatus, method for updating database, and recording medium for database update program
US8732127B1 (en) Method and system for managing versioned structured documents in a database
US20090012932A1 (en) Method and System For Data Storage And Management
KR20170010844A (ko) 원격 데이터베이스에 대한 뮤테이션들의 프로세싱
CN105431844A (zh) 用于搜索系统的第三方搜索应用
US10055475B2 (en) Authentication system, synchronization method, and authentication apparatus
US20140046928A1 (en) Query plans with parameter markers in place of object identifiers
KR20200104789A (ko) 데이터 저장 및 조회 방법, 장치, 기기 및 매체
US20220083618A1 (en) Method And System For Scalable Search Using MicroService And Cloud Based Search With Records Indexes
CN104850565B (zh) 一种基于k-v存储系统的元数据管理方法
EP3804269B1 (en) Detect duplicates with exact and fuzzy matching on encrypted match indexes
JP2011257812A (ja) スキーマ定義生成装置、スキーマ定義生成方法およびスキーマ定義生成プログラム
CN106407376B (zh) 重建索引方法及装置
US20150248447A1 (en) Searching entity-key associations using in-memory objects
JP2020123320A (ja) インデックスを管理するための方法、装置、設備及び記憶媒体
US9047354B2 (en) Statement categorization and normalization
US20110302220A1 (en) Sql processing for data conversion
CN106202440B (zh) 数据处理方法、装置及设备
US20170357697A1 (en) Using adaptors to manage data indexed by dissimilar identifiers
KR101646954B1 (ko) 데이터베이스 장치, 데이터베이스 장치에서 수행되는 데이터베이스 관리 방법 및 이를 저장하는 기록매체
US9781232B2 (en) Server apparatus and information processing apparatus
KR20150123603A (ko) 데이터베이스 관리 방법 및 데이터베이스 관리 시스템
US8498987B1 (en) Snippet search

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: 20190708

Year of fee payment: 4