[go: up one dir, main page]

KR101480867B1 - 맵리듀스 연산 가속 시스템 및 방법 - Google Patents

맵리듀스 연산 가속 시스템 및 방법 Download PDF

Info

Publication number
KR101480867B1
KR101480867B1 KR20130062302A KR20130062302A KR101480867B1 KR 101480867 B1 KR101480867 B1 KR 101480867B1 KR 20130062302 A KR20130062302 A KR 20130062302A KR 20130062302 A KR20130062302 A KR 20130062302A KR 101480867 B1 KR101480867 B1 KR 101480867B1
Authority
KR
South Korea
Prior art keywords
map
channel
data stream
redundancy
accelerator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
KR20130062302A
Other languages
English (en)
Other versions
KR20140141053A (ko
Inventor
김진철
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR20130062302A priority Critical patent/KR101480867B1/ko
Priority to US14/011,946 priority patent/US9753783B2/en
Priority to CN201310381432.7A priority patent/CN104216865B/zh
Priority to PCT/KR2013/007790 priority patent/WO2014193037A1/ko
Publication of KR20140141053A publication Critical patent/KR20140141053A/ko
Application granted granted Critical
Publication of KR101480867B1 publication Critical patent/KR101480867B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel

Landscapes

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

Abstract

맵리듀스 연산 가속 시스템 및 방법이 개시된다. 본 발명의 일 실시예에 따른 맵리듀스 연산 가속 시스템은, 마스터 노드의 맵 연산 요청에 따라 맵 연산을 수행하는 하나 이상의 맵 노드, 및 상기 맵 연산 결과 데이터를 이용하여 리듀스 연산을 수행하는 하나 이상의 리듀스 노드를 포함하는 맵리듀스 연산 가속 시스템으로서, 상기 맵 노드는, 상기 맵 연산의 결과 생성되는 복수 개의 데이터 블록들을 병합하여 데이터 스트림을 생성하고, 상기 데이터 스트림의 전송을 위한 전송 채널을 생성하는 하나 이상의 맵 연산 가속기를 포함하며, 상기 리듀스 노드는, 상기 전송 채널을 통하여 상기 맵 연산 가속기로부터 상기 데이터 스트림을 수신하고, 수신된 상기 데이터 스트림으로부터 상기 복수 개의 데이터 블록을 복원하여 상기 리듀스 연산을 위해 제공하는 하나 이상의 리듀스 연산 가속기를 포함한다.

Description

맵리듀스 연산 가속 시스템 및 방법{SYSTEM AND METHOD FOR ACCELERATING MAPREDUCE OPERATION}
본 발명의 실시예들은 대용량 데이터 처리를 위한 병렬 컴퓨팅 기술과 관련된다.
맵리듀스(MapReduce)란 대용량 데이터의 처리를 위한 분산 컴퓨팅을 지원하기 위한 목적으로 개발된 소프트웨어 프레임워크이다. 이 프레임워크는 페타바이트(PetaByte) 이상의 대용량 데이터에 대한 복수 개의 컴퓨터로 구성된 클러스터 환경에서의 병렬 처리를 지원하기 위해서 개발되었다.
현재 맵리듀스 연산 처리 시스템에서는 원본 데이터로부터 생성된 키-밸류 페어(key-value pair)를 생성하는 맵(Map) 연산 과정, 및 생성된 상기 키-밸류 페어를 또 다른 키-밸류 페어로 변환하는 과정인 리듀스(Reduce) 연산 과정을 통해 맵리듀스 연산을 수행하도록 구성되며, 이 과정에서 각 연산 단계의 중간 산출 데이터를 분산 컴퓨팅 시스템을 구성하는 노드의 지역 파일 시스템(local file system)에 저장했다가, 연산에 필요한 노드로 전송하여 다시 지역 파일 시스템에 저장한 후, 해당 노드에서 다음 연산을 수행하게 된다.
이와 같은 맵리듀스 연산 방식은 네트워크상에서의 데이터 이동을 최소화하면서 대용량의 데이터를 처리할 수 있다는 장점이 있으나, 연산 과정에서 최소한 다음과 같은 5군데의 성능 병목이 나타나게 되어 성능이 저하되는 문제점이 있다.
- 맵 노드에서 맵 연산에 사용할 원본 데이터를 지역 파일에서 읽어들일 때, 낮은 디스크 I/O 속도로 인한 성능 병목
- Map 연산 후 생성된 Key-Value쌍 임시 데이터를 리듀스 노드로 송신하기 전 지역 파일 시스템에 저장하는 과정에서 낮은 디스크 I/O 속도 때문에 생기는 성능 병목
- 원격의 리듀스 노드로 데이터를 전송할 때, 지역 파일 시스템에 있던 데이터 블록을 네트워크를 통해 전송하는 과정에서 생기는 네트워크 지연
- 리듀스 노드로 전송된 Map Key-Value쌍 데이터를 임시로 리듀스 노드의 지역 파일 시스템에 저장하는 과정에서 낮은 디스크 I/O 속도 때문에 생기는 성능 병목
- Reduce 연산을 위해 Map Key-Value쌍 데이터를 다시 지역 파일 시스템에 데이터 블록의 형태로 병합하여 저장하는 과정에서 생기는 디스크 I/O 과정에서의 성능 병목
본 발명의 실시예들은 맵리듀스 연산 과정에서 발생될 수 있는 잦은 디스크 I/O 또는 네트워크 지연 등으로 인한 성능의 병목을 최소화하기 위한 맵리듀스 연산 가속 기술을 제공하기 위한 것이다.
또한, 본 발명의 실시예들은 기존의 맵리듀스 연산 프레임워크를 수정하지 않으면서 플러그인 형태로 설치 가능한 맵리듀스 연산 가속 기술을 제공하기 위한 것이다.
본 발명의 일 실시예에 따른 맵리듀스 연산 가속 시스템은, 마스터 노드의 맵 연산 요청에 따라 맵 연산을 수행하는 하나 이상의 맵 노드, 및 상기 맵 연산 결과 데이터를 이용하여 리듀스 연산을 수행하는 하나 이상의 리듀스 노드를 포함하는 맵리듀스 연산 가속 시스템으로서, 상기 맵 노드는, 상기 맵 연산의 결과 생성되는 복수 개의 데이터 블록들을 병합하여 데이터 스트림을 생성하고, 상기 데이터 스트림의 전송을 위한 전송 채널을 생성하는 하나 이상의 맵 연산 가속기를 포함하며, 상기 리듀스 노드는, 상기 전송 채널을 통하여 상기 맵 연산 가속기로부터 상기 데이터 스트림을 수신하고, 수신된 상기 데이터 스트림으로부터 상기 복수 개의 데이터 블록을 복원하여 상기 리듀스 연산을 위해 제공하는 하나 이상의 리듀스 연산 가속기를 포함한다.
상기 맵 노드는, 상기 맵 연산 요청에 따라 상기 하나 이상의 맵 연산 가속기를 생성하는 맵 연산 가속 제어기를 더 포함할 수 있다.
상기 맵 연산 가속 제어기는, 기 생성된 맵 연산 가속기로부터 연산 가속기 추가 요청이 수신되는 경우, 하나 이상의 맵 연산 가속 제어기를 추가적으로 생성할 수 있다.
상기 맵 연산 가속 제어기는, 상기 리듀스 노드로부터 상기 데이터 스트림 전송 요청이 수신되는 경우, 상기 데이터 스트림 전송 요청을 상기 전송 채널로 재지향할 수 있다.
상기 맵 연산 가속 제어기는, 상기 맵 노드의 메모리 상에서 상기 복수 개의 데이터 블록들을 병합하여 상기 데이터 스트림을 생성할 수 있다.
상기 맵 연산 가속기는, 상기 맵 노드의 지역 파일 시스템에 저장된 복수 개의 데이터 블록을 읽어들이는 데이터 블록 입출력부; 상기 데이터 블록 입출력부에서 읽은 상기 복수 개의 데이터 블록을 병합하여 데이터 스트림을 생성하는 데이터 블록 병합부; 및 상기 데이터 스트림의 전송을 위한 전송 채널을 생성하고, 상기 리듀스 연산 가속기의 요청에 따라 상기 데이터 스트림을 상기 전송 채널을 통하여 상기 리듀스 노드로 송신하는 전송 채널 제어부를 포함할 수 있다.
상기 전송 채널은 RDMA(Remote Direct Memory Access) 채널 또는 이더넷(Ethernet) 채널 중 어느 하나일 수 있다.
상기 전송 채널 제어부는 상기 리듀스 연산 가속기의 요청에 따라 하나 이상의 서버측 채널 연결자를 생성하고, 생성된 상기 서버측 채널 연결자를 통하여 상기 리듀스 연산 가속기로 상기 데이터 스트림을 송신할 수 있다.
상기 리듀스 노드는, 상기 마스터 노드의 리듀스 연산 요청에 따라 상기 하나 이상의 리듀스 연산 가속기를 생성하는 리듀스 연산 가속 제어기를 더 포함할 수 있다.
상기 리듀스 연산 가속 제어기는, 상기 맵 노드로부터 상기 전송 채널 정보를 수신하는 경우, 생성된 상기 리듀스 연산 가속기로 수신된 전송 채널 정보를 이용하여 상기 데이터 스트림을 수신할 것을 요청할 수 있다.
상기 리듀스 연산 가속기는, 상기 리듀스 노드의 메모리 상에서 상기 데이터 스트림으로부터 상기 복수 개의 데이터 블록을 복원할 수 있다.
상기 리듀스 연산 가속기는, 상기 맵 연산 가속기 측에 생성된 상기 전송 채널을 통하여 상기 데이터 스트림을 수신하는 전송 채널 제어부; 수신된 상기 데이터 스트림으로부터 상기 복수 개의 데이터 블록을 복원하는 데이터 블록 분리부; 및 복원된 상기 복수 개의 데이터 블록을 상기 리듀스 노드의 리듀스 연산기로 제공하는 데이터 블록 입출력부를 포함할 수 있다.
상기 전송 채널 제어부는, 하나 이상의 클라이언트측 채널 연결자를 생성하고, 생성된 상기 클라이언트측 채널 연결자를 통하여 상기 맵 연산 가속기로부터 상기 데이터 스트림을 수신할 수 있다.
상기 리듀스 연산 가속기는, 상기 데이터 스트림의 수신이 완료되는 경우 상기 맵 연산 가속기로 채널 연결 해제 요청을 송신하며, 상기 채널 연결 해제 요청은, 생성된 상기 클라이언트측 채널 연결자의 개수를 포함할 수 있다.
상기 채널 연결 해제 요청을 수신한 상기 맵 연산 가속기는, 상기 리듀스 연산 가속기로부터 수신된 채널 연결자 개수만큼의 연결 해제 메시지가 수신되는 경우, 상기 리듀스 연산 가속기로 상기 채널 연결 해제 요청에 대한 응답을 송신하고 상기 리듀스 연산 가속기와의 채널 연결을 해제할 수 있다.
한편, 본 발명의 일 실시예에 따른 맵리듀스 연산 가속 방법은, 마스터 노드의 맵 연산 요청에 따라 맵 연산을 수행하는 하나 이상의 맵 노드, 및 상기 맵 연산 결과 데이터를 이용하여 리듀스 연산을 수행하는 하나 이상의 리듀스 노드를 포함하는 맵리듀스 연산 가속 시스템에서의 맵리듀스 연산 가속 방법으로서, 상기 맵 노드의 하나 이상의 맵 연산 가속기에서, 상기 맵 연산의 결과 생성되는 복수 개의 데이터 블록들을 병합하여 데이터 스트림을 생성하고, 상기 데이터 스트림의 전송을 위한 전송 채널을 생성하는 단계; 상기 리듀스 노드의 하나 이상의 리듀스 연산 가속기에서, 상기 전송 채널을 통하여 상기 하나 이상의 맵 연산 가속기로부터 상기 데이터 스트림을 수신하는 단계; 및 상기 하나 이상의 리듀스 연산 가속기에서, 수신된 상기 데이터 스트림으로부터 상기 복수 개의 데이터 블록을 복원하여 상기 리듀스 연산을 위해 제공하는 단계를 포함한다.
상기 방법은, 상기 전송 채널을 생성하는 단계의 수행 전, 상기 맵 노드의 맵 연산 가속기에서, 상기 맵 연산 요청에 따라 상기 하나 이상의 맵 연산 가속기를 생성하는 단계를 더 포함할 수 있다.
상기 하나 이상의 맵 연산 가속기를 생성하는 단계는, 기 생성된 맵 연산 가속기로부터 연산 가속기 추가 요청이 수신되는 경우, 하나 이상의 맵 연산 가속 제어기를 추가적으로 생성하는 단계를 더 포함할 수 있다.
상기 맵 연산 가속 제어기는, 상기 리듀스 노드로부터 상기 데이터 스트림 전송 요청이 수신되는 경우, 상기 데이터 스트림 전송 요청을 생성된 상기 전송 채널로 재지향할 수 있다.
상기 전송 채널은 RDMA(Remote Direct Memory Access) 채널 또는 이더넷(Ethernet) 채널 중 어느 하나일 수 있다.
상기 맵 연산 가속기는, 상기 리듀스 연산 가속기의 요청에 따라 하나 이상의 서버측 채널 연결자를 생성하고, 생성된 상기 서버측 채널 연결자를 통하여 상기 리듀스 연산 가속기로 상기 데이터 스트림을 송신할 수 있다.
상기 데이터 스트림을 수신하는 단계의 수행 전, 상기 리듀스 노드의 리듀스 연산 가속 제어기에서, 상기 마스터 노드의 리듀스 연산 요청에 따라 상기 하나 이상의 리듀스 연산 가속기를 생성하는 단계를 더 포함할 수 있다.
상기 리듀스 연산 가속 제어기는, 상기 맵 연산 가속 제어기로부터 상기 전송 채널 정보가 수신되는 경우, 수신된 상기 전송 채널 정보를 이용하여 상기 데이터 스트림을 수신할 것을 상기 리듀스 연산 가속기로 요청할 수 있다.
상기 데이터 스트림을 수신하는 단계는, 하나 이상의 클라이언트측 채널 연결자를 생성하고, 상기 전송 채널 정보를 이용하여 상기 클라이언트측 채널 연결자 및 상기 맵 연산 가속기 측에 생성된 서버측 채널 연결자 간의 채널 연결을 구성하여 상기 맵 연산 가속기로부터 상기 데이터 스트림을 수신할 수 있다.
상기 방법은, 상기 데이터 스트림을 수신하는 단계의 수행 후, 상기 리듀스 연산 가속기에서, 상기 맵 연산 가속기로 채널 연결 해제 요청을 송신하는 단계를 더 포함하며, 상기 채널 연결 해제 요청은, 상기 리듀스 연산 가속기 및 상기 맵 연산 가속기 간에 구성된 채널 연결 개수를 포함할 수 있다.
상기 채널 연결 해제 요청을 수신한 상기 맵 연산 가속기는, 수신된 상기 채널 연결 개수만큼의 연결 해제 메시지가 상기 리듀스 연산 가속기로부터 수신되는 경우, 상기 리듀스 연산 가속기로 상기 채널 연결 해제 요청에 대한 응답을 송신하고 상기 리듀스 연산 가속기와의 채널 연결을 해제할 수 있다.
한편, 본 발명의 일 실시예에 따른 장치는, 컴퓨터상에서 실행 가능한 프로그램 코드가 저장되는 메모리; 및 상기 메모리를 이용하여 상기 프로그램 코드를 실행하는 프로세서를 포함하는 장치로서, 상기 프로그램 코드는, 맵 연산의 결과 생성되는 복수 개의 데이터 블록들을 상기 메모리 내에서 병합하여 하나의 데이터 스트림을 생성하고, 상기 데이터 스트림의 전송을 위한 전송 채널을 생성하는 과정; 상기 전송 채널을 통하여 상기 데이터 스트림을 송수신하는 과정; 및 전송 채널을 통하여 수신되는 데이터 스트림을 상기 메모리 내에서 분할하여 복수 개의 데이터 블록들을 복원하고, 복원된 상기 복수 개의 데이터 블록들을 리듀스 연산을 위해 제공하는 과정을 포함하는 과정들을 수행하기 위한 것이다.
한편, 본 발명의 일 실시예에 따른 컴퓨터 판독가능 기록 매체는, 프로그램 코드를 포함하는 컴퓨터 판독가능 기록 매체로서, 상기 프로그램 코드는 컴퓨터에 의해 실행될 때 상기 컴퓨터로 하여금, 맵 연산의 결과 생성되는 복수 개의 데이터 블록들을 병합하여 하나의 데이터 스트림을 생성하고, 상기 데이터 스트림의 전송을 위한 전송 채널을 생성하는 과정; 상기 전송 채널을 통하여 상기 데이터 스트림을 송수신하는 과정; 및 전송 채널을 통하여 수신되는 데이터 스트림을 상기 메모리 내에서 분할하여 복수 개의 데이터 블록들을 복원하고, 복원된 상기 복수 개의 데이터 블록들을 리듀스 연산을 위해 제공하는 과정을 포함하는 과정들을 수행하도록 한다.
본 발명의 실시예들에 따를 경우, 맵 노드에서의 맵 연산 결과로 생성되는 Key-Value 쌍 데이터를 디스크상의 지역 파일 시스템에 기록하지 않고 메모리에서 직접 연속적인 스트림 형태로 원격 리듀스 노드에 전송함으로써, 맵 노드에서의 불필요한 디스크 I/O로 인한 성능 병목 문제를 해결할 수 있다.
또한, 상기 맵 노드에서 원격의 리듀스 연산 노드로 데이터를 전송할 때 발생하는 네트워크 지연을 없애기 위해, 맵 노드와 리듀스 연산 노드간의 원격 직접 메모리 액세스(RDMA) 채널을 생성하고 이를 통해 데이터 스트림을 전송함으로써 네트워크 지연으로 인한 성능 병목 문제를 최소화할 수 있다.
또한, 리듀스 노드로 전송된 Key-Value쌍 데이터를 임시로 리듀스 노드의 지역 파일 시스템에 저장하는 디스크 I/O 과정을 없애고, Map Key-Value쌍 데이터를 메모리에 전송 받는 즉시 데이터 블록으로 메모리상에서 병합한 뒤, 이를 다시 디스크에 쓰지 않고 메모리상에서 바로 리듀스 연산에 전달, 연산을 수행하도록 하여 디스크 I/O 속도 때문에 생기는 성능 병목 문제를 해결할 수 있다.
아울러, 본 발명의 실시예들에 따른 맵리듀스 연산 가속기의 경우 기존 맵리듀스 아키텍처에 수정을 가하지 않으면서도 연산 성능을 향상시킬 수 있도록 부가적인 플러그인 형태로 구성됨으로써, 기존의 맵리듀스 연산 프레임워크에 쉽게 적용이 가능한 장점이 있다.
도 1은 본 발명의 일 실시예에 따른 맵리듀스 연산 가속기를 포함하는 맵리듀스 연산 시스템(100)을 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 맵리듀스 연산 가속기(114)의 상세 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 맵 연산 가속 제어기(200)의 상세 구성을 설명하기 위한 블록도이다.
도 4는 본 발명의 일 실시예에 따른 맵 연산 가속기(202)의 상세 구성을 설명하기 위한 블록도이다.
도 5는 본 발명의 일 실시예에 따른 리듀스 연산 가속기(206)의 상세 구성을 설명하기 위한 블록도이다.
도 6은 본 발명의 일 실시예에 따른 맵 연산 가속 제어기(200)에서 맵 연산 가속기(202)를 제어하는 과정을 설명하기 위한 도면이다.
도 7 및 도 8은 본 발명의 일 실시예에 따른 맵리듀스 연산 가속기(114)를 이용한 맵리듀스 연산 가속 과정을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 맵 연산 가속기(202)와 리듀스 연산 가속기(206) 간의 채널 생성 과정을 설명하기 위한 순서도이다.
도 10은 본 발명의 일 실시예에 따른 맵 또는 리듀스 연산 가속기 간의 채널 연결 해제 과정을 설명하기 위한 순서도이다.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하의 실시예는 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.
도 1은 본 발명의 일 실시예에 따른 맵리듀스 연산 가속기를 포함하는 맵리듀스 연산 시스템(100)을 설명하기 위한 블록도이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 맵리듀스 연산 시스템(100)은 마스터 노드(102) 및 복수 개의 슬레이브 노드(104)를 포함한다.
마스터 노드(102)는 대용량의 데이터를 일정한 크기의 블록으로 나누어 각 슬레이브 노드(104)의 지역 파일 시스템(106, Local File System)에 나누어 저장한다. 마스터 노드(102)에는 잡 트래커(108, Job Tracker)가 구비되며, 잡 트래커(108)는 사용자의 맵리듀스 작업 요청에 따라 각 슬레이브 노드(104)에 맵 연산 또는 리듀스 연산을 분배한다. 이때, 지역 파일 시스템에 저장된 데이터의 이동을 최소화하기 위하여, 각각의 맵 연산 및 리듀스 연산은 각 슬레이브 노드(104) 중 연산 대상 데이터가 저장된 노드 또는 데이터가 저장된 노드와 최대한 가까운 노드에 의해 실행되도록 구성된다(Fast-Path I/O).
슬레이브 노드(104)는 마스터 노드(102)의 제어에 따라 맵 연산 또는 리듀스 연산을 수행하는 노드이다. 슬레이브 노드(104)는 마스터 노드(102)에서 할당되는 역할에 따라 맵 노드 및 리듀스 노드로 구분될 수 있다. 즉, 이하의 설명에서 '맵 노드'란 원본 데이터를 이용하여 맵 연산을 수행하는 슬레이브 노드(104)를, '리듀스 노드'는 맵 연산의 결과를 이용하여 리듀스 연산을 수행하는 슬레이브 노드(104)를 각각 의미한다.
슬레이브 노드(104)는 전술한 지역 파일 시스템(106) 이외에 태스크 트래커(110), 맵리듀스 연산기(112), 맵리듀스 연산 가속기(114)를 포함한다.
태스크 트래커(110, Task Tracker))는 마스터 노드(102)의 잡 트래커(108)로부터 맵 연산 또는 리듀스 연산 요청을 수신하고, 수신된 요청에 따라 맵리듀스 연산기(112)를 실행시켜 맵 연산 또는 리듀스 연산이 수행될 수 있도록 한다.
맵리듀스 연산기(112)는 태스크 트래커(110)의 제어에 따라 할당된 맵 연산 또는 리듀스 연산을 수행한다. 구체적인 맵 연산 또는 리듀스 연산과 관련된 사항은 본 기술분야에서 통상의 지식을 가진 자에게 잘 알려져 있으므로 여기서는 이에 대한 설명을 생략하기로 한다. 또한, 구별을 위하여 이하의 설명에서 맵리듀스 연산기(112)가 맵 연산을 수행할 때에는 맵 연산기(112a)로, 리듀스 연산을 수행할 때에는 리듀스 연산기(112b)로 각각 지칭하기로 한다.
맵리듀스 연산 가속기(114)는 맵리듀스 연산기(112)의 맵 연산 또는 리듀스 연산에서 발생되는 디스크 I/O 또는 네트워크 지연 등으로 발생되는 병목 현상을 해소하고 전체적인 맵리듀스 연산을 가속하기 위한 모듈이다. 맵리듀스 연산 가속기(114)의 상세 구성에 대해서는 도 2에서 상세히 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 맵리듀스 연산 가속기(114)의 상세 구성을 설명하기 위한 블록도이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 맵리듀스 연산 가속기(114)는 맵 연산 가속 제어기(200), 맵 연산 가속기(202), 리듀스 연산 가속 제어기(204) 및 리듀스 연산 가속기(206)를 포함한다. 이 중 맵 연산 가속기(202)는 맵 연산 가속 제어기(200)에 의해 생성, 삭제되거나 그 동작이 제어되며, 리듀스 연산 가속기(206) 또한 리듀스 연산 가속 제어기(204)에 의해 생성, 삭제 및 동작이 제어된다.
맵 연산 가속 제어기(202)는 마스터 노드(102)의 맵 연산 요청에 따라 하나 이상의 맵 연산 가속기(202)를 생성하고, 생성된 맵 연산 가속기(202)의 동작을 제어한다. 맵 연산 가속 제어기(202)는 맵 노드의 태스크 트래커(110) 내에 존재할 수도 있고, 태스크 트래커(110)와 별도의 모듈로서 구성될 수도 있다.
맵 연산 가속기(202)는 맵 노드에서의 맵 연산의 결과 생성되는 복수 개의 데이터 블록들을 병합하여 데이터 스트림을 생성하고, 상기 데이터 스트림의 전송을 위한 전송 채널을 생성한다.
리듀스 연산 가속 제어기(204)는 마스터 노드(102)의 리듀스 연산 요청에 따라 하나 이상의 리듀스 연산 가속기(206)를 생성하고, 생성된 리듀스 연산 가속기(2026)의 동작을 제어한다. 리듀스 연산 가속 제어기(204) 또한 맵 연산 가속 제어기(202)와 마찬가지로 리듀스 노드의 태스크 트래커(110) 내에 존재할 수도 있고, 태스크 트래커(110)와 별도의 모듈로서 구성될 수도 있다.
리듀스 연산 가속기(206)는 맵 연산 가속기(202)에 생성된 상기 전송 채널을 통하여 맵 연산 가속기(202)로부터 상기 데이터 스트림을 수신하고, 수신된 상기 데이터 스트림으로부터 상기 복수 개의 데이터 블록을 복원하여 리듀스 노드의 맵리듀스 연산기(112)에 제공함으로써 리듀스 연산이 수행될 수 있도록 한다.
본 발명의 실시예에 따른 맵리듀스 연산 가속기(114)는 기존의 맵리듀스 연산 프레임워크의 내부의 구조를 바꾸거나 새로운 모듈을 추가하지 않는다. 즉, 본 발명에서 맵리듀스 연산 가속기(114)는 맵리듀스 연산을 위한 맵리듀스 연산 프레임워크와 별도의 모듈로서 존재하며, 기능상 맵리듀스 연산 프레임워크의 하위 영역에 위치한다. 또한, 네트워크를 통한 데이터 전송 과정의 가속을 위해 사용하는 원격 직접 메모리 액세스(RDMA) 기능을 제공하는 라이브러리와 O/S 커널 모듈의 상위 레이어에 위치하여, 맵리듀스 연산 프레임워크가 RDMA 기능을 이용한 고속 데이터 전송을 가능하게 하는 일종의 인터페이스로서 기능하게 된다.
도 3은 본 발명의 일 실시예에 따른 맵 연산 가속 제어기(200)의 상세 구성을 설명하기 위한 블록도이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 맵 연산 가속 제어기(200)는 맵 연산 가속기 제어부(300), 자원 요구 처리부(302) 및 재지향부(304)를 포함한다.
맵 연산 가속기 제어부(300)는 마스터 노드(102)의 맵 연산 요청에 따라 하나 이상의 맵 연산 가속기(202)를 생성하고, 생성되는 각 맵 연산 가속기(202) 별로 지역 파일 시스템(106)에 저장된 데이터를 할당한다.
자원 요구 처리부(302)는 생성된 맵 연산 가속기(202)로부터 연산 가속기 추가 요청이 수신되는 경우, 맵 연산 가속기 제어부(300)에 하나 이상의 맵 연산 가속 제어기(200)를 추가적으로 생성할 것을 요청한다.
재지향부(304)는 리듀스 노드로부터 맵 연산 가속기(202)가 생성된 상기 데이터 스트림에 대한 전송 요청이 수신되는 경우, 상기 데이터 스트림 전송 요청을 맵 연산 가속기(202)가 생성한 전송 채널로 재지향(redirection)함으로써 리듀스 노드가 상기 전송 채널을 통하여 상기 데이터 스트림을 수신할 수 있도록 한다.
도 4는 본 발명의 일 실시예에 따른 맵 연산 가속기(202)의 상세 구성을 설명하기 위한 블록도이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 맵 연산 가속기(202)는 수신부(400), 자원 모니터링부(402), 데이터 블록 입출력부(404), 데이터 블록 병합부(406) 및 전송 채널 제어부(408)를 포함한다.
수신부(400)는 맵 연산 가속기 제어부(300)로부터의 제어 명령을 수신하고, 이를 맵 연산 가속기(202) 내의 다른 콤포넌트로 전달한다.
자원 모니터링부(402)는 맵 연산 가속기 제어부(300)으로부터 요청된 데이터의 용량 및 현재 맵 연산 가속기(202)에 할당된 메모리 용량 등을 모니터링하고, 추가적인 웹 연산 가속기(202)가 필요한지의 여부를 판단한다. 자원 모니터링부(402)는 판단 결과 요청된 데이터 용량이 처리 가능 용량을 초과한다고 판단되는 경우, 자원 요구 처리부(302)로 추가적인 맵 연산 가속기(202)의 생성을 요청한다.
데이터 블록 입출력부(404)는 맵 노드의 지역 파일 시스템(106)에 접근하여, 저장된 복수 개의 데이터 블록을 읽어들인다. 이때 상기 데이터 블록은 맵 노드의 맵리듀스 연산기(112)가 생성한 맵 연산 결과 데이터를 의미한다.
데이터 블록 병합부(406)는 데이터 블록 입출력부(404)에서 읽은 상기 복수 개의 데이터 블록을 병합하여 데이터 스트림을 생성한다.
전송 채널 제어부(408)는 데이터 블록 병합부(406)에서 생성된 상기 데이터 스트림의 전송을 위한 전송 채널을 생성하고, 리듀스 노드의 리듀스 연산 가속기(206)의 요청에 따라 상기 데이터 스트림을 상기 전송 채널을 통하여 상기 리듀스 노드로 송신한다. 이때, 상기 전송 채널은 RDMA(Remote Direct Memory Access) 채널 또는 이더넷(Ethernet) 채널 중 어느 하나일 수 있다. 즉, 전송 채널 제어부(408)는 리듀스 노드의 리듀스 연산 가속기(206)의 요청에 따라 RDMA 채널 또는 일반 이더넷 채널을 생성하고 이를 통하여 상기 데이터 스트림을 스트리밍하게 된다.
도 5는 본 발명의 일 실시예에 따른 리듀스 연산 가속기(206)의 상세 구성을 설명하기 위한 블록도이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 리듀스 연산 가속기(202)는 수신부(500), 전송 채널 제어부(502), 데이터 블록 분리부(504) 및 데이터 블록 입출력부(506)를 포함한다.
수신부(500)는 리듀스 연산 가속 제어기 제어부(204)로부터의 제어 명령을 수신하고, 이를 리듀스 연산 가속기(206) 내의 다른 콤포넌트로 전달한다.
전송 채널 제어부(502)는 맵 노드의 맵 연산 가속기(202) 측에 생성된 전송 채널을 통하여 데이터 스트림을 수신한다. 전송 채널 제어부(502)는, 하나 이상의 클라이언트측 채널 연결자를 생성하고, 생성된 상기 클라이언트측 채널 연결자를 통하여 상기 맵 연산 가속기(202)로부터 상기 데이터 스트림을 수신할 수 있다.
데이터 블록 분리부(504)는 수신된 상기 데이터 스트림으로부터 복수 개의 데이터 블록을 복원한다.
데이터 블록 입출력부(506)는 복원된 상기 복수 개의 데이터 블록을 리듀스 노드의 맵리듀스 연산기(112)로 제공하여 리듀스 연산이 수행될 수 있도록 한다.
도 6은 본 발명의 일 실시예에 따른 맵 연산 가속 제어기(200)에서 맵 연산 가속기(202)를 제어하는 과정을 설명하기 위한 도면이다.
먼저, 맵 노드의 태스크 트래커(110)는 잡 트래커(108)로부터의 맵 연산 요청에 따라 맵 연산 가속 제어기(200)의 맵 연산 가속기 제어부(300)로 맵 연산 가속기(202)의 실행을 요청한다(S602). 그러면, 맵 연산 가속기 제어부(300)는 상기 요청에 따라 새로운 맵 연산 가속기(202)를 생성하고 생성된 맵 연산 가속기(202)에 작업을 할당한다(S604).
이후, 실행된 맵 연산 가속기(202)는 자신이 수용할 수 있는 자원(최대 입출력 가능한 파일 기술자 수 및 현재 사용 가능한 메모리와 데이터의 총량)을 고려하여, 자신이 수용할 수 있는 자원보다 많은 자원이 필요할 경우 추가의 맵 연산 가속기(202) 실행을 맵 연산 가속 제어기(200)의 자원 요구 처리부(302)로 요청한다(S606).
상기 요청을 수신한 자원 요구 처리부(302)는 이를 맵 연산 가속기 제어부(300)로 전달하고, 맵 연산 가속기 제어부(30)는 추가로 맵 연산 가속기(202)를 실행한다(S608).
이후, 추가로 실행된 맵 연산 가속기(202)는 현재 남은 데이터의 양 및 파일 숫자를 점검하고, 자신이 할당할 수 있는 파일 기술자 수, 가용 메모리등의 자원을 고려해서 추가 맵 연산 가속기(202)가 필요할 경우 다시 태스크 추적기의 맵 연산 가속 제어기(200)에 추가 맵 연산 가속기(202) 실행을 요청할 수 있다. 즉, 상기 과정은 생성된 맵 연산 가속기(202)들의 처리 용량이 요청된 데이터의 입출력을 처리하기에 충분할 때까지 반복된다.
도 7 및 도 8은 본 발명의 일 실시예에 따른 맵리듀스 연산 가속기(114)를 이용한 맵리듀스 연산 가속 과정을 설명하기 위한 도면으로서, 도 7은 맵 노드에서의 맵리듀스 연산 가속 단계들을, 도 8은 리듀스 노드에서의 맵리듀스 연산 가속 단계들을 각각 설명하기 위한 것이다.
먼저, 맵 노드의 태스크 트래커(110)가 마스터 노드(102)의 잡 트래커(108)로부터 맵 연산 실행 요청 수신하면, 잡 트래커(108)는 맵 연산기(112a)를 이용하여 해당 노드에 배치된 맵 연산을 수행하고 수행된 결과 데이터를 지역 파일 시스템(106)에 저장한다(S702).
이후, 맵 연산 가속 제어기(200)의 맵 연산 가속기 제어부(300)는 맵 연산 가속기(202)의 한 인스턴스를 생성하고(S704), 생성된 맵 연산 가속기(202)에 작업을 할당한다(S706). 생성된 맵 연산 가속기(202)의 자원 모니터링부(402)는 요청된 데이터의 블록 파일 수, 현재 노드의 메모리 용량 등을 점검하여 현재 실행된 맵 연산 가속기(202)가 처리 용량으로는 요청된 데이터의 처리가 불가능하다고 판단되는 경우 추가의 맵 연산 가속기(202)를 생성할 것을 맵 연산 가속 제어기(200)의 자원 요구 처리부(302)에 요청한다(S708). 그러면, 맵 연산 가속기 제어부(300)는 자원 요구 처리부(302)를 통하여 수신된 상기 추가 가속기 생성 요청에 따라 하나 이상의 맵 연산 가속 제어기를 추가적으로 생성한다. 이와 같은 맵 연산 가속기(202)의 추가는 현재 요청한 데이터를 입출력하기에 충분한 맵 연산 가속기(202)가 생성될 때까지 반복된다.
다음으로, 생성된 각각의 맵 연산 가속기(202)의 수신부(400)는 맵 연산 가속기 제어부(300)로부터 지역 파일 시스템(106)에 저장된 데이터에 대한 처리 요청을 수신하여 이를 데이터 블록 입출력기(404)로 전달한다(S710). 또한, 맵 연산 가속기 제어부(300)는 수신부(400)를 통해 전송 채널 제어부에 RDMA 서버 채널(702) 또는 이더넷 채널(704)을 생성하고 대기시킨다(S712).
다음으로, 각 맵 연산 가속기(202)내의 데이터 블록 입출력부(404)는 상기 맵 노드의 지역 파일 시스템(106)에 저장되어 있는 맵 연산의 결과 데이터 블록들을 읽어들여 데이터 블록 병합부(406)로 전달하고(S714, S716), 데이터 블록 병합부(406)는 상기 데이터 블록을 병합하여 하나의 데이터 스트림을 생성한다(S718). 그러면 전송 채널 제어부(408)는 생성된 데이터 스트림을 생성된 RDMA 서버 채널(702) 또는 이더넷 채널(704)의 서버측 채널 연결자(706, 708)를 통하여 전송한다(S720, S722).
한편, 맵 연산 가속 제어기(200)의 재지향부(304)는 리듀스 노드 내의 리듀스 연산기(112b)로부터 맵 연산 결과에 대한 전송 요청을 수신하고, 상기 전송 요청을 생성된 RDMA 채널(702) 또는 이더넷 채널(704)로 재지향(redirection)하여 리듀스 연산기(112b)가 RDMA 채널(702) 또는 이더넷 채널(704)을 통하여 맵 연산 결과를 받을 수 있도록 한다(S724, S726).
다음으로, 도 8을 참조하여 리듀스 노드에서의 맵리듀스 연산 가속 단계들을 설명한다.
먼저, 리듀스 노드의 리듀스 연산 가속 제어기(204)는 리듀스 노드의 태스크 트래커(110)의 요청에 따라 리듀스 연산 가속기(206)를 실행하고(S802), 리듀스 연산기(112b)가 맵 노드의 재지향부(304)로부터 수신한 RDMA 채널(702) 또는 이더넷 채널(704)을 정보를 이용하여 맵 노드로부터 데이터를 읽어올 것을 요청한다(S804).
리듀스 연산 가속기(206)의 전송 채널 제어부(502)는 수신기(500)를 통하여 상기 요청을 수신하고(S806), 클라이언트측 RDMA 채널 연결자(802) 또는 클라이언트측 이더넷 채널 연결자(804)를 생성한 뒤, 서버측 RDMA 채널 연결자(706) 또는 서버측 이더넷 채널 연결자(708)에 접근하여 연결을 구성하고 이를 통해 데이터 스트림을 수신한다(S806, S808).
데이터 블록 분리부(504)는 전송 채널 제어부(502)로부터 상기 데이터 스트림을 수신하고(S812), 수신된 상기 데이터 스트림으로부터 복수 개의 데이터 블록을 복원한다(S814). 이후, 데이터 블록 입출력부(506)는 복원된 상기 복수 개의 데이터 블록을 상기 리듀스 연산기(112b)로 제공하여 리듀스 연산이 수행될 수 있도록 한다(S816).
도 9는 본 발명의 일 실시예에 따른 맵 연산 가속기(202)와 리듀스 연산 가속기(206) 간의 채널 생성 과정을 설명하기 위한 도면이다.
먼저, 리듀스 연산 가속기(206)의 전송 채널 제어부(502)는 리듀스 연산기(112b)의 요청에 따라 채널 연결자를 생성한다. 도시된 실시예에서는 상기 채널 연결자가 RDMA 채널 연결자(802)인 실시예를 나타내었으나, 본 발명은 이에 한정되는 것은 아니며, 생성되는 채널 연결자는 맵 연산 노드에서 생성된 데이터 전송 채널의 종류에 따라 RDMA 채널 연결자(802)이거나 일반 이더넷 채널 연결자(804)가 될 수 있다.
생성된 채널 연결자(802)는 맵 연산 가속기(202)측의 채널 이벤트 발생기(902)에 채널 연결 요청 이벤트를 송신하고(S902), 이를 수신한 채널 이벤트 발생기(902)는 서버측 채널(702, RDMA 서버 채널 또는 이더넷 서버 채널) 채널 연결 요청 이벤트를 전달한다(S904). 그러면 서버측 채널(702)는 상기 채널 연결 요청 이벤트에 따라 채널 연결자(RDMA 채널 연결자(706) 또는 이더넷 채널 연결자(708))를 생성하고 대기시킨다(S906).
이후, 서버측 채널(702)이 리듀스 노드의 채널 이벤트 발생기(904)에 연결 요청 수락 메시지를 송신하면(S908), 채널 이벤트 발생기(904)는 채널 이벤트 처리기(906)에 채널 연결 완료 이벤트를 발생시킨다(S910). 그러면 채널 이벤트 처리기(906)는 채널 연결 완료 알림을 리듀스 연산 가속기측 채널 연결자(802, 804)로 보내어 데이터 스트림 전송을 준비시킨다(S912).
한편, 상기 연결 요청을 수락한 서버측 채널(702)은 채널 이벤트 발생기(902)로 채널 연결자 생성 이벤트를 전달하고(S914), 채널 이벤트 발생기(902)는 이에 따라 서버측 채널(702)로 채널 연결 완료 이벤트를 발생시킨다(S916). 이후 서버측 채널(702)은 채널 연결자(706, 708)로 채널 연결 완료 알림을 보내어 리듀스 연산 가속기(202)측 채널 연결자(802, 804)로 데이터 스트림이 송신될 수 있도록 한다(S918).
도 10은 본 발명의 일 실시예에 따른 맵 또는 리듀스 연산 가속기 간의 채널 연결 해제 과정을 설명하기 위한 순서도이다. 본 발명의 실시예에서 맵 연산 가속기(202) 및 리듀스 연산 가속기(206) 간의 채널 연결은 맵 연산 가속기(202) 또는 리듀스 연산 가속기(206) 중 어느 하나의 연결 해제 요청을 통하여 수행될 수 있다. 여기서는 편의를 위하여 연결 해제 요청을 송신하는 맵 연산 가속기(202) 또는 리듀스 연산 가속기(206)를 제1 연산 가속기로, 상기 연결 해제 요청을 수신하는 맵 연산 가속기(202) 또는 리듀스 연산 가속기(206)를 제2 연산 가속기로 각각 부르기로 한다.
본 발명의 실시예에서, 각각의 맵 연산 가속기(202) 또는 리듀스 연산 가속기(206)는 해당 맵 연산 또는 리듀스 연산에서 사용할 데이터 블록의 수와 데이터 양에 따라 서로 다른 수의 채널 연결자를 통해 데이터 스트림을 송수신하게 된다. 따라서 각각의 맵 연산 가속기(202) 및 리듀스 연산 가속기(206)는 각각 서로 다른 수의 채널 연결자가 생성되므로, 데이터 스트림 전송 후 연결을 안정적으로 해제하기 위해서는 별도의 프로토콜이 필요하게 된다.
먼저, 제1 가속기의 전송 채널 제어부(1002)로 연결 해제 요청이 수신되면(S1002), 전송 채널 제어부(1002)는 자신에게 연결된 제2 연산 가속기의 연결을 해제하기 위해 제2 연산 가속기의 전송 채널 제어부(1004)로 연결 해제 요청을 송신한다(S1004). 이때 전송 채널 제어부(1002)는 제2 연산 가속기와 맺은 채널 연결자의 개수(연결 해제 메시지수, sent_count)를 상기 연결 해제 요청과 같이 송신하게 된다.
상기 연결 해제 요청을 수신한 제2 연산 가속기의 전송 채널 제어부(1004)는 수신된 sent_count 만큼의 연결 해제 메시지가 제1 연산 가속기로부터 수신될 때까지 대기하다가(S1006), 연결 해제 메시지 수만큼의 연결 해제 메시지가 도착하면 연결 해제 준비 완료 메시지를 제1 연산 가속기측에 전달하고(S1008), 해당 연산 가속기와의 연결을 해제한다(S1010). 연결 해제 준비 완료 신호를 받은 제1 연산 가속기 또한 상기 연결 해제 준비 완료 메시지에 따라 제2 연산 가속기와의 연결을 해제하면서 데이터 스트림 전송을 종료하게 된다(S1012).
이와 같은 과정을 거쳐 각 연산 가속기간의 채널 연결을 해제할 경우, 현재 데이터 스트림을 전송 중인 채널 연결자가 남아 있는 상태에서 상대방과의 채널 연결이 해제되는 것을 방지할 수 있는 장점이 있다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야에서 통상의 지식을 가진 자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다.
그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 맵리듀스 dustkst ltmxpa
102: 마스터 노드
104: 슬레이브 노드
106: 지역 파일 시스템
108: 잡 트래커
110: 태스크 트래커
112: 맵리듀스 연산기
114: 맵리듀스 연산 가속기
200: 맵 연산 가속 제어기
202: 맵 연산 가속기
204: 리듀스 연산 가속 제어기
206: 리듀스 연산 가속기
300: 맵 연산 가속기 제어부
302: 자원 요구 처리부
304: 재지향부
400: 수신부
402: 자원 모니터링부
404: 데이터 블록 입출력부
406: 데이터 블록 병합부
408: 전송 채널 제어부
500: 수신부
502: 전송 채널 제어부
504: 데이터 블록 분리부
506: 데이터 블록 입출력부

Claims (28)

  1. 마스터 노드의 맵 연산 요청에 따라 맵 연산을 수행하는 하나 이상의 맵 노드, 및 상기 맵 연산 결과 데이터를 이용하여 리듀스 연산을 수행하는 하나 이상의 리듀스 노드를 포함하는 맵리듀스 연산 가속 시스템으로서,
    상기 맵 노드는, 상기 맵 연산의 결과 생성되는 복수 개의 데이터 블록들을 병합하여 데이터 스트림을 생성하고, 상기 데이터 스트림의 전송을 위한 전송 채널을 생성하는 하나 이상의 맵 연산 가속기를 포함하며,
    상기 리듀스 노드는, 상기 전송 채널을 통하여 상기 맵 연산 가속기로부터 상기 데이터 스트림을 수신하고, 수신된 상기 데이터 스트림으로부터 상기 복수 개의 데이터 블록을 복원하여 상기 리듀스 연산을 위해 제공하는 하나 이상의 리듀스 연산 가속기를 포함하는, 맵리듀스 연산 가속 시스템.
  2. 청구항 1에 있어서,
    상기 맵 노드는, 상기 맵 연산 요청에 따라 상기 하나 이상의 맵 연산 가속기를 생성하는 맵 연산 가속 제어기를 더 포함하는, 맵리듀스 연산 가속 시스템.
  3. 청구항 2에 있어서,
    상기 맵 연산 가속 제어기는, 기 생성된 맵 연산 가속기로부터 연산 가속기 추가 요청이 수신되는 경우, 하나 이상의 맵 연산 가속 제어기를 추가적으로 생성하는, 맵리듀스 연산 가속 시스템.
  4. 청구항 2에 있어서,
    상기 맵 연산 가속 제어기는, 상기 리듀스 노드로부터 상기 데이터 스트림 전송 요청이 수신되는 경우, 상기 데이터 스트림 전송 요청을 상기 전송 채널로 재지향하는, 맵리듀스 연산 가속 시스템.
  5. 청구항 1에 있어서,
    상기 맵 연산 가속 제어기는, 상기 맵 노드의 메모리 상에서 상기 복수 개의 데이터 블록들을 병합하여 상기 데이터 스트림을 생성하는, 맵리듀스 연산 가속 시스템.
  6. 청구항 1에 있어서,
    상기 맵 연산 가속기는,
    상기 맵 노드의 지역 파일 시스템에 저장된 복수 개의 데이터 블록을 읽어들이는 데이터 블록 입출력부;
    상기 데이터 블록 입출력부에서 읽은 상기 복수 개의 데이터 블록을 병합하여 데이터 스트림을 생성하는 데이터 블록 병합부; 및
    상기 데이터 스트림의 전송을 위한 전송 채널을 생성하고, 상기 리듀스 연산 가속기의 요청에 따라 상기 데이터 스트림을 상기 전송 채널을 통하여 상기 리듀스 노드로 송신하는 전송 채널 제어부를 포함하는, 맵리듀스 연산 가속 시스템.
  7. 청구항 6에 있어서,
    상기 전송 채널은 RDMA(Remote Direct Memory Access) 채널 또는 이더넷(Ethernet) 채널 중 어느 하나인, 맵리듀스 연산 가속 시스템.
  8. 청구항 6에 있어서,
    상기 전송 채널 제어부는 상기 리듀스 연산 가속기의 요청에 따라 하나 이상의 서버측 채널 연결자를 생성하고, 생성된 상기 서버측 채널 연결자를 통하여 상기 리듀스 연산 가속기로 상기 데이터 스트림을 송신하는, 맵리듀스 연산 가속 시스템.
  9. 청구항 1에 있어서,
    상기 리듀스 노드는, 상기 마스터 노드의 리듀스 연산 요청에 따라 상기 하나 이상의 리듀스 연산 가속기를 생성하는 리듀스 연산 가속 제어기를 더 포함하는, 맵리듀스 연산 가속 시스템.
  10. 청구항 9에 있어서,
    상기 리듀스 연산 가속 제어기는, 상기 맵 노드로부터 상기 전송 채널 정보를 수신하는 경우, 생성된 상기 리듀스 연산 가속기로 수신된 전송 채널 정보를 이용하여 상기 데이터 스트림을 수신할 것을 요청하는, 맵리듀스 연산 가속 시스템.
  11. 청구항 1에 있어서,
    상기 리듀스 연산 가속기는, 상기 리듀스 노드의 메모리 상에서 상기 데이터 스트림으로부터 상기 복수 개의 데이터 블록을 복원하는, 맵리듀스 연산 가속 시스템.
  12. 청구항 1에 있어서,
    상기 리듀스 연산 가속기는,
    상기 맵 연산 가속기 측에 생성된 상기 전송 채널을 통하여 상기 데이터 스트림을 수신하는 전송 채널 제어부;
    수신된 상기 데이터 스트림으로부터 상기 복수 개의 데이터 블록을 복원하는 데이터 블록 분리부; 및
    복원된 상기 복수 개의 데이터 블록을 상기 리듀스 노드의 리듀스 연산기로 제공하는 데이터 블록 입출력부를 포함하는, 맵리듀스 연산 가속 시스템.
  13. 청구항 12에 있어서,
    상기 전송 채널 제어부는, 하나 이상의 클라이언트측 채널 연결자를 생성하고, 생성된 상기 클라이언트측 채널 연결자를 통하여 상기 맵 연산 가속기로부터 상기 데이터 스트림을 수신하는, 맵리듀스 연산 가속 시스템.
  14. 청구항 13에 있어서,
    상기 리듀스 연산 가속기는, 상기 데이터 스트림의 수신이 완료되는 경우 상기 맵 연산 가속기로 채널 연결 해제 요청을 송신하며,
    상기 채널 연결 해제 요청은, 생성된 상기 클라이언트측 채널 연결자의 개수를 포함하는, 맵리듀스 연산 가속 시스템.
  15. 청구항 14에 있어서,
    상기 채널 연결 해제 요청을 수신한 상기 맵 연산 가속기는,
    상기 리듀스 연산 가속기로부터 수신된 채널 연결자 개수만큼의 연결 해제 메시지가 수신되는 경우, 상기 리듀스 연산 가속기로 상기 채널 연결 해제 요청에 대한 응답을 송신하고 상기 리듀스 연산 가속기와의 채널 연결을 해제하는, 맵리듀스 연산 가속 시스템.
  16. 마스터 노드의 맵 연산 요청에 따라 맵 연산을 수행하는 하나 이상의 맵 노드, 및 상기 맵 연산 결과 데이터를 이용하여 리듀스 연산을 수행하는 하나 이상의 리듀스 노드를 포함하는 맵리듀스 연산 가속 시스템에서의 맵리듀스 연산 가속 방법으로서,
    상기 맵 노드의 하나 이상의 맵 연산 가속기에서, 상기 맵 연산의 결과 생성되는 복수 개의 데이터 블록들을 병합하여 데이터 스트림을 생성하고, 상기 데이터 스트림의 전송을 위한 전송 채널을 생성하는 단계;
    상기 리듀스 노드의 하나 이상의 리듀스 연산 가속기에서, 상기 전송 채널을 통하여 상기 하나 이상의 맵 연산 가속기로부터 상기 데이터 스트림을 수신하는 단계; 및
    상기 하나 이상의 리듀스 연산 가속기에서, 수신된 상기 데이터 스트림으로부터 상기 복수 개의 데이터 블록을 복원하여 상기 리듀스 연산을 위해 제공하는 단계를 포함하는, 맵리듀스 연산 가속 방법.
  17. 청구항 16에 있어서,
    상기 전송 채널을 생성하는 단계의 수행 전, 상기 맵 노드의 맵 연산 가속기에서, 상기 맵 연산 요청에 따라 상기 하나 이상의 맵 연산 가속기를 생성하는 단계를 더 포함하는, 맵리듀스 연산 가속 방법.
  18. 청구항 17에 있어서,
    상기 하나 이상의 맵 연산 가속기를 생성하는 단계는, 기 생성된 맵 연산 가속기로부터 연산 가속기 추가 요청이 수신되는 경우, 하나 이상의 맵 연산 가속 제어기를 추가적으로 생성하는 단계를 더 포함하는, 맵리듀스 연산 가속 방법.
  19. 청구항 17에 있어서,
    상기 맵 연산 가속 제어기는, 상기 리듀스 노드로부터 상기 데이터 스트림 전송 요청이 수신되는 경우, 상기 데이터 스트림 전송 요청을 생성된 상기 전송 채널로 재지향하는, 맵리듀스 연산 가속 방법.
  20. 청구항 16에 있어서,
    상기 전송 채널은 RDMA(Remote Direct Memory Access) 채널 또는 이더넷(Ethernet) 채널 중 어느 하나인, 맵리듀스 연산 가속 방법.
  21. 청구항 16에 있어서,
    상기 맵 연산 가속기는, 상기 리듀스 연산 가속기의 요청에 따라 하나 이상의 서버측 채널 연결자를 생성하고, 생성된 상기 서버측 채널 연결자를 통하여 상기 리듀스 연산 가속기로 상기 데이터 스트림을 송신하는, 맵리듀스 연산 가속 방법.
  22. 청구항 16에 있어서,
    상기 데이터 스트림을 수신하는 단계의 수행 전, 상기 리듀스 노드의 리듀스 연산 가속 제어기에서, 상기 마스터 노드의 리듀스 연산 요청에 따라 상기 하나 이상의 리듀스 연산 가속기를 생성하는 단계를 더 포함하는, 맵리듀스 연산 가속 방법.
  23. 청구항 22에 있어서,
    상기 리듀스 연산 가속 제어기는, 상기 맵 연산 가속 제어기로부터 상기 전송 채널 정보가 수신되는 경우, 수신된 상기 전송 채널 정보를 이용하여 상기 데이터 스트림을 수신할 것을 상기 리듀스 연산 가속기로 요청하는, 맵리듀스 연산 가속 방법.
  24. 청구항 22에 있어서,
    상기 데이터 스트림을 수신하는 단계는,
    하나 이상의 클라이언트측 채널 연결자를 생성하고, 상기 전송 채널 정보를 이용하여 상기 클라이언트측 채널 연결자 및 상기 맵 연산 가속기 측에 생성된 서버측 채널 연결자 간의 채널 연결을 구성하여 상기 맵 연산 가속기로부터 상기 데이터 스트림을 수신하는, 맵리듀스 연산 가속 방법.
  25. 청구항 24에 있어서,
    상기 데이터 스트림을 수신하는 단계의 수행 후, 상기 리듀스 연산 가속기에서, 상기 맵 연산 가속기로 채널 연결 해제 요청을 송신하는 단계를 더 포함하며,
    상기 채널 연결 해제 요청은, 상기 리듀스 연산 가속기 및 상기 맵 연산 가속기 간에 구성된 채널 연결 개수를 포함하는, 맵리듀스 연산 가속 방법.
  26. 청구항 25에 있어서,
    상기 채널 연결 해제 요청을 수신한 상기 맵 연산 가속기는,
    수신된 상기 채널 연결 개수만큼의 연결 해제 메시지가 상기 리듀스 연산 가속기로부터 수신되는 경우, 상기 리듀스 연산 가속기로 상기 채널 연결 해제 요청에 대한 응답을 송신하고 상기 리듀스 연산 가속기와의 채널 연결을 해제하는, 맵리듀스 연산 가속 방법.
  27. 컴퓨터상에서 실행 가능한 프로그램 코드가 저장되는 메모리; 및
    상기 메모리를 이용하여 상기 프로그램 코드를 실행하는 프로세서를 포함하는 장치로서,
    상기 프로그램 코드는,
    맵 연산의 결과 생성되는 복수 개의 데이터 블록들을 상기 메모리 내에서 병합하여 하나의 데이터 스트림을 생성하고, 상기 데이터 스트림의 전송을 위한 전송 채널을 생성하는 과정;
    상기 전송 채널을 통하여 상기 데이터 스트림을 송수신하는 과정; 및
    전송 채널을 통하여 수신되는 데이터 스트림을 상기 메모리 내에서 분할하여 복수 개의 데이터 블록들을 복원하고, 복원된 상기 복수 개의 데이터 블록들을 리듀스 연산을 위해 제공하는 과정;
    을 포함하는 과정들을 수행하기 위한 것인, 장치.
  28. 프로그램 코드를 포함하는 컴퓨터 판독가능 기록 매체로서,
    상기 프로그램 코드는 컴퓨터에 의해 실행될 때 상기 컴퓨터로 하여금,
    맵 연산의 결과 생성되는 복수 개의 데이터 블록들을 병합하여 하나의 데이터 스트림을 생성하고, 상기 데이터 스트림의 전송을 위한 전송 채널을 생성하는 과정;
    상기 전송 채널을 통하여 상기 데이터 스트림을 송수신하는 과정; 및
    전송 채널을 통하여 수신되는 데이터 스트림을 분할하여 복수 개의 데이터 블록들을 복원하고, 복원된 상기 복수 개의 데이터 블록들을 리듀스 연산을 위해 제공하는 과정;
    을 포함하는 과정들을 수행하도록 하는, 컴퓨터 판독가능 기록 매체.
KR20130062302A 2013-05-31 2013-05-31 맵리듀스 연산 가속 시스템 및 방법 Expired - Fee Related KR101480867B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR20130062302A KR101480867B1 (ko) 2013-05-31 2013-05-31 맵리듀스 연산 가속 시스템 및 방법
US14/011,946 US9753783B2 (en) 2013-05-31 2013-08-28 System and method for accelerating mapreduce operation
CN201310381432.7A CN104216865B (zh) 2013-05-31 2013-08-28 映射和化简运算加速系统及方法
PCT/KR2013/007790 WO2014193037A1 (ko) 2013-05-31 2013-08-29 맵리듀스 연산 가속 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130062302A KR101480867B1 (ko) 2013-05-31 2013-05-31 맵리듀스 연산 가속 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20140141053A KR20140141053A (ko) 2014-12-10
KR101480867B1 true KR101480867B1 (ko) 2015-01-09

Family

ID=51986312

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130062302A Expired - Fee Related KR101480867B1 (ko) 2013-05-31 2013-05-31 맵리듀스 연산 가속 시스템 및 방법

Country Status (4)

Country Link
US (1) US9753783B2 (ko)
KR (1) KR101480867B1 (ko)
CN (1) CN104216865B (ko)
WO (1) WO2014193037A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10148736B1 (en) * 2014-05-19 2018-12-04 Amazon Technologies, Inc. Executing parallel jobs with message passing on compute clusters
US10095654B2 (en) * 2014-09-30 2018-10-09 International Business Machines Corporation Mapping and reducing
US9923726B2 (en) * 2014-12-03 2018-03-20 International Business Machines Corporation RDMA transfers in mapreduce frameworks
CN105045566B (zh) * 2015-08-13 2018-11-20 山东华宇航天空间技术有限公司 一种嵌入式并行计算系统及采用其的并行计算方法
CN105141603B (zh) * 2015-08-18 2018-10-19 北京百度网讯科技有限公司 通信数据传输方法及系统
WO2017113278A1 (zh) * 2015-12-31 2017-07-06 华为技术有限公司 数据处理方法、装置和系统
KR102592611B1 (ko) 2016-02-18 2023-10-23 한국전자통신연구원 맵 리듀스 장치, 맵 리듀스 제어장치 및 그 방법
KR102002246B1 (ko) * 2018-02-28 2019-10-01 연세대학교 산학협력단 빅데이터 처리를 위한 자원 분배 방법 및 장치
US11474700B2 (en) * 2019-04-30 2022-10-18 Intel Corporation Technologies for compressing communication for accelerator devices
US10826801B1 (en) 2019-07-31 2020-11-03 Bank Of America Corporation Multi-level data channel and inspection architectures
US11115310B2 (en) 2019-08-06 2021-09-07 Bank Of America Corporation Multi-level data channel and inspection architectures having data pipes in parallel connections
US11470046B2 (en) 2019-08-26 2022-10-11 Bank Of America Corporation Multi-level data channel and inspection architecture including security-level-based filters for diverting network traffic

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090065134A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 작업 분산 병렬 처리 시스템 및 방법
KR20120026516A (ko) * 2009-05-28 2012-03-19 마이크로소프트 코포레이션 민첩한 데이터 센터 네트워크 아키텍처

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19906432C1 (de) * 1999-02-16 2000-06-21 Fraunhofer Ges Forschung Verfahren und Vorrichtung zum Erzeugen eines Datenstroms und Verfahren und Vorrichtung zum Abspielen eines Datenstroms
US20030043794A1 (en) * 2001-09-06 2003-03-06 Cayton Phil C. Data stream multiplexing in data network
US8374175B2 (en) * 2004-04-27 2013-02-12 Hewlett-Packard Development Company, L.P. System and method for remote direct memory access over a network switch fabric
US7650331B1 (en) * 2004-06-18 2010-01-19 Google Inc. System and method for efficient large-scale data processing
US8112606B2 (en) * 2006-02-06 2012-02-07 Siemens Aktiengesellschaft Method for storing a data block containing data for controlling a technical process, and control and automation device
US7817634B2 (en) * 2006-06-30 2010-10-19 Intel Corporation Network with a constrained usage model supporting remote direct memory access
US8677003B1 (en) * 2007-10-11 2014-03-18 Liveops, Inc. Distributed processing of streaming data on an event protocol
US20100205075A1 (en) * 2009-02-11 2010-08-12 Yahoo! Inc. Large-scale item affinity determination using a map reduce platform
US8510538B1 (en) * 2009-04-13 2013-08-13 Google Inc. System and method for limiting the impact of stragglers in large-scale parallel data processing
US8397293B2 (en) * 2009-12-31 2013-03-12 International Business Machines Corporation Suspicious node detection and recovery in mapreduce computing
CN102209087B (zh) * 2010-03-31 2014-07-09 国际商业机器公司 在具有存储网络的数据中心进行MapReduce数据传输的方法和系统
US8595234B2 (en) * 2010-05-17 2013-11-26 Wal-Mart Stores, Inc. Processing data feeds
US9170848B1 (en) * 2010-07-27 2015-10-27 Google Inc. Parallel processing of data
US8260826B2 (en) * 2010-09-23 2012-09-04 Hewlett-Packard Development Company, L.P. Data processing system and method
KR101158864B1 (ko) * 2010-10-22 2012-06-25 동국대학교 경주캠퍼스 산학협력단 맵리듀스 기반의 대용량 데이터 분산 계산 방법 및 그 시스템
KR101502896B1 (ko) * 2011-02-14 2015-03-24 주식회사 케이티 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
US9798831B2 (en) * 2011-04-01 2017-10-24 Google Inc. Processing data in a MapReduce framework
US8924426B2 (en) * 2011-04-29 2014-12-30 Google Inc. Joining tables in a mapreduce procedure
US8954967B2 (en) * 2011-05-31 2015-02-10 International Business Machines Corporation Adaptive parallel data processing
US8903748B2 (en) * 2011-06-27 2014-12-02 International Business Machines Corporation Systems and methods for large-scale randomized optimization for problems with decomposable loss functions
US9053067B2 (en) * 2011-09-30 2015-06-09 International Business Machines Corporation Distributed data scalable adaptive map-reduce framework
US9122535B2 (en) * 2011-11-22 2015-09-01 Netapp, Inc. Optimizing distributed data analytics for shared storage
CN102426609B (zh) * 2011-12-28 2013-02-13 厦门市美亚柏科信息股份有限公司 一种基于MapReduce编程架构的索引生成方法和装置
WO2013153029A1 (en) * 2012-04-12 2013-10-17 Telefonica, S.A. Method and system for managing and processing data in a distributed computing platform
US8990294B2 (en) * 2012-04-18 2015-03-24 International Business Machines Corporation File system optimization by log/metadata analysis
CN102685221B (zh) * 2012-04-29 2014-12-03 华北电力大学(保定) 一种状态监测数据的分布式存储与并行挖掘方法
CN102831102A (zh) * 2012-07-30 2012-12-19 北京亿赞普网络技术有限公司 一种在计算机集群上进行矩阵乘积运算的方法和系统
US20140059552A1 (en) * 2012-08-24 2014-02-27 International Business Machines Corporation Transparent efficiency for in-memory execution of map reduce job sequences
EP2746941A1 (en) * 2012-12-20 2014-06-25 Thomson Licensing Device and method for optimization of data processing in a MapReduce framework
US20150358425A1 (en) * 2013-01-22 2015-12-10 Hewlett-Packard Development Company, L.P. Processing Data Streams
US9152469B2 (en) * 2013-01-28 2015-10-06 Hewlett-Packard Development Company, L.P. Optimizing execution and resource usage in large scale computing
WO2014142809A1 (en) * 2013-03-12 2014-09-18 Empire Technology Development, Llc Accelerator buffer access

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090065134A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 작업 분산 병렬 처리 시스템 및 방법
KR20120026516A (ko) * 2009-05-28 2012-03-19 마이크로소프트 코포레이션 민첩한 데이터 센터 네트워크 아키텍처

Also Published As

Publication number Publication date
CN104216865B (zh) 2017-08-08
CN104216865A (zh) 2014-12-17
US9753783B2 (en) 2017-09-05
WO2014193037A1 (ko) 2014-12-04
US20140358869A1 (en) 2014-12-04
KR20140141053A (ko) 2014-12-10

Similar Documents

Publication Publication Date Title
KR101480867B1 (ko) 맵리듀스 연산 가속 시스템 및 방법
US10469585B2 (en) Data processing and data movement in cloud computing environment
CA2948914C (en) Systems and methods for fault tolerant communications
WO2012086919A2 (ko) 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
CN108063813B (zh) 一种集群环境下密码服务网络并行化的方法与系统
CN108028833A (zh) 一种nas数据访问的方法、系统及相关设备
US10819641B2 (en) Highly available servers
CN111158949A (zh) 容灾架构的配置方法、切换方法及装置、设备和存储介质
CN114281600B (zh) 一种容灾备份和容灾恢复方法、装置、设备及存储介质
US20230359383A1 (en) Fault tolerant reservation state distribution for multi-partition logical volumes
CN104268001A (zh) 一种创建虚拟机的方法和创建虚拟机的装置
CN110233791B (zh) 数据去重方法和装置
CN106209933A (zh) 源主机、迁移架构及数据迁移方法
US12086114B2 (en) Asynchronous metadata replication and migration between compute sites
CN109992447B (zh) 数据复制方法、装置及存储介质
CN107707665A (zh) 一种网络存储方法、装置、系统及计算机可读存储介质
US8380938B2 (en) Providing shared access to data storage resources across cluster computing environment boundaries
EP1256050B1 (en) High speed data transfer mechanism
CN119276935A (zh) 一种基于多数据中心计算的统一控制管理实现方法和系统
CN118035185A (zh) 用于缓存数据的方法、装置、电子设备和程序产品
CN119557117A (zh) 基于云原生的极速交易系统、方法、设备、介质及产品
WO2023201052A1 (en) Asynchronous metadata replication and migration between compute sites
CN115203334A (zh) 数据处理方法、装置、电子设备和存储介质
CN119645991A (zh) 一种数据处理的方法、相应装置及云系统

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20130531

A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20131108

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20130531

Comment text: Patent Application

PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20141226

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20150105

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20150105

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20181016