KR102628592B1 - 대량의 dbms 태스크 연산 기반 오프로딩 스니펫 스케줄링 방법 - Google Patents

대량의 dbms 태스크 연산 기반 오프로딩 스니펫 스케줄링 방법 Download PDF

Info

Publication number
KR102628592B1
KR102628592B1 KR1020210156264A KR20210156264A KR102628592B1 KR 102628592 B1 KR102628592 B1 KR 102628592B1 KR 1020210156264 A KR1020210156264 A KR 1020210156264A KR 20210156264 A KR20210156264 A KR 20210156264A KR 102628592 B1 KR102628592 B1 KR 102628592B1
Authority
KR
South Korea
Prior art keywords
offloading
dbms
query
code
storage
Prior art date
Application number
KR1020210156264A
Other languages
English (en)
Other versions
KR20230070567A (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 KR1020210156264A priority Critical patent/KR102628592B1/ko
Priority to US17/985,994 priority patent/US20230153317A1/en
Publication of KR20230070567A publication Critical patent/KR20230070567A/ko
Application granted granted Critical
Publication of KR102628592B1 publication Critical patent/KR102628592B1/ko

Links

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
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24545Selectivity estimation or determination
    • 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/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

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

Abstract

대량의 DBMS 태스크 연산 기반 오프로딩 스니펫 스케줄링 방법이 제공된다. 본 발명의 실시예에 따른 DB 스케줄링 방법은, DBMS가 클라이언트로부터 쿼리 실행 요청을 수신하면, 쿼리 연산 일부에 대한 오프로딩 여부를 결정하고, 오프로딩을 결정하면 DBMS가 수신된 쿼리를 기초로 일부 쿼리 연산 오프로딩을 위한 코드인 오프로딩 코드를 생성하며, DB가 구축된 다수의 스토리지들 중 하나를 선정하여 오프로딩 코드를 전달한다. 이에 의해, 동시 다발적으로 발생하게 될 스니펫을 CSD들에 스케줄링하여 줌으로써, 자원의 균등한 활용이 가능하고, 쿼리 실행 시간을 단축시킬 수 있으며, 데이터 처리 신뢰성을 향상시킬 수 있게 된다.

Description

대량의 DBMS 태스크 연산 기반 오프로딩 스니펫 스케줄링 방법{Method for scheduling offloading snippets based on large amount of DBMS task computation}
본 발명은 DB 처리 기술에 관한 것으로, 더욱 상세하게는 DBMS와 DB가 구축된 스토리지가 분리되어 있는 환경에서 클라이언트의 쿼리 실행 요청을 지연 없이 처리하는 방법에 관한 것이다.
쿼리 실행 과정에서, DBMS(DataBase Management System)는 DB에서 쿼리를 스캔하여 데이터들을 획득하고, 획득한 데이터들을 필터링하여, 필터링된 데이터만을 클라이언트에게 반환한다.
하지만, DB에서 스캔할 데이터가 많은 경우에는 DB가 구축된 스토리지에서 DBMS로 전달되는 데이터량이 많으므로, 대역폭이 부족해져 전체적인 응답 속도가 줄어들게 되고, 전력 소모도 많아진다는 문제가 있다.
이에 대한 대안으로 DB의 스토리지를 CSD(Computational Storage Drive)로 구현하여, 일부 쿼리 연산을 스토리지에서 수행하도록 할 수 있다. 하지만 아직까지 이를 위한 구체적인 방법에 대해서는 제시된 바 없다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, CSD를 이용하는 DB 시스템에서 일부 쿼리 연산을 오프로딩하기 위한 스니펫을 정의하고, 동시 다발적으로 발생하게 될 스니펫을 CSD들에 스케줄링하여 주는 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, DB 스케줄링 방법은, DBMS가, 클라이언트로부터 쿼리 실행 요청을 수신하는 단계; DBMS가, 쿼리 연산 일부에 대한 오프로딩 여부를 결정하는 단계; 오프로딩을 결정하면, DBMS가 수신된 쿼리를 기초로 일부 쿼리 연산 오프로딩을 위한 코드인 오프로딩 코드를 생성하는 단계; DBMS가, DB가 구축된 다수의 스토리지들 중 하나를 선정하는 제1 선정단계; 및 DBMS가, 제1 선정단계에서 선정된 스토리지에 오프로딩 코드를 전달하는 단계;를 포함한다.
결정 단계는, 쿼리 연산을 DBMS가 전부 처리하는 것과 쿼리 연산 중 일부를 스토리지가 처리하고 나머지를 DBMS가 처리하는 것 중 어느 것이 적합한지 판단하여 결정할 수 있다.
결정 단계는, DBMS와 스토리지 간에 데이터 전송량이 많은 경우에는, 일부 쿼리 연산에 대한 오프로딩을 결정할 수 있다.
제1 선정단계는, 스토리지들의 자원 상태를 모니터링하여, 유휴 자원이 가장 많은 스토리지를 선정할 수 있다.
본 발명의 실시예에 따른 DB 스케줄링 방법은, 오프로딩 코드를 수신한 스토리지가, 다수의 CSD(Computational Storage Drive)들 중 하나를 선정하는 제2 선정단계; 스토리지가, 제2 선정단계에서 선정된 CSD에 수신된 오프로딩 코드를 전달하는 단계;를 더 포함할 수 있다.
제2 선정단계는, CSD들의 자원 상태를 모니터링하여, 유휴 자원이 가장 많은 CSD를 선정할 수 있다.
오프로딩 코드는, 스니펫으로 작성되며, 파싱된 쿼리와 BufferAddress를 포함하고, BufferAddress는 오프로딩 코드에 의한 일부 쿼리 연산 수행 결과를 저장할 버퍼의 주소일 수 있다.
버퍼는, DBMS에 마련되어 있을 수 있다. DBMS와 스토리지들은, 분리되어 있는 구조일 수 있다.
한편, 본 발명의 다른 실시예에 따른, DB 시스템은, DB가 구축된 다수의 스토리지들; 및 클라이언트로부터 쿼리 실행 요청을 수신하면 쿼리 연산 일부에 대한 오프로딩 여부를 결정하고, 오프로딩을 결정하면 수신된 쿼리를 기초로 일부 쿼리 연산 오프로딩을 위한 코드인 오프로딩 코드를 생성하며, 다수의 스토리지들 중 하나를 선정하여 오프로딩 코드를 전달하는 DBMS;를 포함한다.
한편, 본 발명의 다른 실시예에 따른, DB 스케줄링 방법은, DBMS가, 클라이언트로부터 수신한 쿼리를 기초로 쿼리 연산 오프로딩을 위한 코드인 오프로딩 코드를 생성하는 단계; DBMS가, DB가 구축된 다수의 스토리지들 중 하나를 선정하는 제1 선정단계; 및 DBMS가, 제1 선정단계에서 선정된 스토리지에 오프로딩 코드를 전달하는 단계;를 포함한다.
한편, 본 발명의 다른 실시예에 따른, DB 시스템은, DB가 구축된 다수의 스토리지들; 및 클라이언트로부터 수신한 쿼리를 기초로 쿼리 연산 오프로딩을 위한 코드인 오프로딩 코드를 생성하고, 다수의 스토리지들 중 하나를 선정하여 오프로딩 코드를 전달하는 DBMS;를 포함한다.
이상 설명한 바와 같이, 본 발명의 실시예들에 따르면, CSD를 이용하는 DB 시스템에서 일부 쿼리 연산을 오프로딩하기 위한 스니펫을 정의하고, 동시 다발적으로 발생하게 될 스니펫을 CSD들에 스케줄링하여 줌으로써, CSD 자원의 균등한 활용이 가능하고, 쿼리 실행 시간을 단축시킬 수 있으며, 데이터 처리 신뢰성을 향상시킬 수 있게 된다.
도 1은 본 발명이 일 실시예에 따른 DB 시스템을 도시한 도면,
도 2는, 도 1에 도시된 DBMS의 구조를 도시한 도면,
도 3은 쿼리 연산 오프로딩 스니펫의 구조를 나타낸 도면,
도 4는 쿼리 연산 오프로딩 스니펫 전달 과정의 설명에 제공되는 도면,
도 5는, 도 1에 도시된 스토리지 노드의 구조를 도시한 도면, 그리고,
도 6은 본 발명의 다른 실시예에 따른 쿼리 연산 오프로딩 스니펫 스케줄링 방법의 설명에 제공되는 도면이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
본 발명의 실시예에서는, CSD(Computational Storage Drive)를 이용하는 DB 시스템에서 일부 쿼리 연산을 CSD로 오프로딩(푸시다운) 하기 위한 스니펫을 정의하고, CSD의 자원 상태를 고려하여 스니펫을 스케줄링하는 방법을 제시한다.
도 1은 본 발명이 일 실시예에 따른 DB 시스템을 도시한 도면이다. 본 발명의 실시예에 따른 DB 시스템은, 도시된 바와 같이, DBMS(DataBase Management System)(100)와 다수의 스토리지 노드들(200-1, 200-2, ..., 200-n)이 구분되어 있는 구조이다.
스토리지 노드들(200-1, 200-2, ..., 200-n)은 동일한 DB가 구축되어 있는 스토리지 시스템들을 말한다. 동시 다발적으로 요청되는 수많은 쿼리들을 처리하여야 하므로, 스토리지 노드들(200-1, 200-2, ..., 200-n)을 다수로 구현한 것이다.
나아가 스토리지 노드들(200-1, 200-2, ..., 200-n)은 연산 기능을 포함하고 있어, 쿼리 연산의 일부를 수행할 수도 있다.
DBMS(100)는 클라이언트(미도시)의 요청에 따라 쿼리를 실행하여 결과를 반환하여 주는 시스템이다. 쿼리 연산은 DBMS(100)가 전부 수행할 수 있지만, 일부를 스토리지 노드(200-1, 200-2, ..., 200-n)에 오프로딩할 수도 있다.
도 2는, 도 1에 도시된 DBMS(100)의 구조를 도시한 도면이다. 도시된 바와 같이, DBMS(100)는 쿼리 엔진(110)과 스토리지 엔진(120) 및 노드 스케줄러(130)를 포함하여 구성된다.
쿼리 엔진(110)은 클라이언트로부터 쿼리 실행 요청을 수신하면, 수신한 쿼리를 최적화하여 스토리지 엔진(120)으로 전달한다.
스토리지 엔진(120)은 쿼리 연산 오프로딩 여부를 결정한다. 쿼리 연산 오프로딩은 쿼리 연산 중 일부를 스토리지 노드(200-1, 200-2, ..., 200-n)에 오프로딩하는 것을 의미한다. 일부 쿼리 연산에는 쿼리 스캔, 필터링 및 유효성 검사 등이 포함될 수 있다.
스토리지 엔진(120)은 쿼리를 기초로 쿼리 연산 오프로딩 스니펫을 생성하고, 생성한 쿼리 연산 오프로딩 스니펫을 노드 스케줄러(130)로 전달한다.
스토리지 엔진(120)에 의해 생성되는 쿼리 연산 오프로딩 스니펫은 일부 쿼리 연산을 스토리지 노드로 오프로딩하기 위한 소스 코드로, 상세 구조를 도 3에 도시하였다.
도시된 바와 같이, 쿼리 연산 오프로딩 스니펫은, ParsedQuery, TableSchema, BlockOffset 및 BufferAddress를 포함하고 있다. BufferAddress는 쿼리 연산 오프로딩 스니펫에 따른 일부 쿼리 연산 수행 결과를 저장할 버퍼(미도시)의 주소를 말한다. 이 버퍼는 스토리지 엔진(120)에 마련되어 있다.
노드 스케줄러(130)는 스토리지 엔진(120)에 의해 생성된 쿼리 연산 오프로딩 스니펫을 스토리지 노드(200-1, 200-2, ..., 200-n)로 전달한다. 이 과정은 도 4에 도시되어 있다.
도시된 바와 같이, 스토리지 엔진(120)으로부터 쿼리 연산 오프로딩 스니펫이 입력되면, 노드 스케줄러(130)의 Snippet Validator는 쿼리 연산 오프로딩 스니펫의 유효성을 검사한다(①).
그리고, 노드 스케줄러(130)의 Node Data Manager는 쿼리 연산 오프로딩 스니펫을 수행하여야 하는 DB 테이블을 확인하고(②), 노드 스케줄러(130)의 API Manager는 노드 스케줄러(130)의 Scheduler Manager에게 쿼리 연산 오프로딩 스니펫의 스케줄링을 요청한다(③).
이에, 노드 스케줄러(130)의 Scheduler Manager는 스토리지 노드들(200-1, 200-2, ..., 200-n) 중 하나를 선정하여 쿼리 연산 오프로딩 스니펫을 전달한다(④).
도 5는, 도 1에 도시된 스토리지 노드들(200-1, 200-2, ..., 200-n)의 구조를 도시한 도면이다. 스토리지 노드들(200-1, 200-2, ..., 200-n)은 동일하게 구현 가능하므로, 도 5에는 참조 부호 "200"으로 대표하여 하나의 스토리지 노드(200)만을 도시하였다.
스토리지 노드(200)는 도시된 바와 같이, 스토리지 I/O 인터페이스(210), CSD 스케줄러(220) 및 다수의 CSD들(230-1, 230-2, 230-3)을 포함하여 구성된다.
스토리지 I/O 인터페이스(210)는 DBMS(100)와의 통신을 위한 인터페이스이다. CSD들(230-1, 230-2, 230-3)은 DB를 저장하기 위한 스토리지 자원을 포함하고 있는 한편, 일부 쿼리 연산을 수행하기 위한 CPU 자원(도 5에서 CSD Runtime)도 포함하고 있다.
CSD 스케줄러(220)는 스토리지 I/O 인터페이스(210)를 통해 DBMS(100)의 노드 스케줄러(130)로부터 쿼리 연산 오프로딩 스니펫이 전달되면, CSD들(230-1, 230-2, 230-3) 중 하나를 선정하여 쿼리 연산 오프로딩 스니펫을 전달한다.
도 6은 본 발명의 다른 실시예에 따른 쿼리 연산 오프로딩 스니펫 스케줄링 방법의 설명에 제공되는 도면이다.
DBMS(100)의 쿼리 엔진(110)은 클라이언트(미도시)로부터 쿼리 실행 요청을 수신하면(①), 쿼리 엔진(110)의 Optimzer가 수신한 쿼리를 최적화하여(②), 스토리지 엔진(120)으로 전달한다(③).
그러면, 스토리지 엔진(120)의 Table Manager가 쿼리 연산 오프로딩 여부를 결정하고, 오프로딩 결정시에는 쿼리를 기초로 쿼리 연산 오프로딩 스니펫을 생성한다(④).
쿼리 연산 오프로딩 여부는, 쿼리 연산 전부를 쿼리 엔진(110)이 실행하는 것이 적합한지, 아니면 쿼리 연산 일부는 스토리지 노드(200-1, 200-2, ..., 200-n)가 실행하고 나머지 쿼리 연산만 쿼리 엔진(110)이 실행하는 것이 적합한지 판단하여 결정한다.
쿼리 실행에 있어, DBMS(100)와 스토리지 노드(200-1, 200-2, ..., 200-n) 간에 데이터 전송량이 많은 경우에는, 이를 테면, 스캔할 데이터가 많은 경우에는, 쿼리 연산 오프로딩이 적합하지만, 그렇지 않다면 쿼리 연산 오프로딩이 부적절할 수 있다.
여기서는 "④"에서 쿼리 연산 오프로딩을 결정하여 쿼리 연산 오프로딩 스니펫을 생성한 것을 상정한다.
노드 스케줄러(130)는 스토리지 노드들(200-1, 200-2, ..., 200-n) 중 하나를 선정하여, 쿼리 연산 오프로딩 스니펫을 전달한다(⑤).
여기서, 노드 스케줄러(130)는 스토리지 노드들(200-1, 200-2, ..., 200-n)의 자원 상태(CPU 코어, 메모리)를 모니터링하여, 유휴 자원이 가장 많은 스토리지 노드를 선정할 수 있다. 자원 균등 활용, 쿼리 연산 시간 단축, 데이터 처리 신뢰성 향상을 위함이다.
쿼리 연산 오프로딩 스니펫을 수신한 스토리지 노드의 CSD 스케줄러(220)는 자신이 보유하고 있는 다수의 CSD들(230-1, 230-2, 230-3) 중 하나를 선정하여, 쿼리 연산 오프로딩 스니펫을 전달한다(⑥).
여기서, CSD 스케줄러(220)는 CSD들(230-1, 230-2, 230-3)의 자원 상태(CPU 코어, 메모리)를 모니터링하여, 유휴 자원이 가장 많은 CSD를 선정할 수 있다. 자원 균등 활용, 쿼리 연산 시간 단축, 데이터 처리 신뢰성 향상을 위함이다.
이후, 선정된 CSD가 쿼리 연산 오프로딩 스니펫을 전달받아, 쿼리 연산 일부를 수행하고, 그 결과를 스토리지 엔진(120)의 버퍼에 반환한다. 반환할 버퍼의 주소는 쿼리 연산 오프로딩 스니펫에 지시되어 있다.
지금까지, CSD를 이용하는 DB 시스템에서 일부 쿼리 연산을 CSD로 오프로딩하기 위한 스니펫을 정의하고, CSD의 자원 상태를 고려하여 스니펫을 스케줄링하는 방법에 대해 바람직한 실시예를 들어 상세히 설명하였다.
구체적으로, 본 발명의 실시예에서는, DBMS와 스토리지가 분리(Disaggregation)되어 있는 Cloud-Native 환경에서 스토리지를 CSD로 구현하는 경우, 일부 쿼리 연산을 DBMS에서 스토리지로 오프로딩하기 위한 구조체로 쿼리 연산 오프로딩 스니펫을 제시하였다.
또한, 본 발명의 실시예에서는, 대량의 쿼리로 인해 동시 다발적으로 발생되는 연산 오프로딩 스니펫들을 CSD의 자원 상태를 기초로 스케줄링함으로써, 균등한 자원 활용, 응답 시간 단축 및 데이터 처리에 대한 신뢰성 향상이 가능해지도록 하였다.
한편, 본 실시예에 따른 장치와 방법의 기능을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다. 예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크, 하드 디스크 드라이브, 등이 될 수 있음은 물론이다. 또한, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터로 읽을 수 있는 코드 또는 프로그램은 컴퓨터간에 연결된 네트워크를 통해 전송될 수도 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : DBMS(DataBase Management System)
110 : 쿼리 엔진
120 : 스토리지 엔진
130 : 노드 스케줄러
200, 200-1, 200-2, ..., 200-n : 스토리지 노드
210 : 스토리지 I/O 인터페이스
220 : CSD 스케줄러
230, 230-1, 230-2, 230-3 : CSD(Computational Storage Drive)

Claims (12)

  1. DBMS(DataBase Management System)가, 클라이언트로부터 쿼리 실행 요청을 수신하는 단계;
    DBMS가, 쿼리 연산 일부에 대한 오프로딩 여부를 결정하는 단계;
    오프로딩을 결정하면, DBMS가 수신된 쿼리를 기초로 일부 쿼리 연산 오프로딩을 위한 코드인 오프로딩 코드를 생성하는 단계;
    DBMS가, DB(DataBase)가 구축된 다수의 스토리지들 중 하나를 선정하는 제1 선정단계;
    DBMS가, 제1 선정단계에서 선정된 스토리지에 오프로딩 코드를 전달하는 단계;
    오프로딩 코드를 수신한 스토리지가, 다수의 CSD(Computational Storage Drive)들 중 하나를 선정하는 제2 선정단계; 및
    스토리지가, 제2 선정단계에서 선정된 CSD에 수신된 오프로딩 코드를 전달하는 단계;를 포함하는 것을 특징으로 하는 DB 스케줄링 방법.
  2. 청구항 1에 있어서,
    결정 단계는,
    쿼리 연산을 DBMS가 전부 처리하는 것과 쿼리 연산 중 일부를 스토리지가 처리하고 나머지를 DBMS가 처리하는 것 중 어느 것이 적합한지 판단하여 결정하는 것을 특징으로 하는 DB 스케줄링 방법.
  3. 청구항 2에 있어서,
    결정 단계는,
    DBMS와 스토리지 간에 데이터 전송량이 많은 경우에는, 일부 쿼리 연산에 대한 오프로딩을 결정하는 것을 특징으로 하는 DB 스케줄링 방법.
  4. 청구항 1에 있어서,
    제1 선정단계는,
    스토리지들의 자원 상태를 모니터링하여, 유휴 자원이 가장 많은 스토리지를 선정하는 것을 특징으로 하는 DB 스케줄링 방법.
  5. 삭제
  6. 청구항 1에 있어서,
    제2 선정단계는,
    CSD들의 자원 상태를 모니터링하여, 유휴 자원이 가장 많은 CSD를 선정하는 것을 특징으로 하는 DB 스케줄링 방법.
  7. DBMS(DataBase Management System)가, 클라이언트로부터 쿼리 실행 요청을 수신하는 단계;
    DBMS가, 쿼리 연산 일부에 대한 오프로딩 여부를 결정하는 단계;
    오프로딩을 결정하면, DBMS가 수신된 쿼리를 기초로 일부 쿼리 연산 오프로딩을 위한 코드인 오프로딩 코드를 생성하는 단계;
    DBMS가, DB(DataBase)가 구축된 다수의 스토리지들 중 하나를 선정하는 제1 선정단계; 및
    DBMS가, 제1 선정단계에서 선정된 스토리지에 오프로딩 코드를 전달하는 단계;를 포함하고,
    오프로딩 코드는,
    스니펫으로 작성되며, 파싱된 쿼리와 BufferAddress를 포함하고,
    BufferAddress는 오프로딩 코드에 의한 일부 쿼리 연산 수행 결과를 저장할 버퍼의 주소인 것을 특징으로 하는 DB 스케줄링 방법.
  8. 청구항 7에 있어서,
    버퍼는,
    DBMS에 마련되어 있는 것을 특징으로 하는 DB 스케줄링 방법.
  9. 청구항 1에 있어서,
    DBMS와 스토리지들은,
    분리되어 있는 구조인 것을 특징으로 하는 DB 스케줄링 방법.
  10. DB(DataBase)가 구축된 다수의 스토리지들; 및
    클라이언트로부터 쿼리 실행 요청을 수신하면 쿼리 연산 일부에 대한 오프로딩 여부를 결정하고, 오프로딩을 결정하면 수신된 쿼리를 기초로 일부 쿼리 연산 오프로딩을 위한 코드인 오프로딩 코드를 생성하며, 다수의 스토리지들 중 하나를 선정하여 오프로딩 코드를 전달하는 DBMS(DataBase Management System);를 포함하고,
    오프로딩 코드를 수신한 스토리지는,
    다수의 CSD(Computational Storage Drive)들 중 하나를 선정하고, 선정된 CSD에 수신된 오프로딩 코드를 전달하는 것을 특징으로 하는 DB 시스템.
  11. DBMS(DataBase Management System)가, 클라이언트로부터 수신한 쿼리를 기초로 쿼리 연산 오프로딩을 위한 코드인 오프로딩 코드를 생성하는 단계;
    DBMS가, DB(DataBase)가 구축된 다수의 스토리지들 중 하나를 선정하는 제1 선정단계; 및
    DBMS가, 제1 선정단계에서 선정된 스토리지에 오프로딩 코드를 전달하는 단계;
    오프로딩 코드를 수신한 스토리지가, 다수의 CSD(Computational Storage Drive)들 중 하나를 선정하는 제2 선정단계; 및
    스토리지가, 제2 선정단계에서 선정된 CSD에 수신된 오프로딩 코드를 전달하는 단계;를 포함하는 것을 특징으로 하는 DB 스케줄링 방법.
  12. DB(DataBase)가 구축된 다수의 스토리지들; 및
    클라이언트로부터 수신한 쿼리를 기초로 쿼리 연산 오프로딩을 위한 코드인 오프로딩 코드를 생성하고, 다수의 스토리지들 중 하나를 선정하여 오프로딩 코드를 전달하는 DBMS(DataBase Management System);를 포함하고,
    오프로딩 코드를 수신한 스토리지는,
    다수의 CSD(Computational Storage Drive)들 중 하나를 선정하고, 선정된 CSD에 수신된 오프로딩 코드를 전달하는 것을 특징으로 하는 DB 시스템.
KR1020210156264A 2021-11-15 2021-11-15 대량의 dbms 태스크 연산 기반 오프로딩 스니펫 스케줄링 방법 KR102628592B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210156264A KR102628592B1 (ko) 2021-11-15 2021-11-15 대량의 dbms 태스크 연산 기반 오프로딩 스니펫 스케줄링 방법
US17/985,994 US20230153317A1 (en) 2021-11-15 2022-11-14 Method for scheduling offloading snippets based on large amount of dbms task computation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210156264A KR102628592B1 (ko) 2021-11-15 2021-11-15 대량의 dbms 태스크 연산 기반 오프로딩 스니펫 스케줄링 방법

Publications (2)

Publication Number Publication Date
KR20230070567A KR20230070567A (ko) 2023-05-23
KR102628592B1 true KR102628592B1 (ko) 2024-01-25

Family

ID=86323567

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210156264A KR102628592B1 (ko) 2021-11-15 2021-11-15 대량의 dbms 태스크 연산 기반 오프로딩 스니펫 스케줄링 방법

Country Status (2)

Country Link
US (1) US20230153317A1 (ko)
KR (1) KR102628592B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102629720B1 (ko) * 2021-11-15 2024-01-29 한국전자기술연구원 Dbms 스토리지 엔진과 연산 스토리지 장치 간 오프로딩 데이터 인터페이싱 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102154446B1 (ko) * 2019-11-14 2020-09-09 한국전자기술연구원 분산·협업형 컨테이너 플랫폼 환경에서의 자원 균등 배분을 위한 고속 스케줄링 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8244718B2 (en) * 2006-08-25 2012-08-14 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries
US9477708B2 (en) * 2012-11-19 2016-10-25 Nec Corporation System for multi-store analytics execution environments with storage constraints
US11586630B2 (en) * 2020-02-27 2023-02-21 Sap Se Near-memory acceleration for database operations

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102154446B1 (ko) * 2019-11-14 2020-09-09 한국전자기술연구원 분산·협업형 컨테이너 플랫폼 환경에서의 자원 균등 배분을 위한 고속 스케줄링 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
L. Qiao et al., Integration of Server, Storage and Database Stack: Moving Processing Towards Data, IEEE 24th International Conference on Data Engineering, pp1200-1208(2008)*
이영구 외, 패터레이션 환경의 다양한 인-메모리 RDBMS에서 선억적 코드오프로딩 기법에 대한 조사, 한국정보과학회 2020년 한국소프트웨어종합학술대회 논문집, pp74-76(2020.12)*

Also Published As

Publication number Publication date
US20230153317A1 (en) 2023-05-18
KR20230070567A (ko) 2023-05-23

Similar Documents

Publication Publication Date Title
CN107105009B (zh) 基于Kubernetes系统对接工作流引擎的作业调度方法和装置
US20070239658A1 (en) Optimization of performing query compilations
WO2010137455A1 (ja) 計算機システム、方法、およびプログラム
US11048716B1 (en) Managed virtual warehouses for tasks
CN111930489B (zh) 一种任务调度方法、装置、设备及存储介质
US20050004952A1 (en) Transaction processing method, transaction control apparatus and program thereof
JPWO2015029187A1 (ja) データベース管理システム及び計算機システム
US11216421B2 (en) Extensible streams for operations on external systems
US11966416B2 (en) Cross-organization and cross-cloud automated data pipelines
US12050603B2 (en) Opportunistic cloud data platform pipeline scheduler
KR102628592B1 (ko) 대량의 dbms 태스크 연산 기반 오프로딩 스니펫 스케줄링 방법
CN111736907A (zh) 一种自适应低延迟内存计算引擎的数据分析方法
US20230401235A1 (en) Low latency ingestion into a data system
CN116974994A (zh) 一种基于集群的高效能文件协作系统
US20230237043A1 (en) Accelerating change data capture determination using row bitsets
US11593310B2 (en) Providing writable streams for external data sources
JPH05173990A (ja) データ処理システム
US20230393782A1 (en) Io request pipeline processing device, method and system, and storage medium
US7721287B2 (en) Organizing transmission of repository data
KR102629720B1 (ko) Dbms 스토리지 엔진과 연산 스토리지 장치 간 오프로딩 데이터 인터페이싱 방법
US20240160610A1 (en) Method of applying computational model in multiple computational storage-based dbms storage engine
US11921700B1 (en) Error tables to track errors associated with a base table
US11704200B2 (en) Quiesce notifications for query retries
US20230367757A1 (en) Streams using persistent tables
US20240232213A1 (en) Future scheduler for database systems

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right