KR20110068578A - GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법 - Google Patents

GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법 Download PDF

Info

Publication number
KR20110068578A
KR20110068578A KR1020090125595A KR20090125595A KR20110068578A KR 20110068578 A KR20110068578 A KR 20110068578A KR 1020090125595 A KR1020090125595 A KR 1020090125595A KR 20090125595 A KR20090125595 A KR 20090125595A KR 20110068578 A KR20110068578 A KR 20110068578A
Authority
KR
South Korea
Prior art keywords
gpu
query
tree
search
memory
Prior art date
Application number
KR1020090125595A
Other languages
English (en)
Other versions
KR101081726B1 (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 KR1020090125595A priority Critical patent/KR101081726B1/ko
Publication of KR20110068578A publication Critical patent/KR20110068578A/ko
Application granted granted Critical
Publication of KR101081726B1 publication Critical patent/KR101081726B1/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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator

Landscapes

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

Abstract

GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법을 개시한다. GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법은 수행된 질의를 저장하고, 질의가 방문한 말단 노드들의 엔트리들을 GPU 메모리에 저장하고, 다음 질의 수행 시 검색이 R-tree와 상기 GPU에 의해서 동시에 수행되도록 한다.
GPU, R-tree, 질의, 병렬 처리

Description

GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법{PARALLEL RANGE QUERY PROCESS METHOD ON R-TREE WITH GRAPHICS PROCESSING UNITS}
본 발명의 실시예들은 GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법에 관한 것으로, 더욱 상세하게는 GPU를 트리 형태의 색인 구조에 적용하여 범위 질의를 처리하는 방법에 관한 것이다.
GPU(Graphics Processing Units)은 CPU(Central Processing Unit)의 그래픽 처리 작업을 보조하기 위한 장치로서 고도 병렬 처리(massively parallel processing)에 적합하며, 단일 명령어의 다중의 데이터를 처리할 수 있는 구조(SIMD, Single Instruction Multiple Data)를 가지고 있어서 병렬 처리에 매우 유리한 구조를 가지고 있는 하드웨어 플랫폼이다. 예를 들어, NVIDIA의 GPU는 Tesla S1070의 경우 3.73~4.14 TFLOPS의 계산이 가능하다. 이러한 GPU의 뛰어난 계산 능력과 병렬 처리 능력 및 빠른 데이터 전송 등의 이점으로 인해서 범용 목적(General Purpose computing on Graphics Processing Units)으로 이미 다양한 분야에서 활용되고 있다.
한편 R-tree는 공간자료 데이터베이스 시스템에서 가장 널리 사용되는 자료 구조로서, B-tree에서 확장되었다. R-tree는 다차원의 자료를 관리하는데 매우 적합하며, 공간 데이터에 대한 삽입, 삭제, 검색 등의 작업을 효율적으로 수행할 수 있는 구조를 가지고 있는 색인 구조이다. R-tree에서의 검색은 root에서 말단 노드까지 재귀적으로 순회하며 수행된다. 이러한 검색은 상당히 효율적이긴 하지만 현대의 대용량화되는 데이터베이스에서는 상당한 수행 시간을 요구한다. 특히 범위 질의와 같이 여러 말단 노드들을 차례로 순회해야 하는 경우에는 더 긴 수행시간을 필요로 한다. 이러한 R-tree의 성능을 개선하기 위하여 R-tree의 병렬화에 대한 기법들이 연구되고 있다. R-tree를 병렬화하는 종래의 기법들을 단일 워크스테이션(single workstation)에서 다수의 디스크와 프로세서들을 사용하여 동시 디스크 입출력을 통하여 처리하거나 또는 워크스테이션들을 네트워크로 연결하여 사용하는 방식 등이 있다. 그러나, 이러한 종래 기법들은 다수의 디스크 또는 워크스테이션을 사용함으로써 많은 비용을 필요로 하고, 다수의 디스크에서 동시 입출력을 사용하는 것에서 알 수 있듯이 전체 데이터를 여러 디스크에 분배하는 등의 오버헤드가 존재한다. 또한 어떻게 데이터가 분포하는가에 따라서 범위 질의의 성능이 달라진다.
트리와 같은 색인 구조는 각 노드가 실제로 비교될 MBR들을 가지고 있으며, 그 노드들이 연속한 메모리 공간에 존재하지 않기 때문에 GPU의 적용이 적합하지는 않다. 왜냐하면 CPU와 GPU 사이의 저용량의 잦은 메모리 이동이 요구되기 때문이다.
본 발명의 일실시예는 GPU를 이용하여 R-tree에서의 범위 질의의 수행 속도를 개선하는 방법을 제공한다.
또한 본 발명의 일실시예는 GPU의 메모리를 버퍼로 사용하며, GPU의 프로세서들을 이용하여 검색함으로써 R-tree에서의 검색 성능을 향상시킬 수 있는 방법을 제공한다.
본 발명의 일실시예에 따른 GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법은 수행된 질의를 저장하고, 질의가 방문한 말단 노드들의 엔트리들을 GPU 메모리에 저장하는 단계와, 다음 질의 수행 시 검색이 R-tree와 상기 GPU에 의해서 동시에 수행되도록 하는 단계를 포함한다.
본 발명의 일실시예에서 질의 수행 시 Q R-tree에 질의를 먼저 수행하여 이전의 질의들과 겹치는 영역이 있는지를 검사하는 단계를 더 포함할 수 있다.
또한 본 발명의 일실시예에서 두 개의 질의가 겹침 영역을 가지고 있으면, 두 노드의 start_index와 offset을 이용하여 GPU_table에서의 첫 위치와 종료 위치를 알아내서 상기 GPU에 의해서 병렬로 검색하는 단계를 더 포함할 수 있다.
또한 본 발명의 일실시예에서 상기 GPU가 상기 GPU_table에 대하여 검색을 수행하는 동안에 R-tree에 대해서도 질의를 수행하는 단계를 더 포함할 수 있다.
또한 본 발명의 일실시예에서 상기 질의 수행 시 새롭게 방문하여 업데이트 될 말단 노드들을 leaf table에 적재하고, 상기 질의 처리가 완료된 후 업데이트하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에 따르면, GPU를 이용하여 R-tree에서의 범위 질의의 수행 속도를 개선할 수 있다.
또한 본 발명의 일실시예에 따르면, GPU의 메모리를 버퍼로 사용하며, GPU의 프로세서들을 이용하여 검색함으로써 R-tree에서의 검색 성능을 향상시킬 수 있다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
본 발명의 일실시예는 수행된 질의를 저장하고, 질의가 방문한 말단 노드들의 엔트리들을 GPU 메모리에 저장하여 다음 질의 수행 시 검색이 R-tree와 상기 GPU에 의해서 동시에 수행되도록 한다.
따라서, 질의가 요구하는 말단 노드들이 버퍼에 얼마나 존재하는가에 따라 성능의 향상 정도가 결정된다.
GPU는 뛰어난 계산 능력과 메모리 전송 속도를 가지며, 이러한 GPU를 R-tree의 범위 질의 처리에 적용할 경우 계산의 수행속도 증가를 가져올 수 있으나 우선 GPU의 적용에 의한 여러 오버헤드들을 고려해야 한다. GPU에 의한 주된 오버헤드 는 CPU와 GPU 사이의 메모리 교환과 CPU가 계산을 수행할 때의 메모리 접근 등에서 발생한다. 특히 메모리 교환에 의해서 발생하는 오버헤드가 상대적으로 크다.
도 1은 CPU와 GPU 사이의 메모리 교환 시 소모되는 시간을 메모리 양을 증가시키면서 실험한 결과를 나타내는 도면이다.
도 1을 참조하면, 교환하는 용량에 의하여 시간이 증가하며, CPU에서 GPU로의 메모리 이동보다 GPU에서 CPU로의 메모리 이동이 대략 2, 3배 이상의 시간을 소모하는 것을 파악할 수 있다.
메모리 접근에 의한 오버헤드를 최소화하기 위하여 접근 회수를 최소화하고, coalesced access 횟수를 최대화함으로써 오버헤드를 최소화할 수 있다. GPU의 수행시간은 global 메모리 접근 시간을 포함하고 있기 때문에 적은 수의 MBR을 비교하는 경우 CPU보다 더 오랜 수행 시간을 필요로 할 수도 있다.
도 2는 CPU와 GPU가 MBR을 질의의 범위와 비교하는 시간을 각각 측정한 결과를 나타내는 도면이다.
도 2를 참조하면, T개 이하의 MBR을 비교하는데 필요로 하는 시간은 오히려 CPU보다 크다는 것을 알 수 있다. 비교하는 MBR의 수가 T개를 초과하면서 성능이 역전되기 시작하며, MBR의 개수가 증가할수록 뚜렷한 증가를 볼 수 있다. 상기 T는 대략 1500정도로 측정되었으나 실험 환경에 따라서 달라질 수 있다.
따라서, GPU를 이용하기 위한 오버헤드를 최소화하기 위해서는 질의의 선택도를 T 이상으로 적절히 선택하고, GPU와 CPU 사이의 메모리 교환 횟수 및 용량을 최소화해야 한다.
트리와 같은 계층 구조를 가진 색인 구조는 GPU에 적용되기에 불리한 구조를 가지고 있다. 범위 질의 처리에서 실제로 비교되는 MBR들은 각 노드에 분할되어 저장되어 있으며, 서로 연속하지 않는 메모리 공간에 존재하기 때문에 매 노드마다 GPU와의 메모리 교환이 빈번히 이루어져야 하기 때문이다. 또한 이는 한번에 접근 가능한 메모리의 용량을 제한시킴으로써 GPU에서의 메모리 동시 접근(coalesced memory access) 횟수를 감소시키고, GPU의 프로세서들의 메모리 접근에서의 오버헤드를 증가시켜 전체 성능을 저하시키는 원인이 된다.
이러한 오버헤드를 해결하기 위하여 본 발명에 따른 GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법은 버퍼형태의 알고리즘을 통해 수행될 수 있다.
도 3은 본 발명의 일실시예에 따른 GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법을 구현하기 위한 전체 구조를 나타내는 도면이다.
도 3을 참조하면, CPU(300)는 질의를 저장하는 메모리 기반의 Q R-tree(301), 실제 데이터를 가지고 있는 R-tree(302)와 말단 노드의 id를 저장하는 leaf table(303)을 포함한다. GPU(310)는 Global Memory(311)를 버퍼로 사용하는 버퍼 알고리즘으로 구성된다. 질의가 수행되면서 새롭게 방문한 말단 노드들의 엔트리들은 버퍼에 저장되며, 말단 노드의 id는 leaf table(303)에 저장된다. leaf table(303)을 통하여 질의가 수행될 때 디스크 접근의 여부가 결정된다.
도 4는 R-tree의 일례를 나타내는 도면이다.
도 4를 참조하면, 질의에 대해서 말단 노드 135, 240, 257을 방문해야 한다. 질의가 수행되면서 방문하는 leaf 노드들은 우선 leaf table에서 먼저 검색된다.
도 5는 leaf table의 일례를 나타내는 도면이다.
도 5를 참조하면, 257번 노드를 제외한 나머지 노드들은 leaf table에 이미 존재하고 있다. CPU(300)은 135번 노드와 240번 노드에 대한 디스크 접근 및 MBR 비교 작업을 수행하지 않는다. 이렇게 함으로써 GPU(310)과 CPU(300) 사이의 메모리 교환에 의한 오버헤드를 사용자에게 숨길 수 있다. Q R-tree(301)는 이전에 수행된 질의를 저장하기 위한 R-tree이며, Q R-tree(301)의 노드는 start_index와 offset의 두 엔트리를 추가로 가지고 있다. 질의 수행 시 새롭게 방문한 leaf 노드의 엔트리들을 GPU(310)에 적재하게 되는데 start_index는 그 첫 위치를 의미하며, offset은 질의 수행에 의해 적재된 MBR들의 총 수를 의미한다. GPU_table(312)은 GPU(310)의 global memory(311) 영역에 존재하며, 2차원 배열의 형태를 가지며, 입력 MBR들을 저장하며, GPU(310)에 의해 병렬로 검색이 이루어진다.
본 발명의 일실시예에 따른 범위 질의의 병렬 처리 방법의 전체 알고리즘은 표 1에 기재된 것과 같다.
[표 1]
Algorithm for RangeQuery
Begin
1 Start_point = 0; offset = 0;
2 Q_Rtree_Search(query, start_point, offset );
3 If Q_Rtree is overlap with query range
4 IsOverlap = true;
5 SearchOnGPU( query, start_point, offset );
6 RangeQuery_On_R_tree( query );
7 If IsOverlap is true
8 Get result back from GPU;
9 Update GPU_table;
End
질의의 수행 시 우선 Q R-tree(301)에 질의를 먼저 수행하여 이전의 질의들과 겹치는 영역이 있는지를 검사한다. 표 2는 Q R-tree 검색 알고리즘이다.
[표 2]
Algorithm for Q_Rtree_Search
Begin
1 If n is not leaf
2 for I = 1 to n->count
3 If n->child[i] is overlap with query
4 Q_Rtree_Search(n->child[i], q, s, o);
5 end for
6 else
7 for i = 1 to n->count
8 if n->child[i] is overlap
9 if s > n->child[i].start_index
10 s = n->child[i].start_index;
11 if o < n->child[i].end_index
12 o = n->child[i].end_index;
13 end for
End
도 6은 본 발명의 일실시예에 따른 범위 질의 처리의 일례를 나타내는 도면이다.
도 6을 참조하면, A와 B와 같이 두 개의 질의가 겹침 영역을 가지고 있다면, 두 노드의 start_index와 offset을 이용하여 GPU_table(312)에서의 첫 위치(start_point)와 종료 위치를 알아내고, GPU(310)에 의해서 병렬로 검색되도록 한다. GPU(310)가 GPU_table(312)에 대하여 검색을 수행하는 동안에 R-tree(302)에서도 질의를 수행하며, 표 3에 기재된 알고리즘이 수행될 수 있다. 질의 수행 시 새롭게 방문하여 업데이트될 말단 노드들을 leaf table(303)에 적재하고, 질의 처리가 완료된 후에 업데이트한다.
[표 3]
Algorithm for RangeQuery_On_R_tree
Begin
1 If root is overlap with query
2 stack.push(root);
3 while stack is not empty
4 n = stack.top(); stack.pop();
5 if n is leaf
6 for i = 1 to n->count
7 save n->child[i]
8 if n->child[i] is overlap
9 visit n->child[i]
10 end for
11 else
12 for i = 1 to n->count
13 if n->child[i] is overlap
14 && n->cid[i] is not on leaf_table
15 if n->level is 1
16 add n->cid[i] to leaf_table
17 stack.push(readNode(n->cid[i]))
18 end for
19 end while
End
GPU_table(312)의 업데이트가 필요한 경우는 다음과 같은 두 가지 경우이다.
(1) GPU_table(312)이 가득 차서 더 이상의 업로드가 불가능한 경우
(2) GPU_table(312)에 적재된 노드에 add, delete, split, merge 등의 변형이 가해진 경우
상기 업데이트는 변형이 가해진 노드 또는 추가되는 노드의 MBR을 이용하여 Q R-tree(301)에서 질의를 수행함으로써 적절한 처리가 가능하다.
(1)의 경우 Q R-tree(301)와 leaf table(303)에서 특정 에트리와 그에 상응하는 부분에 대한 제거 작업이 필요하다. 어떤 부분을 제거할 것인지를 결정하는 것은 수행되는 부분의 질의의 분포 등에 의해 달라질 수 있다. 본 발명의 일실시예에서는 스큐드 쿼리 셋(skewed query set)을 사용하여 추가될 질의로부터 가장 멀리 위치한 에트리와 교환하는 방식을 사용할 수 있다. 이것은 GPU_table(312)에 서의 검색 범위를 넓게 하지만 가장 안정적으로 GPU_hit을 증가시킬 수 있는 방법이다.
(2)의 경우 가장 비용이 적게 되는 방법은 실제 변경된 노드를 포함하는 질의를 찾아서 Q R-tree(301), GPU_table(312) 및 leaf table(303)에서 노드를 제거하는 것이다. 이 방법은 GPU(310)의 메모리에 대한 접근을 가장 적게 한다.
본 발명에서 GPU를 사용한 경우의 성능 개선은 디스크 엑세스 횟수와 MBR의 비교 작업을 줄임으로써 얻을 수 있다. 본 발명에서 성능 개선의 정도를 관찰하기 위해 일정한 선택도를 유지하도록 하고, GPU hit를 증가시키면서 전체 성능의 개선 정도를 관찰할 수 있다. R-tree(302)에서 범위 질의를 수행하는 경우와 비교하기 위해서 질의의 수행 시간을 측정한다. GPU(310)와 버퍼 알고리즘을 적용한 경우의 수행 시간은 Q R-tree(301)에서 strat_point와 offset을 알아내는 시간과 R-tree(302)에서 질의를 수행하는 시간, CPU(300)가 GPU_table(312)을 검색하기 위한 GPU 커널함수를 런칭하는 시간 및 검색 결과를 GPU(310)에서 가져오는 시간을 포함한다.
도 7은 유니폼 분포를 가지고 있는 데이터 셋을 통한 실험 결과를 나타내는 도면이고, 도 8은 스큐드 분포를 가지고 있는 데이터 셋을 통한 실험 결과를 나타내는 도면이고, 도 9는 가우스 분포를 가지고 있는 데이터 셋을 통한 실험 결과를 나타내는 도면이다.
도 7 내지 도 9를 참조하면, 각각 유니폼, 스큐드, 가우스 분포를 가지고 있는 데이터 셋을 통하여 실험한 결과는 모두, 전체 히트 수의 10%를 CPU hit가 차지 하는 비율이 증가할수록 성능 향상의 정도가 더욱 커지는 것을 관찰할 수 있다.
이와 같이, GPU 응용에서의 성능 향상은 GPU와 CPU 사이의 메모리 교환과, GPU의 메모리 접근에 의해 발생하는 오버헤드의 처리에 따라 결정된다. 본 발명에서는 R-tree에서의 범위 질의에 대한 GPU 응용에서 발생하는 오버헤드를 처리하기 위한 방법을 제시한다.
따라서, 본 발명에 따른 GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법은 R-tree의 디스크 접근 횟수 및 MBR의 비교 시간을 줄이고, 오버헤드를 최소화하여 R-tree의 범위 질의 처리 성능을 향상시킬 수 있다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
도 1은 CPU와 GPU 사이의 메모리 교환 시 소모되는 시간을 메모리 양을 증가시키면서 실험한 결과를 나타내는 도면이다.
도 2는 CPU와 GPU가 MBR을 질의의 범위와 비교하는 시간을 각각 측정한 결과를 나타내는 도면이다.
도 3은 본 발명의 일실시예에 따른 GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법을 구현하기 위한 전체 구조를 나타내는 도면이다.
도 4는 R-tree의 일례를 나타내는 도면이다.
도 5는 leaf table의 일례를 나타내는 도면이다.
도 6은 질의 처리의 일례를 나타내는 도면이다.
도 7은 유니폼 분포를 가지고 있는 데이터 셋을 통한 실험 결과를 나타내는 도면이다.
도 8은 스큐드 분포를 가지고 있는 데이터 셋을 통한 실험 결과를 나타내는 도면이다.
도 9는 가우스 분포를 가지고 있는 데이터 셋을 통한 실험 결과를 나타내는 도면이다.

Claims (5)

  1. 수행된 질의를 저장하고, 질의가 방문한 말단 노드들의 엔트리들을 GPU 메모리에 저장하는 단계;
    다음 질의 수행 시 검색이 R-tree와 상기 GPU에 의해서 동시에 수행되도록 하는 단계
    를 포함하는, GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법.
  2. 제1항에 있어서,
    질의 수행 시 Q R-tree에 질의를 먼저 수행하여 이전의 질의들과 겹치는 영역이 있는지를 검사하는 단계를 더 포함하는, GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법.
  3. 제2항에 있어서,
    두 개의 질의가 겹침 영역을 가지고 있으면, 두 노드의 start_index와 offset을 이용하여 GPU_table에서의 첫 위치와 종료 위치를 알아내서 상기 GPU에 의해서 병렬로 검색하는 단계를 더 포함하는, GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법.
  4. 제3항에 있어서,
    상기 GPU가 상기 GPU_table에 대하여 검색을 수행하는 동안에 R-tree에 대해서도 질의를 수행하는 단계를 더 포함하는, GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법.
  5. 제4항에 있어서,
    상기 질의 수행 시 새롭게 방문하여 업데이트될 말단 노드들을 leaf table에 적재하고, 상기 질의 처리가 완료된 후 업데이트하는 단계를 더 포함하는, GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법.
KR1020090125595A 2009-12-16 2009-12-16 GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법 KR101081726B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090125595A KR101081726B1 (ko) 2009-12-16 2009-12-16 GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090125595A KR101081726B1 (ko) 2009-12-16 2009-12-16 GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법

Publications (2)

Publication Number Publication Date
KR20110068578A true KR20110068578A (ko) 2011-06-22
KR101081726B1 KR101081726B1 (ko) 2011-11-08

Family

ID=44400800

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090125595A KR101081726B1 (ko) 2009-12-16 2009-12-16 GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법

Country Status (1)

Country Link
KR (1) KR101081726B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101141183B1 (ko) * 2011-12-26 2012-05-04 케이씨씨시큐리티주식회사 Gpu를 이용한 보안로그 및 이벤트의 분산처리 및 고속 필터링 시스템 및 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101393864B1 (ko) * 2012-10-17 2014-05-12 인하대학교 산학협력단 질의 영역과 노드 간의 포함 관계를 이용한 r-트리 계열의 계층형 색인 구조의 범위질의 병렬 가속화 방법
KR101382945B1 (ko) * 2012-10-17 2014-04-09 인하대학교 산학협력단 Gpu 병렬 검색을 통한 r-트리 계열의 계층형 색인 구조의 범위 질의 가속화 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7598953B2 (en) 2004-11-05 2009-10-06 Microsoft Corporation Interpreter for simplified programming of graphics processor units in general purpose programming languages

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101141183B1 (ko) * 2011-12-26 2012-05-04 케이씨씨시큐리티주식회사 Gpu를 이용한 보안로그 및 이벤트의 분산처리 및 고속 필터링 시스템 및 방법

Also Published As

Publication number Publication date
KR101081726B1 (ko) 2011-11-08

Similar Documents

Publication Publication Date Title
Huang et al. X-Engine: An optimized storage engine for large-scale E-commerce transaction processing
EP2885728B1 (en) Hardware implementation of the aggregation/group by operation: hash-table method
US10810179B2 (en) Distributed graph database
CN110083601B (zh) 面向键值存储系统的索引树构建方法及系统
Leis et al. The adaptive radix tree: ARTful indexing for main-memory databases
US6711562B1 (en) Cache sensitive search (CSS) tree indexing system and method
US8285709B2 (en) High-concurrency query operator and method
US9495398B2 (en) Index for hybrid database
RU2667385C2 (ru) Параллельная сортировка слиянием
Li et al. {ROLEX}: A Scalable {RDMA-oriented} Learned {Key-Value} Store for Disaggregated Memory Systems
Botelho et al. Minimal perfect hashing: A competitive method for indexing internal memory
EP2701077A1 (en) Method and system for storing tabular data in a memory-efficient manner
KR101081726B1 (ko) GPU를 이용한 R-tree에서의 범위 질의의 병렬 처리 방법
Zhang et al. Exploiting data skew for improved query performance
US11176631B1 (en) GPU-based parallel indexing for concurrent spatial query
Ross et al. Cost-based unbalanced R-trees
Dong et al. Cache system for frequently updated data in the cloud
Luan et al. Prefetching j+-tree: a cache-optimized main memory database index structure
Lewis et al. G-PICS: A framework for GPU-based spatial indexing and query processing
Otoo et al. Chunked extendible dense arrays for scientific data storage
Zhang et al. Eunomia: Scaling concurrent index structures under contention using HTM
Qin et al. Dot-product join: An array-relation join operator for big model analytics
Huang et al. Rethinking insertions to B+-trees on coupled CPU-GPU architectures
Shen et al. Using vectorized execution to improve SQL query performance on spark
KR100921683B1 (ko) 키-값 데이터 모델을 위한 메모리 페이지 내 데이터저장방법

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151001

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161024

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171103

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181025

Year of fee payment: 8