맞춤기술찾기

이전대상기술

JIT 컴파일 기반 데이터베이스 시스템, 이의 질의 처리 방법 및 이의 저장 프로시저 최적화 방법

  • 기술번호 : KST2019014380
  • 담당센터 : 대전기술혁신센터
  • 전화번호 : 042-610-2279
요약, Int. CL, CPC, 출원번호/일자, 출원인, 등록번호/일자, 공개번호/일자, 공고번호/일자, 국제출원번호/일자, 국제공개번호/일자, 우선권정보, 법적상태, 심사진행상태, 심판사항, 구분, 원출원번호/일자, 관련 출원번호, 기술이전 희망, 심사청구여부/일자, 심사청구항수의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 서지정보 표입니다.
요약 본 발명은 저장 프로시저를 활용한 온라인 분석 워크로드를 효율적으로 지원하고자 하는 데이터베이스 시스템에서의 저장 프로시저 최적화와 관련된다. 본 발명의 일 실시 예에 따른 JIT 컴파일 기반 데이터베이스 시스템은, 스토리지에 저장된 데이터를 관리하는 한편, 요청에 따라 데이터를 제공하는 저장 관리기; 입력되는 OLTP 질의, OLAP 분석 및 저장 프로시저에 대한 SQL 실행 플랜을 생성하는 인터프리터 기반 질의 처리기; 및 상기 SQL 실행 플랜을 제공받고, 제공받은 SQL 실행 플랜 내 분기문 및 반복문에 대한 최적화를 실행한 후, 최적화된 JIT 실행 플랜을 생성하는 한편, 생성된 JIT 실행 플랜을 기반으로 질의 처리를 수행하는 질의 처리 실행기를 생성하고, 생성된 질의 처리 실행기에 의해 수행된 질의 처리 결과를 제공하는 JIT 기반 질의 처리기를 포함한다.
Int. CL G06F 16/00 (2019.01.01)
CPC G06F 16/245(2013.01)
출원번호/일자 1020180006721 (2018.01.18)
출원인 한국전자통신연구원
등록번호/일자
공개번호/일자 10-2019-0088318 (2019.07.26) 문서열기
공고번호/일자
국제출원번호/일자
국제공개번호/일자
우선권정보
법적상태 공개
심사진행상태 수리
심판사항
구분 신규
원출원번호/일자
관련 출원번호
심사청구여부/일자 Y (2020.11.17)
심사청구항수 20

출원인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 출원인 표입니다.
번호 이름 국적 주소
1 한국전자통신연구원 대한민국 대전광역시 유성구

발명자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 발명자 표입니다.
번호 이름 국적 주소
1 이명철 대전광역시 유성구

대리인

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 대리인 표입니다.
번호 이름 국적 주소
1 특허법인지명 대한민국 서울특별시 강남구 남부순환로**** 차우빌딩*층

최종권리자

번호, 이름, 국적, 주소의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 인명정보 - 최종권리자 표입니다.
번호 이름 국적 주소
최종권리자 정보가 없습니다
번호, 서류명, 접수/발송일자, 처리상태, 접수/발송일자의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 행정처리 표입니다.
번호 서류명 접수/발송일자 처리상태 접수/발송번호
1 [특허출원]특허출원서
[Patent Application] Patent Application
2018.01.18 수리 (Accepted) 1-1-2018-0063151-10
2 [심사청구]심사청구서·우선심사신청서
2020.11.17 수리 (Accepted) 1-1-2020-1233529-45
번호, 청구항의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 청구항 표입니다.
번호 청구항
1 1
스토리지에 저장된 데이터를 관리하는 한편, 요청에 따라 데이터를 제공하는 저장 관리기;입력되는 OLTP 질의, OLAP 분석 및 저장 프로시저에 대한 SQL 실행 플랜을 생성하는 인터프리터 기반 질의 처리기; 및상기 SQL 실행 플랜을 제공받고, 제공받은 SQL 실행 플랜 내 분기문 및 반복문에 대한 최적화를 실행한 후, 최적화된 JIT 실행 플랜을 생성하는 한편, 생성된 JIT 실행 플랜을 기반으로 질의 처리를 수행하는 질의 처리 실행기를 생성하고, 생성된 질의 처리 실행기에 의해 수행된 질의 처리 결과를 제공하는 JIT 기반 질의 처리기를 포함하는JIT 컴파일 기반 데이터베이스 시스템
2 2
제 1 항에 있어서,상기 JIT 기반 질의 처리기는,입력되는 SQL 실행 플랜을 분석하여, JIT 컴파일 대상 질의인지를 판단하는 질의 판단모듈;입력되는 SQL 실행 플랜 내 분기문에 대한 최적화를 실행하는 분기 최적화 실행모듈;입력되는 SQL 실행 플랜을 변환하여 JIT 실행 플랜을 생성하는 JIT 실행 플랜 생성모듈;입력되는 JIT 실행 플랜 내 반복문에 대한 최적화를 실행하는 반복 최적화 실행모듈;상기 분기 최적화 실행모듈의 최적화 실행 및 상기 반복 최적화 실행모듈의 최적화 실행에 이용되는 규칙을 저장하는 최적화 규칙 저장모듈; 및상기 인터프리터 기반 질의 처리기로부터 제공되는 SQL 실행 플랜을 상기 질의 판단모듈로 제공하는 한편, 상기 반복 최적화 실행모듈로부터 JIT 실행 플랜을 제공받고, 제공받은 JIT 실행 플랜에 대한 질의 처리를 수행하는 질의 처리 실행기를 생성하는 질의 처리 제어모듈을 포함하는JIT 컴파일 기반 데이터베이스 시스템
3 3
제 2 항에 있어서,상기 질의 판단모듈은 상기 SQL 실행 플랜에 대한 질의 워크로드 분석을 통해, OLTP 질의인지 OLAP 분석인지를 판단하여, OLAP 분석인 경우에 JIT 컴파일 대상 질의인 것으로 판단하는JIT 컴파일 기반 데이터베이스 시스템
4 4
제 3 항에 있어서,상기 질의 판단모듈은 분석 함수 및 집계 함수가 모두 사용되는 경우 OLAP 분석으로 판단하는JIT 컴파일 기반 데이터베이스 시스템
5 5
제 4 항에 있어서,상기 질의 판단모듈은 분석 함수 및 집계 함수가 사용되지 않거나 하나의 함수만 사용된 경우, 질의 선택율을 예측하여 질의 선택율이 임계치 이하이면 OLAP 분석으로 판단하는JIT 컴파일 기반 데이터베이스 시스템
6 6
제 2 항에 있어서,상기 질의 처리 제어모듈은 상기 질의 판단모듈에 의해 SQL 실행 플랜이 JIT 컴파일 대상 질의인 것으로 판단된 경우, SQL 실행 플랜을 상기 분기 최적화 실행 모듈로 제공하고, 상기 질의 판단모듈에 의해 SQL 실행 플랜이 JIT 컴파일 대상 질의가 아닌 것으로 판단된 경우, 상기 인터프리터 기반 질의 처리기로 SQL 실행 플랜에 대한 처리를 요청하는JIT 컴파일 기반 데이터베이스 시스템
7 7
제 2 항에 있어서,상기 질의 처리 제어모듈은 상기 분기 최적화 실행 모듈로부터 제공받은 분기문 최적화된 SQL 실행 플랜을 상기 JIT 실행 플랜 생성모듈로 제공하고, 상기 JIT 실행 플랜 생성모듈로부터의 JIT 실행 플랜을 상기 반복 최적화 실행모듈로 제공하고, 상기 반복 최적화 실행모듈로부터의 반복문 최적화된 JIT 실행 플랜을 제공받으면, 상기 질의 처리 실행기를 생성하는JIT 컴파일 기반 데이터베이스 시스템
8 8
제 2 항에 있어서,상기 분기 최적화 실행모듈은,분기 최적화 적용 여부 판단을 위한 기본 자료 구조를 구성하고,입력된 SQL 실행 플랜을 분석하여 분기 최적화가 적용 가능한지를 판단하고,분기 최적화가 적용 가능한 것으로 판단하면, 최적화 적용을 위한 분기 파트 정보를 구성하고,분기 파트 정보를 기반으로 최적화를 실행하고,최적화 실행 결과에 따라 위치가 변경된 연산문들의 원래 위치와 이동 위치를 고려하여, 변수 이름 및 참조 위치를 조정하는JIT 컴파일 기반 데이터베이스 시스템
9 9
제 8 항에 있어서,상기 분기 최적화 실행모듈은, 하나의 분기 블록 내에서 중복 연산 및 고유 연산의 묶음마다 분기 블록 1개씩 생성하여 유형을 구분하고, 구성된 분기 파트의 유형 및 다른 분기 파트와의 상대적 위치에 따라, 중복 연산자 및 고유 연산자를 앞뒤로 이동 배치하여 최적화를 실행하는JIT 컴파일 기반 데이터베이스 시스템
10 10
제 2 항에 있어서,상기 반복 최적화 실행모듈은, 입력된 JIT 실행 플랜 내 반복문이 반복 최적화 규칙을 적용할 수 있는 반복문인지를 판단하고,반복 최적화 규칙을 적용할 수 있는 반복문인 경우, 반복문 내에서의 반복 조건 변수를 추출하고,반복문 내에서 순회 병렬화를 위한 반복 함수를 추출하고,추출된 반복 함수에 대한 스케줄링을 제어하는 병렬 루프 스케줄러를 구성하고,구성된 병렬 루프 스케줄러를 이용하여, 추출된 반복 함수들을 병렬 처리 가능하도록 배치하는JIT 컴파일 기반 데이터베이스 시스템
11 11
제 10 항에 있어서,상기 반복 최적화 실행모듈은, 입력된 JIT 실행 플랜 내 반복문이 단순 반복문, 순회간 의존성이 있는 반복문, 변경문을 포함하는 반복문, 하위 반복문을 포함하는 반복문인 경우에 최적화 대상이 아닌 것으로 판단하고,입력된 JIT 실행 플랜 내 반복문이 순회간 의존성이 없는 반복문, 변경문을 포함하고 있지 않은 반복문, 하위 반복문을 포함하지 않은 반복문인 경우에 최적화 대상인 것으로 판단하는JIT 컴파일 기반 데이터베이스 시스템
12 12
제 10 항에 있어서,상기 반복 최적화 실행모듈은, BARRIER 문과 LEAVE 문 사이의 연산문에 대한 반복 조건 변수를 검사하여, 변경 연산문 정보를 추출하고, LEAVE 문과 REDO 문 사이의 연산문에 대한 반복 조건 변수를 검사하여 변경 연산문 정보를 추출하는JIT 컴파일 기반 데이터베이스 시스템
13 13
제 10 항에 있어서,상기 반복 최적화 실행모듈은 스레드화가 가능한 함수인 checkLoopCond() 함수, checkLeaveCond() 함수, checkRedoCond() 함수, processPartition() 함수 및 preparePartition() 함수를 추출하는JIT 컴파일 기반 데이터베이스 시스템
14 14
입력되는 OLTP 질의, OLAP 분석 및 저장 프로시저에 대한 SQL 실행 플랜을 생성하는 단계;생성된 상기 SQL 실행 플랜에 대해서, JIT 실행 플랜으로의 컴파일 대상 질의인지를 판단하는 단계;상기 SQL 실행 플랜이 JIT 실행 플랜으로의 컴파일 대상 질의가 아닌 것으로 판단되면, 인터프리터 기반으로 질의를 처리하여 결과를 제공하는 단계;상기 SQL 실행 플랜이 JIT 실행 플랜으로의 컴파일 대상 질의인 것으로 판단되면, 상기 SQL 실행 플랜 내 분기문이 있는 경우, 분기문에 대한 최적화를 실행하는 단계;상기 SQL 실행 플랜 내 분기문이 없는 경우에는 상기 SQL 실행 플랜을 변환하여 JIT 실행 플랜을 생성하고, 분기문에 대한 최적화가 실행된 경우에는 분기문 최적화된 SQL 실행 플랜을 변환하여 JIT 실행 플랜을 생성하는 단계;생성된 상기 JIT 실행 플랜 내 반복문이 있는 경우, 반복문에 대한 최적화를 실행하는 단계;상기 JIT 실행 플랜 내 반복문이 없는 경우에는 상기 JIT 실행 플랜을 기반으로 질의 처리를 수행하는 질의 처리 실행기를 생성하고, 반복문에 대한 최적화가 실행된 경우에는 반복문 최적화된 JIT 실행 플랜을 기반으로 질의 처리를 수행하는 질의 처리 실행기를 생성하는 단계; 및생성된 질의 처리 실행기를 이용하여, 상기 JIT 실행 플랜 혹은 상기 반복문 최적화된 JIT 실행 플랜을 머신 코드로 변환하여 JIT 기반의 질의를 처리하여 결과를 제공하는 단계를 포함하는JIT 컴파일 기반 데이터베이스 시스템의 질의 처리 방법
15 15
제 14 항에 있어서,상기 JIT 실행 플랜으로의 컴파일 대상 질의인지를 판단하는 단계는,상기 SQL 실행 플랜에 대한 질의 워크로드 분석을 통해, OLTP 질의인지 OLAP 분석인지를 판단하여, OLAP 분석인 경우에 JIT 컴파일 대상 질의인 것으로 판단하는 단계인JIT 컴파일 기반 데이터베이스 시스템의 질의 처리 방법
16 16
제 14 항에 있어서,상기 분기문에 대한 최적화를 실행하는 단계는,분기 최적화 적용 여부 판단을 위한 기본 자료 구조를 구성하는 단계;입력된 SQL 실행 플랜을 분석하여 분기 최적화가 적용 가능한지를 판단하는 단계;분기 최적화가 적용 가능한 것으로 판단하면, 최적화 적용을 위한 분기 파트 정보를 구성하는 단계;분기 파트 정보를 기반으로 최적화를 실행하는 단계; 및최적화 실행 결과에 따라 위치가 변경된 연산문들의 원래 위치와 이동 위치를 고려하여, 변수 이름 및 참조 위치를 조정하는 단계를 포함하는JIT 컴파일 기반 데이터베이스 시스템의 질의 처리 방법
17 17
제 14 항에 있어서,상기 반복문에 대한 최적화를 실행하는 단계는,입력된 JIT 실행 플랜 내 반복문이 반복 최적화 규칙을 적용할 수 있는 반복문인지를 판단하는 단계;반복 최적화 규칙을 적용할 수 있는 반복문인 경우, 반복문 내에서의 반복 조건 변수를 추출하는 단계;반복문 내에서 순회 병렬화를 위한 반복 함수를 추출하는 단계;추출된 반복 함수에 대한 스케줄링을 제어하는 병렬 루프 스케줄러를 구성하는 단계; 및구성된 병렬 루프 스케줄러를 이용하여, 추출된 반복 함수들을 병렬 처리 가능하도록 배치하는 단계를 포함하는JIT 컴파일 기반 데이터베이스 시스템의 질의 처리 방법
18 18
입력되는 OLTP 질의, OLAP 분석 및 저장 프로시저에 대한 처리를 통해 생성되는 SQL 실행 플랜 내 분기문에 대한 최적화를 실행하는 단계;분기문 최적화된 SQL 실행 플랜을 변환하여 JIT 실행 플랜을 생성하는 단계;생성된 JIT 실행 플랜 내 반복문에 대한 최적화를 실행하는 단계; 및반복문 최적화된 JIT 실행 플랜을 머신 코드로 변환하여 질의를 처리하는 단계를 포함하는JIT 컴파일 기반 데이터베이스 시스템의 저장 프로시저 최적화 방법
19 19
제 18 항에 있어서,상기 SQL 실행 플랜 내 분기문에 대한 최적화를 실행하는 단계는,분기 최적화 적용 여부 판단을 위한 기본 자료 구조를 구성하는 단계;입력된 SQL 실행 플랜을 분석하여 분기 최적화가 적용 가능한지를 판단하는 단계;분기 최적화가 적용 가능한 것으로 판단하면, 최적화 적용을 위한 분기 파트 정보를 구성하는 단계;분기 파트 정보를 기반으로 최적화를 실행하는 단계; 및최적화 실행 결과에 따라 위치가 변경된 연산문들의 원래 위치와 이동 위치를 고려하여, 변수 이름 및 참조 위치를 조정하는 단계를 포함하는JIT 컴파일 기반 데이터베이스 시스템의 저장 프로시저 최적화 방법
20 20
제 18 항에 있어서,상기 JIT 실행 플랜 내 반복문에 대한 최적화를 실행하는 단계는,입력된 JIT 실행 플랜 내 반복문이 반복 최적화 규칙을 적용할 수 있는 반복문인지를 판단하는 단계;반복 최적화 규칙을 적용할 수 있는 반복문인 경우, 반복문 내에서의 반복 조건 변수를 추출하는 단계;반복문 내에서 순회 병렬화를 위한 반복 함수를 추출하는 단계;추출된 반복 함수에 대한 스케줄링을 제어하는 병렬 루프 스케줄러를 구성하는 단계; 및구성된 병렬 루프 스케줄러를 이용하여, 추출된 반복 함수들을 병렬 처리 가능하도록 배치하는 단계를 포함하는JIT 컴파일 기반 데이터베이스 시스템의 저장 프로시저 최적화 방법
지정국 정보가 없습니다
순번, 패밀리번호, 국가코드, 국가명, 종류의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 패밀리정보 - 패밀리정보 표입니다.
순번 패밀리번호 국가코드 국가명 종류
1 US10754857 US 미국 FAMILY
2 US20190220535 US 미국 FAMILY

DOCDB 패밀리 정보

순번, 패밀리번호, 국가코드, 국가명, 종류의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 패밀리정보 - DOCDB 패밀리 정보 표입니다.
순번 패밀리번호 국가코드 국가명 종류
1 US10754857 US 미국 DOCDBFAMILY
2 US2019220535 US 미국 DOCDBFAMILY
순번, 연구부처, 주관기관, 연구사업, 연구과제의 정보를 제공하는 이전대상기술 뷰 페이지 상세정보 > 국가R&D 연구정보 정보 표입니다.
순번 연구부처 주관기관 연구사업 연구과제
1 과학기술정보통신부 한국전자통신연구원 SW컴퓨팅산업원천기술개발 대규모 트랜잭션 처리와 실시간 복합 분석을 통합한 일체형 데이터 엔지니어링 기술 개발