KR20150030036A - 분산 처리 방법, 마스터 서버 및 분산 클러스터 - Google Patents
분산 처리 방법, 마스터 서버 및 분산 클러스터 Download PDFInfo
- Publication number
- KR20150030036A KR20150030036A KR20130109221A KR20130109221A KR20150030036A KR 20150030036 A KR20150030036 A KR 20150030036A KR 20130109221 A KR20130109221 A KR 20130109221A KR 20130109221 A KR20130109221 A KR 20130109221A KR 20150030036 A KR20150030036 A KR 20150030036A
- Authority
- KR
- South Korea
- Prior art keywords
- node
- storage device
- status information
- cluster
- distributed
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title abstract description 41
- 238000003860 storage Methods 0.000 claims abstract description 111
- 238000000034 method Methods 0.000 claims description 13
- 230000014759 maintenance of location Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 13
- 239000004065 semiconductor Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
분산 처리 방법이 제공된다. 분산 처리 방법은 분산 클러스터를 구성하는 복수의 슬레이브 노드로부터, 각 슬레이브 노드에 각각 구비된 스토리지 장치에 대한 상태 정보를 수신하고, 상기 상태 정보를 기초로, 상기 분산 클러스터에서 처리되는 작업을 수행하기 위한 작업 수행 노드를 선정하는 것을 포함한다.
Description
본 발명은 분산 처리 방법, 마스터 서버 및 분산 클러스터에 관한 것이다.
하둡(Hadoop)은 분산 컴퓨팅을 구현하기 위해 사용될 수 있는 기술이다. 하둡은 대용량의 데이터를 분산하여 저장하기 위한 HDFS(Hadoop Distributed File System)와 저장된 데이터를 분산 처리하기 위한 맵리듀스(MapReduce)로 구성된 오픈 소스 프레임워크(Open Source Framework)이다.
분산 컴퓨팅을 가능케 하는 분산 클러스터는 하나 이상의 마스터 노드와 복수의 슬레이브 노드로 구성될 수 있으며, 이러한 분산 클러스터에서는 데이터의 효율적인 분산 처리와 더불어 데이터의 안정성을 보장하는 것이 중요하다.
일본공개특허 제2013-088863호는 병렬 분산 처리 방법 및 병렬 분산 처리 시스템을 개시하고 있다.
본 발명이 해결하려는 과제는 데이터의 안정성을 보장하면서 데이터를 효율적으로 처리하기 위한 분산 처리 방법을 제공하는 것이다.
본 발명이 해결하려는 다른 과제는 데이터의 안정성을 보장하면서 데이터를 효율적으로 처리하기 위한 마스터 서버를 제공하는 것이다.
본 발명이 해결하려는 다른 과제는 데이터의 안정성을 보장하면서 데이터를 효율적으로 처리하기 위한 분산 클러스터를 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 분산 처리 방법의 일 실시예는, 분산 클러스터를 구성하는 복수의 슬레이브 노드로부터, 각 슬레이브 노드에 각각 구비된 스토리지 장치에 대한 상태 정보를 수신하고, 상태 정보를 기초로, 분산 클러스터에서 처리되는 작업을 수행하기 위한 작업 수행 노드를 선정하는 것을 포함할 수 있다.
상기 스토리지 장치에 대한 상태 정보를 수신하는 것은, 상기 분산 클러스터를 구성하는 복수의 슬레이브 노드로부터, 각 슬레이브 노드에 각각 구비된 스토리지 장치에 대한 상태 정보를 일정 시간 간격으로 수신하는 것을 포함할 수 있다.
상기 분산 클러스터는 하둡 프레임워크(Hadoop Framework)를 기반으로 구성된 하둡 클러스터를 포함하고, 상기 스토리지 장치에 대한 상태 정보를 수신하는 것은, 상기 스토리지 장치에 대한 상태 정보를 상기 하둡 클러스터로부터 제공되는 하트비트(heartbeat) 신호와 함께 수신하는 것을 포함할 수 있다.
상기 스토리지 장치에 대한 상태 정보를 수신하는 것은, 상기 스토리지 장치에 대한 상태 정보를 상기 하둡 클러스터로부터 제공되는 하트비트 신호의 주기를 기본 단위로 한 시간 간격으로 수신하는 것을 포함할 수 있다.
상기 스토리지 장치에 대한 상태 정보는 SMART(Self-Monitoring, Analysis and Reporting Technology) 속성 정보를 포함할 수 있다.
상기 스토리지 장치에 대한 상태 정보는 상기 스토리지 장치의 마모 정도, 상기 스토리지 장치의 에러(error) 발생율 또는 상기 스토리지 장치의 성능을 나타내는 정보를 포함할 수 있다.
상기 분산 처리 방법은, 클라이언트의 작업 수행 노드 리스트 요청에 대한 응답으로 상기 선정된 작업 수행 노드의 리스트를 클라이언트에 전송하는 것을 포함할 수 있다.
상기 분산 처리 방법은, 상기 스토리지 장치에 대한 상태 정보가 변경된 경우, 상기 작업 수행 노드를 재선정하는 것을 더 포함할 수 있다.
상기 분산 처리 방법은, 상기 재선정된 작업 수행 노드로 상기 작업을 이전하는 것을 더 포함할 수 있다.
상기 분산 클러스터에서 처리되는 작업은 상기 분산 클러스터를 구성하는 노드에 데이터 블록을 저장하는 작업 및 상기 데이터 블록을 처리하는 작업을 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 분산 처리 방법의 다른 실시예는, 분산 클러스터를 구성하는 제1 노드 및 제2 노드로부터 각각 제1 상태 정보와 제2 상태 정보를 수신하되, 제1 상태 정보는 제1 노드에 구비된 제1 스토리지 장치의 마모 정도를 포함하고, 제2 상태 정보는 제2 노드에 구비된 제2 스토리지 장치의 마모 정도를 포함하고, 제1 스토리지 장치의 마모 정도가 제2 스토리지 장치의 마모 정도보다 낮은 경우, 제1 노드에 데이터 블록을 저장하는 것을 포함할 수 있다.
상기 분산 처리 방법은, 상기 제1 노드 및 제2 노드로부터 상기 제1 상태 정보 및 상기 제2 상태 정보를 재수신하고, 상기 제1 스토리지 장치의 마모 정도가 상기 제2 스토리지 장치의 마모 정도보다 높아진 경우, 상기 제1 노드에 저장된 데이터 블록을 상기 제2 노드로 이전하는 것을 더 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 분산 처리 방법의 다른 실시예는, 분산 클러스터를 구성하는 제1 노드 및 제2 노드로부터 각각 제1 상태 정보와 제2 상태 정보를 수신하되, 제1 상태 정보는 제1 노드에 구비된 제1 스토리지 장치의 성능을 포함하고, 제2 상태 정보는 제2 노드에 구비된 제2 스토리지 장치의 성능을 포함하고, 제1 스토리지 장치의 성능이 제2 스토리지 장치의 성능보다 높은 경우, 제1 노드에 저장된 데이터를 처리하는 것을 포함할 수 있다.
상기 분산 처리 방법은, 상기 제1 노드 및 제2 노드로부터 상기 제1 상태 정보 및 상기 제2 상태 정보를 재수신하고, 상기 제1 스토리지 장치의 성능이 상기 제2 스토리지 장치의 성능보다 낮아진 경우, 상기 제2 노드에 저장된 데이터를 처리하는 것을 더 포함할 수 있다.
상기 분산 클러스터는 제3 노드를 더 포함하고, 상기 제3 노드로부터 상기 제3 노드에 구비된 제3 스토리지 장치의 성능을 포함하는 제3 상태 정보를 수신하고, 상기 분산 처리 방법은, 상기 제3 스토리지 장치의 성능이 상기 제1 스토리지 장치 및 상기 제2 스토리지 장치의 성능보다 높은 경우, 상기 제3 노드가 상기 제1 노드에 저장된 데이터 및 상기 제2 노드에 저장된 데이터를 처리하는 것을 더 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 마스터 서버의 일 실시예는, 하둡(Hadoop) 클러스터를 구성하는 복수의 슬레이브 노드로부터, 각 슬레이브 노드에 각각 구비된 스토리지 장치에 대한 상태 정보를 수신하는 수신부; 및 상태 정보를 기초로, 하둡 클러스터에서 처리되는 작업을 수행하기 위한 작업 수행 노드를 선정하는 노드 선정부를 포함하되, 수신부는 하둡 클러스터로부터 제공되는 하트비트(heartbeat) 신호와 함께 상태 정보를 수신할 수 있다.
상기 과제를 해결하기 위한 본 발명의 분산 클러스터의 일 실시예는, 스토리지 장치를 각각 구비하는 복수의 슬레이브 노드 장치; 및 복수의 슬레이브 노드로부터 수신한 스토리지 장치에 대한 상태 정보를 기초로, 하둡(Hadoop) 클러스터에서 처리되는 작업을 수행하기 위한 작업 수행 노드를 선정하는 마스터 서버를 포함하되, 상태 정보는 하둡 클러스터에서 제공되는 하트비트(heartbeat) 신호와 함께 복수의 슬레이브 노드로부터 마스터 노드로 전송될 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 분산 클러스터를 설명하기 위한 개략도이다.
도 2a는 본 발명의 일 실시예에 따른 분산 처리 방법을 설명하기 위한 개략도이다.
도 2b는 본 발명의 일 실시예에 따른 분산 처리 방법을 설명하기 위한 타이밍도이다.
도 3은 스토리지 장치에 대한 상태 정보를 수신하는 것을 설명하기 위한 개략도이다.
도 4 내지 도 6은 스토리지 장치에 대한 상태 정보를 수신하는 것을 설명하기 위한 타이밍도이다.
도 7 및 도 8은 스토리지 장치에 대한 상태 정보를 저장하는 데이터베이스 테이블을 도시한 것이다.
도 9는 본 발명의 다른 실시예에 따른 분산 처리 방법을 설명하기 위한 개략도이다.
도 10 및 도 11은 본 발명의 또 다른 실시예에 따른 분산 처리 방법을 설명하기 위한 개략도이다.
도 12 및 도 13은 복수의 슬레이브 노드에 대해 각각의 스토리지 장치의 마모 정도를 나타낸 히스토그램도이다.
도 14는 마모 정도에 따른 슬레이브 노드의 분포를 나타낸 그래프이다.
도 15 및 도 16은 본 발명의 일 실시예에 따른 분산 처리 방법을 설명하기 위한 흐름도이다.
도 17은 본 발명의 다른 실시예에 따른 분산 처리 방법을 설명하기 위한 흐름도이다.
도 18은 본 발명의 실시예에 따른 반도체 장치를 포함하는 전자 시스템을 설명하기 위한 개략적인 블록도이다.
도 19는 본 발명의 실시예에 따른 반도체 장치를 포함하는 저자 시스템의 응용예를 설명하기 위한 개략적인 블록도이다.
도 2a는 본 발명의 일 실시예에 따른 분산 처리 방법을 설명하기 위한 개략도이다.
도 2b는 본 발명의 일 실시예에 따른 분산 처리 방법을 설명하기 위한 타이밍도이다.
도 3은 스토리지 장치에 대한 상태 정보를 수신하는 것을 설명하기 위한 개략도이다.
도 4 내지 도 6은 스토리지 장치에 대한 상태 정보를 수신하는 것을 설명하기 위한 타이밍도이다.
도 7 및 도 8은 스토리지 장치에 대한 상태 정보를 저장하는 데이터베이스 테이블을 도시한 것이다.
도 9는 본 발명의 다른 실시예에 따른 분산 처리 방법을 설명하기 위한 개략도이다.
도 10 및 도 11은 본 발명의 또 다른 실시예에 따른 분산 처리 방법을 설명하기 위한 개략도이다.
도 12 및 도 13은 복수의 슬레이브 노드에 대해 각각의 스토리지 장치의 마모 정도를 나타낸 히스토그램도이다.
도 14는 마모 정도에 따른 슬레이브 노드의 분포를 나타낸 그래프이다.
도 15 및 도 16은 본 발명의 일 실시예에 따른 분산 처리 방법을 설명하기 위한 흐름도이다.
도 17은 본 발명의 다른 실시예에 따른 분산 처리 방법을 설명하기 위한 흐름도이다.
도 18은 본 발명의 실시예에 따른 반도체 장치를 포함하는 전자 시스템을 설명하기 위한 개략적인 블록도이다.
도 19는 본 발명의 실시예에 따른 반도체 장치를 포함하는 저자 시스템의 응용예를 설명하기 위한 개략적인 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 표시된 구성요소의 크기 및 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
소자(elements) 또는 층이 다른 소자 또는 층의 "위(on)" 또는 "상(on)"으로 지칭되는 것은 다른 소자 또는 층의 바로 위뿐만 아니라 중간에 다른 층 또는 다른 소자를 개재한 경우를 모두 포함한다. 반면, 소자가 "직접 위(directly on)" 또는 "바로 위"로 지칭되는 것은 중간에 다른 소자 또는 층을 개재하지 않은 것을 나타낸다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 소자 또는 구성 요소들과 다른 소자 또는 구성 요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 소자의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들면, 도면에 도시되어 있는 소자를 뒤집을 경우, 다른 소자의 "아래(below)" 또는 "아래(beneath)"로 기술된 소자는 다른 소자의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 소자는 다른 방향으로도 배향될 수 있고, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 소자나 구성요소들을 서술하기 위해서 사용되나, 이들 소자나 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자나 구성요소를 다른 소자나 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자나 구성요소는 본 발명의 기술적 사상 내에서 제2 소자나 구성요소 일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 분산 클러스터를 설명하기 위한 개략도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 분산 클러스터(1)는 슬레이브 노드(100a, 100b, 100c, 100d, 100e), 마스터 노드(200) 및 클라이언트(300)를 포함할 수 있다. 본 발명의 몇몇의 실시예에 따르면 분산 클러스터(1)는 예컨대 클러스터는 하둡 프레임워크(Hadoop Framework)를 기반으로 구성된 하둡 클러스터일 수 있다.
슬레이브 노드(100a, 100b, 100c, 100d, 100e)는 프로세서(102a, 102b, 102c, 102d, 102e) 및 스토리지 장치(104a, 104b, 104c, 104d, 104e)를 각각 포함할 수 있다. 슬레이브 노드(100a, 100b, 100c, 100d, 100e)는 분산 클러스터(1)에서 처리되어야 할 입력 데이터(400)를 스토리지 장치(104a, 104b, 104c, 104d, 104e)에 저장하거나, 프로세서(102a, 102b, 102c, 102d, 102e)를 이용하여 저장된 입력 데이터(400)를 처리할 수 있다. 구체적으로 예를 들면, 입력 데이터(400)는 3 개의 데이터 블록(402a, 402b, 402c)으로 분할되어 슬레이브 노드(100a, 100b, 100e)의 스토리지 장치(104a, 104b, 104e)에 각각 저장되고, 슬레이브 노드(100a, 100b, 100e)는 프로세서(102a, 102b, 102e)를 이용하여 각각의 데이터 블록(402a, 402b, 402c)을 처리하여 결과 데이터(404a, 404b, 404c)를 산출할 수 있다. 결과 데이터(404a, 404b, 404c)는 최종 결과 데이터(406)로 취합되어, 예컨대, 클라이언트(300)에 제공될 수 있다. 도 1에서, 본 발명의 일 실시예에 따른 분산 클러스터(1)는 5 개의 슬레이브 노드(100a, 100b, 100c, 100d, 100e)를 포함하는 것으로 도시되어 있지만, 슬레이브 노드의 개수는 이에 한정되지 않고 임의의 개수일 수 있다.
프로세서(102a, 102b, 102c, 102d, 102e)는 CPU(Central Processing Unit) 및 GPU(Graphics Processing Unit) 중 적어도 하나를 포함할 수 있다. 또한, 본 발명의 몇몇의 실시예에서 프로세서(102a, 102b, 102c, 102d, 102e)는 복수의 CPU를 포함하거나 복수의 GPU를 포함할 수도 있다. 한편, 본 발명의 몇몇의 실시예에서 프로세서는 FPGA(Field Programmable Gate Array)를 비롯한 반도체 소자일 수도 있다. 한편, 스토리지 장치(104a, 104b, 104c, 104d, 104e)는 하드 디스크 드라이브(Hard Disk Drive, HDD), 솔리드 스테이트 드라이브(Solid State Drive, SSD) 및 CD-ROM과 DVD-ROM을 비롯한 광학 드라이브 등을 포함할 수 있다.
분산 클러스터(1)는 하나 이상의 마스터 노드(200)를 포함할 수 있고, 마스터 노드(200)는 분산 클러스터(1)에서 처리되는 작업들을 스케쥴링하거나, 슬레이브 노드(100a, 100b, 100c, 100d, 100e)에 대한 관리를 할 수 있다. 예를 들면, 마스터 노드(200)는 슬레이브 노드(100a, 100b, 100c, 100d, 100e) 중에서 작업을 수행하기 위한 작업 수행 노드를 선정할 수 있다. 한편, 클라이언트(300)는 사용자로부터 작업 명령을 수신하여 분산 클러스터(1)에 작업 수행을 요청하거나, 분산 클러스터(1)로부터 획득한 결과물을 인출하거나 열람할 수 있도록 한다.
슬레이브 노드(100a, 100b, 100c, 100d, 100e), 마스터 노드(200) 및 클라이언트(300)는 서로 네트워크에 의해 연결될 수 있다. 본 발명의 몇몇의 실시예에 따르면, 상기 네트워크는 WIFI를 비롯한 무선 네트워크 또는 LAN을 비롯한 유선 네트워크일 수 있으나 이에 한정되는 것은 아니다. 한편, 본 발명의 몇몇의 실시예에서 슬레이브 노드(100a, 100b, 100c, 100d, 100e), 마스터 노드(200) 및 클라이언트(300)는 각각 단일의 서버 장치 또는 서버 프로그램일 수 있다. 또한, 본 발명의 몇몇의 실시예에서 슬레이브 노드(100a, 100b, 100c, 100d, 100e), 마스터 노드(200) 및 클라이언트(300) 중 적어도 하나는 다중 롤(role) 역할을 하는 하나의 서버 장치 또는 서버 프로그램에 포함될 수도 있다. 특히, 본 발명의 일 실시예에 따른 분산 클러스터(1)에서 사용되는 슬레이브 노드(100a, 100b, 100c, 100d, 100e), 마스터 노드(200)는 랙 서버(rack server)로써 구현될 수 있다.
도 2a는 본 발명의 일 실시예에 따른 분산 처리 방법을 설명하기 위한 개략도이고, 도 2b는 본 발명의 일 실시예에 따른 분산 처리 방법을 설명하기 위한 타이밍도이다.
도 2a를 참조하면, 본 발명의 일 실시예에 따른 분산 처리 방법은 분산 클러스터(1)를 구성하는 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e)로부터, 각 슬레이브 노드(100a, 100b, 100c, 100d, 100e)에 각각 구비된 스토리지 장치(104a, 104b, 104c, 104d, 104e)에 대한 상태 정보(이하, 'SS(Storage device Status) 정보')를 수신하고, 이러한 상태 정보를 기초로, 분산 클러스터(1)에서 처리되는 작업을 수행하기 위한 작업 수행 노드를 선정하는 것을 포함할 수 있다. 본 발명의 몇몇의 실시예에서, 예를 들면, SS 정보는 하드 디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 장치를 비롯한 스토리지 장치로부터 획득할 수 있는 SMART(Self-Monitoring, Analysis and Reporting Technology) 속성 정보를 포함할 수 있다. 또한, 본 발명의 다른 몇몇의 실시예에서, SS 정보는 마스터 노드(200)로 전송될 수 있는 스토리지 장치 제조사 고유의 정보를 포함할 수 있다. 예컨대, 제조사 고유의 정보로서 스토리지 장치의 마모 정도, 스토리지 장치의 에러 발생율, 또는 스토리지 장치의 성능 등을 나타내는 정보를 포함할 수 있다.
도 2b를 참조하면, 마스터 노드(200)는 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e)로부터 SS 정보를 수신할 수 있다(S10). 마스터 노드(200)가 SS 정보를 수신하는 것은, 분산 클러스터(1)를 구성하는 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e)로부터, 각 슬레이브 노드(100a, 100b, 100c, 100d, 100e)에 각각 구비된 스토리지 장치(104a, 104b, 104c, 104d, 104e)에 대한 SS 정보를 일정 시간 간격으로 수신하는 것을 포함할 수 있다. 이에 따라, 마스터 노드(200)는 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e)로부터 SS 정보를 다시 수신할 수 있다(S20). 다음으로, 클라이언트(300)는 마스터 노드(200)에 분산 클러스터(1)에서 처리될 작업을 수행하기 위한 작업 수행 노드에 대한 리스트를 요청할 수 있다(S22). 클라이언트(300)로부터 상기 요청을 받은 마스터 노드(200)는 상기 수신된 SS 정보를 기초로 분산 클러스터(1)에서 처리될 작업을 수행하기 위한 작업 수행 노드들을 선정하고(S24), 클라이언트(300)의 작업 수행 노드 리스트 요청에 대한 응답으로 선정된 작업 수행 노드의 리스트를 클라이언트(300)에 전송할 수 있다(S26). 이에 따라, 클라이언트(300)는 마스터 노드(200)에 의해 선정된 슬레이브 노드에 작업을 할당할 수 있다.
도 3은 SS 정보를 수신하는 것을 설명하기 위한 개략도이다.
도 3을 참조하면, 마스터 노드(200)는 수신부(210) 및 선정부(220)를 포함할 수 있다. 수신부(210)는 분산 클러스터(1)를 구성하는 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e)로부터 각 슬레이브 노드(100a, 100b, 100c, 100d, 100e)에 각각 구비된 스토리지 장치(104a, 104b, 104c, 104d, 104e)에 대한 SS 정보를 수신할 수 있다. 선정부(220)는 SS 정보를 기초로, 분산 클러스터(1)에서 처리되는 작업을 수행하기 위한 작업 수행 노드를 선정할 수 있다. 본 발명의 몇몇의 실시예에 따르면, 분산 클러스터(1)는 하둡 프레임워크를 기반으로 구성된 하둡 클러스터일 수 있고, SS 정보를 수신하는 것은 SS 정보를 하둡 클러스터로부터 제공되는 하트비트(heartbeat) 신호(이하, 'HB 신호')와 함께 수신하는 것을 포함할 수 있다. HB 신호는 하둡 클러스터에서 마스터 노드와 슬레이브 노드 사이에 송수신되는 주기적인 신호를 말한다. 예를 들면, 마스터 노드와 슬레이브 노드는 3 초 간격으로 HB 신호를 주고 받음으로써 서로 간의 연결 상태를 확인할 수 있다. 또한, HB 신호는 HDFS(Hadoop Distributed File System)에 저장된 데이터 블록들의 위치 및 상태 정보 또는 하둡 클러스터에서 처리되는 작업 태스크들에 대한 진행 상황 정보 등을 포함할 수 있다.
도 4 내지 도 6은 스토리지 장치에 대한 상태 정보를 수신하는 것을 설명하기 위한 타이밍도이다.
마스터 노드(200)가 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e)로부터 SS 정보를 수신하는 것은 SS 정보를 하둡 클러스터로부터 제공되는 HB 신호의 주기를 기본 단위로 한 시간 간격으로 수신하는 것일 수 있다. 도 4를 참조하면, 마스터 노드(200)는 HB 신호를 3 초 간격으로 수신하며, 마스터 노드(200)는 HB 신호의 주기를 기본 단위로 한 시간 간격, 즉 3 초 간격으로 SS 정보를 수신할 수 있다. 또한, 본 발명의 몇몇의 실시예에서, 도 5를 참조하면, 마스터 노드(200)는 HB 신호를 3 초 간격으로 수신하며, 마스터 노드(200)는 HB 신호의 주기의 3 배인 시간 간격, 즉 9 초 간격으로 SS 정보를 수신할 수 있다. 한편, 본 발명의 몇몇의 실시예에서, 도 6을 참조하면, 마스터 노드(200)는 HB 신호와 함께 SS 정보를 수신하되, SS 정보를 일정하지 않은 시간 간격, 예컨대, 6 초, 3 초 및 9 초의 시간 간격으로 수신할 수 있다.
도 7 및 도 8은 스토리지 장치에 대한 상태 정보를 저장하는 데이터베이스 테이블을 도시한 것이다.
마스터 노드(200)는 클라이언트(300)의 요청에 따라 분산 클러스터(1)에서 처리될 작업을 수행하기 위한 작업 수행 노드를 선정하기 위해, 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e)로부터 각 스토리지 장치(104a, 104b, 104c, 104d, 104e)에 대한 SS 정보를 데이터베이스 테이블로써 저장 및 관리할 수 있다. 예를 들면, 테이블은, 슬레이브 노드 ID, 스토리지 장치의 마모 정도, 스토리지 장치의 에러 발생율, 및 스토리지 장치의 성능을 나타내는 칼럼(column)들을 포함할 수 있다. 도 7을 참조하면, 테이블은 (a, 80, 30, 60), (b, 90, 10, 85), (c, 30, 20, 40), (d, 40, 15, 60), (e, 50, 10, 70) 등의 레코드(record)들을 포함하고 있다. 즉, 1번째 행에 해당하는 레코드는 ID가 'a'인 슬레이브 노드에 있어서, 이에 구비된 스토리지 장치의 마모 정도는 '80', 에러 발생율은 '30', 스토리지 장치의 성능은 '60'임을 나타낸다. 이러한 수치값들은 스토리지 장치(104a, 104b, 104c, 104d, 104e) 각각에 대해 고유하게 정해질 수 있는 값(예컨대, 30 %의 에러 발생율)일 수 있지만, 다른 스토리지 장치와 비교하기 위해 상대적인 양으로 표현되는 값(예컨대, 특정 스토리지 장치의 성능을 100이라고 했을 때 이를 기준으로 평가된 60 정도의 성능)일 수도 있다.
본 발명의 일 실시예에 따른 분산 처리 방법에서, 마스터 노드(200)는 분산 클러스터(1)를 구성하는 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e)로부터 각 슬레이브 노드(100a, 100b, 100c, 100d, 100e)에 각각 구비된 스토리지 장치(104a, 104b, 104c, 104d, 104e)에 대한 SS 정보를 수신하되, SS 정보는 각 스토리지 장치(104a, 104b, 104c, 104d, 104e)들의 마모 정도에 대한 정보를 포함할 수 있고, 마모 정도가 크지 않은 슬레이브 노드(100a, 100b, 100e)에 분산 클러스터(1)에서 처리될 데이터 블록을 저장할 수 있다. 한편, SS 정보는 각 스토리지 장치(104a, 104b, 104c, 104d, 104e)들의 에러 발생율에 대한 정보를 포함할 수 있고, 에러 발생율이 낮은 슬레이브 노드(100b, 100d, 100e)에 분산 클러스터(1)에서 처리될 데이터 블록을 저장할 수 있다.
또한, 본 발명의 일 실시예에 따른 분산 처리 방법에서, 마스터 노드(200)는 분산 클러스터(1)를 구성하는 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e)로부터 각 슬레이브 노드(100a, 100b, 100c, 100d, 100e)에 각각 구비된 스토리지 장치(104a, 104b, 104c, 104d, 104e)에 대한 SS 정보를 수신하되, SS 정보는 각 스토리지 장치(104a, 104b, 104c, 104d, 104e)들의 성능에 대한 정보를 포함할 수 있고, 성능 수치가 높은 슬레이브 노드(100a, 100b, 100e)에 저장된 데이터를 처리할 수도 있다.
다음으로, 도 8을 참조하면, 마스터 노드(200)는 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e)로부터 각 스토리지 장치(104a, 104b, 104c, 104d, 104e)에 대한 SS 정보를 재수신하여 데이터베이스 테이블을 갱신할 수 있다. 5번째 행에 해당하는 레코드는 ID가 'e'인 슬레이브 노드에 있어서, 이에 구비된 스토리지 장치의 마모 정도는 '35', 에러 발생율은 '10', 스토리지 장치의 성능은 '55'임을 나타낸다. 이에 따라, 마스터 노드(200)는 SS 정보가 변경되었으므로, 클라이언트(300)의 작업 수행 노드 리스트 요청에 대해 선정한 작업 수행 노드들을 재선정하여, 새로운 작업 수행 노드 리스트를 클라이언트(300)에 전송할 수 있다.
도 9는 본 발명의 다른 실시예에 따른 분산 처리 방법을 설명하기 위한 개략도이다.
도 9와 도 8을 함께 참조하면, 본 발명의 다른 실시예에 따른 분산 처리 방법에서, 마스터 노드(200)는 분산 클러스터(1)를 구성하는 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e)로부터 각 슬레이브 노드(100a, 100b, 100c, 100d, 100e)에 각각 구비된 스토리지 장치(104a, 104b, 104c, 104d, 104e)에 대한 SS 정보를 재수신하되, SS 정보는 각 스토리지 장치(104a, 104b, 104c, 104d, 104e)들의 마모 정도에 대한 정보를 포함할 수 있고, 슬레이브 노드(100e)의 마모 정도가 슬레이브 노드(100d)의 마모 정도보다 높아졌으므로 슬레이브 노드(100e)에 저장된 데이터 블록을 슬레이브 노드(100d)로 이전할 수 있다.
마찬가지로, 본 발명의 다른 실시예에 따른 분산 처리 방법에서, 마스터 노드(200)는 분산 클러스터(1)를 구성하는 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e)로부터 각 슬레이브 노드(100a, 100b, 100c, 100d, 100e)에 각각 구비된 스토리지 장치(104a, 104b, 104c, 104d, 104e)에 대한 SS 정보를 재수신하되, SS 정보는 각 스토리지 장치(104a, 104b, 104c, 104d, 104e)들의 성능에 대한 정보를 포함할 수 있고, 슬레이브 노드(100d)의 성능이 슬레이브 노드(100e)의 성능보다 높아졌으므로 슬레이브 노드(100e)에 저장된 데이터 블록 대신 슬레이브 노드(100d)에 저장된 데이터 블록을 처리할 수 있다.
도 10 및 도 11은 본 발명의 또 다른 실시예에 따른 분산 처리 방법을 설명하기 위한 개략도이다.
도 10을 참조하면, 입력 데이터(400)는 데이터 블록(400a, 400b, 400c)으로 분할되어 마스터 노드(200)에 의해 선정된 슬레이브 노드(100a, 100b, 100e)에 저장 데이터 블록(402a', 402b', 402c')으로서 저장될 수 있다. 이러한 저장 데이터 블록(402a', 402b', 402c')은 슬레이브 노드(100a, 100b, 100e)에 의해 처리될 수 있지만, 본 발명의 또 다른 실시예에 따른 분산 처리 방법에서, 재수신된 SS 정보에 의해 슬레이브 노드(100a)의 작업 처리 성능 혹은 안정성이 현저히 감소한 경우, 슬레이브 노드(100a)에 저장된 저장 데이터 블록(402a')의 처리는 슬레이브 노드(100b)가 수행할 수도 있다. 또한, 도 11을 참조하면, 본 발명의 또 다른 실시예에 따른 분산 처리 방법에서, 슬레이브 노드(100f)의 성능이 저장 데이터 블록(402a', 402b')이 각각 저장된 슬레이브 노드(100a, 100b)의 성능보다 월등히 높은 경우, 슬레이브 노드(100a, 100b)에 저장된 저장 데이터 블록(402a', 402b')의 처리는 슬레이브 노드(100f)가 수행할 수도 있다.
도 12 및 도 13은 복수의 슬레이브 노드에 대해 각각의 스토리지 장치의 마모 정도를 나타낸 히스토그램도이고, 도 14는 마모 정도에 따른 슬레이브 노드의 분포를 나타낸 그래프이다.
도 12 및 도 13을 참조하면, 본 발명의 다양한 실시예에 따른 분산 처리 방법에 의해 일부 슬레이브 노드의 마모 정도가 가속화되는 것이 방지되는 것을 히스토그램도로 나타내었다. 분산 클러스터(1)를 구성하는 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e) 중에서, 80 및 90의 값을 가지는 마모 정도가 낮은 슬레이브(100a, 100b)에 데이터 블록을 저장하거나 저장된 데이터 블록을 처리하는 작업의 양을 증가시키고, 30, 40 및 50의 값을 가지는 상대적으로 마모 정도가 높은 슬레이브(100c, 100d, 100e)에 대한 작업의 양을 감소시킴으로써, 분산 클러스터(1)를 구성하는 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e) 전체의 마모 정도를 비교적 균등하게 유지하고 특정 슬레이브 노드의 마모가 가속화되는 것을 방지할 수 있다. 또한, 도 14를 참조하면, 이러한 과정을 반복함으로써, 마모 정도에 따른 슬레이브 노드의 수가 대략 정규분포를 이루도록 하여, 분산 클러스터(1) 전체의 안정성을 향상시킬 수 있다.
도 15 및 도 16은 본 발명의 일 실시예에 따른 분산 처리 방법을 설명하기 위한 흐름도이다.
도 15를 참조하면, 본 발명의 일 실시예에 따른 분산 처리 방법에서, 마스터 노드(200)는 분산 클러스터(1)를 구성하는 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e)로부터, 각 슬레이브 노드(100a, 100b, 100c, 100d, 100e)에 각각 구비된 스토리지 장치(104a, 104b, 104c, 104d, 104e)에 대한 상태 정보를 수신할 수 있다(S600). 마스터 노드(200)는 수신한 상태 정보를 기초로, 분산 클러스터(1)에서 처리되는 작업을 수행하기 위한 작업 수행 노드를 선정할 수 있다(S602). 다음으로, 마스터 노드(200)는 클라이언트(300)의 작업 수행 노드 리스트 요청에 대한 응답으로 선정된 작업 수행 노드의 리스트를 클라이언트(300)에 전송함으로써 선정된 작업 수행 노드에 작업을 할당할 수 있다(S604). 작업 처리가 완료되면, 마스터 노드(200) 또는 클라이언트(300)는 각 작업 수행 노드로부터의 결과를 취합한 후(S606), 최종 결과를 산출하여 예컨대, 사용자에게 전달할 수 있다(S608).
또한, 도 16을 참조하면, 분산 클러스터(1)는 하둡 프레임워크를 기반으로 구성된 하둡 클러스터일 수 있고, 스토리지 장치에 대한 상태 정보를 수신하는 것은, 스토리지 장치에 대한 상태 정보를 하둡 클러스터로부터 제공되는 하트비트 신호와 함께 수신하는 것을 포함할 수 있다(S700). 마스터 노드(200)는 이와 같이 주기적으로 수신되는 상태 정보를 기초로 마스터 노드(200)는, 예컨대 자체적으로 관리하는 테이블에 새로운 상태 정보를 갱신할 수 있다(S702). 이 과정을 반복하면서, 마스터 노드(200)는 클라이언트(300)로부터 작업 수행 노드 리스트 요청이 수신되었는지 검사하고(S704), 작업 수행 노드 리스트 요청이 수신되었다면 재수신된 상태 정보를 기초로 작업 수행 노드를 선정하여(S706), 그 리스트를 클라이언트(300)에 제공할 수 있다.
도 17은 본 발명의 다른 실시예에 따른 분산 처리 방법을 설명하기 위한 흐름도이다.
도 17을 참조하면, 본 발명의 다른 실시예에 따른 분산 처리 방법에서, 마스터 노드(200)는 분산 클러스터(1)를 구성하는 복수의 슬레이브 노드(100a, 100b, 100c, 100d, 100e)로부터, 각 슬레이브 노드(100a, 100b, 100c, 100d, 100e)에 각각 구비된 스토리지 장치(104a, 104b, 104c, 104d, 104e)에 대한 상태 정보를 주기적으로 재수신할 수 있다(S800). 마스터 노드(200)는 수신한 새로운 상태 정보를 기초로, 분산 클러스터(1)에서 처리되는 작업을 수행하기 위한 작업 수행 노드를 재선정할 수 있다(S802). 다음으로, 마스터 노드(200) 또는 클라이언트(300)는 재선정된 작업 수행 노드의 리스트를 기초로, 기존에 데이터 블록이 저장되거나 데이터 블록을 처리하기 위한 작업이 할당된 작업 수행 노드로부터 새로 선정된 작업 수행 노드로 상기 데이터 블록 또는 작업을 이전할 수 있다(S804). 작업 처리가 완료되면, 마스터 노드(200) 또는 클라이언트(300)는 각 작업 수행 노드로부터의 결과를 취합한 후(S806), 최종 결과를 산출하여 예컨대, 사용자에게 전달할 수 있다(S808).
본 발명으로 인해 분산 클러스터에서 데이터를 효율적으로 처리함과 더불어 데이터의 안정성을 보장할 수 있다. 구체적으로 제1 슬레이브 노드에 구비된 제1 스토리지 장치의 마모 정도가 제2 슬레이브 노드에 구비된 제2 스토리지 장치의 마모 정도보다 낮은 경우, 제1 슬레이브 노드에 데이터 블록을 저장함으로써 데이터 블록을 안정적으로 저장할 수 있으며, 제1 스토리지 장치의 성능이 제2 스토리지 장치의 성능보다 높은 경우, 제1 노드에 저장된 데이터를 처리함으로써 데이터 처리 속도를 개선시킬 수 있다.
이하에서는 본 발명의 몇몇의 실시예에 따른 분산 처리 방법이 구현되는 전자 시스템을 설명하기로 한다. 도 18은 본 발명의 실시예에 따른 분산 처리 방법이 구현되는 전자 시스템을 설명하기 위한 개략적인 블록도이다.
도 18을 참조하면, 전자 시스템은 제어 장치(510; CONTROLLER), 인터페이스(520; INTERFACE), 입출력 장치(530; I/O), 기억 장치(540; MEMORY), 전원 공급 장치(550; POWER SUPPLY), 버스(560; BUS)를 포함할 수 있다.
제어 장치(510), 인터페이스(520), 입출력 장치(530), 기억 장치(540), 전원 공급 장치(550)는 버스(560)를 통하여 서로 결합될 수 있다. 버스(560)는 데이터들이 이동되는 통로(path)에 해당한다.
제어 장치(510)는 마이크로프로세서, 마이크로컨트롤러, 및 이들과 유사한 기능을 수행할 수 있는 논리 소자들 중에서 적어도 하나를 포함하여 데이터를 처리할 수 있다.
인터페이스(520)는 통신 네트워크로 데이터를 전송하거나 통신 네트워크로부터 데이터를 수신하는 기능을 수행할 수 있다. 인터페이스(520)는 유선 또는 무선 형태일 수 있다. 예컨대, 인터페이스(520)는 안테나 또는 유무선 트랜시버 등을 포함할 수 있다.
입출력 장치(530)는 키패드(keypad) 및 디스플레이 장치 등을 포함하여 데이터를 입출력할 수 있다.
기억 장치(540)는 데이터 및/또는 명령어 등을 저장할 수 있다. 본 발명의 몇몇의 실시예에 따른 반도체 장치는 기억 장치(540)의 일부 구성요소로 제공될 수 있다.
전원 공급 장치(550)는 외부에서 입력된 전원을 변환하여, 각 구성요소(510~540)에 제공할 수 있다.
도 19는 본 발명의 실시예에 따른 분산 처리 방법이 구현되는 전자 시스템의 응용예를 설명하기 위한 개략적인 블록도이다.
도 19를 참조하면, 전자 시스템은 중앙 처리 장치(610; CPU), 인터페이스(620; INTERFACE), 주변 장치(630; PERIPHERAL DEVICE), 주 기억 장치(640; MAIN MEMORY), 보조 기억 장치(650, SECONDARY MEMORY), 버스(660; BUS)를 포함할 수 있다.
중앙 처리 장치(610), 인터페이스(620), 주변 장치(630), 주 기억 장치(640), 보조 기억 장치(650)은 버스(660)을 통하여 서로 결합될 수 있다. 버스(660)은 데이터들이 이동되는 통로(path)에 해당한다.
중앙 처리 장치(610)는 제어 장치, 연산 장치 등을 포함하여 프로그램을 수행하고 데이터를 처리할 수 있다.
인터페이스(620)는 통신 네트워크로 데이터를 전송하거나 통신 네트워크로부터 데이터를 수신하는 기능을 수행할 수 있다. 인터페이스(520)는 유선 또는 무선 형태일 수 있다. 예컨대, 인터페이스(520)는 안테나 또는 유무선 트랜시버 등을 포함할 수 있다.
주변 장치(630)는 마우스, 키보드, 디스플레이 장치 및 프린터 장치 등을 포함하여 데이터를 입출력할 수 있다.
주 기억 장치(640)는 중앙 처리 장치(610)와 데이터를 송수신하고, 프로그램 수행에 필요한 데이터 및/또는 명령어 등을 저장할 수 있다. 본 발명의 몇몇의 실시예에 따른 반도체 장치는 주 기억 장치(640)의 일부 구성요소로 제공될 수 있다.
보조 기억 장치(650)는 자기 테이프, 자기 디스크, 플로피 디스크, 하드 디스크, 광 디스크 등의 비휘발성 저장 장치를 포함하여 데이터 및/또는 명령어 등을 저장할 수 있다. 보조 기억 장치(650)는 전자 시스템의 전원이 차단되는 경우에도 데이터를 저장할 수 있다.
이외에도, 본 발명의 몇몇의 실시예에 따른 분산 처리 방법이 구현되는 전자 시스템은 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 3차원 수상기(3-dimensional television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 하나, RFID 장치, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등과 같은 전자 장치의 다양한 구성 요소들 중 하나로 제공될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1: 분산 클러스터
100a, 100b, 100c, 100d, 100e, 100f: 슬레이브 노드
102a, 102b, 102c, 102d, 102e: 프로세서
104a, 104b, 104c, 104d, 104e: 스토리지 장치
200: 마스터 노드 210: 수신부
220: 선정부 300: 클라이언트
400: 입력 데이터 402a, 402b, 402c: 데이터 블록
404a, 404b, 404c, 404f: 결과 데이터
406: 최종 결과 데이터
100a, 100b, 100c, 100d, 100e, 100f: 슬레이브 노드
102a, 102b, 102c, 102d, 102e: 프로세서
104a, 104b, 104c, 104d, 104e: 스토리지 장치
200: 마스터 노드 210: 수신부
220: 선정부 300: 클라이언트
400: 입력 데이터 402a, 402b, 402c: 데이터 블록
404a, 404b, 404c, 404f: 결과 데이터
406: 최종 결과 데이터
Claims (10)
- 분산 클러스터를 구성하는 복수의 슬레이브 노드로부터, 각 슬레이브 노드에 각각 구비된 스토리지 장치에 대한 상태 정보를 수신하고,
상기 상태 정보를 기초로, 상기 분산 클러스터에서 처리되는 작업을 수행하기 위한 작업 수행 노드를 선정하는 것을 포함하는 분산 처리 방법. - 제1항에 있어서,
상기 분산 클러스터는 하둡 프레임워크(Hadoop Framework)를 기반으로 구성된 하둡 클러스터를 포함하고,
상기 스토리지 장치에 대한 상태 정보를 수신하는 것은,
상기 스토리지 장치에 대한 상태 정보를 상기 하둡 클러스터로부터 제공되는 하트비트(heartbeat) 신호와 함께 수신하는 것을 포함하는 분산 처리 방법. - 제2항에 있어서,
상기 스토리지 장치에 대한 상태 정보를 수신하는 것은,
상기 스토리지 장치에 대한 상태 정보를 상기 하둡 클러스터로부터 제공되는 하트비트 신호의 주기를 기본 단위로 한 시간 간격으로 수신하는 것을 포함하는 분산 처리 방법. - 제1항에 있어서,
상기 스토리지 장치에 대한 상태 정보는 상기 스토리지 장치의 마모 정도, 상기 스토리지 장치의 에러(error) 발생율 또는 상기 스토리지 장치의 성능을 나타내는 정보를 포함하는 분산 처리 방법. - 제1항에 있어서,
상기 스토리지 장치에 대한 상태 정보가 변경된 경우, 상기 작업 수행 노드를 재선정하는 것을 더 포함하는 분산 처리 방법. - 제5항에 있어서,
상기 재선정된 작업 수행 노드로 상기 작업을 이전하는 것을 더 포함하는 분산 처리 방법. - 분산 클러스터를 구성하는 제1 노드 및 제2 노드로부터 각각 제1 상태 정보와 제2 상태 정보를 수신하되, 상기 제1 상태 정보는 상기 제1 노드에 구비된 제1 스토리지 장치의 마모 정도를 포함하고, 상기 제2 상태 정보는 상기 제2 노드에 구비된 제2 스토리지 장치의 마모 정도를 포함하고,
상기 제1 스토리지 장치의 마모 정도가 상기 제2 스토리지 장치의 마모 정도보다 낮은 경우, 상기 제1 노드에 데이터 블록을 저장하는 것을 포함하는 분산 처리 방법. - 분산 클러스터를 구성하는 제1 노드 및 제2 노드로부터 각각 제1 상태 정보와 제2 상태 정보를 수신하되, 상기 제1 상태 정보는 상기 제1 노드에 구비된 제1 스토리지 장치의 성능을 포함하고, 상기 제2 상태 정보는 상기 제2 노드에 구비된 제2 스토리지 장치의 성능을 포함하고,
상기 제1 스토리지 장치의 성능이 상기 제2 스토리지 장치의 성능보다 높은 경우, 상기 제1 노드에 저장된 데이터를 처리하는 것을 포함하는 분산 처리 방법. - 하둡(Hadoop) 클러스터를 구성하는 복수의 슬레이브 노드로부터, 각 슬레이브 노드에 각각 구비된 스토리지 장치에 대한 상태 정보를 수신하는 수신부; 및
상기 상태 정보를 기초로, 상기 하둡 클러스터에서 처리되는 작업을 수행하기 위한 작업 수행 노드를 선정하는 노드 선정부를 포함하되,
상기 수신부는 상기 하둡 클러스터로부터 제공되는 하트비트(heartbeat) 신호와 함께 상기 상태 정보를 수신하는 마스터 서버. - 스토리지 장치를 각각 구비하는 복수의 슬레이브 노드 장치; 및
상기 복수의 슬레이브 노드로부터 수신한 상기 스토리지 장치에 대한 상태 정보를 기초로, 하둡(Hadoop) 클러스터에서 처리되는 작업을 수행하기 위한 작업 수행 노드를 선정하는 마스터 서버를 포함하되,
상기 상태 정보는 상기 하둡 클러스터에서 제공되는 하트비트(heartbeat) 신호와 함께 상기 복수의 슬레이브 노드로부터 상기 마스터 노드로 전송되는 분산 클러스터.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20130109221A KR20150030036A (ko) | 2013-09-11 | 2013-09-11 | 분산 처리 방법, 마스터 서버 및 분산 클러스터 |
US14/450,603 US20150074178A1 (en) | 2013-09-11 | 2014-08-04 | Distributed processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20130109221A KR20150030036A (ko) | 2013-09-11 | 2013-09-11 | 분산 처리 방법, 마스터 서버 및 분산 클러스터 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150030036A true KR20150030036A (ko) | 2015-03-19 |
Family
ID=52626613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20130109221A KR20150030036A (ko) | 2013-09-11 | 2013-09-11 | 분산 처리 방법, 마스터 서버 및 분산 클러스터 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20150074178A1 (ko) |
KR (1) | KR20150030036A (ko) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101656706B1 (ko) * | 2015-04-02 | 2016-09-22 | 두산중공업 주식회사 | 고성능 컴퓨팅 환경에서의 작업 분배 시스템 및 방법 |
KR101973537B1 (ko) * | 2017-12-20 | 2019-04-29 | 한국항공대학교산학협력단 | 하둡 분산 파일 시스템에서의 하트비트 교환 주기 관리 장치 및 방법 |
US10877909B2 (en) | 2018-08-06 | 2020-12-29 | SK Hynix Inc. | Data processing system allocating memory area in host as extension of memory and operating method thereof |
US11157207B2 (en) | 2018-07-31 | 2021-10-26 | SK Hynix Inc. | Apparatus and method for engaging plural memory system with each other to store data |
US11249919B2 (en) | 2018-07-31 | 2022-02-15 | SK Hynix Inc. | Apparatus and method for managing meta data for engagement of plural memory system to store data |
KR20220087241A (ko) | 2020-12-17 | 2022-06-24 | 주식회사 포스코 | 석탄 투입 방법 및 니켈 광석 분체를 이용한 니켈 선철 제조 방법 |
US11442628B2 (en) | 2018-07-31 | 2022-09-13 | SK Hynix Inc. | Apparatus and method for engaging a plurality of memory systems with each other |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10878323B2 (en) | 2014-02-28 | 2020-12-29 | Tyco Fire & Security Gmbh | Rules engine combined with message routing |
US10268485B2 (en) | 2014-02-28 | 2019-04-23 | Tyco Fire & Security Gmbh | Constrained device and supporting operating system |
US9316720B2 (en) | 2014-02-28 | 2016-04-19 | Tyco Fire & Security Gmbh | Context specific management in wireless sensor network |
CN107046552B (zh) * | 2016-02-05 | 2020-10-23 | 华为技术有限公司 | 基于心跳的数据同步装置、方法及分布式存储系统 |
US10305970B2 (en) * | 2016-12-13 | 2019-05-28 | International Business Machines Corporation | Self-recoverable multitenant distributed clustered systems |
CN111552441B (zh) * | 2020-04-29 | 2023-02-28 | 重庆紫光华山智安科技有限公司 | 数据存储方法和装置、主节点及分布式系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495295B2 (en) * | 2009-05-10 | 2013-07-23 | Infinidat Ltd. | Mass storage system and method of operating thereof |
US8413157B2 (en) * | 2009-08-06 | 2013-04-02 | Charles Palczak | Mechanism for continuously and unobtrusively varying stress on a computer application while processing real user workloads |
US9342376B2 (en) * | 2012-06-27 | 2016-05-17 | Intel Corporation | Method, system, and device for dynamic energy efficient job scheduling in a cloud computing environment |
CN104283906B (zh) * | 2013-07-02 | 2018-06-19 | 华为技术有限公司 | 分布式存储系统、集群节点及其区间管理方法 |
-
2013
- 2013-09-11 KR KR20130109221A patent/KR20150030036A/ko not_active Application Discontinuation
-
2014
- 2014-08-04 US US14/450,603 patent/US20150074178A1/en not_active Abandoned
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101656706B1 (ko) * | 2015-04-02 | 2016-09-22 | 두산중공업 주식회사 | 고성능 컴퓨팅 환경에서의 작업 분배 시스템 및 방법 |
KR101973537B1 (ko) * | 2017-12-20 | 2019-04-29 | 한국항공대학교산학협력단 | 하둡 분산 파일 시스템에서의 하트비트 교환 주기 관리 장치 및 방법 |
US11157207B2 (en) | 2018-07-31 | 2021-10-26 | SK Hynix Inc. | Apparatus and method for engaging plural memory system with each other to store data |
US11249919B2 (en) | 2018-07-31 | 2022-02-15 | SK Hynix Inc. | Apparatus and method for managing meta data for engagement of plural memory system to store data |
US11442628B2 (en) | 2018-07-31 | 2022-09-13 | SK Hynix Inc. | Apparatus and method for engaging a plurality of memory systems with each other |
US10877909B2 (en) | 2018-08-06 | 2020-12-29 | SK Hynix Inc. | Data processing system allocating memory area in host as extension of memory and operating method thereof |
KR20220087241A (ko) | 2020-12-17 | 2022-06-24 | 주식회사 포스코 | 석탄 투입 방법 및 니켈 광석 분체를 이용한 니켈 선철 제조 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20150074178A1 (en) | 2015-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20150030036A (ko) | 분산 처리 방법, 마스터 서버 및 분산 클러스터 | |
US12010167B2 (en) | Automated server workload management using machine learning | |
US11353838B2 (en) | Distributed computing in a process control environment | |
CA2892599C (en) | System-wide query optimization | |
US10223437B2 (en) | Adaptive data repartitioning and adaptive data replication | |
US9081618B2 (en) | Method and apparatus for the scheduling of computing tasks | |
US20150222506A1 (en) | Mechanism for controlling a process on a computing node based on the participation status of the computing node | |
US20180060114A1 (en) | Concurrent execution of a computer software application along multiple decision paths | |
US20170010968A1 (en) | System and method for data caching in processing nodes of a massively parallel processing (mpp) database system | |
US10599648B2 (en) | Optimized storage solution for real-time queries and data modeling | |
US20180152506A1 (en) | Automated collaboration workflow generation in thing-sourcing environments | |
EP3678030B1 (en) | Distributed system for executing machine learning, and method therefor | |
US20120102187A1 (en) | Storage Workload Balancing | |
JP4894745B2 (ja) | 仮想マシン移動制御方式 | |
US11461326B2 (en) | Scalable query processing | |
US11526464B2 (en) | Scaling HDFS for hive | |
US20160162301A1 (en) | Maintaining state information in a multi-component, event-driven state machine | |
CN103870324A (zh) | 异构多处理器环境中人机接口应用的有效执行 | |
US10277667B2 (en) | Method and apparatus for executing application based on open computing language | |
US9577869B2 (en) | Collaborative method and system to balance workload distribution | |
CN103136043A (zh) | 一种异步io的迁移方法、系统和网络节点 | |
US20150186429A1 (en) | Method and system for data dispatch processing in a big data system | |
US10310857B2 (en) | Systems and methods facilitating multi-word atomic operation support for system on chip environments | |
KR20230073093A (ko) | 정보 처리 시스템, 정보 처리 방법 및 정보 처리 프로그램을 격납한 기록 매체 | |
KR20160061726A (ko) | 인터럽트 핸들링 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |