KR20160062683A - 이종 스토리지를 구비하는 컴퓨팅 시스템 및 그것의 동작 방법 - Google Patents

이종 스토리지를 구비하는 컴퓨팅 시스템 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20160062683A
KR20160062683A KR1020150153950A KR20150153950A KR20160062683A KR 20160062683 A KR20160062683 A KR 20160062683A KR 1020150153950 A KR1020150153950 A KR 1020150153950A KR 20150153950 A KR20150153950 A KR 20150153950A KR 20160062683 A KR20160062683 A KR 20160062683A
Authority
KR
South Korea
Prior art keywords
command
replication
data content
block
target device
Prior art date
Application number
KR1020150153950A
Other languages
English (en)
Inventor
아나히타 셔예스테
즈비 구즈
이재환
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20160062683A publication Critical patent/KR20160062683A/ko

Links

Images

Classifications

    • G06F17/30212
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F17/30215
    • G06F17/30227
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 이종 스토리지를 구비하는 컴퓨팅 시스템에 관한 것이다. 본 발명에 따른 컴퓨팅 시스템은 고성능 장치를 포함하는 데이터 노드를 결정하고, 타겟 장치를 선택하도록 구성되는 네임 노드 블록, 그리고 상기 데이터 노드와 연결되고, 완료인 트랜잭션 상태가 제공된 후 제 1 카피 라이트 커맨드로부터의 데이터 컨텐츠를 상기 타겟 장치로 복제하기 위한 백그라운드 레플리케이션 동작을 수행하도록 구성되는 레플리케이션 트래커 블록을 포함하되, 상기 데이터 노드는 상기 네임 노드 블록과 연결되고, 상기 고성능 장치에 대해 상기 제 1 카피 라이트 커맨드를 수행하고, 상기 제 1 카피 라이트 커맨드가 완료된 경우 상기 완료인 트랜잭션 상태를 제공하도록 구성된다.

Description

이종 스토리지를 구비하는 컴퓨팅 시스템 및 그것의 동작 방법{COMPUTING SYSTEM WITH heterogeneous storage AND METHOD OF OPERATION THEREOF}
본 발명은 컴퓨팅 시스템에 관한 것으로, 보다 구체적으로는 이종 스토리지를 구비하는 시스템에 관한 것이다.
현대의 소비자 및 컴퓨팅 시스템, 서버, 어플라이언스, 텔레비젼, 셀룰러 폰, 자동차, 위성, 및 조합 장치들과 같은, 산업 전자 기기는 현대 생활을 지원하기 위한 증가하는 레벨의 기능성을 제공한다. 비록 필요로 하는 성능의 요구는 소비자 제품과 기업 또는 상업 제품들 사이에서 서로 다를 수 있지만, 효율적으로 데이터를 저장하기 위한 공통의 요구가 존재한다.
현존하는 기술들에 대한 연구 및 개발은 무수히 다른 방향들을 취하고 있다. 일부는 디스크 기반 스토리지를 데이터 백업을 수행하기 위해 사용한다. 더 구체적으로, 분산 스토리지 시스템은 동종 하드웨어 상에서 구동된다. 다른 것들은 데이터를 저장하기 위한 클라우드 상에서 동작한다.
따라서, 이종으로 데이터를 효율적으로 저장하기 위한 이종 스토리지 메커니즘을 가지는 컴퓨팅 시스템에 대한 필요성은 여전히 남아있다. 증가하는 소비자의 기대와 시장에서의 유의미한 차별성이 있는 제품의 시장 출시 기회의 감소와 더불어, 증가하는 상업적인 경쟁 압력의 관점에서, 이러한 문제점들에 대한 정답을 찾는 것은 점점 중요해지고 있다. 게다가, 비용의 감소, 효율 및 성능의 개선, 및 경쟁적인 압력들을 만족하기 위한 요구에 이러한 문제점들에 대한 정답을 찾기 위한 중요한 필요성에 대한 더 큰 긴급성이 더해진다. 이러한 문제점들에 대한 해답을 오랜 시간 찾고자 하였으나 앞서 개발된 사항은 더 효율적인 해답에 대한 시사나 암시를 하지 못하였고, 따라서, 이러한 문제들에 대한 해답은 기술분야에서 통상의 지식을 가진 자에게 오랜 시간 동안 풀리지 않았다.
본 발명이 목적은 이종 스토리지를 구비하는 컴퓨팅 시스템의 쓰기 성능을 개선하는데 있다.
본 발명에 따른 컴퓨팅 장치는, 고성능 장치를 포함하는 데이터 노드를 결정하고, 타겟 장치를 선택하도록 구성되는 네임 노드 블록, 그리고 상기 데이터 노드와 연결되고, 완료인 트랜잭션 상태가 제공된 후 제 1 카피 라이트 커맨드로부터의 데이터 컨텐츠를 상기 타겟 장치로 복제하기 위한 백그라운드 레플리케이션 동작을 수행하도록 구성되는 레플리케이션 트래커 블록을 포함하되, 상기 데이터 노드는 상기 네임 노드 블록과 연결되고, 상기 고성능 장치에 대해 상기 제 1 카피 라이트 커맨드를 수행하고, 상기 제 1 카피 라이트 커맨드가 완료된 경우 상기 완료인 트랜잭션 상태를 제공하도록 구성된다.
실시 예로서, 상기 레플리케이션 트래커 블록은 상기 데이터 노드의 또 다른 장치를 나타내는 타겟 장치로 상기 데이터 컨텐츠를 복제하기 위한 백그라운드 레플리케이션 동작을 수행하도록 구성된다.
실시 예로서, 상기 레플리케이션 트래커 블록은 저성능 장치를 나타내는 타겟 장치로 상기 데이터 컨텐츠를 복제하기 위한 백드라운드 레플리케이션을 수행하도록 구성된다.
실시 예로서, 상기 레플리케이션 트래커 블록은 상기 제 1 카피 라이트 명령이 완료되는 스토리지 유닛과는 다른 스토리지 유닛에 상기 데이터 컨텐츠를 기입하기 위해 백그라운드 레플리케이션 동작을 위한 라이트 커맨드를 실행하도록 구성된다.
실시 예로서, 상기 레플리케이션 트래커 블록은 상기 제 1 카피 라이트 커맨드, 상기 백그라운드 레플리케이션 동작, 또는 그것들의 조합의 완료가 실패한 것을 나타내는 트랜잭션 상태에 기초하여 재시작 요청을 전송하도록 구성된다.
실시 예로서, 상기 데이터 노드는 상기 제 1 카피 라이트 커맨드를 수행하기 위해 중간 스토리지로부터 상기 데이터 노드로 상기 데이터 컨텐츠를 수신하도록 구성된다.
실시 예로서, 상기 제 1 카피 라이트 커맨드, 상기 백그라운드 레플리케이션 동작, 또는 그것들의 조합의 완료를 나타내는 트랜잭션 상태에 기초하여 상기 데이터 컨텐츠를 삭제하도록 구성되는 중간 스토리지를 더 포함한다.
실시 예로서, 상기 데이터 노드는 HDD(hard disk drive)를 통해 SSD(solid state drive)에 상기 제 1 카피 라이트 커맨드를 수행하기 위한 라이트 커맨드를 수신하도록 구성된다.
실시 예로서, 상기 레플리케이션 트래커 블록은 SSD 상에서 상기 제 1 카피 라이트 커맨드가 수행된 후 상기 백드라운드 레플리케이션을 HDD에 대해 수행하도록 구성된다.
실시 예로서, 상기 레플리케이션 트래커 블록은 상기 데이터 컨텐츠를 복제하기 위한 라이트 커맨드를 재발행하기 위한 재시작 요청을 전송하도록 구성된다.
본 발명에 따른 컴퓨팅 시스템의 동작 방법은, 고성능 장치에 라이팅을 위한 제 1 카피 라이트 커맨드를 수행하는 단계, 상기 제 1 카피 라이트 커맨드의 완료를 나타내는 트랜잭션 상태를 제공하는 단계, 그리고 레플리케이션 트래커 블록이 완료인 트랜잭션 상태가 제공된 후 상기 제 1 카피 라이트 커맨드로부터의 데이터 컨텐츠를 타겟 장치에 복제하기 위한 백드라운드 레플리케이션 동작을 수행하는 단계를 포함한다.
실시 예로서, 상기 백드라운드 레플리케이션 동작을 수행하는 단계는, 상기 제 1 카피 라이트 커맨드가 완료된 데이터 노드와는 다른 데이터 노드를 나타내는 타겟 장치에 상기 데이터 컨텐츠를 복제하기 위한 상기 백그라운드 레플리케이션 동작을 수행하는 단계를 포함한다.
실시 예로서, 상기 백그라운드 레플리케이션 동작을 수행하는 단계는, 저성능 장치를 나타내는 타겟 장치에 상기 데이터 컨텐츠를 복제하기 위한 상기 백드라운드 레플리케이션 동작을 수행하는 단계를 포함한다.
실시 예로서, 상기 제 1 카피 라이트 커맨드가 완료된 스토리지 유닛과는 다른 스토리지 유닛에 상기 데이터 컨텐츠를 기입하기 위한 백드라운드 레플리케이션 동작을 위한 라이트 커맨드를 실행하는 단계를 더 포함한다.
실시 예로서, 상기 제 1 카피 라이트 커맨드, 상기 백그라운드 레플리케이션 동작, 또는 그것들의 조합의 완료 실패를 나타내는 트랜잭션 상태에 기초하여 재시작 요청을 전송하는 단계를 더 포함한다.
본 발명에 따른 컴퓨터 블록에 의해 실행되는 명령어들을 포함하는 비일시적 컴퓨터 판독 가능 매체에 저장된 프로그램은, 고성능 장치에 라이팅을 위한 제 1 카피 라이트 커맨드를 수행하는 단계, 상기 제 1 카피 라이트 커맨드의 완료를 나타내는 트랜잭션 상태를 제공하는 단계, 그리고 레플리케이션 트래커 블록이 상기 완료인 트랜잭션 상태가 제공된 후 상기 제 1 카피 라이트 커맨드로부터의 데이터 컨텐츠를 타겟 장치에 복제하기 위한 백드라운드 레플리케이션 동작을 수행하는 단계를 포함한다.
실시 예로서, 상기 백그라운드 레플리케이션 동작을 수행하는 단계는,
상기 제 1 카피 라이트 커맨드가 완료된 데이터 노드와는 다른 데이터 노드를 나타내는 타겟 장치에 상기 데이터 컨텐츠를 복제하기 위한 백그라운드 레플리케이션 동작을 수행하는 단계를 포함한다.
실시 예로서, 상기 백그라운드 레플리케이션 동작을 수행하는 단계는,
저성능 장치를 나타내는 타겟 장치에 상기 데이터 컨텐츠를 복제하기 위한 백드라운드 레플리케이션 동작을 수행하는 단계를 포함한다.
실시 예로서, 상기 제 1 카피 라이트 커맨드가 완료된 스토리지 유닛과는 다른 스토리지 유닛에 상기 데이터 컨텐츠를 기입하기 위한 백드라운드 레플리케이션을 위한 라이트 커맨드를 실행하는 단계를 더 포함한다.
실시 예로서, 상기 제 1 카피 라이트 커맨드, 상기 백그라운드 레플리케이션 동작, 또는 그것들의 조합의 완료 실패를 나타내는 트랜잭션 상태에 기초하여 재시작 요청을 전송하는 단계를 더 포함한다.
본 발명에 따르면, 이종 스토리지를 구비하는 컴퓨팅 시스템의 쓰기 동작의 효율성이 개선될 수 있다.
도 1a는 본 발명의 일 실시 예에 따른 이종 스토리지 메커니즘을 구비하는 컴퓨팅 시스템을 보여주는 도면이다.
도 1b는 본 발명의 다른 실시 예에 따른 이종 스토리지 메커니즘을 구비하는 컴퓨팅 시스템을 보여주는 도면이다.
도 2는 본 발명에 또 다른 실시 예에 따른 이종 스토리지 메커니즘을 구비하는 컴퓨팅 시스템을 보여주는 도면이다.
도 3은 본 발명에 따른 컴퓨팅 시스템의 제어 흐름을 보여주는 도면이다.
도 4는 본 발명의 실시 예를 구비하는 컴퓨팅 시스템의 어플리케이션의 예시들을 보여주는 도면이다.
도 5는 본 발명의 실시 예에 다른 컴퓨팅 시스템의 동작 방법을 보여주는 흐름도이다.
다양한 예시적인 실시 예들은 타겟 장치에 데이터 컨텐츠를 기입하는 성능을 향상시키기 위한 백그라운드 레플리케이션 동작을 수행하는 컴퓨팅 시스템을 포함한다. 데이터 컨텐츠의 첫 번째 카피가 제 1 타겟 장치에 라이트된 후 그 라이트 동작이 완료되었음이 표시되는 경우, 컴퓨팅 시스템은 제 2 타겟 장치에 데이터 컨텐츠를 복제하는 것을 시작할 것이다. 결과적으로, 컴퓨팅 시스템은 타겟 장치의 하드웨어 비용 대비 성능, 소모전력 대비 성능, 또는 그것들의 조합을 개선할 수 있다.
다양한 예시적인 실시 예들은 데이터 컨텐츠를 타겟 장치에 라이트하기 위한 비용 대비 성능을 향상시키기 위해 제 1 카피 라이트 커맨드 동작 동안, 동작 이후, 또는 그것들의 조합 동안 백드라운드 레플리케이션 동작을 수행하는 컴퓨팅 장치를 포함한다. 제 1 카피 라이트 커맨드를 위해 이용되는 스토리지 미디어 타입과는 다른 스토리지 미디어에 백그라운드 레플리케이션 동작을 수행하는 것에 의해, 컴퓨팅 시스템은 다양한 타입들의 스토리지 미디어를 포함하는 이종 아키텍처에 데이터 컨텐츠를 효율적으로 라이트할 수 있다. 결과적으로, 컴퓨팅 시스템의 동작 성능 및 효율성이 향상될 수 있다.
다음 실시 예들은 기술분야에서 통상의 지식을 가진 자가 명세서에서 설명된 실시 예들을 만들고 그리고 사용할 수 있도록 충분히 상세하게 설명된다. 다른 실시 예들이 본 개시 내용에 기초하여 명백할 것으로 이해되어야 하고, 그 시스템, 프로세스, 또는 기계적 변경은 실시 예의 범위를 벗어나지 않고 이루어질 수 있다.
아래의 설명에서, 많은 특정한 세부 사항들이 실시 예의 자세한 이해를 제공하기 위해 주어졌다. 그러나, 이러한 특정한 세부 사항들 없이도 실시 예들이 실시될 수 있음을 이해할 수 있을 것이다. 실시 예를 모호하게 하는 것을 방지하기 위해, 일부 잘 알려진 회로들, 시스템 구성들, 및 처리 단계들은 상세하게 개시되지 않는다.
시스템의 실시 예를 보여주는 도면들은, 반 도식적이고, 그리고 축적이 아니며, 특히 일부 치수들은 표현의 명확성을 위한 것이며, 도면에서 과장되게 도시되었다. 유사하게, 설명의 편의를 위해 도면에서 대체로 유사한 뷰 방향을 표시하더라도 도면의 이러한 묘사는 대부분 임의적이다. 일반적으로, 실시 예는 임의의 방향으로 조작될 수 있다. 실시 예는 설명의 편의를 위해 제 1 실시, 예 2 실시 등으로 넘버링 되었지만, 이것이 어떤 다른 의미가 있거나 또는 실시 예에 대한 제한을 제공하는 것은 아니다.
본 명세서에서 언급된 용어 '모듈'은 용어가 사용된 문맥에 따라 본 명세서에서 설명된 실시 예에서 소프트웨어, 하드웨어, 또는 그것들의 조합으로서 구현될 수 있거나, 또는 소프트웨어, 하드웨어, 또는 그것들의 조합을 포함할 수 있다. 예시적으로, 소프트웨어는 기계코드, 펌웨어, 임베디드 코드, 및 어플리케이션 소프트웨어일 수 있다. 소프트웨어는 또한 함수, 함수 호출, 코드 블록, 또는 그것들의 조합을 포함할 수 있다. 또한 예시적으로, 하드웨어는 게이트들, 회로망, 프로세서, 컴퓨터, 집적회로, 집적회로 코어들, 압력 센서, 관성 센서, 마이크로전자역학 시스템(microelectromechanical system, MEMS), 수동 장치들, 소프트웨어 함수를 수행하기 위한 명령어를 가지는 물리적 비-일시적 메모리 미디어, 그 안의 일부, 또는 그것들의 조합일 수 있다.
도 1a는 본 발명의 일 실시 예에 따른 이종 스토리지 매커니즘을 구비하는 컴퓨팅 시스템(100)을 보여준다. 도 1은 이종 스토리지 미디어가 사용되는 컴퓨팅 시스템의 일 실시 예를 도시한다. 이종 스토리지는 데이터 컨텐츠를 복수의 스토리지 미디어 타입(104)에 라이트하는 것을 나타낼 수 있다. 컴퓨팅 시스템(100)의 구성요소들 사이의 상호작용은 점선인 화살표로 표시되었다.
컴퓨팅 시스템(100)은 컴퓨팅 블록(101)을 포함할 수 있다. 컴퓨팅 블록(101)은 호스트 이종 스토리지 아키텍처, 동종 스토리지 아키텍처, 또는 그것들의 조합에 대한 하드웨어 장치 또는 하드웨어 장치들의 집합을 나타낼 수 있다. 보다 구체적인 내용은 아래에서 기술될 것이다.
컴퓨팅 시스템(100)은 클라이언트 블록(106)을 포함할 수 있다. 클라이언트 블록(106)은 데이터 노드(108)와 상호작용한다. 예를 들어, 클라이언트 블록(106)은 데이터 컨텐츠(102)를 데이터 노드(108)에/로부터 라이트, 리드, 또는 그것들의 조합을 위한 커맨드를 발행할 수 있다. 클라이언트 블록(106)은 로직 게이트들 또는 회로망(아날로그 또는 디지털)과 같은, 하드웨어와 함께 구현될 수 있다. 예를 들어, 클라이언트 블록(106)은 하드웨어 유한 상태 머신(hardware finite state machine), 조합 논리(combinatorial logic), 또는 그것들의 조합과 함께 구현될 수 있다. 클라이언트 블록(106)은 데이터 노드(108)로부터 떨어져 있을 수 있다.
컴퓨팅 블록(101)은 데이터 노드(108)를 포함할 수 있다. 데이터 노드(108)는 데이터 컨텐츠(102)를 저장하기 위한 복수의 스토리지 유닛들의 클러스터일 수 있다. 스토리지 유닛(103)은 휘발성 메모리, 불휘발성 메모리, 내장 메모리, 외장 메모리, 또는 그것들의 조합일 수 있다. 데이터 노드(108)는 클라이언트 블록(106), 컴퓨팅 블록(101) 내의 다른 블록, 외부 시스템(미도시) 또는 그것들의 조합으로부터 커맨드, 데이터 컨텐츠(102), 또는 그것들의 조합을 수신하기 위한 인터페이스로서 표현될 수 있다. 데이터 노드(108)는 스토리지 미디어 타입(104) 내부에 복수의 스토리지 유닛(103)을 포함할 수 있다.
스토리지 미디어 타입(104)은 스토리지 유닛(103)의 카테고리이다. 스토리지 미디어 타입(104)은 데이터를 저장하는데 사용되는 기록 미디어, 기록 기술, 또는 그것들의 조합에 기초하여 구분될 수 있다. 스토리지 미디어 타입(104)은 쓰기 속도, 읽기 속도, 스토리지 커맨드들에 대한 레이턴시, 스루풋(throughput), 또는 그것들의 조합과 같은 다른 요인들에 의해 구분될 수 있다. 예를 들어, 스토리지 미디어 타입(104)은 고성능 장치(110)과 저성능 장치(111)을 포함할 수 있다.
용어 "고" 또는 "저"는 상대적인 용어이며 캐싱, 펌웨어, 네트워크 속도, 스루풋 레벨, 스토리지 용량, 또는 그것들의 조합을 포함하지만 여기에 제한되지는 않는 다양한 요인들에 따를 수 있다. 고성능 장치(110)는 저성능 장치(111)의 성능 메트릭스를 초과하는 성능 메트릭스(metrics)를 가지는 스토리지 유닛(103)을 나타낼 수 있다.
예시로서, 고성능 장치(110)는 데이터 컨텐츠(102)를 지속적으로 저장하기 위한 불휘발성 집적 회로 메모리로 구현될 수 있다. 또한 예시로서, 저성능 장치(111)는 데이터 컨텐츠(102)를 저장하기 위해 회전 또는 선형 이동 매체(linearly moving media)를 사용하는 스토리지 유닛(103)을 나타낼 수 있다. 또 다른 예시로서, 고성능 장치(110) 및 저성능 장치(111)는 불휘발성 메모리 장치들 또는 회전 매체와 같은, 동일하거나 또는 유사하지만 다른 요인들이 성능을 구분할 수 있는 기술들로 구현될 수 있다. 예시로서, 더 큰 캐시 용량은 고성능 장치(110) 또는 저성능 장치(111)로 간주되는 스토리지 유닛(103)의 성능을 구분할 수 있다.
예를 들어, 고성능 장치(110)는 저성능 장치(111)보다 더 빠른 캐싱 능력을 포함할 수 있다. 다른 예시로서, 고성능 장치(110)는 저성능 장치(111)보다 더 좋은 펌웨어를 포함할 수 있다. 또 다른 예시로서, 고성능 장치(110)는 저성능 장치(111)보다 더 빠른 통신 속도를 제공하는 네트워크에 연결될 수 있다. 또 다른 예시로서, 고성능 장치(110)는 저성능 장치(111)보다 더 빠른 데이터 처리에 따른 더 높은 스루풋 레벨을 가질 수 있다. 또 다른 예시로서, 고성능 장치(110)는 저성능 장치(111)보다 너 큰 저장 용량을 가질 수 있다.
예를 들어, 스토리지 미디어 타입(104)은 SSD(105), HDD(107), 또는 그것들의 조합을 포함할 수 있다. 더 구체적인 예시로서, 고성능 장치(110)는 SSD(105)로 나타낼 수 있다. 저성능 장치(111)는 HDD(107)로 나타낼 수 있다. 컴퓨팅 시스템9100)은 복수의 스토리지 미디어 타입(104)을 구비하는 복수의 스토리지 유닛(103)을 포함하는 데이터 노드(108)를 포함하는 이종 분산 파일 시스템을 제공할 수 있다. 예를 들어, SSD(105)는 높은 스루풋 장치로 나타낼 수 있고 그리고 HDD(107)는 낮은 스루풋 장치로 나타낼 수 있다.
또 다른 예시로서, 스토리지 미디어 타입(104)은 스토리지 성능에 따라 스토리지 유닛(103)을 분류할 수 있다. 스토리지 성능은 스루풋 레벨, 저장 용량, 또는 그것들의 조합을 포함할 수 있다. 더 구체적인 예시로서, 스토리지 유닛(103)의 일 예는 스토리지 유닛(103)의 다른 예에 비해 더 큰 쓰루풋을 가지는 스토리지 성능을 가질 수 있다. 결과적으로, 스토리지 유닛(103)의 일 예는 스토리지 유닛(103)의 다른 예보다 더 빠를 수 있다. 다른 예시로서, SSD(105)는 HDD(107)보다 더 빠를 수 있다.
컴퓨팅 블록(101)은 데이터 컨텐츠(102)를 라이팅하기 위해 타겟 장치의 리스트를 찾기 위한 클라이언트 블록(106)으로부터의 요청을 수신하는 네임 노드 블록(112)을 포함할 수 있다. 컴퓨팅 블록(101)은 타겟 장치(113)를 포함할 수 있다. 타겟 장치(113)는 데이터 노드(108), 스토리지 유닛(103), 또는 그것들의 조합을 나타낼 수 있다. 타겟 장치(113)는 데이터 컨텐츠(102)를 라이팅할 수 있는 복수의 데이터 노드(108)를 나타낼 수 있다. 타겟 장치(113)는 데이터 컨텐츠(102)를 라이팅하기 위한 데이터 노드(108) 내부의 복수의 스토리지 유닛(103)을 나타낼 수 있다.
클라이언트(106)는 이용 가능한 데이터 노드(108)의 리스트에서 네임 노드 블록(112)을 찾을 수 있다. 데이터 노드(108)의 리스트는 데이터 컨텐츠(102)를 기입할 수 있는 타겟 장치(113)의 수인, 타겟 카운트(114)를 포함할 수 있다. 예를 들어, 타겟 카운트(114)는 데이터 컨텐츠(102)를 기입할 수 있는 데이터 노드(108)의 수를 나타낼 수 있다. 다른 예시로서, 타겟 카운트(114)는 데이터 컨텐츠(102)를 기입할 수 있는 스토리지 유닛(103)의 수를 나타낼 수 있다.
이종 분산 파일 시스템에서, 예를 들어, 타겟 카운트(114)의 디폴트 수는 3개의 데이터 노드(108)를 나타낼 수 있다. 그러나 타겟 카운트(114)는 0에서 타겟 장치(113)의 수인 n까지의 범위일 수 있다. 네임 노드 블록(112)은 회로망, 논리 게이트들(아날로그 또는 디지털)과 같은, 하드웨어와 함께 구현될 수 있다. 예를 들어, 네임 노드 블록(112)은 하드웨어 유한 상태 머신, 조합 논리, 또는 그것들의 조합과 함께 구현될 수 있다.
도 1b는 본 발명의 다른 실시 예에 따른 이종 스토리지 메커니즘을 구비하는 컴퓨팅 시스템을 보여준다. 컴퓨팅 시스템의 구성요소들 사이의 상호작용은 점선인 화살표 라인으로 도시되었다.
예를 들어, 도 1a의 네임 노드 블록(112)은 데이터 컨텐츠(102)의 제 1 카피 라이트 커맨드(116)를 위한 도 1a의 고성능 장치(110), 도 1a의 저성능 장치(111), 또는 그것들의 조합을 포함하는 도 1a의 다양한 스토리지 미디어 타입(104)을 가지는 도 1a의 데이터 노드(108)의 리스트를 제공할 수 있다. 제 1 카피 라이트 커맨드(116)는 데이터 컨텐츠(102)의 카피들을 타겟 장치(113)의 다른 예에 복제하기 전에 도 1a의 데이터 컨텐츠(102)의 첫번째 카피(115)가 도 1a의 타겟 장치(113)의 일 예에 쓰여지는 이종 분산 파일 시스템에서의 프로세스를 나타낼 수 있다.
더 구체적인 예시로서, 제 1 카피 라이트 커맨드(116)는 데이터 컨텐츠(102)의 카피들을 데이터 노드(108)의 다른 예에 복제하기 전에 도 1a의 데이터 컨텐츠(102)의 첫번째 카피(115)가 데이터 노드(108)의 일 예에 쓰여지는 이종 분산 파일 시스템에서의 프로세스를 나타낼 수 있다. 다른 예시로서, 제 1 카피 라이트 커맨드(116)는 데이터 컨텐츠(102)의 카피들을 스토리지 유닛(103)의 다른 예에 복제하기 전에 도 1a의 데이터 컨텐츠(102)의 첫번째 카피(115)가 도 1a의 스토리지 유닛(103)의 일 예에 쓰여지는 이종 분산 파일 시스템에서의 프로세스를 나타낼 수 있다. 추가적인 예시로서, 제 1 카피 라이트 커맨드(116)는 데이터 컨텐츠(102)의 카피들을 저성능 장치(111)의 다른 예에 복제하기 전에 도 1a의 데이터 컨텐츠(102)의 첫번째 카피(115)가 도 1a의 고성능 장치(110)의 일 예에 쓰여지는 이종 분산 파일 시스템에서의 프로세스를 나타낼 수 있다.
예시로서, 고성능 장치(110)를 나타내는 스토리지 미디어 타입(104)을 포함하는 데이터 노드(108)는 저성능 장치(111) 대신에 도 1a의 클라이언트 블록(106)으로부터 제 1 카피 라이트 커맨드(116)로서 데이터 컨텐츠(102)를 수신할 수 있다. 더 구체적인 예시로서, 클라이언트 블록(106)은 데이터 컨텐츠(102)를 스토리지 유닛(103)에 쓰기위한 라이트 커맨드(118)를 발행할 수 있다. 달리 말하면, 데이터 노드(108)는 스토리지 유닛(103)에 쓰여질 데이터 컨텐츠(102)에 대한 라이트 커맨드(118)를 클라이언트 블록(106)으로부터 수신할 수 있다.
네임 노드 블록(112)은 백그라운드 레플리케이션 동작(120)을 수행하기 위해 타겟 장치(113)의 추가적인 예들을 선택할 수 있다. 백그라운드 레플리케이션 동작(120)은 한 타겟 장치(113)에 제 1 카피 라이트 커맨드(116)가 완료되고, 그리고 타겟 장치(113)의 다른 예들에 데이터 컨텐츠(102)의 기입을 복사하기 위해 쓰기 동작이 시작되는 복수의 타겟 장치(113)와 관련되는 프로세스를 나타낼 수 있다.
예를 들어, 백그라운드 레플리케이션 동작(120)은 제 1 카피 라이트 커맨드(116)가 어느 한 데이터 노드(108)에서 완료되는 경우, 다른 데이터 노드(108)에 대한 쓰기 동작이 데이터 컨텐츠(102)의 기입을 복사하기 위해 시작되는 복수의 데이터 노드(108)와 관련되는 프로세스를 나타낼 수 있다. 다른 예시로서, 백그라운드 레플리케이션 동작(120)은 제 1 카피 라이트 커맨드(116)가 어느 한 스토리지 유닛(103)에서 완료되는 경우, 다른 스토리지 유닛(103)에 대한 쓰기 동작이 데이터 컨텐츠(102)의 기입을 복사하기 위해 시작되는 복수의 스토리지 유닛(103)와 관련되는 프로세스를 나타낼 수 있다. 또 다른 예시로서, 백그라운드 레플리케이션 동작(120)은 제 1 카피 라이트 커맨드(116)가 도 1a의 SSD와 같은, 고성능 장치(110)에서 완료되는 경우, 도 1a의 HDD와 같은, 저성능 장치(111)에 대한 쓰기 동작이 데이터 컨텐츠(102)의 기입을 복사하기 위해 시작되는 복수의 스토리지 유닛(103)와 관련되는 프로세스를 나타낼 수 있다.
다른 예시를 위해, 타겟 장치(113)의 제 1 예는 고성능 장치(110)의 일 예와 저성능 장치(111)의 복수의 예들을 포함할 수 있다. 타겟 장치(113)의 다른 예는 저성능 장치(111)의 복수의 예들을 포함하는 것에 따른 이종 분산 파일 시스템을 포함할 수 있다. 타겟 장치(113)의 다른 예에 대한 쓰기 동작은 비록 저성능 장치(111)에 대한 쓰기 동작이 완료되지 않았더라도 타겟 장치(113)의 제 1 예의 고성능 장치(110)에 대한 제 1 카피 라이트 커맨드(116)가 완료된 후에 시작될 수 있다.
백그라운드 레플리케이션 동작(120)을 수행하는 컴퓨팅 시스템(100)은 타겟 장치(113)에 데이터 컨텐츠(102)를 기입하는 쓰기 성능을 개선한다. 데이터 컨텐츠(102)의 제 1 카피(115)가 타겟 장치(113)의 제 1 예에 기입된 후 쓰기 동작을 완료한 것으로 마킹하는 것에 의해, 컴퓨팅 시스템(100)은 타겟 장치(113)의 다른 예에 데이터 컨텐츠(102)를 복제하는 것을 시작할 수 있다. 결과적으로, 컴퓨팅 시스템(100)은 타겟 장치(113)의 주어진 비용 대비 성능, 소비 전력 대비 성능, 또는 그것들의 조합을 개선할 수 있다.
네임 노드 블록(112)은 장치 위치(122)에 기초하여 데이터 노드(108)의 추가적인 예들을 선택할 수 있다. 장치 위치(122)는 타겟 장치(113)가 존재하는 곳에 대한 정보이다. 컴퓨팅 시스템(100)은 타겟 장치(113)의 3가지 예들에 데이터 컨텐츠(102)를 기입하는 도 1a의 컴퓨팅 블록(101)을 포함할 수 있다. 예를 들어, 장치 위치(122)는 타겟 장치가 어디에서 셋업 되었는지에 관한 랙(rack) 정보를 나타낼 수 있다. 구체적인 예시로서, 타겟 장치(113)의 제 1 예가 셋업될 수 있는 장치 위치(122)는 랙 1 이다. 예시에 대한 설명을 계속하여, 타겟 장치(113)의 제 2 예에 대한 장치 위치(122)는 랙 1에서 셋업될 수 있다. 그리고 타겟 장치(113)의 제 3 에에 대한 장치 위치(122)는 랙 2에서 셋업될 수 있다.
네임 노드 블록(112)은 트랜잭션 정보(124)를 레플리케이션 트래커 블록(126)에 전송할 수 있다. 컴퓨팅 블록(101)은 레플리케이션 트래커 블록(126)을 포함할 수 있다. 트랜잭션 정보(124)는 백그라운드 레플리케이션 동작(120), 복제될 라이트 커맨드(118), 복제될 데이터 컨텐츠(102), 또는 그것들의 조합을 수행하기 위한 타겟 장치(113)를 포함할 수 있다. 레플리케이션 트래커 블록(126)은 백그라운드 레플리케이션 동작(120)이 완료, 여전히 펜딩 상태, 진행 중, 또는 그것들의 조합인지를 추적한다. 레플리케이션 트래커 블록(126)은 소프트웨어, 논리 게이트들 또는 회로망(아날로그 또는 디지털)과 같은 하드웨어, 또는 그것들의 조합과 함께 구현될 수 있다. 또한 예시로서, 레플리케이션 트래커 블록(126)은 하드웨어 유한 상태 머신, 조합 논리, 또는 그것들의 조합과 함께 구현될 수 있다.
타겟 장치(113)는 트랜잭션 상태를 포함하는 트랜잭션 메시지(128)를 전송할 수 있다. 트랜잭션 메시지(128)는 커맨드를 발행하기 위한 통지이다. 트랜잭션 상태(130)는 커맨드의 실행에 대한 결과이다. 예를 들어, 만약 컴퓨팅 시스템(100)이 데이터 컨텐츠(102)를 타겟 장치(113)에 쓰기 위한 라이트 커맨드(118)를 실행할 수 있었다면, 트랜잭션 상태(130)는 "완료"를 나타낼 수 있다. 반대로, 만약 컴퓨팅 시스템(100)이 데이터 컨텐츠(102)를 타겟 장치(113)에 쓰는 것을 실패한 경우, 트랜잭션 상태(130)는 "에러"로 나타낼 수 있다. 또 다른 예시로서, 타겟 장치(113)는 "완료" 또는 "에러"의 트랜잭션 상태를 통지하기 위해 트랜잭션 메시지(128)를 네임 노드 블록(112), 클라이언트 블록(106), 레플리케이션 트래커 블록(126), 또는 그것들의 조합에 전송할 수 있다.
또 다른 예시를 위해, 트랜잭션 상태(130)는 커맨드가 성공적으로 실행된 경우 "완료됨"을 나타낼 수 있다. 예를 들어, 제 1 카피 라이트 커맨드(116), 백그라운드 레플리케이션 동작(120), 또는 그것들의 조합을 위해 라이트 커맨드(118)가 성공적으로 실행된 경우, 트랜잭션 상태(130)는 "완료됨"을 나타낼 수 있다.
레플리케이션 트래커 블록(126)은 백드라운드 레플리케이션 동작(120)을 위해 데이터 컨텐츠(102)를 타겟 장치(113)에 기입할 수 있다. 레플리케이션 트래커 블록(126)은 데이커 컨텐츠(102)의 다른 카피들이 데이터 컨텐츠(102)의 첫번째 카피가 완료된 것으로 표시된 후 쓰여졌는지를 확인하는 것에 대한 책임이 있다. 데이터 컨텐츠(102)의 카피가 어떤 레플리케이션이 만들어지기 전에 분실되는 경우, 레플리케이션 트래커 블록(126)은 재시작 요청을 잡 트래커 블록(job tracker block, 134)으로 전송한다.
컴퓨팅 블록(101)은 잡 트래커 블록(134)을 포함할 수 있다. 잡 트래커 블록(134)은 커맨드, 태스크(task), 또는 그것들의 조합을 발행 또는 재발행할 수 있다, 테스크 및 커맨드는 같은 의미일 수 있다. 예를 들어, 잡 트래커 블로(134)은 트랜잭션 상태(130)가 "에러"를 나타내는 경우 데이터 컨텐츠(102)를 타겟 장치(113)에 쓰기 위해 클라이언트 블록(106)에 의해 요청된 쓰기 커맨드(118)를 재발행할 수 있다. 더 구체적으로, 잡 트래커 블록(134)는 커맨드의 재발행을 호출하는, 재시작 요청(132)에 기초하여 쓰기 커맨드(118)를 재발행할 수 있다.
잡 트래커 블록(134)은 소프트웨어, 논리 게이트들 또는 회로망(아날로그 또는 디지털)과 같은 하드웨어, 또는 그것들의 조합과 함께 구현될 수 있다. 예를 들어, 잡 트래커 블록(134)은 하드웨어 유한 상태 머신, 조합 논리, 또는 그것들의 조합과 함께 구현될 수 있다.
실행 타입(136)은 커맨드 제공자에 관한 정보이다. 예를 들어, 실행 타입(136)은 고성능 장치(110)에 대한 쓰기 동작을 위한 라이트 커맨드를 발행하는 클라이언트 블록(106)을 나타낼 수 있다. 다른 실시 예로서, 실행 타입(136)은 백그라운드 레플리케이션 동작(120) 동안 쓰기 커맨드(118)를 발행하는 레플리케이션 트래커 블록(126)을 나타낼 수 있다. 수취 타입(recipient type, 138)은 트랜잭션 메지시(128)의 수신기를 나타낼 수 있다. 예를 들어, 트랜잭션 메시지(128)가 "완료"의 트랜잭션 상태(130)를 제공하는 경우, 트랜잭션 메시지(128)의 수취 타입(138)은 잡 트래커 블록(134) 대신 네임 노드 블록(112), 클라이언트 블록(106), 또는 그것들의 조합을 나타낼 수 있다.
도 2는 본 발명에 또 다른 실시 예에 따른 이종 스토리지 메커니즘을 구비하는 컴퓨팅 시스템을 보여주는 도면이다. 도 2는 이종 스토리지 미디어가 사용되는 컴퓨팅 시스템(100)의 또 다른 실시 예를 도시한다. 컴퓨팅 시스템(100)의 구성요소들 사이의 상호작용은 점선인 화살표 라인들로 도시되었다.
도 1에서 논의된 바와 같은 본 발명의 실시 예에 대한 추가로, 컴퓨팅 시스템(100)은 중간 스토리지(202)를 구비하는 컴퓨팅 블록(101)을 포함할 수 있다. 중간 스토리지(202)는 도 1의 데이터 컨텐츠(102)를 저장한다. 예를 들어, 중간 스토리지(202)는 컴퓨팅 시스템(100)의 폴트 톨러런스(fault tolerance)를 강화하기 위해 사용된다.
폴트 톨러런스는 컴퓨팅 시스템(100)의 하나 이상의 구성요소가 고장인 경우에 동작을 계속하기 위한 컴퓨팅 시스템(100)의 능력을 나타낼 수 있다. 예를 들어, 도 1의 타겟 장치(113)의 일 예가 백그라운드 레플리케이션 동작(120)이 완료되기 전에 고장난 경우, 컴퓨팅 시스템(100)은 중간 스토리지(202)로부터의 데이터 컨텐츠(102)를 재저장할 수 있다. 중간 스토리지(202)는 고성능 장치(110), 저성능 장치(111), 또는 그것들의 조합을 포함할 수 있다.
도 3은 본 발명에 따른 컴퓨팅 시스템의 제어 흐름을 보여주는 도면이다. 컴퓨팅 시스템(100)은 타겟 모듈(302)을 포함할 수 있다. 타겟 모듈(302)은 도 1의 타겟 장치(113)를 결정한다. 예를 들어, 타겟 모듈(302)은 도 1의 스토리지 미디어 타입(104), 도 1의 스토리지 성능, 또는 그것들의 조합에 기초하여 타겟 장치(113)를 결정할 수 있다. 또 다른 예시에 대해, 네임 노드 블록(112)은 타겟 모듈(302)을 실행할 수 있다.
타겟 모듈(302)은 다양한 방법으로 타겟 장치(113)를 결정할 수 있다. 예를 들어, 타겟 모듈(302)은 타겟 장치(113)가 고성능 장치(110) 또는 저성능 장치(111)의 스토리지 미디어 타입(104)을 포함하는 데이터 노드(108)를 나타내는지를 결정할 수 있다. 구체적인 예시를 위해, 타겟 모듈(302)은 스토리지 미디어 타입(104)이 SSD(105) 또는 HDD(107)을 나타내는지를 결정할 수 있다. 다른 예시를 위해, 타겟 모듈(302)은 타겟 장치(113)을 선택하기 위해 데이터 노드(108)에 포함된 스토리지 유닛(103)의 스루풋, 용량, 또는 그것들의 조합에 기초하여 스토리지 성능을 결정할 수 있다.
또 다른 예시를 위해, 타겟 모듈(302)은 도 1의 클라이언트 블록(106)에 대해 도 1의 데이터 컨텐츠(102)를 기입할 수 있는 복수의 데이터 노드(108)를 결정할 수 있다. 이종 스토리지 아키텍처에 있어서, 타겟 모듈(302)은 데이터 컨텐츠(102)를 기입할 수 있는 복수의 데이터 노드(108)를 결정할 수 있다. 더 구체적인 예시로서, 타겟 모듈(302)은 데이터 컨텐츠(102)를 저장하기 위한 데이터 노드(108)의 하나 이상의 예들을 결정할 수 있다. 예시로서, 3개의 데이터 노드(108)의 예시들 중에서, 타겟 모듈(302)은 고성능 장치(110)를 나타내는 하나의 예와 저성능 장치(111)를 나타내는 다른 2개의 예들을 포함하기 위한 데이터 노드(108)의 하나의 예를 결정할 수 있다.
컴퓨팅 시스템(100)은 타겟 모듈(302)과 연결될 수 있는, 리셉션 모듈(304)을 포함할 수 있다. 리셉션 모듈(304)은 커맨드들을 수신한다. 예를 들어, 리셉션 모듈(304)은 스토리지 미디어 타입(104), 스토리지 성능, 또는 그것들의 조합에 기초하여 도 1의 쓰기 커맨드(118)를 수신할 수 있다. 추가적인 예시를 위해, 타겟 장치(113)는 리셉션 모듈(304)을 실행할 수 있다.
리셉션 모듈(304)은 다양한 벙법으로 커맨드를 수신할 수 있다. 예를 들어, 리셉션 모듈(304)은 고성능 장치(110)를 포함하는 타겟 장치(113)에 대한 라이트 커맨드(118)를 수신할 수 있다. 예시로서, 리셉션 모듈(304)은 SSD(105)의 스토리지 미디어 타입(104)을 나타내는 스토리지 유닛(103)을 포함하도록 결정된 데이터 노드(108)에 쓰기 동작을 위한 라이트 커맨드(118)를 수신할 수 있다.
추가적인 예시를 위해, 리셉션 모듈(304)은 저성능 장치(111)에 데이터 컨텐츠(102)를 복제하기 전에 고성능 장치(110)에 쓰기 동작을 위한 라이트 커맨드(118)를 수신할 수 있다. 구체적인 예시를 위해, 리셉션 모듈(304)은 상술한 바와 같은 제 1 카피 라이트 커맨드(116)로서의 라이트 커맨드(118)를 수신할 수 있다.
또 다른 예시를 위해, 리셉션 모듈(304)은 도 1의 실행 타입(136)에 기초하여 라이트 커맨드(118)를 수신할 수 있다. 실행 타입(136)은 클라이언트 블록(106)을 나타낼 수 있다. 리셉션 모듈(304)은 클라이언트 블록(106)으로부터 명령된 데이터 컨텐츠(102)를 쓰기 위한 라이트 커맨드(118)를 수신할 수 있다.
추가적인 예시를 위해, 리셉션 모듈(304)은 도 2의 중간 스토리지(202)에 데이터 컨텐츠(102)를 쓰기 위한 라이트 커맨드(118)을 수신할 수 있다. 더 구체적인 예시로서, 리셉션 모듈(304)은 폴트 톨러런스를 강화하기 위해 중간 스토리지(202)에 데이터 컨텐츠(102)를 쓰기 위한 라이트 커맨드(118)를 수신할 수 있다.
컴퓨팅 시스템(100)은 리셉션 모듈(304)과 연결될 수 있는, 선택 모듈(306)을 포함할 수 있다. 선택 모듈(306)은 타겟 장치(113)를 선택한다. 예를 들어, 선택 모듈(306)은 저성능 장치를 구비하는 데이터 노드(108)에 데이터 컨텐츠(102)의 쓰기를 복제하기 위해 스토리지 미디어 타입(104), 스토리지 성능, 장치 위치(122), 또는 그것들의 조합에 기초하여 타겟 장치(113)를 선택할 수 있다. 스토리지 성능은 타겟 장치(113)에 의한 현재의 컴퓨팅 또는 프로세싱 활동, 타겟 장치(113)에 저장하기 위한 데이터 컨텐츠(102)의 데이터 필요성, 또는 그것들의조합과 연관된 정보를 포함할 수 있다. 추가적인 예시를 위해, 네임 노드 블록(112)은 선택 모듈(306)을 실행할 수 있다.
선택 모듈(306)은 다양한 방법으로 데이터 노드(108)를 선택할 수 있다. 예를 들어, 선택 모듈(306)은 제 1 카피 라이트 커맨드가 수행되는 타겟 장치(113)와는 다른 복수의 타겟 장치(113)를 선택할 수 있다.
다른 예시를 위해, 선택 모듈(306)은 제 1 카피 라이트 커맨드(116)를 위해 라이트 커맨드(118)가 실행되는 스토리지 미디어 타입(104)을 가지는 스토리지 유닛(103)과는 다른 스토리지 유닛(103)의 스토리지 미디어 타입(104)에 기초하여 데이터 노드(108)를 결정할 수 있다. 더 구체적인 예시로서, 선택 모듈(306)은 제 1 카피 라이트 커맨드(116)를 위해 실행된 라이트 커맨드(118)가 고성능 장치(110)에 대한 것인 경우 저성능 장치(111)를 선택할 수 있다.
다른 예시를 위해, 선택 모듈(306)은 도 1의 장치 위치(122)에 기초하여 타겟 장치(113)을 선택할 수 있다. 더 구체적인 예시로서, 선택 모듈(306)은 제 1 카피 라이트 커맨드(116)가 수행된 타겟 장치(113)의 장치 위치(122)의 동일한 예에 있는 타겟 장치(113)를 선택할 수 있다. 추가적인 예시를 위해, 3개의 결정되는 타겟 장치(113)의 예들이 있는 경우, 선택 모듈(306)은 장치 위치(122)의 동일한 예를 가지는 타겟 장치(113)의 2가지 예들을 선택하고 그리고 장치 위치(122)의 다른 예에 있는 타겟 장치(113)의 나머지 하나의 예를 선택할 수 있다.
[0067] 추가적인 예시를 위해, 선택 모듈(306)은 타겟 장치(113)의 속성들을 처리하는 것과 관련된 타겟 장치(113)의 스토리지 성능에 기초하여 타겟 장치9113)를 선택할 수 있다. 더 구체적인 예시로서, 타겟 장치(113)는 데이터 컨텐츠(102)를 처리하는 것으로 사용될 수 있다. 선택 모듈(306)은 데이터 컨텐츠(102)를 소비하는 프로세서에 의해 요청된 데이터 컨텐츠(102)의 추가적인 로드(load)를 다루기 위한 스토리지 성능을 가지는 타겟 장치(113)를 선택하는 것에 따른 컴퓨팅 또는 프로세싱 활동에 기초하여 타겟 장치(113)를 선택할 수 있다. 또 다른 예시를 위해, 선택 모듈(306)은 데이터 컨텐츠(102)를 처리하기 위한 데이터 컨텐츠(102)의 데이터 필요를 만족하거나 또는 초과하는 타겟 장치(113)를 선택할 수 있다.
컴퓨팅 시스템(100)은 선택 모듈(306)과 연결될 수 있는, 정보 모듈(308)을 포함할 수 있다. 정보 모듈(308)은 도 1의 트랜잭션 정보(124)를 전달한다. 예를 들어, 정보 모듈(308)은 트랜잭션 정보(124)를 도 1의 레플리케이션 트래커 블록(126)에 전달할 수 있다. 네임 노드 블록(112)는 정보 모듈(308)을 실행할 수 있다.
더 구체적인 예시로서, 정보 모듈(308)은 데이터 컨텐츠(102)의 쓰기를 복제하기 위한 라이트 커맨드(118)를 실행하기 위해 선택된 타겟 장치(113)를 포함하는 트랜잭션 정보(124)를 전달할 수 있다. 추가적인 예시로서, 정보 모듈(308)은 제 1 카피 라이트 커맨드(116)을 위해 실행되는 라이트 커맨드(118), 데이터 컨텐츠(102), 또는 그것들의 조합을 포함하는 트랜잭션 정보(124)를 전달할 수 있다.
컴퓨팅 시스템(100)은 정보 모듈(308)과 연결될 수 있는 결과 모듈(310)을 포함할 수 있다. 결과 모듈(310)은 도 1의 트랜잭션 메시지(128)를 전달한다. 예를 들어, 결과 모듈(310)은 도 1의 트랜잭션 상태(130)에 기초하여 트랜잭션 메시지(128)를 전달할 수 있다. 추가적인 예시를 위해, 타겟 장치(113)는 결과 모듈(310)을 실행할 수 있다.
더 구체적인 예시로서, 결과 모듈(310)은 도 1의 수취 타입(138)에 트랜잭션 상태(130)를 포함하는 트랜잭션 메시지(128)를 전달할 수 있다. 구체적인 예시를 위해, 수취 타입(138)은 도 1의 네임 노드 블록(112), 클라이언트 블록(106), 또는 그것들의 조합을 포함할 수 있다. 트랜잭션 상티(130)는 "완료" 또는 "에러"를 나타낼 수 있다. 결과 모듈(310)은 트랜잭션 메시지(128)를 레플리케이션 모듈(312)에 전달할 수 있다.
컴퓨팅 시스템(100)은 결과 모듈(310)과 연결될 수 있는, 레플리케이션 모듈(312)을 포함할 수 있다. 레플리케이션 모듈(312)은 커맨드를 복제한다. 예를 들어, 레플리케이션 모듈(312)은 제 1 카피 라이트 커맨드(116)가 수행되는 타겟 장치(113)과는 다른 타겟 장치(113)에 라이트 커맨드(118)의 실행하는 것에 의해 라이트 커맨드(118)를 복제할 수 있다. 추가적인 예시를 위해, 레플리케이션 트래커 블록(126)은 레플리케이션 모듈(312)을 실행할 수 있다.
레플리케이션 모듈(312)은 다양한 방법으로 커맨드를 복제할 수 있다. 예를 들어, 레플리케이션 모듈(312)은 제 1 카피 라이트 커맨드(116)가 완료된 이후 백그라운드에서 데이터 컨텐츠(102)를 쓰기 위한 라이트 커맨드(118)를 실행하는 것에 의해 라이트 커맨드(118)를 복제할 수 있다. 상술한 바와 같이, 데이터 컨텐츠(102)의 동일한 예의 첫번째 카피(115)는 저성능 장치(111)에 쓰여 지기에 앞서 고성능 장치(110)를 포함하는 타겟 장치(113)에 쓰여질 수 있다.
다른 예시를 위해, 레플리케이션 모듈(312)은 도 1의 백그라운드 레플리케이션 동작(120)을 수행할 수 있다. 상술한 바와 같이, 레플리케이션 모듈(312)은 저성능 장치(111)에 백그라운드에서 데이터 컨텐츠(102)를 쓰기 위한 라이트 커맨드(118)를 실행하는 것에 의해 라이트 커맨드(118)를 복제할 수 있다. 또 다른 예시로서, 레플리케이션 모듈(312)은 백그라운드 레플리케이션 동작(120)을 다르게 수행할 수 있다. 더 구체적인 예시로서, 레플리케이션 모듈(312)은 제 1 카피 라이트 커맨드(116)가 수행되는 데이터 노드(108)와 비교하여 데이터 노드(108)의 다른 예시들에 라이트 커맨드(118)를 실행하는 것에 의해 라이트 커맨드(118)를 복제할 수 있다.
추가적인 예시를 위해, 레플리케이션 모듈(312)은 트랜잭션 메시지(128)에 기초하여 라이트 커맨드(118)를 복제할 수 있다. 더 구체적인 예시로서, 타겟 장치(113)에 제 1 카피 라이트 커맨드(116)의 수행으로부터의 트랜잭션 메시지(128)에 포함된 트랜잭션 상태(130)가 "완료"를 나타내는 경우, 레플리케이션 모듈(312)은 상술한 바와 같이 백그라운드에서 라이트 커맨드(118)를 복제할 수 있다.
구체적인 예시를 위해, 타겟 카운트(114)가 3인 경우, 데이터 컨텐츠는 타겟 장치(113) 중 하나에 먼저 쓰여진다. 레플리케이션 모듈(312)은 라이트 커맨드(118)를 타겟 장치(113)의 남아있는 2개의 예들에 순차, 병렬, 또는 그것들의 조합으로 복제한다.
추가적인 예시를 위해, 레플리케이션 모듈(312)은 실행 타입(136)에 기초하여 라이트 커맨드(118)를 실행할 수 있다. 실행 타입(136)은 레플리케이션 트래커 블록(126)을 나타낼 수 있다. 리셉션 모듈(304)은 레플리케이션 트래커 블록(126)으로부터 명령된 데이터 컨텐츠(102)를 쓰기 위해 라이트 커맨드(118)를 실행할 수 있다.
백그라운드 레플리케이션 동작(120) 동안, 이후, 또는 그것들의 조합에 제 1 카피 라이트 커맨드(116)을 함께 수행하는 컴퓨팅 장치(100)는 데이터 컨텐츠(102)를 타겟 장치(113)에 쓰기 위한 비용 대비 성능을 개선할 수 있다. 제 1 카피 라이트 커맨드(116)를 위해 이용된 스토리지 미디어 타입(104)과는 다른 스토리지 미디어 타입(104)에 백그라운드 레플리케이션 동작(120)을 수행하는 것에 의해, 컴퓨팅 시스템(100)은 스토리지 미디어 타입(104)의 다양한 예들을 포함하는 이종 아키텍처에 데이터 컨텐츠(102)를 효율적으로 기입할 수 있다. 결과로서, 컴퓨팅 시스템(100)은 컴퓨팅 시스템(100)의 동작 효율 및 성능을 개선할 수 있다.
컴퓨팅 시스템(100)은 레플리카 모듈(312)과 연결될 수 있는, 재시작 모듈(314)을 포함할 수 있다. 재시작 모듈(314)은 도 1의 재시작 요청을 전달할 수 있다. 예를 들어, 재시작 모듈(312)은 트랜잭션 메시지(128)에 기초하여 재시작 요청(132)을 전달할 수 이TEk. 추가적인 예시를 위해, 레플리케이션 트래커 블록(126)은 재시작 모듈(314)을 실행할 수 있다.
더 구체적인 예시로서, 트랜잭션 메시지(128)가 레플리케이션 동작의 완료 전의 데이터 컨텐츠(102)의 분실(loss) 때문에 "에러"인 트랜잭션 상태를 나타내는 경우, 재시작 모듈(314)은 데이터 컨텐츠(102)를 복제하기 위한 라이트 커맨드(118)를 재발행하도록 레플리케이션 모듈(312)에 재시작 요청(132)을 전달할 수 있다. 더 구체적인 예시로서, 레플리케이션 트랙커 블록(126)은 태스크를 재발행하도록 도 1의 잡 크래커 블록(134)를 요청할 수 있다.
컴퓨팅 시스템(100)은 재시작 모듈(314)과 연결될 수 있는, 삭제 모듈(316)을 포함할 수 있다. 삭제 모듈(316)은 데이터 컨텐츠(102)를 삭제할 수 있다. 예를 들어, 삭제 모듈(316)은 중간 스토리지(202)로부터 데이터 컨텐츠(102)를 삭제할 수 있다. 추가적인 예시를 위해, 레플리케이션 트래커 블록(126)은 중간 스토리지(202)로부터 데이터 컨텐츠(102)를 삭제하기 위해 삭제 모듈(316)을 실행할 수 있다. 더 구체적인 예시로서, 삭제 모듈(316)은 데이터 컨텐츠(102)를 복제하는 것에 대한 트랜잭션 상태(130)가 "완료"를 나타내는 경우, 중간 스토리지(202)로부터 데이터 컨텐츠(102)를 삭제할 수 있다. 레플리케이션 트래커 블록(126)은 중간 스토리지(202)로부터 데이터 컨텐츠(102)를 삭제하기 위해 중간 스토리지(202)에 통지할 수 있다.
본 명세서에서 설명된 모듈들은 도 1의 컴퓨팅 블록(101)에 의해 실행되는 비일시적 컴퓨터 판독 가능 매체상에 저장된 명령어들로서 구현될 수 있다. 비일시적 컴퓨터 판독 가능 매체는 스토리지 유닛(103)을 포함할 수 있다. 비일시적 컴퓨터 판독 가능 매체는 HDD(hard disk drive), NVRAM(non-volatile random access memory), SSD(solid-state storage device), CD(compact disk), DVD(digital video disk), 또는 USB(universal serial bus) 플래시 메모리 장치와 같은, 불휘발성 메모리를 포함할 수 있다. 비일시적 컴퓨터 판독 가능 매체는 컴퓨팅 시스템(100)의 일부로서 통합되거나 또는 컴퓨팅 시스템(100)의 제거 가능한 부분으로 설치될 수 있다.
도 4는 본 발명의 실시 예를 구비하는 컴퓨팅 시스템의 어플리케이션의 예시들을 보여주는 도면이다. 도 4는 컴퓨터 서버, 자동차의 대시 보드, 스마트폰, 휴대용 장치, 및 노트북 컴퓨터와 같은, 컴퓨팅 시스템(100)에 대한 다양한 실시 예들을 도시한다.
이러한 어플리케이션 예시들은 도 1의 데이터 컨텐츠(102)의 저장을 위해 개선된 효율성을 제공하는 본 발명의 다양한 실시 예들의 중요성을 설명한다. 도 1의 백그라운드 레플리케이션 동작(120)은 도 1의 제 1 카피 라이트 커맨드(116)의 실행 후 데이터 컨텐츠(102)를 복제할 수 있다. 백그라운드 레플리케이션 동작(120)은 제 1 카피 라이트 커맨드(116)가 완료된 후 그 완료를 라이트 커맨드(118)에 마킹하는 것에 의해 효율성을 개선하지만 백그라운드 레플리케이션 동작(120)은 백그라운드에서 처리된다.
컴퓨터 서버, 대시 보드, 및 노트북 컴퓨터와 같은 컴퓨팅 시스템(100)은 본 발명의 다양한 실시 예들을 가지는 전자 어셈블리(electronic assembly) 또는 본 발명의 다양한 실시 예들을 가지는 PCB(printed circuit board)와 같은, 하나 이상의 서브시스템(미도시)을 포함할 수 있다. 컴퓨팅 시스템(100)은 또한 어댑터 카드로서 구현될 수도 있다.
도 5는 본 발명의 실시 예에 다른 컴퓨팅 시스템의 동작 방법을 보여주는 흐름도이다. 방법은 고성능 장치에 쓰기 동작을 위해 제 1 카피 라이트 커맨드를 수행하는 단계(블록(502)), 제 1 카피 라이트 커맨드가 완료되었음 나타내는 트랜잭션 상태를 제공하는 단계(블록(504)), 그리고 완료 상태의 트랜잭션 상태 제공된 후 제 1 카피 라이트 커맨드로부터의 데이터 컨텐츠를 타겟 장치에 복제하기 위해 레플리케이션 트래커 블록과 함께 백그라운드 레플리케이션 동작을 수행하는 단계(블록(506))를 포함한다.
블록(506)은 제 1 카피 라이트 커맨드가 완료된 데이터 노드와는 다른 데이터 노드를 나타내는 타겟 장치에 데이터 컨텐츠를 복제하기 위한 백드라운드 레플리케이션 동작을 수행하는 단계와 저성능 장치를 나타내는 타겟 장치에 데이터 컨텐츠를 복제하기 위한 백그라운드 레플리케이션 동작을 수행하는 단계를 더 포함할 수 있다.
방법(500)은 제 1 카피 라이트 커맨드가 완료된 스토리지 유닛과는 다른 스토리지 유닛에 데이터 컨텐츠를 쓰기 위해 백그라운드 레플리케이션 동작을 위한 라이트 커맨드를 실행하는 단계 및 제 1 카피 라이트 커맨드, 백그라운드 레플리케이션 동작, 또는 그것들의 조합의 완료 실패에 대한 트랜잭션 상태에 기초하여 재시작 요청을 전달하는 단계를 더 포함할 수 있다.
상술한 방법들에 있어서, 각 연산은 발생할 수 있는 기술된 것을 수행하거나, 또는 발생하도록 야기하는 적극적인 단계(affirmative step)로서 수행될 수 있다. 그와 같은 행위 또는 발생하도록 야기하는 것은 전체 시스템 또는 디바이스, 또는 단지 그것의 하나 이상의 구성요소들에 의해 수행될 수 있다. 게다가, 연산들의 순서는 도시된 것으로 한정되지 않으며, 다른 실시 예들에 따르는 다른 순서들이 가능할 수도 있다. 더욱이, 특정 실시 예들에서, 새로운 연산들이 추가되거나, 또는 개별적인 연산들이 수정되거나 또는 삭제될 수 있다. 예를 들어, 추가된 연산들은 다른 시스템, 디바이스 또는 방법을 본질적으로 설명하는 동안에 언급된 것으로부터 유래될 수 있다.
본 설명은 하나 이상의 예시들을 포함하지만, 그것이 발명이 어떻게 실시되어야 하는지를 한정하는 것은 아니다. 게다가, 발명의 예시들 또는 실시 예들은 설명된 것에 따라 실시되거나 또는 다르게 실시될 수 있고, 그리고 다른 현재 또는 미래의 기술들과 함께 실시될 수도 있다.
본 명세서에 있는 어떠한 선행 기술에 대한 참조가 어떤 나라에서 본 선행 기술이 공통의 일반적인 지식의 일부를 형성하는 것으로 인정하거나 또는 암시하는 것으로 받아들여져서는 안 된다.
기술분야에서 통상의 지식을 가진 자는 전체로서 획득될 수 있는, 본 설명의 관점에서 본 발명을 실시할 수 있을 것이다. 상세한 설명은 철저한 이해를 제공하기 위해 포함되었다. 다른 예시들에서, 잘 알려진 측면들은 본 발명을 불필요하게 모호하게 하지 않을 목적으로, 설명되지 않았다.
하기의 청구항들은 신규하고 진보한 것으로 간주되는, 구성요소들, 특징들 및 단계들 또는 동작들의 특정 조합들 및 하위조합들을 정의한다. 다른 조합들 및 하위조합들에 대한 추가 청구항들이 본 명세서 또는 관련된 문서에서 제시될 수 있다.
컴퓨팅 시스템:100 101: 컴퓨팅 블록
102: 데이터 컨텐츠 103: 스토리지 유닛
104: 스토리지 미디어 타입 105: SSD
106: 클라이언트 블록 107: HDD
108: 데이터 노드 110: 고성능 장치
111: 저성능 장치 112: 네임 노드 블록
113: 타겟 장치 114: 타겟 카운트
116: 제 1 카피 라이트 커맨드 118: 라이트 커맨드
126: 레플리케이션 트래커 블록 130: 트랜잭션 상태
134: 잡 트래커 블록 202: 중간 스토리지

Claims (10)

  1. 고성능 장치를 포함하는 데이터 노드를 결정하고, 타겟 장치를 선택하도록 구성되는 네임 노드 블록; 그리고
    상기 데이터 노드와 연결되고, 완료인 트랜잭션 상태가 제공된 후 제 1 카피 라이트 커맨드로부터의 데이터 컨텐츠를 상기 타겟 장치로 복제하기 위한 백그라운드 레플리케이션 동작을 수행하도록 구성되는 레플리케이션 트래커 블록을 포함하되,
    상기 데이터 노드는 상기 네임 노드 블록과 연결되고, 상기 고성능 장치에 대해 상기 제 1 카피 라이트 커맨드를 수행하고, 상기 제 1 카피 라이트 커맨드가 완료된 경우 상기 완료인 트랜잭션 상태를 제공하도록 구성되는 컴퓨팅 시스템.
  2. 제 1 항에 있어서,
    상기 레플리케이션 트래커 블록은 상기 데이터 노드의 또 다른 장치를 나타내는 타겟 장치로 상기 데이터 컨텐츠를 복제하기 위한 백그라운드 레플리케이션 동작을 수행하도록 구성되는 컴퓨팅 시스템.
  3. 제 1 항에 있어서,
    상기 레플리케이션 트래커 블록은 저성능 장치를 나타내는 타겟 장치로 상기 데이터 컨텐츠를 복제하기 위한 백드라운드 레플리케이션을 수행하도록 구성되는 컴퓨팅 시스템.
  4. 제 1 항에 있어서,
    상기 레플리케이션 트래커 블록은 상기 제 1 카피 라이트 명령이 완료되는 스토리지 유닛과는 다른 스토리지 유닛에 상기 데이터 컨텐츠를 기입하기 위해 백그라운드 레플리케이션 동작을 위한 라이트 커맨드를 실행하도록 구성되는 컴퓨팅 시스템.
  5. 제 1 항에 있어서,
    상기 레플리케이션 트래커 블록은 상기 제 1 카피 라이트 커맨드, 상기 백그라운드 레플리케이션 동작, 또는 그것들의 조합의 완료가 실패한 것을 나타내는 트랜잭션 상태에 기초하여 재시작 요청을 전송하도록 구성되는 컴퓨팅 시스템.
  6. 제 1 항에 있어서,
    상기 레플리케이션 트래커 블록은 상기 데이터 컨텐츠를 복제하기 위한 라이트 커맨드를 재발행하기 위한 재시작 요청을 전송하도록 구성되는 컴퓨팅 시스템.
  7. 컴퓨팅 시스템의 동작 방법에 있어서:
    고성능 장치에 라이팅을 위한 제 1 카피 라이트 커맨드를 수행하는 단계;
    상기 제 1 카피 라이트 커맨드의 완료를 나타내는 트랜잭션 상태를 제공하는 단계; 그리고
    레플리케이션 트래커 블록이 완료인 트랜잭션 상태가 제공된 후 상기 제 1 카피 라이트 커맨드로부터의 데이터 컨텐츠를 타겟 장치에 복제하기 위한 백드라운드 레플리케이션 동작을 수행하는 단계를 포함하는 동작 방법.
  8. 제 7 항에 있어서,
    상기 백드라운드 레플리케이션 동작을 수행하는 단계는,
    상기 제 1 카피 라이트 커맨드가 완료된 데이터 노드와는 다른 데이터 노드를 나타내는 타겟 장치에 상기 데이터 컨텐츠를 복제하기 위한 상기 백그라운드 레플리케이션 동작을 수행하는 단계를 포함하는 동작 방법.
  9. 제 7 항에 있어서,
    상기 백그라운드 레플리케이션 동작을 수행하는 단계는,
    저성능 장치를 나타내는 타겟 장치에 상기 데이터 컨텐츠를 복제하기 위한 상기 백드라운드 레플리케이션 동작을 수행하는 단계를 포함하는 동작 방법.
  10. 제 7 항에 있어서,
    상기 제 1 카피 라이트 커맨드가 완료된 스토리지 유닛과는 다른 스토리지 유닛에 상기 데이터 컨텐츠를 기입하기 위한 백드라운드 레플리케이션 동작을 위한 라이트 커맨드를 실행하는 단계를 더 포함하는 동작 방법.
KR1020150153950A 2014-11-25 2015-11-03 이종 스토리지를 구비하는 컴퓨팅 시스템 및 그것의 동작 방법 KR20160062683A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462084448P 2014-11-25 2014-11-25
US62/084,448 2014-11-25
US14/677,829 US20160147458A1 (en) 2014-11-25 2015-04-02 Computing system with heterogeneous storage and method of operation thereof
US14/677,829 2015-04-02

Publications (1)

Publication Number Publication Date
KR20160062683A true KR20160062683A (ko) 2016-06-02

Family

ID=56010229

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150153950A KR20160062683A (ko) 2014-11-25 2015-11-03 이종 스토리지를 구비하는 컴퓨팅 시스템 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US20160147458A1 (ko)
KR (1) KR20160062683A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11157517B2 (en) * 2016-04-18 2021-10-26 Amazon Technologies, Inc. Versioned hierarchical data structures in a distributed data store
CN110413202B (zh) * 2018-04-28 2024-03-08 伊姆西Ip控股有限责任公司 数据复制方法、设备和计算机程序产品

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US8700949B2 (en) * 2010-03-30 2014-04-15 International Business Machines Corporation Reliability scheme using hybrid SSD/HDD replication with log structured management
US9323775B2 (en) * 2010-06-19 2016-04-26 Mapr Technologies, Inc. Map-reduce ready distributed file system
US20120254508A1 (en) * 2011-04-04 2012-10-04 International Business Machines Corporation Using the Short Stroked Portion of Hard Disk Drives for a Mirrored Copy of Solid State Drives
US20140129765A1 (en) * 2012-11-07 2014-05-08 Taejin Info Tech Co., Ltd. Method to improve data reliability in dram ssd using asynchronous logging and incremental backup
US20140164323A1 (en) * 2012-12-10 2014-06-12 Transparent Io, Inc. Synchronous/Asynchronous Storage System
US9251010B2 (en) * 2013-03-13 2016-02-02 International Business Machines Corporation Caching backed-up data locally until successful replication
US9507844B2 (en) * 2014-03-28 2016-11-29 International Business Machines Corporation Automatic adjustment of data replication based on data access
US9807164B2 (en) * 2014-07-25 2017-10-31 Facebook, Inc. Halo based file system replication
US9886447B2 (en) * 2014-08-22 2018-02-06 International Business Machines Corporation Performance of asynchronous replication in HSM integrated storage systems

Also Published As

Publication number Publication date
US20160147458A1 (en) 2016-05-26

Similar Documents

Publication Publication Date Title
KR20120059658A (ko) 메모리 시스템의 카피백 최적화
US10248587B2 (en) Reduced host data command processing
US10929231B1 (en) System configuration selection in a storage system
JP2017079053A (ja) ストレージジャーナリングを改善する方法およびシステム
CN104583930A (zh) 数据迁移的方法、控制器和数据迁移装置
US11868625B2 (en) Alert tracking in storage
KR20200113992A (ko) 메모리 시스템의 복구 동작 중 비휘발성 메모리 오픈 블록의 셀 디스터브를 줄이는 방법 및 장치
US9471256B2 (en) Systems and methods for restoring data in a degraded computer system
US20160073315A1 (en) Information processing apparatus, storage control apparatus, and information processing method
US10445193B2 (en) Database failure recovery in an information handling system
KR20160062683A (ko) 이종 스토리지를 구비하는 컴퓨팅 시스템 및 그것의 동작 방법
US20150269098A1 (en) Information processing apparatus, information processing method, storage, storage control method, and storage medium
US8560789B2 (en) Disk apparatus, data replicating method onto disk apparatus and program recording medium
US20100325373A1 (en) Duplexing Apparatus and Duplexing Control Method
US20060184729A1 (en) Device, method, and computer product for disk management
US20180203615A1 (en) Storage control device, storage control method, and computer readable recording medium
US9990155B2 (en) Storage control device, storage system and method of controlling a storage device
US20130031320A1 (en) Control device, control method and storage apparatus
CN111752475B (zh) 在存储服务器中进行数据存取管理的方法与装置
JP6556980B2 (ja) ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
WO2016006108A1 (ja) ストレージおよびその制御方法
US8627157B2 (en) Storing apparatus
CN110781484B (zh) 计算设备、计算设备的方法和包括存储介质的物品
US11586508B2 (en) Systems and methods for backing up volatile storage devices
US11550506B2 (en) Systems and methods for accessing hybrid storage devices