KR101628676B1 - 대용량 과학 데이터 파일의 분산 저장 시스템 및 방법 - Google Patents

대용량 과학 데이터 파일의 분산 저장 시스템 및 방법 Download PDF

Info

Publication number
KR101628676B1
KR101628676B1 KR1020150183510A KR20150183510A KR101628676B1 KR 101628676 B1 KR101628676 B1 KR 101628676B1 KR 1020150183510 A KR1020150183510 A KR 1020150183510A KR 20150183510 A KR20150183510 A KR 20150183510A KR 101628676 B1 KR101628676 B1 KR 101628676B1
Authority
KR
South Korea
Prior art keywords
file
array
data
blocks
slave node
Prior art date
Application number
KR1020150183510A
Other languages
English (en)
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 KR1020150183510A priority Critical patent/KR101628676B1/ko
Application granted granted Critical
Publication of KR101628676B1 publication Critical patent/KR101628676B1/ko

Links

Images

Classifications

    • G06F17/30194
    • G06F17/30159
    • G06F17/30212
    • G06F17/30592

Abstract

본 발명은 대용량 과학 데이터 파일의 분산 저장 시스템 및 방법에 관한 것으로서, 시스템 카탈로그, 저장 요청된 파일을 분석하여 논리적 구조 정보와 데이터 셋을 구분하고, 상기 논리적 구조 정보를 상기 시스템 카달로그에 저장하며, 상기 데이터 셋을 블록단위로 분할하고, 데이터 셋의 각 셀들에 대응하는 배열 청크의 위치를 계산하여, 배열 청크의 위치와 같은 슬레이브 노드에 위치하도록 블록들을 배치할 슬레이브 노드를 결정하고, 상기 결정된 각 슬레이브 노드에 분할된 파일 블록의 저장을 요청하는 마스터 노드, 상기 마스터 노드로부터 저장 요청된 분할된 파일 블록을 로컬 파일 시스템에 저장하고, 각 파일 블록의 복사본을 생성하여 저장하는 적어도 하나 이상의 슬레이브 노드를 포함한다.

Description

대용량 과학 데이터 파일의 분산 저장 시스템 및 방법{SYSTEM AND METHOD FOR STORING LARGE-SCALE SCIENTIFIC DATA}
본 발명은 대용량 과학 데이터 파일의 분산 저장 시스템 및 방법에 관한 것으로서, 더욱 상세하게는 대용량 다차원 과학데이터 파일을 분산 파일 시스템에 파일 블록 단위로 분할하여 저장하는 대용량 과학 데이터 파일의 분산 저장 시스템 및 방법에 관한 것이다.
과학실험 데이터는 실세계의 다양한 현상들에 대한 관찰/관측 결과를 담고 있으며, 다차원 배열 구조(multi-dimensional array)를 갖는 경우가 빈번하다. 예를 들어, 인공위성 촬영 영상 정보는 특정 위치 및 특정 시간에 촬영한 이미지 값을 기록한다. 즉 (위도, 경도, 시간)이라는 3차원 상의 한 셀(cell)에 영상정보를 RGB 값으로 담는 방식으로 영상 정보를 구성한다.
이러한 다차원 배열 모델의 과학실험 데이터는 데이터의 배포와 실험 환경 등의 정보를 함께 전달하기 위하여 하나의 커다란 파일로서 아카이빙(archiving)되어 전달되는 형식을 취한다. 즉, 실험 환경이나 수집한 센서의 정보 등을 기록하기 위한 메타데이터와 실제 데이터들을 하나의 파일로서 같이 저장한다. HDF5와 NetCDF는 과학실험 데이터를 기록하기 위한 대표적인 파일 형식으로 도 1에서 보이는 바와 같이 group과 dataset이라는 항목으로 내부 구조가 구성된다. group은 다시 하위 구조로 group이나 dataset들을 가지고 있다. 또한 해당 group과 dataset을 설명하기 위한 메타데이터가 group이나 dataset들 어디에나 추가적으로 기술될 수 있다. dataset은 Integer, Float와 같은 스칼라 데이터 타입 이외에 multidimensional array와 같은 복합 데이터 타입을 가질 수가 있다.
HDF5나 NetCDF와 같은 과학실험 데이터 전용 파일 포맷은 파일 하나에 과학실험에 관한 정보와 실험 데이터 모두를 논리적 계층구조로 정리하여 하나의 파일에 집어넣어 보존하거나 다른 연구자들에게 전달할 수 있다는 점에서 이점이 있다.
하지만, 이들 과학데이터는 파일의 저장 관리 및 질의 처리 부분에서 다음과 같은 단점을 갖는다.
첫째, 질의 언어의 부재 및 DBMS 적재 시간이 소요되는 문제가 있다. 즉, 과학실험 데이터 전용 파일에 대하여 공식적인 질의 또는 분석 처리를 위한 언어가 제공되지 않는다. 해당 파일 형식에서의 데이터 접근을 위한 API만을 제공할 뿐 이 파일에 담긴 실험 데이터 정보에 대한 표준화 또는 규격화된 질의 언어를 제공받지 못한다는 단점을 갖는다. 이에 따라 많은 경우 과학실험 데이터에 대한 고수준의 질의 및 분석 처리를 위해서는 DBMS에 적재하여 SQL와 같은 표준화된 질의 언어로 데이터를 처리한다. 최근에는 다차원 배열 모델로 주로 모델링되는 과학실험 데이터를 효과적으로 저장하기 위해 SciDB와 같은 다차원 배열 DBMS를 이용하기도 한다. 하지만, 대용량의 과학실험 데이터 파일을 DBMS에 적재하는데 있어 적재 시 오랜 시간이 소요된다. 이에 따라 실제 과학데이터 파일을 입수한 이후에 분석 질의 처리까지 걸리는 총 시간은 데이터 적재 소요시간으로 인해 크게 길어지는 문제점을 갖는다. 또한, 과학데이터는 그 특성상 생성된 데이터를 빈번하게 질의 처리하지 않는다. 이에 따라 빈번히 질의 처리하지 않는 데이터를 DBMS에 적재하는 과정은 그 소요시간 및 리소스의 낭비가 보다 심하다.
두 번째로, 기존 파일 시스템으로 관리하는데 문제가 있다.
HDF, NetCDF와 같은 과학 데이터 파일 포맷은 과학실험 데이터에 대한 파일 단위 관리 및 배포를 지원한다. 즉 이들 데이터는 하나의 대용량 파일 단위로 관리되므로 관리할 수 있는 파일의 최대 크기에 제한이 없는 한 기존 파일 시스템으로 관리가 가능하다는 장점이 있다. 반면 파일 단위의 데이터 관리는 I/O 효율성 상의 제약을 갖는다.
먼저 한 시스템 내 로컬 파일 시스템으로 관리되는 경우는 I/O가 분산/병렬 파일 시스템에 비해 효율적이지 않다. 이렇게 큰 파일을 하나의 시스템 상에서 파일 단위 API를 가지고 처리하는 경우 단일 노드 상에서의 I/O 및 컴퓨팅 제한으로 인해 그 처리 성능이 확장 가능(scalable) 하지 않다.
분산/병렬 파일 시스템으로 관리하는 경우에는 파일을 블록 또는 청크 단위로 분할하여 여러 디스크 또는 노드에 분할 저장함에 따라 분산/병렬 I/O 처리를 통해 I/O 효율성은 일정부분 향상될 수 있다. 하지만, 기존 분산/병렬 파일 시스템은 이들 과학데이터 파일 포맷을 기존 파일과 동일한 단순 데이터로 인식하며 파일 내 구조나 dataset에 기술된 다차원 배열 데이터에 대한 의미는 해석하지 못한다.
분산/병렬 파일 시스템에서는 과학데이터 파일들을 다른 파일 형식들과 동일하게 시스템이 가진 고유의 블록 분할 및 배치 정책에 따라 파일들을 분할, 여러 노드 또는 디스크에 분산시켜 배치하게 된다.
이런 경우 In-Situ 분석 엔진이나 MapReduce와 같은 분산 병렬 처리 시스템이 해당 파일을 읽어 병렬 처리를 수행하고자 하는 경우 각 컴퓨팅 노드가 읽어 들여야 하는 입력 블록이 로컬이 아닌 원격지 노드에 위치할 경우가 빈번하며 이에 따라 데이터의 네트워크 전송을 위한 추가적인 I/O 비용이 요구된다.
기존 파일 시스템을 가지고 하나의 파일로서 과학실험 데이터를 관리하다 보니, 파일에 대한 사용자 접근 및 입출력 제어가 파일 단위로 이루어진다는 점이다. 예를 들어, 100GB의 HDF5 과학실험 데이터 파일을 사용자 A가 갱신하고 있는 경우, 기존 파일 시스템에서는 파일 단위 락(lock)이 걸려버려 다른 사용자가 파일 내 어떤 데이터도 읽지 못하는 문제가 발생하게 된다. 또한, 복수 개의 실험 센서로부터 생성되는 실험 데이터들을 한 과학실험 데이터 파일에 기록하려는 경우 복수 개의 서로 다른 쓰기 연산을 한 파일에 허용할 수도 없다.
세 번째로, 파일과 DB의 공존 시 문제가 있다.
과학 데이터 파일 포맷으로 작성, 배포되는 과학 실험 데이터를 분석 및 반복 질의의 이점을 얻기 위해 DBMS에 적재하는 경우 과학데이터 파일과 DB 내 데이터가 서로 공존하게 된다. 이런 경우 DB 내 데이터가 변경되는 경우, 파일 내 데이터와 DB내 데이터 간 상호 일관성이 유지되지 못하는 문제를 갖게 된다. 상호 일관성 유지를 지원한다 하더라도 압축되어 아카이빙(archiving) 된 대용량 파일에 대한 갱신 연산은 상대적으로 많은 비용과 시간을 요구한다.
상기와 같이 종래의 파일 단위로 유통되는 대용량 과학데이터는 배포는 용이하지만 다중 사용자가 공동 작업하기에는 곤란한 구조이며 체계적인 관리나 복잡한 질의 처리가 곤란한 문제가 있다.
또한, 복잡한 질의처리를 위해 기존 DBMS에 파일을 읽어 적재하는데 있어 오랜 시간이 소비되는 문제가 있다.
또한, 기존 분산 파일 시스템은 파일의 분할 시 데이터의 의미적 구분을 하지 않고 단순히 크기 별로 분할하여 저장 배치하는 구조인 단점이 있다.
선행기술1: 한국등록특허 제1,341,386호(2013.12.13 공고)
본 발명의 목적은 대용량 다차원 배열 모델을 갖는 과학 실험 데이터 전용 파일들의 고속 저장과 질의 처리 시 I/O 효율성을 향상시킬 수 있는 대용량 과학 데이터 파일의 분산 저장 시스템 및 방법을 제공하는 것이다.
본 발명의 다른 목적은 과학실험 데이터 파일을 블록 기반의 분산 파일 시스템에 효과적으로 배치하는 대용량 과학 데이터 파일의 분산 저장 시스템 및 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 과학실험 데이터 파일과 이에 준하는 다차원 배열 DB 간 상호 연동 방안을 제시할 수 있는 대용량 과학 데이터 파일의 분산 저장 시스템 및 방법을 제공하는 것이다.
본 발명이 또 다른 목적은 분산 병렬 파일 시스템에서의 블록 복제 기법을 통한 다차원 배열의 차원 및 위상 조작을 통한 I/O 효율성을 향상시킬 수 있는 대용량 과학 데이터 파일의 분산 저장 시스템 및 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 접근 단위를 과학데이터 파일 내 논리적 계층 구조 상의 각 구성요소로 하는 접근 제어 기법을 통한 파일에 대한 동시성 제어를 가능하게 하는 것이다.
한편, 본 발명이 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 이하에서 설명할 내용으로부터 통상의 기술자에게 자명한 범위 내에서 다양한 기술적 과제가 포함될 수 있다.
본 발명의 일 측면에 따르면, 시스템 카탈로그, 저장 요청된 파일을 분석하여 논리적 구조 정보와 데이터 셋을 구분하고, 상기 논리적 구조 정보를 상기 시스템 카탈로그에 저장하며, 상기 데이터 셋을 블록단위로 분할하고, 데이터 셋의 각 셀들에 대응하는 배열 청크의 위치를 계산하여, 배열 청크의 위치와 같은 슬레이브 노드에 위치하도록 블록들을 배치할 슬레이브 노드를 결정하고, 상기 결정된 각 슬레이브 노드에 분할된 파일 블록의 저장을 요청하는 마스터 노드, 상기 마스터 노드로부터 저장 요청된 분할된 파일 블록을 로컬 파일 시스템에 저장하고, 각 파일 블록의 복사본을 생성하여 저장하는 적어도 하나 이상의 슬레이브 노드를 포함하는 대용량 과학 데이터 파일의 분산 저장 시스템이 제공된다.
상기 마스터 노드는 상기 분할된 파일 블록과 배열 청크간 대응정보, 파일 메타 데이터를 상기 시스템 카탈로그에 저장할 수 있다.
상기 슬레이브 노드는 질의 유형에 따라 데이터 저장 배치 구조를 변경하여 데이터 복제를 수행하는 기법을 이용하여 파일 블록의 복사본을 생성할 수 있다.
본 발명의 다른 측면에 따르면, 파일을 블록 단위로 분할하고, 분할된 파일 블록을 저장하는 분산 파일 시스템 인스턴스, 상기 분산 파일 저장 시스템에 저장된 파일 블록과 이에 대응하는 다차원 배열 청크를 저장하고, 다차원 배열 질의를 처리하는 다차원 배열 DBMS 인스턴스를 포함하는 노드가 제공된다.
상기 분산 파일 시스템 인스턴스는, 로컬 파일 시스템, 상기 분할된 파일 블록을 상기 로컬 파일 시스템에 저장하는 파일 블록 매핑부, 상기 로컬 파일 시스템에 저장된 각 파일 블록의 복사본을 생성하여 저장하는 복제 매니저, 상기 다차원 배열 DBMS 인스턴스에 저장된 다차원 배열 데이터에 대해서 배열 내 위치정보(coordinates)에 대응하는 셀의 파일 블록 상의 위치를 관리하는 B+-tree부를 포함할 수 있다.
상기 복제 매니저는 질의 유형에 따라 데이터 저장 배치 구조를 변경하여 데이터 복제를 수행하는 기법을 이용하여 파일 블록의 복사본을 생성할 수 있다.
상기 분산 파일 시스템 인스턴스는 상기 파일을 분석하여 논리적 구조 정보와 데이터 셋을 구분하고, 상기 논리적 구조 정보를 시스템 카탈로그에 저장하며, 상기 데이터 셋을 블록단위로 분할하고, 데이터 셋의 각 셀들에 대응하는 배열 청크의 위치를 계산하여, 배열 청크의 위치와 같은 슬레이브 노드에 위치하도록 블록들을 배치할 슬레이브 노드를 결정하고, 상기 결정된 각 슬레이브 노드에 분할된 파일 블록의 저장을 요청하는 파일 블록 매핑부를 포함할 수 있다.
상기 다차원 배열 DBMS 인스턴스는, 배열 저장부, 질의 처리 요청에 따라 배열 청크 또는 파일 블록으로부터 다차원 배열에 대한 질의 처리를 수행하는 배열 질의 처리 엔진부, 상기 배열 질의 처리 엔진이 처리하는 배열 청크를 상기 배열 저장부에 관리하는 배열 저장 엔진부을 포함할 수 있다.
본 발명의 또 다른 측면에 따르면, (a) 마스터 노드는 저장 요청된 파일을 분석하여 논리적 구조 정보와 데이터 셋을 구분하고, 상기 데이터 셋을 블록단위로 분할하며, 상기 데이터 셋의 각 셀들에 대응하는 배열 청크의 위치를 계산하여, 배열 청크의 위치와 같은 슬레이브 노드에 위치하도록 블록들을 배치할 슬레이브 노드를 결정하는 단계, (b) 상기 마스터 노드는 상기 결정된 각 슬레이브 노드에 분할된 파일 블록의 저장을 요청하는 단계, (c) 슬레이브 노드는 상기 마스터 노드로부터 저장 요청된 분할된 파일 블록을 로컬 파일 시스템에 저장하고, 각 파일 블록의 복사본을 생성하여 저장하는 단계를 포함하는 대용량 과학 데이터 파일의 분산 저장 방법이 제공된다.
상기 (a)단계에서, 상기 마스터 노드는 상기 논리적 구조 정보, 상기 분할된 파일 블록과 배열 청크간 대응정보, 파일 메타 데이터를 시스템 카탈로그에 저장하는 것을 특징으로 할 수 있다.
상기 (c) 단계에서, 상기 슬레이브 노드는 질의 유형에 따라 데이터 저장 배치 구조를 변경하여 데이터 복제를 수행하는 기법을 이용하여 파일 블록의 복사본을 생성할 수 있다.
본 발명에 따르면, 대용량 다차원 과학데이터 파일을 분산 파일 시스템에 파일 블록 단위로 분할하여 저장할 시에 블록 분할 및 배치를 효과적으로 수행함으로써, 고속 저장과 질의 처리 시 I/O 성능의 향상을 동시에 꾀할 수 있다.
또한, 파일에 대한 DB 질의 연산의 질의 처리 시 DB와 파일 간 대응을 제공함으로써, 파일과 이에 대응하는 DB 간 일관성 유지 및 동시 사용자 접근을 파일 단위가 아닌 파일 내 구성 요소 단위로 수행할 수 있다.
또한, 분산 병렬 파일 시스템에서의 블록 복제 기법을 통한 다차원 배열의 차원 및 위상 조작을 통한 I/O 효율성을 향상시킬 수 있다.
또한, 접근 단위를 과학데이터 파일 내 논리적 계층 구조 상의 각 구성요소로 하는 접근 제어 기법을 통한 파일에 대한 동시성 제어가 가능하다.
한편, 본 발명의 효과는 이상에서 언급한 효과들로 제한되지 않으며, 이하에서 설명할 내용으로부터 통상의 기술자에게 자명한 범위 내에서 다양한 효과들이 포함될 수 있다.
도 1은 HDF5 파일 포맷의 개념적 구조를 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 대용량 과학 데이터 파일의 분산 저장 시스템을 나타낸 도면이다.
도 3은 본 발명의 실시예에 따른 노드의 구성을 개략적으로 나타낸 블럭도이다.
도 4는 본 발명의 실시예에 따른 DB 인스턴스 위치 정보에 기반을 둔 파일 블록 배치를 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 다차원 배열의 저장 배치 구조 변경을 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 대용량 과학실험 데이터 파일의 분산 저장 방법을 나타낸 도면이다.
이하, 첨부된 도면들을 참조하여 본 발명에 따른 '대용량 과학 데이터 파일의 분산 저장 시스템 및 방법'을 상세하게 설명한다. 설명하는 실시 예들은 본 발명의 기술 사상을 당업자가 용이하게 이해할 수 있도록 제공되는 것으로 이에 의해 본 발명이 한정되지 않는다. 또한, 첨부된 도면에 표현된 사항들은 본 발명의 실시 예들을 쉽게 설명하기 위해 도식화된 도면으로 실제로 구현되는 형태와 상이할 수 있다.
한편, 이하에서 표현되는 각 구성부는 본 발명을 구현하기 위한 예일 뿐이다. 따라서, 본 발명의 다른 구현에서는 본 발명의 사상 및 범위를 벗어나지 않는 범위에서 다른 구성부가 사용될 수 있다.
또한, 각 구성부는 순전히 하드웨어 또는 소프트웨어의 구성만으로 구현될 수도 있지만, 동일 기능을 수행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합으로 구현될 수도 있다. 또한, 하나의 하드웨어 또는 소프트웨어에 의해 둘 이상의 구성부들이 함께 구현될 수도 있다.
또한, 어떤 구성요소들을 '포함'한다는 표현은, '개방형'의 표현으로서 해당 구성요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성요소들을 배제하는 것으로 이해되어서는 안 된다.
도 2는 본 발명의 실시예에 따른 대용량 과학 데이터 파일의 분산 저장 시스템을 나타낸 도면이다.
도 2를 참조하면, 대용량 과학 데이터 파일의 분산 저장 시스템은 클라이언트(100), 마스터 노드(200), 시스템 카탈로그(system catalog)(300), 적어도 하나 이상의 슬레이브 노드(400a, 400b, .., 400n, 이하 400이라 칭함)를 포함한다.
클라이언트(100)는 대용량 과학 데이터 파일의 저장 및 검색 요청 등을 마스터 노드(200)에 전송한다.
클라이언트(100)는 파일에 대한 읽기, 쓰기, 변경 등의 파일 연산은 기존 파일 API를 가지고 수행한다. 기존 파일 API를 가지고 그대로 파일 쓰기를 수행할 때 해당 파일은 분산 파일 시스템에서 여러 파일 블록(RAW file block)으로 분할되어, 각 노드에 분산 배치된다.
클라이언트는 파일에 대한 검색 질의를 수행하기 위해 기존의 DB 질의 언어를 이용할 수 있다. 이 질의 언어는 배열 질의처리 엔진(array query engine)(252)에 의해 저장된 과학 데이터 파일을 대상으로 직접 처리되거나 또는 DB에 저장된 데이터를 대상으로 처리될 수 있다.
이 클라이언트(100)는 개별 시스템으로 운용되는 사용자 단말로 질의 언어와 파일 API로 노드들과 통신하는 컴퓨터 프로그램으로, PC, PDA, 모바일 폰 등의 다양한 형태가 될 수 있다.
마스터 노드(200)와 각 슬레이브 노드(400)는 분산 파일 시스템과 다차원 배열 DBMS의 인스턴스가 하나씩 서로 독립적으로 기동된다.
마스터 노드(200)는 클라이언트(100)로부터 저장 요청된 파일을 분석하여 논리적 구조 정보와 데이터 셋을 구분하고, 논리적 구조 정보를 시스템 카탈로그(300)에 저장하며, 데이터 셋을 블록단위로 분할하고, 데이터 셋의 각 셀들에 대응하는 배열 청크의 위치를 계산하여, 배열 청크의 위치와 같은 슬레이브 노드(400)에 위치하도록 블록들을 배치할 슬레이브 노드(400)를 결정하고, 결정된 각 슬레이브 노드(400)에 분할된 파일 블록의 저장을 요청한다.
마스터 노드(200)는 분할된 파일 블록과 배열 청크간 대응정보, 파일 메타 데이터를 시스템 카탈로그(300)에 저장한다.
마스터 노드(200)는 전용 파일 입출력 API를 통해 고속으로 과학 데이터 파일에 대한 입출력 및 동시성 제어 관리를 수행하고, 다차원 배열 질의어를 입력으로 질의를 입력 받는, 클러스터 내 슬레이브 노드들(400)의 제어를 담당한다.
즉, 마스터 노드(200)는 전용 파일 입출력 API를 이용하여 과학 데이터 파일에 대한 입출력 및 동시성 제어 관리를 수행한다.
마스터 노드(200)는 기존 다차원 배열 DBMS의 질의 언어를 그대로 입력으로 하여 질의 처리를 수행한다. 질의 처리는 크게 두 가지 방식으로 수행되는데, 첫 번째는 분산 파일 시스템의 과학 데이터 파일을 SciDB와 같은 기존 다차원 배열 DBMS에 적재시킨 후 DBMS에서 질의 처리를 수행하는 방법이며, 다른 하나는 In-Situ 질의 처리 방법으로 원본 파일(RAW file)로부터 바로 질의 처리를 수행하는 방법이다. 전자의 경우는 반복적으로 사용되는 질의 처리에 효과적이며, 후자의 경우에는 데이터 적재과정을 제거하고 바로 파일로부터 직접 질의처리를 수행할 수 있도록 한다.
마스터 노드(200)는 다차원 배열 DBMS 인스턴스와 분산 파일 시스템 인스턴스를 동시에 가지는 슬레이브 노드들(400)을 제어한다.
또한, 마스터 노드(200)는 DB 운영 정보, 파일 메타데이터, 클러스터 제어 정보를 담는 시스템 카탈로그(300)와 통신하여, 분할된 파일 블록과 배열 청크 간 대응 정보, 파일 메타데이터를 시스템 카탈로그(300)에 기록 관리한다.
또한, 마스터 노드(200)는 과학 데이터 파일의 블록 단위 분할 시 대응하는 배열 청크의 위치를 미리 계산하여 파일 블록을 분할하고, 배치할 노드를 결정하며, 파일에서 논리적 구조정보를 추출하여 시스템 카탈로그(300)에 저장하고, 데이터 셋만을 별도 파일로 하여 슬레이브 노드(400)에 저장한다.
또한, 마스터 노드(200)는 파일 단위가 아닌 파일 내 논리적 구조 정보에 대한 동시성 제어를 수행한다.
시스템 카탈로그(300)에는 클러스터 내 DB와 파일들의 관리, 클러스터 내 슬레이브 노드 관리를 위한 제어 정보가 저장된다. 즉, 시스템 카탈로그(300)는 다차원 배열 DBMS가 관리하는 데이터베이스 카탈로그, 과학 데이터 파일의 메타 데이터와 파일내 논리적 계층 구조, 과학 데이터 파일과 DBMS가 관리하는 다차원 배열간 대응관계 정보가 저장된다.
시스템 카탈로그(300)는 각 슬레이브 노드(400)에 분산되어 관리되는 파일 블록과 이에 대응하는 DBMS 상의 배열 구조와의 대응 정보들이 저장된다.
또한 시스템 카탈로그(300)는 파일 블록과 파일 간 대응 관계 및 파일 메타데이터, 그리고 DBMS 상의 배열 구조 관리에 요구되는 DB 카탈로그 정보 또한 관리하게 된다.
과학 데이터를 파일과 DB로 둘 다 유지함에 따라 파일과 DB 내 매핑 정보가 같이 유지될 필요성이 존재한다. 이를 위해 기존 DBMS 카탈로그 정보를 관리하던 외부의 시스템 카탈로그에 DB 내 다차원 배열과 과학 데이터 파일 간의 매핑 정보를, 파일의 메타데이터와 함께 같이 관리하도록 확장한다. 파일의 메타데이터는 도 1과 같이 과학 데이터 파일의 그룹 내 또는 데이터셋 등에 각각 존재할 수 있다. 따라서, 시스템 카탈로그(300)는 이들 메타데이터들 모두를 해당파일, 파일 내 구성요소 정보와 대응시켜 모두 시스템 카탈로그(300)에 같이 저장한다.
DB 내 다차원 배열과 과학실험 데이터 파일 간의 매핑 정보 또한 시스템 카탈로그(300)로 같이 관리한다. 이 매핑 정보에는 파일 블록 ID와 해당 파일 블록에 대응되는 DB내 배열 청크의 ID, 각 배열 청크에 저장된 배열 위치주소의 범위, 해당 위치주소로 파일 내 위치 주소를 추적하기 위한 B+-트리 인덱스 ID 가 같이 기록된다.
슬레이브 노드(400)는 마스터 노드(200)로부터 저장 요청된 분할된 파일 블록을 로컬 파일 시스템에 저장하고, 각 파일 블록의 복사본을 생성하여 저장한다. 파일 블록의 복사본 생성 시, 슬레이브 노드(400)는 원본 블록의 데이터 배치 순서를 질의 처리 시 빈번하게 이용되는 스캔 순서와 일치하도록 변경하여 복사본 블록을 생성한다.
슬레이브 노드(400)는 과학 데이터 파일에 대한 파일 블록과 이에 대응하는 다차원 배열 청크를 저장하고, 실제 I/O 처리 및 부분 질의 처리를 수행한다.
도 3은 본 발명의 실시예에 따른 노드의 구성을 개략적으로 나타낸 블럭도, 도 4는 본 발명의 실시예에 따른 DB 인스턴스 위치 정보에 기반을 둔 파일 블록 배치를 설명하기 위한 도면, 도 5는 본 발명의 실시예에 따른 다차원 배열의 저장 배치 구조 변경을 설명하기 위한 도면이다.
이하에 기재된 노드는 마스터 노드와 슬레이브 노드를 총칭하는 것으로, 200으로 칭하여 설명하기로 한다.
도 3을 참조하면, 노드(200)는 분산 파일 시스템 인스턴스(210)와 다차원 배열 DBMS 인스턴스(250)를 포함한다.
분산 파일 시스템 인스턴스(210)는 파일을 블록 단위로 분할하고, 분할된 파일 블록을 저장한다.
분산 파일 시스템 인스턴스(210)는 file API Layer(212), 파일 블록 매핑부(file block mapping)(214), 복제 매니저(Replica manager)(216), B+트리부(218), 로컬 파일 시스템(220)을 포함한다.
이러한 분산 파일 시스템 인스턴스(210)는 노드(200)가 마스터 노드로 동작하는 경우와 슬레이브 노드로 동작하는 경우에 따라 다르게 동작한다.
먼저, 노드(200)가 마스터 노드로 동작하는 경우, file API Layer(212)와 파일 블록 매핑부(214)가 동작한다.
file API Layer(212)는 과학 데이터에 대한 파일 입출력을 처리한다.
파일 블록 매핑부(214)는 저장 요청된 파일을 분석하여 논리적 구조 정보와 데이터 셋을 구분하고, 논리적 구조 정보를 시스템 카탈로그에 저장하며, 데이터 셋을 블록단위로 분할하고, 데이터 셋의 각 셀들에 대응하는 배열 청크의 위치를 계산하여, 배열 청크의 위치와 같은 슬레이브 노드에 위치하도록 블록들을 배치할 슬레이브 노드를 결정하고, 상기 결정된 각 슬레이브 노드에 분할된 파일 블록의 저장을 요청한다.
다음으로, 노드(200)가 슬레이브 노드로 동작하는 경우, file API Layer(212), 파일 블록 매핑부(214), 복제 매니저(216), B+트리부(218), 로컬 파일 시스템(220)이 동작한다.
file API Layer(212)는 과학 데이터에 대한 파일 입출력을 처리한다. 과학 데이터에 대한 파일 입출력은 해당 과학 데이터 파일에 대한 전용 API를 통해 수행된다. 이를 위해서 전용 파일 포맷에 대응하는 파일 API를 분산 파일 시스템의 파일 API와 대응시킨다.
파일 블록 매핑부(214)는 파일 블록 매핑부는 저장 요청된 파일 블록을 로컬 파일 시스템(220)에 저장한다. 이때, 파일 블록 매핑부(214)는 저장 요청된 파일 블록을 마스터 노드에서 결정된 위치의 로컬 파일 시스템(220)에 저장한다.
복제 매니저(216)는 로컬 파일 시스템(220)에 저장된 파일 블록의 복사본을 생성하여 로컬 파일 시스템(220)에 저장한다. 복제 매니저(216)는 블록의 복사본 생성 시, 원본 블록의 데이터 배치 순서를 질의 처리 시 빈번하게 이용되는 스캔 순서와 일치하도록 변경하여 복사본 블록을 생성한다.
분산 파일 시스템에 저장되는 과학 데이터는 블록 단위로 분할되고, 이는 각 노드의 로컬 파일 시스템(220)에 분산되어 저장된다. 이를 위해 분산 파일 시스템은 파일과 블록 간 대응 정보와 블록의 복사본(replica) 정보를 갖게 된다.
각 노드의 로컬 파일 시스템(220)에 파일 상으로 저장되는 분산 파일 시스템에서의 파일 블록들은 블록 복제를 통해 동일 블록에 대한 복제본들을 가지고 있다. 이 복제본은 저장하는 파일 블록과 완전하게 동일한 파일 블록이 아니라 동일 데이터에 대해 기존의 데이터 배치 구조를 변경시켜서 저장한다는 점에서 기존 분산 파일 시스템과 차이가 있다.
이하, 복제 매니저(216)의 동작에 대해 좀더 상세히 설명하기로 한다.
GFS나 HDFS와 같은 분산 파일 시스템은 S/W, H/W 등의 장애에 대응하기 위하여 블록 단위로 데이터를 복제한다. 이 복제는 말 그대로 파일 블록에 대한 복제로 블록을 그대로 복제하여 원본 블록이 위치한 노드가 아닌 다른 노드에 배치시킨다. 이 과정은 파일을 분산파일 시스템에 저장하는 순간에 동기적으로(synchronous) 이루어진다.
본 발명에서는 기존의 분산 파일 시스템의 블록 복제 방식을 변경하여, 데이터 복제가 단순한 파일 블록의 복사가 아닌 질의 유형에 따라 보다 I/O 효율적으로 변경된 데이터 저장 배치구조(data layout)를 가지도록 한다.
예를 들어 도 4와 같이 X, Y, Z 축으로 모델링되는 3차원 배열이 있다고 하자. 3차원 배열이 파일 내 저장되기 위해서는 결과적으로는 1D로 나열되어 저장된다. 이때 원본파일은 X, Y, Z 기준으로 저장된다고 하자. 즉, X축으로 셀을 채우고, 이후 Y축 내 다른 열로 이동한 후 다시 X축을 채우고, 이러다가 X, Y 축의 모든 셀을 채우고 난 후에는 Z 축의 다른 열로 이동하는 방식으로 저장된다고 한다. 이 경우, X, Y, Z 축 순으로 데이터를 읽어서 처리하는 질의에는 질의 처리 시 스캔할 셀의 순서와 파일에 저장된 셀의 저장 순서가 동일하므로 질의 처리 시 I/O 비용 면에서 손실이 없다. 그러나, Y, X, Z 축 순으로 데이터를 읽는 경우에는 셀의 스캔 순서와 파일에 저장된 셀의 저장순서가 다르게 되면서, 불필요한 I/O 가 발생한다. 예를 들어 위의 예에서는 1, 4, 7 순으로 셀을 읽어야 하는데, 저장 순서는 1부터 순차적으로 셀이 저장되므로, 2, 3, 5, 6 번 셀은 불필요하게 읽혀지면서 I/O 효율이 떨어지게 된다.
따라서, 복제 매니저(216)는 데이터 복제 시 질의 유형에 따라 데이터 저장 배치 구조를 변경하여 데이터 복제를 수행하는 기법을 이용하여 파일 블록을 복제한다. 이 기법은 다차원 배열 질의에서 읽혀지는 차원의 순서에 따라 다차원 배열의 위상을 변경하여 데이터를 저장하는 방식이다. 예를 들어, 도 5에서는 질의가 Y, X, Z 차원에 대하여 읽기를 수행하는 경우가 빈번하다면, 블록 복제 수행 시 Y, X, Z 차원 순으로 블록 내 데이터를 저장하는 방식이다.
B+트리부(218)는 다차원 배열 데이터에 대해서 배열 내 위치정보(coordinates)에 대응하는 셀의 파일 블록 상의 위치를 관리한다.
다차원 배열 DBMS 인스턴스(250)는 분산 파일 시스템 인스턴스(210)에 저장된 파일 블록과 이에 대응하는 다차원 배열 청크를 저장하고, 다차원 배열 질의를 처리한다.
다차원 배열 DBMS 인스턴스(250)는 배열 질의 처리 엔진부(array query engine)(252), 배열 저장 엔진부(array storage engine)(254), 배열 저장부(Array Storage)(256)를 포함한다.
배열 질의 처리 엔진부(252)는 질의 처리 요청에 따라 배열 청크 또는 파일 블록으로부터 다차원 배열에 대한 질의 처리를 수행한다. 배열 질의 처리 엔진부(252)는 동일 노드 내 분산 파일 시스템 인스턴스(210)로 관리되는 파일 블록을 입력으로 하거나 또는, 배열 저장 엔진이 관리하는 DB 내 배열 청크를 입력으로 하여, 다차원 배열 질의를 처리한다.
배열 질의 처리 엔진부(252)은 과학실험 데이터 파일을 읽어 파일 블록으로 분할할 때 셀 단위로 각 셀의 위치정보를 읽어서 해당 셀이 DB 적재 시 구축될 배열 내 청크 ID를 계산한 후 해당 청크와 같은 노드에 위치될 수 있도록, 블록 배치를 파일 저장 시 결정한다. 이 작업은 셀 위치정보에 대한 해싱 값으로 결정되므로 상수 시간에 결정 가능한 장점을 갖는다.
이하, 배열 질의 처리 엔진부(252)의 동작에 대해 좀더 상세히 설명하기로 한다.
과학실험 데이터 파일을 복수 개의 파일 블록으로 분할하는데 있어, 기존 분산 파일 시스템은 파일을 고정 크기의 블록들로 분할하고, 이 블록들을 정해진 규칙에 따라 각 노드에 배치한다. 파일 블록의 노드 배치에 있어 배치할 노드의 선정에는 여러 가지 기법들이 존재하지만, 주로 라운드 로빈이나 랜덤 배치 등이 이용된다. 반면에 본 발명의 적용 대상이 되는 다차원 배열 DBMS인 SciDB의 경우에는 하나의 큰 다차원 배열을 복수개의 배열 청크들로 분할시키고 이들 배열 청크들을 노드 내 각 DB 인스턴스가 관리하도록 분산시키는 구조를 갖는다.
이렇게 분산 파일 시스템과 다차원 배열 DBMS에서 데이터를 클러스터 내 노드에 분산시키는 방법이 서로 다른 경우에는 배열 청크와 이에 대응하는 파일 블록이 서로 다르게 된다. 이런 경우 In-situ 질의 처리 시는 다른 노드에 있는 데이터를 가져와야 하며, 또한 데이터에 대한 변경 시 여러 노드에 걸쳐 배치된 배열 청크나 파일 블록을 수정해야 하는 문제점이 발생한다. 이에 따라 본 발명에서는 DB 인스턴스가 관리해야 할 배열 청크가 무엇인지 미리 인식하고 이에 따라 블록들을 배열 청크와 같은 위치에 배치되도록 하는 방식을 제안한다.
다차원 배열 DBMS에서 배열 청크는 같은 크기의 여러 개의 부분배열로 나뉘고, 해싱을 통해 노드들에 분산 배치된다. 예를 들어, 도 4에서는 하나의 다차원 배열이 같은 크기의 4개의 배열 청크들로 분할되고, 이들이 4개의 노드에 분산 배치되었다. 이에 따라 배열 내 특정 셀을 저장할 때, 해당 셀의 위치 값을 알면 해당 셀이 포함될 배열 청크가 무엇이고, 해당 배열 청크가 어디인지 미리 계산할 수 있다.
따라서, 배열 질의 처리 엔진부(252)은 과학실험 데이터 파일을 읽어 파일 블록으로 분할할 때 셀 단위로 각 셀의 위치정보를 읽어서 해당 셀이 DB 적재 시 구축될 배열 내 청크 ID를 계산한 후 해당 청크와 같은 노드에 위치될 수 있도록, 블록 배치를 파일 저장 시 결정한다.
배열 저장 엔진부(254)은 배열 질의 처리 엔진부(252)에서 결정된 청크 위치에 해당 배열 블록을 저장한다.
배열 저장 엔진부(254)은 배열 질의 처리 엔진부(252)가 처리하는 배열 청크를 관리한다.
도 6은 본 발명의 실시예에 따른 대용량 과학실험 데이터 파일의 분산 저장 방법을 나타낸 도면이다.
도 6을 참조하면, 마스터 노드는 클라이언트로부터 파일 저장이 요청되면(S602), 저장 요청된 파일에서 논리적 구조 정보를 추출하여 시스템 카탈로그에 저장한다(S604).
그런 후, 마스터 노드는 데이터 셋을 블록단위로 분할하고(S606), 데이터 셋의 각 셀들에 대응하는 배열 청크의 위치를 계산하면(S608), 배열 청크의 위치와 같은 슬레이브 노드에 위치하도록 블록들을 배치할 슬레이브 노드를 결정한다(S610).
마스터 노드는 분할된 파일 블록과 배열 청크간 대응정보, 파일 메타 데이터를 시스템 카탈로그에 저장하고(S612), 각 슬레이브 노드에 파일 저장 요청 신호를 전송한다(S614). 여기서, 파일 저장 요청 신호는 저장할 파일 블록, 파일 메타 데이터 등을 포함할 수 있다.
각 슬레이브 노드는 분할된 파일 블록을 로컬 파일 시스템에 저장하고(S616), 각 파일 블록의 복사본을 생성하여 저장한다(S618), 이때,파일 블록의 복사본 생성 시, 슬레이브 노드는 원본 블록의 데이터 배치 순서를 질의 처리 시빈번하게 이용되는 스캔 순서와 일치하도록 변경하여 복사본 블록을 생성한다.
이러한 대용량 과학 데이터 파일의 분산 저장 방법은 프로그램으로 작성 가능하며, 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 대용량 과학 데이터 파일의 분산 저장 방법에 관한 프로그램은 전자장치가 읽을 수 있는 정보저장매체(Readable Media)에 저장되고, 전자장치에 의하여 읽혀지고 실행될 수 있다.
이와 같이, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 실시 형태로 실시될 수 있다는 것을 인지할 수 있을 것이다. 따라서 이상에서 기술한 실시 예들은 예시적인 것일 뿐이며, 그 범위를 제한해놓은 한정적인 것이 아닌 것으로 이해해야만 한다. 또한, 도면에 도시된 순서도들은 본 발명을 실시함에 있어서 가장 바람직한 결과를 달성하기 위해 예시적으로 도시된 순차적인 순서에 불과하며, 다른 추가적인 단계들이 제공되거나, 일부 단계가 삭제될 수 있음은 물론이다.
본 명세서에서 기술한 기술적 특징과 이를 실행하는 구현물은 디지털 전자 회로로 구현되거나, 본 명세서에서 기술하는 구조 및 그 구조적인 등가물 등을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로 구현되거나, 이들 중 하나 이상의 조합으로 구현 가능하다. 또한 본 명세서에서 기술한 기술적 특징을 실행하는 구현물은 컴퓨터 프로그램 제품, 다시 말해 처리 시스템의 동작을 제어하기 위하여 또는 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령어에 관한 모듈로서 구현될 수도 있다.
컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 또는 이들 중 하나 이상의 조합일 수 있다.
또한, 본 명세서에서 기술한 "컴퓨터에서 판독 가능한 매체"는 프로그램 실행을 위해 명령어를 프로세서로 제공하는데 기여하는 모든 매체를 포함한다. 구체적으로 데이터 스토리지 디바이스, 광디스크, 자기 디스크 등과 같은 비휘발성 매체, 동적 메모리 등과 같은 휘발성 매체와 데이터를 전송하는 동축 케이블, 구리 와이어, 광섬유 등과 같은 전송 매체를 포함하지만 이에 한정되지는 않는다.
한편, 본 명세서에 첨부된 도면에 도시된 블록도와 순서도에 포함된 본 발명의 기술적 특징을 실행하는 구성들은 상기 구성들 사이의 논리적인 경계를 의미한다.
그러나 소프트웨어나 하드웨어의 실시 예에 따르면, 도시된 구성들과 그 기능들은 독립형 소프트웨어 모듈, 모놀리식 소프트웨어 구조, 코드, 서비스 및 이들을 조합한 형태로 실행되며, 저장된 프로그램 코드, 명령어 등을 실행할 수 있는 프로세서를 구비한 컴퓨터에서 실행 가능한 매체에 저장되어 그 기능들이 구현될 수 있으므로 이러한 모든 실시 예 역시 본 발명의 권리범위 내에 속하는 것으로 보아야 할 것이다.
따라서, 첨부된 도면과 그에 대한 기술은 본 발명의 기술적 특징을 설명하기는 하나, 이러한 기술적 특징을 구현하기 위한 소프트웨어의 특정 배열이 분명하게 언급되지 않는 한, 단순히 추론되어서는 안된다. 즉, 이상에서 기술한 다양한 실시 예들이 존재할 수 있으며, 그러한 실시 예들이 본 발명과 동일한 기술적 특징을 보유하면서 일부 변형될 수 있으므로, 이 역시 본 발명의 권리범위 내에 속하는 것으로 보아야 할 것이다.
또한, 순서도의 경우 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 가장 바람직한 결과를 얻기 위하여 도시된 것으로서, 도시된 특정한 순서나 순차적인 순서대로 그러한 동작들을 반드시 실행되어야 한다거나 모든 도시된 동작들이 반드시 실행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티 태스킹과 병렬 프로세싱이 유리할 수 있다. 아울러, 이상에서 기술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.
이와 같이, 본 명세서는 그 제시된 구체적인 용어에 의해 본 발명을 제한하려는 의도가 아니다. 따라서, 이상에서 기술한 실시 예를 참조하여 본 발명을 상세하게 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 범위를 벗어나지 않으면서도 본 실시 예들에 대한 개조, 변경 및 변형을 가할 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 권리범위에 포함되는 것으로 해석되어야 한다.
100 : 클라이언트 200, 400 : 노드
300 : 시스템 카탈로그 210 : 분산 파일 시스템 인스턴스
212 : file API Layer 214 : 파일 블록 매핑부
216 : 복제 매니저 218 : B+트리부
220 : 로컬 파일 시스템 250 : 다차원 배열 DBMS 인스턴스
252 : 배열 질의 처리 엔진부 254 : 배열 저장 엔진부
256 : 배열 저장부

Claims (11)

  1. 시스템 카탈로그;
    저장 요청된 파일을 분석하여 논리적 구조 정보와 데이터 셋을 구분하고, 상기 논리적 구조 정보를 상기 시스템 카탈로그에 저장하며, 상기 데이터 셋을 블록단위로 분할하고, 데이터 셋의 각 셀들에 대응하는 배열 청크의 위치를 계산하여, 배열 청크의 위치와 같은 슬레이브 노드에 위치하도록 블록들을 배치할 슬레이브 노드를 결정하고, 상기 결정된 각 슬레이브 노드에 분할된 파일 블록의 저장을 요청하는 마스터 노드; 및
    상기 마스터 노드로부터 저장 요청된 분할된 파일 블록을 로컬 파일 시스템에 저장하고, 각 파일 블록의 복사본을 생성하여 저장하는 적어도 하나 이상의 슬레이브 노드;를 포함하되,
    상기 슬레이브 노드는 질의 유형에 따라 데이터 저장 배치 구조를 변경하여 데이터 복제를 수행하는 기법을 이용하여 파일 블록의 복사본을 생성하는 것을 특징으로 하는 대용량 과학 데이터 파일의 분산 저장 시스템.
  2. 제1항에 있어서,
    상기 마스터 노드는 상기 분할된 파일 블록과 배열 청크간 대응정보, 파일 메타 데이터를 상기 시스템 카탈로그에 저장하는 것을 특징으로 하는 대용량 과학 데이터 파일의 분산 저장 시스템.
  3. 삭제
  4. 파일을 블록 단위로 분할하고, 분할된 파일 블록을 저장하는 분산 파일 시스템 인스턴스;
    상기 분산 파일 시스템 인스턴스에 저장된 파일 블록과 이에 대응하는 다차원 배열 청크를 저장하고, 다차원 배열 질의를 처리하는 다차원 배열 DBMS 인스턴스;를 포함하되,
    상기 분산 파일 시스템 인스턴스는 질의 유형에 따라 데이터 저장 배치 구조를 변경하여 데이터 복제를 수행하는 기법을 이용하여 파일 블록의 복사본을 생성 및 저장하는 것을 특징으로 하는 노드.
  5. 제4항에 있어서,
    상기 분산 파일 시스템 인스턴스는,
    로컬 파일 시스템;
    상기 분할된 파일 블록을 상기 로컬 파일 시스템에 저장하는 파일 블록 매핑부;
    상기 로컬 파일 시스템에 저장된 각 파일 블록의 복사본을 생성하여 저장하는 복제 매니저; 및
    상기 다차원 배열 DBMS 인스턴스에 저장된 다차원 배열 데이터에 대해서 배열 내 위치정보(coordinates)에 대응하는 셀의 파일 블록 상의 위치를 관리하는 B+-tree부를 포함하는 것을 특징으로 하는 노드.
  6. 제5항에 있어서,
    상기 복제 매니저는 질의 유형에 따라 데이터 저장 배치 구조를 변경하여 데이터 복제를 수행하는 기법을 이용하여 파일 블록의 복사본을 생성하는 것을 특징으로 하는 노드.
  7. 제4항에 있어서,
    상기 분산 파일 시스템 인스턴스는 상기 파일을 분석하여 논리적 구조 정보와 데이터 셋을 구분하고, 상기 논리적 구조 정보를 시스템 카달로그에 저장하며, 상기 데이터 셋을 블록단위로 분할하고, 데이터 셋의 각 셀들에 대응하는 배열 청크의 위치를 계산하여, 배열 청크의 위치와 같은 슬레이브 노드에 위치하도록 블록들을 배치할 슬레이브 노드를 결정하고, 상기 결정된 각 슬레이브 노드에 분할된 파일 블록의 저장을 요청하는 파일 블록 매핑부를 포함하는 것을 특징으로 하는 노드.
  8. 제4항에 있어서,
    상기 다차원 배열 DBMS 인스턴스는,
    배열 저장부;
    질의 처리 요청에 따라 배열 청크 또는 파일 블록으로부터 다차원 배열에 대한 질의 처리를 수행하는 배열 질의 처리 엔진부; 및
    상기 배열 질의 처리 엔진이 처리하는 배열 청크를 상기 배열 저장부에 관리하는 배열 저장 엔진부을 포함하는 것을 특징으로 하는 노드
  9. (a) 마스터 노드는 저장 요청된 파일을 분석하여 논리적 구조 정보와 데이터 셋을 구분하고, 상기 데이터 셋을 블록단위로 분할하며, 상기 데이터 셋의 각 셀들에 대응하는 배열 청크의 위치를 계산하여, 배열 청크의 위치와 같은 슬레이브 노드에 위치하도록 블록들을 배치할 슬레이브 노드를 결정하는 단계;
    (b) 상기 마스터 노드는 상기 결정된 각 슬레이브 노드에 분할된 파일 블록의 저장을 요청하는 단계;
    (c) 슬레이브 노드는 상기 마스터 노드로부터 저장 요청된 분할된 파일 블록을 로컬 파일 시스템에 저장하고, 각 파일 블록의 복사본을 생성하여 저장하는 단계;를 포함하되,
    상기 (c) 단계에서, 상기 슬레이브 노드는 질의 유형에 따라 데이터 저장 배치 구조를 변경하여 데이터 복제를 수행하는 기법을 이용하여 파일 블록의 복사본을 생성하는 것을 특징으로 하는 대용량 과학 데이터 파일의 분산 저장 방법.
  10. 제9항에 있어서,
    상기 (a)단계에서,
    상기 마스터 노드는 상기 논리적 구조 정보, 상기 분할된 파일 블록과 배열 청크간 대응정보, 파일 메타 데이터를 시스템 카탈로그에 저장하는 것을 특징으로 하는 대용량 과학 데이터 파일의 분산 저장 방법.
  11. 삭제
KR1020150183510A 2015-12-22 2015-12-22 대용량 과학 데이터 파일의 분산 저장 시스템 및 방법 KR101628676B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150183510A KR101628676B1 (ko) 2015-12-22 2015-12-22 대용량 과학 데이터 파일의 분산 저장 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150183510A KR101628676B1 (ko) 2015-12-22 2015-12-22 대용량 과학 데이터 파일의 분산 저장 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101628676B1 true KR101628676B1 (ko) 2016-06-21

Family

ID=56353926

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150183510A KR101628676B1 (ko) 2015-12-22 2015-12-22 대용량 과학 데이터 파일의 분산 저장 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101628676B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102109044B1 (ko) * 2019-09-17 2020-05-11 한국과학기술정보연구원 연구데이터 리포지터리 시스템 및 연구데이터 리포지터리 시스템의 동작 방법
KR20200099268A (ko) * 2019-02-14 2020-08-24 (주)헤르메시스 데이터 공유를 위한 위성 데이터 서비스 시스템
CN112541038A (zh) * 2020-12-01 2021-03-23 杭州海康威视数字技术股份有限公司 时序数据管理方法、系统、计算设备及存储介质
CN117555867A (zh) * 2023-10-26 2024-02-13 之江实验室 针对大科学装置的科学实验数据管理方法、装置和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000067061A (ja) * 1998-08-18 2000-03-03 Ricoh Co Ltd 多次元データ処理システム、多次元データ処理方法および多次元データ処理プログラムを格納した媒体
KR20150106657A (ko) * 2014-03-12 2015-09-22 삼성전자주식회사 분산 데이터 저장 장치 및 분산 데이터 저장 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000067061A (ja) * 1998-08-18 2000-03-03 Ricoh Co Ltd 多次元データ処理システム、多次元データ処理方法および多次元データ処理プログラムを格納した媒体
KR20150106657A (ko) * 2014-03-12 2015-09-22 삼성전자주식회사 분산 데이터 저장 장치 및 분산 데이터 저장 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
선행기술1: 한국등록특허 제1,341,386호(2013.12.13 공고)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200099268A (ko) * 2019-02-14 2020-08-24 (주)헤르메시스 데이터 공유를 위한 위성 데이터 서비스 시스템
KR102229214B1 (ko) 2019-02-14 2021-03-18 (주)헤르메시스 데이터 공유를 위한 위성 데이터 서비스 시스템
KR102109044B1 (ko) * 2019-09-17 2020-05-11 한국과학기술정보연구원 연구데이터 리포지터리 시스템 및 연구데이터 리포지터리 시스템의 동작 방법
CN112541038A (zh) * 2020-12-01 2021-03-23 杭州海康威视数字技术股份有限公司 时序数据管理方法、系统、计算设备及存储介质
CN117555867A (zh) * 2023-10-26 2024-02-13 之江实验室 针对大科学装置的科学实验数据管理方法、装置和系统

Similar Documents

Publication Publication Date Title
EP2368199B1 (en) Asynchronous distributed de-duplication for replicated content addressable storage clusters
US8626717B2 (en) Database backup and restore with integrated index reorganization
US9501550B2 (en) OLAP query processing method oriented to database and HADOOP hybrid platform
EP2422282B1 (en) Asynchronous distributed object uploading for replicated content addressable storage clusters
CN105814562B (zh) 用于在线无共享数据库中数据的重新分布的系统和方法
US8620884B2 (en) Scalable blob storage integrated with scalable structured storage
US10013440B1 (en) Incremental out-of-place updates for index structures
Chavan et al. Survey paper on big data
EP3248115A1 (en) Application-centric object storage
WO2012114531A1 (ja) 計算機システム及びデータ管理方法
KR101628676B1 (ko) 대용량 과학 데이터 파일의 분산 저장 시스템 및 방법
Xiao et al. Remote sensing image database based on NOSQL database
WO2014163624A1 (en) Query integration across databases and file systems
Hu et al. A hierarchical indexing strategy for optimizing Apache Spark with HDFS to efficiently query big geospatial raster data
Nidzwetzki et al. Bboxdb-a scalable data store for multi-dimensional big data
Zhao et al. Toward efficient and flexible metadata indexing of big data systems
KR101668397B1 (ko) 대용량 과학 데이터 즉시 분석 방법 및 장치
Güting et al. Distributed arrays: an algebra for generic distributed query processing
US11789936B2 (en) Storage engine for hybrid data processing
Rodriges Zalipynis Distributed in situ processing of big raster data in the Cloud
Hong et al. Aquadexim: highly efficient in-memory indexing and querying of astronomy time series images
EP3696688B1 (en) Locking based on categorical memory allocation
Xiao A Spark based computing framework for spatial data
KR101918662B1 (ko) 대용량 과학 데이터 즉시 분석 방법 및 장치
Lustosa et al. SAVIME: A multidimensional system for the analysis and visualization of simulation data

Legal Events

Date Code Title Description
GRNT Written decision to grant