KR20160061863A - 이기종 스토리지 및 처리 메커니즘을 갖는 컴퓨팅 시스템 및 그것의 동작 방법 - Google Patents
이기종 스토리지 및 처리 메커니즘을 갖는 컴퓨팅 시스템 및 그것의 동작 방법 Download PDFInfo
- Publication number
- KR20160061863A KR20160061863A KR1020150107301A KR20150107301A KR20160061863A KR 20160061863 A KR20160061863 A KR 20160061863A KR 1020150107301 A KR1020150107301 A KR 1020150107301A KR 20150107301 A KR20150107301 A KR 20150107301A KR 20160061863 A KR20160061863 A KR 20160061863A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- target
- data
- access time
- module
- Prior art date
Links
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
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- 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
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- 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
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
Abstract
본 발명의 실시 예에 따른 컴퓨팅 시스템은 장치 액세스 타임, 트래픽 레이턴시, 트래픽 정보 중 적어도 하나 이상에 기초하여 총 액세스 타임을 계산하는 모니터 블록, 상기 모니터 블록에 연결되고 데이터 콘텐츠의 데이터 위치를 판단하는 네임 노드 블록, 그리고 상기 네임 노드 블록에 연결되고 타깃 장치로부터의 상기 데이터 콘텐츠를 액세스하기 위해, 상기 총 액세스 타임, 상기 데이터 위치, 장치 성능 기준 중 적어도 하나 이상에 기초하여 작업 할당을 분배하는 스케줄러 블록을 포함할 수 있다.
Description
본 발명은 컴퓨팅 시스템에 관한 것으로, 좀 더 상세하게는 이기종 스토리지(heterogeneous storage) 및 처리 메커니즘에 관한 것이다.
현대의 소비자, 그리고 컴퓨팅 시스템, 서버, 기기, 텔레비전, 셀룰러 폰, 자동차, 위성 및 조합 장치와 같은 산업 전기 장치(industrial electronics)는 현대의 삶을 지지하기 위해 증가하는 수준의 기능을 제공한다. 성능 요구가 소비재와 기업 또는 상품 사이에서 변할 수 있지만, 데이터를 효율적으로 저장하기 위한 공통적인 요구가 있다.
현존하는 기술에 있어서의 연구 및 개발은 무수한 다양한 방향을 취할 수 있다. 어떠한 것들은 디스크 기반의 스토리지로부터 데이터를 액세스할 수 있다. 다른 것들은 데이터에 액세스하기 위해 클라우드 상에서 동작할 수 있다.
따라서, 이종으로(혼성으로) 데이터에 효율적으로 액세스하기 위한 이기종 스토리지 및 처리 메커니즘을 갖춘 컴퓨팅 시스템에 대한 요구가 아직 존재한다. 계속 증가하는 상업적 경쟁력의 관점에서, 시장에서의 의미 있는 상품 차별점에 대한 증가하는 소비자 기대치 및 감소하는 기회에 따라, 이러한 문제점에서 발견되는 해답들은 점점 더 중요하다. 게다가, 비용을 감소시키고, 효율 및 성능을 향상시키고, 그리고 경쟁력을 충족시키려는 필요성은 이러한 문제점에 대한 해답을 발견하기 위한 중요한 필요성에 더 긴급함을 부가시킨다. 이러한 문제점에 대한 해결책은 오랫동안 구해져 왔으나, 앞선 개발들은 좀 더 효율적인 해결책을 가르치거나 제시하지 못하여 왔다. 따라서, 이러한 문제점에 대한 해결책은 본 발명이 속하는 기술 분야에서 통상의 지식을 지닌 자들에게 오랫동안 피해져 왔다.
본 발명의 목적은 이기종 스토리지를 효율적으로 액세스할 수 있는 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은, 장치 액세스 타임, 트래픽 레이턴시, 트래픽 정보 중 적어도 하나 이상에 기초하여 총 액세스 타임을 계산하도록 구성되는 모니터 블록, 상기 모니터 블록에 연결되고, 데이터 콘텐츠의 데이터 위치를 판단하도록 구성되는 네임 노드 블록, 그리고 상기 네임 노드 블록에 연결되고, 타깃 장치로부터 상기 데이터 콘텐츠를 액세스하기 위해, 상기 총 액세스 타임, 상기 데이터 위치, 장치 성능 기준 중 적어도 하나 이상에 기초하여 작업 할당을 분배하도록 구성되는 스케줄러 블록을 포함할 수 있다.
예를 들어, 상기 스케줄러 블록은 더 낮은 값의 상기 장치 성능 기준을 갖는 상기 타깃 장치로부터 더 높은 값의 상기 장치 성능 기준을 갖는 상기 타깃 장치에 이르기까지 상기 작업 할당에 우선 순위를 부여하기 위해 상기 장치 성능 기준에 기초하여 상기 작업 할당을 분배하도록 구성될 수 있다.
예를 들어, 상기 스케줄러 블록은 컴퓨팅 블록으로부터 떨어진 타깃 위치에 걸쳐 상기 컴퓨팅 블록에 인접한 상기 타깃 위치에 기초하여 상기 작업 할당을 분배하도록 구성될 수 있다.
예를 들어, 상기 스케줄러 블록은 저성능 장치에 걸쳐 고성능 장치에 이르기까지 상기 작업 할당에 우선 순위를 매기기 위해 스토리지 타입에 기초하여 상기 작업 할당을 분배하도록 구성될 수 있다.
예를 들어, 상기 스케줄러 블록은 상기 컴퓨팅 블록에 인접한 저성능 장치로부터 상기 컴퓨팅 블록과 떨어진 고성능 장치에 이르기까지 상기 작업 할당에 우선 순위를 매기기 위해 스토리지 타입에 기초하여 상기 작업 할당을 분배하도록 구성될 수 있다.
예를 들어, 상기 모니터 블록은 상기 타깃 장치로부터의 상기 데이터 콘텐츠를 액세스하기 위해 할당된 상기 작업 할당에 기초하여 상기 트래픽 정보를 판단하도록 구성될 수 있다.
예를 들어, 상기 모니터 블록은 상기 타깃 장치 각각에 대한 복수의 타깃 액세스에 기초하여 상기 트래픽 정보를 판단하도록 구성될 수 있다.
본 발명의 실시 예에 따른 컴퓨팅 시스템의 동작 방법은, 장치 액세스 타임, 트래픽 레이턴시, 트래픽 정보 중 적어도 하나 이상에 기초하여 총 액세스 타임을 계산하는 단계, 네임 노드 블록을 가지고 데이터 콘텐츠의 데이터 위치를 판단하는 단계, 그리고 타깃 장치로부터의 상기 데이터 콘텐츠를 액세스하기 위해 상기 총 액세스 타임, 상기 데이터 위치, 장치 성능 기준 중 적어도 하나 이상에 기초하여 작업 할당을 분배하는 단계를 포함할 수 있다.
예를 들어, 상기 작업 할당을 분배하는 단계는 더 낮은 값의 상기 장치 성능 기준을 갖는 상기 타깃 장치로부터 더 높은 값의 상기 장치 성능 기준을 갖는 상기 타깃 장치에 이르기까지 상기 작업 할당에 우선 순위를 부여하기 위해 상기 장치 성능 기준에 기초하여 상기 작업 할당을 분배하는 단계를 포함할 수 있다.
예를 들어, 상기 작업 할당을 분배하는 단계는, 컴퓨팅 블록과 떨어진 타깃 위치로부터 상기 컴퓨팅 블록과 인접한 타깃 위치에 이르기까지 타깃 할당을 분배하기 위해 상기 타깃 위치에 기초하여 상기 작업 할당을 분배하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따르면 이기종 스토리지를 효율적으로 액세스할 수 있다.
도 1a는 본 발명의 실시 예에 따른 이기종 스토리지 및 처리 메커니즘을 갖춘 컴퓨팅 시스템의 블록도이다.
도 1b는 본 발명의 실시 예에 따른 이기종 스토리지 및 처리 메커니즘을 갖춘 컴퓨팅 시스템의 블록도이다.
도 2는 본 발명의 실시 예에 따른 컴퓨팅 시스템을 제어하는 순서도이다.
도 3은 본 발명의 실시 예를 갖춘 컴퓨팅 시스템의 적용 예를 예시적으로 보여주는 블록도이다.
도 4는 컴퓨터 서버, 자동차의 대쉬 보드, 스마트폰, 모바일 장치, 그리고 노트북 컴퓨터와 같은, 컴퓨팅 시스템을 위한 다양한 실시 예를 보여주는 도면이다.
도 1b는 본 발명의 실시 예에 따른 이기종 스토리지 및 처리 메커니즘을 갖춘 컴퓨팅 시스템의 블록도이다.
도 2는 본 발명의 실시 예에 따른 컴퓨팅 시스템을 제어하는 순서도이다.
도 3은 본 발명의 실시 예를 갖춘 컴퓨팅 시스템의 적용 예를 예시적으로 보여주는 블록도이다.
도 4는 컴퓨터 서버, 자동차의 대쉬 보드, 스마트폰, 모바일 장치, 그리고 노트북 컴퓨터와 같은, 컴퓨팅 시스템을 위한 다양한 실시 예를 보여주는 도면이다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
한 요소 또는 층이 다른 요소 또는 층에 "연결되는", "결합하는", 또는 "인접하는" 것으로 언급되는 때에는, 다른 요소 또는 층에 직접적으로 연결되거나, 결합 되거나, 또는 인접하는 것일 수 있고, 혹은 그 사이에 끼워지는 요소 또는 층이 존재할 수 있음이 잘 이해될 것이다. 본 명세서에서 사용되는 "및/또는"이라는 용어는 나열된 요소들의 하나 또는 그 이상의 가능한 조합들을 포함할 것이다.
비록 "제 1", "제 2" 등의 용어가 여기서 다양한 요소를 설명하기 위해 사용될 수 있다 하더라도, 이들 요소는 이 용어들에 의해 한정되지 않는다. 이 용어들은 단지 다른 것들로부터 하나의 구성요소를 구별하기 위해 사용될 수 있다. 따라서, 본 명세서에서 사용된 제 1 구성요소, 구간, 층과 같은 용어는 본 발명의 사상을 벗어나지 않는 범위 내에서 제 2 구성요소, 구간, 층 등으로 사용될 수 있다.
"모듈"이라는 용어는 그 용어가 사용되는 문맥에 따라 본 발명의 실시 예에서 소프트웨어, 하드웨어 또는 그들의 조합을 포함할 수 있다. 예를 들어, 소프트웨어 모듈은 머신 코드, 펌웨어, 임베디드 코드, 및/또는 애플리케이션 소프트웨어일 수 있다. 또한, 예를 들어, 하드웨어 모듈은 회로, 프로세서(들), 컴퓨터(들), 집적 회로(들), 집적 회로 코어들, 압력 센서(들), 관성 센서(들), 미세 전자 기계 시스템(들)(micro electromechanical system; MEMS), 수동 소자, 또는 그들의 조합일 수 있다. 게다가, 만일 모듈이 장치 청구항 부분에서 사용되었다면, 모듈은 장치 청구항의 목적 및 범위를 위한 하드웨어 회로를 포함하는 것으로 여겨진다.
"아래의", "하부의", "위의", "상부의", 및 이와 유사한 용어들은 직접적으로(directly) 또는 다른 층을 개재하여(indirectly) 배치되는 경우를 모두 포함한다. 그리고, 공간적으로 상대적인 이러한 용어들은 도면에 도시된 방향에 더하여 다른 방향을 포함하는 것으로 이해되어야 한다. 예를 들어, 만일 장치가 뒤집히면, "아래의"로 설명된 구성요소는 "위의"가 될 것이다.
본 명세서에서 설명되는 용어는 단지 특정한 실시 예를 설명하기 위한 목적으로 사용되며, 그것에 한정되지 않는다. "하나의"와 같은 용어는 달리 명백하게 지칭하지 않으면 복수의 형태를 포함하는 것으로 이해되어야 한다. "포함하는" 또는 "구성되는"과 같은 용어는 설명된 특징, 단계, 동작, 성분, 및/또는 구성요소의 존재를 명시하며, 추가적인 하나 또는 그 이상의 특징, 단계, 동작, 성분, 구성요소 및/또는 그들의 그룹의 존재를 배제하지 않는다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시 예를 첨부된 도면을 참조하여 설명할 것이다.
도 1a를 참조하면, 본 발명의 실시 예에 따른 이기종 스토리지 및 처리 메커니즘을 갖춘 컴퓨팅 시스템(100)이 도시되었다. 도 1은 이기종 스토리지가 사용되는 컴퓨팅 시스템(100)의 일 실시 예를 보여준다. 이기종 스토리지라는 용어는 복수의 스토리지 타입(104)으로 데이터 콘텐츠(102)를 기록하는 것을 의미할 수 있다. 상세한 것을 후술 될 것이다.
컴퓨팅 시스템(100)은 컴퓨팅 블록(106)을 포함할 수 있다. 컴퓨팅 블록(106)은 이기종 스토리지 아키텍처, 단일기종 스토리지 아키텍처, 또는 이들의 조합으로 호스팅하기 위한 하드웨어 장치를 나타낼 수 있다. 상세한 것은 후술 될 것이다.
컴퓨팅 시스템(100)은 클라이언트 블록(108)을 포함할 수 있다. 클라이언트 블록(108)은 데이터 노드(100)와 통신할 수 있다. 예를 들어, 클라이언트 블록(108)은 데이터 콘텐츠(102)를 복수의 데이터 노드(110)에 쓰거나 또는 복수의 데이터 노드(110)로부터 읽기 위한 커맨드를 이슈할 수 있다. 예를 들어, 복수의 데이터 노드(110)는 데이터 노드(110a, 110b, 및 110c)를 나타낼 수 있다. 클라이언트 블록(108)은 논리 게이트 또는 회로(아날로그 또는 디지털)와 같은 소프트웨어, 하드웨어, 또는 그들의 조합으로 구현될 수 있다. 예를 들어, 클라이언트 블록(108)은 하드웨어 FMS (finite state machine), 콤비네이션 로직, 또는 이들의 조합으로 구현될 수 있다. 클라이언트 블록(108)은 데이터 노드(110)와 떨어져 있을 수 있다. 좀 더 상세하게 설명하면, 데이터 노드(110)는 물리적으로 컴퓨팅 블록(108)의 외부에 존재할 수 있다.
컴퓨팅 블록(106)은 데이터 노드(110)를 포함할 수 있다. 예를 들어, 데이터 노드(110)는 데이터 콘텐츠(102)를 저장하기 위한 적어도 하나의 스토리지 유닛(112)을 포함할 수 있다. 스토리지 유닛(112)은 데이터 콘텐츠(102)를 저장할 수 있다. 스토리지 유닛(112)은 휘발성 메모리, 불휘발성 메모리, 내부 메모리, 외부 메모리, 또는 그들의 조합일 수 있다. 데이터 노드(110)는 클라이언트 블록(108), 컴퓨팅 블록(106) 내의 다른 블록, 또는 이들의 조합으로부터, 커맨드, 데이터 콘텐츠(102), 또는 그들의 조합을 수신하기 위한 인터페이스를 나타낼 수 있다. 데이터 노드(110)는 스토리지 타입(104)의 복수의 스토리지 유닛(112)을 포함할 수 있다.
스토리지 타입(104)은 스토리지 유닛(112)의 카테고리이다. 스토리지 타입(104)은 데이터를 저장하는데 사용되는 기록 매체, 기록 기술, 또는 이들의 조합에 기초하여 카테고리화 될 수 있다. 스토리지 타입(104)은 쓰기 속도, 읽기 속도, 스토리지 커맨드에 대한 레이턴시(latency), 스루풋(throughput), 또는 이들의 조합과 같은, 다른 요인들에 의해 구별될 수 있다. 예를 들어, 스토리지 타입(104)은 고성능 장치(114) 또는 저성능 장치(116)로 스토리지 유닛(112)을 분류할 수 있다.
"고" 또는 "저"라는 용어는 캐싱, 펌웨어, 네트워크 속도, 스루풋 레벨, 스토리지 용량, 또는 이들의 조합에 의존할 수 있다. 고성능 장치(114)는 저성능 장치(116)의 성능을 초과하는 성능 메트릭(metric)을 갖춘 스토리지 유닛(112)을 나타낼 수 있다.
예를 들어, 고성능 장치(114)는 데이터 콘텐츠(102)를 저장하기 위해 불휘발성 집적 회로 메모리로 구현될 수 있다. 다른 예로써, 저성능 장치(116)는 데이터 콘텐츠(102)를 저장하기 위해 회전 매체(rotating media) 또는 선형적으로 움직이는 매체(linearly moving media)를 사용하는 스토리지 유닛(112)을 나타낼 수 있다.
다른 예로써, 고성능 장치(114) 및 저성능 장치(116)는 불휘발성 메모리 장치 또는 회전 매체와 같은, 동일하거나 또는 유사한 기술들로 구현될 수 있다, 그러나, 다른 요소들이 성능을 차별화시킬 수 있다. 예를 들어, 캐시와 같은 휘발성 메모리는 스토리지 유닛(112)의 성능이 고성능 장치(113) 또는 저성능 장치(116)로 고려되도록 차별화시킬 수 있다.
예를 들어, 고성능 장치(114)는 저성능 장치(116)보다 더 빠른 캐싱 용량을 가질 수 있다. 다른 예로써, 고성능 장치(114)는 저성능 장치(116)보다 나은 성능을 갖는 펌웨어를 포함할 수 있다. 다른 예로써, 고성능 장치(114)는 저성능 장치(116)보다 더 빠른 통신을 제공하는 네트워크에 연결될 수 있다. 다른 예로써, 고성능 장치(114)는 저성능 장치(116)보다 더 빨리 데이터를 처리함으로써 더 높은 스루풋 레벨을 가질 수 있다. 다른 예로써, 고성능 장치(114)는 저성능 장치(116)보다 더 큰 저장 용량을 가질 수 있다.
예를 들어, 스토리지 타입(104)은 스토리지 유닛(112)을 솔리드 스테이트 드라이브(solid state drive; SSD)(118), 하드 디스크 드라이브(hard disk drive; HDD)(120), 또는 이들의 조합으로 분류할 수 있다. 좀 더 상세한 예로써, 고성능 장치(114)는 SSD(118)를 나타낼 수 있다. 저성능 장치(116)는 HDD(120)를 나타낼 수 있다. 컴퓨팅 시스템(100)은 하나 또는 그 이상의 유형의 스토리지 타입(104)을 갖는 하나 또는 그 이상의 스토리지 유닛(112)을 포함하는 하나 또는 그 이상의 데이터 노드(110)를 포함하는 이기종 분산 파일 시스템(distributed file system)을 제공할 수 있다.
예를 들어, 스토리지 타입(104)은 컴퓨팅 시스템(100)이 장치 성능 기준(performance criteria)(122)에 따라 스토리지 유닛(112)을 분류하도록 할 수 있다. 장치 성능 기준(122)은 스루풋 레벨, 스토리지 용량, 레이턴시, 처리 용량, 현재의 유저 메트릭(current-use metrics), 물리적 위치 식별자, 근접 처리 메트릭(proximity-to-processing metrics), 또는 이들의 조합을 포함할 수 있다. 좀 더 상세한 예로써, 스토리지 유닛(112)은 다른 스토리지 유닛(112)보다 더 큰 스루풋을 갖는 장치 성능 기준(122)을 가질 수 있다. 그 결과, 장치 성능 기준(122)에 의해 지시되는 바와 같이, 스토리지 유닛(112)은 다른 스토리지 유닛(112)보다 더 빠를 수 있다.
컴퓨팅 블록(106)은 데이터 콘텐츠(102)를 배치하기 위해 복수의 타깃 장치(126)의 리스트를 위한 요청을 수신하기 위한 네임 노드 블록(name node block)(124)을 포함할 수 있다. 타깃 장치(126)는 데이터 콘텐츠(102)를 저장할 수 있다. 컴퓨팅 블록(106)은 타깃 장치(126)를 포함할 수 있다. 타깃 장치(126)는 데이터 노드(110), 스토리지 유닛(112), 또는 이들의 조합을 나타낼 수 있다. 타깃 장치(126)는 데이터 콘텐츠(102)를 읽거나 쓰는데 이용 가능한 하나 또는 그 이상의 데이터 노드(110)를 나타낼 수 있다. 타깃 장치(126)는 데이터 콘텐츠(102)를 읽거나 쓰기 위한 데이터 노드(110) 내의 하나 또는 그 이상의 스토리지 유닛(112)을 나타낼 수 있다.
다른 예로써, 타깃 장치(126)는 다른 타깃 장치(126)로부터 데이터를 복제할 수 있다. 좀 더 상세한 예로써, 저성능 장치(116)를 포함하는 데이터 노드(110)는 고성능 장치(114)를 포함하는 데이터 노드(110)로부터 데이터 콘텐츠(102)를 수신할 수 있다.
타깃 카운트(128)는 이용 가능한 타깃 장치(126)의 개수를 나타낼 수 있다. 타깃 카운트는 데이터 콘텐츠(102)를 복제하거나, 그리고/또는 읽기 위한 타깃 장치(126)의 개수를 나타낼 수 있다. 예를 들어, 타깃 카운트(128)는 데이터 콘텐츠(102)를 읽거나 쓰기 위해 바람직한 데이터 노드(110)의 복수의 예를 나타낼 수 있다. 다른 예로써, 타깃 카운트(128)는 데이터 콘텐츠(102)를 읽거나 쓰는데 이용 가능한 스토리지 유닛(112)을 나타낼 수 있다.
예를 들어, 이기종 분배 파일 시스템에 있어서, 타깃 카운트(128)는 네 가지 예의 데이터 노드(110)를 나타낼 수 있다. 그러나, 타깃 카운트(128)는 0보다 큰 수부터 타깃 장치(126)의 n개의 예까지 이를 수 있다. 네임 노드 블록(124)은 회로 또는 논리 게이트(아날로그 또는 디지털)와 같은, 소프트웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 네임 노드 블록(124)은 하드웨어 FMS (finite state machine), 콤비네이션 로직, 또는 이들의 조합으로 구현될 수 있다. 좀 더 상세한 예로써, 네임 노드 블록(124)은 데이터 콘텐츠(102)를 읽기 위한 고성능 장치(114), 저성능 장치(116), 또는 이들의 조합을 포함하는 다양한 스토리지 타입(104)을 갖춘 데이터 노드(110)의 예들을 제공할 수 있다.
네임 노드 블록(124)은 타깃 위치(130)에 기초하여 데이터 노드(110)의 추가적인 예들을 선택할 수 있다. 타깃 위치(130)는 타깃 장치(126)가 존재하는 곳에 관한 정보에 의해 판단될 수 있다. 타깃 위치(130)는 다양한 방법으로 표현될 수 있다. 예를 들어, 타깃 위치(130)는 물리적 위치, 네트워크 어드레스, 랙(rack) 정보, 또는 이들의 조합으로 표현될 수 있다.
좀 더 상세한 예로써, 타깃 위치(130)는 타깃 장치(126)가 셋 업 되는 랙 정보를 나타낼 수 있다. 좀 더 상세한 예로써, 타깃 장치(126)가 셋 업 될 수 있는 첫 번째 예는 랙 1에서이다. 계속하여, 타깃 장치(126)가 셋 업 될 수 있는 두 번째 예는 랙 2에서이다. 타깃 장치(126)가 셋 업 될 수 있는 세 번째 예는 랙 3에서이다.
다른 예로써, 타깃 위치(130)는 타깃 장치(126)가 컴퓨팅 블록(106)의 외부에 위치하는 것을 나타낼 수 있다. 다른 예로써, 타깃 위치(130)는 타깃 장치(126)가 컴퓨팅 블록(106) 내에서 가까이에 위치하는 것을 나타낼 수 있다.
도 1b를 참조하면, 본 발명의 실시 예에 따른 이기종 스토리지 및 처리 메커니즘을 갖춘 컴퓨팅 시스템(100)이 도시되었다. 도 1a의 컴퓨팅 블록(106)은 잡 트래커 블록(job tracker block)(132)을 포함할 수 있다. 잡 트래커 블록(132)은 도 1a의 타깃 장치를 모니터링 할 수 있다. 잡 트래커 블록(132)은 작업을 스케줄링할 수 있다. 잡 트래커 블록(132)은 논리 게이트, 또는 회로(아날로그 또는 디지털)와 같은, 소프트웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 잡 트래커 블록(132)은 하드웨어 FMS (finite state machine), 콤비네이션 로직, 또는 이들의 조합으로 구현될 수 있다.
다른 예로써, 잡 트래커 블록(132)은 도 1a의 데이터 콘텐츠(102)의 데이터 위치(134)를 판단할 수 있다. 데이터 위치(134)는 데이터 콘텐츠(102)가 저장되는 위치이다. 예를 들어, 데이터 위치(134)는 도 1a의 고성능 장치(114)를 나타내는 타깃 장치(126)를 나타낼 수 있다.
다른 예로써, 잡 트래커 블록(132)은 읽기 커맨드(136)와 같은 커맨드를 이슈할 수 있다. 읽기 커맨드(136)는 컴퓨팅 시스템(100)이 타깃 장치(126)의 하나 또는 그 이상의 예로부터 데이터 콘텐츠(102)를 읽도록 할 수 있다.
잡 트래커 블록(132)은 모니터 블록(138)을 포함할 수 있다. 모니터 블록(138)은 타깃 장치(126)를 모니터링 할 수 있다. 모니터 블록(138)은 논리 게이트, 또는 회로(아날로그 또는 디지털)와 같은, 소프트웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 잡 트래커 블록(132)은 하드웨어 FMS (finite state machine), 콤비네이션 로직, 또는 이들의 조합으로 구현될 수 있다.
다른 예로써, 모니터 블록(138)은 트래픽 정보(140)를 판단할 수 있다. 트래픽 정보(140)는 네트워크 트래픽 상태에 관한 정보이다. 예를 들어, 만일 도 1a의 클라이언트 블록(108)과 타깃 장치(126) 사이에서 전송된 많은 양의 데이터 콘텐츠(202)가 있다면, 네트워크에 대한 트래픽 정보(140)는 과도한 사용(heavy use)을 나타낼 수 있다. 다른 예로써, 트래픽 정보(140)는 타깃 장치(126)로의 타깃 액세스(142)의 개수를 포함할 수 있다. 타깃 액세스(142)는 타깃 장치(126)를 액세스하기 위한 실행이다. 예를 들어, 트래픽 정보(140)는 특정한 타깃 장치(126)를 액세스하기 위한 읽기 커맨드(136)의 실행을 나타내는 타깃 액세스(142)의 개수를 포함할 수 있다.
다른 예로써, 모니터 블록(138)은 타깃 장치(126)로부터 핵심적인 특징(heartbeat)(144)을 수신할 수 있다. 핵심적인 특징(144)은 타깃 장치(126)의 상태를 알리기 위한 통지이다. 예를 들어, 모니터 블록(138)은 타깃 장치(126)로부터의 하나 또는 그 이상의 핵심적인 특징(144)의 수신 간격에 기초하여 트래픽 정보(140)를 판단할 수 있다.
장치 액세스 타임(146)은 타깃 장치(126)로부터의 결과(outcome)를 수신하는데 요구되는 시간이다. 예를 들어, 도 1a의 저성능 장치(116)로부터의 결과를 수신하기 위한 장치 액세스 타임(146)은 고성능 장치(114)로부터의 결과를 수신하기 위한 장치 액세스 타임(146)보다 길 수 있다. 예를 들어, 장치 액세스 타임(146)은 타깃 장치(126)로부터 데이터 콘텐츠(102)를 읽어내는 속도를 나타낼 수 있다.
모니터 블록(138)은 트래픽 레이턴시(148)를 판단할 수 있다. 트래픽 레이턴시(148)는 네트워킹에서의 지연(delay)을 의미한다. 예를 들어, 트래픽 레이턴시(148)는 내재하는(inherent) 트래픽 레이턴시(152), 현재의 트래픽 레이턴시(154), 또는 이들의 조합을 포함할 수 있다. 내재하는 트래픽 레이턴시(152)는 네트워크 사양(specification)(150)에 기인하는 네트워크에 존재하는 지연을 의미한다. 네트워크 사양(150)은 네트워크의 기술적 한계 및 (접속 거리와 같은) 네트워크의 총 물리적 파라미터를 나타낼 수 있다. 예를 들어, 네트워크 사양(150)은 데이터 콘텐츠(102)를 전송하기 위한 네트워크 속도를 나타낼 수 있다.
현재의 트래픽 레이턴시(154)는 네트워크에서의 현재의 트래픽 양에 기인하는 네트워크에 존재하는 지연을 의미한다. 총 액세스 타임(156)은 장치 액세스 타임(146), 트래픽 레이턴시(148), 트래픽 정보(140), 또는 이들의 조합을 포함하는 (그러나 이에 한정되지 않는) 집합 조건(aggregation condition)을 의미한다. 모니터 블록(138)은 현재의 트래픽 레이턴시(154), 총 액세스 타임(156), 또는 이들의 조합을 결정할 수 있다.
잡 트래커 블록(132)은 스케줄러 블록(158)을 포함할 수 있다. 스케줄러 블록(158)은 작업을 스케줄링할 수 있다. 스케줄러 블록(158)은 논리 게이트, 또는 회로(아날로그 또는 디지털)와 같은, 소프트웨어, 하드웨어, 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 잡 트래커 블록(132)은 하드웨어 FMS (finite state machine), 콤비네이션 로직, 또는 이들의 조합으로 구현될 수 있다.
다른 예로써, 트래픽 정보(140)는 작업 할당(160)에 기초한 네트워크 트래픽 상태를 나타낼 수 있다. 작업 할당(160)은 작업 또는 커맨드의 발행(issuance)이다. 예를 들어, 스케줄러 블록(158)은 고성능 장치(114)로부터 데이터 콘텐츠(102)를 읽기 위해 작업 할당(160)을 이슈할 수 있다. 다른 예로써, 스케줄러 블록(158)은 고성능 장치(114)로부터 저성능 장치(116)에 걸쳐 작업을 처리하기 위해 작업 할당(160)을 이슈할 수 있다.
도 2를 참조하면, 컴퓨팅 시스템(100)을 제어하는 순서도가 도시되었다. 컴퓨팅 시스템(100)은 위치 모듈(202)을 포함할 수 있다. 위치 모듈(202)은 도 1b의 데이터 위치를 판단할 수 있다. 예를 들어, 위치 모듈(202)은 도 1b의 읽기 커맨드(136), 도 1a의 타깃 위치(130), 도 1a의 데이터 콘텐츠(102), 또는 이들의 조합에 기초하여 데이터 위치(134)를 판단할 수 있다.
좀 더 상세한 예로써, 위치 모듈(202)은 읽기 커맨드(136)에 따라 요청된 데이터 콘텐츠(102)가 위치하는, 도 1a의 데이터 노드(110), 도 1a의 스토리지 유닛(112), 또는 이들의 조합을 포함하는 타깃 위치(130)를 식별하는 것에 기초하여 데이터 위치(134)를 판단할 수 있다. 도 1a의 네임 노드 블록(124)은 위치 모듈(202)을 실행할 수 있다. 위치 모듈(202)은 데이터 위치(134)를 모니터 모듈(204)로 전송할 수 있다.
컴퓨팅 시스템(100)은 위치 모듈(202)과 연결될 수 있는 모니터 모듈(204)을 포함할 수 있다. 모니터 모듈(204)은 도 1b의 트래픽 정보를 판단할 수 있다. 예를 들어, 모니터 모듈(204)은 도 1b의 작업 할당(160), 타깃 장치(126), 데이터 콘텐츠(102), 또는 이들의 조합에 기초하여 트래픽 정보(140)를 판단할 수 있다. 모니터 블록(138)은 모니터 모듈(204)을 실행할 수 있다.
모니터 모듈(204)은 다양한 방법으로 트래픽 정보(140)를 판단할 수 있다. 예를 들어, 모니터 모듈(204)은 타깃 장치(126)로부터의 데이터 콘텐츠(102)를 액세스하는데 할당된 작업 할당(160)의 양에 기초하여 트래픽 정보(140)를 판단할 수 있다. 잡 트래커 블록(132)은 한 타깃 장치(126)로부터 다른 타깃 장치(126)에 이르기까지 작업 할당(160)으로부터 생성된 데이터 이동의 네트워크 트래픽에 관한 정보를 제공할 수 있다.
다른 예로써, 모니터 모듈(204)은 도 1b의 타깃 액세스(142)에 기초하여 트래픽 정보(140)를 판단할 수 있다. 좀 더 상세한 예로써, 모니터 모듈(204)은 각각의 타깃 장치(126)로의 타깃 액세스(142)에 기초하여 트래픽 정보(140)를 판단할 수 있다.
다른 예로써, 모니터 모듈(204)은 도 1b의 하나 또는 그 이상의 핵심적인 특징(heartbeat)(144)을 수신하는 것에 기초하여 트래픽 정보(140)를 판단할 수 있다. 좀 더 상세한 예로써, 타깃 장치(126)는, 식별될 하나 또는 그 이상의 핵심적인 특징(144)을 잡 트래커 블록(132)으로 전달할 수 있다. 핵심적인 특징(144)에 기초하여 모니터 모듈(204)은 네트워크 트래픽이 얼마나 빠른지 또는 느린지에 대한 트래픽 정보(140)를 판단할 수 있다. 모니터 모듈(204)은 트래픽 정보(140)를 액세스 모듈(206)로 전송할 수 있다.
컴퓨팅 시스템(100)은 모니터 모듈(204)에 연결될 수 있는 액세스 모듈(206)을 포함할 수 있다. 액세스 모듈(206)은 도 1b의 장치 액세스 타임(146)을 판단할 수 있다. 예를 들어, 액세스 모듈(206)은 타깃 장치(126)의 도 1a의 스토리지 타입(104)에 기초하여 장치 액세스 타임(146)을 판단할 수 있다. 모니터 블록(138)은 액세스 모듈(206)을 실행할 수 있다.
좀 더 상세한 예로써, 액세스 모듈(206)은 스토리지 타입(104)을 위해 제공된 기술적 사양에 기초하여 장치 액세스 타임(146)을 판단할 수 있다. 예를 들어, 액세스 모듈(206)은, 도 1a의 저성능 장치(116)를 포함하는 타깃 장치(126)를 위한 장치 액세스 타임(146)보다 빠를 수 있는, 도 1a의 고성능 장치(114)를 포함하는 타깃 장치(126)를 위한 액세스 타임(146)을 판단할 수 있다. 액세스 모듈(206)은 장치 액세스 타임(146)을 레이턴시 모듈(208)로 전달할 수 있다.
컴퓨팅 시스템(100)은 액세스 모듈(206)에 연결될 수 있는 레이턴시 모듈(208)을 포함할 수 있다. 레이턴시 모듈(208)은 도 1b의 트래픽 레이턴시(148)를 판단할 수 있다. 예를 들어, 레이턴시 모듈(208)은 도 1b의 네트워크 사양(150), 트래픽 정보(140), 또는 이들의 조합에 기초하여 트래픽 레이턴시(148)를 판단할 수 있다. 모니터 블록(138)은 레이턴시 모듈(208)을 실행할 수 있다.
레이턴시 모듈(208)은 다양한 방법으로 트래픽 레이턴시(148)를 판단할 수 있다. 예를 들어, 레이턴시 모듈(208)은 네트워크 사양(150)에 기초하여 도 1b의 내재하는 트래픽 레이턴시(142)를 판단할 수 있다. 좀 더 상세한 예로써, 네트워크 사양(150)은 최대 및 최소 네트워크 속도에 관한 정보를 제공할 수 있다. 네트워크 사양(150)에 기초하여, 레이턴시 모듈(208)은 컴퓨팅 시스템(100)이 작업 할당(160)을 할당하기 위해 예상할 수 있는 내재하는 트래픽 레이턴시(142)를 판단할 수 있다.
다른 예로써, 레이턴시 모듈(208)은 트래픽 정보(140)에 기초하여 도 1b의 현재의 트래픽 레이턴시(154)를 판단할 수 있다. 앞서 설명된 바와 같이, 트래픽 정보(140)는 타깃 장치(126)를 액세스하기 위해 작업 할당(160)을 분배하는 것으로부터 네트워크 트래픽에 관한 정보를 제공할 수 있다. 트래픽 정보(140)에 기초하여, 레이턴시 모듈(208)은 컴퓨팅 시스템(100)이 작업 할당(160)을 분배하는 것으로부터 기대할 수 있는 현재의 트래픽 레이턴시(154)를 판단할 수 있다. 레이턴시 모듈(208)은 트래픽 레이턴시(148)를 토탈 모듈(total module)(210)로 전달할 수 있다.
컴퓨팅 시스템(100)은 모니터 모듈(204), 액세스 모듈(206), 레이턴시 모듈(208), 또는 이들의 조합에 연결될 수 있는 토탈 모듈(210)을 포함할 수 있다. 토탈 모듈(210)은 도 1b의 총 액세스 타임(156)을 계산할 수 있다. 예를 들어, 토탈 모듈(210)은 장치 액세스 타임(146), 트래픽 레이턴시(148), 트래픽 정보(140), 또는 이들의 조합에 기초하여 총 액세스 타임(156)을 계산할 수 있다.
좀 더 상세한 예로써, 토탈 모듈(210)은 아래의 식과 같은 총 액세스 타임(156)을 계산할 수 있다.
모니터 블록(138)은 토탈 모듈(210)을 실행할 수 있다. 토탈 모듈(210)은 총 액세스 타임(156)을 스케줄러 모듈(212)로 전송할 수 있다.
컴퓨팅 시스템(100)은 토탈 모듈(210)과 연결될 수 있는 스케줄러 모듈(212)을 포함할 수 있다. 스케줄러 모듈(212)은 작업 할당(160)을 분배할 수 있다. 예를 들어, 스케줄러 모듈(212)은 총 액세스 타임(156), 스토리지 타입(104), 타깃 위치(130), 장치 성능 기준(122), 데이터 위치(134), 또는 이들의 조합에 기초하여 작업 할당(160)을 분배할 수 있다. 스케줄러 블록(158)은 스케줄러 모듈(212)을 실행할 수 있다.
스케줄러 모듈(212)은 다양한 방법으로 작업 할당(160)을 분배할 수 있다. 예를 들어, 스케줄러 모듈(212)은 타깃 위치(130)에 기초하여 작업 할당(160)을 분배할 수 있다. 좀 더 상세한 예로써, 스케줄러 모듈(212)은 컴퓨팅 블록(106)으로부터 떨어진 타깃 위치(130)를 갖는 타깃 장치(126)로부터 컴퓨팅 블록(106)에 인접한 타깃 위치(130)를 갖는 타깃 장치(126)에 이르기까지 작업 할당(160)의 분배의 우선 순위를 매길 수 있다.
다른 예로써, 스케줄러 모듈(212)은 스토리지 타입(104), 타깃 위치(130), 또는 이들의 조합에 기초하여 작업 할당(160)을 분배할 수 있다. 좀 더 상세한 예로써, 스케줄러 모듈(212)은 저성능 장치(116)로부터 고성능 장치(114)를 나타내는 타깃 장치(126)에 이르기까지 작업 할당(160)의 분배에 우선 순위를 매길 수 있다. 예를 들어, 스케줄러 모듈(212)은 컴퓨팅 블록(106)으로부터 떨어진 고성능 장치(114)로부터 컴퓨팅 블록(106)에 인접한 고성능 장치(114)에 이르기까지 작업 할당(160)의 분배에 우선 순위를 매길 수 있다. 다른 예로써, 스케줄러 모듈(212)은 컴퓨팅 블록(106)에 인접한 저성능 장치(106)로부터 컴퓨팅 블록(106)과 떨어진 고성능 장치(114)에 이르기까지 작업 할당(160)의 분배에 우선 순위를 매길 수 있다.
다른 예로써, 스케줄러 모듈(212)은 장치 성능 기준(122)에 기초하여 작업 할당(160)을 분배할 수 있다. 좀 더 상세한 예로써, 스케줄러 모듈(212)은 더 높은 값의 장치 성능 기준(122)을 갖는 타깃 장치(126)에 대한 작업 할당(160)의 분배에 우선 순위를 매길 수 있다. 예를 들어, 스케줄러 모듈(212)은 더 높은 처리 용량, 스루풋 레벨(throughput level), 스토리지 용량, 낮은 레이턴시, 또는 이들의 조합을 갖는 타깃 장치(126)로의 작업 할당(160)의 분배에 우선 순위를 매길 수 있다.
장치 성능 지수(122), 스토리지 타입(104), 또는 이들의 조합에 기초하여 작업 할당(160)을 분배하는 컴퓨팅 시스템(100)이 타깃 장치(126)를 효율적으로 액세스하는 것이 소개되었다. 장치 성능 기준(122), 스토리지 타입(104), 또는 이들의 조합을 요소화(foctor)함으로써, 컴퓨팅 시스템(100)은 가장 빠른 턴어라운드(turnaround)를 갖는 데이터 콘텐츠(102)를 제공할 수 있는 타깃 장치(126)를 선택할 수 있다. 그 결과, 컴퓨팅 시스템(100)은 컴퓨팅 시스템(100)을 좀 더 효율적으로 동작시키기 위한 리소스를 재할당할 수 있다.
다른 예로써, 스케줄러 모듈(212)은 총 액세스 타임(156)에 기초하여 작업 할당(160)을 분배할 수 있다. 좀 더 상세한 예로써, 스케줄러 모듈(212)은 타깃 장치(126)를 액세스하기 위한 가장 짧은 시간을 갖는 총 액세스 타임(156)에 기초하여 작업 할당(160)을 분배할 수 있다. 앞서 설명된 바와 같이, 복수의 타깃 장치(126)는 작업 할당(160)을 분배하기 위해 액세스 될 수 있다. 그리고 타깃 장치(126)에 액세스하기 위한 총 액세스 타임은 실시 예에 따라 서로 다를 수 있다. 스케줄러 모듈(212)은 가장 짧은 총 액세스 타임(156)을 갖는 타깃 장치(126)에 작업 할당(160)을 분배할 수 있다.
총 액세스 타임(156)에 기초하여 작업 할당(160)을 분배하는 컴퓨팅 시스템(100)이 타깃 장치(126)를 효율적으로 액세스하는 것을 향상시키는 것이 소개되었다. 총 액세스 타임(156)을 요소화(foctor)함으로써, 컴퓨팅 시스템(100)은 가장 빠른 턴어라운드(turnaround)를 갖는 데이터 콘텐츠(102)를 제공할 수 있는 타깃 장치(126)를 선택할 수 있다. 그 결과, 컴퓨팅 시스템(100)은 컴퓨팅 시스템(100)을 좀 더 효율적으로 동작시키기 위한 리소스를 재할당할 수 있다.
다른 예로써, 스케줄러 모듈(212)은 타깃 장치(126)의 전력 소모를 나타내는 장치 성능 지수(122)에 기초하여 작업 할당(160)을 분배할 수 있다. 전력 소모는 와트 당 성능(performance per watt)에 기초하여 측정될 수 있다. 좀 더 상세한 예로써, 스케줄러 모듈(212)은 작업 할당(160)을 실행하기 위한 리소스를 보존하기 위해 최소한의 전력 소모량을 필요로 하는 타깃 장치(126)에 작업 할당(160)을 분배할 수 있다. 스케줄러 모듈(212)은 작업 할당(160)을 실행 모듈(214)로 전달할 수 있다.
컴퓨팅 시스템(100)은 스케줄러 모듈(212)에 연결될 수 있는 실행 모듈(214)을 포함할 수 있다. 실행 모듈(214)은 커맨드를 실행할 수 있다. 예를 들어, 실행 모듈(214)은 작업 할당(160)이 어떻게 분배되는지에 기초하여 읽기 커맨드(136)를 실행할 수 있다. 타깃 장치(126)는 실행 모듈(214)을 실행할 수 있다. 좀 더 상세한 예로써, 실행 모듈(214)은 분배된 작업 할당을 갖는 타깃 장치(126)로부터 데이터 콘텐츠(102)를 읽기 위해 읽기 커맨드(136)를 실행할 수 있다.
도 3을 참조하면, 본 발명의 실시 예를 갖춘 컴퓨팅 시스템(100)의 적용 예가 예시적으로 도시되었다. 도 4는, 컴퓨터 서버, 자동차의 대쉬 보드(dash board), 스마트폰, 모바일 장치, 그리고 노트북 컴퓨터와 같은, 컴퓨팅 시스템(100)을 위한 다양한 실시 예를 보여준다.
적용 예들은 도 1a의 데이터 콘텐츠(102)를 액세스하기 위한 향상된 효율성을 제공하기 위해 본 발명의 다양한 실시 예들을 보여준다. 컴퓨팅 시스템(100)은 도 1b의 총 액세스 타임(156)의 가장 짧은 예, 도 1a의 장치 성능 기준(122)에 대한 가장 높은 성능, 또는 이들의 조합을 제공하는 도 1a의 타깃 장치(126)로부터의 데이터 콘텐츠(102)를 액세스할 수 있다.
컴퓨터 서버, 자동차의 대쉬 보드(dash board), 스마트폰, 모바일 장치, 그리고 노트북 컴퓨터와 같은 컴퓨팅 시스템(100)은, 본 발명의 다양한 실시 예를 갖는 인쇄 회로 기판 또는 본 발명의 다양한 실시 예를 갖는 전자 조립(electronic assembly)과 같은, 하나 또는 그 이상의 서브 시스템(미도시)을 포함할 수 있다. 컴퓨팅 시스템(100)은 어댑터 카드로 구현될 수 있다.
도 4를 참조하면, 본 발명의 실시 예에 따라 컴퓨팅 시스템(100)을 동작시키는 방법(400)의 순서도가 도시되었다. 방법(400)은 장치 액세스 타임, 트래픽 레이턴시, 트래픽 정보, 또는 이들의 조합에 기초하여 총 액세스 타임을 계산하는 단계(블록 402); 네임 노드 블록을 갖는 데이터 콘텐츠의 데이터 위치를 판단하는 단계(블록 404); 그리고 타깃 장치로부터의 데이터 콘텐츠를 액세스하기 위해 총 액세스 타임, 데이터 위치, 장치 성능 기준, 또는 이들의 조합에 기초하여 작업 할당을 분배하는 단계(블록 406)를 포함할 수 있다.
블록 406은 더 낮은 값의 장치 성능 기준을 갖는 타깃 장치에 걸쳐 더 높은 값의 장치 성능 기준을 갖는 타깃 장치에 이르기까지 작업 할당의 우선 순위를 매기기 위한 장치 성능 기준에 기초하여 작업 할당을 분배하는 단계; 컴퓨팅 블록과 떨어진 타깃 위치에 걸쳐 컴퓨팅 블록과 인접한 타깃 위치에 이르기까지 타깃 할당을 분배하기 위한 타깃 위치에 기초하여 작업 할당을 분배하는 단계; 저성능 장치에 걸쳐 고성능 장치에 이르기까지 작업 할당에 우선 순위를 매기기 위한 스토리지 타입에 기초하여 작업 할당을 분배하는 단계; 그리고 컴퓨팅 블록에 인접한 저성능 장치에 걸쳐 컴퓨팅 블록과 떨어진 고성능 장치에 이르기까지 작업 할당에 우선 순위를 매기기 위한 스토리지 타입에 기초하여 작업 할당을 분배하는 단계를 포함할 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
100: 컴퓨팅 시스템
102: 데이터 콘텐츠
104: 스토리지 타입
106: 컴퓨팅 블록
108: 클라이언트 블록
110: 데이터 노드
112: 스토리지 유닛
114: 고성능 장치
116: 저성능 장치
118: 솔리드 스테이트 드라이브
120: 하드 디스크 드라이브
122: 장치 성능 기준
124: 네임 노드 블록
126: 타깃 장치
128: 타깃 카운트
130: 타깃 위치
132: 잡 트래커 블록
134: 데이터 위치
136: 읽기 커맨드
138: 모니터 블록
140: 트래픽 정보
142: 타깃 액세스
144: 핵심적인 특징
146: 장치 액세스 타임
148: 트래픽 레이턴시
150: 네트워크 사양
102: 데이터 콘텐츠
104: 스토리지 타입
106: 컴퓨팅 블록
108: 클라이언트 블록
110: 데이터 노드
112: 스토리지 유닛
114: 고성능 장치
116: 저성능 장치
118: 솔리드 스테이트 드라이브
120: 하드 디스크 드라이브
122: 장치 성능 기준
124: 네임 노드 블록
126: 타깃 장치
128: 타깃 카운트
130: 타깃 위치
132: 잡 트래커 블록
134: 데이터 위치
136: 읽기 커맨드
138: 모니터 블록
140: 트래픽 정보
142: 타깃 액세스
144: 핵심적인 특징
146: 장치 액세스 타임
148: 트래픽 레이턴시
150: 네트워크 사양
Claims (10)
- 장치 액세스 타임, 트래픽 레이턴시, 트래픽 정보 중 적어도 하나 이상에 기초하여 총 액세스 타임을 계산하도록 구성되는 모니터 블록;
상기 모니터 블록에 연결되고, 데이터 콘텐츠의 데이터 위치를 판단하도록 구성되는 네임 노드 블록; 그리고
상기 네임 노드 블록에 연결되고, 타깃 장치로부터 상기 데이터 콘텐츠를 액세스하기 위해, 상기 총 액세스 타임, 상기 데이터 위치, 장치 성능 기준 중 적어도 하나 이상에 기초하여 작업 할당을 분배하도록 구성되는 스케줄러 블록을 포함하는 컴퓨팅 시스템. - 제 1 항에 있어서,
상기 스케줄러 블록은 더 낮은 값의 상기 장치 성능 기준을 갖는 상기 타깃 장치로부터 더 높은 값의 상기 장치 성능 기준을 갖는 상기 타깃 장치에 이르기까지 상기 작업 할당에 우선 순위를 부여하기 위해 상기 장치 성능 기준에 기초하여 상기 작업 할당을 분배하도록 구성되는 컴퓨팅 시스템. - 제 1 항에 있어서,
상기 스케줄러 블록은 컴퓨팅 블록으로부터 떨어진 타깃 위치에 걸쳐 상기 컴퓨팅 블록에 인접한 상기 타깃 위치에 기초하여 상기 작업 할당을 분배하도록 구성되는 컴퓨팅 시스템. - 제 1 항에 있어서,
상기 스케줄러 블록은 저성능 장치에 걸쳐 고성능 장치에 이르기까지 상기 작업 할당에 우선 순위를 매기기 위해 스토리지 타입에 기초하여 상기 작업 할당을 분배하도록 구성되는 컴퓨팅 시스템. - 제 1 항에 있어서,
상기 스케줄러 블록은 상기 컴퓨팅 블록에 인접한 저성능 장치로부터 상기 컴퓨팅 블록과 떨어진 고성능 장치에 이르기까지 상기 작업 할당에 우선 순위를 매기기 위해 스토리지 타입에 기초하여 상기 작업 할당을 분배하도록 구성되는 컴퓨팅 시스템. - 제 1 항에 있어서,
상기 모니터 블록은 상기 타깃 장치로부터의 상기 데이터 콘텐츠를 액세스하기 위해 할당된 상기 작업 할당에 기초하여 상기 트래픽 정보를 판단하도록 구성되는 컴퓨팅 시스템. - 제 1 항에 있어서,
상기 모니터 블록은 상기 타깃 장치 각각에 대한 복수의 타깃 액세스에 기초하여 상기 트래픽 정보를 판단도록 구성되는 컴퓨팅 시스템. - 컴퓨팅 시스템의 동작 방법에 있어서:
장치 액세스 타임, 트래픽 레이턴시, 트래픽 정보 중 적어도 하나 이상에 기초하여 총 액세스 타임을 계산하는 단계;
네임 노드 블록을 가지고 데이터 콘텐츠의 데이터 위치를 판단하는 단계; 그리고
타깃 장치로부터의 상기 데이터 콘텐츠를 액세스하기 위해 상기 총 액세스 타임, 상기 데이터 위치, 장치 성능 기준 중 적어도 하나 이상에 기초하여 작업 할당을 분배하는 단계를 포함하는 방법. - 제 8 항에 있어서,
상기 작업 할당을 분배하는 단계는 더 낮은 값의 상기 장치 성능 기준을 갖는 상기 타깃 장치로부터 더 높은 값의 상기 장치 성능 기준을 갖는 상기 타깃 장치에 이르기까지 상기 작업 할당에 우선 순위를 부여하기 위해 상기 장치 성능 기준에 기초하여 상기 작업 할당을 분배하는 단계를 포함하는 방법. - 제 9 항에 있어서,
상기 작업 할당을 분배하는 단계는, 컴퓨팅 블록과 떨어진 타깃 위치로부터 상기 컴퓨팅 블록과 인접한 타깃 위치에 이르기까지 타깃 할당을 분배하기 위해 상기 타깃 위치에 기초하여 상기 작업 할당을 분배하는 단계를 포함하는 방법.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462083815P | 2014-11-24 | 2014-11-24 | |
US62/083,815 | 2014-11-24 | ||
US14/695,747 | 2015-04-24 | ||
US14/695,747 US20160147573A1 (en) | 2014-11-24 | 2015-04-24 | Computing system with heterogeneous storage and process mechanism and method of operation thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20160061863A true KR20160061863A (ko) | 2016-06-01 |
Family
ID=56010296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150107301A KR20160061863A (ko) | 2014-11-24 | 2015-07-29 | 이기종 스토리지 및 처리 메커니즘을 갖는 컴퓨팅 시스템 및 그것의 동작 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20160147573A1 (ko) |
KR (1) | KR20160061863A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10852977B2 (en) | 2018-05-23 | 2020-12-01 | University-Industry Cooperation Group Of Kyung-Hee University | System for providing virtual data storage medium and method of providing data using the same |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10619223B2 (en) | 2016-04-28 | 2020-04-14 | GM Global Technology Operations LLC | Zinc-coated hot formed steel component with tailored property |
CN106991002B (zh) * | 2017-02-08 | 2021-01-29 | 阿里巴巴(中国)有限公司 | 用于实现任务调度管理的方法及设备 |
CN107122234A (zh) * | 2017-03-30 | 2017-09-01 | 武汉斗鱼网络科技有限公司 | 一种服务器***、执行任务的方法和服务器 |
CN107273200B (zh) * | 2017-06-22 | 2020-03-17 | 中国科学院计算技术研究所 | 一种针对异构存储的任务调度方法 |
US11275608B1 (en) * | 2018-04-03 | 2022-03-15 | Amazon Technologies, Inc. | Scalable job transformation and management |
US11613789B2 (en) | 2018-05-24 | 2023-03-28 | GM Global Technology Operations LLC | Method for improving both strength and ductility of a press-hardening steel |
CN112534078A (zh) | 2018-06-19 | 2021-03-19 | 通用汽车环球科技运作有限责任公司 | 具有增强的机械性质的低密度压制硬化钢 |
CN109710391A (zh) * | 2018-12-20 | 2019-05-03 | 西安四叶草信息技术有限公司 | 任务调度方法及设备 |
CN110163250B (zh) * | 2019-04-10 | 2023-10-24 | 创新先进技术有限公司 | 基于分布式调度的图像脱敏处理***、方法以及装置 |
US11530469B2 (en) | 2019-07-02 | 2022-12-20 | GM Global Technology Operations LLC | Press hardened steel with surface layered homogenous oxide after hot forming |
CN113467700B (zh) * | 2020-03-31 | 2024-04-23 | 阿里巴巴集团控股有限公司 | 基于异构存储的数据分配方法以及装置 |
US11966789B2 (en) * | 2022-04-27 | 2024-04-23 | Uab 360 It | System and method for queuing node load for malware analysis |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8346917B2 (en) * | 2009-06-26 | 2013-01-01 | Netapp. Inc. | Unified enterprise level method and system for enhancing application and storage performance |
US9158458B2 (en) * | 2011-09-21 | 2015-10-13 | Os Nexus, Inc. | Global management of tiered storage resources |
US8943290B2 (en) * | 2012-03-27 | 2015-01-27 | Oracle International Corporation | Automatic management of heterogeneous memory resources |
US9110592B2 (en) * | 2013-02-04 | 2015-08-18 | Microsoft Technology Licensing, Llc | Dynamic allocation of heterogenous memory in a computing system |
WO2014147438A1 (en) * | 2013-03-19 | 2014-09-25 | Emc Corporation | Managing provisioning of storage resources |
US9935791B2 (en) * | 2013-05-20 | 2018-04-03 | Cisco Technology, Inc. | Method and system for name resolution across heterogeneous architectures |
US9424274B2 (en) * | 2013-06-03 | 2016-08-23 | Zettaset, Inc. | Management of intermediate data spills during the shuffle phase of a map-reduce job |
US10282100B2 (en) * | 2014-08-19 | 2019-05-07 | Samsung Electronics Co., Ltd. | Data management scheme in virtualized hyperscale environments |
-
2015
- 2015-04-24 US US14/695,747 patent/US20160147573A1/en not_active Abandoned
- 2015-07-29 KR KR1020150107301A patent/KR20160061863A/ko unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10852977B2 (en) | 2018-05-23 | 2020-12-01 | University-Industry Cooperation Group Of Kyung-Hee University | System for providing virtual data storage medium and method of providing data using the same |
Also Published As
Publication number | Publication date |
---|---|
US20160147573A1 (en) | 2016-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20160061863A (ko) | 이기종 스토리지 및 처리 메커니즘을 갖는 컴퓨팅 시스템 및 그것의 동작 방법 | |
US10866910B2 (en) | Systems, methods, and computer-readable media for managing instruction fetch in virtual computing environments | |
US8291430B2 (en) | Optimizing system performance using spare cores in a virtualized environment | |
EP2616936B1 (en) | Dynamic creation and destruction of io resources based on actual load and resource availability | |
JP5680619B2 (ja) | 優先度ベースのシステム負荷レベルを管理するためのシステムおよび方法 | |
US9852008B2 (en) | Computer-readable recording medium storing execution information notification program, information processing apparatus, and information processing system | |
JP5762146B2 (ja) | コンピュータ・ベース・システムにおける資源割当てる方法および装置 | |
US20180039523A1 (en) | Information processing system that determines a memory to store program data for a task carried out by a processing core | |
JP5063069B2 (ja) | マルチノードコンピュータのメモリ割当て方法、装置、およびプログラム | |
US9720600B2 (en) | Apparatus and method for transferring data between storages having different access speeds | |
US9727379B1 (en) | Specifying behavior among a group of computing tasks | |
CN106598724B (zh) | 用于在计算***中管理内存的方法 | |
US11914894B2 (en) | Using scheduling tags in host compute commands to manage host compute task execution by a storage device in a storage system | |
US11429518B2 (en) | Paging in thin-provisioned disaggregated memory | |
US9917790B2 (en) | Storage device access mediation | |
US9317306B2 (en) | Computer device and memory management method thereof | |
CN111078587B (zh) | 内存分配方法、装置、存储介质及电子设备 | |
EP2703993A2 (en) | Information processing apparatus, computer program, and copy control method | |
US20130179890A1 (en) | Logical device distribution in a storage system | |
JP4872942B2 (ja) | ストレージシステム、ストレージ装置、優先度制御装置および優先度制御方法 | |
US11972148B2 (en) | Proactive storage operation management using thermal states | |
JP2006277530A (ja) | 割当システム、割当装置、割当方法及びそのプログラム | |
US20120059988A1 (en) | Storage apparatus and data access method | |
CN114760327B (zh) | 云盘资源配置的调整方法及装置 | |
CN117421129B (zh) | 一种基于异构存储集群的业务执行方法、装置及电子设备 |