KR20150046659A - 프리미티브 생성 방법과 그를 이용한 질의처리 방법 - Google Patents

프리미티브 생성 방법과 그를 이용한 질의처리 방법 Download PDF

Info

Publication number
KR20150046659A
KR20150046659A KR20130126152A KR20130126152A KR20150046659A KR 20150046659 A KR20150046659 A KR 20150046659A KR 20130126152 A KR20130126152 A KR 20130126152A KR 20130126152 A KR20130126152 A KR 20130126152A KR 20150046659 A KR20150046659 A KR 20150046659A
Authority
KR
South Korea
Prior art keywords
query
primitive
type
generating
information
Prior art date
Application number
KR20130126152A
Other languages
English (en)
Other versions
KR102100513B1 (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 KR1020130126152A priority Critical patent/KR102100513B1/ko
Publication of KR20150046659A publication Critical patent/KR20150046659A/ko
Application granted granted Critical
Publication of KR102100513B1 publication Critical patent/KR102100513B1/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

Landscapes

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

Abstract

본 발명의 실시예는, 상기 프리미티브 생성 장치의 생성 가능한 질의의 형태를 획득하는 질의형태 획득 과정; 상기 질의의 형태에 따라 상기 질의에 포함되는 하나 이상의 입력변수의 조합에 대응되는 프리미티브 정보를 생성하는 프리미티브 정보 생성 과정; 및 상기 프리미티브 정보에 대한 바이너리 코드를 저장하는 프리미티브 정보 저장 과정을 포함하는 과정을 수행하는 프리미티브 생성 방법 및 이를 이용한 질의처리 방법을 제공한다.

Description

프리미티브 생성 방법과 그를 이용한 질의처리 방법{Method for Generating Primitive and Method for Processing Query Using Same}
본 실시예는 프리미티브 생성 방법과 그를 이용한 질의처리 방법에 관한 것이다.
이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아님을 밝혀둔다.
현재 상용화된 많은 데이터베이스 시스템이 NSM(N-ary Storage Model) 방식의 데이터 저장 구조에 기반하여 Tuple-at-a-time 방식으로 질의(Query)를 처리하고 있다. 이와 같은 방식은 CPU(Central Processing Unit)가 실질적으로 데이터 처리가 아니라 질의 연산 트리를 순회(Traverse)하는데 많은 시간을 소비하게 된다.
데이터베이스 관리 시스템(Database Management System; DBMS)의 질의 처리 엔진은 선언형 언어(Declarative Language)인 SQL(Structured Query Language)과 같은 언어를 이용하여 입력된 질의 구문을 실시간으로 처리하기 위해 해석하고 컴파일하는 인터프리트(Interpret)방식을 사용한다. 인터프리트 방식은 질의 처리를 위한 내부 계산 순서 및 로직을 실행 중에 내부 자료구조(트리 또는 그래프)로 만들어 매 계산 시마다 이 자료구조를 순회하는(Traverse) 방식으로서 오버헤드(Overhead)가 크다는 단점이 있다.
인터프리트 방식에서 사용하는 자료구조와 이를 순회하는 구조는 도 1과 같은 형태로 나타난다. 하나의 튜플을 얻기 위해 연산자(Operator)의 get_next()함수가 호출되기 때문에 CPU(Central Processing Unit)의 명령어 캐쉬(Instruction Cache) 불일치(Miss)가 빈번하게 발생한다. 또한 각 물리적 연산자(Physical Operator)의 상태 값(Value)을 유지해야 하므로 데이터 캐쉬(Data Cache) 불일치도 자주 발생한다.
인터프리트 방식은 질의 구문을 해석해야 하는 오버헤드 외에도 빈번한 분기(branch)의 발생으로 명령어 캐쉬 불일치가 빈번하게 발생하고, 파이프라이닝(Pipelining), SIMD(Single Instruction Multiple Data) 기술을 채택하고 있는 CPU에서 활용하기 어려운 문제 등 해당 CPU에 적합하도록 최적화하지 못하는 문제점이 있다.
위의 문제를 해결하기 위하여 CPU 유형을 고려하여 다양한 바이너리를 만들 수도 있다. 하지만 같은 제조사의 CPU일지라도 제조시기와 CPU 급에 따라 쓸 수 있는 확장 명령 등이 상이하게 다르므로 이러한 방법을 사용하는 것은 매우 비용이 크다는 문제가 있다.
특히, 클라우드 환경의 클러스터 확장은 필요에 따라 점진적으로 수행되며 이 결과로 이종 사양의 하드웨어로 구성되는 것이 일반적인데, 이런 상황에서 노드들이 각기 다른 CPU를 가질 수 있고 일반적 환경과 같은 이유로 위와 같은 문제의 해결이 더욱 필요하다.
본 발명의 실시예는 데이터 처리 요청에 포함되는 변수에 의해 대응되는 프리미티브 함수 정보에 대한 바이너리 코드를 생성하여 데이터 처리 명령을 실행하는 과정에서 발생할 수 있는 인터프리트(Interpret) 오버헤드를 제거하고자 하는 데에 주된 목적이 있다.
본 발명의 일 실시예에 따르면, 프리미티브 생성 장치가 프리미티브를 생성하는 방법에 있어서, 상기 프리미티브 생성 장치의 생성 가능한 질의의 형태를 획득하는 질의형태 획득 과정; 상기 질의의 형태에 따라 상기 질의에 포함되는 하나 이상의 입력변수의 조합에 대응되는 프리미티브 정보를 생성하는 프리미티브 정보 생성 과정; 및 상기 프리미티브 정보에 대한 바이너리 코드를 저장하는 프리미티브 정보 저장 과정을 포함하는 것을 특징으로 하는 프리미티브 생성 방법을 제공한다.
상기 프리미티브 정보 생성 과정은, 상기 질의의 입력 가능한 입력변수의 조합에 대해 각각 하나의 프리미티브 정보를 생성할 수 있으며, 상기 프리미티브에 대하여 색인화하여 심볼 테이블에 저장할 수 있다.
본 발명의 일 실시예에 따르면, 질의 처리 장치가 질의를 처리하는 방법에 있어서, 데이터베이스에 대한 질의를 수신하는 질의 수신 과정; 상기 질의에 대한 형태를 획득하는 질의형태 획득 과정; 기 저장된 심볼 테이블을 접근하여 상기 질의의 형태에 따른 프리미티브 리스트를 획득하는 프리미티브 획득 과정; 및 상기 프리미티브 리스트에 대응되는 연산자 함수를 실행하여 상기 질의를 처리하는 질의 실행 과정을 포함하는 것을 특징으로 하는 질의 처리 방법을 제공한다.
본 발명의 실시예는 데이터 처리 요청에 포함되는 변수에 의해 대응되는 프리미티브 함수 정보에 대한 바이너리 코드를 생성하여 데이터 처리 명령을 실행하는 과정에서 발생할 수 있는 인터프리트(Interpret) 오버헤드를 제거하여 질의 처리 효율을 향상하는 효과가 있다.
도 1은 Tuple-at-a-time 방식의 엔진이 작동하는 방법의 예시도이다.
도 2는 본 발명의 일 실시예에 따른 프리미티브 생성 장치(200)를 블록도로 도시한 도면이다.
도 3은 질의 명령에 사용될 수 있는 연산자 형태에 대한 예를 들어 도시한 도면이다.
도 4는 프리미티브 정보 생성부(220)에서 생성하는 프리미티브 정보를 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 질의 처리 장치를 블록도로 도시한 도면이다.
도 6은 프리미티브 정보를 저장하는 심볼 테이블의 저장 형태를 예시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 프리미티브 생성 방법을 흐름도로 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 질의 처리 방법을 흐름도로 도시한 도면이다.
이하, 본 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 2는 본 발명의 일 실시예에 따른 프리미티브 생성 장치(200)를 블록도로 도시한 도면이다.
도 2에 도시한 바와 같이, 본 발명의 일 실시예에 따른 프리미티브 생성 장치(200)는 질의형태 획득부(210), 프리미티브 정보 생성부(220) 및 프리미티브 정보 저장부(230)를 포함한다. 본 발명의 실시예에서 프리미티브 생성 장치(200)가 유형 획득부(210), 프리미티브 정보 생성부(220) 및 프리미티브 정보 저장부(230)를 포함하는 것으로 설명하나, 본 발명이 위 구성에 한정되지는 않으며 실시예에 따라서는 일부 구성요소를 제외하거나 다른 구성요소를 부가하여 구현할 수도 있다.
질의형태 획득부(210)는 프리미티브 생성 장치(200)에 입력될 수 있는 생성 가능한 질의의 형태를 획득한다. 여기서, 질의는 키보드 입력 등의 인터페이스를 이용하여 사용자로부터 입력되는 데이터 처리 요청에 대응되는 질의 명령인 것으로 설명하나, 실시예에 따라서는 다른 프로그램 또는 프로세스(Process)로부터 질의 명령을 수신할 수도 있다.
질의 형태에는 질의, 즉, 데이터 처리 명령에 사용되는 연산자 타입, 연산자 종류, 데이터 타입, 데이터 구조, 명령 타입 등이 포함될 수 있다.
도 3은 질의 명령에 사용될 수 있는 연산자 형태에 대한 예를 들어 도시한 도면이다.
도 3에 도시하듯이, 연산자 타입이란 연산자가 부울(Boolean) 대수에 관련된 것인지(bool), 수 연산에 관련된 것인지(num), 숫자 통계에 관련된 것인지(agg) 등을 나타내는 정보를 의미한다.
연산자 유형이란, 사용되는 연산자의 종류를 의미하는 것이다.
예컨대, num에 관련된 연산자 타입인 경우에는 add(덧셈), sub(뺄셈), mul(곱하기), div(나누기), mod(모듈러 연산) 등의 수 연산에 관련된 연산자 유형 등이 있다. bool에 관련된 연산자 타입인 경우에는 and(AND 연산), or(OR 연산), eq(equal인지 확인하는 연산) 등 부울 대수에 관련된 연산자 유형 등이 있을 수 있다.
또한, 숫자 통계에 관련된 연산자 타입인 경우에는 sum, max, min 등의 연산자 유형이 있을 수 있다.
데이터 타입에는 Bool, unsigned int, float, double, string 등의 데이터의 포맷을 나타내는 정보 등이 있다.
데이터 구조로는 col, val 등이 있을 수 있으며, 여기서 col은 데이터가 벡터 형태인지를 의미하며 val은 하나의 입력 데이터 값을 의미한다.
명령 타입으로는 해당 명령어 타입이 SIMD 명령인지 또는 AVX(Advanced Vector Extensions) 명령어인지 여부 등을 나타낸다.
프리미티브 정보 생성부(220)는 질의형태 획득부(210)에서 획득한 질의의 유형에 따라 질의에 포함될 수 있는 하나 이상의 입력변수의 조합에 대응되는 프리미티브 정보를 생성한다.
도 4는 프리미티브 정보 생성부(220)에서 생성하는 프리미티브 정보를 예시한 도면이다.
도 4에 도시한 바와 같이, 프리미티브 정보 생성부(220)는 연산자 타입, 연산자 종류, 데이터 타입, 데이터 구조, 명령 타입 등이 포함되는 프리미티브 정보를 생성한다.
도 4의 (a)에서는 하나의 프리미티브에 연산자 타입(type), 연산자 종류(operator), 2개의 데이터 타입(data type 1, data type 2), 2개의 데이터 구조(col or val 1, col or val 2), 명령 타입(impl) 등이 포함된 경우이다. 여기서는 하나의 연산자에 대해, 두 가지 데이터 타입이 사용되고 각 데이터 타입마다 대응되는 데이터 구조를 갖는 프리미티브임을 알 수 있다. 또한, 사용되는 CPU 형태에 따라서, 예컨대 CPU가 SIMD를 제공하는 경우에는 명령 타입(impl)에는 SIMD가 될 수 있다.
또한, 도 4의 (b)는 하나의 프리미티브에 연산자 타입(type), 연산자 종류(operator), 1개의 데이터 타입(data type 1), 1개의 데이터 구조(col or val 1) 등이 포함된 경우이다.
프리미티브 정보 생성부(220)는 프리미티브 생성 장치(200)에 입력 가능한 모든 질의 형태에 대하여 도 4와 같은 프리미티브 정보를 생성한다. 즉, 프리미티브 정보 생성부(220)는 질의의 입력 가능한 입력변수의 조합에 대해 각각 하나의 프리미티브 정보를 생성한다.
프리미티브 정보 저장부(230)는 프리미티브 정보 생성부(220)에 의해 생성된 프리미티브 정보에 대하여 바이너리 코드화하여 화일로 만들어서 프리미티브 생성 장치(200) 내에 저장한다.
프리미티브 정보 저장부(230)는 생성된 프리미티브 정보에 대하여 색인화하여 심볼 테이블(Symbol Table: 240)에 저장할 수 있다. 예컨대, 프리미티브 정보 저장부(230)는 연산자 타입, 연산자 종류, 데이터 타입, 데이터 구조, 명령 타입 등 질의 형태에 포함되는 각 구성요소에 대하여 인덱스를 할당하고 저장하고자 하는 프리미티브 정보에 포함되는 질의 형태에 대하여 유니크(Unique)한 색인 정보를 생성할 수 있다.
예를 들어, 연산자 타입에는 사용되는 연산자 타입이 예컨대 3 개인 경우에는 2 비트 정보를 할당하여, 00은 bool, 01은 num, 10은 agg를 의미하도록 설정할 수 있다. 또한, 연산자 종류에 대해서는 사용되는 연산자의 종류가 16 개인 경우에는 연산자 종류를 나타내는 데에 4비트 정보를 할당하여 0000이면 add, 0001이면 sub 등과 같이 연산자를 식별할 수 있는 인덱스 코드를 할당한다. 이러한 방법으로 질의 형태에 대한 다른 구성요소에 대해서도 인덱스를 할당하여 식별하도록 할 수 있다.
본 실시예에서, 심볼 테이블(240)을 생성하는 방법에 대하여 설명하였으나, 이는 한 가지 예를 설명한 것에 불과하고, 실시예에 따라서 다른 다양한 방법을 사용할 수 있다.
프리미티브 정보 저장부(230)는 위와 같이 인덱스화한 프리미티브 정보에 대하여 테이블로 저장할 수 있다. 따라서, 생성된 프리미티브 정보 하나에 대해서는 유니크한 인덱스 하나가 할당되어 심볼 테이블로 저장된다. 따라서, 심볼 테이블(240) 내의 각 리스트는 해당 프리미티브에 대한 정보를 저장하게 된다.
심볼 테이블(240)로 저장된 프리미티브 정보에는 해당 프리미티브를 식별하는 정보가 추가되어 저장될 수 있다. 예컨대, 어느 하나의 프리미티브 정보를 나타내는 심볼 테이블(240)에 대하여 해당 프리미티브에 대응되는 연산자 함수 코드의 위치에 대한 정보가 포함될 수 있다. 여기서 연산자 함수 코드의 위치에 대한 정보는 저장된 디스크 상의 주소일 수 있으나 본 발명이 이에 한정되지는 않는다.
위에서 설명한 바와 같이, 프리미티브 정보를 생성하여 테이블(240)로 저장하는 경우, 많은 수의 프리미티브 정보의 생성이 필요하고 이에 따라 많은 수의 프리미티브 정보의 저장에 필요한 많은 메모리 용량이 소모될 수 있으나, 시스템 시동 시에 프리미티브 정보를 미리 생성해 둠으로써 질의 처리 수행 시에 입력된 질의를 인터프리트 하는 시간을 절약하여 전체 질의 처리 시간을 감소시키는 효과를 주는 잇점이 있다.
도 5는 본 발명의 일 실시예에 따른 질의 처리장치를 블록도로 도시한 도면이다.
도 5에 도시한 바와 같이, 본 발명의 일 실시예에 따른 질의 처리장치(500)는 질의 수신부(510), 질의형태 획득부(520), 프리미티브 획득부(530) 및 질의 실행부(540)를 포함한다. 본 발명의 실시예에서 질의 처리장치(500)가 질의 수신부(510), 질의형태 획득부(520), 프리미티브 획득부(530) 및 질의 실행부(540)를 포함하는 것으로 설명하나, 본 발명이 위 구성에 한정되지는 않으며 실시예에 따라서는 일부 구성요소를 제외하거나 다른 구성요소를 부가하여 구현할 수도 있다.
질의 수신부(510)는 사용자로부터 키보드 입력 등을 통하여 데이터베이스에 대한 질의를 수신한다. 여기서 질의 수신부(510)가 키보드 입력 등의 인터페이스를 이용하여 사용자로부터 질의를 수신하는 것으로 설명하나, 실시예에 따라서는 다른 프로그램 또는 다른 프로세스로부터 질의 명령을 수신할 수도 있다.
질의형태 획득부(520)는 질의 수신부(510)에 입력된 수 있는 질의의 형태를 획득한다. 질의형태 획득부(520)가 수신된 질의로부터 획득하는 질의 형태에는 질의, 즉, 데이터 처리 명령에 사용되는 연산자 타입, 연산자 종류, 데이터 타입, 데이터 구조, 명령 타입 등이 포함될 수 있다.
프리미티브 획득부(530)는 인덱스화되어 기 저장된 심볼 테이블(240)을 접근하여 질의형태 획득부(520)에서 획득된 질의 형태에 따라 해당 프리미티브에 대응되는 심볼 리스트를 획득하고 해당 심볼 리스트에 대응되는 연산자 수행 함수 코드의 위치를 획득한다.
여기서 심볼 테이블은 캐시 메모리에 저장되도록 하기 위하여 질의 처리 장치를 구동하기 전에 질의처리 프로그램 내에 심볼 테이블을 저장하는 영역을 확보하는 방법을 사용할 수 있으며, 심볼 테이블을 캐시 메모리에 저장하기 위한 다양한 방법을 사용할 수 있다.
전술하였듯이, 심볼 테이블(240)은 프리미티브 리스트에 대하여 색인화하여 저장한 것이며, 그 저장 형태의 예는 프리미티브 생성 장치(200)의 설명에서 설명된 것과 동일한 방법으로 저장될 수 있다.
프리미티브 획득부(530)에 의하여 해당 프리미티브에 대응하는 연산자 함수가 획득되면, 질의 실행부(540)는 해당 프리미티브에 해당하는 연산자 함수 코드를 실행하여 질의를 수행하고 질의를 수행한 결과를 질의를 요청한 사용자 또는 응용 프로그램에게 출력으로서 전달한다.
도 6은 프리미티브 정보를 저장하는 심볼 테이블(240)의 저장 형태를 예시한 도면이다.
도 6에 도시한 바와 같이 심볼의 인덱스 값(symbol1, symbol2)과 대응되는 연산자 함수 코드의 위치(addr1, addr2)를 저장한다.
프리미티브 획득부(530)는 도 6과 같은 테이블을 이용하여 해당 프리미티브에 대응되는 심볼 리스트에 대응되는 연산자 수행 함수 코드의 위치를 획득한다.
도 7은 본 발명의 일 실시예에 따른 프리미티브 생성 방법을 흐름도로 도시한 도면이다.
도 7에 도시한 바와 같이, 본 발명의 일 실시예에 따른 프리미티브 생성 방법은, 프리미티브 생성 장치의 생성 가능한 질의의 형태를 획득하는 질의형태 획득 과정(S710), 획득된 사용가능 질의의 형태에 따라 질의에 포함되는 하나 이상의 입력변수의 조합에 대응되는 프리미티브 정보를 생성하는 프리미티브 정보 생성 과정(S720) 및 생성된 프리미티브 정보에 대한 바이너리 코드를 저장하는 프리미티브 정보 저장 과정(S730)을 포함한다.
여기서, 질의형태 획득 과정 S710은 질의형태 획득부(210)의 동작에 대응되고, 프리미티브 정보 생성 과정 S720은 프리미티브 정보 생성부(220)의 동작에 대응되고, 프리미티브 정보 저장 과정 S730은 프리미티브 정보 저장부(230)의 동작에 대응되므로 더 이상의 상세한 설명은 생략한다.
도 8은 본 발명의 일 실시예에 따른 질의처리 방법을 흐름도로 도시한 도면이다.
도 8에 도시한 바와 같이, 본 발명의 일 실시예에 따른 질의처리 방법은, 데이터베이스에 대한 질의를 수신하는 질의 수신 과정(S810), 수신된 질의에 대한 형태를 획득하는 질의형태 획득 과정(S820), 저장된 심볼 테이블을 접근하여 질의의 형태에 따른 프리미티브 리스트를 획득하는 프리미티브 획득 과정(S830) 및 획득한 프리미티브 리스트에 대응되는 연산자 함수를 실행하여 질의를 처리하는 질의 실행 과정(S840)을 포함한다.
여기서, 질의 수신 과정 S810은 질의 수신부(510)의 동작에 대응되고, 질의형태 획득 과정 S820은 질의형태 획득부(520)의 동작에 대응되고, 프리미티브 획득 과정 S830은 프리미티브 획득부(530)의 동작에 대응되고, 질의 실행 과정(S840)은 질의 실행부(540)의 동작에 대응되므로 더 이상의 상세한 설명은 생략한다.
본 발명의 실시예에 따른 프리미티브 생성 장치(200) 및 질의 처리 장치(500)는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 태블릿(Tablet), 개인 휴대 단말기(PDA: Personal Digital Assistant), 게임 콘솔, 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV, 미디어 플레이어 등과 같은 사용자 단말기일 수 있다. 또한, 본 발명의 실시예에 따른 프리미티브 생성 장치(200) 및 질의 처리 장치(500)는 유무선통신망과 연결되어 사용자 단말기에게 서비스를 제공하는 서비스 서버일 수도 있다.
본 발명의 실시예에 따른 프리미티브 생성 장치(200) 및 질의 처리 장치(500)는 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 프로그램을 실행하기 위한 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미할 수 있다. 적어도 일 실시예에 따르면, 메모리는 램(Random Access Memory: RAM), 롬(Read Only Memory: ROM), 플래시 메모리, 광 디스크, 자기 디스크, 솔리드 스테이트 디스크(Solid State Disk: SSD) 등의 컴퓨터로 판독 가능한 기록/저장매체일 수 있다. 적어도 일 실시예에 따르면, 마이크로프로세서는 명세서에 기재된 동작과 기능을 하나 이상 선택적으로 수행하도록 프로그램될 수 있다. 적어도 일 실시예에 따르면, 마이크로프로세서는 전체 또는 부분적으로 특정한 구성의 주문형반도체(Application Specific Integrated Circuit: ASIC) 등의 하드웨어로써 구현될 수 있다.
전술한 바와 같이, 도 7에 기재된 프리미티브 생성 방법은 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 프리미티브 생성 방법을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 이러한 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드 및 코드 세그먼트들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.
또한, 도 8에 기재된 질의처리 방법은 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 본 실시예에 따른 질의처리 방법을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 이러한 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드 및 코드 세그먼트들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
200: 프리미티브 생성 장치 210: 질의형태 획득부
220: 프리미티브 정보 생성부 230: 프리미티브 정보 저장부
240: 심볼 테이블 500: 질의 처리 장치
510: 질의 수신부 520: 질의형태 획득부
530: 프리미티브 획득부 540: 질의 실행부

Claims (7)

  1. 프리미티브 생성 장치가 프리미티브를 생성하는 방법에 있어서,
    상기 프리미티브 생성 장치의 생성 가능한 질의의 형태를 획득하는 질의형태 획득 과정;
    상기 질의의 형태에 따라 상기 질의에 포함되는 하나 이상의 입력변수의 조합에 대응되는 프리미티브 정보를 생성하는 프리미티브 정보 생성 과정; 및
    상기 프리미티브 정보에 대한 바이너리 코드를 저장하는 프리미티브 정보 저장 과정
    을 포함하는 것을 특징으로 하는 프리미티브 생성 방법.
  2. 제 1항에 있어서,
    상기 프리미티브 정보 생성 과정은,
    상기 질의의 입력 가능한 입력변수의 조합에 대해 각각 하나의 프리미티브 정보를 생성하는 것을 특징으로 하는 프리미티브 생성 방법.
  3. 제 1항에 있어서,
    상기 프리미티브 정보 저장 과정은,
    상기 프리미티브에 대하여 색인화하여 심볼 테이블에 저장하는 것을 특징으로 하는 프리미티브 생성 방법.
  4. 제 3항에 있어서,
    상기 심볼 테이블 내의 각 리스트는 해당 프리미티브에 대응되는 연산자 함수의 위치에 대한 정보를 저장하는 것을 특징으로 하는 프리미티브 생성 방법.
  5. 질의 처리 장치가 질의를 처리하는 방법에 있어서,
    데이터베이스에 대한 질의를 수신하는 질의 수신 과정;
    상기 질의에 대한 형태를 획득하는 질의형태 획득 과정;
    기 저장된 심볼 테이블을 접근하여 상기 질의의 형태에 따른 프리미티브 리스트를 획득하는 프리미티브 획득 과정; 및
    상기 프리미티브 리스트에 대응되는 연산자 함수를 실행하여 상기 질의를 처리하는 질의 실행 과정
    을 포함하는 것을 특징으로 하는 질의 처리 방법.
  6. 제 5항에 있어서,
    상기 심볼 테이블은,
    상기 프리미티브 리스트에 대하여 색인화하여 저장한 것을 특징으로 하는 질의 처리 방법.
  7. 제 6항에 있어서,
    상기 심볼 테이블 내의 각 리스트는 해당 프리미티브에 대응되는 연산자 함수의 위치에 대한 정보를 저장하는 것을 특징으로 하는 질의 처리 방법.
KR1020130126152A 2013-10-22 2013-10-22 프리미티브 생성 방법과 그를 이용한 질의처리 방법 KR102100513B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130126152A KR102100513B1 (ko) 2013-10-22 2013-10-22 프리미티브 생성 방법과 그를 이용한 질의처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130126152A KR102100513B1 (ko) 2013-10-22 2013-10-22 프리미티브 생성 방법과 그를 이용한 질의처리 방법

Publications (2)

Publication Number Publication Date
KR20150046659A true KR20150046659A (ko) 2015-04-30
KR102100513B1 KR102100513B1 (ko) 2020-04-13

Family

ID=53037967

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130126152A KR102100513B1 (ko) 2013-10-22 2013-10-22 프리미티브 생성 방법과 그를 이용한 질의처리 방법

Country Status (1)

Country Link
KR (1) KR102100513B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10740331B2 (en) 2014-08-07 2020-08-11 Coupang Corp. Query execution apparatus, method, and system for processing data, query containing a composite primitive

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347315B1 (en) * 1997-12-12 2002-02-12 Canon Kabushiki Kaisha Method and apparatus for selecting and utilizing one of computers or databases
KR20070066814A (ko) * 2004-03-19 2007-06-27 마이크로소프트 코포레이션 테이블 값 함수를 호출하는 질의의 효율적 평가를 위한시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347315B1 (en) * 1997-12-12 2002-02-12 Canon Kabushiki Kaisha Method and apparatus for selecting and utilizing one of computers or databases
KR20070066814A (ko) * 2004-03-19 2007-06-27 마이크로소프트 코포레이션 테이블 값 함수를 호출하는 질의의 효율적 평가를 위한시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10740331B2 (en) 2014-08-07 2020-08-11 Coupang Corp. Query execution apparatus, method, and system for processing data, query containing a composite primitive
US11599540B2 (en) 2014-08-07 2023-03-07 Coupang Corp. Query execution apparatus, method, and system for processing data, query containing a composite primitive

Also Published As

Publication number Publication date
KR102100513B1 (ko) 2020-04-13

Similar Documents

Publication Publication Date Title
CN107463632B (zh) 一种分布式NewSQL数据库系统和数据查询方法
US10565200B2 (en) Conversion of model views into relational models
US8997070B2 (en) Extension mechanism for scripting language compiler
CN108369591B (zh) 用于缓存和参数化ir的系统和方法
US11055352B1 (en) Engine independent query plan optimization
US10949424B2 (en) Optimization technique for database application
CN106611037A (zh) 用于分布式图计算的方法与设备
US10719506B2 (en) Natural language query generation
US11392623B2 (en) Hybrid in-memory BFS-DFS approach for computing graph queries against heterogeneous graphs inside relational database systems
US11392624B2 (en) Hybrid in-memory BFS-DFS approach for computing graph queries against homogeneous graphs inside relational database systems
US11397732B2 (en) Hybrid in-memory BFS-DFS approach for computing graph queries involving complex path patterns including trees and cycles inside relational database systems
CN108431766B (zh) 用于访问数据库的方法和系统
US10423617B2 (en) Remote query optimization in multi data sources
US10268461B2 (en) Global data flow optimization for machine learning programs
US20160154634A1 (en) Modifying an analytic flow
EP3293645B1 (en) Iterative evaluation of data through simd processor registers
US20140372488A1 (en) Generating database processes from process models
KR102100513B1 (ko) 프리미티브 생성 방법과 그를 이용한 질의처리 방법
US11734270B2 (en) Optimal index selection in polynomial time
CN115114325A (zh) 数据查询方法、装置、电子设备以及存储介质
US10853366B2 (en) Cooperative expression visitors
Castellana et al. High-performance data analytics beyond the relational and graph data models with gems
Huang et al. Research on optimization of real-time efficient storage algorithm in data information serialization
CN113076330A (zh) 查询处理方法、装置、数据库系统、电子设备及存储介质
CN112749189A (zh) 数据查询方法及装置

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