KR20170111883A - 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치 및 방법 - Google Patents

빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치 및 방법 Download PDF

Info

Publication number
KR20170111883A
KR20170111883A KR1020160038124A KR20160038124A KR20170111883A KR 20170111883 A KR20170111883 A KR 20170111883A KR 1020160038124 A KR1020160038124 A KR 1020160038124A KR 20160038124 A KR20160038124 A KR 20160038124A KR 20170111883 A KR20170111883 A KR 20170111883A
Authority
KR
South Korea
Prior art keywords
data
job
block
big data
node
Prior art date
Application number
KR1020160038124A
Other languages
English (en)
Other versions
KR101791901B1 (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 KR1020160038124A priority Critical patent/KR101791901B1/ko
Priority to US15/186,230 priority patent/US20170286008A1/en
Publication of KR20170111883A publication Critical patent/KR20170111883A/ko
Application granted granted Critical
Publication of KR101791901B1 publication Critical patent/KR101791901B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F17/30194
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2219Large Object storage; Management thereof
    • G06F17/30318
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명에서는 종래의 빅데이터 시스템이, 하나의 랙에 구성될 수 있는 데이터 노드는 한정되어 있어, 메모리(Memory), SSD, HDD(Hard Disk Drive)에 특별한 기준없이 무작위로 저장되고, 이로 인해, 클러스터가 커지고, 랙의 수도 많아져서 데이터분석속도가 느려지는 문제점과, SSD만을 사용할 경우에, 읽기와 쓰기에 지연시간이 발생되며, 마모도 특성 및 한정된 블록 당 삭제 횟수로 인해 SSD만의 적용이 제한되고 있는 문제점을 개선하고자, 트랜스포머형 빅데이터저장모듈(100), 병렬처리형 빅데이터분석모듈(200), 빅데이터관리용 API모듈(300)이 구성됨으로서, 특정작업(Job)이 실행되는 빈도에 따라 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 데이터를 분산 저장시킬 수 있어, 대용량의 빅데이터 저장효율성을 기존에 비해 70% 향상시킬 수 있고, 트랜스포머형 빅데이터저장모듈에 분산저장된 데이터를 불러와서, 여러 개로 쪼갠 다음 여러 개로 나눠서 병렬처리시킨 후, 클라이언트가 요청한 작업(Job)에 해당되는 특정 데이터를 분석시킬 수 있어, 기존에 비해 빅데이터 분석 속도를 80% 향상시킬 수 있으며, 클라이언트가 요청한 특정작업(Job) 결과물을 웹인터페이스로 표출시키거나, 직접 클라이언트에게 전송시킬 수 있어, 양방향 실시간 응답형 빅데이터 플랫폼 시장을 주도해 나갈 수 있는 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치 및 방법을 제공하는데 그 목적이 있다.

Description

빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치 및 방법{THE APPARATUS AND METHOD OF SMART STORAGE PLATFOAM FOR EFFICIENT STORAGE OF BIG DATA}
본 발명에서는 특정작업(Job)이 실행되는 빈도에 따라 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 데이터를 분산 저장시킬 수 있는 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치 및 방법에 관한 것이다.
일반적으로 빅데이터 관리 시스템은 관리의 편의성을 위해 데이터들을 특정 크기의 블록들로 나누고, 이러한 데이터 블록들을 몇개(일예 : 3개의 복사본)의 복제본을 만들어 데이터 저장 공간인 데이터 노드들에 분산하여 저장한다.
특정 데이터가 어느 데이터 노드에 저장되어 있는지를 알기 위해 관리노드에서 데이터 저장 정보인 메타데이터를 메모리(Memory), SSD(Solid State Disk), HD(Hard Disk)에 저장하여 관리하고 있다.
이때, 특정 클라이언트가 어떤 데이터를 요구할 때 네임노드에 문의하여 그 데이터가 저장된 데이터 노드를 파악하여 실제 데이터에 접근할 수 있다.
그리고, 빅데이터는 보통 분석용으로 많이 활용되는데, 특정 작업들을 할 때 데이터 노드들에서 병렬처리하여 속도를 높이고 있다.
병렬처리 결과들을 수합하여 최종 결과를 요구 클라이언트에 전달하는 방식으로 이루어진다.
하지만, 많은 수의 데이터 노드들이 클러스터로 이루어진 빅데이터 시스템으로만 구성되기 때문에, 하나의 랙에 구성될 수 있는 데이터 노드는 한정되어 있어, 메모리(Memory), SSD, HD(Hard Disk)에 특별한 기준없이 무작위로 저장되고, 이로 인해, 클러스터가 커져고, 랙의 수도 많아져서 데이터분석속도가 느려지는 문제점이 있었다.
또한, SSD만을 사용할 경우에, 읽기와 쓰기에 지연시간이 발생되며, 마모도 특성 및 한정된 블록 당 삭제 횟수 등 내재적인 문제점으로 인해, SSD만의 적용이 제한되고 있는 실정이다.
국내공개특허공보 제10-2014-0125312호
상기의 문제점을 해결하기 위해 본 발명에서는 특정작업(Job)이 실행되는 빈도에 따라 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 데이터를 분산 저장시킬 수 있고, 트랜스포머형 빅데이터저장모듈에 분산저장된 데이터를 불러와서, 여러 개로 쪼갠 다음 여러 개로 나눠서 병렬처리시킨 후, 클라이언트가 요청한 작업(Job)에 해당되는 특정 데이터를 분석시킬 수 있으며, 클라이언트가 요청한 특정작업(Job) 결과물을 웹인터페이스로 표출시키거나, 또는 직접 클라이언트에게 전송시킬 수 있는 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치 및 방법을 제공하는데 그 목적이 있다.
상기의 목적을 달성하기 위해 본 발명에 따른 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치는
빅데이터 중 특정작업(Job)이 실행되는 빈도에 따라 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 데이터를 분산 저장시키는 트랜스포머형 빅데이터저장모듈(100)과,
클라이언트가 요청한 특정작업(Job)에 따른 데이터분석시, 트랜스포머형 빅데이터저장모듈에 분산저장된 데이터를 불러와서, 여러 개로 쪼갠 다음 여러 개로 나눠서 병렬처리시킨 후, 클라이언트가 요청한 특정작업(Job)에 해당되는 특정 데이터를 분석시키는 병렬처리형 빅데이터분석모듈(200)과,
병렬처리형 빅데이터분석모듈을 통해 분석시킨 특정데이터를 화면상에 표출시킨 후, 특정작업(Job)을 요청한 클라이언트에게 전송시키는 빅데이터관리용 API모듈(300)로 구성됨으로서 달성된다.
이상에서 설명한 바와 같이, 본 발명에서는
첫째, 특정작업(Job)이 실행되는 빈도에 따라 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 데이터를 분산 저장시킬 수 있어, 대용량의 빅데이터 저장효율성을 기존에 비해 70% 향상시킬 수 있다.
둘째, 트랜스포머형 빅데이터저장모듈에 분산저장된 데이터를 불러와서, 여러 개로 쪼갠 다음 여러 개로 나눠서 병렬처리시킨 후, 클라이언트가 요청한 작업(Job)에 해당되는 특정 데이터를 분석시킬 수 있어, 기존에 비해 빅데이터 분석 속도를 80% 향상시킬 수 있다.
셋째, 클라이언트가 요청한 특정작업(Job) 결과물을 웹인터페이스로 표출시키거나, 직접 클라이언트에게 전송시킬 수 있어, 양방향 실시간 응답형 빅데이터 플랫폼 시장을 주도해 나갈 수 있다.
도 1은 본 발명에 따른 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치(1)의 구성요소를 도시한 전체구성도,
도 2는 본 발명에 따른 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치(1)의 구성요소를 도시한 블럭도,
도 3은 본 발명에 따른 트랜스포머형 빅데이터저장모듈 중 네임제어부와 데이터노드부의 구성을 도시한 일실시예도,
도 4는 본 발명에 따른 트랜스포머형 빅데이터저장모듈의 구성요소를 도시한 블럭도,
도 5는 본 발명에 따른 빈도추출제어부의 구성요소를 도시한 블럭도,
도 6은 본 발명에 따른 스토리지제어부의 구성요소를 도시한 블럭도,
도 7은 본 발명에 따른 메인제어부의 구성요소를 도시한 블럭도,
도 8은 본 발명에 따른 스토리지제어부의 SSD(Solid State Disk)(150a)는 다수의 플래시 메모리 칩을 연결하여 하나의 저장장치로 구성된 것을 도시한 일실시예도,
도 9는 본 발명에 따른 메인제어부가 데이터를 저장할 때, 데이터를 블럭(block) 단위로나누고, 각각의 블럭(block)을 여러개의 복제본들로 분산저장시키는 것을 도시한 일실시예도,
도 10은 본 발명에 따른 병렬처리형 빅데이터분석모듈의 구성요소를 도시한 블럭도,
도 11은 본 발명에 따른 빅데이터분석제어부의 구성요소를 도시한 블럭도,
도 12는 본 발명에 따른 빅데이터관리용 API모듈의 구성요소를 도시한 블럭도,
도 13은 본 발명에 따른 빅데이터관리용 API모듈에서 병렬처리형 빅데이터분석모듈을 통해 분석시킨 특정데이터를 화면상에 표출시킨 후, 요청한 클라이언트에게 전송시키는 것을 도시한 일실시예도,
도 14는 본 발명에 따른 본 발명에 따른 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼방법을 도시한 순서도,
도 15는 본 발명에 따른 클라이언트가 요청한 작업(Job)에 해당되는 특정 데이터를 분석시키는 단계 중 블럭빅데이터분석제어부를 통해 레코드 블럭의 리드(Read) 빈도를 분석하여, 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 저장되도록 맞춤형 선택 후, 트랜스포머형 빅데이터저장모듈로 이동제어시키는 단계가 포함되어 이루어지는 것을 도시한 블럭도,
도 16은 본 발명에 따른 클라이언트가 요청한 작업(Job)에 해당되는 특정 데이터를 분석시키는 단계 중 블럭쓰기형빅데이터분석제어부를 통해 레코드 블럭의 쓰기(write)시, 리드(read) 빈도를 예측분석하여 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 맞춤형 저장제어시키는 단계가 포함되어 이루어지는 것을 도시한 블럭도,
도 17은 본 발명에 따른 클라이언트가 요청한 작업(Job)에 해당되는 특정 데이터를 분석시키는 단계 중 RRT형 복제본블럭리드제어부에서 레코드 블럭의 복제본들 중 리드 응답 타임(Read Response Time)이 가장 짧을 것으로 예측되는 복제본을 선택하여 블럭리드(block read)를 수행시키는 단계가 포함되어 이루어지는 것을 도시한 블럭도.
먼저, 본 발명에서 설명되는 빅 데이터는 데이터 수집 및 관리,처리 소프트웨어의 수용 한계를 넘어서는 크기의 데이터를 말한다.
빅 데이터의 특징은 사이즈 크기가 끊임없이 변화한다는 것으로, 데이터의 양(Volume),데이터 생성 속도(Velocity),형태의 다양성(Variety)을 의미한다.
또한, 본 발명에서 설명되는 메모리, SSD, HDD는 데이터센터용 스토리지 디바이스로서, 특히 SSD는 연속읽기 2,800~5,000MB/s, 연속쓰기 1,800~3,500MB/s로 구성된다. 그리고, SSD용 버스통신 프로토콜이 구성되어, 기존 대비 저장성능을 6배이상으로 향상시킬 수가 있다.
또한, 본 발명에서 설명되는 특정작업(Job)이 실행되는 빈도에 따라 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 데이터를 분산 저장시키는 이유는 스토리지 디바이스인 메모리, SSD, HDD의 종류에 따라 블록 리드(Block read) 속도 차이가 있기 때문에, 그 블록 리드 속도 차이를 이용하여 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 데이터를 분산 저장시키기 위함이다.
이하, 본 발명에 따른 바람직한 실시예를 도면을 첨부하여 설명한다.
도 1은 본 발명에 따른 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치(1)의 구성요소를 도시한 전체구성도에 관한 것이고, 도 2는 본 발명에 따른 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치(1)의 구성요소를 도시한 블럭도에 관한 것으로, 이는 트랜스포머형 빅데이터저장모듈(100), 병렬처리형 빅데이터분석모듈(200), 빅데이터관리용 API모듈(300)로 구성된다.
먼저, 본 발명에 따른 트랜스포머형 빅데이터저장모듈(100)에 관해 설명한다.
상기 트랜스포머형 빅데이터저장모듈(100)은 빅데이터 중 특정작업(Job)이 실행되는 빈도에 따라 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 데이터를 분산 저장시키는 역할을 한다.
이는 도 4에 도시한 바와 같이, 네임노드부(110), 맵핑제어부(120), 데이터 노드부(130), 빈도추출제어부(140), 스토리지제어부(150), 메인제어부(160)로 구성된다.
첫째, 본 발명에 따른 네임노드부(110)에 관해 설명한다.
상기 네임노드부(110)는 파일과 디렉터리의 읽기(open), 닫기(close), 이름 바꾸기(rename), 병렬처리형 빅데이터분석모듈의 네임스페이스의 기능을 수행시키는 역할을 한다.
이는 도 3에 도시한 바와 같이, N개의 데이터노드부가 포함되어 구성된다.
그리고, 메타데이터로 파일명과 복제수(일예 : 3개) 등으로 구성된다.
클라이언트가 파일을 요청할 시, 네임노드부는 해당 파일의 블록을 가지고 있는 데이터노드부에게 입출력을 지시하고, 해당 데이터노드부는 클라이언트에게 해당 블록을 전송한다.
둘째, 본 발명에 따른 맵핑제어부(120)에 관해 설명한다.
상기 맵핑제어부(120)는 데이터 노드부와 블록들의 맵핑을 결정제어시키는 역할을 한다.
셋째, 본 발명에 따른 데이터 노드부(130)에 관해 설명한다.
상기 데이터 노드부(130)는 실행될 때마다 노드에 추가되는 스토리지(메모리, SSD, HDD)를 관리하면서, 병렬처리형 빅데이터분석모듈이 요구하는 읽기(read), 쓰기(write) 기능을 수행시키는 역할을 한다.
넷째, 본 발명에 따른 빈도추출제어부(140)에 관해 설명한다.
상기 빈도추출제어부(140)는 데이터노드부의 블록당 특정작업(Job)이 실행되는 빈도를 기간별에 따라 키워드 카운트수를 통해 추출해내어 빈도데이터를 형성시키는 역할을 한다.
이는 도 5에 도시한 바와 같이, 주간급증키워드데이터추출부(141), 월간급증키워드데이터추출부(142), 연간급증키워드데이터추출부(143)로 구성된다.
상기 주간급증키워드데이터추출부(141)는 HiveQL 쿼리를 이용하여 주간 급증 키워드 데이터를 추출하는 역할을 한다.
상기 월간급증키워드데이터추출부(142)는 HiveQL 쿼리를 이용하여 월간 급증 키워드 데이터를 추출하는 역할을 한다.
상기 연간급증키워드데이터추출부(143)는 HiveQL 쿼리를 이용하여 연간 급증 키워드 데이터를 추출하는 역할을 한다.
다섯째, 본 발명에 따른 스토리지제어부(150)에 관해 설명한다.
상기 스토리지제어부(150)는 빈도추출제어부를 통해 추출된 특정작업(Job)의 빈도데이터에 따라 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 데이터를 분산 저장시키는 역할을 한다.
이는 도 6에 도시한 바와 같이, 제1 트랜스포머형 스토리지모드(151), 제2 트랜스포머형 스토리지모드(152), 제3 트랜스포머형 스토리지모드(153), 제4 트랜스포머형 스토리지모드(154)로 구성된다.
상기 제1 트랜스포머형 스토리지모드(151)는 데이터노드부의 각 블록당, 3개의 복제본이 설정되면, 빈도추출제어부를 통해 추출된 특정작업(Job)의 빈도데이터에 따라 한개의 복제본은 메모리에 저장시키고, 나머지 두개의 복제본은 HDD에 저장시키도록 분산 저장시키는 역할을 한다.
상기 제2 트랜스포머형 스토리지모드(152)는 데이터노드부의 각 블록당, 3개의 복제본이 설정되고, 메모리의 용량이 없으면, 빈도추출제어부를 통해 추출된 특정작업(Job)의 빈도데이터에 따라 한개의 복제본은 SSD에 저장시키고, 나머지 두개의 복제본은 HDD에 저장시키도록 분산 저장시키는 역할을 한다.
상기 제3 트랜스포머형 스토리지모드(153)는 데이터노드부의 각 블록당, 3개의 복제본이 설정되고, 메모리의 용량이 없고, SSD의 용량이 없으면, 빈도추출제어부를 통해 추출된 특정작업(Job)의 빈도데이터에 따라 3개의 복제본은 HDD에 저장시키도록 분산 저장시키는 역할을 한다.
상기 제4 트랜스포머형 스토리지모드(154)는 데이터노드부의 각 블록당, 3개의 복제본이 설정되면, 빈도추출제어부를 통해 추출된 특정작업(Job)의 빈도데이터 중 1순위로 빈번하게 사용되는 복제본을 메모리에 저장시키고, 2순위로 빈번하게 사용되는 복제본을 SSD에 저장시키며, 3순위로 빈번하게 사용되는 복제본을 HDD에 저장시키도록 분산 저장시키는 역할을 한다.
본 발명에 따른 스토리지제어부의 SSD(Solid State Disk)(150a)는 다수의 플래시 메모리 칩을 연결하여 하나의 저장장치로 구성된다.
이는 도 8에 도시한 바와 같이, PC와 연결되는 인터페이스와 다수의 플래시 메모리를 제어하는 플래시 컨트롤러, 그리고 인터페이스와 플래시 컨트롤러 사이의 데이터 교환 작업을 제어하는 컨트롤러 및 버스와 SSD 간의 처리 속도 차이를 줄여주는 버퍼메모리로 구성된다.
상기 SSD의 플래시 메모리에 저장된 데이터는 플래시 메모리 컨트롤러를 거쳐 FIFO & Control가 적용되어 SRAM Controller에 접근한다.
상기 데이터는 SRAM Controller에서 프로세서가 내린 명령에 따라 RAM에 접근이 결정된다.
상기 플래시 메모리는 구조에 따라 NOR 플래시메모리와 NAMD 플래시 메모리와 구분한다.
SSD는 플래시 반도체를 이용한 저장장치로 NAND 플래시 메모리를 사용한다.
SSD에서 사용되는 플래시메모리는 모두 NAND 플래시메모리로 구성된다.
상기 NAND 플래시메모리 하나의 칩은 뱅크로 정의되며, 뱅크는 다시 플레인으로 나누어진다.
하나의 플레인은 다시 다수의 블록으로 나누어지며, 블록은 다시 다수의 페이지와 스페어로 구성된다.
여섯째, 본 발명에 따른 메인제어부(160)에 관해 설명한다.
상기 메인제어부(160)는 각 기기의 전반적인 동작을 제어하면서, 특정작업(Job)이 실행될 데이터노드를 선택제어하는 역할을 한다.
이는 도 7에 도시한 바와 같이, 제1 Job 실행노드(161), 제2 Job 실행노드(162), 제3 Job 실행노드(163), 제4 Job 실행노드(164) 중 어느 하나를 선택제어시키도록 구성된다.
상기 제1 Job 실행노드(161)는 우선 특정작업(Job)이 실행될 데이터 블록이 메모리에 저장되어 있는 데이터 노드를 우선 실행 노드 A로 설정한 후, 1 순위로 실행시키도록 제어하는 역할을 한다.
상기 제2 Job 실행노드(162)는 우선 실행 노드 A가 없거나 또는 우선 실행 노드 A가 현재 처리하고 있는 특정작업(Job)이 CPU 사용률이 기준설정치 이상일 경우에, 특정작업(Job)이 실행될 블록이 SSD에 저장되어 있는 데이터노드를 우선 실행 노드 B로 설정한 후, 2 순위로 실행시키도록 제어하는 역할을 한다.
여기서, CPU 사용률이 기준설정치 이상일 경우에서, 기준설정치는 상황과 목적에 따라 수시로 변경이 가능한 값으로서, 본 발명에서 60%~90%로 설정하고, 보다 바람직하게는 80%로 설정한다.
상기 제3 Job 실행노드(163)는 우선 실행 노드 B가 없거나 우선 실행 노드 B가 현재 처리하고 있는 특정작업(Job)이 CPU 사용률이 기준설정치 이상일 경우에, 특정작업(Job)이 실행될 블록이 HDD에 저장되어 있는 데이터노드를 우선 실행 노드 C로 설정한 후, 3 순위로 실행시키도록 제어하는 역할을 한다.
상기 제4 Job 실행노드(164)는 우선 실행 노드 C가 없거나 우선 실행 노드 C가 현재 처리하고 있는 특정작업(Job)이 CPU 사용률이 기준설정치 이상일 경우에, 특정작업(Job)이 실행될 블록이 메모리에 저장되어 있는 데이터 노드를 우선 실행 노드 D로 설정한 후, 4 순위로 실행시키도록 제어하는 역할을 한다.
또한, 본 발명에 따른 메인제어부는 데이터복제기능을 갖는다.
이는 메타데이터를 가지고 있는 하나의 네임노드부와 복제된 블록을 가지고 있는 데이터노드로 구성되어 있을 경우에, /users/sameerp/data/part-0 파일은 블록 복제수가 3개로 설정되어 각 블록당 2개씩 복제되며, 1, 3블록에 해당된다.
/users/sameerp/data/part-1 파일은 블록 복제수가 3으로 설정되어 각 블록 당 3개씩 복제되며 2,4,5블록에 해당된다.
또한, 메인제어부는 도 9에서 도시한 바와 같이, 데이터를 저장할 때, 데이터를 블럭(block) 단위로나누고, 각각의 블럭(block)을 여러개의 복제본들로 분산저장시킨다.
이는 기본적으로 3개의 리플리케이션 팩터(replication factor)로 구성된다.
즉, 본인node 1개, 같은 rack 내의node 1개, 다른 rack 내의 node 1개로 이루어진다.
다음으로, 본 발명에 따른 병렬처리형 빅데이터분석모듈(200)에 관해 설명한다.
상기 병렬처리형 빅데이터분석모듈(200)은 클라이언트가 요청한 특정작업(Job)에 따른 데이터분석시, 트랜스포머형 빅데이터저장모듈에 분산저장된 데이터를 불러와서, 여러 개로 쪼갠 다음 여러 개로 나눠서 병렬처리시킨 후, 클라이언트가 요청한 작업(Job)에 해당되는 특정 데이터를 분석시키는 역할을 한다.
이는 도 10에 도시한 바와 같이, 맵부(210), 컴바이너부(220), 셔플부(230), 정렬부(240), 리듀스부(250), 빅데이터분석제어부(260)로 구성된다.
첫째, 본 발명에 따른 맵부(210)에 관해 설명한다.
상기 맵부(210)는 텍스트파일에서 개행문자(줄바꿈)을 기준으로 한 줄씩 읽어들여 입력 데이터를 원하는 키값(Key-Value) 형태로 만드는 역할을 한다.
이는 사용자가 원하는 Key-Value 형태를 만들기 위해 직접 코딩시키도록 구성된다.
그리고, Key-Value 형태로 값을 뽑아냈다면 결과 객체에 Key-Value를 삽입시킨다.
이는 입력데이터의 크기에 따라서 혹은 목적에 따라서 복수개로 구성된다.
둘째, 본 발명에 따른 컴바이너부(220)에 관해 설명한다.
상기 컴바이너부(220)는 맵부에서 형성된 Key-Value를 하나로 뭉쳐서 리듀스부로 보낼 때 기준값에 설정된 데이터를 전송시키는 역할을 한다.
여기서, 기준값에 설정된 데이터는 기준값에 설정된 적은 양의 데이터을 말한다.
상기 컴바이너부(220)는 일예로 맵부에서 출력된 입력데이터가 [사과, BlueApple][바나나, Banana],[사과, RedApple][사과, YellowApple]라면,
리듀스부에게 4개의 레코드를 보내기보다는 '키'로 묶어서 전송되는 데이터의 양을 줄이도록 구성된다.
본 발명에 따른 컴바이너부는 위의 입력데이터를 [사과, {BlueApple, RedApple, YellowApple}],[바나나, Banana]로 합치는 역할을 한다.
중요한 것은 '키'로 묶어서 구성된다.
정제되지 않은 4개의 레코드를 리듀스부에 전송하기보다는 하나의 키로 묶어서 2개의 레코드만을 보내는 것이 휠씬 효율적이다.
여기서는 4개의 레코드로 일예로 들었지만, 실제로 작업을 할때에는 많은 Key-Value 쌍의 레코드들이 전송되기에 이 작업은 매우 중요하다. 각 맵부에 하나의 컴바이너부가 실행되도록 구성된다.
셋째, 본 발명에 따른 셔플부(230)에 관해 설명한다.
상기 셔플부(230)는 컴바이너부를 통해 담겨진 레코드들을 리듀스부로 전송시키는 역할을 한다.
이는 파티셔너가 포함되어 구성된다.
상기 파티셔너는 각 맵부에서 나온 출력 레코드들이 어느 리듀스부로 가야할지를 정하는 작업을 말한다.
일예로, 맵부 A와 B가 컴바이너부를 거쳐서 나온 출력레코드부가 다음과 같다고 설정한다.
맵부 A : [사과, {BlueApple, RedApple, YellowApple}],[바나나, Banana]
맵부 B : [사과, {BlackApple}], [바나나, {Banana, Bluebanana}],[딸기, strawberry]
상기 입력데이터를 리듀스부로 보내서 처리해야 하는데, 같은 키를 가지는 레코드들은 같은 리듀스부에서 처리되어야만 한다.
그래야만 원하는 데이터를 얻어낼 수가 있다.
일예로, '사과'라는 키를 가지는 레코드는 맵부 A,B말고도 C,D에서도 나올수가 있다.
이때, 하나의 리듀스부로 보내기 위해 해시코드로 나눠서 나온 나머지로 리듀스를 설정한다.
즉, 사과라는 키를 해시코드로 바꾼 뒤, 리듀스부의 갯수로 그 해시코드를 나눠서 나온 나머지로 리듀스부로 설정한다.
일예로, 키값인 '사과'가 145572521이라는 무작위의 해시코드를 가지고, 리듀스부의 개수가 3개(0번,1번,2번)이라고 설정되면, 145572521 / 3을 해서 나온값인 2가 사과 레코드로 가야할 리듀스부가 된다.
맵부 A에서 나온 사과 레코드도, 맵부 B에서 나온 사과레코드도 2번 리듀스부로 모이게 되므로 결국 모든 사과레코드는 2번 리듀스부에 모이게 된다.
이것이 파티셔너가 하는 역할이다.
넷째, 본 발명에 따른 정렬부(240)에 관해 설명한다.
상기 정렬부(240)는 리듀스부에 도착한 레코드들을 키값을 기준으로 정렬시키는 역할을 한다.
이렇게 정렬부를 거쳐 정렬시키는 이유는 리듀스부에 도착한 레코드들을 정렬시킴으로서, 리듀스부를 통해 리듀스작업을 용이하게 하기 위함이다.
다섯째, 본 발명에 따른 리듀스부(250)에 관해 설명한다.
상기 리듀스부(250)는 정렬부를 통해 정렬된 레코드들을 전달받아, 내부에서 같은 키를 가지는 레코드들을 한군데에 모은 후, 리듀스 함수에서 그 한군데에 모아진 레코드들을 순서대로 처리시키는 역할을 한다.
일예로, 리튜스부는 함수 내부에서 다음과 같은 로직으로 "키:사과"에 대한 레코드들의 Value들을 출력할 수 있다.
출력결과는 BlueApple, RedApple, YellowApple이 된다.
while(vales, getnext())
{
System.out.pritln(value,next().get();
}
이러한 과정에서 키에 따라 모인 레코드들의 Value로 사용자가 원하는 작업을 하는 커스터마이징 작업을 거친다.
리듀스부로 들어온 레코들을 원하는 형태로 가공하여 결과 객체에 작성한 뒤 파일로 출력시킨다.
여섯째, 본 발명에 따른 빅데이터분석제어부(260)에 관해 설명한다.
상기 빅데이터분석제어부(260)는 리듀스부를 통해 순서대로 처리시킨 레코드를 불러와서, 레코드 블럭의 리드(Read) 빈도를 분석하여, 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 저장되도록 맞춤형 선택 후, 트랜스포머형 빅데이터저장모듈로 이동제어시키고, 레코드 블럭의 쓰기(write)시, 리드(read) 빈도를 예측분석하여 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 맞춤형 저장제어시키는 역할을 한다.
이는 도 11에 도시한 바와 같이, 블럭빅데이터분석제어부(261), 블럭쓰기형빅데이터분석제어부(262)로 구성된다.
상기 블럭빅데이터분석제어부(261)는 레코드 블럭의 리드(Read) 빈도에 따라 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 저장되도록 맞춤형 선택 후, 트랜스포머형 빅데이터저장모듈로 이동제어시키는 역할을 한다.
이는 빈번하게 리드(Read)되는 블럭(block)일수록 복제본들을 최대한 SSD로 이동시켜 트랜스포머형 빅데이터저장모듈의 성능을 개선시키도록 구성된다.
이로 인해, 인기도(Popularity)가 많은 파일의 리플리케이션 요소(replication factor)를 증가시켜서 특정작업(job)의 수행시간을 15%~30%로 개선시키는 효과를 제공할 수가 있다.
여기서, 인기도(Popularity)는 동시접속된 최대의 수를 말한다.
모든 데이터의 레코드 마다 인기도(Popularity)값이 있으며, 24시간마다 갱신되도록 구성된다.
상기 레코드 블럭(b)의 리드빈도 f(b)는 다음의 수학식1과 같이 표현된다.
Figure pat00001
그리고, 리드빈도 f(b)에 관한 한계점(threshold)에 (f1,f2,f3)따라 비율을 결정한다.
0≤f(b)<f1 f1≤f(b)<f2 f2≤f(b)<f3 f3≤r(b)
메모리:SSD 저장비율 1:2 2:3 1:4 2:4
메모리:HDD 저장비율 3:1 2:4 1:2 0:2
SSD:HDD 저장비율 2:0 1:3 3:4 2:3
본 발명에 따른 블럭빅데이터분석제어부는 표 1에서와 같이 높은 리드(read)빈도를 갖는 복제본을 우선적으로 가까운 메모리, SSD, HDD 중 어느 하나로 보낸다.
또한, 본 발명에 따른 블럭빅데이터분석제어부는 레코드 블럭의 리드 빈도를 주기적으로 트랜스포머형 빅데이터저장모듈로 이동제어시킨다.
본 발명에 따른 블럭빅데이터분석제어부는 데이터노드가 네임노드에게 주기적(디폴트 3초)으로 자신의 현재상태를 알리도록 구성된다.
그리고, 기준설정(w) 시간 간격으로, 블럭별 리드빈도를 갱신시키고, 갱신된 리드빈도에 따라 메모리:SSD 저장비율, 메모리:HDD 저장비율, SSD:HDD 저장비율을 결정하며, 결정된 비율에 따라 레코드 블럭의 복제본으로 이동시키도록 구성된다.
상기 블럭쓰기형빅데이터분석제어부(262)는 레코드 블럭의 쓰기(write)시, 리드(read) 빈도를 예측하여 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 맞춤형 저장제어시키는 역할을 한다.
이는 레코드 블럭이 최초로 쓰기(=저장)될 때, 예측된 리드(read) 빈도가 높을수록 최대한 SSD에 저장하여 트랜스포머형 빅데이터저장모듈의 블럭리드(Block read) 성능을 개선시킨다.
또한, 본 발명에 따른 빅데이터분석제어부는 RRT형 복제본블럭리드제어부(263)가 포함되어 구성된다.
상기 RRT형 복제본블럭리드제어부(263)는 레코드 블럭의 복제본들 중 리드 응답 타임(Read Response Time)이 가장 짧을 것으로 예측되는 복제본을 선택하여 블럭리드(block read)를 수행시키는 역할을 한다.
여기서, 리드 응답 타임(Read Response Time)은 한 노드가 트랜스포머형 빅데이터저장모듈에 레코드 블럭 리드를 요청한 시점부터 해당 레코드 블럭이 전송완료되는 시점까지의 시간을 말한다.
상기 RRT형 복제본블럭리드제어부(263)는 휴리스틱(Heristic) 메커니즘엔진부가 포함되어 구성된다.
상기 휴리스틱(Heristic) 메커니즘엔진부은 N개의 복제본에 대하여 동시에 일부분 크기(s)를 읽어보고, 리드 응답 타임이 제일 빠른 것만 전송을 유지하고, 나머지 전송을 중지시키도록 구성된다.
다음으로, 본 발명에 따른 빅데이터관리용 API모듈(300)에 관해 설명한다.
상기 빅데이터관리용 API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)모듈(300)은 병렬처리형 빅데이터분석모듈을 통해 분석시킨 특정데이터를 화면상에 표출시킨 후, 특정작업(Job)을 요청한 클라이언트에게 전송시키는 역할을 한다.
여기서, 특정작업을 요청한 클라이언트는 수요자원(DR)관리사업자, 전력거래소, 제3의 클라이언트를 모두 포함한다.
이는 도 12에 도시한 바와 같이, 그래픽 장치 인터페이스(GDI)부(310), 사용자 인터페이스부(320), 공통 대화 상자 라이브러리부(330), 윈도셸부(340)로 구성된다.
상기 그래픽 장치 인터페이스(GDI)부(310)는 출력되는 그래픽 콘텐츠를 모니터, 프린터, 기타 출력 장치에 전달하는 기능을 수행한다.
이는 16비트 윈도우의 경우 gdi.exe에, 사용자 모드에서의 32비트 윈도우의 경우 gdi32.dll에 구성된다.
커널 모드 GDI 지원은 그래픽 드라이버와 직접 통신하는 win32k.sys가 제공한다.
상기 사용자 인터페이스부(320)는 화면 창뿐 아니라 단추와 스크롤바와 같은 가장 기본적인 컨트롤을 만들어 관리하고, 마우스와 키보드 입력을 받는 기능, 윈도우의 GUI와 연동하는 기능을 수행한다.
이는 16비트 윈도의 경우 user.exe에, 32비트 윈도의 경우 user32.dll에 구성된다. 윈도 XP 버전 이후로 기본 컨트롤은 공통 컨트롤(공통 컨트롤 라이브러리)과 함께 comctl32.dll에 구성된다.
상기 공통 대화 상자 라이브러리부(330)는 응용 프로그램에 파일 열기 및 저장, 색 및 글꼴 선택 등을 위한 표준 대화 상자를 관리제어한다.
이는 16비트 윈도의 경우 commdlg.dll에, 32비트 윈도의 경우 comdlg32.dll에 구성된다. 이 라이브러리는 API의 "사용자 인터페이스" 집합에 구성된다.
상기 윈도셸부(340)는 응용 프로그램이 운영체제 셸이 제공하는 기능에 접근하고 변경제어시키는 역할을 한다.
이는 16비트 윈도의 경우 shell.dll에, 32비트 윈도의 경우 shell32.dll에 구성된다.
이하, 본 발명에 따른 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼방법의 구체적인 동작과정에 관해 설명한다.
먼저, 도 14에 도시한 바와 같이, 트랜스포머형 빅데이터저장모듈을 통해 빅데이터 중 특정작업(Job)이 실행되는 빈도에 따라 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 데이터를 분산 저장시킨다(S100).
즉, 데이터노드부의 각 블록당, 3개의 복제본이 설정되면, 빈도추출제어부를 통해 추출된 특정작업(Job)의 빈도데이터에 따라 한개의 복제본은 메모리에 저장시키고, 나머지 두개의 복제본은 HDD에 저장시키도록 분산 저장시킨다.
그리고, 데이터노드부의 각 블록당, 3개의 복제본이 설정되고, 메모리의 용량이 없으면, 빈도추출제어부를 통해 추출된 특정작업(Job)의 빈도데이터에 따라 한개의 복제본은 SSD에 저장시키고, 나머지 두개의 복제본은 HDD에 저장시키도록 분산 저장시킨다.
그리고, 데이터노드부의 각 블록당, 3개의 복제본이 설정되고, 메모리의 용량이 없고, SSD의 용량이 없으면, 빈도추출제어부를 통해 추출된 특정작업(Job)의 빈도데이터에 따라 3개의 복제본은 HDD에 저장시키도록 분산 저장시킨다.
그리고, 데이터노드부의 각 블록당, 3개의 복제본이 설정되면, 빈도추출제어부를 통해 추출된 특정작업(Job)의 빈도데이터 중 1순위로 빈번하게 사용되는 복제본을 메모리에 저장시키고, 2순위로 빈번하게 사용되는 복제본을 SSD에 저장시키며, 3순위로 빈번하게 사용되는 복제본을 HDD에 저장시키도록 분산 저장시킨다.
다음으로, 병렬처리형 빅데이터분석모듈을 통해 클라이언트가 요청한 특정작업(Job)에 따른 데이터분석시, 트랜스포머형 빅데이터저장모듈에 분산저장된 데이터를 불러와서, 여러 개로 쪼갠 다음 여러 개로 나눠서 병렬처리시킨 후, 클라이언트가 요청한 작업(Job)에 해당되는 특정 데이터를 분석시킨다(S200).
여기서, 상기 클라이언트가 요청한 작업(Job)에 해당되는 특정 데이터를 분석시키는 것은
도 15에 도시한 바와 같이, 블럭빅데이터분석제어부를 통해 레코드 블럭의 리드(Read) 빈도를 분석하여, 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 저장되도록 맞춤형 선택 후, 트랜스포머형 빅데이터저장모듈로 이동제어시키는 단계(S210)와,
도 16에 도시한 바와 같이, 블럭쓰기형빅데이터분석제어부를 통해 레코드 블럭의 쓰기(write)시, 리드(read) 빈도를 예측분석하여 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 맞춤형 저장제어시키는 단계(S220)와,
도 17에 도시한 바와 같이, RRT형 복제본블럭리드제어부에서 레코드 블럭의 복제본들 중 리드 응답 타임(Read Response Time)이 가장 짧을 것으로 예측되는 복제본을 선택하여 블럭리드(block read)를 수행시키는 단계(S230) 중 어느 하나가 선택되어 이루어진다.
끝으로, 도 13에 도시한 바와 같이, 빅데이터관리용 API모듈에서 병렬처리형 빅데이터분석모듈을 통해 분석시킨 특정데이터를 화면상에 표출시킨 후, 요청한 클라이언트에게 전송시킨다(S300).
1 : 스마트 스토리지 플랫폼장치 100 : 트랜스포머형 빅데이터저장모듈
110 : 네임노드부 120 : 맵핑제어부
130 : 데이터 노드부 140 : 빈도추출제어부
150 : 스토리지제어부 160 : 메인제어부
200 : 병렬처리형 빅데이터분석모듈
300 : 빅데이터관리용 API모듈

Claims (12)

  1. 빅데이터 중 특정작업(Job)이 실행되는 빈도에 따라 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 데이터를 분산 저장시키는 트랜스포머형 빅데이터저장모듈(100)과,
    클라이언트가 요청한 특정작업(Job)에 따른 데이터분석시, 트랜스포머형 빅데이터저장모듈에 분산저장된 데이터를 불러와서, 여러 개로 쪼갠 다음 여러 개로 나눠서 병렬처리시킨 후, 클라이언트가 요청한 특정작업(Job)에 해당되는 특정 데이터를 분석시키는 병렬처리형 빅데이터분석모듈(200)과,
    병렬처리형 빅데이터분석모듈을 통해 분석시킨 특정데이터를 화면상에 표출시킨 후, 특정작업(Job)을 요청한 클라이언트에게 전송시키는 빅데이터관리용 API모듈(300)로 구성되는 것을 특징으로 하는 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치.
  2. 제1항에 있어서, 상기 트랜스포머형 빅데이터저장모듈(100)은
    파일과 디렉터리의 읽기(open), 닫기(close), 이름 바꾸기(rename), 병렬처리형 빅데이터분석모듈의 네임스페이스의 기능을 수행시키는 네임노드부(110)와,
    데이터 노드부와 블록들의 맵핑을 결정제어시키는 맵핑제어부(120)와,
    실행될 때마다 노드에 추가되는 스토리지(메모리, SSD, HDD)를 관리하면서, 병렬처리형 빅데이터분석모듈이 요구하는 읽기(read), 쓰기(write) 기능을 수행시키는 데이터 노드부(130)와,
    데이터노드부의 블록당 특정작업(Job)이 실행되는 빈도를 기간별에 따라 키워드 카운트수를 통해 추출해내어 빈도데이터를 형성시키는 빈도추출제어부(140)와,
    빈도추출제어부를 통해 추출된 특정작업(Job)의 빈도데이터에 따라 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 데이터를 분산 저장시키는 스토리지제어부(150)와,
    각 기기의 전반적인 동작을 제어하면서, 특정작업(Job)이 실행될 데이터노드를 선택제어하는 메인제어부(160)로 구성되는 것을 특징으로 하는 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치.
  3. 제2항에 있어서, 상기 스토리지제어부(150)는
    데이터노드부의 각 블록당, 3개의 복제본이 설정되면, 빈도추출제어부를 통해 추출된 특정작업(Job)의 빈도데이터에 따라 한개의 복제본은 메모리에 저장시키고, 나머지 두개의 복제본은 HDD에 저장시키도록 분산 저장시키는 제1 트랜스포머형 스토리지모드(151)와,
    데이터노드부의 각 블록당, 3개의 복제본이 설정되고, 메모리의 용량이 없으면, 빈도추출제어부를 통해 추출된 특정작업(Job)의 빈도데이터에 따라 한개의 복제본은 SSD에 저장시키고, 나머지 두개의 복제본은 HDD에 저장시키도록 분산 저장시키는 제2 트랜스포머형 스토리지모드(152)와,
    데이터노드부의 각 블록당, 3개의 복제본이 설정되고, 메모리의 용량이 없고, SSD의 용량이 없으면, 빈도추출제어부를 통해 추출된 특정작업(Job)의 빈도데이터에 따라 3개의 복제본은 HDD에 저장시키도록 분산 저장시키는 제3 트랜스포머형 스토리지모드(153)와,
    데이터노드부의 각 블록당, 3개의 복제본이 설정되면, 빈도추출제어부를 통해 추출된 특정작업(Job)의 빈도데이터 중 1순위로 빈번하게 사용되는 복제본을 메모리에 저장시키고, 2순위로 빈번하게 사용되는 복제본을 SSD에 저장시키며, 3순위로 빈번하게 사용되는 복제본을 HDD에 저장시키도록 분산 저장시키는 제4 트랜스포머형 스토리지모드(154)로 구성되는 것을 특징으로 하는 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치.
  4. 제2항에 있어서, 상기 메인제어부(160)는
    우선 특정작업(Job)이 실행될 데이터 블록이 메모리에 저장되어 있는 데이터 노드를 우선 실행 노드 A로 설정한 후, 1 순위로 실행시키도록 제어하는 제1 Job 실행노드(161)와,
    우선 실행 노드 A가 없거나 또는 우선 실행 노드 A가 현재 처리하고 있는 특정작업(Job)이 CPU 사용률이 기준설정치 이상일 경우에, 특정작업(Job)이 실행될 블록이 SSD에 저장되어 있는 데이터노드를 우선 실행 노드 B로 설정한 후, 2 순위로 실행시키도록 제어하는 제2 Job 실행노드(162)와,
    우선 실행 노드 B가 없거나 우선 실행 노드 B가 현재 처리하고 있는 특정작업(Job)이 CPU 사용률이 기준설정치 이상일 경우에, 특정작업(Job)이 실행될 블록이 HDD에 저장되어 있는 데이터노드를 우선 실행 노드 C로 설정한 후, 3 순위로 실행시키도록 제어하는 제3 Job 실행노드(163)와,
    우선 실행 노드 C가 없거나 우선 실행 노드 C가 현재 처리하고 있는 특정작업(Job)이 CPU 사용률이 기준설정치 이상일 경우에, 특정작업(Job)이 실행될 블록이 메모리에 저장되어 있는 데이터 노드를 우선 실행 노드 D로 설정한 후, 4 순위로 실행시키도록 제어하는 제4 Job 실행노드(164)로 구성되는 것을 특징으로 하는 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치.
  5. 제1항에 있어서, 상기 병렬처리형 빅데이터분석모듈(200)은
    텍스트파일에서 개행문자(줄바꿈)을 기준으로 한 줄씩 읽어들여 입력 데이터를 원하는 Key-Value 형태로 만드는 맵부(210)와,
    맵부에서 형성된 Key-Value를 하나로 뭉쳐서 리듀스부로 보낼 때 적은 양의 데이터를 전송시키는 컴바이너부(220)와,
    컴바이너부를 통해 담겨진 레코드들을 리듀스부로 전송시키는 셔플부(230)와,
    리듀스부에 도착한 레코드들을 키값을 기준으로 정렬시키는 정렬부(240)와,
    정렬부를 통해 정렬된 레코드들을 전달받아, 내부에서 같은 키를 가지는 레코드들을 한군데에 모은 후, 리듀스 함수에서 그 한군데에 모아진 레코드들을 순서대로 처리시키는 리듀스부(250)와,
    리듀스부를 통해 순서대로 처리시킨 레코드를 불러와서, 레코드 블럭의 리드(Read) 빈도를 분석하여, 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 저장되도록 맞춤형 선택 후, 트랜스포머형 빅데이터저장모듈로 이동제어시키고, 레코드 블럭의 쓰기(write)시, 리드(read) 빈도를 예측하여 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 맞춤형 저장제어시키는 빅데이터분석제어부(260)로 구성되는 것을 특징으로 하는 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치.
  6. 제5항에 있어서, 상기 빅데이터분석제어부(260)는
    레코드 블럭의 리드(Read) 빈도에 따라 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 저장되도록 맞춤형 선택 후, 트랜스포머형 빅데이터저장모듈로 이동제어시키는 블럭빅데이터분석제어부(261)가 포함되어 구성되는 것을 특징으로 하는 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치.
  7. 제5항에 있어서, 상기 빅데이터분석제어부(260)는
    레코드 블럭의 쓰기(write)시, 리드(read) 빈도를 예측분석하여 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 맞춤형 저장제어시키는 블럭쓰기형빅데이터분석제어부(262)로 구성되는 것을 특징으로 하는 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치.
  8. 제5항에 있어서, 상기 빅데이터분석제어부(260)는
    레코드 블럭의 복제본들 중 리드 응답 타임(Read Response Time)이 가장 짧을 것으로 예측되는 복제본을 선택하여 블럭리드(block read)를 수행시키는 RRT형 복제본블럭리드제어부(263)가 포함되어 구성되는 것을 특징으로 하는 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치.
  9. 트랜스포머형 빅데이터저장모듈을 통해 빅데이터 중 특정작업(Job)이 실행되는 빈도에 따라 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 데이터를 분산 저장시키는 단계(S100)와,
    병렬처리형 빅데이터분석모듈을 통해 클라이언트가 요청한 특정작업(Job)에 따른 데이터분석시, 트랜스포머형 빅데이터저장모듈에 분산저장된 데이터를 불러와서, 여러 개로 쪼갠 다음 여러 개로 나눠서 병렬처리시킨 후, 클라이언트가 요청한 작업(Job)에 해당되는 특정 데이터를 분석시키는 단계(S200)와,
    빅데이터관리용 API모듈에서 병렬처리형 빅데이터분석모듈을 통해 분석시킨 특정데이터를 화면상에 표출시킨 후, 요청한 클라이언트에게 전송시키는 단계(S300)로 이루어지는 것을 특징으로 하는 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치.
  10. 제9항에 있어서, 상기 클라이언트가 요청한 작업(Job)에 해당되는 특정 데이터를 분석시키는 단계(S200)는
    블럭빅데이터분석제어부를 통해 레코드 블럭의 리드(Read) 빈도를 분석하여, 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 저장되도록 맞춤형 선택 후, 트랜스포머형 빅데이터저장모듈로 이동제어시키는 단계(S210)가 포함되어 이루어지는 것을 특징으로 하는 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치.
  11. 제9항에 있어서, 상기 클라이언트가 요청한 작업(Job)에 해당되는 특정 데이터를 분석시키는 단계(S200)는
    블럭쓰기형빅데이터분석제어부를 통해 레코드 블럭의 쓰기(write)시, 리드(read) 빈도를 예측분석하여 메모리, SSD, HDD 중 어느 하나 또는 둘 이상을 선택한 트랜스포머형태로 맞춤형 저장제어시키는 단계(S220)가 포함되어 이루어지는 것을 특징으로 하는 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치.
  12. 제9항에 있어서, 상기 클라이언트가 요청한 작업(Job)에 해당되는 특정 데이터를 분석시키는 단계(S200)는
    RRT형 복제본블럭리드제어부에서 레코드 블럭의 복제본들 중 리드 응답 타임(Read Response Time)이 가장 짧을 것으로 예측되는 복제본을 선택하여 블럭리드(block read)를 수행시키는 단계(S230)가 포함되어 이루어지는 것을 특징으로 하는 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치.
KR1020160038124A 2016-03-30 2016-03-30 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치 및 방법 KR101791901B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160038124A KR101791901B1 (ko) 2016-03-30 2016-03-30 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치 및 방법
US15/186,230 US20170286008A1 (en) 2016-03-30 2016-06-17 Smart storage platform apparatus and method for efficient storage and real-time analysis of big data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160038124A KR101791901B1 (ko) 2016-03-30 2016-03-30 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170111883A true KR20170111883A (ko) 2017-10-12
KR101791901B1 KR101791901B1 (ko) 2017-10-31

Family

ID=59958791

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160038124A KR101791901B1 (ko) 2016-03-30 2016-03-30 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치 및 방법

Country Status (2)

Country Link
US (1) US20170286008A1 (ko)
KR (1) KR101791901B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210036177A (ko) 2019-09-25 2021-04-02 신한카드 주식회사 데이터 가공을 통한 빅데이터 웨어하우스 데이터 마트 테이블 생성 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108875035B (zh) * 2018-06-25 2022-02-18 郑州云海信息技术有限公司 分布式文件系统的数据存储方法及相关设备
CN109347991B (zh) * 2018-12-24 2021-06-29 中国移动通信集团江苏有限公司 文件分发方法、装置、设备及介质
KR20200082323A (ko) * 2018-12-28 2020-07-08 에스케이하이닉스 주식회사 반도체 메모리 장치의 컨트롤러 및 그 동작 방법
CN112693502A (zh) * 2019-10-23 2021-04-23 上海宝信软件股份有限公司 基于大数据架构的城市轨道交通监察系统及方法
CN110798465B (zh) * 2019-10-28 2021-07-20 北京思特奇信息技术股份有限公司 一种大数据处理平台、数据处理方法、设备和存储介质
CN112235397A (zh) * 2020-04-25 2021-01-15 章稳建 应用于互联网通信的大数据传输处理方法及云计算中心
US11902597B2 (en) * 2021-02-09 2024-02-13 Netflix, Inc. Media aware content placement
KR102675857B1 (ko) 2021-08-05 2024-06-14 세종대학교산학협력단 크로스 플랫폼 데이터 통합 처리 방법
CN113838517B (zh) * 2021-09-16 2023-12-12 中国人民解放军海军工程大学 一种反应硬盘效能的测试数据分析方法
CN115913980B (zh) * 2022-12-06 2023-07-28 沸蓝建设咨询有限公司 一种数据多端接入控制系统
CN116627362B (zh) * 2023-07-26 2023-09-22 大汉电子商务有限公司 一种基于分布式储存的财务数据处理方法
CN116700632B (zh) * 2023-08-07 2023-10-24 湖南中盈梦想商业保理有限公司 一种高可靠的金融信息数据存储方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101245994B1 (ko) * 2012-08-31 2013-03-20 케이씨씨시큐리티주식회사 대용량 데이터의 분산 병렬 처리 시스템 및 방법
KR101411563B1 (ko) * 2013-11-01 2014-06-25 한국과학기술정보연구원 리소스 지역성에 기초한 분산 처리 시스템 및 분산 처리 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210036177A (ko) 2019-09-25 2021-04-02 신한카드 주식회사 데이터 가공을 통한 빅데이터 웨어하우스 데이터 마트 테이블 생성 방법

Also Published As

Publication number Publication date
US20170286008A1 (en) 2017-10-05
KR101791901B1 (ko) 2017-10-31

Similar Documents

Publication Publication Date Title
KR101791901B1 (ko) 빅데이터의 효율적인 저장·실시간 분석형 스마트 스토리지 플랫폼장치 및 방법
Fang et al. In-memory database acceleration on FPGAs: a survey
US11082206B2 (en) Layout-independent cryptographic stamp of a distributed dataset
KR102034833B1 (ko) 플래시 저장장치의 내부 병렬성을 이용하는 키 값 기반의 데이터 액세스 장치 및 방법
CN100371886C (zh) 基于存储区的数据预取的处理器和方法
US10826980B2 (en) Command process load balancing system
US10216418B2 (en) Storage apparatus and method for autonomous space compaction
US11042328B2 (en) Storage apparatus and method for autonomous space compaction
JP2022033688A (ja) メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム
EP3859509A1 (en) Latency and throughput centric reconfigurable storage device
CN110959156A (zh) 到数据库加速器的并行计算卸载
US20200319797A1 (en) System and method for file processing from a block device
CN1831750A (zh) 数据控制设备
Chen et al. Fpga-accelerated samplesort for large data sets
US20180196611A1 (en) Highly scalable computational active ssd storage device
KR20200138411A (ko) 네트워크 온칩 데이터 처리 방법 및 장치
KR20200138413A (ko) 네트워크 온칩 데이터 처리 방법 및 장치
Liu et al. The research and analysis of efficiency of hardware usage base on HDFS
WO2023193814A1 (zh) 融合系统的数据处理方法、装置、设备和系统
JP6768989B1 (ja) データ解析システムにおけるメモリ割り当て
US20140115019A1 (en) Distribution processing unit of shared storage
US9557935B2 (en) Computing system including storage system and method of writing data thereof
KR20200138414A (ko) 네트워크 온칩 데이터 처리 방법 및 장치
CN116932196A (zh) 融合系统的数据处理方法、装置、设备和系统
Inupakutika et al. Quantifying Performance Gains of GPUDirect Storage

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