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 컴파일 기반 데이터베이스 시스템의 저장 프로시저 최적화 방법
|