KR20160112776A - 대용량 데이터의 분할 또는 병합 방법 및 그 장치 - Google Patents
대용량 데이터의 분할 또는 병합 방법 및 그 장치 Download PDFInfo
- Publication number
- KR20160112776A KR20160112776A KR1020150039050A KR20150039050A KR20160112776A KR 20160112776 A KR20160112776 A KR 20160112776A KR 1020150039050 A KR1020150039050 A KR 1020150039050A KR 20150039050 A KR20150039050 A KR 20150039050A KR 20160112776 A KR20160112776 A KR 20160112776A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- meta information
- original
- size
- merging
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G06F17/30584—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G06F17/30557—
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 대용량 데이터의 분할 또는 병합 방법 및 그 장치에 관한 것으로, 특히 유전체 분석과 같이 대용량 데이터의 분할 실행이 가능한 환경에서 복수의 노드로 작업을 분산 실행할 때, 효율적으로 데이터를 분할하고 병합할 수 있도록 하는 대용량 데이터의 분할 또는 병합 방법 및 그 장치에 관한 것이다.
이에 따른 본 발명은, 적어도 하나의 데이터의 분할 또는 병합에 대한 메타 정보를 저장하는 단계, 임의의 데이터에 대한 요청이 감지되면, 상기 데이터에 대응하는 메타 정보를 획득하는 단계; 상기 메타 정보에 따라 상기 데이터를 분할 또는 병합하는 단계 및 상기 분할 또는 병합된 데이터를 상기 요청에 응답하여 전송하는 단계를 포함하는 대용량 데이터의 분할 또는 병합 방법 및 그 장치에 관한 것이다.
이에 따른 본 발명은, 적어도 하나의 데이터의 분할 또는 병합에 대한 메타 정보를 저장하는 단계, 임의의 데이터에 대한 요청이 감지되면, 상기 데이터에 대응하는 메타 정보를 획득하는 단계; 상기 메타 정보에 따라 상기 데이터를 분할 또는 병합하는 단계 및 상기 분할 또는 병합된 데이터를 상기 요청에 응답하여 전송하는 단계를 포함하는 대용량 데이터의 분할 또는 병합 방법 및 그 장치에 관한 것이다.
Description
본 발명은 대용량 데이터의 분할 또는 병합 방법 및 그 장치에 관한 것으로, 특히 유전체 분석과 같이 대용량 데이터의 분할 실행이 가능한 환경에서 복수의 노드로 작업을 분산 실행할 때, 효율적으로 데이터를 분할하고 병합할 수 있도록 하는 대용량 데이터의 분할 또는 병합 방법 및 그 장치에 관한 것이다.
최근 GPGPU(General-Purpose computing on Graphics Processing Units)나 MIC(Multiple Image Compression)와 같은 고속 보조 프로세서가 등장함에 따라, 클러스터 같은 복수의 노드로 이루어진 환경에서 복수의 노드로 구성되는 CPU와 복수의 보조 프로세서를 동시에 활용하여 작업 처리량을 증가시키는 방법이 연구되고 있다.
상기한 환경에서 작업 처리량을 효율적으로 증가시키기 위해서는, 응용 프로그램 자체도 수정해야 하지만, 현재의 프로그래밍 환경에서는 실질적으로 프로그램을 수정하는 것이 쉽지 않다.
상기와 같은 이유로, 유전체 분석과 같은 분야에서는 응용 프로그램을 새롭게 만드는 대신 기존의 응용 프로그램을 사용하며, 처리할 데이터를 특정 크기로 분할하여 각 보조 프로세서를 통해 실행하고, 처리된 결과를 병합하는 방법을 사용하고 있다. 이 경우, 데이터의 크기가 매우 크면, 데이터의 분할/병합 시에 발생하는 입출력 오버헤드를 처리하기 위한 비용이 고속 보조 프로세서를 사용하는 비용보다 커질 수 있다는 문제점이 있다. 또한, SLURM(Simple Linux Utility for Resource Management)과 같은 작업 스케줄러를 통해, 분할된 데이터에 대한 작업을 각 노드로 분해하여 실행하는 경우에도, 공유 저장 장치와 같이 노드들이 공유할 수 있는 매체가 없다면, 모든 노드로 작업이 분배되고, 다른 노드에 자원의 여유가 있음에도 불구하고, 특정 노드에 작업이 집중되어 데이터 처리를 대기해야 하는 상황이 발생할 수 있다.
본 발명은 상기한 문제점을 해결하기 위한 것으로, GPGPU나 MIC 같이 데이터를 처리하는 고속 보조 프로세서를 갖거나, 복수의 클러스터로 구성되는 환경에서, 데이터 분할/병합의 비용을 최소화하면서 데이터를 분할하고 병렬 자원을 이용할 수 있도록 하는 대용량 데이터의 분할 또는 병합 방법 및 그 장치에 관한 것이다.
본 발명은 원격지의 데이터를 마치 로컬의 데이터처럼 제공함으로써, 기존에 데이터의 다운로드 후에만 실행할 수 있었던 작업을 스트리밍처럼 실시간으로 처리할 수 있도록 가상의 파일 컨테이너를 생성하는 대용량 데이터의 분할 또는 병합 방법 및 그 장치에 관한 것이다.
상술한 과제를 해결하기 위한 본 발명에 따른 대용량 데이터의 분할 또는 병합 방법은, 적어도 하나의 데이터의 분할 또는 병합에 대한 메타 정보를 저장하는 단계, 임의의 데이터에 대한 요청이 감지되면, 상기 데이터에 대응하는 메타 정보를 획득하는 단계, 상기 메타 정보에 따라 상기 데이터를 분할 또는 병합하는 단계 및 상기 분할 또는 병합된 데이터를 상기 요청에 응답하여 전송하는 단계를 포함하는 것을 특징으로 한다.
또한, 상술한 과제를 해결하기 위한 본 발명에 따른 대용량 데이터의 분할 또는 병합 장치는, 적어도 하나의 데이터의 분할 또는 병합에 대한 메타 정보를 저장하는 메타 저장소, 임의의 데이터에 대한 요청이 감지되면, 상기 데이터에 대응하는 메타 정보를 획득하는 메타 처리기 및 상기 메타 정보에 따라 분할 또는 병합된 데이터를 상기 요청에 응답하여 전송하는 프로토콜 처리기를 포함하는 것을 특징으로 한다.
본 발명에 따른 대용량 데이터의 분할 또는 병합 방법 및 그 장치는, 데이터의 분할/병합에 소요되는 시간을 단축시켜, 복수의 노드나 고속 보조 프로세서를 이용할 때의 장점을 극대화하고 처리량을 증대시킨다.
본 발명에 따른 대용량 데이터의 분할 또는 병합 방법 및 그 장치는, 원격 노드의 데이터를 로컬로 복사할 때까지 시간을 요구하지 않고, 스트리밍을 통하여 즉시 데이터의 처리가 가능하도록 한다.
본 발명에 따른 대용량 데이터의 분할 및 병합 방법 또는 그 장치는, 각각의 로컬 스토리지를 가진 클러스터 환경에서, 데이터의 위치에 따라 작업이 실행되어야 하는 노드를 고정시키지 않고 유동적으로 변경하며 작업을 수행할 수 있도록 한다.
도 1은 일반적인 데이터 분할 또는 병합 방법을 설명하기 위한 도면이다.
도 2는 본 발명에 따른 데이터 분할 및 병합 방법을 설명하기 위한 도면이다.
도 3은 본 발명에 따른 메타 정보를 나타낸 도면이다.
도 4는 본 발명에 따른 분할 데이터 메타 정보의 일 실시 예를 나타낸 도면이다.
도 5는 본 발명에 따른 병합 데이터 메타 정보의 일 실시 예를 나타낸 도면이다.
도 6은 본 발명에 따른 데이터 분할 또는 병합 장치의 구조를 나타낸 블록도이다.
도 7은 네트워크에서 프로토콜 처리기의 동작을 나타낸 도면이다.
도 8은 본 발명에 따른 데이터 분할 또는 병합 방법을 나타낸 흐름도이다.
도 9는 본 발명에 따른 데이터 분할 또는 병합 방법을 나타낸 순서도이다.
도 2는 본 발명에 따른 데이터 분할 및 병합 방법을 설명하기 위한 도면이다.
도 3은 본 발명에 따른 메타 정보를 나타낸 도면이다.
도 4는 본 발명에 따른 분할 데이터 메타 정보의 일 실시 예를 나타낸 도면이다.
도 5는 본 발명에 따른 병합 데이터 메타 정보의 일 실시 예를 나타낸 도면이다.
도 6은 본 발명에 따른 데이터 분할 또는 병합 장치의 구조를 나타낸 블록도이다.
도 7은 네트워크에서 프로토콜 처리기의 동작을 나타낸 도면이다.
도 8은 본 발명에 따른 데이터 분할 또는 병합 방법을 나타낸 흐름도이다.
도 9는 본 발명에 따른 데이터 분할 또는 병합 방법을 나타낸 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명을 설명한다. 본 명세서에서는 본 발명의 특정 실시 예들이 도면에 예시되고 관련된 상세한 설명이 기재되어 있으나, 본 발명의 사상이 변경되지 않는 범위 내에서 본 발명의 다양한 변형이 가능하다. 따라서, 본 명세서는 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경 또는 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 명세서에서 사용되는 "포함한다," "포함할 수 있다." 등의 표현은 개시된 해당 기능, 동작, 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작, 구성요소 등을 제한하지 않는다. 또한, 본 명세서에서, "포함하다." 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예를 상세히 설명한다.
도 1은 일반적인 데이터 분할 또는 병합 방법을 설명하기 위한 도면이다. 도 1에서, 데이터 A를 처리하기 위해 세 개의 노드가 존재한다고 가정한다.
도 1을 참조하면, 일반적인 데이터 분할 또는 병합 방법에서는, 데이터 A를 각 노드를 위한 세 개의 데이터 A1, A2 및 A3로 분할하여 복사하고, 각 노드는 복사된 분할 데이터 A1, A2 및 A3를 각각 처리한다. 이후, 각 노드는 분할 데이터 A1, A2 및 A3를 처리하여 데이터 B1, B2 및 B3을 생성하고, 데이터 B1, B2 및 B3는 병합되어 병합 데이터 B로 복사된다. 최종적으로 데이터 A는 세 개의 노드를 통해 데이터 B로 처리된다.
상술한 방법에서는, 데이터 A를 분할 데이터 A1, A2 및 A3로 복사하는 과정에서 첫 번째 디스크 입출력이 발생하고, 데이터 B1, B2 및 B3를 병합 데이터 B로 복사하는 과정에서 두 번째 디스크 입출력이 발생한다. 파일 크기가 커질수록 디스크 입출력에 따른 처리 비용은 증가하게 된다.
디스크 입출력에 의한 처리 비용의 감소를 위해, 리눅스의 심볼릭 링크(symbolic link)와 같이 실제 데이터 블록을 복사하지 않고 데이터를 처리하는 방법이 고려될 수 있다. 그러나 심볼릭 링크는 전체 데이터에 대해서만 적용될 수 있을 뿐, 상술한 실시 예와 같이 부분적인 데이터에 대하여는 적용되지 않는다. 또한, 분할된 데이터의 복사 없이 데이터 자체를 분할하여 처리하는 방법이 고려될 수 있으나, 이러한 방법은 단일 노드를 사용하는 환경에서만 적용 가능하며, 실제 데이터 원본 및 실제 파일 시스템을 수정해야 하는 문제를 갖는다. 만약, 데이터 A가 실제 상용 시스템 파일인 경우에는 데이터 자체의 수정이 불가능하므로, 데이터 자체를 분할하여 처리하는 방법이 적용될 수 있다.
이하에서는, 상기한 실제 데이터를 변경하지 않으면서, 데이터의 분할/병합에 따른 디스크 입출력을 최소화할 수 있도록 포인팅 정보를 이용하는 데이터의 분할 또는 병합 방법을 설명한다.
이하에서 설명하는 본 발명은, 네트워크에 존재하는 원본 데이터를 분할하거나, 복수의 원본 데이터를 분할하는 실시 예들에 적용될 수 있다. 이하의 설명에서 데이터의 분할이라 함은, 네트워크에 존재하는 원본 데이터 A를 분할 데이터 A1, A2, …, An으로 분할하는 것을 의미한다. 또한, 이하의 설명에서 데이터의 병합이라 함은, 네트워크에 존재하는 원본 데이터 B1, B2, …, Bn을 병합 데이터 B로 병합하는 것을 의미한다. 다양한 실시 예에서, 원본 데이터 A를 처리한 결과가 데이터 B인 경우에, 데이터 B를 원본 데이터로 명명할 수 있으나, 이하의 실시 예에서는 설명의 편의를 위해 네트워크에 원본 형태로 저장되어 별도의 참조 위치를 갖는 데이터를 원본 데이터라 한다. 따라서, 이하의 실시 예들에서는, 동일한 참조 위치를 가지나 로드 시작점 및/또는 크기가 다른 데이터들(A1, A2, …, An)을 해당 참조 위치에 존재하는 원본 데이터(A)에 대한 분할 데이터라 하고, 서로 다른 참조 위치에 존재하는 복수의 원본 데이터들(B1, B2, …, Bn)이 병합되어 형성되는 데이터를 병합 데이터(B)라 한다.
이하, 상기한 사항에 따라 본 발명을 구체적으로 설명한다.
도 2는 본 발명에 따른 데이터 분할 또는 병합 방법을 설명하기 위한 도면이다.
본 발명에 따른 데이터 분할 또는 병합 방법은 임의의 데이터에 대한 메타 정보를 이용하여 데이터의 분할 또는 병합을 스트리밍 형식으로 가능하게 한다. 즉, 본 발명에서는 데이터 분할 또는 병합 장치가 원본 데이터를 중간 과정에서 복사하거나 수정하지 않고, 원본 데이터의 분할 또는 병합에 대한 메타 정보만을 저장하였다가, 특정 데이터가 요청되는 경우에, 요청된 데이터의 메타 정보를 이용하여 분할 또는 병합된 데이터를 실질적으로 로드한다.
상기한 방법에 따를 때, 네트워크에 존재하는 원본 데이터는 실질적으로 로드되기 이전에 메타 정보 상에서 가상 데이터로써 존재할 수 있다. 가상 데이터는 사용자로 하여금 네트워크로부터 원본 데이터를 실질적으로 다운로드하지 않더라도, 원본 데이터가 사용자 장치에 존재하고 있는 데이터인 것과 같이 인식하도록 할 수 있다.
본 발명의 다양한 실시 예에서, 메타 정보는 도 3에 도시된 바와 같이 XML 또는 JSON 등의 포맷으로 형성될 수 있다.
메타 정보는 분할 데이터 또는 병합 데이터가 참조하는 원본 데이터의 위치에 관한 정보를 포함할 수 있다. 원본 데이터의 위치는 프로토콜, 서버 위치, 파일 위치 등을 나타낼 수 있으며, 도 3에 도시된 바와 같이 URI로 표시될 수 있으나 이에 한정되지 않는다. 원본 데이터 A가 복수의 데이터 A1, A2, A3로 분할되는 경우, 복수의 분할 데이터 A1, A2, A3의 메타 정보는 동일하게 원본 데이터 A의 위치 정보를 포함할 수 있다. 한편, 데이터 B가 복수의 원본 데이터 B1, B2, B3를 병합하여 형성되는 경우, 데이터 B의 메타 정보는 복수의 원본 데이터 B1, B2, B3 각각에 대한 위치 정보를 포함할 수 있다.
메타 정보는 원본 데이터 내에서 분할 데이터 또는 병합 데이터에 대한 로드 시작점에 관한 정보를 포함할 수 있다. 분할 데이터의 경우, 로드 시작점은 원본 데이터의 처음 지점 또는 중간 지점에 대응할 수 있다. 병합 데이터의 경우, 로드 시작점은 병합 데이터를 구성하는 복수의 원본 데이터 각각에 대한 로드 시작점을 포함하여 구성되며, 이때, 로드 시작점은 원본 데이터의 처음 지점에 대응할 수 있다. 로드 시작점은 원본 데이터 내의 특정 위치를 용량, 데이터 블록, 데이터 클러스터 등으로 지시하는 포인터 형식을 가질 수 있다. 로드 시작점은 도 3에 도시된 바와 같이 OFFSET으로 표시될 수 있으나 이에 한정되지 않는다. 도 3에서는 로드 시작점을 원본 데이터의 처음 지점으로부터 특정 용량이 경과한 지점으로 나타낸 경우를 도시하였다. 다양한 실시 예에서, 로드 시작점은 분할 지점 등으로 명명될 수 있다.
메타 정보는 분할 데이터 또는 병합 데이터에 대한 크기 정보를 포함할 수 있다. 분할 데이터 A1, A2, A3의 경우, 분할 데이터 A1, A2, A3의 크기는 원본 데이터 A의 크기보다 작으며, 전체 분할 데이터 A1, A2, A3의 크기 합은 원본 데이터 A의 크기와 같다. 병합 데이터 B의 경우, 크기 정보는 병합 데이터 B를 구성하는 복수의 원본 데이터 B1, B2, B3 각각에 대한 크기 정보를 포함하여 구성되며, 병합 데이터 B의 크기는 복수의 원본 데이터 B1, B2, B3 크기의 합과 동일하다. 크기는 도 3에 도시된 바와 같이 SIZE로 표시될 수 있으나 이에 한정되지 않는다.
이하에서는, 상술한 본 발명에 따른 데이터의 분할 또는 병합 방법을 구체적인 실시 예를 들어 설명한다.
도 2를 참조하면, 데이터 A가 복수의 분할 데이터 A1, A2, A3로 분할 가능한 경우, 데이터 분할 또는 병합 장치는 데이터 A의 분할에 대한 메타 정보를 저장할 수 있다. 이때, 메타 정보는 복수의 분할 데이터 A1, A2, A3 각각에 대하여 원본 데이터 A의 위치를 나타내는 정보, 원본 데이터 A 내에서 복수의 분할 데이터 A1, A2, A3의 로드 시작점을 나타내는 정보, 복수의 분할된 데이터 A1, A2, A3의 크기를 나타내는 정보를 포함할 수 있다.
상기한 메타 정보는 도 4에 도시된 바와 같이, 각각의 분할 데이터 A1, A2, A3에 대하여 원본 위치, 로드 시작점, 크기에 대한 정보를 포함하여 구성될 수 있다. A2를 예로 들어 설명하면, A2에 대한 원본 위치의 URI는 file://localhost/A로, A2는 원본 데이터 A를 참조한다(즉, 데이터 A의 분할 데이터이다). A2는 원본 데이터 A의 처음 지점으로부터 100G가 경과된 지점으로부터 200G의 크기를 갖는다.
한편, 도 2를 참조하면, 복수의 데이터 B1, B2, B3가 병합 데이터 B로 병합 가능한 경우, 데이터 분할 또는 병합 장치는 복수의 데이터 B1, B2, B3의 병합에 대한 메타 정보를 저장할 수 있다. 이때, 메타 정보는 복수의 데이터 B1, B2, B3 각각에 대하여 원본 데이터 B1, B2, B3의 위치를 나타내는 정보, 복수의 데이터 B1, B2, B3의 로드 시작점을 나타내는 정보, 복수의 데이터 B1, B2, B3의 크기를 나타내는 정보를 포함할 수 있다.
상기한 메타 정보는 도 5에 도시된 바와 같이, 각각의 데이터 B1, B2, B3에 대하여 원본 위치, 로드 시작점, 크기에 대한 정보를 포함하여 구성될 수 있다. B2를 예로 들어 설명하면, B2에 대한 원본 위치의 URI는 file://localhost/B2로, B2는 로컬 데이터 B2를 참조한다(즉, B2는 원본 데이터 자체를 참조한다). B2는 원본 데이터 B2의 처음 지점으로부터 200G의 크기를 갖는다. 복수의 데이터 B1, B2, B3를 병합한 병합 데이터 B는 데이터 B1, B2, B3의 크기의 합인 350G의 크기를 갖는다.
본 발명의 다양한 실시 예에서, 데이터의 병합 및 분할 장치는, 상술한 메타 정보를 저장하고, 특정 데이터의 요청이 감지된 경우, 해당 데이터에 대응하는 메타 정보를 획득하고, 메타 정보에 따라 분할 또는 병합된 데이터를 요청에 응답하여 전송한다.
도 6은 본 발명에 따른 데이터 분할 또는 병합 장치의 구조를 나타낸 블록도이다.
도 6을 참조하면, 본 발명에 따른 데이터 분할 또는 병합 장치(600)는 가상 데이터 컨테이너(601)를 포함하여 구성된다. 가상 데이터 컨테이너(601)는 상술한 본 발명이 실시 예에 따라, 네트워크에 존재하는 원본 데이터의 분할 또는 병합에 관한 정보를 메타 정보로 저장하여 가상 데이터로써 관리하고, 특정 데이터의 로드가 요구될 때, 비로소 원본 데이터를 로드하는 동작을 수행한다.
가상 데이터 컨테이너(601)는 메타 저장소(603), 메타 처리기(605) 및 프로토콜 처리기(607)를 포함하여 구성된다.
메타 저장소(603)는 적어도 하나의 데이터의 분할 또는 병합에 대한 메타 정보를 저장한다. 메타 정보에 대하여는 상기에서 도 2 내지 도 5를 참조하여 설명한 바와 같다. 메타 정보는 임의의 형식을 갖는 파일 또는 데이터 베이스 등으로 관리될 수 있다.
메타 처리기(605)는 응용 프로그램(609)으로부터 임의의 데이터에 대한 요청이 감지되는 경우, 요청된 데이터를 네트워크에 존재하는 원본 데이터와 매핑시키는 역할을 수행한다. 메타 처리기(605)는 요청된 데이터에 대응하는 메타 정보를 메타 저장소(603)로부터 획득하고, 메타 정보를 기초로 요청된 데이터의 원본 위치, 로드 시작점, 크기를 확인한다. 메타 처리기(605)는 확인된 메타 정보를 기초로, 네트워크에서 실제 데이터를 로드하도록 프로토콜 처리기(607)를 제어한다.
프로토콜 처리기(607)는 메타 처리기(605)가 요청한 데이터의 URI를 파싱하여 데이터를 실제로 로딩한다. 프로토콜 처리기(607)는 도 7에 도시된 바와 같이, 로컬 데이터뿐만 아니라 다수의 노드에서 데이터를 로드할 수 있다. 프로토콜 처리기(607)는 기존에 알려진 프로토콜(http, ftp, file 등)의 클라이언트를 포함할 수 있다. 프로토콜 처리기(607)는 원격에서 제공하는 서비스에 따라서 프로토콜 클라이언트를 통해 실제 데이터 블록을 네트워크로부터 수신하고, 이를 응용 프로그램(609)으로 전송한다. 프로토콜 처리기(607)는 사용자로 하여금 원본 데이터가 로컬에 존재하는 것처럼 인식하도록 하며, 사용자가 원본 데이터에 액세스할 수 있도록 한다.
도 8은 본 발명에 따른 데이터 분할 또는 병합 방법을 나타낸 흐름도이다.
도 8을 참조하면, 응용 프로그램으로부터 A2에 대한 오픈 요청이 수신되는 경우(801), 메타 처리기는 메타 저장소로부터 A2에 대한 메타 데이터를 획득한다(803). 메타 처리기는 획득한 메타 데이터로부터 A2의 원본 데이터 A의 위치 정보를 획득하고, 원본 데이터 A의 오픈을 프로토콜 처리기로 요청한다(805). 프로토콜 처리기는 요청된 원본 데이터 A를 네트워크상에서 오픈한다(807).
이후, 응용 프로그램으로부터 A2의 4Kbyte 크기에 대한 리드 요청이 수신되면(809), 메타 처리기는 메타 데이터로부터 A2의 로드 시작점 및 크기에 관한 정보를 획득하고, 원본 데이터 A의 시작 지점으로부터 100G 크기가 경과한 시점으로부터 4Kbyte 크기의 분할 데이터를 로드할 것을 프로토콜 처리기로 요청한다(811). 프로토콜 처리기는 원본 데이터 A의 100G 지점으로부터 4Kbyte 크기의 분할 데이터를 로드하여(813), 응용 프로그램으로 전송한다(815).
도 9는 본 발명에 따른 데이터 분할 또는 병합 방법을 나타낸 순서도이다.
도 9를 참조하면, 본 발명에 따른 데이터 분할 또는 병합 장치는 적어도 하나의 데이터의 분할 또는 병합에 대한 메타 정보를 저장한다(901). 메타 정보에 관한 상세한 내용은 상기에서 도 2 내지 도 5를 들어 설명한 바와 같다.
임의의 데이터에 대한 요청이 감지되면(903), 데이터 분할 또는 병합 장치는 요청된 데이터에 대응하는 메타 정보를 획득한다(905). 메타 정보는, 적어도 하나의 데이터의 원본 위치, 원본 데이터 내에서 데이터의 로드 시작점 및 데이터의 크기 중 적어도 하나를 포함할 수 있다. 구체적으로, 메타 정보가 데이터의 분할에 대한 메타 정보인 경우, 메타 정보는 복수의 분할 데이터 각각에 대하여, 분할된 데이터의 원본 위치, 원본 데이터 내에서 분할된 데이터의 로드 시작점 및 상기 분할된 데이터의 크기 중 적어도 하나를 포함할 수 있다. 메타 정보가 데이터의 병합에 대한 메타 정보인 경우, 메타 정보는 병합 데이터를 구성하는 복수의 데이터 각각에 대하여, 복수의 데이터의 원본 위치, 복수의 데이터의 크기 정보 중 적어도 하나를 포함할 수 있다.
이후에 데이터 분할 또는 병합 장치는 메타 정보에 따라 분할 또는 병합된 데이터를 로드한다(907). 구체적으로, 데이터 분할 또는 병합 장치는 데이터에 대응하는 원본 데이터 위치 정보를 기초로, 데이터의 원본 데이터를 오픈하고, 데이터에 대응하는 시작점 정보 및 크기 정보를 기초로, 원본 데이터 내에서 상기 시작점으로부터 크기만큼 로드한다. 또는 데이터 분할 또는 병합 장치는 데이터에 대응하는 복수의 원본 데이터 위치 정보를 기초로, 복수의 원본 데이터를 오픈하고, 데이터에 대응하는 시작점 정보 및 크기 정보를 기초로, 복수의 원본 데이터를 로드하여 결합할 수 있다.
데이터 분할 또는 병합 장치는, 분할 또는 병합된 데이터를 요청에 응답하여 전송한다(909).
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 그리고 본 명세서와 도면에 개시된 실시 예들은 본 발명의 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
600: 데이터 분할 또는 병합 장치
601: 가상 데이터 컨테이너
603: 메타 저장소 605: 메타 처리기
607: 프로토콜 처리기 609: 응용 프로그램
603: 메타 저장소 605: 메타 처리기
607: 프로토콜 처리기 609: 응용 프로그램
Claims (12)
- 대용량 데이터의 분할 또는 병합 방법으로,
적어도 하나의 데이터의 분할 또는 병합에 대한 메타 정보를 저장하는 단계;
임의의 데이터에 대한 요청이 감지되면, 상기 데이터에 대응하는 메타 정보를 획득하는 단계;
상기 메타 정보에 따라 상기 데이터를 분할 또는 병합하는 단계; 및
상기 분할 또는 병합된 데이터를 상기 요청에 응답하여 전송하는 단계를 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서, 상기 메타 정보는,
상기 적어도 하나의 데이터의 원본 위치, 원본 데이터 내에서 상기 데이터의 로드 시작점 및 상기 데이터의 크기 중 적어도 하나를 포함하는 것을 특징으로 하는 방법. - 제2항에 있어서, 상기 분할 또는 병합된 데이터를 상기 요청에 응답하여 전송하는 단계는,
상기 데이터에 대응하는 상기 원본 데이터 위치 정보를 기초로, 상기 데이터의 원본 데이터를 오픈하는 단계;
상기 데이터에 대응하는 상기 로드 시작점 및 상기 데이터의 크기를 기초로, 상기 원본 데이터 내에서 상기 로드 시작점으로부터 상기 데이터의 크기만큼 로드하는 단계; 및
상기 로드된 분할 데이터를 전송하는 단계를 포함하는 것을 특징으로 하는 방법. - 제2항에 있어서, 상기 분할 또는 병합된 데이터를 상기 요청에 응답하여 전송하는 단계는,
상기 데이터에 대응하는 복수의 원본 데이터 위치 정보를 기초로, 상기 복수의 원본 데이터를 오픈하는 단계;
상기 데이터에 대응하는 상기 로드 시작점 및 상기 데이터의 크기를 기초로, 상기 복수의 원본 데이터를 로드하여 결합하는 단계; 및
상기 로드된 결합 데이터를 전송하는 단계를 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 메타 정보가 데이터의 분할에 대한 메타 정보인 경우, 상기 메타 정보는 복수의 분할 데이터 각각에 대하여, 상기 분할된 데이터의 원본 위치, 상기 원본 데이터 내에서 상기 분할된 데이터의 로드 시작점 및 상기 분할된 데이터의 크기 중 적어도 하나를 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 메타 정보가 데이터의 병합에 대한 메타 정보인 경우, 상기 메타 정보는 병합 데이터를 구성하는 복수의 데이터 각각에 대하여, 상기 복수의 데이터의 원본 위치, 상기 복수의 데이터의 크기 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 방법. - 대용량 데이터의 분할 또는 병합 장치로,
적어도 하나의 데이터의 분할 또는 병합에 대한 메타 정보를 저장하는 메타 저장소;
임의의 데이터에 대한 요청이 감지되면, 상기 데이터에 대응하는 메타 정보를 획득하고, 상기 메타 정보에 따라 상기 데이터를 분할 또는 병합하는 메타 처리기; 및
상기 분할 또는 병합된 데이터를 상기 요청에 응답하여 전송하는 프로토콜 처리기를 포함하는 것을 특징으로 하는 장치. - 제7항에 있어서, 상기 메타 정보는,
상기 적어도 하나의 데이터의 원본 위치, 원본 데이터 내에서 상기 데이터의 로드 시작점 및 상기 데이터의 크기 중 적어도 하나를 포함하는 것을 특징으로 하는 장치. - 제8항에 있어서, 상기 메타 처리기는,
상기 데이터에 대응하는 상기 원본 데이터 위치 정보를 기초로, 상기 데이터의 원본 데이터를 오픈하고, 상기 데이터에 대응하는 상기 로드 시작점 및 상기 데이터의 크기를 기초로, 상기 원본 데이터 내에서 상기 로드 시작점으로부터 상기 데이터의 크기만큼 로드하고, 상기 로드된 분할 데이터를 전송하도록 상기 프로토콜 처리기를 제어하는 것을 특징으로 하는 장치. - 제8항에 있어서, 상기 메타 처리기는,
상기 데이터에 대응하는 복수의 원본 데이터 위치 정보를 기초로, 상기 복수의 원본 데이터를 오픈하고, 상기 데이터에 대응하는 상기 로드 시작점 및 상기 데이터의 크기 정보를 기초로, 상기 복수의 원본 데이터를 로드하여 결합하고, 상기 로드된 결합 데이터를 전송하도록 상기 프로토콜 처리기를 제어하는 것을 특징으로 하는 장치. - 제7항에 있어서,
상기 메타 정보가 데이터의 분할에 대한 메타 정보인 경우, 상기 메타 정보는 복수의 분할 데이터 각각에 대하여, 상기 분할된 데이터의 원본 위치, 상기 원본 데이터 내에서 상기 분할된 데이터의 로드 시작점 및 상기 분할된 데이터의 크기 중 적어도 하나를 포함하는 것을 특징으로 하는 장치. - 제7항에 있어서,
상기 메타 정보가 데이터의 병합에 대한 메타 정보인 경우, 상기 메타 정보는 병합 데이터를 구성하는 복수의 데이터 각각에 대하여, 상기 복수의 데이터의 원본 위치, 상기 복수의 데이터의 크기 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150039050A KR20160112776A (ko) | 2015-03-20 | 2015-03-20 | 대용량 데이터의 분할 또는 병합 방법 및 그 장치 |
US15/070,533 US20160275162A1 (en) | 2015-03-20 | 2016-03-15 | Method and apparatus for partitioning or combining massive data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150039050A KR20160112776A (ko) | 2015-03-20 | 2015-03-20 | 대용량 데이터의 분할 또는 병합 방법 및 그 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20160112776A true KR20160112776A (ko) | 2016-09-28 |
Family
ID=56925337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150039050A KR20160112776A (ko) | 2015-03-20 | 2015-03-20 | 대용량 데이터의 분할 또는 병합 방법 및 그 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20160275162A1 (ko) |
KR (1) | KR20160112776A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200010645A (ko) * | 2018-06-27 | 2020-01-31 | (주)이지서티 | 빅데이터의 전처리 방법 및 장치 |
KR20220072545A (ko) * | 2020-11-25 | 2022-06-02 | (주)디지탈쉽 | 데이터 분할 기반 데이터 전처리 장치 및 방법 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10116536B2 (en) * | 2015-11-18 | 2018-10-30 | Adobe Systems Incorporated | Identifying multiple devices belonging to a single user |
US11379416B1 (en) * | 2016-03-17 | 2022-07-05 | Jpmorgan Chase Bank, N.A. | Systems and methods for common data ingestion |
US12007981B2 (en) | 2020-12-02 | 2024-06-11 | International Business Machines Corporation | Blockchain selective world state database |
-
2015
- 2015-03-20 KR KR1020150039050A patent/KR20160112776A/ko unknown
-
2016
- 2016-03-15 US US15/070,533 patent/US20160275162A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200010645A (ko) * | 2018-06-27 | 2020-01-31 | (주)이지서티 | 빅데이터의 전처리 방법 및 장치 |
KR20220072545A (ko) * | 2020-11-25 | 2022-06-02 | (주)디지탈쉽 | 데이터 분할 기반 데이터 전처리 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20160275162A1 (en) | 2016-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6849642B2 (ja) | 要求処理技術 | |
KR102234427B1 (ko) | 국소화된 디바이스 조정기에서의 요구 시 코드 실행 | |
EP3667500B1 (en) | Using a container orchestration service for dynamic routing | |
US10467151B2 (en) | Using shared memory to transport data between server processes | |
US10733019B2 (en) | Apparatus and method for data processing | |
KR20160112776A (ko) | 대용량 데이터의 분할 또는 병합 방법 및 그 장치 | |
US20150020067A1 (en) | Distributed virtual machine image management for cloud computing | |
US8443154B2 (en) | Managing shared data objects to provide visibility to shared memory | |
KR101460062B1 (ko) | 동영상 파일을 하둡 분산 파일 시스템에 분산 저장하는 시스템, 동영상 맵리듀스 시스템 및 그 제공방법 | |
US11132221B2 (en) | Method, apparatus, and computer-readable medium for dynamic binding of tasks in a data exchange | |
JP2015507787A (ja) | 自律ネットワーク・ストリーミング | |
US11269691B2 (en) | Load distribution for integration scenarios | |
JP2020533665A (ja) | メディア作品にカスタムアルゴリズムを実行するための拡張可能な手法 | |
US11327811B2 (en) | Distributed computing mesh | |
US10334028B2 (en) | Apparatus and method for processing data | |
US9218139B2 (en) | Minimally disruptive virtual machine snapshots | |
US11176081B2 (en) | Parallel, distributed processing in a heterogeneous, distributed environment | |
JP6069503B2 (ja) | 系列データ並列分析基盤およびその並列分散処理方法 | |
US20200236165A1 (en) | System and method for synchronization of media objects between devices operating in a multiroom system | |
KR102045997B1 (ko) | 분산 파일 시스템을 기반으로 하는 빅데이터 처리 플랫폼의 태스크 스케줄링 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체 | |
US9628401B2 (en) | Software product instance placement | |
US11610151B2 (en) | Distribution system, data management apparatus, data management method, and computer-readable recording medium | |
KR102177440B1 (ko) | 빅데이터 처리 장치 및 방법 | |
US20170147407A1 (en) | System and method for prediciting resource bottlenecks for an information technology system processing mixed workloads | |
US20170075736A1 (en) | Rule engine for application servers |