KR20150139408A - 이종의 저장 매체들을 이용하는 분산 파일 시스템을 구동하는 전자 시스템, 및 그것의 데이터 저장 방법 및 관리 방법 - Google Patents

이종의 저장 매체들을 이용하는 분산 파일 시스템을 구동하는 전자 시스템, 및 그것의 데이터 저장 방법 및 관리 방법 Download PDF

Info

Publication number
KR20150139408A
KR20150139408A KR1020140172352A KR20140172352A KR20150139408A KR 20150139408 A KR20150139408 A KR 20150139408A KR 1020140172352 A KR1020140172352 A KR 1020140172352A KR 20140172352 A KR20140172352 A KR 20140172352A KR 20150139408 A KR20150139408 A KR 20150139408A
Authority
KR
South Korea
Prior art keywords
data
storage medium
node
piece
nodes
Prior art date
Application number
KR1020140172352A
Other languages
English (en)
Other versions
KR102079340B1 (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 삼성전자주식회사
Publication of KR20150139408A publication Critical patent/KR20150139408A/ko
Application granted granted Critical
Publication of KR102079340B1 publication Critical patent/KR102079340B1/ko

Links

Images

Classifications

    • 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
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file 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
    • 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
    • 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
    • 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/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

본 발명은 각각이 제 1 저장 매체 및 제 1 저장 매체보다 느리게 작동하는 제 2 저장 매체 중 적어도 하나를 포함하고, 각각이 제 1 저장 매체 및 제 2 저장 매체 중 적어도 하나에 데이터의 조각을 저장하도록 구성되는 복수의 데이터 노드를 포함하는 전자 시스템을 제공한다. 본 발명의 전자 시스템에서, 데이터의 활성화된 조각의 복수의 사본이 복수의 데이터 노드 중에서 둘 이상의 데이터 노드들에 저장되고, 데이터의 활성화된 조각의 복수의 사본 중에서 고속 사본은 복수의 데이터 노드 중에서 제 1 데이터 노드의 제 1 저장 매체에 저장되고, 데이터의 활성화된 조각의 복수의 사본 중에서 하나 이상의 저속 사본들은 복수의 데이터 노드 중에서 제 1 데이터 노드 외의 하나 이상의 데이터 노드들의 제 2 저장 매체들에 각각 저장될 수 있다. 본 발명에 따르면, 분산 파일 시스템에 저장되는 데이터가 좀 더 효율적으로 관리되고 접근될 수 있다.

Description

이종의 저장 매체들을 이용하는 분산 파일 시스템을 구동하는 전자 시스템, 및 그것의 데이터 저장 방법 및 관리 방법{ELECTRONIC SYSTEM DRIVING DISTRIBUTED FILE SYSTEM USING DIFFERENT TYPES OF STORAGE MEDIUMS, AND DATA STORING METHOD AND MANAGING METHOD THEREOF}
본 발명은 정보의 저장에 관한 것으로, 좀 더 구체적으로는 분산 파일 시스템(Distributed File System)에 정보를 저장하는 방법에 관한 것이다.
분산 컴퓨팅(Distributed Computing)은 분산 시스템을 연구하거나 활용하는 컴퓨터 과학의 한 분야이다. 분산 컴퓨팅 시스템은 네트워크에 연결된 컴퓨터들이 서로 메시지를 교환함으로써 통신하고 조직적으로 작동하는 시스템이다. 분산 컴퓨팅 시스템의 구성 요소들은 하나의 공통된 목적을 달성하기 위해 상호 작용한다. 분산 시스템의 특성으로서, 구성 요소들의 동시 작동 가능성, 전역 클록(Global Clock)의 존부, 구성 요소들의 독립적인 작동 중단의 허용 여부 등이 있다. 분산 시스템은 아주 큰 규모의 다중 이용자(Multiplayer) 온라인 게임에서부터 개인 대 개인(Peer-to-peer) 응용 프로그램에까지 다양하게 이용된다.
분산 시스템, 분산 프로그래밍, 분산 파일 시스템 등과 같은 용어에서 "분산"이라는 단어는 원래 개별 컴퓨터들이 몇몇 지리적 영역에 물리적으로 분산되어 있는 컴퓨터 네트워크를 의미했다. "분산"이라는 단어는 근래 좀 더 넓은 의미로 이용되고 있는데, 종종 자동으로 동일한 물리적 위치에서 실행되고 서로 메시지를 교환하며 상호 작용하는 프로세스들을 일컫는다.
분산 컴퓨팅 시스템은 큰 규모의 연산 문제를 푸는 것과 같은 공통된 목적을 갖는다. 예로서, 어떤 분산 시스템에서, 연산 문제는 동시에 또는 병렬로 실행될 수 있는 복수의 작은 태스크(Task)로 분할되고, 이 분할된 태스크들은 분산 시스템의 여러 컴퓨터로 할당된다. 어떤 문제를 순차적으로 처리하는 단일 컴퓨터와 달리, 큰 규모의 연산 문제를 병렬로 처리하기 위해 분산 시스템의 실행 능력을 향상시킴으로써, 분산 시스템은 문제를 좀 더 빨리 해결한다.
분산 파일 시스템을 구동하기 위한 전자 시스템의 구성 및 작동 방법이 제공된다. 본 발명의 실시 예에 따른 전자 시스템에 의해 구동되는 분산 파일 시스템은 이종의 저장 매체들(Heterogeneous Storage Mediums)을 이용하여 데이터를 저장할 수 있다. 본 발명의 실시 예에 따른 분산 파일 시스템에 의해 이용되는 이종의 저장 매체들은 느리게 작동하는 저장 매체 및 좀 더 빠르게 작동하는 저장 매체를 포함할 수 있다.
본 발명의 실시 예에 따른 전자 시스템은 각각이 제 1 저장 매체 및 제 1 저장 매체보다 느리게 작동하는 제 2 저장 매체 중 적어도 하나를 포함하고, 각각이 제 1 저장 매체 및 제 2 저장 매체 중 적어도 하나에 데이터의 조각을 저장하도록 구성되는 복수의 데이터 노드를 포함할 수 있다. 본 발명의 실시 예에서, 데이터의 활성화된 조각의 복수의 사본이 복수의 데이터 노드 중에서 둘 이상의 데이터 노드들에 저장되고, 데이터의 활성화된 조각의 복수의 사본 중에서 고속 사본은 복수의 데이터 노드 중에서 제 1 데이터 노드의 제 1 저장 매체에 저장되고, 데이터의 활성화된 조각의 복수의 사본 중에서 하나 이상의 저속 사본들은 복수의 데이터 노드 중에서 제 1 데이터 노드 외의 하나 이상의 데이터 노드들의 제 2 저장 매체들에 각각 저장될 수 있다.
본 발명의 실시 예에 따른 전자 시스템은 데이터의 조각을 저장하기 위한 쓰기 요청을 제공받고; 쓰기 요청에 응답하여, 데이터의 조각의 고속 사본을 저장하기 위한 제 1 데이터 노드를 선택하고; 제 1 데이터 노드의 제 1 저장 매체에 데이터의 조각을 저장함으로써 쓰기 요청을 실행하고; 쓰기 요청이 실행된 후, 복수의 데이터 노드 중에서 제 1 데이터 노드 외의 데이터 노드 각각의 제 2 저장 매체에 데이터의 조각의 중복되는 사본을 저장하도록 구성될 수 있다.
본 발명의 실시 예에서, 데이터의 활성화된 조각은 만료 시각과 관련되고, 만료 시각이 경과하면, 데이터의 활성화된 조각의 고속 사본은 제 1 데이터 노드의 제 1 저장 매체에서 제 1 데이터 노드의 제 2 저장 매체로 이동할 수 있다.
본 발명의 실시 예에서, 제 1 데이터 노드가 활성화되지 않은 경우, 데이터의 활성화된 조각의 고속 사본을 제 1 데이터 노드에서 복수의 데이터 노드 중의 제 2 데이터 노드의 제 1 저장 매체로 이동시킴으로써 백그라운드 로드 밸런싱이 수행될 수 있다.
본 발명의 실시 예에 따른 전자 시스템은 잡 트래커 컴퓨팅 장치를 더 포함할 수 있다. 본 발명의 실시 예에서, 잡 트래커 컴퓨팅 장치는 데이터의 조각과 관련된 컴퓨팅 잡에 대한 요청을 제공받고; 컴퓨팅 잡과 관련된 데이터의 조각이 복수의 데이터 노드 중에서 대상 데이터 노드의 제 1 저장 매체에 저장되어 있는지 여부를 판단하고; 컴퓨팅 잡과 관련된 데이터의 조각이 대상 데이터 노드의 제 1 저장 매체에 저장되어 있는 경우, 대상 데이터 노드에 컴퓨팅 잡을 할당하도록 구성될 수 있다.
본 발명의 실시 예에 따른 전자 시스템은 컴퓨팅 장치를 더 포함할 수 있다. 본 발명의 실시 예에서, 복수의 데이터 노드는 각각이 적어도 하나의 데이터 노드를 포함하는 복수의 데이터 그룹으로 나뉘고, 컴퓨팅 장치는 복수의 데이터 그룹 중에서 한 데이터 그룹에 속할 수 있다. 본 발명의 실시 예에서, 컴퓨팅 장치는 데이터의 조각과 관련된 컴퓨팅 잡에 대한 요청을 제공받고; 컴퓨팅 잡과 관련된 데이터의 조각이 한 데이터 그룹의 제 1 저장 매체에 저장되어 있는지 여부를 판단하고; 컴퓨팅 잡과 관련된 데이터의 조각이 한 데이터 그룹의 제 1 저장 매체에 저장되어 있는 경우, 복수의 데이터 노드 중에서 한 데이터 그룹의 제 1 저장 매체를 포함하는 데이터 노드에 컴퓨팅 잡을 할당하고; 컴퓨팅 잡과 관련된 데이터의 조각이 한 데이터 그룹의 제 1 저장 매체에 저장되어 있지 않은 경우, 컴퓨팅 잡과 관련된 데이터의 조각이 한 데이터 그룹의 제 2 저장 매체에 저장되어 있는지 여부를 판단하고; 컴퓨팅 잡과 관련된 데이터의 조각이 한 데이터 그룹의 제 2 저장 매체에 저장되어 있는 경우, 복수의 데이터 노드 중에서 한 데이터 그룹의 제 2 저장 매체를 포함하는 데이터 노드에 컴퓨팅 잡을 할당하고; 컴퓨팅 잡과 관련된 데이터의 조각이 한 데이터 그룹의 제 2 저장 매체에 저장되어 있지 않은 경우, 복수의 데이터 그룹 중에서 한 데이터 그룹 외의 다른 데이터 그룹에 포함되는 데이터 노드에 컴퓨팅 잡을 할당하도록 구성될 수 있다.
본 발명의 실시 예에 따른 전자 시스템은 네임 노드를 더 포함할 수 있다. 본 발명의 실시 예에서, 네임 노드는 복수의 데이터 노드에 저장된 데이터의 조각들에 관한 디렉토리 트리를 유지하고; 한 데이터의 조각의 사본이 복수의 데이터 노드 중의 한 데이터 노드의 제 1 저장 매체에서 제 2 저장 매체로 이동하는 경우 알림을 제공받도록 구성될 수 있다. 본 발명의 실시 예에서, 디렉토리 트리는, 복수의 데이터 노드에 저장된 데이터의 조각들 각각에 대하여, 복수의 데이터 노드 중에서 어떤 데이터 노드가 제 1 저장 매체에 각각의 데이터의 조각을 저장하고 있는지를 나타내는 정보를 포함할 수 있다.
본 발명의 실시 예에 따른 전자 시스템은 네임 노드를 더 포함할 수 있다. 본 발명의 실시 예에서, 네임 노드는, 복수의 데이터 노드에 저장된 데이터의 조각들 각각에 대하여, 복수의 데이터 노드 중에서 어떤 데이터 노드가 각각의 데이터의 조각의 고속 사본을 저장하고 있는지를 나타내는 정보를 포함하는 디렉토리 트리를 유지하고; 요청된 데이터의 조각에 접근하기 위한 데이터 접근 요청을 컴퓨팅 장치로부터 제공받고; 요청된 데이터의 조각이 복수의 데이터 노드 중에서 요청된 데이터의 조각의 고속 사본을 저장한 데이터 노드를 통해 접근됨을 나타내는 메시지를 컴퓨팅 장치로 전송하도록 구성될 수 있다. 본 발명의 실시 예에서, 복수의 데이터 노드 중에서 요청된 데이터의 조각의 고속 사본을 저장한 데이터 노드는 데이터 접근 요청을 처리하도록 구성되고, 요청된 데이터의 조각의 저속 사본들 각각에 대해 데이터 접근 요청이 복제되어 처리될 수 있다.
본 발명의 실시 예에서, 제 1 저장 매체는 비 기계적인 저장 매체를 포함하고, 제 2 저장 매체는 전기-기계적인 저장 매체를 포함할 수 있다.
본 발명의 실시 예에 따라 전자 시스템에 포함되는 복수의 데이터 노드에 데이터를 저장하는 방법은 각각이 제 1 저장 매체 및 제 1 저장 매체보다 느리게 작동하는 제 2 저장 매체 중 적어도 하나를 포함하고, 각각이 제 1 저장 매체 및 제 2 저장 매체 중 적어도 하나에 데이터의 조각을 저장하도록 구성되는 복수의 데이터 노드 중에서 제 1 데이터 노드의 제 1 저장 매체에 데이터의 활성화된 조각의 고속 사본을 저장하는 단계; 및 복수의 데이터 노드 중에서 제 1 데이터 노드 외의 하나 이상의 데이터 노드들의 제 2 저장 매체들에 데이터의 활성화된 조각의 하나 이상의 저속 사본들을 각각 저장하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 방법은 복수의 데이터 노드에 데이터의 조각을 저장하기 위한 쓰기 요청을 제공받는 단계; 쓰기 요청에 응답하여, 데이터의 조각의 고속 사본을 저장하기 위한 제 1 데이터 노드를 선택하는 단계; 제 1 데이터 노드의 제 1 저장 매체에 데이터의 조각을 저장함으로써 쓰기 요청을 실행하는 단계; 및 쓰기 요청이 실행된 후, 복수의 데이터 노드 중에서 제 1 데이터 노드 외의 데이터 노드 각각의 제 2 저장 매체에 데이터의 조각의 중복되는 사본을 저장하는 단계를 더 포함할 수 있다.
본 발명의 실시 예에서, 데이터의 활성화된 조각은 만료 시각과 관련될 수 있다. 본 발명의 실시 예에 따른 데이터 저장 방법은 만료 시각이 경과하면, 데이터의 활성화된 조각의 고속 사본을 제 1 데이터 노드의 제 1 저장 매체에서 제 1 데이터 노드의 제 2 저장 매체로 이동시키는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 방법은 복수의 데이터 노드 사이에서 백그라운드 로드 밸런싱을 수행하는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 방법은 데이터의 조각과 관련된 컴퓨팅 잡에 대한 요청을 제공받는 단계; 및 복수의 데이터 노드 중에서 컴퓨팅 잡과 관련된 데이터의 조각을 저장한 데이터 노드에 컴퓨팅 잡을 할당하는 단계를 더 포함할 수 있다.
본 발명의 실시 예에서, 복수의 데이터 노드는 각각이 적어도 하나의 데이터 노드를 포함하는 복수의 데이터 그룹으로 나뉠 수 있다. 본 발명의 실시 예에 따른 데이터 저장 방법은 데이터의 조각과 관련된 컴퓨팅 잡에 대한 요청을 제공받는 단계; 컴퓨팅 잡과 관련된 데이터의 조각이 복수의 데이터 그룹 중에서 한 데이터 그룹의 제 1 저장 매체에 저장되어 있는지 여부를 판단하는 단계; 컴퓨팅 잡과 관련된 데이터의 조각이 한 데이터 그룹의 제 1 저장 매체에 저장되어 있는 경우, 복수의 데이터 노드 중에서 한 데이터 그룹의 제 1 저장 매체를 포함하는 데이터 노드에 컴퓨팅 잡을 할당하는 단계; 컴퓨팅 잡과 관련된 데이터의 조각이 한 데이터 그룹의 제 1 저장 매체에 저장되어 있지 않은 경우, 컴퓨팅 잡과 관련된 데이터의 조각이 한 데이터 그룹의 제 2 저장 매체에 저장되어 있는지 여부를 판단하는 단계; 컴퓨팅 잡과 관련된 데이터의 조각이 한 데이터 그룹의 제 2 저장 매체에 저장되어 있는 경우, 복수의 데이터 노드 중에서 한 데이터 그룹의 제 2 저장 매체를 포함하는 데이터 노드에 컴퓨팅 잡을 할당하는 단계; 및 컴퓨팅 잡과 관련된 데이터의 조각이 한 데이터 그룹의 제 2 저장 매체에 저장되어 있지 않은 경우, 복수의 데이터 그룹 중에서 한 데이터 그룹 외의 다른 데이터 그룹에 포함되는 데이터 노드에 컴퓨팅 잡을 할당하는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 방법은, 복수의 데이터 노드에 저장된 데이터의 조각들 각각에 대하여, 복수의 데이터 노드 중에서 어떤 데이터 노드가 제 1 저장 매체에 각각의 데이터의 조각을 저장하고 있는지를 나타내는 정보를 포함하는 디렉토리 트리를 유지하는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따라 전자 시스템을 관리하는 방법은 전자 시스템에 의해 구동되는 분산 파일 시스템을 고속 계층 및 저속 계층을 포함하는 여러 계층의 데이터 저장 매체들로 배열하는 단계; 활성화된 데이터를 고속 계층에 저장하는 단계; 및 비활성화된 데이터를 저속 계층에 저장하는 단계를 포함할 수 있다. 본 발명의 실시 예에서, 고속 계층은 제 1 유형의 저장 매체를 포함하고, 저속 계층은 제 2 유형의 저장 매체를 포함할 수 있다.
본 발명의 실시 예에 따른 전자 시스템 관리 방법은 의사 선입 선출 스킴에 기초하여, 데이터를 고속 계층에서 저속 계층으로 이동시키는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따른 전자 시스템 관리 방법은 데이터의 조각의 중복되는 사본들을 유지하는 단계를 더 포함할 수 있다. 본 발명의 실시 예에서, 유지하는 단계는: 데이터의 조각의 중복되는 사본들 중에서 고속 사본을 고속 계층에 저장하는 단계; 및 고속 사본이 저장되면, 데이터의 조각의 중복되는 사본들 중에서 하나 이상의 저속 사본들을 저속 계층에 저장하는 단계를 포함할 수 있다.
본 발명의 실시 예에서, 분산 파일 시스템은 복수의 데이터 노드에 데이터를 저장하도록 구성될 수 있다. 본 발명의 실시 예에 따른 전자 시스템 관리 방법은 데이터의 조각과 관련된 컴퓨팅 잡을 스케줄링하기 위한 요청을 제공받는 단계; 및 복수의 데이터 노드 중에서 고속 계층에 컴퓨팅 잡과 관련된 데이터의 조각을 저장한 데이터 노드에 컴퓨팅 잡을 스케쥴링하는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따르면, 분산 파일 시스템에 저장되는 데이터가 좀 더 효율적으로 관리되고 접근될 수 있다.
도 1은 본 발명의 실시 예에 따른 전자 시스템의 구성에 관한 일 실시 예를 나타낸 블록도이다.
도 2는 본 발명의 실시 예에 따른 전자 시스템의 구성에 관한 다른 실시 예를 나타낸 개념도이다.
도 3은 본 발명의 실시 예에 따른 전자 시스템의 작동을 설명하는 흐름도이다.
도 4는 본 발명의 실시 예에 따른 전자 시스템의 구성에 관한 또 다른 실시 예를 나타낸 개념도이다.
도 5는 본 발명의 실시 예에 따른 전자 시스템의 구성에 관한 또 다른 실시 예를 나타낸 개념도이다.
도 6은 본 발명의 실시 예에 따른 전자 시스템의 구성에 관한 또 다른 실시 예를 나타낸 블록도이다.
도 7은 본 발명의 실시 예에 따른 시스템 또는 장치를 포함하는 정보 처리 시스템의 구성을 나타낸 블록도이다.
전술한 특성 및 이하 상세한 설명은 모두 본 발명의 설명 및 이해를 돕기 위한 예시적인 사항이다. 즉, 본 발명은 이와 같은 실시 예에 한정되지 않고 다른 형태로 구체화될 수 있다. 다음 실시 형태들은 단지 본 발명을 완전히 개시하기 위한 예시이며, 본 발명이 속하는 기술 분야의 통상의 기술자들에게 본 발명을 전달하기 위한 설명이다. 따라서, 본 발명의 구성 요소들을 구현하기 위한 방법이 여럿 있는 경우에는, 이들 방법 중 특정한 것 또는 이와 동일성 있는 것 가운데 어떠한 것으로든 본 발명의 구현이 가능함을 분명히 할 필요가 있다.
본 명세서에서 어떤 구성이 특정 요소들을 포함한다는 언급이 있는 경우, 또는 어떤 과정이 특정 단계들을 포함한다는 언급이 있는 경우는, 그 외 다른 요소 또는 다른 단계들이 더 포함될 수 있음을 의미한다. 즉, 본 명세서에서 사용되는 용어들은 특정 실시 형태를 설명하기 위한 것일 뿐이고, 본 발명의 개념을 한정하기 위한 것이 아니다. 나아가, 발명의 이해를 돕기 위해 설명한 예시들은 그것의 상보적인 실시 예도 포함한다.
본 명세서에서 사용되는 용어들은 본 발명이 속하는 기술 분야의 통상의 기술자들이 일반적으로 이해하는 의미를 갖는다. 보편적으로 사용되는 용어들은 본 명세서의 맥락에 따라 일관적인 의미로 해석되어야 한다. 또한, 본 명세서에서 사용되는 용어들은, 그 의미가 명확히 정의된 경우가 아니라면, 지나치게 이상적이거나 형식적인 의미로 해석되지 않아야 한다.
분산 컴퓨팅 시스템(Distributed Computing System)은, 운영 체제(Operating System) 수준의 파일 시스템(예컨대, 윈도우즈의 NTFS(New Technology File System), 'ext4'로도 불리는 리눅스의 네 번째 확장된 파일 시스템 등)이 아니라, 그것의 고유의 파일 시스템을 이용할 수 있다. 분산 파일 시스템은 그 파일 시스템을 이용하는 저장 매체(Storage Medium)들이 동종일(Homogeneous) 것을 가정한다. 즉, 분산 파일 시스템에서, 모든 저장 매체들이 동일한 기반의 기술(예컨대, 전자기 하드 드라이브(Electro-magnetic Hard Drive), 비 기계적인(Non-mechanical) 솔리드 스테이트(Solid State) 드라이브 또는 플래시(Flash) 드라이브 등)을 채용한 것으로 가정된다. 나아가, 분산 파일 시스템은 모든 저장 매체들이 동일한 용량을 갖는 것으로 가정하거나 동일한 용량으로 가상화(Virtualization)된 것으로 가정(예컨대, 좀 더 많은 용량을 갖는 드라이브의 저장 용량의 일부가 무시되거나, 좀 더 적은 용량을 갖는 드라이브가 많은 용량을 갖는 가상 드라이브를 형성하는 것 등으로 가정)한다.
분산 파일 시스템은 여러 장치(예컨대, 데이터 노드(Data Node)들 등)로 확장되어 이용될 수 있고, 물리적으로 복수의 컴퓨팅 장치에 걸쳐 위치할 수 있다. 분산 파일 시스템은 어느 물리적인 컴퓨팅 장치가 데이터를 저장하고 있는지 여부에 관계없이 그 저장된 데이터가 접근되도록 할 수 있다. 나아가, 분산 파일 시스템은 데이터에 접근하는 컴퓨팅 장치가 그 데이터의 물리적인 위치를 알 필요가 없도록 할 수 있다. 컴퓨팅 장치는 데이터 접근(예컨대, 읽기, 쓰기 등)을 요청할 수 있고, 데이터 접근은 요청된 데이터의 저장 또는 읽기에 관련된 세부 사항을 컴퓨팅 장치에 알리지 않고도 수행될 수 있다. 반면, 다른 실시 예로서, 분산 파일 시스템은 데이터 접근에 대한 요청을 올바른 물리적인 컴퓨팅 장치 또는 데이터 노드로 보내는 기능을 갖는 중개 장치 또는 데이터 관리자를 포함할 수 있다. 이 실시 예에서, 접근을 요청한 컴퓨팅 장치는 데이터를 저장하고 있는 저장 매체에 관한 몇몇 세부 사항들(예컨대, 저장 매체의 어드레스(Address), 데이터 노드의 어드레스 등)을 제공받을 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
나아가, 분산 파일 시스템은 분산 컴퓨팅 시스템 내에 존재할 수 있다. 분산 컴퓨팅 시스템은 컴퓨팅 잡(Computing Job) 또는 태스크(Task)를 실행하거나 처리할 수 있는 복수의 컴퓨팅 장치를 포함할 수 있다. 여기서, 컴퓨팅 태스크는 많은 양의 프로그램을 컴파일링(Compiling)하는 것, 수학 문제를 푸는 것, 많은 양의 데이터의 집합을 분석하는 것 등과 같이 좀 더 큰 규모의 작업이고, 컴퓨팅 잡은 컴퓨팅 태스크의 작은 조각(Piece)일 수 있다. 이 실시 예에서, 저장 매체는 하나 이상의 분산 컴퓨팅 잡들을 수행할 수 있는 컴퓨팅 장치에 포함될 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다. 이하 첨부된 도면을 통하여 본 발명의 실시 예가 설명된다.
도 1은 본 발명의 실시 예에 따른 전자 시스템의 구성에 관한 일 실시 예를 나타낸 블록도이다. 실시 예로서, 전자 시스템(100)은 분산 파일 시스템을 구동하는 분산 컴퓨팅 시스템일 수 있다. 여기서, "파일 시스템"은 데이터의 여러 조각을 저장하는 저장 매체를 구성하거나 제어하여 그 데이터가 접근될 수 있도록 하는(예컨대, 읽히거나 저장될 수 있도록 하는) 하나 이상의 데이터 구조(Data Structure)들을 포함할 수 있다. 파일 시스템은 디렉토리(Directory) 구조를 가질 수 있고, 파일 및 저장 매체의 어드레스 또는 위치의 개념을 이용할 수 있다.
실시 예로서, 전자 시스템(100)은 네임 노드(Name Node; 104) 및 복수의 데이터 노드(108)를 포함할 수 있다. 복수의 데이터 노드(108)는 하나 이상의 데이터 노드들(106a, 106b, 106c)을 포함할 수 있다. 도 1은 복수의 데이터 노드(108)가 세 개의 데이터 노드들(106a, 106b, 106c)을 포함하는 것으로 나타내고 있다. 그러나, 세 개의 데이터 노드들(106a, 106b, 106c)은 본 발명의 이해를 돕기 위한 것이고, 본 발명을 제한하기 위한 것은 아니다. 복수의 데이터 노드(108)에 포함되는 데이터 노드들의 개수는 필요에 따라 변경 또는 수정될 수 있다. 위에서 언급된 것과 같이, 데이터 노드들(106a, 106b, 106c)은 실질적으로 동일하거나 서로 유사하지 않을 수 있다. 나아가, 데이터 노드들(106a, 106b, 106c)은 물리적으로 함께 위치하거나 지리적으로 서로 떨어져 있을 수 있다. 또는, 데이터 노드들(106a, 106b, 106c) 중에서 일부의 데이터 노드들은 물리적으로 함께 위치하고 다른 데이터 노드는 지리적으로 떨어져 있을 수 있다.
실시 예로서, 데이터 노드(106a)는, 예컨대, 랩톱(Laptop), 데스크톱(Desktop), 워크스테이션(Workstation), 블레이드 서버(Blade Server), 네트워크 저장 장치, 스마트폰, 태블릿, 및 그 외의 적당한 컴퓨터와 같은 컴퓨팅 장치, 또는 가상 기기(Virtual Machine) 또는 그것의 가상 컴퓨팅 장치를 포함할 수 있다. 실시 예로서, 데이터 노드(106a)는 하나 이상의 기계적으로 실행 가능한 명령 또는 소프트웨어, 펌웨어(Firmware), 또는 그것들의 조합 등의 일부를 실행하도록 구성되는 프로세서(142)를 포함할 수 있다. 실시 예로서, 데이터 노드(106a)는 일시적으로, 영구적으로, 반영구적으로, 또는 그것들이 조합된 형태로 하나 이상의 데이터들을 저장하도록 구성되는 메모리(144)를 포함할 수 있다. 나아가, 메모리(144)는 휘발성 메모리, 불휘발성 메모리, 또는 그것들의 조합을 포함할 수 있다. 실시 예로서, 데이터 노드(106a)는 반영구적으로 또는 사실상 영구적으로 데이터를 저장하도록 구성되는 저장 매체(145)를 포함할 수 있다. 실시 예로서, 저장 매체(145)는 메모리(144)에 포함될 수 있다. 실시 예로서, 저장 매체(145)는 뒤에서 언급될 제 1 저장 매체(112) 및 제 2 저장 매체(114)와 별개로 또는 그것들의 일부분으로서 제공될 수 있다. 실시 예로서, 저장 매체(145)는 데이터 노드(106a)를 위한 운영 체제(147) 등을 저장할 수 있다.
실시 예로서, 데이터 노드(106a)는 데이터 노드(106a)가 통신망의 일부분으로서 통신망을 통해 통신할 수 있도록 해주는 하나 이상의 네트워크 인터페이스(Network Interface; 146)들을 포함할 수 있다. 예로서, 네트워크 인터페이스(146)는 WiFi 인터페이스, 셀(Cellular) 통신 인터페이스, 또는 유선 인터페이스일 수 있다. 예로서, WiFi 인터페이스에 따른 통신 규약은 IEEE(Institute of Electrical and Electronics Engineers) 802.11g, IEEE 802.11n 등을 포함할 수 있으나, 본 발명은 이 예에 의해 한정되지 않는다. 예로서, 셀 통신 규약은 Wireless MAN(Metropolitan Area Network) Advanced로도 알려진 IEEE 802.16m, LTE(Long Term Evolution) Advanced, EDGE(Enhanced Data rates for Global system for mobile communication Evolution), HSPA+(Evolved High Speed Packet Access) 등을 포함할 수 있으나, 본 발명은 이 예에 의해 한정되지 않는다. 유선 통신 규약은 이더넷(Ethernet)으로도 알려진 IEEE 802.3, Fibre Channel, HomePlug나 IEEE 1901 등과 같은 Power Line communication 등을 포함할 수 있으나, 본 발명은 이 예에 의해 한정되지 않는다. 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 데이터 노드(106a)는, 예컨대, 디스플레이 또는 모니터, 키보드, 마우스, 카메라. 지문 인식기, 비디오 처리기 등과 같은 하나 이상의 하드웨어 장치들(143)을 포함할 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 데이터 노드(106a)는 분산 응용 프로그램(Distributed Application), 문서 편집기 등과 같은 응용 프로그램(148)에 하나 이상의 서비스들을 제공하고, 응용 프로그램(148)과 데이터 노드(106a)의 여러 하드웨어 구성 요소(예컨대, 프로세서(142), 네트워크 인터페이스(146) 등) 사이에서 중개자 또는 관리자의 역할을 수행하도록 구성되는 운영 체제(147)를 포함할 수 있다. 실시 예로서, 데이터 노드(106a)는 그 내부(예컨대, 저장 매체(145) 내부 등)에 설치되어 프로세서(142)에 의해 직접 실행되고 운영 체제(147)와 직접 상호 작용하도록 구성되는 하나 이상의 내장(Native) 응용 프로그램들을 포함할 수 있다. 실시 예로서, 내장 프로그램들은 미리 컴파일되어(Pre-compiled) 기계적으로 실행 가능한 코드를 포함할 수 있다. 실시 예로서, 내장 프로그램들은 프로세서(142)에 의해 실행될 소스 코드(Source Code) 또는 오브젝트 코드(Object Code)를 실행 가능한 코드로 번역하도록 구성되는 스크립트 인터프리터(Script Interpreter; 예컨대, C shell, AppleScript, AutoHotkey 등) 또는 가상 기기(예컨대, Java Virtual Machine, Microsoft Common Language Runtime 등)를 포함할 수 있다.
네임 노드(104)는 데이터 노드(106)와 유사한 하드웨어 및/또는 소프트웨어 구성 요소들(예컨대, 프로세서(142), 운영 체제(147) 등)을 포함할 수 있다. 실시 예로서, 네임 노드(104)는 데이터 노드(106a)를 포함할 수도 있다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 데이터 노드들(106a, 106b, 106c) 각각은 제 1 저장 매체(112) 및 제 2 저장 매체(114)를 포함할 수 있다. 실시 예로서, 제 2 저장 매체(114)는 제 1 저장 매체(112)보다 느리게 작동할 수 있다. 예로서, 제 1 저장 매체(112)는 초당 200 메가비트 내지 550 메가비트의 쓰기 속도를 갖는 반면, 제 2 저장 매체(114)는 초당 50 메가비트 내지 120 메가비트의 쓰기 속도를 가질 수 있다. 이 실시 예에서, 제 1 저장 매체(112)는 제 2 저장 매체(114)보다 4배 내지 11배 빠른 쓰기 속도를 가질 수 있다. 이 실시 예에서, 제 2 저장 매체(114)는 제 1 저장 매체(112)보다 낮은 읽기/쓰기 레이턴시(Latency)를 가질 수 있다. 이 실시 예에 따르면, 분산 컴퓨팅 시스템의 태스크 매핑(Mapping) 단계의 수행 중, 읽기 레이턴시가 감소하거나 상대적으로 낮을 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 제 1 저장 매체(112)는, 예컨대, 플래시 저장 장치, 솔리드 스테이트 저장 장치, 또는 다른 비 기계적인 저장 장치 등과 같은 제 1 기술을 채용할 수 있다. 예로서, 제 1 저장 매체(112)는 솔리드 스테이트 드라이브일 수 있으나, 본 발명은 이 예로 한정되지 않는다. 반면, 제 2 저장 매체(114)는, 예컨대, 자기 저장 장치, 광학 저장 장치, 전기-기계적인 저장 장치 등과 같은 제 2 기술을 채용할 수 있다. 예로서, 제 2 저장 매체(114)는 하드 디스크 드라이브일 수 있으나, 본 발명은 이 예로 한정되지 않는다. 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
제 1 저장 매체(112)와 제 2 저장 매체(114) 사이에는 작동 속도(예컨대, 접근 시간, 쓰기 시간, 읽기 시간, 대역폭(Bandwidth) 등) 외에도 다른 차이점들이 있을 수 있다. 예로서, 제 1 저장 매체(112)와 제 2 저장 매체(114) 사이에는 가격 또는 생산 비용, 작동 중단 사이의 평균 시간(Mean Time Between Failure), 주어진 저장 영역에의 쓰기 작동 횟수 등과 같은 차이점들이 있을 수 있다. 이 차이점들은 저장 매체 각각에 의해 채용된 저장 기술의 차이에서 기인한 것이다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 복수의 데이터 노드(108)는 여러 데이터의 조각을 저장할 수 있다. 동종의 저장 매체들을 이용하는 분산 파일 시스템에서는 모든 데이터의 조각들이 한 종류의 저장 매체에 저장된다. 그러나, 본 발명의 실시 예에 따라 이종의(Heterogeneous) 저장 매체들을 이용하는 분산 파일 시스템(예컨대, 전자 시스템(100)에 의해 구동되는 분산 파일 시스템)에서, 좀 더 빠르게 작동하는 제 1 저장 매체(112)에 데이터를 저장하는 것이 가능하거나 그것이 의도된 경우(예컨대, 미리 설정된 규칙에 의해 결정되는 경우 등)에는 데이터가 제 1 저장 매체(112)에 저장되고, 다른 경우에는 느리게 작동하는 제 2 저장 매체(114)에 데이터가 저장될 수 있다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
도 4에 대한 설명과 함께 더 언급되겠지만, 현재 접근되고 있거나 곧 접근될 것으로 보이는(즉, 활성화된) 데이터는 좀 더 빠르게 작동하는 제 1 저장 매체(112)에 저장될 수 있고, 접근되지 않고 있거나 곧 접근되지 않을(즉, 비활성화된) 데이터는 느리게 작동하는 제 2 저장 매체(114)에 저장될 수 있다. 실시 예로서, 좀 더 빠르게 작동하는 제 1 저장 매체(112)는 상대적으로 비싸고 작은 크기(즉, 512 기가바이트 등 적은 수의 스토리지 어드레스)를 가질 수 있는 반면, 느리게 작동하는 제 2 저장 매체(114)는 상대적으로 저렴하고 큰 크기(즉, 4 테라바이트 등 비교적 많은 수의 스토리지 어드레스)를 가질 수 있다. 이 실시 예에서, 좀 더 빠르게 작동하는 제 1 저장 매체(112)를 배제하고 동종의 저장 매체들을 이용하는 분산 파일 시스템을 구성하는 것은 현실적이지 않고 바람직하지 않을 수 있다. 실시 예로서, 이종의 저장 매체들을 이용하는 분산 파일 시스템은 좀 더 빠르게 작동하는 제 1 저장 매체(112)를 채용하여 계층(Tier) 구조를 형성하거나 캐싱(Caching) 방식을 이용할 수 있다. 이 실시 예에서, 곧바로 이용될 데이터 또는 활성화된 데이터는 빠르게 작동하지만 작은 크기를 갖는 계층(즉, 제 1 저장 매체(112))에 저장되고, 곧바로 이용되지 않을 데이터 또는 비활성화된 데이터는 느리게 작동하지만 큰 크기를 갖는 계층(즉, 제 2 저장 매체(114))에 저장될 수 있다. 다만, 이들은 단지 몇 가지의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 전자 시스템(100)에 의해 구동되는 분산 파일 시스템은 중복된 데이터를 저장할 수 있다. 데이터 읽기 실패 또는 손상은 파일 시스템에서 중요한 문제이다. 전자 시스템(100)에 의해 구동되는 분산 파일 시스템은 하나의 데이터의 조각에 대해 여러 사본(Copy)을 저장함으로써 데이터 읽기 실패를 방지할 수 있다. 실시 예로서, 전자 시스템(100)에 의해 구동되는 분산 파일 시스템은 별개의 데이터 노드들(106a, 106b, 106c)에 여러 사본을 각각 저장하도록 구성될 수 있다.
실시 예로서, 제 1 데이터(D1)는 세 번 저장될 수 있다. 제 1 데이터(D1)는 첫 번째 데이터 노드(106a)에 저장("D1[a]" 참조)되고, 두 번째 데이터 노드(106b)에 저장("D1[b]" 참조)되고, 세 번째 데이터 노드(106c)에 저장("D1[c]" 참조)될 수 있다. 이와 유사하게, 제 2 데이터(D2)는 두 번째 데이터 노드(106b)에 저장("D2[a]" 참조)되고, 첫 번째 데이터 노드(106a)에 저장("D2[b]" 참조)되고, 세 번째 데이터 노드(106c)에 저장("D2[c]" 참조)될 수 있다. 나아가, 제 3 데이터(D3)는 세 번째 데이터 노드(106c)에 저장("D3[a]" 참조)되고, 첫 번째 데이터 노드(106a)에 저장("D3[b]" 참조)되고, 두 번째 데이터 노드(106b)에 저장("D3[c]" 참조)될 수 있다.
위 실시 예에서, 하나의 데이터 노드가 작동을 중단하는 경우(예컨대, 예상치 못하게 두 번째 데이터 노드(106b)의 전원이 꺼지는 경우 등), 제 1 데이터(D1), 제 2 데이터(D2), 및 제 3 데이터(D3)는 전자 시스템(100)의 다른 데이터 노드들을 통해 여전히 이용될 수 있다. 나아가, 하나의 저장 매체에 대한 읽기가 실패하는 경우(예컨대, 세 번째 데이터 노드(106c)의 제 2 저장 매체(114)가 작동을 중단하는 경우 등), 제 1 데이터(D1), 제 2 데이터(D2), 및 제 3 데이터(D3)는 전자 시스템(100)의 다른 저장 매체들을 통해 여전히 이용될 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 어떤 데이터의 조각이 활성화된 경우(즉, 현재 접근되고 있거나 곧 접근될 것으로 보이는 경우), 그 데이터의 모든 사본들이 좀 더 빠르게 작동하는 제 1 저장 매체(112)로 이동되어 저장될 수 있다. 예컨대, 제 1 데이터(D1)가 활성화된 경우, 제 1 데이터(D1)의 모든 사본들(D1[a], D1[b], D1[c])이 제 1 저장 매체(112)로 이동되어 저장될 수 있다. 실시 예로서, 어떤 데이터의 조각이 비활성화된 경우(즉, 접근되지 않고 있거나 곧 접근되지 않을 경우), 그 데이터의 모든 사본들이 느리게 작동하는 제 2 저장 매체(114)로 이동되어 저장될 수 있다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
본 발명의 실시 예에서, 전자 시스템(100)에 의해 구동되는 분산 파일 시스템은 데이터에 대한 빠른 접근 속도(예컨대, 좀 더 빠른 속도로 작동하는 저장 매체를 이용) 및 높은 신뢰성(예컨대, 하나의 데이터의 조각에 대해 여러 사본을 저장)을 제공하기 위해 이종의 저장 매체들의 이용에 따른 이점을 취하면서도, 좀 더 빠른 속도로 작동하는 저장 매체에 데이터를 저장하기 위해 필요한 저장 용량을 줄이도록 구성될 수 있다.
실시 예로서, 좀 더 빠르게 작동하는 제 1 저장 매체(112)에 활성화된 데이터의 고속 사본(즉, 자주 접근되는 사본)을 저장하기 위해, 하나의 데이터 노드가 선택될 수 있다. 나아가, 느리게 작동하는 제 2 저장 매체(114)에 활성화된 데이터의 중복되는 저속 사본들(즉, 자주 접근되지 않는 사본들)을 저장하기 위해, 복수의 데이터 노드(108) 중에서 고속 사본을 저장하도록 선택된 하나의 데이터 노드를 제외한 다른 데이터 노드들이 선택될 수 있다. 실시 예로서, 데이터의 고속 사본이 수정되는 경우, 수정 사항은 그 데이터의 중복되는 저속 사본들에도 반영될 수 있다. 이 실시 예는 도 5에 대한 설명과 함께 더 언급된다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 제 1 데이터(D1)의 고속 사본(즉, D1[a])을 제 1 저장 매체(112)에 저장하기 위해 첫 번째 데이터 노드(106a)가 선택되고, 제 1 데이터(D1)의 저속 사본들 중 하나(즉, D1[b])를 제 2 저장 매체(114)에 저장하기 위해 두 번째 데이터 노드(106b)가 선택되고, 제 1 데이터(D1)의 다른 저속 사본(즉, D1[c])을 제 2 저장 매체(114)에 저장하기 위해 세 번째 데이터 노드(106c)가 선택될 수 있다. 이로써, 제 1 데이터(D1)에 대해 총 세 개의 사본들이 저장될 수 있다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 전자 시스템(100)에 의해 구동되는 분산 파일 시스템은 하나의 데이터 노드에서의 여러 데이터의 조각들에 대한 충돌이 최소화되도록 여러 데이터 노드로 고속 사본들을 분산시킬 수 있다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다. 데이터의 고속 사본들을 분산시키기 위한 다른 기준이 설정될 수 있다.
실시 예로서, 첫 번째 데이터 노드(106a)가 이미 제 1 데이터(D1)의 고속 사본(즉, D1[a])을 저장하고 있으면, 제 2 데이터(D2)의 고속 사본(즉, D2[a])을 제 1 저장 매체(112)에 저장하기 위해 두 번째 데이터 노드(106b)가 선택되고, 제 2 데이터(D2)의 저속 사본들 중 하나(즉, D2[b])를 제 2 저장 매체(114)에 저장하기 위해 첫 번째 데이터 노드(106a)가 선택되고, 제 2 데이터(D2)의 다른 저속 사본(즉, D2[c])을 제 2 저장 매체(114)에 저장하기 위해 세 번째 데이터 노드(106c)가 선택될 수 있다. 이와 유사하게, 첫 번째 데이터 노드(106a) 및 두 번째 데이터 노드(106b)가 이미 제 1 데이터(D1)의 고속 사본(즉, D1[a]) 및 제 2 데이터(D2)의 고속 사본(즉, D2[a])을 각각 저장하고 있으면, 제 3 데이터(D3)의 고속 사본(즉, D3[a])을 제 1 저장 매체(112)에 저장하기 위해 세 번째 데이터 노드(106c)가 선택되고, 제 3 데이터(D3)의 저속 사본들 중 하나(즉, D3[b])를 제 2 저장 매체(114)에 저장하기 위해 첫 번째 데이터 노드(106a)가 선택되고, 제 3 데이터(D3)의 다른 저속 사본(즉, D3[c])을 제 2 저장 매체(114)에 저장하기 위해 두 번째 데이터 노드(106b)가 선택될 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예에 따라, 복수의 데이터 노드(108)에 데이터의 사본들을 분배하고 할당하는 과정은 더 복잡할 수 있다. 예로서, 복수의 데이터 노드(108)는, 도 2에 나타낸 것과 같이, 복수의 그룹으로 나뉠 수 있다. 이 예에서, 데이터의 중복되는 사본들은 여러 그룹으로 분산되거나 특정 그룹 내에 위치할 수 있다. 다른 예로서, 모든 제 1 저장 매체(112)들에 데이터들의 고속 사본들을 분산시키는 것보다, 어떤 데이터에 접근하도록 구성되는 컴퓨팅 장치 또는 노드에 그 데이터의 고속 사본을 위치시키는 것이 더 중요할 수 있다. 다만, 데이터의 분산 또는 할당에 관한 다른 기준이 설정될 수 있다. 실시 예에 따라, 데이터의 분산 또는 할당에 관한 기준이 전자 시스템(100)에 의해 구동되는 분산 파일 시스템 내부에 미리 설정될 수 있다. 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 전자 시스템(100)에 의해 구동되는 분산 파일 시스템은 네임 노드(104)를 포함할 수 있다. 네임 노드(104)는 복수의 데이터 노드(108)에 저장된 데이터의 조각들(예컨대, 제 1 데이터(D1), 제 2 데이터(D2), 및 제 3 데이터(D3) 등)에 관한 디렉토리 트리(Directory Tree; 170)를 유지하도록 구성될 수 있다. 이 실시 예에서, 어떤 컴퓨팅 장치(예컨대, 잡 트래커(Job Tracker) 컴퓨팅 장치(102) 등)가 어떤 데이터의 조각(예컨대, 제 1 데이터(D1)의 고속 사본(D1[a]) 등)에 접근하고자 하는 경우, 그 컴퓨팅 장치는 네임 노드(104)에 접근하여 데이터의 조각들의 저장에 관한 정보를 요청할 수 있다. 이 실시 예에서, 네임 노드(104)는 중개 장치로서의 역할을 수행하여 데이터 접근에 대한 요청(예컨대, 읽기 요청, 쓰기 요청 등)을 복수의 데이터 노드(108)로 전달할 수 있다. 또는, 네임 노드(104)는 접근을 요청한 컴퓨팅 장치로 어떤 데이터 노드의 어떤 스토리지의 어느 어드레스에 접근 대상인 데이터의 조각이 저장되어 있는지를 알릴 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 디렉토리 트리(170)는 데이터의 조각들 각각에 대해 어떤 데이터 노드가 각각의 데이터의 고속 사본을 저장하고 있는지를 나타내는 정보를 포함할 수 있다. 예로서, 제 1 데이터(D1)에 대해, 디렉토리 트리(170)는 첫 번째 데이터 노드(106a)의 제 1 저장 매체(112)에 고속 사본(D1[a])이 저장되어 있음을 나타내는 정보를 포함할 수 있다. 이와 유사하게, 제 2 데이터(D2)에 대해, 디렉토리 트리(170)는 두 번째 데이터 노드(106b)의 제 1 저장 매체(112)에 고속 사본(D2[a])이 저장되어 있음을 나타내는 정보를 포함할 수 있다. 이 실시 예에서, 어떤 데이터의 조각에 대한 고속 사본은 존재하지 않을 수 있다(예컨대, 어떤 데이터의 조각의 모든 사본들이 제 2 저장 매체(114)에 저장되어 있을 수 있다). 이 경우, 디렉토리 트리(170)는 그 데이터의 주요 사본을 저장하고 있는 데이터 노드를 가리키는 정보를 포함할 수 있다. 나아가, 그 데이터의 주요 사본은 비활성화된 상태이지만, 활성화되면 그 데이터 노드의 제 1 저장 매체(112)로 이동하여 그 데이터의 고속 사본으로 취급될 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 전자 시스템(100)에 의해 구동되는 분산 파일 시스템은 분산 컴퓨팅 시스템의 일부일 수 있다. 이때, 다양한 컴퓨팅 태스크들 또는 잡들(150)이 처리를 위해 분산 컴퓨팅 시스템의 컴퓨팅 노드들에 분산되어 있을 수 있다.
위 실시 예에서, 데이터 노드(106a)는 분산 컴퓨팅 시스템의 컴퓨팅 노드에 포함될 수 있는데, 이 경우, 데이터 노드(106a)는 다양한 태스크들 또는 잡들(150)을 실행하거나 처리하도록 구성될 수 있다. 이 실시 예는 도 2에 대한 설명과 함께 더 언급된다.
실시 예로서, 분산 컴퓨팅 시스템은 잡 트래커 컴퓨팅 장치(102)를 포함할 수 있다. 잡 트래커 컴퓨팅 장치(102)는 데이터 노드(106a)의 것과 유사한 하드웨어 또는 소프트웨어 구성 요소들(예컨대, 프로세서(142), 운영 체제(147) 등)을 포함하는 컴퓨팅 장치를 포함할 수 있다. 실시 예로서, 잡 트래커 컴퓨팅 장치(102)는 컴퓨팅 장치들(예컨대, 데이터 노드(106a) 등)에 다양한 컴퓨팅 태스크들 또는 잡들(150)을 할당하도록 구성될 수 있다.
실시 예로서, 잡 트래커 컴퓨팅 장치(102)는 컴퓨팅 잡(150)을 제공받거나 또는 이미 제공받았을 수 있다. 컴퓨팅 잡(150)은 특정 데이터의 조각과 관련되어 그 데이터의 조각으로 접근(예컨대, 읽기, 쓰기 등)하기 위한 것일 수 있다. 예로서, 제 1 데이터(D1)와 관련된 컴퓨팅 잡(150)을 고려하면, 잡 트래커 컴퓨팅 장치(102)는 그 컴퓨팅 잡(150)을 제 1 데이터(D1)에 가장 빠르게 접근할 수 있게 하는 컴퓨팅 노드에 할당하고자 할 수 있다. 다만, 다른 할당 기준이 설정될 수 있다.
실시 예로서, 잡 트래커 컴퓨팅 장치(102)는 네임 노드(104)와 통신하여 어떤 데이터 노드가 접근 대상인 데이터의 고속 사본을 저장하고 있는지를 판단할 수 있다. 이 실시 예에서, 네임 노드(104)는 잡 트래커 컴퓨팅 장치(102)로부터 정보 요청 메시지를 제공받으면 디렉토리 트리(170)를 조사할 수 있다. 예로서, 제 1 데이터(D1)와 관련된 컴퓨팅 잡(150)을 고려하면, 네임 노드(104)는 제 1 데이터(D1)의 고속 사본(D1[a])이 첫 번째 데이터 노드(106a)의 제 1 저장 매체(112)에 저장되어 있음을 판단할 수 있다. 이 실시 예에서, 네임 노드(104)는 판단 결과를 잡 트래커 컴퓨팅 장치(102)로 제공할 수 있다.
실시 예로서, 잡 트래커 컴퓨팅 장치(102)가 접근 대상인 데이터의 조각의 저장 위치를 알게 되면, 그 데이터의 조각의 고속 사본을 저장하고 있는 데이터 노드 또는 그 데이터에 가장 빠르게 접근할 수 있게 하는 컴퓨팅 노드에 컴퓨팅 잡(150)을 할당할 수 있다. 예로서, 제 1 데이터(D1)와 관련된 컴퓨팅 잡(150)을 고려하면, 잡 트래커 컴퓨팅 장치(102)는 제 1 데이터(D1)의 저속 사본들(D1[b], D1[c])을 각각 저장하고 있는 두 번째 데이터 노드(106b) 및 세 번째 데이터 노드(106c)에 그 컴퓨팅 잡(150)을 할당하지 않을 수 있다. 다른 다양한 예시들이 도 2 및 도 3에 대한 설명과 함께 언급된다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
이와 유사하게, 제 2 데이터(D2)와 관련된 컴퓨팅 잡(150)을 고려하면, 그 컴퓨팅 잡(150)은 제 2 데이터(D2)의 고속 사본(D2[a])을 저장하고 있는 두 번째 데이터 노드(106b)에 할당될 수 있다. 제 3 데이터(D3)와 관련된 컴퓨팅 잡(150)도 유사한 방식으로 세 번째 데이터 노드(106c)에 할당될 수 있다. 컴퓨팅 잡(150)이 여러 데이터의 조각과 관련된 경우(예컨대, 제 1 데이터(D1) 및 제 2 데이터(D2)와 관련된 경우), 잡 트래커 컴퓨팅 장치(102)는 어떤 데이터 노드 또는 컴퓨팅 노드가 그 컴퓨팅 잡(150)을 가장 빠르게 처리할 수 있는지를 판별하거나 추정하도록 구성될 수 있다. 이 경우, 그 컴퓨팅 잡(150)을 할당할 데이터 노드 또는 컴퓨팅 노드를 결정하기 위해, 처리 혼잡도, 처리 부하(Load), 데이터 노드의 인접 정도, 데이터 사용량, 데이터 선호도 등을 고려한 기준이 설정될 수 있으나, 본 발명은 위에 나열된 항목들로 한정되지 않는다. 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
도 2는 본 발명의 실시 예에 따른 전자 시스템의 구성에 관한 다른 실시 예를 나타낸 개념도이다. 도 2는 두 가지의 서로 다른 형태의 실시 예들을 보여준다. 이 두 가지의 실시 예들은 동시에 구현될 수 있으나, 반드시 동시에 구현될 필요는 없다. 이 두 가지의 실시 예들은 다른 실시 예들과 함께 구현될 수 있다.
실시 예로서, 전자 시스템(200)에 의해 구동되는 분산 파일 시스템은 네임 노드(104) 및 복수의 데이터 노드(208)를 포함할 수 있다. 복수의 데이터 노드(208)는 많은 데이터 노드들(106a, 106b, 106c)을 포함할 수 있다.
실시 예로서, 복수의 데이터 노드(208)는 복수의 데이터 그룹(218a, 218b)으로 나뉠 수 있다. 실시 예로서, 복수의 데이터 그룹(218a, 218b) 각각은 하나 이상의 데이터 노드들을 포함할 수 있다. 실시 예로서, 하나의 데이터 그룹에 포함되는 데이터 노드들은 동일한 물리적 위치에 놓일 수 있다. 심지어, 경우에 따라, 하나의 데이터 그룹에 포함되는 데이터 노드들은 하나의 장치에 구현되어, 동일한 기기 내에 함께 실장될 수 있다. 이러한 경우, 하나의 데이터 그룹(218a)에 포함되는 데이터 노드들(106a, 106b)은 공통의 버스 또는 기판을 공유하여, 하나의 데이터 그룹(218a)에 포함되는 데이터 노드들(106a, 106b) 사이에서는 다른 데이터 그룹(218b)에 포함되는 데이터 노드(106c)와의 사이에서보다 좀 더 빠르고 효율적인 통신이 이루어질 수 있다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 데이터 그룹을 정의하기 위한 기준은 데이터 노드의 물리적 위치, 데이터 노드의 이용 권한(예컨대, 어떤 데이터 노드가 특정 부서 또는 소프트웨어의 대여자에 의해 소유되었는지 여부 등), 데이터 노드의 유형 또는 하드웨어 및 소프트웨어의 구성(예컨대, 어떤 데이터 노드들이 동일한 프로세서를 포함하는지 여부 등), 보안 문제(예컨대, 어떤 데이터 노드가 기밀 데이터 또는 특정 암호에 의해 보호되는 데이터를 저장하는지 여부 등) 등의 요인들 중 하나 이상에 기초하여 설정될 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
나아가, 실시 예로서, 전자 시스템(200)은 컴퓨팅 노드(222)를 포함할 수 있다. 실시 예로서, 컴퓨팅 노드(222)는 첫 번째 데이터 노드(106a)를 포함할 수 있다. 이 실시 예에서, 두 번째 데이터 노드(106b) 및 세 번째 데이터 노드(106c)는 컴퓨팅 노드를 포함하지 않거나 그 자신의 컴퓨팅 노드를 포함할 수 있다(이 경우, 컴퓨팅 노드(222) 옆에 다른 컴퓨팅 노드가 놓일 수 있다).
실시 예로서, 잡 트래커 컴퓨팅 장치(102)는 중앙 집중 스케줄러(Scheduler)를 포함할 수 있다. 실시 예로서, 잡 트래커 컴퓨팅 장치(102)는 컴퓨팅 노드들 또는 다른 물리 장치들과 별개로 컴퓨팅 기능을 갖거나 제공할 수 있다. 실시 예로서, 잡 트래커 컴퓨팅 장치(102) 및 컴퓨팅 노드(222)는 하나의 기기 안에 포함되지 않을 수 있다.
실시 예로서, 잡 트래커 컴퓨팅 장치(102)는 작업 노드(Worker Node) 또는 태스크 트래커(Task Tracker)라고도 불리는 데이터 노드들(106a, 106b, 106c)에 대해 태스크를 스케줄링할 수 있다. 예로서, 잡 트래커 컴퓨팅 장치(102)가 네 개의 컴퓨팅 잡들(252, 254, 256, 258)을 여러 컴퓨팅 노드들에 할당하는 경우가 설명된다.
예로서, 컴퓨팅 잡(252)은 제 1 데이터(D1)와 관련되고, 컴퓨팅 잡(254)은 제 2 데이터(D2)와 관련되고, 컴퓨팅 잡(256)은 제 3 데이터(D3)와 관련되고, 컴퓨팅 잡(258)은 제 4 데이터(D4)와 관련된 것으로 가정한다. 실시 예로서, 컴퓨팅 잡의 할당을 위해, 데이터의 특정 사본(예컨대, 고속 사본, 저속 사본 등)을 이용하기 위한 컴퓨팅 노드가 지시될 수 있다. 다른 실시 예로서, 특정 컴퓨팅 노드에 특정 컴퓨팅 잡이 할당될 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 잡 트래커 컴퓨팅 장치(102)는 모든 컴퓨팅 잡들(252, 254, 256, 258)을 컴퓨팅 노드(222)에 할당할 수 있다. 또한, 잡 트래커 컴퓨팅 장치(102)는 특정 데이터의 조각을 이용하여 그것에 대응하는 컴퓨팅 잡을 수행할(예컨대, 제 1 데이터(D1)의 고속 사본(D1[a]) 또는 저속 사본(D1[b])을 이용하여 컴퓨팅 잡(252)을 수행할) 것을 컴퓨팅 노드(222)에 지시할 수 있다. 컴퓨팅 잡의 할당 과정에서, 잡 트래커 컴퓨팅 장치(102)는 어떤 데이터의 조각들이 저장되어 있고 그 데이터의 조각들이 어느 저장 매체에 저장되어 있는지를 판단해줄 것을 네임 노드(104)에 요청할 수 있다. 위에서 언급된 것과 같이, 네임 노드(104)는 디렉토리 트리(170)를 이용하여 고속 사본이 저장된 위치에 관한 정보를 잡 트래커 컴퓨팅 장치(102)로 제공할 수 있다. 나아가, 잡 트래커 컴퓨팅 장치(102)는 데이터 그룹들(218a, 218b) 각각에 포함된 데이터 노드들을 인지할 수 있다. 실시 예로서, 잡 트래커 컴퓨팅 장치(102)는 데이터 그룹들(218a, 218b) 각각에 포함된 데이터 노드들에 관한 정보를 네임 노드(104)로부터 습득할 수 있다.
잡 트래커 컴퓨팅 장치(102)는 컴퓨팅 잡(252)을 컴퓨팅 노드(222)에 할당할 때, 데이터의 어떤 사본 또는 조각이 컴퓨팅 노드(222)에 의해 가장 빠르게 또는 가장 쉽게 접근될 수 있는지를 판별할 수 있다. 예로서, 잡 트래커 컴퓨팅 장치(102)는 제 1 데이터(D1)의 고속 사본(D1[a])이 컴퓨팅 노드(222)와 동일한 컴퓨팅 장치에 저장되어 있음을 판단할 수 있다. 이 예에서, 제 1 데이터(D1)의 고속 사본(D1[a])이 빠르게 접근될 수 있고 가까이 저장되어 있으므로, 잡 트래커 컴퓨팅 장치(102)는 제 1 데이터(D1)의 고속 사본(D1[a])을 컴퓨팅 잡(252)에 할당할 수 있다.
예로서, 컴퓨팅 잡(254)과 관련하여, 제 2 데이터(D2)의 저속 사본(D2[b])이 컴퓨팅 노드(222)와 동일한 컴퓨팅 장치(즉, 첫 번째 데이터 노드(106a))에 저장되어 있으나, 느리게 작동하는 제 2 저장 매체(114)에 저장되어 있을 수 있다. 반면, 제 2 데이터(D2)의 고속 사본(D2[a])이 좀 더 빠르게 작동하는 제 1 저장 매체(112)에 저장되어 있으나, 컴퓨팅 노드(222) 외부의 두 번째 데이터 노드(106b)에 저장되어 있을 수 있다. 이 예에서, 잡 트래커 컴퓨팅 장치(102)는 컴퓨팅 노드(222)와 동일한 컴퓨팅 장치에 저장된 데이터에 접근함으로써 얻어지는 속도 증가의 수준과 좀 더 빠르게 작동하는 제 1 저장 매체(112)에 저장된 데이터에 접근함으로써 얻어지는 속도 증가의 수준을 비교할 수 있다. 예로서, 잡 트래커 컴퓨팅 장치(102)는 비교 결과에 따라 제 2 데이터(D2)의 저속 사본(D2[b])을 컴퓨팅 잡(254)에 할당할 수 있다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
예로서, 컴퓨팅 잡(256)과 관련하여, 제 3 데이터(D3)의 저속 사본(D3[c])이 컴퓨팅 노드(222)와 동일한 데이터 그룹(즉, 데이터 그룹(218a))에 저장되어 있으나, 두 번째 데이터 노드(106b)의 느리게 작동하는 제 2 저장 매체(114)에 저장되어 있을 수 있다. 반면, 제 3 데이터(D3)의 고속 사본(D3[a])이 좀 더 빠르게 작동하는 제 1 저장 매체(112)에 저장되어 있으나, 데이터 그룹(218a)에 포함되지 않는 세 번째 데이터 노드(106c)에 저장되어 있을 수 있다. 이 예에서, 잡 트래커 컴퓨팅 장치(102)는 데이터 그룹(218a)에 포함되지 않는 세 번째 데이터 노드(106c)에 저장된 데이터에 접근함으로써 발생하는 속도 감소의 수준과 데이터 그룹(218a)에 포함되는 두 번째 데이터 노드(106b)의 느리게 작동하는 제 2 저장 매체(114)에 저장된 데이터에 접근함으로써 발생하는 속도 감소의 수준을 비교할 수 있다. 예로서, 원거리에 저장된 데이터의 조각에 접근함으로써 발생하는 속도 감소의 수준이 더 클 수 있다. 이 예에서, 잡 트래커 컴퓨팅 장치(102)는 제 3 데이터(D3)의 저속 사본(D3[c])을 컴퓨팅 잡(256)에 할당할 수 있다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
예로서, 컴퓨팅 잡(258)과 관련하여, 제 4 데이터(D4)는 컴퓨팅 노드(222)와 동일한 컴퓨팅 장치(즉, 첫 번째 데이터 노드(106a))에 저장되어 있지도 않고 컴퓨팅 노드(222)와 동일한 데이터 그룹(즉, 데이터 그룹(218a))에 저장되어 있지도 않을 수 있다. 예로서, 제 4 데이터(D4)는 컴퓨팅 노드(222)와 다른 데이터 그룹(즉, 데이터 그룹(218b)에 포함되는 세 번째 데이터 노드(106c)에 저장되어 있을 수 있다. 이 예에서, 잡 트래커 컴퓨팅 장치(102)는 제 4 데이터(D4)를 컴퓨팅 잡(258)에 할당할 수 있다. 다른 예로서, 제 4 데이터(D4)는 데이터 그룹(218a)에 포함되지 않는 여러 데이터 노드에 저장되어 있을 수 있다. 이 예에서, 잡 트래커 컴퓨팅 장치(102)는 제 4 데이터(D4)가 좀 더 빠르게 작동하는 제 1 저장 매체(112)에 저장되어 있는지 또는 느리게 작동하는 제 2 저장 매체(114)에 저장되어 있는지 여부, 또는 원거리의 데이터 그룹들 사이의 상대적인 접근 시간 등을 고려할 수 있다. 다만, 이들은 단지 몇 가지의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
도 3은 본 발명의 실시 예에 따른 전자 시스템의 작동을 설명하는 흐름도이다. 실시 예로서, 도 3의 작동 방법은 도 1, 도 2, 도 4, 도 5, 도 6, 또는 도 7에 나타낸 전자 시스템에 의해 이용될 수 있다. 다만, 이들은 단지 몇 가지의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다. 나아가, 본 발명은 도 3에 나타낸 처리 순서 또는 참조 부호에 의해 한정되지 않는다.
S110 단계에서, 실시 예로서, 잡 트래커 컴퓨팅 장치가 컴퓨팅 태스크 또는 잡을 제공받을 수 있다. 나아가, 컴퓨팅 태스크 또는 잡은 스케줄링 또는 할당되기 위해 준비될 수 있다. 이에 따라, 잡 트래커 컴퓨팅 장치는 어떤 데이터가 컴퓨팅 잡과 관련되어 있고 관련된 데이터가 이종의 저장 매체들을 이용하는 분산 파일 시스템의 어느 위치에 저장되어 있는지를 판단할 수 있다.
S120 단계에서, 컴퓨팅 잡을 데이터 노드에 할당하거나 스케줄링하기 위한 첫 번째 조건이 판단될 수 있다. S120 단계에서, 실시 예로서, 컴퓨팅 노드가 컴퓨팅 잡과 관련된 데이터를 저장하고 있는지 여부, 및 컴퓨팅 잡과 관련된 데이터가 좀 더 빠르게 작동하는 제 1 저장 매체에 저장되어 있는지 여부가 판단될 수 있다. 컴퓨팅 잡과 관련된 데이터가 컴퓨팅 노드의 제 1 저장 매체에 저장되어 있는 경우, S130 단계가 수행될 수 있다. 반면, 컴퓨팅 잡과 관련된 데이터가 컴퓨팅 노드의 제 1 저장 매체에 저장되어 있지 않은 경우, S140 단계가 수행될 수 있다.
S130 단계에서, 실시 예로서, 컴퓨팅 잡과 관련된 데이터가 컴퓨팅 노드의 좀 더 빠르게 작동하는 제 1 저장 매체에 저장되어 있는 경우, 그 컴퓨팅 잡은 컴퓨팅 노드의 제 1 저장 매체에 저장된 데이터를 이용하도록 스케줄링될 수 있다(예컨대, 컴퓨팅 노드의 제 1 저장 매체에 저장된 데이터에 할당되거나, 특정 사본을 이용하도록 안내될 수 있다). 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
S140 단계에서, 컴퓨팅 잡을 데이터 노드에 할당하거나 스케줄링하기 위한 두 번째 조건이 판단될 수 있다. S140 단계에서, 실시 예로서, 컴퓨팅 노드가 컴퓨팅 잡과 관련된 데이터를 저장하고 있는지 여부, 및 컴퓨팅 잡과 관련된 데이터가 느리게 작동하는 제 2 저장 매체에 저장되어 있는지 여부가 판단될 수 있다. 컴퓨팅 잡과 관련된 데이터가 컴퓨팅 노드의 제 2 저장 매체에 저장되어 있는 경우, S150 단계가 수행될 수 있다. 반면, 컴퓨팅 잡과 관련된 데이터가 컴퓨팅 노드의 제 2 저장 매체에 저장되어 있지 않은 경우, S160 단계가 수행될 수 있다.
S150 단계에서, 실시 예로서, 컴퓨팅 잡과 관련된 데이터가 컴퓨팅 노드의 느리게 작동하는 제 2 저장 매체에 저장되어 있는 경우, 그 컴퓨팅 잡은 컴퓨팅 노드의 제 2 저장 매체에 저장된 데이터를 이용하도록 스케줄링될 수 있다(예컨대, 컴퓨팅 노드의 제 2 저장 매체에 저장된 데이터에 할당되거나, 특정 사본을 이용하도록 안내될 수 있다). 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다. 나아가, 위에서 언급된 것과 같이, 본 발명은 도 3에 나타낸 처리 순서 또는 참조 부호에 의해 한정되지 않는다. 도 3의 방법에 따른 처리 순서는, 예컨대, 연결 레이턴시, 저장 매체의 접근 시간 프로파일 등과 같은 조건에 기초하여 변경 또는 수정될 수 있다.
S160 단계에서, 컴퓨팅 잡을 데이터 노드에 할당하거나 스케줄링하기 위한 세 번째 조건이 판단될 수 있다. S160 단계에서, 실시 예로서, 컴퓨팅 잡과 관련된 데이터가 컴퓨팅 노드와 동일한 데이터 그룹에 저장되어 있는지 여부가 판단될 수 있다. 컴퓨팅 잡과 관련된 데이터가 컴퓨팅 노드와 동일한 데이터 그룹에 저장되어 있는 경우, S170 단계가 수행될 수 있다. 반면, 컴퓨팅 잡과 관련된 데이터가 컴퓨팅 노드와 동일한 데이터 그룹에 저장되어 있지 않은 경우, S180 단계가 수행될 수 있다.
S170 단계에서, 실시 예로서, 컴퓨팅 잡과 관련된 데이터가 컴퓨팅 노드와 동일한 데이터 그룹에 저장되어 있는 경우, 그 컴퓨팅 잡은 컴퓨팅 노드와 동일한 데이터 그룹에 저장된 데이터를 이용하도록 스케줄링될 수 있다(예컨대, 컴퓨팅 노드와 동일한 데이터 그룹에 저장된 데이터에 할당되거나, 특정 사본을 이용하도록 안내될 수 있다). 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다. 나아가, 위에서 언급된 것과 같이, 본 발명은 도 3에 나타낸 처리 순서 또는 참조 부호에 의해 한정되지 않는다. 도 3의 방법에 따른 처리 순서는, 예컨대, 연결 레이턴시, 저장 매체의 접근 시간 프로파일 등과 같은 조건에 기초하여 변경 또는 수정될 수 있다.
S180 단계에서, 실시 예로서, 컴퓨팅 잡과 관련된 데이터가 컴퓨팅 노드와 동일한 데이터 그룹에 저장되어 있지 않은 경우, 그 컴퓨팅 잡은 컴퓨팅 노드와 다른 데이터 그룹에 저장된 데이터를 이용하도록 스케줄링될 수 있다(예컨대, 컴퓨팅 노드와 다른 데이터 그룹에 저장된 데이터에 할당되거나, 특정 사본을 이용하도록 안내될 수 있다). 다만, 이상의 실시 예들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다. 본 발명의 실시 예에서, 여러 데이터의 조각들이 저장된 위치를 구별하기 위해 다른 조건 또는 단계들이 채용될 수 있다.
도 4는 본 발명의 실시 예에 따른 전자 시스템의 구성에 관한 또 다른 실시 예를 나타낸 개념도이다. 도 4의 실시 예는 다른 실시 예들과 함께 구현될 수 있으나, 반드시 함께 구현될 필요는 없다.
실시 예로서, 전자 시스템(400)에 의해 구동되고 이종의 저장 매체들을 이용하는 분산 파일 시스템은 네임 노드(104) 및 복수의 데이터 노드(108)를 포함할 수 있다. 실시 예로서, 복수의 데이터 노드(108)는 데이터 노드들(106a, 106b, 106c)을 포함할 수 있다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 전자 시스템(400)에 의해 구동되는 분산 파일 시스템은 선입 선출(First In First Out) 방식 또는 의사(Pseudo) 선입 선출 방식으로 작동하도록 구성될 수 있다. 이 실시 예에서, 전자 시스템(400)에 의해 구동되는 분산 파일 시스템은 활성화된 또는 가장 최근에 이용된 데이터의 조각들의 사본들을 좀 더 빠르게 작동하는 제 1 저장 매체(112)들에 유지시키도록 구성될 수 있다. 이 실시 예에서, 네임 노드(104)는 어떤 데이터의 조각이 제 1 저장 매체(112)에 저장된 사본을 가져야 하는지를 나타내는 활성화 플래그(Flag; 474)를 저장할 수 있다. 여기서, 활성화 '플래그'라는 용어가 이용되었으나, 이는 본 발명을 한정하기 위한 것은 아니다. 활성화 플래그(474)는 하나 이상의 비트들 또는 필드(Field)의 형태를 가질 수 있다. 실시 예로서, 활성화 플래그(474)는 데이터와 함께 저장되거나, 데이터 노드(106a)에 저장될 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 전자 시스템(400)에 의해 구동되는 분산 파일 시스템은 활성화 플래그(474)의 일부분으로서 만료 시각 또는 타이머를 채용할 수 있다. 이 실시 예에서, 데이터가 제 1 저장 매체(112)에 저장되면, 만료 시각(예컨대, 저장 후 1시간 뒤, 10분 뒤 등)이 설정될 수 있다. 이 실시 예에서, 만료 시각이 경과하면, 데이터가 제 1 저장 매체(112)에서 제 2 저장 매체(114)로 이동하여, 적은 용량을 갖는 제 1 저장 매체(112)에 다른 데이터를 더 저장하기 위한 공간이 확보될 수 있다.
실시 예로서, 제 1 데이터(D1)의 고속 사본(D1[a])이 첫 번째 데이터 노드(106a)의 제 1 저장 매체(112)에 저장되면, 만료 시각이 소정의 값으로 설정될 수 있다. 실시 예로서, 만료 시각은 디렉토리 트리(170)와 관련되어 활성화 플래그(474)의 형태로 지시될 수 있다. 이 실시 예에서, 네임 노드(104)는 주기적으로 활성화 플래그(474)를 탐색하여 어떤 데이터의 만료 시각이 경과하였는지를 판단할 수 있다. 예로서, 제 1 데이터(D1)의 만료 시각이 경과하였다면, 네임 노드(104)는 제 1 데이터(D1)의 고속 사본(D1[a])을 제 1 저장 매체(112)에서 제 2 저장 매체(114)로 이동시키기 위해 첫 번째 데이터 노드(106a)로 메시지를 제공할 수 있다. 다른 실시 예로서, 만료 시각은 첫 번째 데이터 노드(106a) 내에 저장되어, 네임 노드(104)의 개입 없이 첫 번째 데이터 노드(106a)가 제 1 데이터(D1)의 고속 사본(D1[a])의 이동을 관리할 수 있다. 데이터의 이동의 관리는 첫 번째 데이터 노드(106a)에 의해 통제되는 백그라운드 처리로 이해될 수 있다. 이 실시 예에서, 첫 번째 데이터 노드(106a)에 의해 데이터가 이동됨을 알리는 메시지가 네임 노드(104)로 제공될 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
다른 실시 예로서, 제 1 저장 매체(112)에 저장된 데이터의 이동의 관리는 새로운 데이터가 제 1 저장 매체(112)에 저장될 때 수행될 수 있다. 그런데, 새로운 데이터를 저장하기 위한 여유 공간이 충분하지 않을 수 있다. 예로서, 두 번째 데이터 노드(106b)의 제 1 저장 매체(112)에 여유 공간이 없으나, 제 3 데이터(D3)의 고속 사본(D3[a])이 두 번째 데이터 노드(106b)의 제 1 저장 매체(112)에 저장될 필요가 있을 수 있다. 이 예에서, 두 번째 데이터 노드(106b) 또는 네임 노드(104)는 두 번째 데이터 노드(106b)의 제 1 저장 매체(112)에 이미 저장된 데이터의 조각들과 관련된 활성화 플래그(474)를 조사하여, 새로운 데이터인 제 3 데이터(D3)의 고속 사본(D3[a])을 저장하기 위한 여유 공간을 확보하기 위해 두 번째 데이터 노드(106b)의 제 1 저장 매체(112)에서 방출될 데이터를 결정할 수 있다.
실시 예로서, 전자 시스템(400)에 의해 구동되는 분산 파일 시스템은 이용된 지 가장 오래된 데이터를 방출(즉, 제 2 저장 매체(114)로 이동)시킬 수 있다. 이 실시 예에서, 데이터가 접근될 때마다 활성화 플래그(474)가 갱신될 수 있다. 다른 실시 예로서, 전자 시스템(400)은 가장 임박한 만료 시각을 갖는 데이터를 방출시킬 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
예로서, 제 2 데이터(D2)의 고속 사본(D2[a])이 이용된 지 가장 오래되었거나 가장 임박한 만료 시각을 갖는 것으로 판단될 수 있다. 이 예에서, 제 2 데이터(D2)의 고속 사본(D2[a])은 제 1 저장 매체(112)에서 제 2 저장 매체(114)로 이동할 수 있다. 실시 예로서, 네임 노드(104)는 제 2 데이터(D2)의 고속 사본(D2[a])을 이동시킬 것을 판단하고, 제 2 데이터(D2)의 고속 사본(D2[a])의 이동을 초기화할 수 있다. 다른 실시 예로서, 두 번째 데이터 노드(106b)는 외부의 개입 없이 제 2 데이터(D2)의 고속 사본(D2[a])을 이동시키고, 제 2 데이터(D2)의 고속 사본(D2[a])이 저속 사본으로 취급되어야 함을 네임 노드(104)로 알릴 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
전자 시스템(400)에 의해 구동되는 분산 파일 시스템은 복수의 데이터 노드(108) 사이에서 '로드 밸런싱(Load Balancing)'을 수행하도록 구성될 수 있다. 실시 예로서, 로드 밸런싱은 복수의 데이터 노드(108) 중에서 어느 하나의 데이터 노드(또는 데이터 노드들의 집합)에 발생하는 데이터 충돌을 줄이기 위해 수행될 수 있다. 예로서, 두 번째 데이터 노드(106b)는 제 1 저장 매체(112)에 여러 개의 데이터의 조각들을 저장할 수 있다. 고속 사본들은 서로 다른 데이터 노드들로 분산될 필요가 있을 수 있다. 이 예에서, 네임 노드(104)는 제 3 데이터(D3)의 고속 사본(D3[a])이 두 번째 데이터 노드(106b)에서 세 번째 데이터 노드(106c)로 이동하도록 명령을 내릴 수 있다. 이 예에서, 제 3 데이터(D3)의 저속 사본(D3[c])이 이미 세 번째 데이터 노드(106c)에 저장되어 있을 수 있다. 네임 노드(104)는 제 3 데이터(D3)의 저속 사본(D3[c])이 세 번째 데이터 노드(106c)에서 두 번째 데이터 노드(106b)로 이동하도록 만들 수 있다. 다른 실시 예로서, 어떤 데이터 노드가 활성화되지 않은 경우, 그 데이터 노드에 저장된 데이터의 고속 사본은 다른 데이터 노드의 제 1 저장 매체(112)로 이동될 수 있다. 이 실시 예들에 따르면, 데이터들이 하나의 데이터 노드 내의 제 1 저장 매체(112)와 제 2 저장 매체(114) 사이에서 효율적으로 이동할 수 있다. 나아가, 데이터들이 서로 다른 데이터 노드들 사이에서 이동하여, 전반적인 효율이 개선될 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
어떤 경우에는 로드 밸런싱이 수행되지 않을 수 있다. 예로서, 하나의 데이터 노드 또는 하나의 데이터 그룹 내에 여러 데이터의 조각이 함께 위치하는 것이 더 유리한 경우가 있을 수 있다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 로드 밸런싱은 로드 레벨링(Leveling) 또는 제 1 저장 매체(112)들의 유지 및 관리와 함께 채용된 다른 백그라운드 처리들을 포함할 수 있다. 실시 예로서, 이 백그라운드 처리들은 제 1 저장 매체(112) 및 제 2 저장 매체(114)에 이용된 기술에 따라 달라질 수 있다. 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
도 5는 본 발명의 실시 예에 따른 전자 시스템의 구성에 관한 또 다른 실시 예를 나타낸 개념도이다. 도 5의 실시 예는 다른 실시 예들과 함께 구현될 수 있으나, 반드시 함께 구현될 필요는 없다.
실시 예로서, 전자 시스템(500)에 의해 구동되고 이종의 저장 매체들을 포함하는 분산 파일 시스템은 네임 노드(104) 및 복수의 데이터 노드(108)를 포함할 수 있다. 실시 예로서, 복수의 데이터 노드(108)는 데이터 노드들(106a, 106b, 106c)을 포함할 수 있다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 클라이언트 컴퓨팅 장치(502)는 전자 시스템(500)에 데이터를 저장하고자 할 수 있다. 실시 예로서, 클라이언트 컴퓨팅 장치(502)는 도 1의 데이터 노드(106a)의 것들과 유사한 하드웨어 및/또는 소프트웨어 구성 요소들을 포함할 수 있다. 실시 예로서, 클라이언트 컴퓨팅 장치(502)는 컴퓨팅 노드를 포함할 수 있다. 다른 실시 예로서, 클라이언트 컴퓨팅 장치(502)는 컴퓨팅 노드도 아니고 분산 컴퓨팅 시스템의 일부분인 노드도 아닐 수 있다. 예로서, 클라이언트 컴퓨팅 장치(502)는 단지 전자 시스템(500)에 접근하고자 하는 별개의 장치일 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 클라이언트 컴퓨팅 장치(502)는 저장할 또는 저장하고자 하는 쓰기 데이터(DW)를 위한 어드레스 또는 데이터 노드를 요청할 수 있다. 쓰기 데이터(DW)는 전자 시스템(500)에 의해 구동되는 분산 파일 시스템에 저장될 데이터의 조각일 수 있다. 실시 예로서, 네임 노드(104)는 어떤 데이터 노드에 쓰기 데이터(DW)의 고속 사본(즉, DW[a])을 저장할 것인지를 판단할 수 있다. 실시 예로서, 네임 노드(104)는 디렉토리 트리(170)를 조사하여 쓰기 데이터(DW)의 고속 사본(DW[a])을 저장할 데이터 노드를 결정할 수 있다. 네임 노드(104)는 클라이언트 컴퓨팅 장치(502)의 요청에 대해 데이터 노드에 관한 정보를 제공함으로써 응답할 수 있다.
클라이언트 컴퓨팅 장치(502)는 쓰기 데이터(DW)의 고속 사본(DW[a])을 저장하기 위한 저장 매체의 어드레스 또는 데이터 노드에 관한 정보를 제공받으면, 그 데이터 노드에 쓰기 데이터(DW)를 저장하기 위한 접근을 수행할 수 있다. 예로서, 첫 번째 데이터 노드(106a)에 쓰기 데이터(DW)의 고속 사본(DW[a])이 저장될 수 있다. 이 예에서, 쓰기 데이터(DW)의 고속 사본(DW[a])이 쓰기 데이터(DW)의 첫 번째 사본일 수 있다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 일단 쓰기 데이터(DW)의 사본이 전자 시스템(500)에 의해 구동되는 분산 파일 시스템에 저장되면, 클라이언트 컴퓨팅 장치(502)는 쓰기 데이터(DW)로의 접근이 완료된 것으로 인지할 수 있다. 이 실시 예에서, 전자 시스템(500)에 의해 구동되는 분산 파일 시스템은 클라이언트 컴퓨팅 장치(502)에 의해 제공된 새로운 정보를 이용하여 쓰기 데이터(DW)의 중복되는 사본들(예컨대, 저속 사본들(DW[b], DW[c]))을 갱신할 수 있다.
위 실시 예에서, 첫 번째 데이터 노드(106a)는 쓰기 데이터(DW)의 고속 사본(DW[a]) 및 두 번째의 중복되는 사본인 저속 사본(DW[b])을 저장하도록 구성될 수 있다. 이 실시 예에서, 첫 번째 데이터 노드(106a)는 두 번째 데이터 노드(106b)의 제 2 저장 매체(114)에 쓰기 데이터(DW)의 저속 사본(DW[b])을 저장하기 위해 두 번째 데이터 노드(106b)로의 접근을 개시할 수 있다. 이와 유사하게, 쓰기 데이터(DW)의 저속 사본(DW[b])을 저장하고 있는 두 번째 데이터 노드(106b)는 쓰기 데이터(DW)의 세 번째 사본인 저속 사본(DW[c])을 저장하기 위한 기능을 수행할 수 있다. 실시 예로서, 쓰기 데이터(DW)의 중복되는 사본들을 생성 또는 갱신하는 과정은 백그라운드 처리로서 수행될 수 있다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
도 6은 본 발명의 실시 예에 따른 전자 시스템의 구성에 관한 또 다른 실시 예를 나타낸 블록도이다. 도 6의 실시 예는 다른 실시 예들과 함께 구현될 수 있으나, 반드시 함께 구현될 필요는 없다.
실시 예로서, 전자 시스템(600)에 의해 구동되고 이종의 저장 매체들을 이용하는 분산 파일 시스템은 네임 노드(104) 및 복수의 데이터 노드(608)를 포함할 수 있다. 실시 예로서, 복수의 데이터 노드(608)는 데이터 노드들(606a, 106b, 606c)을 포함할 수 있다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 도 1, 도 2, 도 4, 및 도 5에서, 데이터 노드들(106a, 106b, 106c)이 제 1 저장 매체(112) 및 제 2 저장 매체(114)를 모두 포함하는 것으로 도시되었다. 다른 실시 예로서, 도 6에 나타낸 것과 같이, 복수의 데이터 노드(608)에 포함되는 어떤 데이터 노드는 제 1 저장 매체(112) 및 제 2 저장 매체(114) 중 어느 하나를 포함하지 않을 수 있다.
예로서, 첫 번째 데이터 노드(606a)는 제 2 저장 매체(114)만을 포함하여, 어떤 데이터의 고속 사본을 저장하지 않을 수 있다. 그러나, 이것은 첫 번째 데이터 노드(606a)가 어떤 데이터의 활성화된 사본을 저장하지 못한다는 것을 의미하는 것이 아니라, 단지 고속 사본을 저장하지 않는다는 것을 의미할 뿐이다. 예로서, 첫 번째 데이터 노드(606a)는 제 4 데이터(D4)의 첫 번째 사본(D4[a])을 저장할 수 있다. 제 4 데이터(D4)의 첫 번째 사본(D4[a])은 활성화되어 있으나, 느리게 접근될 수 있다. 이 예에서, 제 4 데이터(D4)는 첫 번째 데이터 노드(606a)를 통해 첫 번째 사본(D4[a])으로 접근될 수 있다. 제 4 데이터(D4)의 중복되는 사본들(D4[b], D4[c])은 각각 두 번째 데이터 노드(106b) 및 세 번째 데이터 노드(606c)에 저장될 수 있다. 나아가, 도 1에서는 제 1 데이터(D1)의 활성화된 고속 사본(D1[a])이 첫 번째 데이터 노드(106a)에 저장된 것으로 나타냈으나, 도 6에서는 제 1 데이터(D1)의 활성화된 고속 사본(D1[a])이 세 번째 데이터 노드(606c)의 제 1 저장 매체(112)에 저장되어 있을 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
예로서, 두 번째 데이터 노드(106b)는 제 1 저장 매체(112) 및 제 2 저장 매체(114)를 모두 포함할 수 있다. 이 예에서, 두 번째 데이터 노드(106b)는 도 1, 도 2, 도 4, 및 도 5에 대한 설명에서 언급된 것과 유사한 기능을 수행할 수 있다. 다만, 이는 단지 하나의 예시일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
예로서, 세 번째 데이터 노드(606c)는 제 1 저장 매체(112)만을 포함하여, 어떤 데이터의 저속 사본을 저장하지 않을 수 있다. 그러나, 이것은 세 번째 데이터 노드(606c)가 어떤 데이터의 비활성화된 또는 중복되는 사본을 저장하지 못한다는 것을 의미하는 것이 아니라, 단지 어떤 데이터의 비활성화된 또는 중복되는 사본이 좀 더 빠르게 작동하는 제 1 저장 매체(112)에 저장된다는 것을 의미할 뿐이다. 예로서, 세 번째 데이터 노드(606c)는 제 1 데이터(D1)의 활성화된 고속 사본(D1[a]) 및 제 3 데이터(D3)의 활성화된 고속 사본(D3[a])을 저장할 수 있다. 나아가, 제 2 데이터(D2)의 중복되는 사본(D2[c]) 및 제 4 데이터(D4)의 중복되는 사본(D4[c])이 세 번째 데이터 노드(606c)의 제 1 저장 매체(112)에 저장될 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
도 6의 예에서, 중복되는 데이터의 저장 기준, 로드 밸런싱의 수행 기준 등은 모든 데이터 노드들이 좀 더 빠르게 작동하는 제 1 저장 매체(112) 및 느리게 작동하는 제 2 저장 매체(114)를 모두 포함하는 분산 파일 시스템의 것에서 변경 또는 수정될 수 있다. 예로서, 데이터의 중복되는 사본들의 개수가 줄어들거나, 동일한 데이터 노드에 두 개의 중복되는 사본들이 저장되는 것(예컨대, 두 번째 데이터 노드(106b)의 제 1 저장 매체(112)에 제 2 데이터(D2)의 고속 사본(D2[a])이 저장되고, 두 번째 데이터 노드(106b)의 제 2 저장 매체(112)에 제 2 데이터(D2)의 저속 사본(D2[c])이 저장되는 것)이 허용되지 않을 수 있다. 이러한 예들에 따르면, 제한된 저장 용량을 갖는 제 1 저장 매체(112)에 저장되는 데이터의 양이 줄어들 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
실시 예로서, 네임 노드(104)는 저장 매체/데이터 정보(670)를 저장할 수 있다. 실시 예로서, 저장 매체/데이터 정보(670)는 복수의 데이터 노드(608)의 저장 매체들에 관한 정보(예컨대, 어떤 데이터 노드가 제 1 저장 매체(112) 또는 제 2 저장 매체(114)만을 포함하는지, 또는 제 1 저장 매체(112) 및 제 2 저장 매체(114)를 모두 포함하는지에 관한 정보)를 포함할 수 있다. 실시 예로서, 저장 매체/데이터 정보(670)는 어떤 데이터의 고속 사본이 저장된 위치를 나타내는 정보 대신 활성화된 데이터가 저장된 위치를 나타내는 정보를 포함할 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
도 7은 본 발명의 실시 예에 따른 시스템 또는 장치를 포함하는 정보 처리 시스템의 구성을 나타낸 블록도이다. 예로서, 본 발명의 실시 예에 따른 시스템 또는 장치는 반도체 장치의 형태로 구현될 수 있다.
정보 처리 시스템(700)은 본 발명의 실시 예에 따라 구성되는 하나 이상의 장치들을 포함할 수 있다. 또는, 정보 처리 시스템(700)은 본 발명의 실시 예에 따른 작동 방법을 채용하거나 실행할 수 있다.
실시 예로서, 정보 처리 시스템(700)은, 예컨대, 랩톱, 데스크톱, 워크스테이션, 서버, 블레이드 서버, PDA(Personal Digital Assistant), 스마트폰, 태블릿, 및 다른 적절한 컴퓨터 등과 같은 컴퓨팅 장치, 또는 가상 기기 또는 그것의 가상 컴퓨팅 장치 등을 포함할 수 있다. 실시 예로서, 정보 처리 시스템(700)은 사용자에 의해 이용될 수 있다.
본 발명의 실시 예에 따른 정보 처리 시스템(700)은 중앙 처리 유닛(Central Processing Unit), 로직(Logic), 또는 프로세서(Processor; 710)를 더 포함할 수 있다. 실시 예로서, 프로세서(710)는 하나 이상의 기능 유닛 블록(Functional Unit Block)들 또는 조합 논리 블록(Combinational Logic Block; 715)들을 포함할 수 있다. 실시 예로서, 조합 논리 블록(715)은 다양한 부울 논리 연산(Boolean Logic Operation; 예컨대, NAND, NOR, NOT, XOR 등)을 위한 논리 장치, 안정화(Stabilizing) 논리 장치(예컨대, 플립플롭(Flip-flop), 래치(Latch) 등), 다른 논리 장치, 또는 그것들의 조합을 포함할 수 있다. 조합 논리 블록(715)은 단순한 또는 좀 더 복잡한 방식으로 입력 신호를 처리하여 원하는 결과를 얻도록 구성될 수 있다. 동기식의(Synchronous) 조합 논리 연산의 몇 가지 예시가 언급되었으나, 본 발명은 이 예시들로 제한되지 않는다. 본 발명의 실시 예는 비동기식의(Asynchronous) 연산, 또는 동기식의 연산 및 비동기식의 연산의 조합을 이용할 수 있다. 실시 예로서, 조합 논리 블록(715)은 복수의 CMOS(Complementary Metal Oxide Semiconductor) 트랜지스터를 포함할 수 있다. 실시 예로서, CMOS 트랜지스터들은 논리 연산을 수행하는 게이트(Gate)로 배열될 수 있다. 다만, 다른 기술들이 이용될 수 있으며, 그것들 역시 본 발명의 기술 사상의 범위에 포함된다.
본 발명의 실시 예에 따른 정보 처리 시스템(700)은 휘발성 메모리(720; 예컨대, RAM(Random Access Memory) 등)를 더 포함할 수 있다. 본 발명의 실시 예에 따른 정보 처리 시스템(700)은 불휘발성 메모리(730; 예컨대, 하드 드라이브, 광학 메모리, NAND 플래시 메모리 등)를 더 포함할 수 있다. 실시 예로서, 휘발성 메모리(720), 불휘발성 메모리(730), 또는 그것들의 조합 또는 일부는 "저장 매체"로 불릴 수 있다. 실시 예로서, 휘발성 메모리(720) 및/또는 불휘발성 메모리(730)는 반영구적인 또는 실질적으로 영구적인 형태로 데이터를 저장하도록 구성될 수 있다. 휘발성 메모리(720) 및/또는 불휘발성 메모리(730)는 도 1 내지 도 6에 대한 설명에서 언급된 본 발명의 실시 예들에 기초하여 구현될 수 있다.
실시 예로서, 정보 처리 시스템(700)은 하나 이상의 네트워크 인터페이스(740)들을 포함할 수 있다. 네트워크 인터페이스(740)는 정보 처리 시스템(700)이 통신망의 일부로서 통신망을 통해 통신하도록 할 수 있다. 예로서, 네트워크 인터페이스(740)는 IEEE 802.11g, IEEE 802.11n 등을 포함하는 Wi-Fi 규약, Wireless-MAN Advanced로도 알려진 IEEE 802.16m, LTE Advanced, EDGE, HSPA+ 등을 포함하는 셀 통신 규약, 이더넷으로도 알려진 IEEE 802.3, Fibre Channel, Power Line communication(예컨대, HomePlug, IEEE 1901 등) 등을 포함하는 유선 통신 규약 등을 이용할 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
본 발명의 실시 예에 따른 정보 처리 시스템(700)은 유저 인터페이스(750; 예컨대, 디스플레이 어댑터(Display Adapter), 햅틱(Haptic) 인터페이스, 휴먼 인터페이스 장치 등)를 더 포함할 수 있다. 실시 예로서, 유저 인터페이스(750)는 사용자로부터 입력을 제공받거나 사용자에게 출력을 제공하도록 구성될 수 있다. 사용자와의 상호 작용을 위해, 다른 종류의 장치들이 이용될 수 있다. 예로서, 사용자에게 제공되는 피드백(Feedback)은 감각적인 피드백(예컨대, 시각적인 피드백, 청각적인 피드백, 또는 촉각적인 피드백)의 형태를 가질 수 있다. 그리고, 사용자로부터의 입력은 음향, 음성, 또는 촉각을 포함하여 어떠한 형태로든 제공될 수 있다.
실시 예로서, 정보 처리 시스템(700)은 하나 이상의 기타 하드웨어 장치들(760; 예컨대, 디스플레이 또는 모니터, 키보드, 마우스, 카메라, 지문 판독기, 비디오 처리기 등)을 포함할 수 있다. 다만, 이들은 단지 몇 가지의 예시들일 뿐이고, 본 발명을 제한하기 위한 것은 아니다.
본 발명의 실시 예에 따른 정보 처리 시스템(700)은 하나 이상의 시스템 버스(705)들을 더 포함할 수 있다. 실시 예로서, 시스템 버스(705)는 프로세서(710), 휘발성 메모리(720), 불휘발성 메모리(730), 네트워크 인터페이스(740), 유저 인터페이스(750), 및 기타 하드웨어 장치들(760)과 통신하도록 연결될 수 있다. 프로세서(710)에 의해 처리된 데이터 또는 불휘발성 메모리(730)의 외부로부터 입력된 데이터는 시스템 버스(705)를 통해 불휘발성 메모리(730) 또는 휘발성 메모리(720)에 저장될 수 있다.
실시 예로서, 정보 처리 시스템(700)은 하나 이상의 소프트웨어(770)들을 저장하거나 실행할 수 있다. 실시 예로서, 소프트웨어(770)는 운영 체제 및/또는 응용 프로그램을 포함할 수 있다. 실시 예로서, 운영 체제는 응용 프로그램에 하나 이상의 서비스들을 제공하고, 응용 프로그램과 정보 처리 시스템(700)의 다양한 하드웨어 장치들(예컨대, 프로세서(710), 네트워크 인터페이스(740) 등) 사이에서 중개 장치의 역할을 수행할 수 있다. 실시 예로서, 정보 처리 시스템(700)은 그 내부(예컨대, 불휘발성 메모리(730) 내부 등)에 설치되어 프로세서(710)에 의해 직접 실행되고 운영 체제와 직접 상호 작용하도록 구성되는 하나 이상의 내장 프로그램들을 포함할 수 있다. 실시 예로서, 내장 프로그램들은 미리 컴파일되어 기계로 실행 가능한 코드를 포함할 수 있다. 실시 예로서, 내장 프로그램들은 프로세서(710)에 의해 실행될 소스 코드 또는 오브젝트 코드를 실행 가능한 코드로 번역하도록 구성되는 스크립트 인터프리터(예컨대, C shell, AppleScript, AutoHotkey 등) 또는 가상 기기(예컨대, Java Virtual Machine, Microsoft Common Language Runtime 등)를 포함할 수 있다.
위에서 언급된 반도체 장치들은 다양한 패키징(Packaging) 방법을 이용하여 실장될 수 있다. 예로서, 본 발명의 실시 예에 따라 구성되는 반도체 장치들은 POP(Package On Package), BGAs(Ball Grid Arrays), CSPs(Chip Scale Packages), PLCC(Plastic Leaded Chip Carrier), PDIP(Plastic Dual In-line Package), Die in waffle pack, Die in wafer form, COB(Chip On Board), CERDIP(Ceramic Dual In-line Package), PMQFP(Plastic Metric Quad Flat Package), PQFP(Plastic Quad Flat Package), SOIC(Small Outline Package), SSOP(Shrink Small Outline Package), TSOP(Thin Small Outline Package), TQFP(Thin Quad Flat Package), SIP(System In Package), MCP(Multi-Chip Package), WFP(Wafer-level Fabricated Package), WSP(Wafer-level processed Stack Package), 또는 그 밖의 다른 패키징 방법들 중 하나 이상을 이용하여 실장될 수 있다.
본 발명의 실시 예에 따른 전자 장치 또는 시스템의 작동 방법은 입력 데이터를 처리하고 출력을 생성하여 고유의 기능을 수행하기 위해 컴퓨터 프로그램을 실행하도록 구성되는 하나 이상의 프로그램 가능한 프로세서들에 의해 수행될 수 있다. 본 발명의 실시 예에 따른 전자 장치 또는 시스템의 작동 방법은 전용 논리 회로(예컨대, FPGA(Field Programmable Gate Array), ASIC(Application Specific Integrated Chip) 등)에 의해 수행될 수 있다. 본 발명의 실시 예에 따른 전자 장치 또는 시스템은 전용 논리 회로(예컨대, FPGA, ASIC 등)로 구현될 수 있다.
실시 예로서, 컴퓨터로 읽을 수 있는 매체는 실행되었을 때 전자 장치가 본 발명의 실시 예에 따른 작동 방법의 적어도 일부분을 수행하도록 만드는 명령들을 포함할 수 있다. 실시 예로서, 컴퓨터로 읽을 수 있는 매체는 자기 매체, 광학 매체, 그 외의 다른 매체, 또는 그것들의 조합(예컨대, CD-ROM, 하드 드라이브, 읽기 전용 메모리, 플래시 드라이브 등)에 포함될 수 있다. 실시 예로서, 컴퓨터로 읽을 수 있는 매체는 유형적이고 비일시적으로 구현되는 물품일 수 있다.
각각의 개념도에 나타낸 구성은 단지 개념적인 관점에서 이해되어야 한다. 본 발명의 이해를 돕기 위해, 개념도에 나타낸 구성 요소 각각의 형태, 구조, 크기 등은 과장 또는 축소되어 표현되었다. 실제로 구현되는 구성은 각각의 개념도에 나타낸 것과 다른 물리적 형상을 가질 수 있다. 각각의 개념도는 구성 요소의 물리적 형상을 제한하기 위한 것이 아니다.
각각의 블록도에 나타낸 장치 구성은 발명의 이해를 돕기 위한 것이다. 각각의 블록은 기능에 따라 더 작은 단위의 블록들로 형성될 수 있다. 또는, 복수의 블록들은 기능에 따라 더 큰 단위의 블록을 형성할 수 있다. 즉, 본 발명의 기술 사상은 블록도에 도시된 구성에 의해 한정되지 않는다.
이상에서 본 발명에 대한 실시 예를 중심으로 본 발명이 설명되었다. 다만, 본 발명이 속하는 기술 분야의 특성상, 본 발명이 이루고자 하는 목적은 본 발명의 요지를 포함하면서도 위 실시 예들과 다른 형태로 달성될 수 있다. 따라서, 위 실시 예들은 한정적인 것이 아니라 설명적인 측면에서 이해되어야 한다. 즉, 본 발명의 요지를 포함하면서 본 발명과 같은 목적을 달성할 수 있는 기술 사상은 본 발명의 기술 사상에 포함되는 것으로 해석되어야 한다.
따라서, 본 발명의 본질적인 특성을 벗어나지 않는 범위 내에서 수정 또는 변형된 기술 사상은 본 발명이 청구하는 보호 범위에 포함되는 것이다. 또한, 본 발명의 보호 범위는 위 실시 예들로 한정되는 것이 아니다.
100 : 전자 시스템
102 : 잡 트래커 컴퓨팅 장치 104 : 네임 노드
106a, 106b, 106c : 데이터 노드 108 : 복수의 데이터 노드
112 : 제 1 저장 매체 114 : 제 2 저장 매체
142 : 프로세서 143 : 하드웨어 장치
144 : 메모리 145 : 저장 매체
146 : 네트워크 인터페이스 147 : 운영 체제
148 : 응용 프로그램 150 : 컴퓨팅 태스크 또는 잡
170 : 디렉토리 트리
200 : 전자 시스템
208 : 복수의 데이터 노드 218a, 218b : 데이터 그룹
222 : 컴퓨팅 노드 252, 254, 256, 258 : 컴퓨팅 잡
400 : 전자 시스템 474 : 활성화 플래그
500 : 전자 시스템 502 : 클라이언트 컴퓨팅 장치
600 : 전자 시스템
606a, 606c : 데이터 노드 608 : 복수의 데이터 노드
670 : 저장 매체/데이터 정보
700 : 정보 처리 시스템 705 : 시스템 버스
710 : 프로세서 715 : 조합 논리 블록
720 : 휘발성 메모리 730 : 불휘발성 메모리
740 : 네트워크 인터페이스 750 : 유저 인터페이스
760 : 기타 하드웨어 장치들 770 : 소프트웨어

Claims (10)

  1. 각각이 제 1 저장 매체 및 상기 제 1 저장 매체보다 느리게 작동하는 제 2 저장 매체 중 적어도 하나를 포함하고, 각각이 상기 제 1 저장 매체 및 상기 제 2 저장 매체 중 적어도 하나에 데이터의 조각을 저장하도록 구성되는 복수의 데이터 노드를 포함하되,
    상기 데이터의 활성화된 조각의 복수의 사본이 상기 복수의 데이터 노드 중에서 둘 이상의 데이터 노드들에 저장되고,
    상기 데이터의 활성화된 조각의 상기 복수의 사본 중에서 고속 사본은 상기 복수의 데이터 노드 중에서 제 1 데이터 노드의 제 1 저장 매체에 저장되고,
    상기 데이터의 활성화된 조각의 상기 복수의 사본 중에서 하나 이상의 저속 사본들은 상기 복수의 데이터 노드 중에서 상기 제 1 데이터 노드 외의 하나 이상의 데이터 노드들의 제 2 저장 매체들에 각각 저장되는 전자 시스템.
  2. 제 1 항에 있어서,
    상기 전자 시스템은:
    상기 데이터의 조각을 저장하기 위한 쓰기 요청을 제공받고;
    상기 쓰기 요청에 응답하여, 상기 데이터의 조각의 고속 사본을 저장하기 위한 상기 제 1 데이터 노드를 선택하고;
    상기 제 1 데이터 노드의 상기 제 1 저장 매체에 상기 데이터의 조각을 저장함으로써 상기 쓰기 요청을 실행하고;
    상기 쓰기 요청이 실행된 후, 상기 복수의 데이터 노드 중에서 상기 제 1 데이터 노드 외의 데이터 노드 각각의 제 2 저장 매체에 상기 데이터의 조각의 중복되는 사본을 저장하도록 구성되는 전자 시스템.
  3. 제 1 항에 있어서,
    상기 데이터의 활성화된 조각은 만료 시각과 관련되고,
    상기 만료 시각이 경과하면, 상기 데이터의 활성화된 조각의 상기 고속 사본은 상기 제 1 데이터 노드의 상기 제 1 저장 매체에서 상기 제 1 데이터 노드의 제 2 저장 매체로 이동하는 전자 시스템.
  4. 제 1 항에 있어서,
    상기 제 1 데이터 노드가 활성화되지 않은 경우, 상기 데이터의 활성화된 조각의 상기 고속 사본을 상기 제 1 데이터 노드에서 상기 복수의 데이터 노드 중의 제 2 데이터 노드의 제 1 저장 매체로 이동시킴으로써 백그라운드 로드 밸런싱이 수행되는 전자 시스템.
  5. 제 1 항에 있어서,
    잡 트래커 컴퓨팅 장치를 더 포함하되,
    상기 잡 트래커 컴퓨팅 장치는:
    데이터의 조각과 관련된 컴퓨팅 잡에 대한 요청을 제공받고;
    상기 컴퓨팅 잡과 관련된 데이터의 조각이 상기 복수의 데이터 노드 중에서 대상 데이터 노드의 제 1 저장 매체에 저장되어 있는지 여부를 판단하고;
    상기 컴퓨팅 잡과 관련된 데이터의 조각이 상기 대상 데이터 노드의 상기 제 1 저장 매체에 저장되어 있는 경우, 상기 대상 데이터 노드에 상기 컴퓨팅 잡을 할당하도록 구성되는 전자 시스템.
  6. 제 1 항에 있어서,
    컴퓨팅 장치를 더 포함하되,
    상기 복수의 데이터 노드는 각각이 적어도 하나의 데이터 노드를 포함하는 복수의 데이터 그룹으로 나뉘고,
    상기 컴퓨팅 장치는 상기 복수의 데이터 그룹 중에서 한 데이터 그룹에 속하고,
    상기 컴퓨팅 장치는:
    데이터의 조각과 관련된 컴퓨팅 잡에 대한 요청을 제공받고;
    상기 컴퓨팅 잡과 관련된 데이터의 조각이 상기 한 데이터 그룹의 제 1 저장 매체에 저장되어 있는지 여부를 판단하고;
    상기 컴퓨팅 잡과 관련된 데이터의 조각이 상기 한 데이터 그룹의 상기 제 1 저장 매체에 저장되어 있는 경우, 상기 복수의 데이터 노드 중에서 상기 한 데이터 그룹의 상기 제 1 저장 매체를 포함하는 데이터 노드에 상기 컴퓨팅 잡을 할당하고;
    상기 컴퓨팅 잡과 관련된 데이터의 조각이 상기 한 데이터 그룹의 상기 제 1 저장 매체에 저장되어 있지 않은 경우, 상기 컴퓨팅 잡과 관련된 데이터의 조각이 상기 한 데이터 그룹의 제 2 저장 매체에 저장되어 있는지 여부를 판단하고;
    상기 컴퓨팅 잡과 관련된 데이터의 조각이 상기 한 데이터 그룹의 상기 제 2 저장 매체에 저장되어 있는 경우, 상기 복수의 데이터 노드 중에서 상기 한 데이터 그룹의 상기 제 2 저장 매체를 포함하는 데이터 노드에 상기 컴퓨팅 잡을 할당하고;
    상기 컴퓨팅 잡과 관련된 데이터의 조각이 상기 한 데이터 그룹의 상기 제 2 저장 매체에 저장되어 있지 않은 경우, 상기 복수의 데이터 그룹 중에서 상기 한 데이터 그룹 외의 다른 데이터 그룹에 포함되는 데이터 노드에 상기 컴퓨팅 잡을 할당하도록 구성되는 전자 시스템.
  7. 제 1 항에 있어서,
    네임 노드를 더 포함하되,
    상기 네임 노드는:
    상기 복수의 데이터 노드에 저장된 데이터의 조각들에 관한 디렉토리 트리를 유지하고;
    한 데이터의 조각의 사본이 상기 복수의 데이터 노드 중의 한 데이터 노드의 제 1 저장 매체에서 제 2 저장 매체로 이동하는 경우 알림을 제공받도록 구성되고,
    상기 디렉토리 트리는, 상기 복수의 데이터 노드에 저장된 데이터의 조각들 각각에 대하여, 상기 복수의 데이터 노드 중에서 어떤 데이터 노드가 제 1 저장 매체에 각각의 데이터의 조각을 저장하고 있는지를 나타내는 정보를 포함하는 전자 시스템.
  8. 제 1 항에 있어서,
    네임 노드를 더 포함하되,
    상기 네임 노드는:
    상기 복수의 데이터 노드에 저장된 데이터의 조각들 각각에 대하여, 상기 복수의 데이터 노드 중에서 어떤 데이터 노드가 각각의 데이터의 조각의 고속 사본을 저장하고 있는지를 나타내는 정보를 포함하는 디렉토리 트리를 유지하고;
    요청된 데이터의 조각에 접근하기 위한 데이터 접근 요청을 컴퓨팅 장치로부터 제공받고;
    상기 요청된 데이터의 조각이 상기 복수의 데이터 노드 중에서 상기 요청된 데이터의 조각의 상기 고속 사본을 저장한 데이터 노드를 통해 접근됨을 나타내는 메시지를 상기 컴퓨팅 장치로 전송하도록 구성되고,
    상기 복수의 데이터 노드 중에서 상기 요청된 데이터의 조각의 상기 고속 사본을 저장한 데이터 노드는 상기 데이터 접근 요청을 처리하도록 구성되고,
    상기 요청된 데이터의 조각의 저속 사본들 각각에 대해 상기 데이터 접근 요청이 복제되어 처리되는 전자 시스템.
  9. 전자 시스템에 포함되는 복수의 데이터 노드에 데이터를 저장하는 방법에 있어서,
    각각이 제 1 저장 매체 및 상기 제 1 저장 매체보다 느리게 작동하는 제 2 저장 매체 중 적어도 하나를 포함하고, 각각이 상기 제 1 저장 매체 및 상기 제 2 저장 매체 중 적어도 하나에 데이터의 조각을 저장하도록 구성되는 상기 복수의 데이터 노드 중에서 제 1 데이터 노드의 제 1 저장 매체에 데이터의 활성화된 조각의 고속 사본을 저장하는 단계; 및
    상기 복수의 데이터 노드 중에서 상기 제 1 데이터 노드 외의 하나 이상의 데이터 노드들의 제 2 저장 매체들에 상기 데이터의 활성화된 조각의 하나 이상의 저속 사본들을 각각 저장하는 단계를 포함하는 데이터 저장 방법.
  10. 전자 시스템을 관리하는 방법에 있어서,
    상기 전자 시스템에 의해 구동되는 분산 파일 시스템을 고속 계층 및 저속 계층을 포함하는 여러 계층의 데이터 저장 매체들로 배열하는 단계;
    활성화된 데이터를 상기 고속 계층에 저장하는 단계; 및
    비활성화된 데이터를 상기 저속 계층에 저장하는 단계를 포함하되,
    상기 고속 계층은 제 1 유형의 저장 매체를 포함하고, 상기 저속 계층은 제 2 유형의 저장 매체를 포함하는 전자 시스템 관리 방법.
KR1020140172352A 2014-06-03 2014-12-03 이종의 저장 매체들을 이용하는 분산 파일 시스템을 구동하는 전자 시스템, 및 그것의 데이터 저장 방법 및 관리 방법 KR102079340B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462007390P 2014-06-03 2014-06-03
US62/007,390 2014-06-03
US14/474,118 US9773014B2 (en) 2014-06-03 2014-08-30 Heterogeneous distributed file system using different types of storage mediums
US14/474,118 2014-08-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020200017585A Division KR102173284B1 (ko) 2014-06-03 2020-02-13 이종의 저장 매체들을 이용하는 분산 파일 시스템을 구동하는 전자 시스템, 및 그것의 데이터 저장 방법 및 관리 방법

Publications (2)

Publication Number Publication Date
KR20150139408A true KR20150139408A (ko) 2015-12-11
KR102079340B1 KR102079340B1 (ko) 2020-04-07

Family

ID=54701982

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020140172352A KR102079340B1 (ko) 2014-06-03 2014-12-03 이종의 저장 매체들을 이용하는 분산 파일 시스템을 구동하는 전자 시스템, 및 그것의 데이터 저장 방법 및 관리 방법
KR1020200017585A KR102173284B1 (ko) 2014-06-03 2020-02-13 이종의 저장 매체들을 이용하는 분산 파일 시스템을 구동하는 전자 시스템, 및 그것의 데이터 저장 방법 및 관리 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020200017585A KR102173284B1 (ko) 2014-06-03 2020-02-13 이종의 저장 매체들을 이용하는 분산 파일 시스템을 구동하는 전자 시스템, 및 그것의 데이터 저장 방법 및 관리 방법

Country Status (2)

Country Link
US (4) US9773014B2 (ko)
KR (2) KR102079340B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180050180A (ko) * 2016-11-04 2018-05-14 에스케이하이닉스 주식회사 데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9329990B2 (en) * 2013-01-11 2016-05-03 Micron Technology, Inc. Host controlled enablement of automatic background operations in a memory device
US11386085B2 (en) 2014-01-27 2022-07-12 Microstrategy Incorporated Deriving metrics from queries
US10095759B1 (en) 2014-01-27 2018-10-09 Microstrategy Incorporated Data engine integration and data refinement
US11921715B2 (en) 2014-01-27 2024-03-05 Microstrategy Incorporated Search integration
US10255320B1 (en) 2014-01-27 2019-04-09 Microstrategy Incorporated Search integration
US9516108B1 (en) * 2014-10-31 2016-12-06 Servicenow, Inc. Distributed backup system
US9645745B2 (en) * 2015-02-27 2017-05-09 International Business Machines Corporation I/O performance in resilient arrays of computer storage devices
US9430290B1 (en) * 2015-03-31 2016-08-30 International Business Machines Corporation Determining storage tiers for placement of data sets during execution of tasks in a workflow
US10430233B1 (en) * 2015-06-26 2019-10-01 Emc Corporation Scheduling computational tasks among multiple classes of storage resources based on job classification
US10530892B2 (en) * 2015-09-28 2020-01-07 Microsoft Technology Licensing, Llc Processing request for multi-versioned service
US11157641B2 (en) * 2016-07-01 2021-10-26 Microsoft Technology Licensing, Llc Short-circuit data access
US10467195B2 (en) 2016-09-06 2019-11-05 Samsung Electronics Co., Ltd. Adaptive caching replacement manager with dynamic updating granulates and partitions for shared flash-based storage system
US10455045B2 (en) * 2016-09-06 2019-10-22 Samsung Electronics Co., Ltd. Automatic data replica manager in distributed caching and data processing systems
US11048671B2 (en) * 2017-10-18 2021-06-29 Quantum Corporation Automated storage tier copy expiration
US11200210B2 (en) 2018-03-26 2021-12-14 Intel Corporation Method of efficient backup of distributed file system files with transparent data access
US11126593B2 (en) 2019-06-15 2021-09-21 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US11405204B2 (en) 2019-06-15 2022-08-02 Meta Platforms, Inc Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US11249985B2 (en) 2019-06-15 2022-02-15 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US11249947B2 (en) * 2019-06-15 2022-02-15 Facebook, Inc. Distributed digital ledger transaction network for flexible, lazy deletion of data stored within an authenticated data structure
US11614970B2 (en) 2019-12-06 2023-03-28 Microstrategy Incorporated High-throughput parallel data transmission
US11567965B2 (en) 2020-01-23 2023-01-31 Microstrategy Incorporated Enhanced preparation and integration of data sets
TW202314471A (zh) 2021-05-25 2023-04-01 韓商愛思開海力士有限公司 儲存裝置及其操作方法
TW202246985A (zh) 2021-05-25 2022-12-01 韓商愛思開海力士有限公司 主機裝置、儲存裝置以及電子裝置
US11782630B1 (en) 2022-04-22 2023-10-10 International Business Machines Corporation Efficient use of optional fast replicas via asymmetric replication

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090026941A (ko) * 2007-09-11 2009-03-16 삼성전자주식회사 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치
US20090320502A1 (en) * 2006-08-08 2009-12-31 Daikin Industries, Ltd. Air conditioner and air conditioner cleaning method

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035971B1 (en) * 2002-09-23 2006-04-25 Hewlett-Packard Development Company, L.P. Request scheduling to mirrored heterogeneous storage arrays
US7103740B1 (en) * 2003-12-31 2006-09-05 Veritas Operating Corporation Backup mechanism for a multi-class file system
US20060101204A1 (en) * 2004-08-25 2006-05-11 Bao Bill Q Storage virtualization
US7493458B1 (en) * 2004-09-15 2009-02-17 Emc Corporation Two-phase snap copy
US7970881B2 (en) * 2008-02-19 2011-06-28 Microsoft Corporation Bypassing uploading of data from a wireless device using outbound attachment caching
US8239847B2 (en) 2009-03-18 2012-08-07 Microsoft Corporation General distributed reduction for data parallel computing
US9323775B2 (en) 2010-06-19 2016-04-26 Mapr Technologies, Inc. Map-reduce ready distributed file system
US8954568B2 (en) 2011-07-21 2015-02-10 Yahoo! Inc. Method and system for building an elastic cloud web server farm
US9201690B2 (en) 2011-10-21 2015-12-01 International Business Machines Corporation Resource aware scheduling in a distributed computing environment
US9063939B2 (en) * 2011-11-03 2015-06-23 Zettaset, Inc. Distributed storage medium management for heterogeneous storage media in high availability clusters
US8356050B1 (en) 2011-11-21 2013-01-15 Yahoo! Inc. Method or system for spilling in query environments
US9122535B2 (en) 2011-11-22 2015-09-01 Netapp, Inc. Optimizing distributed data analytics for shared storage
KR101827369B1 (ko) * 2012-02-21 2018-02-09 한국전자통신연구원 데이터 스트림 분산 병렬 처리 서비스 관리 장치 및 방법
JP5831324B2 (ja) 2012-03-27 2015-12-09 富士通株式会社 制御装置,制御方法,プログラム及び分散処理システム
US8990294B2 (en) 2012-04-18 2015-03-24 International Business Machines Corporation File system optimization by log/metadata analysis
US20130297624A1 (en) 2012-05-07 2013-11-07 Microsoft Corporation Interoperability between Map-Reduce and Distributed Array Runtimes
US9571356B2 (en) * 2013-09-27 2017-02-14 Zettaset, Inc. Capturing data packets from external networks into high availability clusters while maintaining high availability of popular data packets
US9917797B2 (en) * 2013-10-01 2018-03-13 Arista Networks, Inc. Method and system for managing switch workloads in a cluster

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090320502A1 (en) * 2006-08-08 2009-12-31 Daikin Industries, Ltd. Air conditioner and air conditioner cleaning method
KR20090026941A (ko) * 2007-09-11 2009-03-16 삼성전자주식회사 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
K.R. et al. hatS: A Heterogeneity-Aware Tiered Storage for Hadoop, May 2014 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180050180A (ko) * 2016-11-04 2018-05-14 에스케이하이닉스 주식회사 데이터 분산 처리를 수행하는 데이터 관리 시스템 및 데이터 관리 방법

Also Published As

Publication number Publication date
US10223376B2 (en) 2019-03-05
KR102173284B1 (ko) 2020-11-03
KR102079340B1 (ko) 2020-04-07
US11940959B2 (en) 2024-03-26
US20190146955A1 (en) 2019-05-16
US11036691B2 (en) 2021-06-15
KR20200019653A (ko) 2020-02-24
US9773014B2 (en) 2017-09-26
US20170344581A1 (en) 2017-11-30
US20150347451A1 (en) 2015-12-03
US20210311913A1 (en) 2021-10-07

Similar Documents

Publication Publication Date Title
KR102173284B1 (ko) 이종의 저장 매체들을 이용하는 분산 파일 시스템을 구동하는 전자 시스템, 및 그것의 데이터 저장 방법 및 관리 방법
KR102268722B1 (ko) 데이터 액세스 장치 및 그것의 동작 방법
US10884799B2 (en) Multi-core processor in storage system executing dynamic thread for increased core availability
US10091295B1 (en) Converged infrastructure implemented with distributed compute elements
US10248346B2 (en) Modular architecture for extreme-scale distributed processing applications
KR102240774B1 (ko) 지역 베이스보드 관리 제어기를 이용하여 패브릭 시스템에 걸쳐 불휘발성 메모리 익스프레스 내에서 공유된 그래픽 처리부 자원들을 할당하는 방법
US10572383B2 (en) Caching a block of data in a multi-tenant cache storage device based on space usage boundary estimates
US10469405B2 (en) Network-accessible data volume modification
US9544193B2 (en) Synchronizing configurations amongst multiple devices
US10037298B2 (en) Network-accessible data volume modification
US9063918B2 (en) Determining a virtual interrupt source number from a physical interrupt source number
US11863469B2 (en) Utilizing coherently attached interfaces in a network stack framework
US9934147B1 (en) Content-aware storage tiering techniques within a job scheduling system
US10339065B2 (en) Optimizing memory mapping(s) associated with network nodes
US10430233B1 (en) Scheduling computational tasks among multiple classes of storage resources based on job classification
JP2016071886A (ja) スケジューラコンピューティング装置、それを含む分散コンピューティングシステムのデータノード、及びその方法
US10846246B2 (en) Trans-fabric instruction set for a communication fabric
CN109478151B (zh) 网络可访问数据卷修改
US10439960B1 (en) Memory page request for optimizing memory page latency associated with network nodes
US10904090B2 (en) Virtual machine placement based on network communication patterns with other virtual machines
KR20210005969A (ko) 데이터 액세스를 위한 장치 및 그것의 동작 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant