KR20120092930A - 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법 - Google Patents

맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법 Download PDF

Info

Publication number
KR20120092930A
KR20120092930A KR1020110012867A KR20110012867A KR20120092930A KR 20120092930 A KR20120092930 A KR 20120092930A KR 1020110012867 A KR1020110012867 A KR 1020110012867A KR 20110012867 A KR20110012867 A KR 20110012867A KR 20120092930 A KR20120092930 A KR 20120092930A
Authority
KR
South Korea
Prior art keywords
storage
divided
memory cluster
rack
storage area
Prior art date
Application number
KR1020110012867A
Other languages
English (en)
Other versions
KR101502896B1 (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 KR1020110012867A priority Critical patent/KR101502896B1/ko
Priority to PCT/KR2011/008578 priority patent/WO2012111905A2/ko
Priority to US13/396,329 priority patent/US8984085B2/en
Publication of KR20120092930A publication Critical patent/KR20120092930A/ko
Application granted granted Critical
Publication of KR101502896B1 publication Critical patent/KR101502896B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning

Abstract

본원 발명은 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법에 관한 것으로, 보다 상세하게는 클라우드 컴퓨팅 시스템와 같은 대용량 데이터 분산처리의 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법에 관한 것이다.
본원 발명은 분산처리 과정에서 생성되는 중간 정보가 메모리 클러스터의 특정 노드에 집중되는 문제점을 해결하기 위한 것으로, 대용량 데이터를 처리하기 위한 맵 리듀스(MapReduce) 기반 분산처리 과정에서 중간에 생성되는 정보를 가상 메모리에 저장하는 효율적인 분산 메모리 클러스터 제어 장치 및 방법을 제공하는 데 있다.
본 발명에 의한 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법에 의하면 가상 메모리에 저장하는 방식에 있어서 효율적인 저장 방법을 제공함으로써 가상 메모리를 구성하는 하부 노드들 간에 효율적으로 부하 및 메모리 사용량 분산을 가능하게 하고, 외부에서 가상 메모리에 정보를 저장하거나 읽는 경우 네트워크 대역폭을 효율적으로 관리할 수 있는 장점이 있다.

Description

맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법{Distributed memory cluster control apparatus and method using map reduce}
본원 발명은 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법에 관한 것으로, 보다 상세하게는 클라우드 컴퓨팅 시스템와 같은 대용량 데이터 분산처리의 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법에 관한 것이다.
분산 메모리 클러스터 장치라 함은 정보를 분산된 메모리 기반 저장소에 저장함으로써 읽기 / 쓰기 속도를 향상시키는 장치를 말한다.
분산 메모리 클러스터 장치의 일 예로는 메모리 가상화 장치, 메모리 DB, 메모리 캐시 등의 장치를 들 수 있다.
그러나 해당 장치에 정보를 읽거나 쓰는 경우 클러스터에 속하는 특정 노드에 정보 저장이 집중될 수 있고, 이에 따라 전체 정보처리 성능이 저하된다.
도 1은 종래의 맵 리듀스(MapReduce)를 이용한 대용량 데이터 분산처리 과정을 보여주는 도면이다.
맵 리듀스(Map Reduce)란 각 분배된 노드에서 정보를 병렬처리를 하고 Map에 의하여 처리된 결과를 통합처리 하는 것을 말한다.
Map Reduce는 구글에서 개발한 소프트웨어 프레임 워크이다. 이 프레임워크는 페타바이트 이상의 대용량 데이터를 신뢰할 수 없는 컴퓨터로 구성된 클러스터 환경에서 병렬 처리를 지원하기 위해서 개발되었다.
이 프레임워크는 함수형 프로그래밍에서 일반적으로 사용되는 Map과 Reduce라는 함수 기반으로 주로 구성된다.
도 1에서 입력데이터를 복수개의 파일로 분할하고,분할한 각각의 파일을 처리한 맵퍼(Mapper)(140)는 중간 결과 파일을 메모리 클러스터(130)의 저장 노드에 무작위로 저장함으로써 특정 노드에 정보 저장이 집중될 수 있고, 그에 따른 중간 결과 파일의 병렬 처리를 위한 리듀셔(Reducer)의 처리속도 역시 느려지게 된다.
따라서, 분산처리 과정에서 생성되는 중간 정보를 효율적으로 메모리 가상화 장치에 저장하고 읽는 방법이 요구된다.
본 발명의 실시예가 이루고자 하는 기술적 과제는, 상기의 분산처리 과정에서 생성되는 중간 정보가 메모리 클러스터의 특정 노드에 집중되는 문제점을 해결하기 위한 것으로, 대용량 데이터를 처리하기 위한 맵리듀스(MapReduce) 기반 분산처리 과정에서 중간에 생성되는 정보를 가상 메모리에 저장하는 효율적인 분산 메모리 클러스터 제어 장치 및 방법을 제공하는 데 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치는, 복수개의 파일로 분할된 입력데이터를 저장할 분할 저장영역의 개수를 할당하고, 상기 분할 저장영역에 저장된 파일을 병합(merge)하여 출력 데이터를 생성하는 리듀서(reducer) 개수를 상기 분할 저장영역의 개수와 동일하게 설정하는 메모리 클러스터 관리부; 상기 입력데이터를 복수개의 파일로 분할하고, 상기 분할된 파일을 정형화된 형식 데이터로 변환하는 맵퍼(Mapper)를 제어하여 상기 정형화된 형식 데이터를 저장할 상기 분할 저장영역의 위치를 제 1 규칙 및 메모리 클러스터 형상 정보를 기초로 지정하고, 제 2 규칙 및 상기 메모리 클러스터 형상 정보를 기초로 상기 리듀서(reducer)의 위치를 지정하는 제어부; 및 상기 메모리 클러스터 형상 정보를 저장하는 메모리 클러스터 형상 저장부;를 포함하는 것을 특징으로 한다.
바람직하게는 상기 메모리 클러스터 형상 정보는 적어도 하나 이상의 저장 노드를 포함하는 복수개의 랙(Rack) 식별정보 및 상기 저장 노드 식별정보, 상기 저장 노드에 포함되는 상기 분할 저장영역 식별정보, 복수개의 상기 맵퍼(Mapper) 식별정보, 복수개의 상기 리듀서(reducer) 식별정보를 포함하는 것을 특징으로 한다.
바람직하게는 상기 제 1 규칙은 상기 랙(Rack) 식별정보를 기초로 랙(Rack) 단위 위치를 지정한 후, 상기 저장 노드 및 상기 분할 저장영역의 저장용량을 기초로 상기 분할 저장영역의 위치를 지정하는 것을 특징으로 한다.
바람직하게는 상기 제 2 규칙은 상기 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양에 따라 상기 리듀서(reducer)의 위치를 지정하는 것을 특징으로 한다.
바람직하게는 상기 랙(Rack) 단위 위치 지정은 라운드로빈(Round Robin)방식으로 수행되고, 상기 분할 저장영역의 위치를 지정은 유휴 저장 용량이 기준값 이상인 저장 노드 및 분할 저장영역을 지정하는 것을 특징으로 한다.
바람직하게는 상기 리듀서(reducer)의 위치를 지정은 기준값 이상의 상기 정형화된 형식 데이터를 저장한 상기 분할 저장 영역을 포함한 저장 노드의 랙(Rack)을 지정하는 것을 특징으로 한다.
바람직하게는 상기 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양이 많은 순서대로 상기 리듀서(reducer)의 위치를 지정하는 것을 특징으로 한다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 맵 리듀스를 이용한 분산 메모리 클러스터 제어 방법은,입력 데이터를 복수개의 파일로 분할하고 상기 분할된 파일을 정형화된 형식 데이터으로 변환하여 상기 정형화된 형식 데이터를 저장할 랙(Rack)의 위치, 저장 노드의 위치 및 상기 저장 노드에 포함된 분할 저장영역의 위치를 제 1 규칙 및 메모리 클러스터 형상 정보를 기초로 지정하는 메모리 노드 위치 지정 단계; 및 제 2 규칙 및 상기 메모리 클러스터 형상 정보를 기초로 상기 정형화된 형식 데이터를 병합(merge)하여 출력 데이터를 생성하는 리듀서(reducer)의 위치를 지정하는 리듀서(reducer)의 위치 지정 단계;를 포함하는 것을 특징으로 한다.
바람직하게는 상기 메모리 클러스터 형상 정보는 복수개의 상기 랙(Rack)의 식별정보 및 적어도 하나 이상의 상기 저장 노드의 식별정보, 복수개의 상기 분할 저장영역의 식별정보, 상기 입력 데이터를 복수개의 파일로 분할하고, 복수개의 상기 맵퍼 (Mapper) 식별정보, 상기 리듀서(reducer) 식별정보를 포함하는 것을 특징으로 한다.
바람직하게는 상기 맵퍼(Mapper)에 의해 분할된 상기 입력 데이터의 파일의 개수와 상기 분할 저장영역의 개수는 동일하게 할당하고, 상기 분할 저장영역의 개수와 동일하게 상기 리듀서(reducer) 개수를 설정하는 것을 특징으로 한다.
바람직하게는 상기 제 1 규칙은 상기 랙(Rack) 식별정보를 기초로 랙(Rack) 단위 위치를 지정한 후, 상기 저장 노드 및 상기 분할 저장영역의 저장용량을 기초로 상기 분할 저장영역의 위치를 지정하는 것을 특징으로 한다.
바람직하게는 상기 제 2 규칙은 상기 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양에 따라 상기 리듀서(reducer)의 위치를 지정하는 것을 특징으로 한다.
바람직하게는 상기 랙(Rack) 단위 위치 지정은 라운드로빈(Round Robin)방식으로 수행되고, 상기 분할 저장영역의 위치를 지정은 유휴 저장 용량이 기준값 이상인 저장 노드 및 분할 저장영역을 지정하는 것을 특징으로 한다.
바람직하게는 상기 리듀서(reducer)의 위치를 지정은 기준값 이상의 상기 정형화된 형식 데이터를 저장한 상기 분할 저장 영역을 포함한 저장 노드의 랙(Rack)을 지정하는 것을 특징으로 한다.
바람직하게는 상기 저장 노드에 포함된 분할 저장영역은 가상 메모리인 것을 특징으로 한다.
본 발명에 의한 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법에 의하면 가상 메모리에 저장하는 방식에 있어서 효율적인 저장 방법을 제공함으로써 가상 메모리를 구성하는 하부 노드들 간에 효율적으로 부하 및 메모리 사용량 분산을 가능하게 하고, 외부에서 가상 메모리에 정보를 저장하거나 읽는 경우 네트워크 대역폭을 효율적으로 관리할 수 있는 장점이 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1 은 종래의 맵 리듀스(MapReduce)를 이용한 대용량 데이터 분산처리 과정을 보여주는 도면이다.
도 2 는 본원 발명의 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치의 구성 개요도를 보여주는 도면이다.
도 3 는 본원 발명의 맵 리듀스(MapReduce)를 이용한 대용량 데이터 분산처리 과정을 보여주는 도면이다.
도 4 는 본원 발명의 맵 리듀스(MapReduce)를 이용한 분산 메모리 클러스터 제어 장치의 세부 동작 과정을 보여주는 도면이다.
도 5 는 본원 발명의 맵 리듀스(MapReduce)를 이용한 분산 메모리 클러스터 제어 방법의 흐름도를 보여주는 도면이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
본원 발명은 대용량 데이터를 처리하기 위한 맵 리듀스(MapReduce) 기반 분산처리과정에서 중간에 생성되는 정보를 파일이 아닌 가상 메모리에 저장하는 방식에 있어서 효율적인 저장 방법을 제공함으로써 가상 메모리를 구성하는 하부 노드들 간에 효율적으로 부하 및 메모리 사용량 분산을 가능하게 하고, 외부에서 가상 메모리에 정보를 저장하거나 읽는 경우 네트워크 대역폭을 효율적으로 관리 하기 위한 제어 장치 및 제어 방벙을 제공하는데 목적이 있다.
본원 발명은 맵 리듀스(MapReduce) 기술을 기반으로 대용량 데이터를 분산처리하는 과정에서 데이터를 처리하는 맵(Map) 작업에서 생성되는 중간 정보를 분산 메모리 클러스터에 저장할때 저장하려는 정보를 기반으로 클러스터에 포함된 저장 노드의 세부 위치를 지정하는 과정과 리듀스(Reduce) 과정에서 가상 메모리에 저장된 내용을 읽기 위해 리듀스(Reduce) 작업의 위치를 지정함으로써 네트워크 혼잡을 줄이는 과정을 포함하여 전체 분산처리 기능을 효율적으로 수행하는 통합 제어 장치 및 방법을 포함하는 것을 특징으로 한다.
본원 발명은 분산처리 환경에서 중간 정보를 저장하기 위해 분산 메모리 클러스터를 이용하는 방법에 관한 것으로 더욱 상세하게는 MapReduce 기반 분산처리를 수행할 때 데이터를 처리하는 Map 작업에서 생성되는 중간 정보를 빠르게 저장하고 Reduce 작업을 수행하기 위해 중간 저장소로 분산 메모리 클러스터 장치를 이용하고, 분산 메모리 클러스터에 저장할 때 메모리 관리를 효율적으로 하고 이후 데이터를 수합하는 Reduce 작업으로 중간 정보를 전송할 때 네트워크 전송을 효율적으로 수행하기 위해 실제 물리 노드의 위치를 결정하는 방법에 관한 것이다.
본원 발명은 메모리 가상화 장치를 구성할 때 장치 구성 정보를 저장함으로써 분산처리 과정의 앞단인 Map 작업에서 발생하는 중간 정보를 저장할 때 그 위치를 효과적으로 선정해서 저장할 수 있으며, 정보를 기록할 때 정보의 특성에 따라 메모리 클러스터 장치에 속한 노드의 위치를 정할 수 있고 이로 인해 메모리 노드와 Reduce 작업 수행 노드간 통신이 특정 노드에 집중되거나 이로 인해 네트웍 혼잡이 발생되는 상황을 막는 방법을 제공하고 그 결과로 전체 분산처리 성능을 향상시키는데 그 목적이 있다.
도 2 는 본원 발명의 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치의 구성 개요도를 보여주는 도면이다.
본원 발명의 분산 메모리 클러스터 제어 장치(200)는 메모리 클러스터 관리부(210), 제어부(220) 및 메모리 클러스터 형상 저장부(230)를 포함하여 이루어진다.
본원 발명의 분산 메모리 클러스터 제어 장치(200)는 맵퍼(Mapper)에 의해 출력되는 중간 정보의 저장 위치를 효과적으로 선정하고, 메모리 노드에 저장된 중간 정보의 전송을 효율적으로 하기 위해 데이터를 수합하는 리듀서(Reducer)의 위치 선정을 효율적으로 하기 위한 것이다.
맵리듀스(Mapreduce)를 이용한 대용량 데이터 처리에서의 맵퍼(Mapper)(도3의 320)는 입력데이터를 복수개의 파일로 분할하고, 상기 분할된 파일을 정형화된 형식 데이터로 변환하는 기능을 수행한다.
대용량 데이터 처리에서의 입력데이터는 비정형화된 형식을 가지고 있으나 맵퍼(Mapper)에 의하여 정형화된 형식으로 변환된다.
메모리 클러스터 관리부(210)는 맵퍼(Mapper)에 의하여 복수개의 파일로 분할된 입력데이터를 저장할 분할 저장영역의 개수를 할당하고, 상기 분할 저장영역에 저장된 파일을 병합(merge)하여 출력 데이터를 생성하는 리듀서(reducer) 개수를 상기 분할 저장영역의 개수와 동일하게 설정한다.
분할 저장 영역은 랙(Rack)에 포함된 적어도 하나 이상의 메모리 저장 노드에 포함된 것으로 가상 메모리이다.
본원 발명은 중간 정보의 효율적 저장을 위해 맵퍼(Mapper)에 의해 분할된 입력 데이터의 개수만큼 메모리 노드에 분할 저장영역을 할당하고, 할당된 분할 저장영역의 개수와 동일하게 리듀서(reducer) 개수를 설정하는 것이 특징이다.
제어부(220)는 맵퍼(Mapper)(도3의 320)를 제어하여 상기 정형화된 형식 데이터를 저장할 상기 분할 저장영역의 위치를 제 1 규칙 및 메모리 클러스터 형상 정보를 기초로 지정하고, 제 2 규칙 및 상기 메모리 클러스터 형상 정보를 기초로 상기 리듀서(reducer)의 위치를 지정한다.
본원 발명은 중간 정보가 특정 메모리 노드에 집중되어 데이터 처리에서의 병목현상이 발생하는 것을 차단하기 위해 중간 정보를 저장할 위치 및 수합동작을 수행하는 리듀서(Reducer)의 위치를 지정하는 것이 가능한 것이 특징이다.
메모리 클러스터 형상 저장부(230)는 중간 정보 저장 위치의 지정과 리듀서(Reducer)의 위치를 지정을 위해 메모리 클러스터 형상 정보를 저장한다.
메모리 클러스터 형상 저장부(230)에 저장된 메모리 클러스터 형상 정보는 적어도 하나 이상의 저장 노드를 포함하는 복수개의 랙(Rack) 식별정보 및 상기 저장 노드 식별정보, 상기 저장 노드에 포함되는 상기 분할 저장영역 식별정보, 복수개의 상기 맵퍼(Mapper) 식별정보, 복수개의 상기 리듀서(reducer) 식별정보를 포포함한다.
세부적으로 메모리 클러스터 형상 정보에는 복수개의 랙(Rack) 스위치나 이를 연동하는 접선 스위치의 정보를 더 포함된다.
중간 정보 저장 위치의 지정을 위해 요구되는 제 1 규칙은 랙(Rack) 식별정보를 기초로 랙(Rack) 단위 위치를 지정한 후에 구체적으로 메모리 저장 노드 및 메모리 저장 노드에 포함된 가상메모리 영역인, 분할 저장영역의 저장용량을 기초로 상기 분할 저장영역의 위치를 지정한다.
즉, 본원발명은 맵퍼(Mapper)에 의해 생성된 중간 정보의 효율적 저장을 위해 정형화된 형식의 중간 정보 데이터를 일차적으로 랙(Rack)단위로 균등하게 분산한다.
따라서, 랙(Rack)1 부터 랙(Rack) 3으로 구성된 대용량 데이터 처리 장치에서 맵퍼(Mapper)에서 분할된 입력데이터의 개수가 3개라면 랙(Rack)1,랙(Rack)2, 랙(Rack) 3에 각각 하나씩 저장되는 것이다.
또한 랙(Rack) 단위 위치 지정은 라운드로빈(Round Robin)방식으로 수행되고, 분할 저장영역의 위치를 지정은 유휴 저장 용량이 기준값 이상인 저장 노드 및 분할 저장영역을 지정하는 것을 특징으로 한다.
즉, 랙(Rack)1 부터 랙(Rack) 2으로 구성된 대용량 데이터 처리 장치에서 맵퍼(Mapper)에서 분할된 입력데이터의 개수가 3개라면 랙(Rack)1에 분할 1번 중간정보를 저장하고, 랙(Rack)2에 분할 2번 중간정보를 저장하고, 분할 3번 중간정보는 랙(Rack)1에 저장되는 것이다.
랙(Rack)의 위치 지정이후에 메모리 저장 노드의 위치 지정은 유휴 저장 용량이 기준값 이상보다 많은 메모리 저장 노드를 최우선으로 선택하게 된다.
특정 노드에 중간 정보가 일방적으로 편중되어 저장되는 것을 방지하기 위함이다.
랙(Rack)의 위치 지정 및 메모리 저장 노드의 위치 지정이 이루어지고 난후에는 메모리 클러스터 관리부(210)에서 분할된 입력데이터의 개수와 동일하게 할당한 분할 저장 영역의 위치 지정이 요구된다.
메모리 저장 노드에 포함된 분할 저장 영역의 위치 지정 역시 유휴 저장 용량이 기준값 이상 보다 많은 저장 영역을 선택하게 된다.
본원 발명에서의 리듀서(reducer)의 위치를 지정을 위해 필요한 제 2 규칙은 상기 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양에 따라 이루어진다.
정형화된 중간 정보 데이터의 네트워크 전송을 효율적으로 수행하기 위해 기준값 이상의 정형화된 형식 데이터를 저장한 분할 저장 영역을 포함한 저장 노드의 랙(Rack)에 리듀서(reducer)의 위치를 지정한다.
즉, 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양이 기준값 보다 많은 메모리 저장 노드가 속한 랙(Rack)에 리듀서(reducer)의 위치시킴으로써 다른 랙(Rack)의 스위치를 경유함으로써 발생할 수 있는 병목현상을 최대한 줄이기 위한 것이다.
즉, 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양이 기준값 보다 많은 메모리 저장 노드에 짧은 경로를 갖도록 하는 위치에 리듀서(reducer)의 위치를 지정한다.
본원 발명의 메모리 클러스터 형상 저장부(230)에 저장된 랙(Rack) 식별정보 및 스위치 식별정보등을 이용하여 리듀서(reducer)의 위치는 병렬 처리를 수행할 메모리 저장 노드의 위치와 짧은 거리에 배치한다.
네트워크 경로를 짧게 하고, 네트워크 병목을 줄일 수 있는 상태에서의 데이터 처리수행을 위해서는 데이터 정보의 이동 경로를 짧게 하여야 한다.
데이터 정보의 이동 경로를 짧게 하기 위해서는 중간 정보의 저장 양이 많은 메모리 노드와 동일 랙(Rack)에 리듀서(reducer)의 위치를 지정한다.
중간 정보의 저장 양이 많은 메모리 노드가 속한 랙(Rack)에 리듀서(reducer)를 위치시킴으로써 동일 랙(Rack) 스위치를 경유하면 짧게 유지한다.
만약 메모리 노드가 속한 랙(Rack)과 다른 랙(Rack)에 리듀서(reducer)를 위치시키면 랙(Rack)에 속한 스위치를 경유하게 되고 스위치 수만큼 경유 거리가 멀어진다.
또한 리듀서(Reducer) 위치 지정은 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양이 많은 메모리 저장 노드로부터의 물리적 거리 및 네트워크 구성 형상,혼잡 가중치를 포함하여 이루어질 수 있다.
네트워크 병목을 줄이기 위해서 짧은 경로 거리를 먼저 측정한 이후 해당 경로를 공유하는 먼 거리의 리듀서(Reducer)에 대해서는 짧은 경로 거리에 위치한 리듀서(Reducer)보다 큰 값의 혼잡 가중치를 부여하여 경로 거리가 길게하는 방법을 일 실시예로 들 수 있다.
도 3 는 본원 발명의 맵 리듀스(MapReduce)를 이용한 대용량 데이터 분산처리 과정을 보여주는 도면이다.
본원 발명의 맵 리듀스(MapReduce)를 이용한 분산 메모리 클러스터 제어 장치는 제어부를 통하여 맵퍼(Mapper)를 제어하여 중간 정보 파일을 저장할 특정 메모리 저장 노드의 위치를 지정하게 되고, 리듀서(Reducer)의 위치를 특정 노드와 가까운 경로 거리에 배치함으로써 효율적인 대용량 데이터 분산처리가 가능하게 한다.
맵 리듀스(MapReduce)를 이용한 분산 메모리 클러스터 제어 장치의 메모리 클러스터 관리부(210)는 메모리 저장 노드에 복수개의 분할 저장영역을 분할 할당하고,리듀서(reducer) 개수를 상기 분할 저장영역의 개수와 동일하게 설정한다.
메모리 저장 노드의 분할 저장영역은 가상 메모리이므로 입력데이터 분할 파일의 개수에 따라 재할당이 가능하다.
본원발명에서의 중간 정보를 저장할 메모리 저장 노드 및 분할 저장영역의 위치 지정 및 리듀서(reducer)의 배치는 메모리 클러스터 형상 정보를 기초로 이루어진다.
메모리 클러스터 형상 정보는 적어도 하나 이상의 저장 노드를 포함하는 복수개의 랙(Rack) 식별정보 및 상기 저장 노드 식별정보, 상기 저장 노드에 포함되는 상기 분할 저장영역 식별정보, 복수개의 상기 맵퍼(Mapper) 식별정보, 복수개의 상기 리듀서(reducer) 식별정보를 포함하며, 추가적으로 랙(Rack)을 연동시키기 위한 접선 스위치나 랙 스위치 정보를 포함할 수 있다.
도 3에서 분산 메모리 클러스터 제어 장치를 이용하여 분산 메모리 클러스터(330)의 하나의 랙(Rack)에 복수개의 메모리 저장 노드가 포함된 일 실시예를 보여준다.
복수개의 메모리 저장 노드에 맵퍼(Mapper)(320)에 의해 분할된 입력 데이터의 개수(N)개만큼 분할 저장영역을 할당한 것을 도시하고 있다.
N개의 분할 저장영역에는 맵퍼(Mapper)에 의해 출력된 정형화된 형식 중간 정보 데이터를 분산 저장한다.
2개의 분할저장영역을 포함하는 메모리 저장 노드(331)는 분할저장영역 1에 중간결과1을 저장하고, 분할 저장영역2에 중간결과2를 저장하였으며 2개의 분할 저장 영역은 하나의 메모리 저장 노드(331)에 포함된다.
중간결과 N을 포함하는 메모리 저장 노드(332)는 하나의 분할저장영역을 포함하고 있다.
본원 발명의 특징은 맵리듀스(MapReduce) 기반 분산처리 장치에 있어서 Map 작업에서 생성되는 분할(Partition) 파일 정보를 기준으로 분산 메모리 클러스터의 특정 노드에 정보를 저장하는 방법과 미리 예측되는 분할(Partition) 파일 개수 정보 (이는 이후 Reduce 작업의 개수와 같음) 를 기준으로 메모리 클러스터를 구성하는 메모리 저장 노드를 해당 개수만큼 내부적으로 묶어서 관리하고 이후 정보 저장시 저장할 정보의 해쉬값 등을 통해 내부 묶음을 구성하는 메모리 저장 노드를 지정해 정보를 저장한다.
MapReduce 기반 분산처리장치로부터 정보 저장 요청을 받을 때 포함된 총 Partition 개수, 저장할 정보의 Partition 정보와 실제 저장할 정보를 수신받게 되고, 이를 저장할 때 메모리 저장 노드를 총 Partition 개수와 동일하게 가상의 내부 블록으로 묶어서 관리한다.
실제 정보 저장시 해당 Partition 정보에 대응하는 내부 블록을 식별해 이에 속한 메모리 저장 노드에 해당 정보를 저장한다.
하나의 랙(Rack)에 포함된 메모리 저장 노드가 여러 개 존재하는 경우 저장할 노드를 선택하는 방법은 저장할 정보를 기반으로 해쉬 값 등을 생성해서 이 값을 근거로 노드를 선택해서 정보를 저장할 수도 있다.
저장된 중간 정보를 외부에서 읽는 처리를 효과적으로 수행할 수 있도록, 외부에서 요청하는 경우 메모리 클러스터를 구성하는 내부 블록 구성정보와 블록에 속한 노드의 물리적 위치 정보를 포함한 형상정보를 제공한다.
물리적 위치 정보는 메모리 저장 노드 식별 정보, 메모리 저장 노드가 속한 물리적 랙(Rack) 식별 정보 및 네트워크 스위치 식별정보를 포함할 수 있다.
MapReduce 기반 분산처리장치가 중간 정보를 이용해 후반 Reduce 작업을 수행할 때는 분산 메모리 클러스터 장치에게 자신이 읽을 정보가 저장된 형상정보를 조회한다.
조회한 결과를 근거로, Reduce 작업을 수행할 노드의 위치를 분산 메모리 클러스터 장치에 포함된 메모리 저장 노드 및 이를 구성하는 노드의 위치와 짧은 거리에 배치한다.
중간정보 데이터의 수합처리를 위한 리듀서(reducer)의 배치는 중간 정보 데이터 저장 양이 많은 메모리 저장 노드 및 분할 저장 영역에 짧은 경로 거리를 갖도록 하기 위해서 동일 랙(Rack)에 배치한다.
도 4 는 본원 발명의 맵 리듀스(MapReduce)를 이용한 분산 메모리 클러스터 제어 장치의 세부 동작 과정을 보여주는 도면이다.
도 4는 분산 메모리 클러스터 장치는 2개의 랙으로 구성되어 있는 일 실시예를 보여준다.
맵퍼 (Mapper)(411,421)은 임의의 노드에서 입력 데이터를 정형화된 형식 데이터로 처리하고 중간정보를 M개의 파티션으로 분할하여 저장한다.
메모리 저장노드(413,423)는 여러개의 메모리 저장 노드로 구성되며, 각 노드는 복수개의 분할된 저장 영역을 포함한다.
맵퍼(Mapper)에 의한 분할된 중간 정보 데이터의 메모리 저장 노드의 저장 위치 지정은 랙(Rack)단위 지정을 일차적으로 수행하고, 메모리 저장 노드 및 분할 저장영역의 할당 순으로 이루어진다.
맵퍼(Mapper)는 중간 정보를 저장할 위치 지정을 위해 메모리 클러스터 형상 정보를 가져온다.
랙 단위의 위치 지정은 라운드 로빈(Round Robin)방식으로 이루어진다.
즉, 중간 파티션 1번 정보는 랙 1번의 메모리 저장소 노드(413)에 저장되고, 중간 파티션 2번 정보는 랙 2번의 메모리 저장소 노드(423)에 저장된다.
파티션 3번 정보는 랙 3 mod R = 1 즉,랙 1번 메모리 저장소 노드(413)에 저장된다.
동일 랙에 하나 이상의 메모리 저장소 노드가 존재하면, 랙을 먼저 선택하고 나서 유휴 저장 용량이 기준값 이상인 메모리 저장 노드를 지정한다.
특정 파티션 정보를 저장할 공간이 부족한 경우 i)동일 랙의 다른 메모리 저장 노드를 지정하고, ii)다음번 랙의 메모리 저장 노드 순으로 위치를 지정한다.
해당 랙에 유휴 저장 용량이 있는 메모리 저장 노드가 없으면 다음번 랙으로 위치 이동 후 위치 지정 수행한다.
메모리 저장 노드에 저장된 분할된 중간 저장 정보가 기준값보다 많은 랙에 리듀서(Reducer)를 배치한다.
해당 랙(Rack)의 유휴 서버에 리듀서(Reducer)를 설정하고,유휴 서버가 없을 경우 전체 랙 중 임의의 서버에 리듀서(Reducer)를 설정한다.
도 5 는 본원 발명의 맵 리듀스(MapReduce)를 이용한 분산 메모리 클러스터 제어 방법의 흐름도를 보여주는 도면이다.
입력 데이터를 복수개의 파일로 분할하고 상기 분할된 파일을 정형화된 형식 데이터으로 변환하여 상기 정형화된 형식 데이터를 저장할 랙(Rack)의 위치, 저장 노드의 위치 및 상기 저장 노드에 포함된 분할 저장영역의 위치를 제 1 규칙 및 메모리 클러스터 형상 정보를 기초로 지정한다(S510).
제 2 규칙 및 상기 메모리 클러스터 형상 정보를 기초로 상기 정형화된 형식 데이터를 병합(merge)하여 출력 데이터를 생성하는 리듀서(reducer)의 위치를 지정한다(S520).
메모리 저장 노드와 리듀서(reducer)의 위치를 지정을 위해 필요한 메모리 클러스터 형상 정보는 복수개의 상기 랙(Rack)의 식별정보 및 적어도 하나 이상의 상기 저장 노드의 식별정보, 복수개의 상기 분할 저장영역의 식별정보, 상기 입력 데이터를 복수개의 파일로 분할하고, 복수개의 상기 맵퍼 (Mapper) 식별정보, 상기 리듀서(reducer) 식별정보를 포함한다.
세부적으로 메모리 클러스터 형상 정보에는 복수개의 랙(Rack) 스위치나 이를 연동하는 접선 스위치의 정보를 더 포함된다.
맵퍼(Mapper)에 의해 분할된 상기 입력 데이터의 파일의 개수와 상기 분할 저장영역의 개수는 동일하게 할당하고, 상기 분할 저장영역의 개수와 동일하게 상기 리듀서(reducer) 개수를 설정한다.
메모리 클러스터 관리부에서 가상 메모리인 분할 저장영역을 분할된 입력 데이터의 개수와 동일하게 할당하고, 리듀서(Reducer) 개수와 이와 동일하게 설정함으로써 중간 정보 데이터가 일부 메모리 저장영역에 편중되는 것을 방지한다.
제 1 규칙은 상기 랙(Rack) 식별정보를 기초로 랙(Rack) 단위 위치를 지정한 후, 상기 저장 노드 및 상기 분할 저장영역의 저장용량을 기초로 상기 분할 저장영역의 위치를 지정한다.
랙(Rack) 단위 위치 지정은 라운드로빈(Round Robin)방식으로 수행되고, 유휴 저장 용량이 많은 저장 노드 및 분할 저장영역에 가장 먼저 중간 정보 데이터의 저장이 이루어지는 것이다.
리듀서(reducer)의 위치 지정에 필요한 제 2 규칙은 상기 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양이다.
분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양이 많은 순서대로 상기 리듀서(reducer)의 위치를 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (14)

  1. 복수개의 파일로 분할된 입력데이터를 저장할 분할 저장영역의 개수를 할당하고, 상기 분할 저장영역에 저장된 파일을 병합(merge)하여 출력 데이터를 생성하는 리듀서(reducer) 개수를 상기 분할 저장영역의 개수와 동일하게 설정하는 메모리 클러스터 관리부;
    상기 입력데이터를 복수개의 파일로 분할하고, 상기 분할된 파일을 정형화된 형식 데이터로 변환하는 맵퍼(Mapper)를 제어하여 상기 정형화된 형식 데이터를 저장할 상기 분할 저장영역의 위치를 제 1 규칙 및 메모리 클러스터 형상 정보를 기초로 지정하고, 제 2 규칙 및 상기 메모리 클러스터 형상 정보를 기초로 상기 리듀서(reducer)의 위치를 지정하는 제어부; 및
    상기 메모리 클러스터 형상 정보를 저장하는 메모리 클러스터 형상 저장부;를 포함하는 것을 특징으로 하는 분산 메모리 클러스터 제어 장치.
  2. 제 1 항에 있어서, 상기 메모리 클러스터 형상 정보는
    적어도 하나 이상의 저장 노드를 포함하는 복수개의 랙(Rack) 식별정보 및 상기 저장 노드 식별정보, 상기 저장 노드에 포함되는 상기 분할 저장영역 식별정보, 복수개의 상기 맵퍼(Mapper) 식별정보, 복수개의 상기 리듀서(reducer) 식별정보를 포함하는 것을 특징으로 하는 분산 메모리 클러스터 제어 장치.
  3. 제 2 항에 있어서,
    상기 제 1 규칙은 상기 랙(Rack) 식별정보를 기초로 랙(Rack) 단위 위치를 지정한 후, 상기 저장 노드 및 상기 분할 저장영역의 저장용량을 기초로 상기 분할 저장영역의 위치를 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 장치.
  4. 제 2 항에 있어서,
    상기 제 2 규칙은 상기 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양에 따라 상기 리듀서(reducer)의 위치를 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 장치.
  5. 제 3 항에 있어서,
    상기 랙(Rack) 단위 위치 지정은 라운드로빈(Round Robin)방식으로 수행되고, 상기 분할 저장영역의 위치를 지정은 유휴 저장 용량이 기준값 이상인 저장 노드 및 분할 저장영역을 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 장치.
  6. 제 4 항에 있어서,
    상기 리듀서(reducer)의 위치를 지정은 기준값 이상의 상기 정형화된 형식 데이터를 저장한 상기 분할 저장 영역을 포함한 저장 노드의 랙(Rack)을 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 장치.
  7. 입력 데이터를 복수개의 파일로 분할하고 상기 분할된 파일을 정형화된 형식 데이터로 변환하여 상기 정형화된 형식 데이터를 저장할 랙(Rack)의 위치, 저장 노드의 위치 및 상기 저장 노드에 포함된 분할 저장영역의 위치를 제 1 규칙 및 메모리 클러스터 형상 정보를 기초로 지정하는 메모리 노드 위치 지정 단계; 및
    제 2 규칙 및 상기 메모리 클러스터 형상 정보를 기초로 상기 정형화된 형식 데이터를 병합(merge)하여 출력 데이터를 생성하는 리듀서(reducer)의 위치를 지정하는 리듀서(reducer)의 위치 지정 단계;를 포함하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
  8. 제 7 항에 있어서,
    상기 메모리 클러스터 형상 정보는 복수개의 상기 랙(Rack)의 식별정보 및 적어도 하나 이상의 상기 저장 노드의 식별정보, 복수개의 상기 분할 저장영역의 식별정보, 상기 입력 데이터를 복수개의 파일로 분할하고, 복수개의 상기 맵퍼 (Mapper) 식별정보, 상기 리듀서(reducer) 식별정보를 포함하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
  9. 제 8 항에 있어서,
    상기 맵퍼(Mapper)에 의해 분할된 상기 입력 데이터의 파일의 개수와 상기 분할 저장영역의 개수는 동일하게 할당하고, 상기 분할 저장영역의 개수와 동일하게 상기 리듀서(reducer) 개수를 설정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
  10. 제 8 항에 있어서,
    상기 제 1 규칙은 상기 랙(Rack) 식별정보를 기초로 랙(Rack) 단위 위치를 지정한 후, 상기 저장 노드 및 상기 분할 저장영역의 저장용량을 기초로 상기 분할 저장영역의 위치를 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
  11. 제 8 항에 있어서,
    상기 제 2 규칙은 상기 분할 저장 영역에 저장된 상기 정형화된 형식 데이터의 양에 따라 상기 리듀서(reducer)의 위치를 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
  12. 제 10 항에 있어서,
    상기 랙(Rack) 단위 위치 지정은 라운드로빈(Round Robin)방식으로 수행되고, 상기 분할 저장영역의 위치를 지정은 유휴 저장 용량이 기준값 이상인 저장 노드 및 분할 저장영역을 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
  13. 제 11 항에 있어서,
    상기 리듀서(reducer)의 위치를 지정은 기준값 이상의 상기 정형화된 형식 데이터를 저장한 상기 분할 저장 영역을 포함한 저장 노드의 랙(Rack)을 지정하는 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
  14. 제 8 항에 있어서,
    상기 저장 노드에 포함된 분할 저장영역은 가상 메모리인 것을 특징으로 하는 분산 메모리 클러스터 제어 방법.
KR1020110012867A 2011-02-14 2011-02-14 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법 KR101502896B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020110012867A KR101502896B1 (ko) 2011-02-14 2011-02-14 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
PCT/KR2011/008578 WO2012111905A2 (ko) 2011-02-14 2011-11-10 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
US13/396,329 US8984085B2 (en) 2011-02-14 2012-02-14 Apparatus and method for controlling distributed memory cluster

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110012867A KR101502896B1 (ko) 2011-02-14 2011-02-14 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120092930A true KR20120092930A (ko) 2012-08-22
KR101502896B1 KR101502896B1 (ko) 2015-03-24

Family

ID=46637740

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110012867A KR101502896B1 (ko) 2011-02-14 2011-02-14 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법

Country Status (3)

Country Link
US (1) US8984085B2 (ko)
KR (1) KR101502896B1 (ko)
WO (1) WO2012111905A2 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101411563B1 (ko) * 2013-11-01 2014-06-25 한국과학기술정보연구원 리소스 지역성에 기초한 분산 처리 시스템 및 분산 처리 방법
WO2014193037A1 (ko) * 2013-05-31 2014-12-04 삼성에스디에스 주식회사 맵리듀스 연산 가속 시스템 및 방법
KR20160098856A (ko) 2015-02-11 2016-08-19 영남대학교 산학협력단 맵리듀스 클러스터에서 에너지 효율적인 작업 할당 및 노드 활성화 방법
KR101668397B1 (ko) * 2015-12-24 2016-10-21 한국과학기술정보연구원 대용량 과학 데이터 즉시 분석 방법 및 장치
US10135926B2 (en) 2015-06-09 2018-11-20 Electronics And Telecommunications Research Institute Shuffle embedded distributed storage system supporting virtual merge and method thereof

Families Citing this family (147)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
CN102546782B (zh) * 2011-12-28 2015-04-29 北京奇虎科技有限公司 一种分布式系统及其数据操作方法
CN103970520B (zh) 2013-01-31 2017-06-16 国际商业机器公司 MapReduce架构中的资源管理方法、装置和架构系统
KR20160124743A (ko) * 2013-12-02 2016-10-28 큐베이스 엘엘씨 클러스터링된 인-메모리 데이터베이스의 고안 및 구현
KR102193012B1 (ko) 2014-02-04 2020-12-18 삼성전자주식회사 분산 처리 시스템 및 이의 동작 방법
US10291693B2 (en) 2014-04-30 2019-05-14 Hewlett Packard Enterprise Development Lp Reducing data in a network device
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
CN104462853B (zh) * 2014-12-29 2017-05-24 南通大学 用于电子病历特征提取的种群精英分布云协同均衡方法
CN104537682B (zh) * 2015-01-26 2018-09-07 四川众亿得科技有限责任公司 一种医学影像的分割与调度方法
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10310748B2 (en) 2015-08-26 2019-06-04 Pivotal Software, Inc. Determining data locality in a distributed system using aggregation of locality summaries
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
KR101710138B1 (ko) * 2015-09-21 2017-02-24 한국생명공학연구원 데이터 분산 처리 시스템 및 데이터 분산 처리 방법
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10649996B2 (en) 2016-12-09 2020-05-12 Futurewei Technologies, Inc. Dynamic computation node grouping with cost based optimization for massively parallel processing
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
CN107247564B (zh) * 2017-07-17 2021-02-02 苏州浪潮智能科技有限公司 一种数据处理的方法及系统
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
CN109117285B (zh) * 2018-07-27 2021-12-28 高新兴科技集团股份有限公司 支持高并发的分布式内存计算集群系统
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11269687B2 (en) 2019-06-11 2022-03-08 International Business Machines Corporation Map reduce using coordination namespace hardware acceleration
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
CN112751687B (zh) * 2019-10-30 2023-03-24 北京车和家信息技术有限公司 一种集群创建方法及装置
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
CN114995992A (zh) * 2022-01-29 2022-09-02 中国华能集团清洁能源技术研究院有限公司 一种电池储能分布式计算控制系统及控制方法
CN114880272A (zh) * 2022-03-31 2022-08-09 深圳清华大学研究院 全局高度数顶点集合通信的优化方法及应用

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928459B1 (en) 2000-07-18 2005-08-09 International Business Machines Corporation Plurality of file systems using weighted allocation to allocate space on one or more storage devices
US7624118B2 (en) 2006-07-26 2009-11-24 Microsoft Corporation Data processing over very large databases
US20080114865A1 (en) * 2006-11-14 2008-05-15 Rothman Michael A Methods and apparatus to manage computing platforms
US8230070B2 (en) * 2007-11-09 2012-07-24 Manjrasoft Pty. Ltd. System and method for grid and cloud computing
KR101013073B1 (ko) * 2007-12-17 2011-02-14 한국전자통신연구원 태스크 분배 및 병렬 처리 시스템과 그 방법
KR100946987B1 (ko) * 2007-12-18 2010-03-15 한국전자통신연구원 분산 병렬 처리 시스템의 다중 맵 태스크 중간 결과 정렬 및 결합 장치, 및 방법
US8996683B2 (en) * 2008-06-09 2015-03-31 Microsoft Technology Licensing, Llc Data center without structural bottlenecks
KR20100092850A (ko) 2009-02-13 2010-08-23 경희대학교 산학협력단 클라우드 컴퓨팅 환경에서의 리소스 분배 장치 및 그 방법
US8364923B2 (en) * 2009-03-30 2013-01-29 Oracle America, Inc. Data storage system manager and method for managing a data storage system
KR101033813B1 (ko) 2009-05-08 2011-05-13 주식회사 클루넷 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법
KR20100122197A (ko) 2009-05-12 2010-11-22 주식회사 클루넷 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법
US8572575B2 (en) * 2009-09-14 2013-10-29 Myspace Llc Debugging a map reduce application on a cluster
WO2011074699A1 (ja) * 2009-12-18 2011-06-23 日本電気株式会社 分散処理管理サーバ、分散システム、分散処理管理プログラム及び分散処理管理方法
US20110161294A1 (en) * 2009-12-30 2011-06-30 Sun Microsystems, Inc. Method for determining whether to dynamically replicate data
US9001663B2 (en) * 2010-02-26 2015-04-07 Microsoft Corporation Communication transport optimized for data center environment
US8701113B2 (en) * 2010-05-27 2014-04-15 International Business Machines Corporation Switch-aware parallel file system
US8224825B2 (en) * 2010-05-31 2012-07-17 Microsoft Corporation Graph-processing techniques for a MapReduce engine
US9323775B2 (en) * 2010-06-19 2016-04-26 Mapr Technologies, Inc. Map-reduce ready distributed file system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014193037A1 (ko) * 2013-05-31 2014-12-04 삼성에스디에스 주식회사 맵리듀스 연산 가속 시스템 및 방법
KR101411563B1 (ko) * 2013-11-01 2014-06-25 한국과학기술정보연구원 리소스 지역성에 기초한 분산 처리 시스템 및 분산 처리 방법
KR20160098856A (ko) 2015-02-11 2016-08-19 영남대학교 산학협력단 맵리듀스 클러스터에서 에너지 효율적인 작업 할당 및 노드 활성화 방법
US10135926B2 (en) 2015-06-09 2018-11-20 Electronics And Telecommunications Research Institute Shuffle embedded distributed storage system supporting virtual merge and method thereof
KR101668397B1 (ko) * 2015-12-24 2016-10-21 한국과학기술정보연구원 대용량 과학 데이터 즉시 분석 방법 및 장치

Also Published As

Publication number Publication date
WO2012111905A2 (ko) 2012-08-23
WO2012111905A3 (ko) 2012-10-11
US8984085B2 (en) 2015-03-17
KR101502896B1 (ko) 2015-03-24
US20120209943A1 (en) 2012-08-16

Similar Documents

Publication Publication Date Title
KR101502896B1 (ko) 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
CN102156665B (zh) 一种虚拟化系统竞争资源差异化服务方法
US20190370043A1 (en) Cooperative memory management
CN106990915B (zh) 一种基于存储介质类型和加权配额的存储资源管理方法
CN104219279B (zh) 用于超大规模分布式处理应用的模块化架构的系统和方法
US10356150B1 (en) Automated repartitioning of streaming data
US20150127880A1 (en) Efficient implementations for mapreduce systems
KR102521051B1 (ko) 하이브리드 데이터 룩-업 방법
CN104317742A (zh) 一种优化空间管理的自动精简配置方法
US20170344546A1 (en) Code dispersion hash table-based map-reduce system and method
US11093410B2 (en) Cache management method, storage system and computer program product
CN105320608A (zh) 用于控制存储器设备处理访问请求的存储器控制器和方法
CN106570113B (zh) 一种海量矢量切片数据云存储方法及系统
JP7467593B2 (ja) リソース割振り方法、記憶デバイス、および記憶システム
US8516070B2 (en) Computer program and method for balancing processing load in storage system, and apparatus for managing storage devices
CN109582600A (zh) 一种数据处理方法及装置
TWI704488B (zh) 網路裝置、用於網路裝置之記憶體系統及操作網路裝置之方法
CN106598724A (zh) 用于在计算系统中管理内存的方法
JP5810918B2 (ja) スケジューリング装置、スケジューリング方法及びプログラム
CN110209693A (zh) 高并发数据查询方法、装置、系统、设备及可读存储介质
CN101783814A (zh) 海量存储系统的元数据存储方法
US9658951B1 (en) Scalable high bandwidth memory in a network device
CN105469173A (zh) 一种静态内存进行优化管理的方法
Gao et al. Compact, popularity-aware and adaptive hybrid data placement schemes for heterogeneous cloud storage
US20220222010A1 (en) Advanced interleaving techniques for fabric based pooling architectures

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