KR101435499B1 - 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법 - Google Patents
가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법 Download PDFInfo
- Publication number
- KR101435499B1 KR101435499B1 KR1020120122305A KR20120122305A KR101435499B1 KR 101435499 B1 KR101435499 B1 KR 101435499B1 KR 1020120122305 A KR1020120122305 A KR 1020120122305A KR 20120122305 A KR20120122305 A KR 20120122305A KR 101435499 B1 KR101435499 B1 KR 101435499B1
- Authority
- KR
- South Korea
- Prior art keywords
- block device
- virtual machine
- mapper
- reducer
- device file
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000013461 design Methods 0.000 title abstract description 11
- 239000003638 chemical reducing agent Substances 0.000 claims abstract description 80
- 230000006870 function Effects 0.000 claims description 65
- 238000013507 mapping Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 7
- 238000012546 transfer Methods 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 230000001186 cumulative effect Effects 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 241000208140 Acer Species 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 230000010076 replication 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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- 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
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- 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
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- 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
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- 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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법에 관한 것으로, 보다 구체적으로는 매퍼 가상머신에 의해 구동되는 매퍼함수의 출력값을 포함하는 블록 장치 파일을 상기 매퍼 가상머신으로부터 분리하여 리듀서 가상머신에 부착하는 것을 특징으로 하는 가상 클라우드 환경 내 맵리듀스 클러스터를 포함한다.
이러한 구성에 의해, 본 발명의 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법은 매퍼 함수의 출력값을 포함하는 블록 장치 파일을 매퍼 가상머신으로부터 분리하여 리듀스 함수의 입력으로 사용되도록 리듀스 가상머신에 부착함으로써, 리듀서가 네트워크를 이용하여 매퍼함수의 출력값에 접근할 필요가 없어지게 되어, 네트워크의 부하를 감소시킬 수 있는 효과가 있다.
이러한 구성에 의해, 본 발명의 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법은 매퍼 함수의 출력값을 포함하는 블록 장치 파일을 매퍼 가상머신으로부터 분리하여 리듀스 함수의 입력으로 사용되도록 리듀스 가상머신에 부착함으로써, 리듀서가 네트워크를 이용하여 매퍼함수의 출력값에 접근할 필요가 없어지게 되어, 네트워크의 부하를 감소시킬 수 있는 효과가 있다.
Description
본 발명은 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법에 관한 것으로, 특히 대용량 데이터 처리를 위한 맵리듀스 수행 시, 발생되는 네트워크 트래픽 양의 발생을 감소시켜 데이터 처리속도를 향상시킬 수 있는 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법에 관한 것이다.
급속도로 증가하는 데이터량으로 인하여, 데이터 병렬 또는 분산 처리를 위한 클러스터 컴퓨팅이 널리 사용되고 있으며, 이러한 클러스터 컴퓨팅 시스템은 다수의 물리 머신을 연결하여 이용하고 있다.
최근에는, 가상머신 기반의 클라우드 서비스들이 출현함에 따라, 기존의 클러스터 시스템들이 점차 클라우드 상으로 이동하고 있다.
이처럼, 클라우드 상에서 동작하는 클러스터 시스템은 관리의 유용성, 신뢰성, 가용성, 그리고 클러스터 구성의 용이성 등의 장점을 갖는다. 하지만 이러한 클라우드 기반의 클러스터 시스템이 많이 이용되면서 분산 파일 시스템이나 통신 프로토콜과 같은 클러스터 시스템의 기반 기술들에 있어서, 병목현상이 발생하는 문제점이 발생했다.
상술한 바와 같이, 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법을 살펴보면 다음과 같다.
선행기술 1은 한국등록특허공보 제10-0980599호(2010.09.01)로서, 입출력 공유장치를 이용한 클라우드 서비스 시스템에 관한 것이다. 이러한 선행기술 1은 인터넷에 연결되어 데이터 통신을 수행하는 네트워크 스위치 허브; 네트워크 스위치 허브를 통해 인터넷과 데이터 통신을 수행하는 호스트 네트워크 인터페이스 카드를 구비하며 입출력 공유 장치의 제어에 따라 다수의 가상머신을 실행시키며 실행되는 다수의 가상머신이 호스트 네트워크 인터페이스 카드를 통해 인터넷의 다수의 사용자 단말과 통신을 수행하는 복수의 호스트 컴퓨터; 적어도 하나의 가상머신 이미지를 저장하는 저장장치; 및 네트워크 스위치 허브를 통해 인터넷과 데이터 통신을 수행하는 공유 네트워크 인터페이스 카드를 구비하며 인터넷에 연결된 사용자 단말의 요청에 따라 저장장치 내의 적어도 하나의 가상머신 이미지 중 하나를 선택하여 복수의 호스트 컴퓨터 중 어느 하나에서 실행시키는 입출력 공유장치를 포함한다.
또한, 선행기술 2는 한국공개특허공보 제10-2012-0071979호(2012.07.03)로서, 클라우드 컴퓨팅 시스템의 자원관리장치 및 방법에 관한 것이다. 이러한 선행기술 2는 사용자로부터 사용할 컴퓨팅 자원의 사용시점 및 자원사용량을 포함하는 개인 스케줄링 정보를 입력받아, 입력받은 개인 스케줄링 정보를 기초로 사용자가 사용할 가상머신이 생성될 위치를 배정하고, 사용시점에 자원사용량만큼 컴퓨팅 자원을 사용할 수 있는 가상머신을 배정된 위치에 생성하여 사용자에게 제공함으로써, 사용자의 시간대별로 사용할 컴퓨팅 자원에 관한 개인 스케줄링 정보를 고려하여, 컴퓨팅 자원의 할당 및 관리를 최적화할 수 있다.
상기와 같은 종래 기술의 문제점을 해결하기 위해, 본 발명은 대용량 데이터에 대한 맵리듀스 처리를 위해 발생하는 네트워크 트래픽의 양을 감소시켜 보다 빠른 데이터 분산 처리를 수행하도록 하는 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법을 제공하고자 한다.
위와 같은 과제를 해결하기 위한 본 발명의 한 실시 예에 따른 가상 클라우드 환경 내 맵리듀스 클러스터는 매퍼 가상머신에 의해 구동되는 맵 함수의 출력값을 포함하는 블록 장치 파일을 상기 매퍼 가상머신으로부터 분리하여 리듀서 가상머신에 부착하는 것을 특징으로 한다.
보다 바람직하게는 상기 블록 장치 파일을 송수신하여 가상머신으로 전송하는 드라이버 도메인; 상기 블록 장치 파일에 대하여 임의의 키값을 읽어 이를 필터링하거나, 다른값으로 변환하는 맵 함수를 수행하는 매퍼 가상머신; 상기 키값을 기준으로 하여, 상기 블록 장치 파일을 정렬하고 병합하는 리듀스 함수를 수행하는 리듀서 가상머신;을 포함하며, 상기 드라이버 도메인은 상기 맵 함수의 출력단으로부터 블록 장치 파일을 분리한 후, 분리한 상기 블록 장치 파일을 상기 리듀스 함수의 입력단에 부착하는 블록 장치 재구성 모듈;을 포함하는 맵리듀스 클러스터를 포함할 수 있다.
특히, 상기 맵리듀스 클러스터가 하나의 노드에서 구성되었을 때, 블록 장치 파일의 재구성이 수행될 수 있다.
보다 바람직하게는 상기 블록 장치 파일에 대하여 임의의 키값을 읽어 이를 필터링 또는 다른값으로 변환하는 맵 함수를 수행하는 매퍼 가상머신; 상기 맵 함수의 출력값을 포함하는 블록 장치 파일을 입력받아 출력하는 매퍼 가상머신용 드라이버 도메인; 상기 가상머신용 드라이버 도메인으로부터 출력된 블록 장치 파일을 입력받아 리듀서 가상머신으로 전송하는 리듀서 가상머신용 드라이버 도메인; 및 상기 블록 장치 파일을 수신하여 키값을 기준으로 상기 블록 장치 파일을 정렬하고 병합하는 리듀스 함수를 수행하는 리듀서 가상머신;을 포함하는 맵리듀스 클러스터를 포함할 수 있다.
보다 바람직하게는 상기 블록 장치 파일을 마운트하고, 마운트된 위치의 컨텐츠를 상기 리듀서 가상머신용 드라이버 도메인으로 전송하는 제1 블록 장치 재구성 모듈; 을 더 포함하는 매퍼 가상머신용 드라이버 도메인을 포함할 수 있다.
특히, 마운트된 블록 장치 파일을 분리하는 리듀서 가상머신용 드라이버 도메인을 포함할 수 있다.
보다 바람직하게는 분리한 블록 장치 파일을 상기 리듀서 가상머신에 부착하는 제2 블록 장치 재구성 모듈;을 더 포함하는 리듀서 가상머신용 드라이버 도메인을 포함할 수 있다.
특히, 상기 맵리듀스 클러스터가 다수의 노드에 걸쳐 구성되었을 때의 블록 장치 파일의 재구성이 수행되는 것을 특징으로 한다.
위와 같은 과제를 해결하기 위한 본 발명의 다른 실시 예에 따른 가상 클라우드 환경 내 맵리듀스 클러스터 설계방법은 매퍼 가상머신 내 매퍼가 마운트 포인팅 지점에 부착된 블록 장치를 마운트하는 단계; 상기 매퍼가 맵 태스크를 수행하고, 상기 마운트된 위치에서 상기 맵 함수의 출력을 생성하는 단계; 상기 맵 태스크의 수행이 완료되면, 상기 매퍼는 상기 맵 함수의 출력이 생성된 위치에서 마운트를 해제하는 단계; 상기 드라이버 도메인 내 위치하는 블록 장치 재구성모듈이 상기 매퍼 가상머신으로부터 블록 장치 파일을 분리하는 단계; 상기 블록 장치 재구성 모듈이 분리한 상기 블록 장치 파일을 리듀스 가상머신에 부착하는 단계; 상기 리듀서 가상머신 내 리듀서는 상기 블록 장치 파일을 리듀스 함수의 입력위치로 마운트하는 단계; 상기 리듀서가 모든 맵 함수의 출력을 받고, 리듀서 함수를 수행하는 단계;를 포함하는 것을 특징으로 한다.
보다 바람직하게는 상기 리듀서가 상기 매퍼 가상머신의 모든 블록 장치 파일들이 마운트될 때까지 기다리는 것을 더 포함하는 리듀서가 상기 블록 장치 파일을 리듀스 함수의 입력위치로 마운트하는 단계를 포함할 수 있다.
위와 같은 과제를 해결하기 위한 본 발명의 다른 실시 예에 따른 가상 클라우드 환경 내 맵리듀스 클러스터 설계방법은 매퍼 가상머신 내 매퍼가 마운트 포인팅 지점에 부착된 블록 장치를 마운트하는 단계; 상기 매퍼가 맵 태스크를 수행하고, 상기 마운트된 위치에서 상기 맵 함수의 출력을 생성하는 단계; 상기 맵 태스크의 수행이 완료되면, 상기 매퍼는 상기 맵 함수의 출력이 생성된 위치에서 마운트를 해제하는 단계; 상기 드라이버 도메인 내 위치하는 블록 장치 재구성 모듈이 상기 매퍼 가상머신으로부터 블록 장치 파일을 분리하는 단계; 상기 매퍼 가상머신은 분리된 블록 장치 파일을 마운트하는 단계; 상기 블록 장치 재구성 모듈이 상기 블록 장치 파일이 마운트된 위치의 컨텐츠를 상기 리듀서 가상머신의 부분 드라이버 도메인으로 전송하는 단계; 상기 리듀서 가상머신의 부분 드라이버 도메인이 마운트된 블록 장치 파일을 분리하는 단계; 상기 블록 장치 재구성 모듈이 상기 리듀서 가상머신의 입력단에 블록 장치 파일을 부착하는 단계; 상기 리듀서 가상머신 내 리듀서는 상기 블록 장치 파일을 리듀스 함수의 입력위치로 마운트하는 단계; 및 상기 리듀서가 모든 맵 함수의 출력을 받고, 리듀서 함수를 수행하는 단계;를 포함하는 것을 특징으로 한다.
본 발명의 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법은 맵 함수의 출력값을 포함하는 블록 장치 파일을 매퍼 가상머신으로부터 분리하여 리듀스 함수로 입력되도록 리듀스 가상머신에 부착함으로써, 리듀서가 네트워크 전송을 통해 맵 함수의 출력값에 접근할 필요가 없어지게 되어, 네트워크의 부하를 감소시킬 수 있는 효과가 있다.
또한 본 발명의 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법은 가상머신들간에 자원 경쟁으로 인해, 데이터 복제 시, 성능 병목현상이 발생하는 것을 미연에 방지할 수 있는 효과가 있다.
도 1은 맵리듀스 프레임워크를 나타낸 도면이다.
도 2는 일반적인 가상머신 기반의 클라우드 노드를 나타낸 도면이다.
도 3은 본 발명의 일 실시 예에 따른 하나의 노드에서 구성된 클러스터에 대한 구조를 나타낸 도면이다.
도 4는 본 발명의 다른 실시 예에 따른 다수의 노드에 걸쳐 구성된 클러스터에 대한 구조를 나타낸 도면이다.
도 5는 블록 장치 재구성 모듈이 없는 경우의 단어 계수 맵리듀스의 실행시간을 나타낸 그래프이다.
도 6은 블록 장치 재구성 모듈이 있는 경우의 단어 계수 맵리듀스의 실행시간을 나타낸 그래프이다.
도 7은 두 개의 물리노드를 교차하는 가상머신간 데이터 전송시간을 나타낸 그래프이다.
도 8은 리듀서 가상머신이 탑재된 노드의 가상머신들의 CPU 활용도를 나타낸 누적 그래프이다.
도 9는 리듀서 가상머신이 탑재되지 않은 노드의 가상머신들의 CPU 활용도를 나타낸 누적 그래프이다.
도 10은 리듀서 가상머신이 탑재된 노드의 가상머신들의 디스크 입출력 지연대기시간을 나타낸 누적 그래프이다.
도 11은 리듀서 가상머신이 탑재되지 않은 노드의 가상머신들의 디스크 입출력 지연대기시간을 나타낸 누적 그래프이다.
도 2는 일반적인 가상머신 기반의 클라우드 노드를 나타낸 도면이다.
도 3은 본 발명의 일 실시 예에 따른 하나의 노드에서 구성된 클러스터에 대한 구조를 나타낸 도면이다.
도 4는 본 발명의 다른 실시 예에 따른 다수의 노드에 걸쳐 구성된 클러스터에 대한 구조를 나타낸 도면이다.
도 5는 블록 장치 재구성 모듈이 없는 경우의 단어 계수 맵리듀스의 실행시간을 나타낸 그래프이다.
도 6은 블록 장치 재구성 모듈이 있는 경우의 단어 계수 맵리듀스의 실행시간을 나타낸 그래프이다.
도 7은 두 개의 물리노드를 교차하는 가상머신간 데이터 전송시간을 나타낸 그래프이다.
도 8은 리듀서 가상머신이 탑재된 노드의 가상머신들의 CPU 활용도를 나타낸 누적 그래프이다.
도 9는 리듀서 가상머신이 탑재되지 않은 노드의 가상머신들의 CPU 활용도를 나타낸 누적 그래프이다.
도 10은 리듀서 가상머신이 탑재된 노드의 가상머신들의 디스크 입출력 지연대기시간을 나타낸 누적 그래프이다.
도 11은 리듀서 가상머신이 탑재되지 않은 노드의 가상머신들의 디스크 입출력 지연대기시간을 나타낸 누적 그래프이다.
이하, 본 발명을 바람직한 실시 예와 첨부한 도면을 참고로 하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 여기에서 설명하는 실시 예에 한정되는 것은 아니다.
먼저, 본 발명에 대해 설명하기에 앞서, 대용량 데이터의 분산 또는 병렬 처리를 수행하기 위해 사용되는 맵리듀스(MapReduce) 알고리즘에 대하여 자세히 살펴보도록 한다.
상기 맵리듀스(MapReduce)알고리즘은 구글(Google)이 공개한 기술로서, 저가의 컴퓨터로 구성된 클러스터 환경에서 페타바이트 이상의 대용량 데이터를 병렬로 처리하기 위한 분산 프로그래밍 모델을 나타낸다. 이에 따라, 맵리듀스의 오픈소스 구현체인 하둡(Hadoop)을 중심으로 아마존, 링크드인, 페이스북과 같은 대용량 데이터를 다루는 서비스에서 맵리듀스 모델을 채용하고 있으며 대용량 데이터를 처리하는 많은 시스템에서 주목을 받고 있다.
도 1은 맵리듀스 프레임워크를 나타낸 도면이다.
도 1에 도시된 바와 같이, 맵리듀스 수행 시 파일 시스템은 큰 파일을 블록 단위로 분할하여 맵(Map) 함수를 수행하는 매퍼(Mapper) 태스크들에 할당한다. 맵 함수는 임의의 키-값 상을 읽어 이를 필터링하거나 다른 값으로 변환하는 작업을 수행한다. 맵 함수의 수행 결과는 매퍼가 수행된 노드의 로컬 디스크에 기록되며 모든 매퍼가 작업을 종료하면 맵리듀스의 스케쥴러가 리듀서(Reducer) 태스크를 수행한다. 리듀서는 여러 노드들로부터 키 값을 기준으로 각 리듀서가 처리해야 할 키-값 쌍을 이전 매퍼들의 로컬 디스크로부터 읽어온다. 이후 키(key) 값을 기준으로 정렬 연산을 수행하고 이렇게 정렬된 키-값 쌍 등을 동일 키 값을 기준으로 병합 연산을 수행하여 그 결과를 출력한다.
도 2는 일반적인 가상머신 기반의 클라우드 노드를 나타낸 도면이다.
도 2에 도시된 바와 같이, 가상머신 기반의 클라우드 환경에서, 하나의 동일한 물리 노드 상에 가상머신이 네트워크를 통해 각각 통신할 때, 상기 가상머신은 드라이버 도메인을 교차하여 복사하도록 하고, 또한 다른 물리 노드와 교차하는 곳에 위치하는 가상머신들 간의 통신은 각 노드의 드라이버 도메인에 의해 중개되어 이루어진다. 이러한 중개과정의 수행 시, 입출력 가상화 오버헤드와, 가상머신들간에 입출력 간섭이 발생된다.
가상화된 클라우드에서의 맵리듀스 클러스터는 상기 가상머신들을 포함하여 수행하는데, 각 가상머신은 매퍼 가상머신 또는 리듀서 가상머신을 통해, 개별적인 맵 또는 리듀스 태스크를 수행한다.
이와 같이, 가상화된 클라우드 환경에서 맵리듀스 클러스터는 디바이스 드라이버의 입출력 중개와, 가상머신들 간에 자원 경쟁으로 인한 병목현상이 발생한다. 특히, 매퍼와 리듀서간 데이터 전달 시, 많은 양의 네트워크 트래픽이 발생하여 맵 리듀스 처리량을 감소시키게 된다.
도 3은 본 발명의 일 실시 예에 따른 하나의 노드에서 구성된 클러스터에 대한 구조를 나타낸 도면이다.
도 3에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 하나의 노드에서 구성된 클러스터는 드라이버 도메인(110), 매퍼 가상머신(120), 리듀서 가상머신(130)을 포함한다.
매퍼 가상머신(120)은 상기 블록 장치 파일에 대하여 임의의 키값을 읽어 이를 필터링하거나, 다른값으로 변환하는 맵 함수를 수행한다.
리듀서 가상머신(130)은 상기 키값을 기준으로 하여, 상기 블록 장치 파일을 정렬하고 병합하는 리듀스 함수를 수행한다.
드라이버 도메인(110)은 매퍼 가상머신의 상기 블록 장치 파일을 리듀서 가상머신으로 전달한다. 이러한 드라이버 도메인은 상기 맵 함수의 출력단으로부터 블록 장치 파일을 분리한 후, 분리한 상기 블록 장치 파일을 상기 리듀스 함수의 입력단에 부착하는 블록 장치 재구성 모듈(112)을 포함한다.
이러한 맵리듀스 클러스터의 구조를 설계하는 방법은 다음과 같다. 먼저, 매퍼 가상머신 내 매퍼가 마운트 포인팅 지점에 부착된 블록 장치를 마운트하고(1), 상기 매퍼가 맵 태스크를 수행하고, 상기 마운트된 위치에서 상기 맵 함수의 출력을 생성한다(2). 이후, 상기 맵 태스크의 수행이 완료되면, 상기 매퍼는 상기 맵 함수의 출력이 생성된 위치에서 마운트를 해제하고(3), 상기 드라이버 도메인 내 위치하는 블록 장치 재구성 모듈이 상기 매퍼 가상머신으로부터 블록 장치 파일을 분리한다(4). 이처럼, 상기 블록 장치 재구성 모듈이 분리한 상기 블록 장치 파일을 리듀스 가상머신에 부착한다(5).
이에 따라, 상기 리듀서 가상머신 내 리듀서는 상기 블록 장치 파일을 리듀스 함수의 입력위치로 마운트하고(6), 상기 리듀서가 모든 맵 함수의 출력을 받아, 리듀서 함수를 수행한다(7).
도 4는 본 발명의 다른 실시 예에 따른 다수의 노드에 걸쳐 구성된 클러스터에 대한 구조를 나타낸 도면이다.
도 4에 도시된 바와 같이, 본 발명에 따른 다수의 노드에 걸쳐 구성된 클러스터는 매퍼 가상머신(220), 매퍼 가상머신용 드라이버 도메인(210), 리듀서 가상머신용 드라이버 도메인(240) 및 리듀서 가상머신(250)을 포함한다.
매퍼 가상머신(220)은 블록 장치 파일에 대하여 임의의 키값을 읽어 이를 필터링 또는 다른값으로 변환하는 맵 함수를 수행한다.
매퍼 가상머신용 드라이버 도메인(210)은 상기 맵 함수의 출력값을 포함하는 블록 장치 파일을 입력받아 출력한다. 이러한 매퍼 가상머신용 드라이버 도메인(210)은 상기 블록 장치 파일을 마운트하고, 마운트된 위치의 컨텐츠를 상기 리듀서 가상머신용 드라이버 도메인으로 전송하는 제1 블록 장치 재구성 모듈(212)을 포함할 수 있다.
리듀서 가상머신용 드라이버 도메인(240)은 상기 매퍼 가상머신용 드라이버 도메인으로부터 출력된 블록 장치 파일을 입력받아 리듀서 가상머신으로 전송하며, 마운트된 블록 장치 파일을 마운트 해제한다. 이러한 리듀서 가상머신용 드라이버 도메인(240)은 마운트 해제한 블록 장치 파일을 상기 리듀서 가상머신에 부착하는 제2 블록 장치 재구성 모듈(242)을 포함할 수 있다.
리듀서 가상머신(250)은 상기 블록 장치 파일을 수신하여 키값을 기준으로 상기 블록 장치 파일을 정렬하고 병합한다.
이러한 다수의 노드에 걸쳐 구성된 클러스터를 설계하는 방법은 다음과 같다. 먼저, 매퍼 가상머신 내 매퍼가 마운트 포인팅 지점에 부착된 블록 장치를 마운트한다(1). 상기 매퍼가 맵 태스크를 수행하고, 상기 마운트된 위치에서 상기 맵 함수의 출력을 생성한다(2).
상기 맵 태스크의 수행이 완료되면, 상기 매퍼는 상기 맵 함수의 출력이 생성된 위치에서 마운트를 해제한다(3).
상기 드라이버 도메인 내 위치하는 블록 장치 재구성 모듈이 상기 매퍼 가상머신으로부터 블록 장치 파일을 분리한다(4).
상기 매퍼 가상머신은 분리된 블록 장치 파일을 마운트한다(5).
상기 블록 장치 재구성 모듈이 상기 블록 장치 파일이 마운트된 위치의 컨텐츠를 상기 리듀서 가상머신의 부분 드라이버 도메인으로 전송한다(6).
상기 리듀서 가상머신의 부분 드라이버 도메인이 마운트된 블록 장치 파일을 마운트 해제한다(7).
상기 블록 장치 재구성 모듈이 상기 리듀서 가상머신의 입력단에 블록 장치 파일을 부착한다(8).
상기 리듀서 가상머신 내 리듀서는 상기 블록 장치 파일을 리듀스 함수의 입력위치로 마운트한다(9).
상기 리듀서가 모든 맵 함수의 출력을 받아, 리듀서 함수를 수행한다(10).
이하에서는 본 발명에 따른 가상 클라우드 환경 내 맵리듀스 클러스터를 이용하여 데이터 분산 및 병렬 처리를 수행하는 실험에 대하여 자세히 살펴보도록 한다. 실험조건으로는 두 개의 물리 머신과 두 개의 intel xeon 2.3GHz 쿼드코어 프로세서 및 16GB 메모리를 사용하며, 이때 상기 물리 머신은 Ubuntu 11.10과 커널 3.0.0-12 및 Xen hypervisor 4.1.1에서 구동한다. 또한, 각각의 물리 머신은 7개의 가상머신을 포함하고, 각각의 가상머신은 1개의 VCPU와 1GB 메모리를 포함한다.
특히, 본 실험은 xen의 기본 관리 툴인 xm 툴을 사용하여, 블록 장치를 분리 및 부착하도록 한다.
또한, "윌리엄 셰익스피어 전집"을 테스트 데이터로서 사용하여, 약 300MB 테스트 데이터를 300회 복제하여 생성한다. 이때, 상기 데이터는 각 매퍼의 입력으로 사용된다. 예를 들어, 매퍼가 두 개와 세 개가 존재한다면, 전체 입력 데이터의 크기는 각각 600MB 및 900MB이다. 이때, 맵함수의 출력 크기는 약 400MB이고, 상기 400MB 데이터는 각 매퍼로부터 리듀서로 전송된다. 이러한 실험과정을 10번 반복수행하였고, 이후 실험결과의 평균을 연산하여 맵리듀스의 시행횟수에 대한 그래프를 작성하였다.
도 5는 블록 장치 재구성 모듈을 사용하지 않는 경우의 단어 계수 맵리듀스의 실행시간을 나타낸 그래프이고, 도 6은 본 발명에 따른 블록 장치 재구성 모듈을 사용하는 경우의 단어 계수 맵리듀스의 실행시간을 나타낸 그래프이다.
맵리듀스 클러스터가 하나의 물리노드의 가상머신에서 구동될 때, 상기 가상머신 중 하나의 가상머신이 리듀스 태스크를 수행하고, 다른 가상머신들이 맵 태스크를 수행한다.
도 5 내지 도 6에 도시된 바와 같이, 매퍼 가상머신의 수와 입력 데이터의 전체 크기가 증가할수록 데이터 전송 시간이 이에 비례하여 증가하는 것을 알 수 있다. 이에 따라, 매퍼 가상머신에서 네트워크 전송이 많아지거나, 데이터 전송을 위한 디스크 입출력이 시행될 때, 드라이버 도메인 상에서 입출력 간섭이 발생하는 것을 알 수 있다.
하지만 본 발명에 따라, 블록 장치 재구성을 사용하는 경우, 매퍼로부터 리듀서로의 맵 함수의 출력전송 소요시간이 급격하게 감소하는 것을 알 수 있다. 특히, 도 5와 비교하여 살펴보면, 매퍼의 수와 입력 데이터의 전체 크기가 증가할 때, 데이터 전송시간이 거의 일정하게 유지되는 것을 알 수 있다.
또한, 다수의 노드에 걸쳐 구성된 클러스터를 이용한 데이터 전송시간을 평가할 수 있다.
도 7은 두 개의 물리노드에서 구성된 클러스터의 가상머신간 데이터 전송시간을 나타낸 그래프이다.
데이터 전송결과를 평가하기 위해, 맵리듀스 클러스터가 다수의 물리노드 상에서 구성되어 구동할 때, 하나의 가상머신은 리듀스 태스크를 수행하고, 물리노드 각각에서 세 개의 가상머신은 맵 태스크를 수행하며, 나머지 가상머신들(이들을 D가상머신이라고 한다.)은 일반적인 맵 태스트와 유사한 디스크 입출력 구동을 수행한다. 이러한 D가상머신들은 맵리듀스 클러스터에 포함되지 않고, dbench를 수행한다. 이때, 상기 dbench는 디스크 입출력 벤치마크 툴이고, 디폴트 구성을 사용하였으며, 하나의 dbench 클라이언트를 이용하였다.
도 7에 도시된 바와 같이, 매퍼 가상머신의 제1 그룹은 리듀서 가상머신과 동일한 물리노드에 위치하고, 매퍼 가상머신의 제2 그룹은 다른 물리노드에서 구동된다. 따라서, 제2 그룹 내 가상머신들은 제1 그룹에서 블록 장치 파일들이 분리되고 부착되는 동안, 드라이버 도메인간에 네트워크를 통해 맵 함수의 출력이 전송된다.
이에 따라, 제1 및 제2 그룹에서 작업속도가 향상되는 것을 알 수 있으며, 본 발명에 따른 블록 장치 재구성에 의해, 제1 그룹의 매퍼 가상머신의 데이터 전송이 약 97%가 향상되었다. 또한, 다른 물리 노드에서 구동되는 제 2 그룹의 매퍼 가상머신의 데이터 전송이 약 15% 향상된 것을 알 수 있다.
도 8은 리듀서 가상머신이 탑재된 노드의 가상머신들의 CPU 활용도를 나타낸 누적 그래프이고, 도 9는 리듀서 가상머신이 탑재되지 않은 노드의 가상머신들의 CPU 활용도를 나타낸 누적 그래프이다.
이처럼, 도 8 내지 도 9에 도시된 두 개의 그래프는 세 개의 페이즈로 구성되는데, 본 발명에 따라 블록 장치 재구성을 사용하는 첫 번째 전송 페이즈와, 블록 장치 재구성을 사용하지 않는 두 번째 전송 페이즈, 그리고 나머지 안정적 페이즈를 나타낸다.
도 8 내지 도 9에 도시된 바와 같이, 블록 장치 재구성을 갖는 데이터 전송의 경우에는 블록 장치 재구성이 이루어지지 않는 데이터 전송보다 CPU 자원을 덜 사용되는 것을 알 수 있다. 이러한 현상은 블록 장치 재구성을 수행하지 않는 데이터 전송이 드라이버 도메인을 거쳐, 네트워크 전송이 이루어져야 하기 때문이다.
하지만, 본 발명에 따라, 블록 장치 재구성을 수행하는 데이터 전송은 가상머신이 동일한 물리노드에서 구동될 경우 네트워크 전송이 필요없고, 여러 노드에 걸쳐 구동될 경우 드라이버 도메인간에 네트워크 전송이 이루어지기 때문에 CPU 자원이 덜 사용된다.
도 10은 리듀서 가상머신의 디스크 입출력 지연대기시간을 나타낸 그래프이고, 도 11은 리듀서 가상머신을 제외한 다른 가상머신의 디스크 입출력 지연대기시간을 나타낸 그래프이다.
도 10과 도 11에 도시된 바와 같이, D가상머신의 디스크 입출력 작업속도는 맵리듀스 클러스터가 블록 장치 재구성을 사용할 때 보다 빠른 것을 알 수 있다. 왜냐하면, 맵리듀스 클러스터가 블록 장치 재구성을 사용하지 않는 경우에, 입출력 간섭이 발생하기 때문이다. 따라서, 블록 장치 재구성이 이루어지지 않는 노드의 D가상머신은 이러한 입출력 간섭으로 인하여 입출력의 작업속도가 감소하게 된다.
결과적으로, 본 발명에 의해 셔플 페이즈 내 발생하는 데이터 전송을 위한 오버헤드를 감소시키고, 데이터 송수신 시간을 감소시켜 맵리듀스의 작업속도를 향상시킬 수 있다.
더불어, 맵리듀스 클러스터를 구성하는 가상머신 외 다른 가상머신들의 작업속도 또한 향상시킬 수 있다.
본 발명의 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법은 매퍼 함수의 출력값을 포함하는 블록 장치 파일을 매퍼 가상머신으로부터 분리하여 리듀스 함수로 입력되도록 리듀서 가상머신에 부착함으로써, 리듀서가 네트워크를 이용하여 매퍼함수의 출력값에 접근할 필요가 없어지게 되어, 네트워크의 부하를 감소시킬 수 있는 효과가 있다.
또한 본 발명의 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법은 가상머신들간에 자원 경쟁으로 인해, 데이터 전송 시, 성능 병목현상이 발생하는 것을 미연에 방지할 수 있는 효과가 있다.
상기에서는 본 발명의 바람직한 실시 예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 본 발명의 기술 사상 범위 내에서 여러 가지로 변형하여 실시하는 것이 가능하고 이 또한 첨부된 특허청구범위에 속하는 것은 당연하다.
110: 드라이버 도메인 120: 매퍼 가상머신
130: 리듀서 가상머신 140: 디스크
130: 리듀서 가상머신 140: 디스크
Claims (12)
- 삭제
- 블록 장치 파일을 송수신하여 가상머신으로 전송하는 드라이버 도메인;
상기 블록 장치 파일에 대하여 임의의 키값을 읽어 이를 필터링하거나, 다른값으로 변환하는 맵 함수를 수행하는 매퍼 가상머신;
상기 키값을 기준으로 하여, 상기 블록 장치 파일을 정렬하고 병합하는 리듀스 함수를 수행하는 리듀서 가상머신;을 포함하며,
상기 드라이버 도메인은
상기 맵 함수의 출력단으로부터 블록 장치 파일을 분리한 후, 분리한 상기 블록 장치 파일을 상기 리듀스 함수의 입력단에 부착하는 블록 장치 재구성 모듈;
을 포함하는 것을 특징으로 하는 가상 클라우드 환경 내 맵리듀스 클러스터.
- 제2항에 있어서,
상기 맵리듀스 클러스터가 하나의 노드에서 구성된 클러스터일 때, 블록 장치 파일의 재구성이 수행되는 것을 특징으로 하는 가상 클라우드 환경 내 맵리듀스 클러스터.
- 블록 장치 파일에 대하여 임의의 키값을 읽어 이를 필터링 또는 다른값으로 변환하는 맵 함수를 수행하는 매퍼 가상머신;
상기 맵 함수의 출력값을 포함하는 블록 장치 파일을 입력받아 출력하는 매퍼 가상머신용 드라이버 도메인;
상기 매퍼 가상머신용 드라이버 도메인으로부터 출력된 블록 장치 파일을 입력받아 리듀서 가상머신으로 전송하는 리듀서 가상머신용 드라이버 도메인; 및
상기 블록 장치 파일을 수신하여 키값을 기준으로 상기 블록 장치 파일을 정렬하고 병합하는 리듀스 함수를 수행하는 리듀서 가상머신;
을 포함하는 것을 특징으로 하는 가상 클라우드 환경 내 맵리듀스 클러스터.
- 제4항에 있어서,
상기 매퍼 가상머신용 드라이버 도메인은
상기 블록 장치 파일을 마운트하고, 마운트된 위치의 컨텐츠를 상기 리듀서 가상머신용 드라이버 도메인으로 전송하는 제1 블록 장치 재구성 모듈;
을 더 포함하는 것을 특징으로 하는 가상 클라우드 환경 내 맵리듀스 클러스터.
- 제4항에 있어서,
상기 리듀서 가상머신용 드라이버 도메인은
마운트된 블록 장치 파일을 마운트 해제하는 것을 특징으로 하는 가상 클라우드 환경 내 맵리듀스 클러스터.
- 제6항에 있어서,
상기 리듀서 가상머신용 드라이버 도메인은
마운트 해제한 블록 장치 파일을 상기 리듀서 가상머신에 부착하는 제2 블록 장치 재구성모듈;
을 더 포함하는 것을 특징으로 하는 가상 클라우드 환경 내 맵리듀스 클러스터.
- 제4항에 있어서,
상기 맵리듀스 클러스터가 다수의 노드에 걸쳐 구성된 클러스터일 때의 블록 장치 파일의 재구성이 수행되는 것을 특징으로 하는 가상 클라우드 환경 내 맵리듀스 클러스터.
- 가상 클라우드 환경 내 맵리듀스 클러스터 설계방법에 있어서,
매퍼 가상머신 내 매퍼가 마운트 포인팅 지점에 부착된 블록 장치를 마운트하는 단계;
상기 매퍼가 맵 태스크를 수행하고, 상기 마운트된 위치에 상기 맵 함수의 출력을 생성하는 단계;
상기 맵 태스크의 수행이 완료되면, 상기 매퍼는 상기 맵 함수의 출력이 생성된 위치에서 마운트를 해제하는 단계;
드라이버 도메인 내 위치하는 블록 장치 재구성 모듈이 상기 매퍼 가상머신으로부터 블록 장치 파일을 분리하는 단계;
상기 블록 장치 재구성 모듈이 분리한 상기 블록 장치 파일을 리듀서 가상머신에 부착하는 단계;
상기 리듀서 가상머신 내 리듀서는 상기 블록 장치 파일을 리듀스 함수의 입력위치로 마운트하는 단계; 및
상기 리듀서가 모든 맵 함수의 출력을 받고, 리듀스 함수를 수행하는 단계;
를 포함하는 것을 특징으로 하는 가상 클라우드 환경 내 맵리듀스 클러스터 의 데이터 병렬 처리 방법.
- 제9항에 있어서,
상기 리듀서가 상기 블록 장치 파일을 리듀스 함수의 입력위치로 마운트하는 단계는
상기 리듀서가 상기 매퍼 가상머신의 모든 블록 장치 파일들이 마운트될 때까지 기다리는 것을 더 포함하는 것을 특징으로 하는 가상 클라우드 환경 내 맵리듀스 클러스터의 데이터 병렬 처리 방법.
- 가상 클라우드 환경 내 맵리듀스 클러스터 설계방법에 있어서,
매퍼 가상머신 내 매퍼가 마운트 포인팅 지점에 부착된 블록 장치를 마운트하는 단계;
상기 매퍼가 맵 태스크를 수행하고, 상기 마운트된 위치에서 상기 맵 함수의 출력을 생성하는 단계;
상기 맵 태스크의 수행이 완료되면, 상기 매퍼는 상기 맵 함수의 출력이 생성된 위치에서 마운트를 해제하는 단계;
드라이버 도메인 내 위치하는 블록 장치 재구성 모듈이 상기 매퍼 가상머신으로부터 블록 장치 파일을 분리하는 단계;
상기 매퍼 가상머신의 드라이버 도메인이 분리된 블록 장치 파일을 마운트하는 단계;
상기 블록 장치 재구성 모듈이 상기 블록 장치 파일이 마운트된 위치의 컨텐츠를 리듀서 가상머신의 드라이버 도메인으로 전송하는 단계;
상기 리듀서 가상머신의 부분 드라이버 도메인이 마운트된 블록 장치 파일을 마운트 해제하는 단계;
상기 블록 장치 재구성 모듈이 상기 리듀서 가상머신의 입력단에 블록 장치 파일을 부착하는 단계;
상기 리듀서 가상머신 내 리듀서는 상기 블록 장치 파일을 리듀스 함수의 입력위치로 마운트하는 단계; 및
상기 리듀서가 모든 맵 함수의 출력을 받고, 리듀서 함수를 수행하는 단계;
를 포함하는 것을 특징으로 하는 가상 클라우드 환경 내 맵리듀스 클러스터 의 데이터 병렬 처리 방법.
- 제9항 내지 제11항 중 어느 한 항에 따른 방법을 컴퓨터로 실행하기 위한 프로그램이 기록된 컴퓨터 판독가능 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120122305A KR101435499B1 (ko) | 2012-10-31 | 2012-10-31 | 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120122305A KR101435499B1 (ko) | 2012-10-31 | 2012-10-31 | 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140056743A KR20140056743A (ko) | 2014-05-12 |
KR101435499B1 true KR101435499B1 (ko) | 2014-08-29 |
Family
ID=50887828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120122305A KR101435499B1 (ko) | 2012-10-31 | 2012-10-31 | 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101435499B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023128013A1 (ko) * | 2021-12-30 | 2023-07-06 | (주)페르세우스 | 하이퍼바이저 시스템의 운영체제 성능 간섭 방지 장치 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11016745B2 (en) | 2017-08-11 | 2021-05-25 | Visa International Service Association | Systems and methods for generating distributed software packages using non-distributed source code |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009059377A1 (en) * | 2007-11-09 | 2009-05-14 | Manjrosoft Pty Ltd | Software platform and system for grid computing |
KR100907533B1 (ko) * | 2007-12-17 | 2009-07-14 | 한국전자통신연구원 | 작업 분산 병렬 처리 시스템 및 방법 |
KR100946987B1 (ko) * | 2007-12-18 | 2010-03-15 | 한국전자통신연구원 | 분산 병렬 처리 시스템의 다중 맵 태스크 중간 결과 정렬 및 결합 장치, 및 방법 |
US20110283277A1 (en) * | 2010-05-11 | 2011-11-17 | International Business Machines Corporation | Virtualization and dynamic resource allocation aware storage level reordering |
-
2012
- 2012-10-31 KR KR1020120122305A patent/KR101435499B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009059377A1 (en) * | 2007-11-09 | 2009-05-14 | Manjrosoft Pty Ltd | Software platform and system for grid computing |
KR100907533B1 (ko) * | 2007-12-17 | 2009-07-14 | 한국전자통신연구원 | 작업 분산 병렬 처리 시스템 및 방법 |
KR100946987B1 (ko) * | 2007-12-18 | 2010-03-15 | 한국전자통신연구원 | 분산 병렬 처리 시스템의 다중 맵 태스크 중간 결과 정렬 및 결합 장치, 및 방법 |
US20110283277A1 (en) * | 2010-05-11 | 2011-11-17 | International Business Machines Corporation | Virtualization and dynamic resource allocation aware storage level reordering |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023128013A1 (ko) * | 2021-12-30 | 2023-07-06 | (주)페르세우스 | 하이퍼바이저 시스템의 운영체제 성능 간섭 방지 장치 |
Also Published As
Publication number | Publication date |
---|---|
KR20140056743A (ko) | 2014-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11269669B2 (en) | Providing data that is remotely stored to an operating system responsive to a local access request | |
Zhang et al. | {FlashShare}: Punching Through Server Storage Stack from Kernel to Firmware for {Ultra-Low} Latency {SSDs} | |
US11573831B2 (en) | Optimizing resource usage in distributed computing environments by dynamically adjusting resource unit size | |
US8832688B2 (en) | Kernel bus system with a hyberbus and method therefor | |
US9569245B2 (en) | System and method for controlling virtual-machine migrations based on processor usage rates and traffic amounts | |
Peng et al. | {MDev-NVMe}: A {NVMe} storage virtualization solution with mediated {Pass-Through} | |
AU2013206117B2 (en) | Hierarchical allocation of network bandwidth for quality of service | |
TWI408934B (zh) | 網路介面技術 | |
US10366046B2 (en) | Remote direct memory access-based method of transferring arrays of objects including garbage data | |
CN111722786A (zh) | 基于NVMe设备的存储系统 | |
US11016817B2 (en) | Multi root I/O virtualization system | |
US10873630B2 (en) | Server architecture having dedicated compute resources for processing infrastructure-related workloads | |
Blagojević et al. | Priority {IO} Scheduling in the Cloud | |
KR101435499B1 (ko) | 가상 클라우드 환경 내 맵리듀스 클러스터 및 이를 위한 설계방법 | |
US11928517B2 (en) | Feature resource self-tuning and rebalancing | |
Thaha et al. | Data location aware scheduling for virtual Hadoop cluster deployment on private cloud computing environment | |
US9176910B2 (en) | Sending a next request to a resource before a completion interrupt for a previous request | |
Wu et al. | I/O stack optimization for efficient and scalable access in FCoE-based SAN storage | |
KR20160063711A (ko) | 테넌트 기반의 동적 프로세서 할당 장치 및 그 방법 | |
WO2018173300A1 (ja) | I/o制御方法およびi/o制御システム | |
Cohen et al. | Applying Amdahl's Other Law to the data center | |
US20230185746A1 (en) | Enabling Use Of Non-Volatile Media-Express (NVME) Over A Network | |
CN118871890A (zh) | 一种ai系统、内存访问控制方法及相关设备 | |
CN113760798A (zh) | Rdma设备的分配方法、计算设备及存储介质 | |
Missbach et al. | Private Cloud Infrastructures for SAP |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170801 Year of fee payment: 4 |