KR101626186B1 - 피어 및 클라우드로부터 파일 및 시스템의 차분 복구 - Google Patents
피어 및 클라우드로부터 파일 및 시스템의 차분 복구 Download PDFInfo
- Publication number
- KR101626186B1 KR101626186B1 KR1020117023057A KR20117023057A KR101626186B1 KR 101626186 B1 KR101626186 B1 KR 101626186B1 KR 1020117023057 A KR1020117023057 A KR 1020117023057A KR 20117023057 A KR20117023057 A KR 20117023057A KR 101626186 B1 KR101626186 B1 KR 101626186B1
- Authority
- KR
- South Korea
- Prior art keywords
- network
- file
- version
- location
- data item
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/83—Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
네트워크-기반 백업 시스템에서 고도로 효율적인 복구를 위한 시스템 및 방법론이 여기에 제공된다. 설명된 바처럼, 차분-기반 분석(differential-based analysis)이 사용되어 백업 데이터를 검색하기 전에 새로운 완전한 차분이 임의의 복구될 항목과 관련된 서명 및/또는 다른 정보에 기초하여 계산된다. 상기 차분에 기초하여, 상기 항목의 현재 버전과 원버는 버전 사이에 고유하다고 판정된 블록만이 전송되며, 상기 고유하다고 판정된 블록은 상기 항목의 완전한 복구 버전을 획득하기 위해 로컬로 나타나는 비고유 블록과 병합될 수 있다. 또한, 혼성 구조가 사용되어, 서명 및/또는 데이터가 하나 이상의 로컬 피어 뿐만 아니라 네트워크 내의 글로벌 위치에도 저장될 수 있다. 따라서, 백업 클라이언트는 백업에 필요한 정보를 글로벌 위치 또는 근처의 피어 모두로부터 획득할 수 있고, 지연과 대역폭 소비를 감소할 수 있다.
Description
컴퓨팅 장치가 일반화되고 일반 대중들 사이에서 널리 사용됨에 따라, 그러한 장치에서 생성되고 이용되는 데이터의 양이 빠르게 증가하고 있다. 예를 들어, 컴퓨팅과 데이터 저장 기술의 발전은 가장 제한된 폼-팩터(form-factor) 장치 조차도 문서 편집, 미디어 프로세싱 등의 다양한 데이터-헝그리(data-hungry) 애플리케이션을 위한 많은 양의 정보를 저장하고 처리할 수 있게 하였다. 또한, 통신 기술에서의 최근의 발전은 컴퓨팅 장치가 빠른 속도로 데이터를 통신할 수 있게 하였다. 이러한 발전은 다른 기술 분야 가운데서도 특히, 네트워크상의 여러 위치에서 컴퓨팅 장치를 사용하여 처리되는 분산 컴퓨팅 서비스(distributed comptuing services)의 구현을 이루어냈다. 또한, 그러한 발전은 컴퓨팅 장치의 사용자가 네트워크상의 원격 위치(remote location)에 상기 컴퓨팅 장치와 관련된 데이터의 하나 이상의 백업 카피를 유지하는 것을 가능하게 하는 네트워크 기반 백업(network-based backup)과 같은 서비스의 구현을 가능하게 했다.
현존하는 시스템 및/또는 데이터 백업 솔루션은 사용자가 백업 정보를 그 오리지널 소스(original source)로부터 분리된 위치(location) 및/또는 매체에 저장하는 것을 가능하게 한다. 따라서, 예를 들어, 컴퓨팅 장치의 데이터가 하드 드라이브에서 테이프 드라이브(tape drive) 또는 외장 하드 드라이브 등의 외부 매체(external media)로 백업 될 수 있다. 그러나, 물리적으로 떨어진 위치에 백업데이터의 저장을 제공하기 위해 이용되는 네트워크 기반 백업 및/또는 다른 솔루션을 구현하는 데는, 사용자 기계와 원격 저장 위치 간의 전송과 복구와 관련된 비용 및 복잡성(complexity)이 발생하여 백업 시스템의 유용성을 상당히 제한할 수 있다. 예를 들어, 백업 데이터가 원격 네트워크 위치에 저장된 경우, 파일 및/또는 시스템 이미지의 원본의 각각의 버전과 관련된 데이터가 원격 저장소에 전송될 수 있고, 상기 각각의 버전은 추후에 복구를 위해 검색될 수 있다. 그러나, 일반적으로 상당한 양의 데이터가 네트워크를 통해 전송되므로 값비싼 대역폭(bandwidth)을 소비하게 된다. 이러한 관점에서, 향상된 효율성을 가지는 네트워크 기반 백업 기술의 구현이 요구된다.
이 개요는 상세한 설명에서 더 후술 되는 몇몇 개념을 간단한 형태로 소개하기 위해 제공된다. 이 개요는 청구 주제의 주요 특징 또는 핵심적 특징을 확인하려는 것이 아니며, 또한 청구 주제의 범주를 제한하는데 사용하려는 것도 아니다. 이 개요의 유일한 목적은 후술될 보다 상세한 설명에 앞서 간략화된 형태로 청구 주제에 대한 몇몇 개념을 제공하는 데 있다.
여기에 제공된 시스템 및 방법은 네트워크 기반 백업 시스템을 위한 고도로 효율적인 복구 기술을 가능하게 한다. 복구될 항목의 특정 버전의 복구를 위해서, 네트워크를 통한 데이터 전송에 앞서 하나 이상의 원격 백업 위치와 백업 클라이언트 간의 차분(differential)가 계산되는 방식의 차분 기반 분석(differential-based analysis)이 이용될 수 있다. 차분은 상기 백업 클라이언트와 상기 원격 백업 위치 모두에서 계산될 수 있으며, 상기 백업 클라이언트에 위치하는 상기 저장될 항목의 현재 버전과 상기 원격 백업 위치에 위치하는 원하는 버전에 해당되는 서명(signature)을 비교하여 계산된다. 상기 계산된 차분에 기초하여, 상기 항목의 현재 버전과 그 원하는 버전 사이에서 고유하다고 판정된 블록에 대해서만 전송이 수행되고, 그로 인해 상기 복구에 걸리는 지연시간과 소비되는 네트워크 대역폭이 감소된다. 원격 백업 위치에서 획득된 고유한 블록이 일단 획득되면, 상기 백업 클라이언트에 이미 위치하는 상기 항목의 현재 버전에 나타나는 비고유한 블록과 병합되어 완전한 복구 버전을 얻을 수 있다.
일 실시예에 따르면, 혼성 구조(hybird architecture)가 사용되어, 복구를 실행하는데 필요한 서명 및/또는 데이터가 네트워크 또는 "클라우드(cloud)"와 같은 인터네트워크(internetwork) 내의 글로벌 위치(global location) 뿐만 아니라 백업 클라이언트가 위치하는 기계와 관련된 하나 이상의 피어 기계(peer machine)로부터 백업 클라이언트에 이용가능하게 될 수 있다. 따라서, 백업 클라이언트는 상기 클라우드 또는 인근의 피어로부터 복구를 수행하고 지연 및 대역폭 소비를 줄이는데 필요한 부분적인 또는 모든 정보를 얻을 수 있다. 한 예에서, 백업 정보의 저장 및/또는 검색을 위해 이용될 위치는 네트워크 위치, 상대적인 로딩(relative loading), 또는 네트워크 토폴로지(network topology) 등의 유효성(availability)과 같은 요소에 기초하여 지능적(intelligent)이고 자동적인 방법으로 선택될 수 있다.
후술될 상세 설명과 그에 따른 도면은 청구되는 주제의 특정 실례적 실시예를 상세하게 제시한다. 이들 실시예는 본원에 개시된 원리를 실시할 수 있는 다양한 방식을 나타내고 있으며, 이 모든 실시예 및 그 등가물은 특허청구된 대상의 범위 내에 속하는 것으로 보아야 한다. 그 외의 효과 및 새로운 특징들은 도면과 함께 살펴볼 때, 다음의 상세한 설명으로부터 명백해질 것이다.
도 1은 다양한 실시예에 따른 백업 정보에서 차분 복구(differential restore)를 수행하기 위한 시스템의 상위 레벨 블록도.
도 2는 다양한 실시예에 따른 백업 정보의 생성을 위한 시스템의 블록도.
도 3은 다양한 실시예에 따른 백업 정보에 해당하는 서명을 생성하기 위한 시스템의 블록도.
도 4는 다양한 실시예에 따른 서명 기반 차별(signature-based differential)을 수행하는 시스템의 블록도.
도 5는 다양한 실시예에 따른 클라우드-기반 및 피어-투-피어(peer-to-peer)의 혼성 백업 저장소를 구현하는 시스템의 블록도.
도 6은 다양한 실시예에 따른 클라우드-기반 및 피어-투-피어의 혼성 백업 구조에서 차분 복구를 수행하기 위한 시스템의 블록도.
도 7은 여기에 기술된 다양한 실시예와 연관되어 이용될 수 있는 예시적인 네트워크 구현을 도시하는 도면.
도 8은 파일의 차분 복구를 수행하는 방법의 흐름도.
도 9는 파일의 서명 기반 차별을 수행하는 방법의 흐름도.
도 10은 피어-투-피어 및 클라우드-기반 혼성 시스템으로부터 파일 세그먼트(file segment)를 얻기 위한 방법의 흐름도.
도 11은 여기에 기술된 다양한 실시예가 동작할 수 있는 컴퓨팅 시스템의 블록도.
도 12는 예시적인 네트워크 컴퓨팅 환경을 도시하는 개괄적인 블록도.
도 2는 다양한 실시예에 따른 백업 정보의 생성을 위한 시스템의 블록도.
도 3은 다양한 실시예에 따른 백업 정보에 해당하는 서명을 생성하기 위한 시스템의 블록도.
도 4는 다양한 실시예에 따른 서명 기반 차별(signature-based differential)을 수행하는 시스템의 블록도.
도 5는 다양한 실시예에 따른 클라우드-기반 및 피어-투-피어(peer-to-peer)의 혼성 백업 저장소를 구현하는 시스템의 블록도.
도 6은 다양한 실시예에 따른 클라우드-기반 및 피어-투-피어의 혼성 백업 구조에서 차분 복구를 수행하기 위한 시스템의 블록도.
도 7은 여기에 기술된 다양한 실시예와 연관되어 이용될 수 있는 예시적인 네트워크 구현을 도시하는 도면.
도 8은 파일의 차분 복구를 수행하는 방법의 흐름도.
도 9는 파일의 서명 기반 차별을 수행하는 방법의 흐름도.
도 10은 피어-투-피어 및 클라우드-기반 혼성 시스템으로부터 파일 세그먼트(file segment)를 얻기 위한 방법의 흐름도.
도 11은 여기에 기술된 다양한 실시예가 동작할 수 있는 컴퓨팅 시스템의 블록도.
도 12는 예시적인 네트워크 컴퓨팅 환경을 도시하는 개괄적인 블록도.
이하에서 본 발명의 몇몇 실시예는, 본 발명의 전체의 실시예가 아닌 일부의 실시예를 도시하는 첨부된 도면을 참조하여 보다 구체적으로 설명될 것이다. 또한 본 발명의 여러 실시예는 여러 상이한 형태로 구현될 수 있고, 본 명세서에 설명된 실시예만으로 한정된다고 해석되지 않아야 한다. 도면에 걸쳐 동일한 참조 번호는 동일한 구성 요소를 지칭한다.
본 명세서에서 사용된 바와 같이, "컴포넌트(component)", "모듈(module)", "시스템", "인터페이스(interface)", "스키마(schema)", 또는 "알고리즘(algorithm)" 등의 용어는 일반적으로 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행중인 소프트웨어와 같은 컴퓨터 연관 개체(computer-related entity)를 지칭하기 위하여 사용된다. 예를 들어, 컴포넌트는 프로세서상에서 실행되는 프로세스, 프로세서, 객체(object), 실행가능 파일(executable), 실행중인 쓰레드(thread), 프로그램, 및/또는 컴퓨터 등일 수 있으나, 이에 한정되는 것은 아니다. 일례로서, 콘트롤러 상에서 실행중인 애플리케이션과 상기 콘트롤러 모두 컴포넌트가 될 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행중인 쓰레드 내에 존재(reside)할 수도 있고, 컴포넌트는 하나의 컴퓨터 및/또는 두 개 이상의 컴퓨터 사이에 분산되어 지역화(localized)될 수도 있다.
또한, 청구된 주제는 기술된 주제를 구현하기 위해 컴퓨터를 제어하기 위한 소프트웨어, 펌웨어(firmware), 하드웨어 또는 그들 간의 조합을 생성하기 위한 표준 프로그래밍(standard programmings) 및 엔지니어링 기술(engineering techniques)을 사용한 방법, 장치, 또는 제조품으로서 구현된다. 여기서 사용된 "제조품"이라는 용어는 모든 컴퓨터 판독 가능 (computer-readable) 장치, 캐리어(carrier), 또는 매체(media)로부터 액세스 가능한(accessible) 컴퓨터 프로그램을 망라한다. 예를 들어, 컴퓨터 판독 가능 매체는 자기 저장 장치(magnetic storage devices) (예컨데, 하드 디스크, 플로피 디스크, 마그네틱 스트립 ...), 광학 디스크(optical disks) (예컨데, CD (compact disk), DVD (digital versatile disk)...), 스마트 카드, 플래시 메모리 장치 (예컨데, 카드, 스틱, 키 드라이브 ...)등을 포함할 수 있다. 이와 더불어, 반송파(carrier wave)가 전자 메일의 송수신 또는 인터넷이나 근거리통신망(LAN)과 같은 네트워크에 액세스하는데 사용되는 것과 같은 컴퓨터 판독 가능 전자 데이터를 실어보낼 수 있음을 주지해야 한다. 물론 당업자는 청구된 주제의 범위와 사상을 벗어남 없이 이러한 구성에 대한 여러 수정이 가능함을 인지할 것이다.
이와 더불어, "예시적인(exemplary)"이라는 용어는 여기서 예시(example), 사례(instance), 또는 실례(illustration)를 의미하기 위해 사용된다. 여기서 예시로서 기술된 실시예 또는 디자인은 다른 실시예 또는 디자인보다 선호되거나 유용하다고 해석될 필요는 없다. 그보다는 "예시적인"이라는 용어의 사용은 구체적인 방식으로 컨셉을 나타내기 위한 것이다. 본 명세서에서 사용된 바와 같이, "또는(or)"이라는 용어는 배타적인(exclusive) "또는"이라기보다는 포괄적인(inclusive) "또는"을 의미한다. 즉, 특별한 언급이 없거나, 문맥으로부터 명화하지 않는 한, "X가 A 또는 B를 이용한다"는 것은 자연적인 포괄적 치환을 의미한다. 즉, X가 A를 이용하거나, X가 B를 이용하거나 또는 X가A 및 B를 모두 이용한다면, "X가 A 또는 B를 이용한다"는 표현이 위 예들 중 어느 예에서도 성립한다. 또한, 본 명세서 및 첨부된 청구범위에서 사용된 단수형 표현은 단수형으로 지시되도록 특별히 언급하지 않거나 문맥으로부터 명확하지 않는 한, 일반적으로 "하나 이상"을 의미하는 것으로 해석해야 한다.
이제 도면을 참조하면, 도 1은 여기에 기술된 다양한 실시예에 따라 백업 정보로부터 차분 복구를 수행하는 시스템(100)의 블록도을 도시한다. 일례로, 시스템(100)은 시스템(100)을 구현하거나 상기 시스템과 연관되는 클라이언트 기계에 존재하는 현재 버전으로부터 백업 시스템에 존재하는 원하는 버전으로 파일, 시스템 이미지 및/또는 다른 데이터를 복구하는데 사용될 수 있다.
한 실시예에 따르면, 시스템(100)은 후에 자세히 설명될 클라우드 백업 시스템(cloud backup system)과 같은 네트워크 기반 또는 온라인 백업 솔루션과 관련되어 이용될 수 있는데, 이 백업 솔루션은 클라이언트 기계와 연관된 네트워크 또는 인터네트워크 상의 하나 이상의 원격 저장 위치(remote storage location)에 있는 클라이언트 기계로부터의 백업 정보를 저장한다. 종래의 온라인 백업 솔루션은 원격 저장 위치에서 다양한 시점에 백업 클라이언트로부터 얻은 파일의 집합을 보유(maintain)함으로써 동작한다. 그 후에, 요청된 저장 위치로부터 하나 이상의 파일을 검색함으로써 복구가 수행된다. 그러나, 이러한 방식으로 온라인 백업 시스템으로부터 정보를 복구하는 것은 과도한 양의 시간 및/또는 대역폭을 소비하게 된다. 더욱이, 그러한 시스템은 일반적으로 주어진 파일 내의 데이터의 적은 부분에만 클라이언트 상의 현재 버전과 원격 위치상의 원하는 버전 간에 변경이 발생한 경우에도 복구 동작을 위해 파일 전체를 검색한다. 예를 들어, 그러한 시스템은 어떤 경우에는 클라이언트 상의 파일의 현재 버전과 검색된 버전 간에 이름 및/또는 메타데이터(metadata)에만 차분이 있을 때도 파일 전체를 검색한다.
다른 종래의 온라인 백업 솔루션은 정보의 여러 가지 완전한 버전을 저장하기 보다는 상기 정보의 원래 버전(original version)을 저장하고, 그 후에 상기 원래 버전에 발생한 변경 사항을 반영하는 업데이트를 추가하여 저장함으로써 점증적인 원격 저장소(incremental remote storage)를 제공할 수 있다. 그러나, 추가된 업데이트는 것은 일반적으로 누적되는 방식(cumulative manner)으로 저장되고 검색되기 때문에, 여러 이전 버전에 걸쳐서 파일 또는 다른 정보를 롤백(roll back)하기를 바라는 백업 클라이언트는 상기 정보가 롤백되는 각각의 이전 버전에 해당되는 추가된 업데이트를 검색할 필요가 있다. 몇몇의 경우 버전 간의 변화가 매우 클 수 있으며, 이러한 경우 심지어 현재 버전과 원하는 버전 간의 알짜 변화(net change)가 상대적으로 작은 경우에도 네트워크 간에 통신 되는 데이터의 양이 많아지고 많은 양의 대역폭 소비 및/또는 시간이 요구될 수 있다.
따라서, 원격으로 저장된 백업 정보와 관련하여 향상된 효율성과 적은 시간 및 대역폭 소비를 제공하기 위하여, 시스템(100)은 정보의 차분 복구(differential restoration)를 이용할 수 있다. 보다 상세히, 사용자가 하나 이상의 파일에 대한 이전 정보를 복구하기를 원하는 경우, 원하는 버전과 현재 사용자 기계에 의해 저장된 현재 버전 간의 차별(differential)을 수행하기 위해 차분 컴포넌트(110)가 이용될 수 있다. 일 실시예에 따르면, 파일과 그와 연관된 모든 백업의 수명에 걸쳐서 사용되는 점증적 차분 업데이트 프로세스(incremental differential update process)를 뒤바꾸는(reverse) 대신에, 차분 컴포넌트(110)는 어떤 점증적인 프로세스(incremental process)를 뒤바꿀 필요 없이 상기 원하는 버전과 현재 버전 사이에 존재하는 고유한 세그먼트 또는 블록만을 판정하기 위한 서명(signature) 및/또는 다른 표시(indicator)의 집합을 대신 이용한다.
또 다른 실시예에 따르면, 현재 파일 버전과 원하는 버전 사이의 고유한 블록의 목록을 식별함에 있어서, 연관된 네트워크상의 고유한 블록의 각각의 위치를 식별하기 위해 블록 위치 컴포넌트(120)가 이용될 수 있다. 특정 파일의 원하는 버전과 그 현재 버전에 차분이 발생한 것으로 판정된 파일의 블록 또는 세그먼트에 대해서만 식별, 위치 지정(locating), 및/또는 검색을 수행함으로써, 시스템(100)에 의해 수행되는 상기 복구 프로세스가 지연 및 밴드폭 소비를 줄일 수 있고, 전통적인 온라인 백업 솔루션에 비해 향상된 성능을 제공할 수 있다.
한 예시로서, 블록 위치 컴포넌트(120)는 현재와 원하는 파일 버전이 다르다고 판정된 각각의 블록을 검색하기 위해서 네트워크와 연관된 각각의 블록의 위치와 관련된 지도(map), 인덱스, 및/또는 다른 메타데이터를 이용할 수 있다. 또 다른 예시로서, 블록 위치 컴포넌트(120)는 각각의 블록을 획득하는데 최소한의 저항(resistance)를 갖는 경로를 탐색(discover)하기 위해서 지능적 및/또한 자동적인 방법으로 블록을 위치를 찾을 수 있다. 따라서, 블록 위치 컴포넌트(120)는 파일 세그먼트 또는 블록을 획득하기 위해 가장 효율적인 방법을 결정하기 위해서 네트워크 가용성(availability) 또는 로딩(loading) 등의 요소를 이용할 수 있다. 특정 예로서, 블록 위치 컴포넌트(120)는 어떤 블록이 인터넷상의 클라우드 저장 위치 및 로컬 네트워크와 연관된 하나 이상의 피어 기계(peer machine)에 위치되는가를 판정할 수 있다. 그러한 예에서, 블록 위치 컴포넌트(120)는 더욱 빠른 검색과 네트워크 대역폭을 아끼기 위해서 가장 가까이에 있는 이용 가능한(available) 피어에 있는 블록의 검색을 가능하게 할 수 있고, 이용 가능한 피어가 없을 때에만 클라우드로 되돌아 간다. 피어-투-피어 및/또는 클라우드 기반 저장 구조의 구현예들이 하기에서 더욱 자세히 제공된다.
또 다른 실시예에 따르면, 블록 위치 컴포넌트(120)가 어떤 파일에 해당하는 고유한 블록의 각각의 위치를 식별한 후에, 블록 위치 컴포넌트(120)를 통해 알아낸 위치에서부터 상기 식별된 블록을 빼내고, 상기 검색된 블록에 기초하여 상기 파일의 원하는 버전을 복구하기 위해 복구 컴포넌트(130)가 이용될 수 있다. 일례에서, 복구 컴포넌트(130)가 각각의 식별된 블록을 검색하는 위치는 블록 위치 컴포넌트(120)에 의해 설정될 수 있고, 하나 이상의 주어진 블록이 위치해 있는 위치의 목록을 이와 달리, 블록 위치 컴포넌트(120)가 제공할 수도 있으며, 이 위치 목록에 기초하여 복구 컴포넌트(130)가 이용 가능성, 로딩, 대역폭, 및/또는 다른 적절한 요소에 기초하여 자동적인 방법으로 블록을 검색할 위치를 선택할 수 있다. 예를 들어, 블록 위치 컴포넌트(120)는 복구 컴포넌트(130)에 인터넷상의 클라우드 저장 시스템의 해당 위치뿐만 아니라 어떤 블록이 위치하는 하나 이상의 피어를 제공할 수 있고, 복구 컴포넌트(130)는 대역폭을 아끼고 지연을 줄일 수 있는 피어 기계의 사용에 중점을 두고 블록을 검색할 수 있다.
파일의 원하는 버전에 해당하는 식별된 블록이 복구 컴포넌트(130)에 의해 검색된 후, 복구 컴포넌트(130)는 검색된 블록과 파일의 현재 버전 상에 이미 로컬로 존재하는 비고유 블록(non-unique block)을 병합하여 상기 파일의 원하는 버전을 재생성할 수 있다. 파일의 원하는 버전을 재생성하는 것은, 예를 들어, 파일의 현재 버전과 원하는 버전 간의 차분에 해당하는 블록을 사용하여 원하는 버전에 대한 현재 버전 상의 변화가 롤백되는 전환 차분 알고리즘(reverse difference algorithm)을 사용하여 수행될 수 있다. 파일 복구는 복구 컴포넌트(130)에 의해 현재 파일 버전과 원하는 파일 버전에 연관되는 고유한 파일 세그먼트를 병합하는 임의의 적합한 알고리즘을 사용하여 수행될 수 있음을 주목해야 한다. 또한, 블록 또는 파일 세그먼트의 생성(construction), 식별(identification) 및/또는 사용은 따로 명시적으로 언급되지 않는 한, 임의의 적합한 방법을 통해 시스템(100)에 의해 수행되며, 여기에 첨부된 청구항은 파일 세그먼트 또는 복구의 어떤 특정한 예시에 한정되는 것이 아님을 주목해야 한다.
이제 도 2로 되돌아 가서, 다양한 실시예에 따라 백업 정보를 생성하는 시스템(200)이 도시된다. 도 2에 도시된 바와 같이, 시스템(200)은 파일, 시스템 스냅샷(snapshot), 및/또는 백업 클라이언트 기계와 연관된 다른 정보의 백업 사본을 생성하고 사용할 수 있는 백업 컴포넌트(210)를 포함한다. 일 실시예에서, 백업 컴포넌트(210)는 백업될 클라이언트 정보가 위치할 기계에 위치할 수 있고/또는 상기 기계에서 동작할 수 있다. 이와 더불어 또는 그 대신에, 백업 컴포넌트(210)는 원격 실행 컴포넌트(remotely executed component)와 같은 이종의 컴퓨팅 장치에 위치할 수도 있다. 일 실시예에서, 백업 컴포넌트(210)는 규칙적인 간격으로, 파일의 수정과 같은 하나 이상의 이벤트의 트리거 시에 및/또는 임의의 다른 적절한 활성화 조건(activating criteria)에 기초하여, 파일의 집합 및/또는 다른 정보를 백업할 수 있다.
일 실시예에 따르면, 파일의 백업은 시스템(200)을 구현하는 데 필요한 대역폭 및/또는 저장 공간의 양을 줄이기 위해 백업 컴포넌트(210)에 의해 점증적인 방법(incremental manner)을 통해 수행될 수 있다. 이것은 먼저, 분할 컴포넌트(212)를 이용하여 백업될 파일을 블록, 청크(chunk) 등의 세그먼트(segment)로 나눔으로써 이뤄질 수 있다. 일례에서, 파일의 분할은 각각의 파일 세그먼트의 중복을 없애는 방식으로 분할 컴포넌트(212)에 의해 수행된다. 예를 들어, 도 3에 도시된 시스템(300)에서와 같이, 분할 컴포넌트(310)는 버전 A(302)와 같은 파일의 제1 버전을 도 3에 도시된 A1 내지 A4와 같은 균일한(uniform) 및/또는 비균일한 블록의 집합으로 나눌 수 있다. 다음으로, 버전 B(304)와 같은 파일에 수정이 감지됨에 따라, 분할 컴포넌트(310)는 버전 A(302)의 분할과 동일한 방법으로 파일을 재분할하여, 버전 A(302)의 상태와 다른 버전 B(304)의 파일이 즉각적으로 식별될 수 있다. 도 3에 도시된 바와 같이, 버전 B(304)는 그 안에 버전 A(302)와는 다른 변화가 발생한 B1으로 도시된 블록을 포함한다.
파일의 업데이트된 버전에 고유한 블록이 감지됨에 따라, 분할 컴포넌트(310) (및, 이와 유사하게 시스템(200)의 분할 컴포넌트(212))는 파일에 해당하는 새로운 그리고/또는 변경된 블록뿐만 아니라 파일의 각 버전 간의 변경에 관련된 다른 정보의 점증적인 저장(incremental storage)을 가능하게 할 수 있다. 시스템(300)은 또한, 여기에서 일반적으로 점증적(incremental) 또는 델타(delta) 업데이트라고 지칭되는 이러한 업데이트들 또한 버전 C(306)에 블록 C1의 추가와 같은 새로운 파일 블록의 추가, 버전 D(308)에서의 블록 A4의 삭제와 같은 파일 블록의 삭제 및/또는 임의의 다른 적절한 파일 동작 및/또는 수정과 관련되는 정보의 저장소을 가능하게 하도록 수행될 수 있음을 예시하고 있다.
도 2의 시스템(200)으로 돌아가서, 파일에 해당되는 블록 또는 세그먼트의 생성에 따라, 각각의 파일 및/또는 파일 업데이트에 해당하는 여러 블록이 세그먼트 분산 컴포넌트(214)에 제공될 수 있다. 세그먼트 분산 컴포넌트(214)는 하나 이상의 네트워크 저장 위치의 하나 이상의 세그먼트 저장소(220)의 블록에 교대로 분산될 수 있다. 세그먼트 저장소(220)는 예를 들어 로컬 네트워크의 피어 기계, 클라우드 저장 서비스 및/또는 다른 적절한 인터넷 기반 저장 위치, 및/또는 임의 다른 저장소와 연관될 수 있다. 네트워크 저장 위치 간에 정보를 분산하는 기술은 이후 자세히 설명된다.
일 실시예에 따르면, 서명 생성 컴포넌트(216)가 하나 이상의 파일 및/또는 분할 컴포넌트(212)에 의해 분할된 그의 여러 버전에 해당하는 서명 정보(signature information)을 생성하기 위해 백업 컴포넌트(210)에 의해 추가적으로 사용될 수 있다. 도 3의 시스템(300)에 도시된 바와 같이, 서명 생성 컴포넌트(320)는 특정 파일의 각 버전(302-308)에 해당하는 각 서명(322-328)을 생성할 수 있다. 이와 더불어 또는 그 대신에, 서명 생성 컴포넌트(216)에 의해 생성된 서명은 단독 블록, 파일 및/또는 파일에 대한 점증적 업데이트와 같은 블록의 그룹, 전체 파일, 및/또는 파일 버전, 및/또는 임의의 적절한 그룹에 해당될 수 있다. 특정 예로써, 각 블록은 4KB의 균일한 크기로 미리 구성될 수 있고, 각각의 서명은 소정의 균일한 개수 -예를 들어, 12-로 나타날 수 있다. 그러나, 임의의 적절한 블록 사이즈 및/또는 서명 구조가 사용될 수 있음을 주지해야 한다.
일례로, 서명 생성 컴포넌트(216)에 의해 생성된 서명은 파일의 특정 버전에 존재하는 블록 또는 세그먼트를 식별하는데 사용될 수 있다. 이와 더불어, 분할 컴포넌트(212)는 파일의 각 버전에 걸쳐 균일하게 분할을 수행하여 파일의 각 버전마다 생성된 서명이 각각의 버전에 걸쳐 일어나는 변경을 나타낼 수 있다. 따라서, 파일의 현재 버전과 원하는 버전 사이의 고유한 블록의 집합이 도 4에 도시된 시스템(400)에 의해 식별될 수 있다.
도 4에 도시된 바와 같이, 차분 컴포넌트(420)는 복구될 파일의 현재 버전에 해당하는 서명(424)을 얻기 위해 구성될 수 있다. 파일을 임의의 이전 버전으로 복구해야할 것으로 판단되면, 서명 소스(410)는 원하는 버전과 관련된 서명을 제공할 수 있다. 비교 컴포넌트(422)는 원하는 버전과 현재 버전 사이에서 고유한 블럭의 식별인자(identifier)를 얻기 위해 상기 양 버전의 각 서명을 비교한다. 따라서, 비교 컴포넌트(420)는 임의의 파일의 성공적인 복구를 위해 필요한 각각의 고유한 블록의 식별인자를 판정하기 위해 서명에 기반하여 차별 동작(differential)을 수행한다. 다른 예에서, 서명 소스(410)는 차분 컴포넌트(420)와 연관된 장치 및/또는 클라우드 서비스 제공 장치, 피어 또는 수퍼-피어 등의 다른 적절한 장치와 관련될 수 있다. 서명 소스(410)는 관련 시스템 정보의 각 버전과 그의 해당 서명을 추적(track)하는 버전 목록 인덱스(version listing index)로 구현될 수 있다. 일례로, 그러한 인덱스는 관련된 시스템 내의 피어, 수퍼 피어 또는 클라우드 저장 위치와 같은 다수의 네트워크 위치에 걸쳐 분산될 수 있다. 그러나, 그러한 구현은 이용될 수 있는 구현의 일례일 뿐이며, 따로 명시적으로 언급되지 않는 한, 여기에 첨부된 청구항은 그러한 구현에 국한되는 것은 아님을 주목해야 한다.
이제 도 5로 가보면, 여러 실시예에 따른 혼성 클라우드-기반 및 피어-투-피어 백업 저장소를 구현하는 시스템(500)의 블럭 도면이 도시되어 있다. 도 5에 도시된 바와 같이, 시스템(500)은 상기에 설명된 바와 같이 파일 및/또는 그의 각 버전에 해당되는 파일 세그먼트 또는 블록을 생성할 수 있는 분할 컴포넌트(510)를 포함할 수 있다. 일례에서, 분할 컴포넌트(510)에서 생성된 블록은 각 블록에 하나 이상의 연관된 저장 위치를 제공할 수 있는 세그먼트 분산 컴포넌트(520)에 제공될 수 있다.
일 실시예에 따르면, P2P(peer-to-peer) 및 클라우드-기반의 혼성 구조는 시스템(500)을 이용하여 세그먼트 분산 컴포넌트(520)가 피어(532) 및/또는 수퍼 피어(534) 뿐만 아니라 하나 이상의 클라우드 저장 위치(536)에서 사용 가능한 복구 동작 및/또는 그와 관련된 서명을 수행하는데 사용되는 데이터의 조각을 생성할 수 있도록 할 수 있다. 시스템(500)에 또한 도시되어 있듯이, 피어(532), 수퍼 피어(534), 및/또는 클라우드 저장소(536)는 또한 파일 세그먼트, 서명, 및/또한 다른 정보 사이에 서로 통신하도록 동작할 수 있다. 이와 더불어, 분할 컴포넌트(510), 세그먼트 분산 컴포넌트(520), 및/또는 시스템(500) 내의 임의의 다른 컴포넌트는 하나 이상의 피어(532), 수퍼 피어(534) 또는 클라우드 저장소(536)와 관련된 독립체(entity)와 추가적으로 관련될 수 있다. 피어(532), 수퍼 피어(534), 및 클라우드 저장소(536)가 이용될 수 있는 기술 및 혼성 구조 내의 독립체의 기능과 관련된 보다 상세한 설명이 이후에 제공된다.
다른 실시예에 따르면, 세그먼트 분산 컴포넌트(520)는 분할 컴포넌트(510)에 의해 생성된 블록과 상기 블록이 분산될 해당 위치 간의 관계를 맵핑하는 인덱스를 보유하는 인덱싱 컴포넌트(522)를 포함하거나, 그와 연관될 수 있다. 일례로, 이러한 인덱스는 하나 이상의 피어(532), 수퍼 피어(534) 또는 클라우드 저장 위치(536)에 나타나는 블록을 따라 분산될 수 있다. 전체 목록이 하나 이상의 위치에 분산될 수도 있고, 하나의 인덱스가 분할되어 여러 위치로 분산될 수도 있다.
추가적인 실시예에 따르면, 세그먼트 분산 컴포넌트(520)은 또한 각각의 블록, 인덱스, 또는 인덱스 세그먼트 등등을 분산할 하나 이상의 위치를 결정하기 위해 시스템(500)과 연관되는 컴퓨팅 네트워크를 분석하는 네트워크 분석 컴포넌트(524)를 선택적으로 포함할 수 있다. 한 예로, 네트워크 분석 컴포넌트(524)는 네트워크 로딩(network loading) 또는 장치 활성도(device activity level), 파워의 온/오프 상태, 각 위치에서의 저장 공간의 가용성 등을 기초로 한 저장 위치 가용성 등을 기초로 분산될 정보의 하나 이상의 목적지를 선택할 수 있다. 이것은 여러 데이터가 최적의 집약성(locality)을 가지고 활용될 수 있도록 이뤄질 수 있다.
시스템(500)에 더 도시된 바와 같이, MLR(machine learning and reasoning) 컴포넌트(526)가 각 정보의 저장 위치를 지능적 그리고 자동으로 선택하기 위해서 네트워크 분석 컴포넌트(524)에 의해 추가로 사용될 수 있다. MLR 컴포넌트(526)는 임의의 적절한 인공 지능(AI), 기계 학습(machine learning), 및/또는 기술 분야에서 일반적으로 알려진 다른 알고리즘을 이용할 수 있다. 본 명세서에서 사용된 바처럼, "지능"이란 용어는 시스템에 관한 주어진 정보에 기초하여 상기 시스템의 현재 및 미래 상태를 추론(reason)하거나 도출(draw)하는 능력을 지칭한다. 인공 지능은 인간의 개입 없이 특정 상황 정보(context) 또는 행위(action)를 식별하거나 시스템의 특정 확률 분포(probability distribution)를 생성하는데 사용될 수 있다. 인공 지능은 시스템상의 가용 데이터(정보)의 집합에 대해 결정 트리(decision tree), 신경 회로망(neural networks), 회귀 분석(regression analysis), 클러스터 분석(cluster analysis), 유전적 알고리즘(genetic algorithm), 및 강화 학습(reinforced learning) 등의 고등 수학 알고리즘의 적용에 의존한다. 예를 들어, 데이터로부터 학습하고 모델 - 예를 들어, HMM(hidden Markov models) 및 관련 원형 의존 모델(prototypical dependency models), 베이즈 모델(Bayesian model)의 수치(score) 또는 근사치(approximation)을 사용하여 생성한 베이즈 네트워크(Bayesian networks)와 같은 더 일반적인 확률적 그래픽 모델, SVM(support vector machine)와 같은 선형적 분류기(classifier), "신경망(neural network)" 방법론으로 지칭되는 방법과 같은 비선형적 분류기, 모호 논리 방법론(fuzzy logic methodology), 및 여기에 기술된 다양한 자동적 실시예의 구현에 따른 자료 융합(data fusion)을 수행하는 다른 접근론들 - 로부터 추론을 도출하기 위해 여러 방법론 중 하나 이상을 사용할 수 있다.
도 6을 참조하면, 다양한 실시예에 따른 클라우드-기반 및 피어-투-피어 혼성 백업 구조에서 차분 복구를 수행하는 시스템(600)이 도시된다. 시스템(600)이 도시하듯이, 혼성 P2P/클라우드 백업 구조가 사용되어 하나 이상의 컴퓨팅 장치에 해당되는 백업 데이터가 하나 이상의 피어 기계(610 또는 640) 및/또는 하나 이상의 수퍼 피어 기계(650) 및 하나 이상의 클라우드 저장 위치(660)에 분산된다.
한 예에서, 피어 기계(640)는 각각 블록 저장소(642)를 포함할 수 있고, 상기 블록 저장소(642)는 하나 이상의 파일과 각각의 파일의 델타 업데이트에 해당하는 블록의 집합을 수신하고 유지할 수 있다. 파일 및/또는 그에 대한 업데이트는 분할 컴포넌트(510)에 의해 생성되고 세그먼트 분산 컴포넌트(520)에 의해 분산되는 복구 피어(610)와 연관될 수 있다. 더불어, 시스템(600)에는 도시되지 않았으너, 복구 피어(610)는 추가로 또는 대신에 복구 피어(610)에 로컬로 존재하는 파일 및/또는 그의 델타 업데이트에 해당하는 하나 이상의 블록을 로컬로 저장하는 블록 저장소를 포함할 수 있다.
또 다른 예에서, 시스템(600) 내의 하나 이상의 수퍼 피어(650)는 시스템(600) 내에 저장되는 파일 블록과 그 각각의 위치의 마스터 목록(master listing)을 제공하는 블록 저장소(652) 및 파일-블록 인덱스(654)를 추가로 포함할 수 있다. 상기 마스터 목록은 인덱스 컴포넌트(522)에서 생성될 수 있다. 비록 파일-블록 인덱스(654)가 시스템(600) 내의 수퍼 피어(650)에 위치하도록 도시되어 있으나, 파일-블록 인덱스(654)의 일부 또는 전부는 추가적으로 또는 그 대신에 하나 이상의 피어(610 또는 640) 뿐만 아니라 클라우드 저장소(660)에도 위치할 수 있다.
일 실시예에 따르면, 복구 피어(610)에 존재하는 정보의 버전으로부터 이전 버전으로의 복구가 요구됨을 식별함에 따라, 서명-기반 차별 동작이 복구 피어(610)에 존재하는 버전과 원하는 버전 사이에 수행되고 상기 버전들이 서로 일치하지 않는 하나 이상의 블록을 식별하게 된다. 서명을 비교한 후, 블록 위치 컴포넌트(620)가 파일-블록 인덱스(654) 및/또는 복구 피어(610)에 위치한 채로 복구될 정보의 버전과 원하는 버전 사이에 고유하다고 판정된 블록의 각 위치를 지정하는 임의의 다른 적합한 소스로부터 메타데이터를 획득하기 위해 인덱스 룩업 컴포넌트(622)를 이용할 수 있다.
인덱스 룩업 컴포넌트(622)에 의해 획득한 위치에 기초하여, 블록 위치 컴포넌트(620) 및/또는 복구 컴포넌트(630)는 블록 저장소(642 또는 652) 및/또는 시스템(600) 내의 임의의 다른 적절한 저장 위치 내의 그 해당 위치로부터 고유 블록을 빼낼(pull) 수 있다. 상기 블록은 일단 한번 획득되면, 그 이후에는 원하는 버전을 재생성하기 위해서 복구될 정보의 현재 버전에 이미 존재하는 비고유 블록과 병합될 수 있다. 따라서, 현재 파일 버전과 복구될 파일 버전 간에 서명-기반 차별 동작을 수행하면서, 점증적으로 업데이트되는 버전 간에 차분이 나는 비트(bit) 또는 블록만을 빼냄으로써 복구가 수행될 수 있다. 한 예에서, 블록이 복구 피어(610)에 있는 하나 이상의 다른 파일의 일부분이 되기 때문에, 인덱스 룩업 컴포넌트(622)에 의해 하나 이상의 상기 블록이 이미 복구 피어(610)에 로컬로 존재함을 판정할 수 있다. 그러한 경우에, 시스템(600) 내의 하나 이상의 다른 위치로부터 블록을 빼내는 대신에 상기 판정된 로커 블록이 이용될 수 있다.
따라서, 클라우드 저장소(660)의 특정 예로써, 원본과 그에 뒤따른 버전 Y 및 버전 Z로 표기된 파일의 각 버전이 연속하는 버전들 - 예를 들어, 원본, 버전 Y, 및 버전 Z 등 - 간의 점증적인 업데이트와 함께 저장될 수 있다. 그 뒤, 만약 사용자가 버전 Z로부터 원본을 복구하기를 원하는 경우, 원본과 버전 Y 사이 및 버전 Y와 버전 Z 사이의 상기 점증적인 업데이트의 전체적인 전환(full reversal)이나 상기 업데이트의 전체를 다운로드할 필요 없이 원본과 버전 Z 사이에 고유한 블록만을 빼내기 위해서 서명-기반 차별 동작이 이용될 수 있다.
또 다른 예에서, 시스템(600)의 P2P/클라우드 혼성 백업 구조는 복구 피어(610)에서 하나 이상의 파일을 복구하는데 필요한 지연 및/또는 대역폭을 최소화하기 위하여 사용될 수 있다. 예를 들어, 블록 위치 컴포넌트(620)는 시스템(600)을 분석하고 시스템(600)을 통해 최소한의 저항을 가지는 경로를 이용하여 해당 파일 세그먼트를 빼내는 것을 가능하게 하는 네트워크 분석 컴포넌트(624)를 사용할 수 있다. 따라서, 예를 들어, 임의의 블록이 피어(640), 수퍼 피어(650) 또는 클라우드 저장소(660)의 블록 저장소(642 또는 652)에 위치하는 경우에, 가장 가까운 네트워크 노드(network node)로부터 먼저 상기 블록을 빼내도록 하는 선호도(preference)가 설정될 수 있다. 결과적으로, 클라우드 저장소(660)와의 통신과 관계되는 지연과 대역폭의 사용을 최소화하기 위해서 피어(640) 및/또는 수퍼 피어(650)가 클라우드 저장소(660)보다 우선적으로 처리된다.
추가적으로 또는 그 대신에, 네트워크 분석 컴포넌트(624)는 각 블록을 획득할 노드의 지능적인 검색을 가능하게 하기 위하여, 시스템(600) 내의 각 노드의 가용성, 상대적인 네트워크 로딩, 및/또는 다른 요인들을 분석할 수 있다. 따라서, 복구 피어(610)는 먼저 피어 기계(640) 또는 수퍼 피어(650)로부터 블록의 집합을 획득하기 위해 시도하고, 상기 피어들(640 및/또는 650)에서 필요한 블록을 구할 수 없을 때만 클라우드 저장소(660)에서 시도한다. 다른 예에서, MLR 컴포넌트(626)가 블록을 획득하기 위한 네트워크 노드를 자동적으로 선택하는 것을 가능하게 하기 위하여 사용될 수 있다.
대안적인 예에서, 네트워크 분석 컴포넌트(624)가 복구 피어(610)과 연관된 시스템(600) 내에 도시되었으나, 수퍼 피어(650) 및/또는 복구 피어(610)가 파일-블록 인덱스(654)에 접근할 수 있는 다른 개체가 상기 파일-블록 인덱스(654)가 가리키는 각 블록의 여러 위치들 중에서 가장 적합한 위치를 선택하기 위하여 유사한 네트워크 분석을 이용할 수 있다. 그러한 위치는 일단 한번 선택되면 복구 피어(610)에 제공될 수 있다.
일 실시예에 따르면, 하나 이상의 파일을 원하는 버전으로 복구하기 위해 필요한 고유한 블록을 획득함에 따라, 복구 피어(610)의 복구 컴포넌트(630)는 상기 획득된 고유 블록과 상기 파일의 현재 버전에 이미 로컬로 존재하는 비고유 블록을 병합할 수 있다. 특정한 비한정적 예로서, 현재 버전과 원하는 버전 사이의 하나 이상의 차분을 현재 버전에서 빼기(subtract)함으로써 원하는 버전으로 롤백되는 전환 차분 알고리즘이 복구 컴포넌트(630)에 의해 사용될 수 있다. 그러한 빼기는 각 파일 버전 및/또는 각 파일 버전에 관련되는 임의의 다른 적절한 정보에 해당하는 서명 또는 해시(hash)에 기초한다. 그러나, 이런 알고리즘은 이용 가능한 복구 기술의 한 예에 불과하며, 임의의 다른 복구 알고리즘이 이런 알고리즘 대신에 또는 이런 알고리즘에 더하여 사용될 수 있다.
다음으로 도 7을 참조하면, 700은 여기에 설명된 다양한 실시예와 관련되어 사용될 수 있는 네트워크 구현의 예시를 도시하기 위해 제공된다. 도면(700)에 도시되어 있듯이, 네트워크 구현은 피어-투-피어 및 클라우드-기반 혼성 구조를 사용할 수 있으며, 클라우드 서비스 제공자(710)는 하나 이상의 수퍼 피어(720) 및 하나 이상의 피어(730, 740)와 상호작용한다.
일 실시예에 따르면, 클라우드 서비스 제공자(710)는 수퍼 피어(들)(720) 및/또는 피어(들)(730, 740)과 관련된 네트워크/인터 네트워크 - 예를 들어, 인터넷 - 의 주어진 위치로부터 하나 이상의 컴퓨팅 서비스를 원격으로 제공하기 위하여 사용될 수 있다. 클라우드 서비스 제공자(710)는 하나의 위치로부터 기원(originate)할 수도 있고, 또는 그 대신에 분산 인터넷-기반 서비스 제공자로서 구현될 수도 있다. 한 예에서, 클라우드 서비스 제공자(710)는 그와 연관된 하나 이상의 피어(720-740)에 백업 기능성(functionality)을 제공하기 위해 사용될 수 있다. 결과적으로, 클라우드 서비스 제공자(710)는 백업 서비스(712)를 구현 및/또는 관련 데이터 저장소(714)를 제공할 수 있다.
한 예에서, 데이터 저장소(714)는 각 피어 개체(720-740)에 존재하는 데이터를 위한 중앙 저장 위치로서 동작하기 위해서 수퍼 피어(720)의 백업 클라이언트(722) 및/또는 각 피어(730 또는 740)의 백업 클라이언트(732 또는 742)와 상호작용할 수 있다. 이러한 방법으로, 클라우드 서비스 제공자(710)는 피어(720-740)에 위치하는 데이터를 위한 온라인 "안전-저장 박스(safe-deposit box)"로 효과적으로 동작할 수 있다. 백업은 문서, 사진, 오디오, 비디오 등의 파일 및 시스템 정보 등과 같은 임의의 적절한 정보의 형태로 수행될 수 있다. 추가적으로 또는 그 대신에, 분산 네트워크 저장소가 구현되어 수퍼 피어(720) 및/또는 피어(730, 740)가 또한 연관 로컬 네트워크상에서 하나 이상의 기계와 연관된 백업 데이터를 위한 각각의 데이터 저장소(724, 734 및/또는 744)를 포함할 수 있다. 또 다른 예에서, 중복 제거(de-duplication), 점증적 저장소 및/또는 다른 적절한 기술들이 클라우드-기반 백업 서비스를 구현하는 도면(700)에 나타난 네트워크 내의 하나 이상의 해당 개체에 포함되는 데이터 저장소(714, 724, 734 및/또는 747)에 필요한 저장 공간의 양을 줄이는데 사용될 수 있다.
또 다른 실시예에서, 클라우드 서비스 제공자(710)는 하나 이상의 피어 기계(720, 730 및/또는 740)와 상호작용할 수 다. 도면(700)에 도시된 바와 같이, 하나 이상의 피어(720)가 수퍼 피어로 지정되어 관련 로컬 네트워크 내의 클라우드 서비스 제공자(710)와 하나 이상의 다른 피어(730, 740) 간의 연락책(liaison)으로 동작할 수 있다. 도 7에는 도시되지 않았으나, 임의의 적절한 피어(730 및/또는 740)와 지정된 수퍼 피어(들)(720)가 클라우드 서비스 제공자(710)과 적절하다고 여겨지는 형태로 직접적으로 상호작용할 수 있다. 따라서, 클라우드 서비스 제공자(710), 수퍼 피어(들)(720) 및/또는 피어(730 또는 740)는 임의의 적절한 시간에 파일 또는 도면(700)에 도시된 각 개체 간의 다른 정보를 동기화하기 위하여 서로 간에 통신할 수 있다.
한 예에서, 수퍼 피어(720)는 피어(720-740)와 연관된 네트워크상의 중앙 개체(central entity) - CDN(content distribution network), 기업 서버(enterprise server), 가정 서버(home server) 및/또는 임의의 다른 적절한 컴퓨팅 장치(들)과 같이 여기에 설명된 방법으로 수퍼 피어로서 동작할 수 있는 능력을 가졌다고 판단됨 - 가 될 수 있다. 기본적인 피어의 기능(standard peer functionality)과 더불어, 수퍼 피어(들)(720)는 로컬 네트워크 내의 피어(720-740) 간의 정보를 수집하고, 분산하고, 인덱싱할 수 있다. 예를 들어, 수퍼 피어(720)는 저장 인덱스(726)를 보유할 수 있고, 상기 저장 인덱스(726)는 피어(720-740)에 해당되는 각 파일 및/또는 파일 세그먼트의 식별인자(identifier)와 파일과 그 세그먼트가 발견되는 네트워크 및/또는 클라우드 데이터 저장소(714) 내의 각 위치에 대한 지정인자(pointer)를 포함할 수 있다. 추가적으로 또는 그 대신에, 수퍼 피어(720)는 클라우드 업로드 컴포넌트(728)를 통하여 지정된 오프-피크 기간마다 클라우드 서비스 제공자(710)에 각각의 데이터를 업로드 함으로써 다른 피어(730, 740)와 상기 클라우드 서비스 제공자(710) 간의 게이트웨이(gateway)로서 동작할 수 있다. 다른 예에서, 수퍼 피어(720)는 "뜨거운(hot)" 또는 "차가운(cold)" 데이터의 캐시(cache)로서 동작해서, 가장 복구가 일어날 것 같은 데이터의 사본을 복구 또는 원본의 피어에 보다 가깝게 위치시켜서 시간이 지날수록 더 많은 사본이 분산 시스템 내의 "더 차가운(colder)" 부분 - 예를 들어, 클라우드 서비스 제공자(710)의 데이터 저장소(714) - 에 분산되도록 할 수 있다.
도 8-10에는, 여기에 나타난 다양한 특징들에 따라 구현된 방법이 일련의 단계를 통해 기술된다. 여기에 청구된 방법론들은 그 단계의 순서가 제한되는 것은 아니고, 몇몇 단계가 다른 순서로 일어날 수 있으며, 또는 여기에 기술된 다른 단계와 동시에 일어날 수도 있다. 예를 들어, 당업자는 방법론들이 상태도(state diagram) 내의 서로 연관되는 연속적인 상태(state) 또는 이벤트로 대신 나타날 수 있음을 이해할 수 있을 것이다. 또한, 본 명세서에 개시된 방법을 구현하는 데 예시된 모든 단계가 필요하지는 않을 수도 있다.
도 8을 참조하면, 차분 파일 복구를 수행하는 방법(800)이 도시되어 있다. 802 단계에서, 하나 이상의 파일의 로컬로 사용 가능한 버전 및 상기 하나 이상의 파일이 복구될 원하는 버전이 식별된다. 804 단계에서, 802 단계에서 식별된 하나 이상의 파일 내의 블록이 상기 로컬로 사용 가능한 버전이 원하는 버전과 다름을 식별한다. 804 단계에서의 식별은 (예를 들어, 차분 컴포넌트(110)를 사용하여) 상기 로컬로 사용 가능한 버전과 원하는 버전 사이에 최소한 일부분에라도 차별 동작을 수행함으로써 이루어진다. 806 단계에서, 804 단계에서 식별된 블록이 (예를 들어, 블록 위치 컴포넌트(120) 및/또는 복구 컴포넌트(130)에 의해) 하나 이상의 데이터 저장소 - 예를 들어, 피어(532), 수퍼 피어(534) 및/또는 클라우드 저장소(536) - 에서 획득된다. 808 단계에서, 802 단계에서 식별된 하나 이상의 파일의 원하는 버전이 806 단계에서 획득한 블록과 상기 하나 이상의 파일의 로컬로 사용 가능한 버전 내의 하나 이상의 블록을 최소한 일부라도 병합함으로써 복구된다.
이제 도 9를 참조하면, 파일의 서명-기반 차별 동작을 수행하는 방법(900)의 흐름도가 제공된다. 902 단계에서, 파일의 현재 버전 내의 각 블록에 해당하는 하나 이상의 서명 - 예를 들어, 서명(424) - 이 식별된다. 904 단계에서, 902 단계에서 식별된 파일이 복구될 원하는 버전 내의 각 블록에 해당하는 하나 이상의 서명이 (예를 들어, 서명 소스(410)로부터) 수신된다. 906 단계에서, 파일의 현재 버전과 원하는 버전 사이의 고유한 하나 이상의 블록이 (예를 들어, 비교 컴포넌트(422)를 통해) 902 및 904 단계에서 식별된 서명을 비교함으로써 식별된다. 908 단계에서, 906 단계에서 식별된 고유한 블록이 하나 이상의 관련 블록 저장소로부터 획득된다.
도 10은 피어-투-피어/클라우드-기반 혼성 시스템으로부터 파일 세그먼트를 얻는 방법(1000)을 도시한다. 1002 단계에서, 네트워크상의 피어 - 예를 들어, 피어 (610 또는 640) 및/또는 수퍼 피어(650) - 와 클라우드 저장 위치 - 예를 들어, 클라우드 저장소(660) - 의 집합으로부터 얻어질 파일 세그먼트의 집합이 식별된다. 1004 단계에서, 각 파일 세그먼트를 얻기 위한 네트워크상의 하나 이상의 위치가 (예를 들어, 블록 위치 컴포넌트(620)에 의해) 네트워크 로딩, 위치 가용성(location availability), 네트워크 지연, 및/또는 대역폭 사용 등의 함수로써 선택된다. 1006 단계에서, 1004 단계에서 선택된 위치로부터 파일 세그먼트를 획득한다.
여기에 기술된 다양한 실시예에 대한 추가적인 상황 정보(context)를 제공하기 위하여, 도 11 및 그에 따른 설명이 청구된 주제의 다양한 실시예가 구현될 적절한 컴퓨팅 환경(1100)의 간략하고 일반적인 설명이 제공된다. 추가적으로, 상기 특성이 하나 이상의 컴퓨터에서 실행되는 컴퓨터 실행가능 명령어의 일반적인 상황 정보로서 기술되었지만, 당업자는 상기 특성이 다른 프로그램 모듈 및/또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있음을 인식할 것이다.
일반적으로, 프로그램 모듈은 특정 업무를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조 등을 포함한다. 더욱이, 당업자는 청구된 주제가 단일 프로세서 또는 여러개의 프로세서를 포함하는 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터, 개인용 컴퓨터, 휴대용 컴퓨팅 장치, 마이크로프로세서-기반 또는 프로그램 가능한 전자 제품 등 - 각각 하나 이상의 관련 장치와 동작적으로 연결될 수 있음 - 을 포함하는 다른 컴퓨터 시스템 구성(configuration)을 통해 실행될 수 있음을 이해할 것이다.
상기 도시된 실시예는 통신 네트워크를 통해 연결된 원격 처리 장치에 의해 특정 업무가 수행되는 분산 컴퓨팅 환경에서 실행될 수 있다. 분산 컴퓨팅 환경에서는, 프로그램 모듈이 로컬 또는 원격 메모리 저장 장치 모두에 위치될 수 있다.
컴퓨터는 일반적으로 다양한 컴퓨터 판독 가능 매체를 포함한다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스 가능하고 휘발성(volatile) 및 휘발성 매체를 포함하는 어떠한 매체도 가능하다. 한 예로서, 컴퓨터 판독 가능 장치는 컴퓨터 저장 매체와 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보를 저장하는 어떠한 방법 또는 기술에서 구현되는 휘발성 및 비휘발성, 리무버블(removable) 및 넌리무버블(non-removable) 매체를 포함할 수 있다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광학 디스크 저장 장치, 자기(magnetic) 카세트, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 장치, 또는 원하는 정보를 저장하고 컴퓨터에 의해 액세스될 수 있는 다른 매체를 포함한다.
통신 매체는 일반적으로 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 및 다른 데이터를 반송파와 같은 조절된 데이터 신호(modulated data signal) 또는 다른 전송 메커니즘을 통해 구현하고 임의의 정보 전달 매체(information delivery media)를 포함한다. "조절된 데이터 신호"라는 용어는 하나 이상의 특성 집합(characteristics set)을 가지거나 인코드된 정보로 변경되는 신호를 의미한다. 일례로서, 통신 매체는 유선 네트워크 또는 직접 유선 연결(direct-wired connection) 등의 유선 매체와 음향(acoustic), RF, 적외선 등의 무선 매체를 포함한다. 상기의 어떠한 조합도 컴퓨터 판독 가능 매체의 범주에 포함될 수 있다.
다시 도 11을 참조하면, 여기에 기술된 다양한 실시예를 구현하는 예시적인 환경(1100)은 컴퓨터(1102)를 포함하고, 상기 컴퓨터(1102)는 처리부 (1104), 시스템 메모리(1106), 및 시스템 버스(1108)를 포함한다. 시스템 버스(1108)는 반드시 한정되는 것은 아니지만 시스템 메모리(1106)을 포함하는 시스템 컴포넌트와 처리부(1104)를 연결한다. 처리부(1104)는 다양한 상업적 프로세서 중 어떤 것도 가능하다. 듀얼 마이크로프로세서(dual-microprocessor) 및 다른 여러 개의 프로세서를 가지는 구조가 상기 처리부(1104)로서 사용될 수 있다.
시스템 버스(1108)는 여러 타입의 버스 구조 중 어떤 것이라도 사용할 수 있으며, 여러 상업적으로 가용한 버스 구조의 어떤 것이라도 이용하여 메모리 버스(메모리 콘트롤러를 사용하거나 사용하지 않고), 주변 기계 버스(peripheral bus), 및 로컬 버스와 상호 연결될 수 있다. 시스템 메모리(1106)는 ROM(1110) 및 RAM(1112)를 포함한다. BIOS(basic input/output system)가 ROM, EPROM 및 EEPROM과 같은 비휘발성 메모리(1110)에 저장될 수 있으며, BIOS는 스타트-업(start-up)과 같은 때에 컴퓨터(1102) 내의 구성요소 간에 정보를 전송하는 것을 돕는 기본적인 루틴을 포함한다. RAM은 또한 데이터를 캐싱하기 위한 정적 RAM과 같은 고속 RAM을 포함할 수 있다.
컴퓨터(1102)는 EIDE, SATA와 같은 내부 HDD(1114)를 더 포함하며, 상기 내부 HDD(1114)는 적절한 섀시(chassis, 도시되지 않음), - 예를 들어, 리무버블 디스켓(1118)을 읽거나 또는 쓰기 위한 - 자기 FDD(floppy disk drive, 1116), 및 - 예를 들어, CD-ROM 디스크(1122)를 읽거나, 또는 DVD와 같은 다른 대용량 광학 매체를 읽거나 쓰기 위한 - 광학 디스크 드라이브에서 외부적으로도 사용될 수 있다. HDD(1114), 자기 디스크 드라이브(1116) 및 광학 디스크 드라이브(1120)는 HDD 인터페이스(1124), 자기 디스크 드라이브 인터페이스(1126), 및 광학 드라이브 인터페이스(1128)를 각각 통하여 시스템 버스(1108)에 연결될 수 있다. 외부 드라이브 구현을 위한 인터페이스(1124)는 USB(Universal Serial Bus) 및 IEEE-1394 인터페이스 기술의 최소 하나 또는 둘 다를 포함한다. 다른 외부 드라이브 연결 기술은 본 명세서 내에서 고려된다.
드라이브와 그와 관련된 컴퓨터 판독 가능 매체는 데이터, 데이터 구조, 컴퓨터 실행가능 명령어 등등에 대한 비휘발성 저장소를 제공한다. 컴퓨터(1102)에서, 드라이브와 매체는 적합한 디지털 포맷의 임의의 데이터를 위한 저장소를 제공한다. 상기의 컴큐터 판독 가능 매체에 대한 기술이 HDD, 리무버블 자기 디스켓 및 CD 또는 DVD 같은 리무버블 광학 매체를 지칭하지만, 당업자는 컴퓨터에 의해 판독가능한 다른 타입의 매체 즉, 집 드라이브(zip drive), 자기 카세트, 플래시 메모리 카드, 및 카드리지(cartridge) 등등 또한 예시적인 동작 환경에서 사용될 수 있으며, 그러한 임의의 매체가 여기에 기술된 방법을 수행하기 위한 컴퓨터 실행가능 명령어를 포함하는 것을 주지해야 한다.
많은 프로그램 모듈이 운영 체제(1130), 하나 이상의 애플리케이션 프로그램(1132), 다른 프로그램 모듈(1134) 및 프로그램 데이터(1136)을 포함하는 드라이브와 RAM(1112)에 저장될 수 있다. 상기 운영 체제, 애플리케이션, 모듈 및/또는 데이터의 전부 또는 일부가 RAM(1112)에 캐쉬(cache)될 수 있다. 청구된 주제는 다양한 상업적으로 가용한 운영 체제 또는 운영 체제의 조합으로 구현될 수 있다.
사용자는 하나 이상의 유선/무선 입력 장치 - 예를 들어, 키보드(1138) 및 마우스(1140)와 같은 위치 결정 장치(pointing device) - 를 통해 명령어 및 정보를 컴퓨터(1102)에 입력할 수 있다. 도시되지는 않았으나, 마이크, IR 원격 콘트롤, 조이스틱, 게임 패드, 스타일러스 펜, 또는 터치 스크린 등등의 다른 입력장치가 포함될 수 있다. 이러한 입력 장치들 및 다른 입력 장치들은 주로 시스템 버스(1108)와 연결된 입력 장치 인터페이스(1142)를 통해 처리부(1104)와 연결되지만, 병렬 포트, 직렬 포트, IEEE-1394 포트, 게임 포트, USB 포트, IR 인터페이스 등등의 다른 인터페이스를 통해 연결될 수 있다.
모니터(1144) 또는 다른 타입의 디스플레이 장치가 또한 비디오 어댑터(1146) 등의 인터페이스를 통해 시스템 버스(1108)와 연결된다. 모니터(1144)에 더하여, 컴퓨터는 일반적으로 스피커나 프린터 등등의 다른 주변 출력 장치(도시되지 않음)를 포함한다.
컴퓨터(1102)는 원격 컴퓨터(1148)와 같은 하나 이상의 원격 컴퓨터에 대한 유선 및/또는 무선 통신을 통해 논리 연결을 사용하여 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(1148)는 워크스테이션, 서버 컴퓨터, 라우터(router), 개인용 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 오락 기계(microprocessor-based entertainment appliance), 피어 장치 또는 다른 범용(common) 네트워크 노드일 수 있으며, 비록 간결한 설명을 위해 메모리/저장소 장치(1150) 만이 도시되었으나 일반적으로 컴퓨터(1102)와 관계되어 기술된 많은 또는 모든 요소들을 포함한다. 도시된 논리적 연결은 LAN(local area network, 1152) 및/또는 WAN(wide area network, 1154)과 같은 더 큰 네트워크와의 유선/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워크 환경은 회사와 사무실에서 흔히 쓰이고 인트라넷과 같은 전사적 컴퓨터 네트워크(enterprise-wide computer networks)를 가능하게 하며, 이 모든 네트워크 환경은 인터넷과 같은 글로벌 통신 네트워크와 연결된다.
LAN 네트워크 환경에서 사용될 때, 컴퓨터(1102)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(1156)를 통해 로컬 네트워크(1152)에 연결된다. 어댑터(1156)는 LAN(1152)과 유선 또는 무선 통신을 가능하게 하며, 상기 LAN(1152)은 또한 무선 어댑터(1156)와 통신하기 위해 그 안에 배치된 무선 액세스 포인트를 포함할 수 있다.
WAN 네트워크 환경에서 사용될 때, 컴퓨터(1102)는 모뎀(1158)을 포함하거나, WAN 상의 통신 서버에 연결되거나, 인터넷과 같은 WAN(1154)을 통한 통신을 구축하기 위한 다른 수단을 포함할 수 있다. 모뎀(1158)은 내장형 또는 외장형일 수 있고, 유선형 또는 무선형 일 수 있으며, 직렬 포트 인터페이스(1142)를 통해 시스템 버스(1108)에 연결된다. 네트워크 환경에서, 컴퓨터(1102)와 관련된 또는 그 일부로서 도시된 프로그램 모듈은 원격 메모리/저장소 장치(1150)에 저장될 수 있다. 도시된 네트워크 연결은 예시일 뿐이며, 컴퓨터 간의 통신 링크를 구축하기 위한 다른 수단도 사용될 수 있음을 주지해야 한다.
컴퓨터(1102)는 예를 들어 프린터, 스캐너, 데스크탑 및/또는 휴대용 컴퓨터, 휴대용 데이터 단말기(portable data assistant), 통신 위성, 무선 추적 태그 (wirelessly detectable tag)와 연관된 장비 또는 위치 - 예를 들어, 키오스크(kiosk), 신문 판매대, 화장실 - 및 전화기 등의 무선 통신에 동작적으로 배치된 무선 장치 및 개체와 통신하도록 동작할 수 있다. 이것은 적어도 Wi-Fi와 BluetoothTM 무선 기술을 포함한다. 따라서, 통신은 기존의 네트워크와 같은 미리 정의된 구조 또는 단순히 최소 두 장치 간의 즉석 통신(ad hoc communication)일 수 있다.
Wi-Fi(Wireless Fidelity)는 기지국의 범위 내의 어디에서나 데이터를 송신하고 수신할 수 있는 장치를 활성화하는 휴대 전화기에서 사용되는 것과 유사한 무선 기술이다. Wi-Fi 네트워크는 안전하고, 믿을 수 있고, 빠른 무선 연결을 제공하기 위해 IEEE-802.11 a, b, g 등의 라디오 기술을 사용한다. Wi-Fi 네트워크는 컴퓨터들을 서로에게 연결시키고, 인터넷 및 무선네트워크(IEEE-802.3 또는 이더넷을 사용)에 연결하는데 사용될 수 있다. Wi-Fi 네트워크는 예를 들어 허가되지 않은 2.4 및 5 GHz 라디오 대역에서 13 Mbps (802.11a) 또는 54 Mbps (802.11b) 데이터 전송속도로 동작하거나 두 대역을 모두 포함하는 듀얼 밴드(dual band) 장치로 동작할 수 있다. 따라서, Wi-Fi 무선 기술을 사용하는 네트워크는 10BaseT 유선 이더넷 네트워크와 유사한 실세계 성능(real-world performance)을 제공할 수 있다.
이제 도 12를 참조하면, 기재된 구조를 실행하기 위해 동작 가능한 예시적인 컴퓨터 컴파일 시스템(computer compilation system)의 간략한 블록도이 도시되었다. 시스템(1200)은 하나 이상의 클라이언트(1202)를 포함한다. 클라이언트(1202)는 쓰레드, 프로세스, 컴퓨팅 디바이스 등의 하드웨어 및/또는 소프트웨어일 수 있다. 다른 예에서, 클라이언트(1202)는 여기에 기술된 하나 이상의 특성을 사용하여 쿠키(cookie) 및/또는 그 연관 정보(contextual information)를 저장할 수 있다.
시스템(1200)은 또한 하나 이상의 서버(1204)를 포함한다. 서버(1204)는 또한, 쓰레드, 프로세스, 컴퓨팅 디바이스 등의 하드웨어 및/또는 소프트웨어일 수 있다. 한 예에서, 서버(1204)는 여기에 기술된 하나 이상의 특성을 사용하여 변환(transformation)을 수행하기 위한 쓰레드를 저장할 수 있다. 클라이언트(1202)와 서버(1204) 간에 한가지 가능한 통신은 둘 이상의 컴퓨터 프로세스 간에 전송되기에 적당한 데이터 패킷의 형태로 이루어진다. 데이터 패킷은 예를 들어 쿠키 및/또는 그 연관 정보를 포함할 수 있다. 시스템(1200)은 통신 프레임워크(1206) - 예를 들어, 인터넷과 같은 글로벌 통신 네트워크 - 를 포함하며, 상기 통신 프레임워크(1206)는 클라이언트(1202)와 서버(1204) 간의 통신을 가능하게 하기 위하여 사용될 수 있다.
통신은 유선 (광 섬유(optical fiber) 포함) 및/또는 무선 기술을 통해 가능해 진다. 클라이언트(1202)는 예를 들어 쿠키 및/또는 그 연관 정보와 같은 클라이언트(1202)에만 로컬인 정보를 저장하기 위해 사용되는 하나 이상의 클라이언트 데이터 저장소(1208)와 동작적으로 연결된다. 이와 유사하게, 서버(1204)는 서버(1204)에만 로컬인 정보를 저장하기 위해 사용되는 하나 이상의 서버 데이터 저장소(1210)와 동작적으로 연결된다.
상기에서 설명된 바는 청구된 주제의 일례를 포함한다. 물론, 청구된 주제를 설명할 목적으로 모든 도출 가능한 요소 및 방법의 조합을 기술하는 것은 불가능하지만, 당업자는 많은 다른 조합 및 순열(permutation)이 가능함을 인식할 것이다. 따라서, 상세한 설명은 첨부된 청구범위의 사상과 범위 내에서 이루어지는 그러한 모든 개조, 수정 및 변경을 포괄하는 것을 의도한다.
특히, 상기 설명된 컴포넌트, 장치, 회로, 시스템 등등에 의해 수행되는 다양한 기능과 관련하여, 그러한 요소들을 설명하는데 사용된 용어("수단"을 포함하여)는 별도로 지정되지 않는 한 여기에 도시된 예시적 실시예의 기능을 수행하는 기재된 구조와 구조적 등가물(structural equivalent)은 아니더라도, 상기 기술된 요소의 특정 기능을 수행하는 임의의 요소 - 기능적 등가물(functional equivalent) - 에 해당함을 의미한다. 이 점과 관련하여, 상기 설명된 실시예는 다양한 방법의 행위 및/또는 이벤트를 수행하기 위한 컴퓨터 실행 가능 명령어를 포함하는 시스템 및 컴퓨터 판독 가능 매체를 포함함을 또한 인식해야 한다.
이와 더불어, 특정한 특성이 여러 구현 중 하나와 관련되어 기재되었지만, 그러한 특성은 임의의 주어진 또는 특정 애플리케이션을 위해 요구되거나 유익한 다른 구현의 하나 이상의 특성과 조합될 수 있다. 또한 , "포함한다(includes)", "포함하는(including)" 및 그의 변형과 같은 용어가 상세한 설명 또는 청구범위에 사용되며, 이러한 용어는 포괄적 의도로 사용된다.
Claims (20)
- 네트워크 백업 시스템으로부터 정보를 복구하는 클라이언트 시스템으로서,
명령어를 저장하도록 구성된 메모리와 상기 명령어를 실행하도록 구성된 프로세서
를 포함하되,
상기 명령어는
복구될 데이터 항목에 대해, 상기 데이터 항목의 현재 버전과 상기 데이터 항목의 타깃 버전 간에 상이한 데이터 항목의 하나 이상의 부분을 상기 클라이언트 시스템에서 계산된, 상기 데이터 항목의 현재 버전과 상기 데이터 항목의 타깃 버전 간의 제 1 차분(differential) 및 상기 클라이언트 시스템으로부터 원거리에 있는 백업 위치(backup location)에서 계산된, 상기 데이터 항목의 현재 버전과 상기 데이터 항목의 타깃 버전 간의 제 2 차분 모두에 기초하여, 식별하도록 구성된 차분 컴포넌트(differential component)와,
상기 하나 이상의 식별된 부분이 저장되는 복수의 네트워크 위치를 결정하고 상기 결정된 네트워크 위치 중 하나를 선택하도록 구성되는 위치 결정 컴포넌트 - 상기 복수의 네트워크 위치는 클라우드 서비스 제공자와 연관된 적어도 하나의 위치를 포함함 - 와,
상기 선택된 위치로부터 상기 하나 이상의 식별된 부분을 가져와서, 상기 데이터 항목의 현재 버전을 상기 가져온 하나 이상의 식별된 부분을 이용하여 상기 데이터 항목의 타깃 버전으로 복구하도록 구성된 복구 컴포넌트
를 포함하는 클라이언트 시스템.
- 제 1 항에 있어서,
상기 차분 컴포넌트는 적어도 부분적으로 상기 데이터 항목의 현재 버전의 부분과 연관된 각각의 부분의 서명(portion signature)을 상기 데이터 항목의 타깃 버전의 대응하는 부분과 연관된 각각의 부분의 서명과 비교함으로써 상기 하나 이상의 부분을 식별하도록 더 구성되는
클라이언트 시스템.
- 제 1 항에 있어서,
상기 위치 결정 컴포넌트는 사전지정된 네트워크 위치에 있는 인덱스로부터 상기 복수의 네트워크 위치를 검색(look up)하도록 구성된 인덱스 룩업 컴포넌트(index lookup component)를 포함하는
클라이언트 시스템.
- 제 3 항에 있어서,
상기 인덱스는 상기 데이터 항목의 하나 이상의 부분 각각에 대한 적어도 하나의 위치에 대한 포인터 및 상기 데이터 항목의 상기 하나 이상의 부분의 리스트를 포함하는
클라이언트 시스템.
- 제 1 항에 있어서,
상기 복수의 네트워크 위치는
광역 네트워크를 통해 상기 클라이언트 시스템에 연결된 원격 장치의 위치와,
로컬 피어 장치의 위치 및 로컬 수퍼 피어 장치의 위치 중 적어도 하나
를 포함하되,
상기 로컬 피어 장치의 위치는 지역 네트워크(local area network)를 통해 상기 클라이언트 시스템에 연결되고 상기 데이터 항목의 하나 이상의 부분을 저장하도록 구성되며,
상기 로컬 수퍼 피어 장치의 위치는 상기 지역 네트워크를 통해 상기 클라이언트 시스템에 연결되고, 상기 데이터 항목의 상기 하나 이상의 부분과 함께, 상기 하나 이상의 부분 각각에 대한 적어도 하나의 위치에 대한 포인터 및 상기 하나 이상의 부분의 리스트를 포함하는 인덱스를 저장하도록 구성되는
클라이언트 시스템.
- 제 5 항에 있어서,
상기 위치 결정 컴포넌트는 상기 원격 장치의 위치에 대한 상기 로컬 피어 장치 또는 상기 수퍼 피어 장치의 위치의 우선순위 결정에 적어도 부분적으로 기초하여 상기 결정된 네트워크 위치 중 하나를 선택하도록 더 구성되는
클라이언트 시스템.
- 제 1 항에 있어서,
상기 위치 결정 컴포넌트는, 네트워크 로딩(network loading), 네트워크 위치 가동시간(network location uptime), 상기 클라이언트 시스템에 대한 각각의 네트워크 위치의 근접도(proximity) 및 상기 각각의 네트워크 위치로부터 상기 식별된 부분을 가져오기 위한 예상 대역폭 소비(expected bandwidth consumption)에 적어도 부분적으로 기초하여 상기 결정된 네트워크 위치 중 하나를 선택하도록 구성되는 네트워크 분석 컴포넌트를 포함하는
클라이언트 시스템.
- 제 1 항에 있어서,
상기 복수의 네트워크 위치 각각에 있는 장치는 상기 데이터 항목 및 상기 데이터 항목에 대한 하나 이상의 점증적 업데이트(incremental update)를 저장하도록 구성되는
클라이언트 시스템.
- 제 1 항에 있어서,
상기 복구 컴포넌트는
상기 가져온 부분을 상기 데이터 항목의 현재 버전의 하나 이상의 부분과 병합(merge)하여 상기 데이터 항목의 타깃 버전을 복구하도록 더 구성되는
클라이언트 시스템.
- 제 9 항에 있어서,
상기 복구 컴포넌트는 적어도 부분적으로 상기 데이터 항목의 현재 버전의 하나 이상의 부분을 상기 데이터 항목의 타깃 버전의 대응하는 부분으로 교체함으로써 상기 가져온 부분을 상기 데이터 항목의 현재 버전의 하나 이상의 부분과 병합하도록 더 구성되는
클라이언트 시스템.
- 제 1 항에 있어서,
상기 복구될 데이터 항목은 시스템 이미지인
클라이언트 시스템.
- 하나 이상의 파일의 차분 복구(differential restore)를 수행하는 방법으로서,
컴퓨팅 장치의 적어도 하나의 메모리 상에 저장된 파일의 로컬로 이용가능한 버전을 식별하는 단계와,
상기 파일의 로컬로 이용가능한 버전이 복구될 파일의 타깃 버전을 식별하는 단계와,
상기 컴퓨팅 장치에 의해, 적어도 상기 컴퓨팅 장치 및 상기 컴퓨팅 장치로부터 원격인 백업 서버 컴퓨팅 장치 모두에 의해 수행되는 계산에 기초하여, 상기 파일의 상기 로컬로 이용가능한 버전의 대응하는 세그먼트와 상이한 상기 파일의 타깃 버전의 각각의 세그먼트를 식별하는 단계와,
각각의 식별된 세그먼트를 획득하는 단계 - 상기 획득하는 단계는 상기 각각의 식별된 세그먼트에 대해,
상기 식별된 세그먼트를 가져올 수 있는 복수의 네트워크 데이터 저장소를 판정하는 단계 - 상기 복수의 네트워크 데이터 저장소는 클라우드 서비스 제공자의 적어도 하나의 네트워크 데이터 저장소를 포함함 - 와,
상기 복수의 판정된 네트워크 데이터 저장소로부터 하나의 네트워크 데이터 저장소를 선택하는 단계와,
상기 컴퓨팅 장치에 의해, 상기 선택된 네트워크 데이터 저장소로부터 상기 식별된 세그먼트를 획득하는 단계
를 포함함 - 와,
상기 컴퓨팅 장치에 의해, 상기 파일의 현재 버전 및 획득된 상기 식별된 세그먼트로부터 상기 파일의 타깃 버전을 복구하는 단계
를 포함하는
차분 복구 수행 방법.
- 제 12 항에 있어서,
상기 각각의 세그먼트를 식별하는 단계는, 상기 파일의 타깃 버전의 세그먼트와 연관된 서명을 상기 파일의 로컬로 이용가능한 버전의 대응하는 세그먼트와 연관된 서명과 비교하는 단계를 포함하는
차분 복구 수행 방법.
- 제 12 항에 있어서,
상기 각각의 식별된 세그먼트를 획득하는 단계는,
제 1 네트워크 데이터 저장소로부터 제 1 식별된 세그먼트를 획득하는 단계와,
제 2 네트워크 데이터 저장소로부터 제 2 식별된 세그먼트를 획득하는 단계 - 상기 제 1 네트워크 데이터 저장소는 상기 제 2 네트워크 데이터 저장소와 다름 -
를 더 포함하는 차분 복구 수행 방법.
- 제 12 항에 있어서,
상기 네트워크 데이터 저장소는
클라우드 서비스 제공자의 클라우드 기반 네트워크 데이터 저장소 - 상기 클라우드 기반 네트워크 데이터 저장소는 광역 네트워크를 통해 상기 컴퓨팅 장치에 연결됨 - 와,
지역 네트워크를 통해 상기 컴퓨팅 장치에 연결되고 백업 세그먼트를 저장하도록 구성된 로컬 피어 네트워크 데이터 저장소와,
상기 지역 네트워크를 통해 상기 컴퓨팅 장치에 연결되고 상기 백업 세그먼트와 함께 상기 백업 세그먼트를 가져올 수 있는 상기 네트워크 데이터 저장소에 대한 포인터 및 상기 백업 세그먼트의 리스트를 포함하는 인덱스를 저장하도록 구성되는 로컬 수퍼 피어 네트워크 데이터 저장소
를 포함하는 차분 복구 수행 방법.
- 제 15 항에 있어서,
상기 하나의 네트워크 데이터 저장소를 선택하는 단계는,
상기 로컬 피어 네트워크 데이터 저장소 및 상기 로컬 수퍼 피어 네트워크 데이터 저장소에 제 1 선호도(preference) 레벨을 적용하는 단계와,
상기 클라우드 기반 네트워크 데이터 저장소에 제 2 선호도 레벨을 적용하는 단계
를 포함하되,
상기 제 1 선호도 레벨은 상기 제 2 선호도 레벨에 대한 선호도를 나타내는
차분 복구 수행 방법.
- 제 15 항에 있어서,
상기 하나의 네트워크 데이터 저장소를 선택하는 단계는, 상기 컴퓨팅 장치 및 상기 네트워크 데이터 저장소 사이의 네트워크 로딩, 상기 네트워크 데이터 저장소의 가용성 및 상기 클라우드 기반 네트워크 데이터 저장소로부터 상기 식별된 세그먼트를 가져오는 것과 연관된 예상(anticipated) 대역폭 소비 중 적어도 하나에 적어도 부분적으로 기초하여 상기 하나의 네트워크 데이터 저장소를 선택하는 것을 포함하는
차분 복구 수행 방법.
- 제 12 항에 있어서,
상기 복구하는 단계는 상기 파일의 타깃 버전의 획득된 세그먼트를 상기 파일의 로컬로 이용가능한 버전의 세그먼트와 병합하는 단계를 포함하는
차분 복구 수행 방법.
- 제 12 항에 있어서,
상기 파일은 시스템 이미지의 일부 또는 상기 시스템 이미지인
차분 복구 수행 방법.
- 피어-투-피어 및 클라우드 기반 혼성 백업 시스템(hybrid peer-to-peer/cloud-base backup system)으로부터 정보를 복구하는 장치로서,
상기 장치는,
파일의 로컬로 이용가능한 블록 및 상기 파일의 타깃 버전의 대응하는 블록 간에 서명 기반 비교(signature-based comparison)를 수행하고, 상기 서명 기반 비교 및 원격 백업 위치에서 계산된 다른 서명 기반 비교 모두에 기초하여 상기 파일의 로컬로 이용가능한 버전의 임의의 블록에 똑같이(identically) 대응하지 않는 상기 파일의 타깃 버전의 적어도 하나의 블록을 식별하는 수단과,
상기 파일의 타깃 버전의 적어도 하나의 블록이 검색을 위해 이용될 수 있는 복수의 네트워크 장치를 결정하고, 상기 결정된 복수의 네트워크 장치 중 하나를 상기 파일의 상기 타깃 버전의 적어도 하나의 블록을 위한 소스로서 선택하는 수단 - 상기 복수의 네트워크 장치는 클라우드 서비스 제공자의 적어도 하나의 장치를 포함함 - 과,
상기 결정된 복수의 네트워크 장치 중 선택된 장치로부터 상기 파일의 타깃 버전의 적어도 하나의 블록을 획득하고, 상기 파일의 타깃 버전의 적어도 하나의 블록을 상기 파일의 로컬로 이용가능한 버전의 하나 이상의 블록과 병합하여 상기 파일의 타깃 버전을 복구하는 수단
을 포함하는 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/417,992 US8805953B2 (en) | 2009-04-03 | 2009-04-03 | Differential file and system restores from peers and the cloud |
US12/417,992 | 2009-04-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120027132A KR20120027132A (ko) | 2012-03-21 |
KR101626186B1 true KR101626186B1 (ko) | 2016-05-31 |
Family
ID=42827026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117023057A KR101626186B1 (ko) | 2009-04-03 | 2010-03-26 | 피어 및 클라우드로부터 파일 및 시스템의 차분 복구 |
Country Status (12)
Country | Link |
---|---|
US (1) | US8805953B2 (ko) |
EP (1) | EP2414933A4 (ko) |
JP (1) | JP5559867B2 (ko) |
KR (1) | KR101626186B1 (ko) |
CN (1) | CN102388361B (ko) |
AU (1) | AU2010232795B2 (ko) |
BR (1) | BRPI1014698A2 (ko) |
CA (1) | CA2756085C (ko) |
MX (1) | MX2011010287A (ko) |
RU (1) | RU2531869C2 (ko) |
TW (1) | TWI474164B (ko) |
WO (1) | WO2010114777A2 (ko) |
Families Citing this family (340)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6746483B1 (en) * | 2000-03-16 | 2004-06-08 | Smith & Nephew, Inc. | Sheaths for implantable fixation devices |
US8959299B2 (en) | 2004-11-15 | 2015-02-17 | Commvault Systems, Inc. | Using a snapshot as a data source |
US8250030B2 (en) | 2005-09-21 | 2012-08-21 | Infoblox Inc. | Provisional authority in a distributed database |
US8290910B2 (en) * | 2005-09-21 | 2012-10-16 | Infoblox Inc. | Semantic replication |
US8533169B1 (en) | 2005-09-21 | 2013-09-10 | Infoblox Inc. | Transactional replication |
US8068433B2 (en) * | 2007-11-26 | 2011-11-29 | Microsoft Corporation | Low power operation of networked devices |
US8074014B2 (en) * | 2008-03-31 | 2011-12-06 | Microsoft Corporation | Storage systems using write off-loading |
US8484162B2 (en) | 2008-06-24 | 2013-07-09 | Commvault Systems, Inc. | De-duplication systems and methods for application-specific data |
US8510577B2 (en) * | 2008-07-28 | 2013-08-13 | Microsoft Corporation | Reducing power consumption by offloading applications |
US8930306B1 (en) | 2009-07-08 | 2015-01-06 | Commvault Systems, Inc. | Synchronized data deduplication |
US20140222758A1 (en) * | 2009-08-14 | 2014-08-07 | Ic Manage, Inc. | Coherent File State Maintained Among Confederated Repositories By Distributed Workspace Apparatuses Backed Up By a File State Ledgerdemain Store |
US8874534B2 (en) * | 2009-08-14 | 2014-10-28 | Ic Manage, Inc. | File state subset satellites to provide block-based version control |
WO2011021909A2 (en) | 2009-08-21 | 2011-02-24 | Samsung Electronics Co., Ltd. | Method and apparatus for providing contents via network, method and apparatus for receiving contents via network, and method and apparatus for backing up data via network, backup data providing device, and backup system |
US8433682B2 (en) | 2009-12-31 | 2013-04-30 | Commvault Systems, Inc. | Systems and methods for analyzing snapshots |
CA2783370C (en) | 2009-12-31 | 2016-03-15 | Commvault Systems, Inc. | Systems and methods for performing data management operations using snapshots |
US9684563B1 (en) * | 2010-01-04 | 2017-06-20 | Veritas Technologies Llc | Techniques for backup management |
US9256899B2 (en) | 2010-01-15 | 2016-02-09 | Dell Products, L.P. | System and method for separation of software purchase from fulfillment |
US9235399B2 (en) | 2010-01-15 | 2016-01-12 | Dell Products L.P. | System and method for manufacturing and personalizing computing devices |
US10387927B2 (en) | 2010-01-15 | 2019-08-20 | Dell Products L.P. | System and method for entitling digital assets |
US9100396B2 (en) | 2010-01-29 | 2015-08-04 | Dell Products L.P. | System and method for identifying systems and replacing components |
US8977661B2 (en) * | 2010-02-22 | 2015-03-10 | Sookasa Inc. | System, method and computer readable medium for file management |
US9262643B2 (en) | 2010-02-22 | 2016-02-16 | Sookasa Inc. | Encrypting files within a cloud computing environment |
US8370672B2 (en) * | 2010-02-26 | 2013-02-05 | Microsoft Corporation | Reducing power consumption of distributed storage systems |
US8170783B2 (en) | 2010-03-16 | 2012-05-01 | Dell Products L.P. | System and method for handling software activation in entitlement |
US20110246721A1 (en) * | 2010-03-31 | 2011-10-06 | Sony Corporation | Method and apparatus for providing automatic synchronization appliance |
US9417969B2 (en) * | 2010-05-13 | 2016-08-16 | Sony Corporation | Distributed network backup of multimedia files |
US8707087B2 (en) * | 2010-05-18 | 2014-04-22 | Dell Products L.P. | Restoration of an image backup using information on other information handling systems |
US9083762B2 (en) * | 2010-05-28 | 2015-07-14 | Greg Saunders | System and method for providing hybrid on demand services to a work unit |
WO2012023050A2 (en) | 2010-08-20 | 2012-02-23 | Overtis Group Limited | Secure cloud computing system and method |
US8650159B1 (en) * | 2010-08-26 | 2014-02-11 | Symantec Corporation | Systems and methods for managing data in cloud storage using deduplication techniques |
US8713265B1 (en) * | 2010-09-21 | 2014-04-29 | Western Digital Technologies, Inc. | Visual indicator of online backup |
US8577851B2 (en) | 2010-09-30 | 2013-11-05 | Commvault Systems, Inc. | Content aligned block-based deduplication |
US8572340B2 (en) | 2010-09-30 | 2013-10-29 | Commvault Systems, Inc. | Systems and methods for retaining and using data block signatures in data protection operations |
WO2012057581A2 (ko) * | 2010-10-28 | 2012-05-03 | 에스케이텔레콤 주식회사 | 클라우드 컴퓨팅 시스템 및 그의 데이터 동기화 방법 |
US8583599B2 (en) * | 2010-11-29 | 2013-11-12 | Ca, Inc. | Reducing data duplication in cloud storage |
US8688645B2 (en) * | 2010-11-30 | 2014-04-01 | Netapp, Inc. | Incremental restore of data between storage systems having dissimilar storage operating systems associated therewith |
US8656454B2 (en) | 2010-12-01 | 2014-02-18 | Microsoft Corporation | Data store including a file location attribute |
US9020900B2 (en) | 2010-12-14 | 2015-04-28 | Commvault Systems, Inc. | Distributed deduplicated storage system |
US8954446B2 (en) | 2010-12-14 | 2015-02-10 | Comm Vault Systems, Inc. | Client-side repository in a networked deduplicated storage system |
US8316057B2 (en) * | 2010-12-17 | 2012-11-20 | International Business Machines Corporation | Restoring deduplicated data objects from sequential backup devices |
US10262050B2 (en) | 2015-09-25 | 2019-04-16 | Mongodb, Inc. | Distributed database systems and methods with pluggable storage engines |
US11544288B2 (en) * | 2010-12-23 | 2023-01-03 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US10346430B2 (en) | 2010-12-23 | 2019-07-09 | Mongodb, Inc. | System and method for determining consensus within a distributed database |
US11615115B2 (en) | 2010-12-23 | 2023-03-28 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US9280550B1 (en) * | 2010-12-31 | 2016-03-08 | Emc Corporation | Efficient storage tiering |
US9037597B2 (en) * | 2011-01-10 | 2015-05-19 | International Business Machines Corporation | Verifying file versions in a networked computing environment |
US8676763B2 (en) | 2011-02-08 | 2014-03-18 | International Business Machines Corporation | Remote data protection in a networked storage computing environment |
US9225791B2 (en) * | 2011-02-28 | 2015-12-29 | Red Hat, Inc. | Staged data migration between data sources and cloud-based storage network |
US9384199B2 (en) | 2011-03-31 | 2016-07-05 | Microsoft Technology Licensing, Llc | Distributed file system |
US8868859B2 (en) * | 2011-06-03 | 2014-10-21 | Apple Inc. | Methods and apparatus for multi-source restore |
US20130138615A1 (en) * | 2011-11-29 | 2013-05-30 | International Business Machines Corporation | Synchronizing updates across cluster filesystems |
US9152659B2 (en) * | 2011-12-30 | 2015-10-06 | Bmc Software, Inc. | Systems and methods for migrating database data |
KR101429334B1 (ko) * | 2012-02-02 | 2014-08-12 | 충북대학교 산학협력단 | P2p 네트워크 환경에서 모바일 피어 검색을 위한 연속 범위 질의 처리 방법 |
US9298715B2 (en) | 2012-03-07 | 2016-03-29 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9471578B2 (en) | 2012-03-07 | 2016-10-18 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9342537B2 (en) | 2012-04-23 | 2016-05-17 | Commvault Systems, Inc. | Integrated snapshot interface for a data storage system |
US9542466B2 (en) * | 2012-05-10 | 2017-01-10 | Aetherstore Inc. | Systems and methods for distributed storage |
US20130339298A1 (en) | 2012-06-13 | 2013-12-19 | Commvault Systems, Inc. | Collaborative backup in a networked storage system |
US8949401B2 (en) | 2012-06-14 | 2015-02-03 | Dell Products L.P. | Automated digital migration |
US8468139B1 (en) | 2012-07-16 | 2013-06-18 | Dell Products L.P. | Acceleration of cloud-based migration/backup through pre-population |
US11544284B2 (en) | 2012-07-26 | 2023-01-03 | Mongodb, Inc. | Aggregation framework system architecture and method |
US11403317B2 (en) | 2012-07-26 | 2022-08-02 | Mongodb, Inc. | Aggregation framework system architecture and method |
US9779219B2 (en) | 2012-08-09 | 2017-10-03 | Dell Products L.P. | Method and system for late binding of option features associated with a device using at least in part license and unique ID information |
CN103873504A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 数据分块存储至分布式服务器的系统及方法 |
CN107704198B (zh) * | 2012-12-17 | 2020-01-31 | 联想(北京)有限公司 | 信息处理的方法及电子设备 |
US9165001B1 (en) * | 2012-12-19 | 2015-10-20 | Emc Corporation | Multi stream deduplicated backup of collaboration server data |
US9015122B2 (en) * | 2012-12-21 | 2015-04-21 | Zetta, Inc. | Systems and methods for minimizing network bandwidth for replication/back up |
US9373001B2 (en) | 2012-12-26 | 2016-06-21 | Barracuda Networks, Inc. | Distributed encryption and access control scheme in a cloud environment |
TWI489889B (zh) | 2012-12-28 | 2015-06-21 | Ind Tech Res Inst | 內容遞送網路及同儕網路之流量控制方法及系統 |
US9886346B2 (en) | 2013-01-11 | 2018-02-06 | Commvault Systems, Inc. | Single snapshot for multiple agents |
US9665591B2 (en) | 2013-01-11 | 2017-05-30 | Commvault Systems, Inc. | High availability distributed deduplicated storage system |
JP2014164614A (ja) * | 2013-02-26 | 2014-09-08 | Sony Corp | 情報処理装置および方法、並びにプログラム |
US8732135B1 (en) * | 2013-03-01 | 2014-05-20 | Storagecraft Technology Corporation | Restoring a backup from a deduplication vault storage |
US8682870B1 (en) | 2013-03-01 | 2014-03-25 | Storagecraft Technology Corporation | Defragmentation during multiphase deduplication |
US20140250077A1 (en) * | 2013-03-01 | 2014-09-04 | Storagecraft Technology Corporation | Deduplication vault storage seeding |
US8738577B1 (en) | 2013-03-01 | 2014-05-27 | Storagecraft Technology Corporation | Change tracking for multiphase deduplication |
US8874527B2 (en) | 2013-03-01 | 2014-10-28 | Storagecraft Technology Corporation | Local seeding of a restore storage for restoring a backup from a remote deduplication vault storage |
US9594643B2 (en) * | 2013-03-06 | 2017-03-14 | Quest Software Inc. | Handling restores in an incremental backup storage system |
US10191823B2 (en) | 2014-03-11 | 2019-01-29 | Cloudendure Ltd. | System and method for restoring original machines from replicated machines in a secondary computing environment |
US9582386B2 (en) | 2013-03-15 | 2017-02-28 | Cloudendure, Ltd. | System and method for maintaining a copy of a cloud-based computing environment and restoration thereof |
US10157107B2 (en) | 2013-07-03 | 2018-12-18 | Catalogic Software, Inc. | Data backup and progressive restoration using data chunks in cloud storage and a data cache |
US11630585B1 (en) | 2016-08-25 | 2023-04-18 | Pure Storage, Inc. | Processing evacuation events in a storage array that includes a plurality of storage devices |
CN104754007A (zh) * | 2013-12-26 | 2015-07-01 | 伊姆西公司 | 用于管理网络附加存储的方法和装置 |
US9639426B2 (en) | 2014-01-24 | 2017-05-02 | Commvault Systems, Inc. | Single snapshot for multiple applications |
US9753812B2 (en) | 2014-01-24 | 2017-09-05 | Commvault Systems, Inc. | Generating mapping information for single snapshot for multiple applications |
US9632874B2 (en) | 2014-01-24 | 2017-04-25 | Commvault Systems, Inc. | Database application backup in single snapshot for multiple applications |
US9495251B2 (en) | 2014-01-24 | 2016-11-15 | Commvault Systems, Inc. | Snapshot readiness checking and reporting |
US8751454B1 (en) | 2014-01-28 | 2014-06-10 | Storagecraft Technology Corporation | Virtual defragmentation in a deduplication vault |
JP6269174B2 (ja) * | 2014-03-05 | 2018-01-31 | 富士通株式会社 | データ処理プログラム、データ処理装置及びデータ処理方法 |
US10380072B2 (en) | 2014-03-17 | 2019-08-13 | Commvault Systems, Inc. | Managing deletions from a deduplication database |
US9633056B2 (en) | 2014-03-17 | 2017-04-25 | Commvault Systems, Inc. | Maintaining a deduplication database |
US9852026B2 (en) | 2014-08-06 | 2017-12-26 | Commvault Systems, Inc. | Efficient application recovery in an information management system based on a pseudo-storage-device driver |
US11249858B2 (en) | 2014-08-06 | 2022-02-15 | Commvault Systems, Inc. | Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host |
US9774672B2 (en) | 2014-09-03 | 2017-09-26 | Commvault Systems, Inc. | Consolidated processing of storage-array commands by a snapshot-control media agent |
US10042716B2 (en) | 2014-09-03 | 2018-08-07 | Commvault Systems, Inc. | Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent |
US9575673B2 (en) | 2014-10-29 | 2017-02-21 | Commvault Systems, Inc. | Accessing a file system using tiered deduplication |
US9448731B2 (en) | 2014-11-14 | 2016-09-20 | Commvault Systems, Inc. | Unified snapshot storage management |
US9648105B2 (en) | 2014-11-14 | 2017-05-09 | Commvault Systems, Inc. | Unified snapshot storage management, using an enhanced storage manager and enhanced media agents |
US10911537B1 (en) * | 2014-12-31 | 2021-02-02 | Acronis International Gmbh | Increasing speed of synchronization and restore |
CN104572354A (zh) * | 2015-01-22 | 2015-04-29 | 上海迈微软件科技有限公司 | 基于恢复服务的操作系统备份和恢复的方法及其设备 |
EP3248101B1 (en) | 2015-01-23 | 2021-12-08 | ServiceNow, Inc. | Distributed computing system with resource managed database cloning |
CN104639629A (zh) * | 2015-01-30 | 2015-05-20 | 英华达(上海)科技有限公司 | 一种在客户端和云端进行文件的比较方法及比较系统 |
US10339106B2 (en) | 2015-04-09 | 2019-07-02 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
US10311150B2 (en) | 2015-04-10 | 2019-06-04 | Commvault Systems, Inc. | Using a Unix-based file system to manage and serve clones to windows-based computing clients |
US11102298B1 (en) | 2015-05-26 | 2021-08-24 | Pure Storage, Inc. | Locally providing cloud storage services for fleet management |
US20160350391A1 (en) | 2015-05-26 | 2016-12-01 | Commvault Systems, Inc. | Replication using deduplicated secondary copy data |
US9716755B2 (en) | 2015-05-26 | 2017-07-25 | Pure Storage, Inc. | Providing cloud storage array services by a local storage array in a data center |
US9594678B1 (en) | 2015-05-27 | 2017-03-14 | Pure Storage, Inc. | Preventing duplicate entries of identical data in a storage device |
US10021170B2 (en) | 2015-05-29 | 2018-07-10 | Pure Storage, Inc. | Managing a storage array using client-side services |
US9444822B1 (en) | 2015-05-29 | 2016-09-13 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
US9300660B1 (en) | 2015-05-29 | 2016-03-29 | Pure Storage, Inc. | Providing authorization and authentication in a cloud for a user of a storage array |
US11503031B1 (en) | 2015-05-29 | 2022-11-15 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
US9588691B2 (en) | 2015-06-10 | 2017-03-07 | Pure Storage, Inc. | Dynamically managing control information in a storage device |
US9594512B1 (en) | 2015-06-19 | 2017-03-14 | Pure Storage, Inc. | Attributing consumed storage capacity among entities storing data in a storage array |
US10310740B2 (en) | 2015-06-23 | 2019-06-04 | Pure Storage, Inc. | Aligning memory access operations to a geometry of a storage device |
US10296236B2 (en) | 2015-07-01 | 2019-05-21 | Pure Storage, Inc. | Offloading device management responsibilities from a storage device in an array of storage devices |
US9766825B2 (en) | 2015-07-22 | 2017-09-19 | Commvault Systems, Inc. | Browse and restore for block-level backups |
US9892071B2 (en) | 2015-08-03 | 2018-02-13 | Pure Storage, Inc. | Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array |
US9851762B1 (en) | 2015-08-06 | 2017-12-26 | Pure Storage, Inc. | Compliant printed circuit board (‘PCB’) within an enclosure |
US11625181B1 (en) | 2015-08-24 | 2023-04-11 | Pure Storage, Inc. | Data tiering using snapshots |
US11294588B1 (en) | 2015-08-24 | 2022-04-05 | Pure Storage, Inc. | Placing data within a storage device |
US10198194B2 (en) | 2015-08-24 | 2019-02-05 | Pure Storage, Inc. | Placing data within a storage device of a flash array |
US10673623B2 (en) | 2015-09-25 | 2020-06-02 | Mongodb, Inc. | Systems and methods for hierarchical key management in encrypted distributed databases |
US11360844B1 (en) | 2015-10-23 | 2022-06-14 | Pure Storage, Inc. | Recovery of a container storage provider |
US10514978B1 (en) | 2015-10-23 | 2019-12-24 | Pure Storage, Inc. | Automatic deployment of corrective measures for storage arrays |
US9384082B1 (en) | 2015-10-23 | 2016-07-05 | Pure Storage, Inc. | Proactively providing corrective measures for storage arrays |
US10284232B2 (en) | 2015-10-28 | 2019-05-07 | Pure Storage, Inc. | Dynamic error processing in a storage device |
US9740414B2 (en) | 2015-10-29 | 2017-08-22 | Pure Storage, Inc. | Optimizing copy operations |
US10374868B2 (en) | 2015-10-29 | 2019-08-06 | Pure Storage, Inc. | Distributed command processing in a flash storage system |
US10353777B2 (en) | 2015-10-30 | 2019-07-16 | Pure Storage, Inc. | Ensuring crash-safe forward progress of a system configuration update |
US9760479B2 (en) | 2015-12-02 | 2017-09-12 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US11762764B1 (en) | 2015-12-02 | 2023-09-19 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US10326836B2 (en) | 2015-12-08 | 2019-06-18 | Pure Storage, Inc. | Partially replicating a snapshot between storage systems |
US11616834B2 (en) | 2015-12-08 | 2023-03-28 | Pure Storage, Inc. | Efficient replication of a dataset to the cloud |
US10162835B2 (en) | 2015-12-15 | 2018-12-25 | Pure Storage, Inc. | Proactive management of a plurality of storage arrays in a multi-array system |
US11347697B1 (en) | 2015-12-15 | 2022-05-31 | Pure Storage, Inc. | Proactively optimizing a storage system |
US10346043B2 (en) | 2015-12-28 | 2019-07-09 | Pure Storage, Inc. | Adaptive computing for data compression |
US10592357B2 (en) | 2015-12-30 | 2020-03-17 | Commvault Systems, Inc. | Distributed file system in a distributed deduplication data storage system |
US9886314B2 (en) | 2016-01-28 | 2018-02-06 | Pure Storage, Inc. | Placing workloads in a multi-array system |
US10133639B2 (en) * | 2016-02-10 | 2018-11-20 | International Business Machines Corporation | Privacy protection of media files for automatic cloud backup systems |
US10572460B2 (en) | 2016-02-11 | 2020-02-25 | Pure Storage, Inc. | Compressing data in dependence upon characteristics of a storage system |
US9760297B2 (en) | 2016-02-12 | 2017-09-12 | Pure Storage, Inc. | Managing input/output (‘I/O’) queues in a data storage system |
US10296368B2 (en) | 2016-03-09 | 2019-05-21 | Commvault Systems, Inc. | Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount) |
US10503753B2 (en) | 2016-03-10 | 2019-12-10 | Commvault Systems, Inc. | Snapshot replication operations based on incremental block change tracking |
JP6638489B2 (ja) * | 2016-03-14 | 2020-01-29 | オムロン株式会社 | 中継装置、中継装置の制御方法、制御プログラム、および記録媒体 |
US11995315B2 (en) | 2016-03-16 | 2024-05-28 | Pure Storage, Inc. | Converting data formats in a storage system |
US9959043B2 (en) | 2016-03-16 | 2018-05-01 | Pure Storage, Inc. | Performing a non-disruptive upgrade of data in a storage system |
US9891849B2 (en) | 2016-04-14 | 2018-02-13 | International Business Machines Corporation | Accelerated recovery in data replication environments |
US9841921B2 (en) | 2016-04-27 | 2017-12-12 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices |
US11112990B1 (en) | 2016-04-27 | 2021-09-07 | Pure Storage, Inc. | Managing storage device evacuation |
US11809727B1 (en) | 2016-04-27 | 2023-11-07 | Pure Storage, Inc. | Predicting failures in a storage system that includes a plurality of storage devices |
US9811264B1 (en) | 2016-04-28 | 2017-11-07 | Pure Storage, Inc. | Deploying client-specific applications in a storage system utilizing redundant system resources |
US10303390B1 (en) | 2016-05-02 | 2019-05-28 | Pure Storage, Inc. | Resolving fingerprint collisions in flash storage system |
US10846024B2 (en) | 2016-05-16 | 2020-11-24 | Commvault Systems, Inc. | Global de-duplication of virtual disks in a storage platform |
US10795577B2 (en) | 2016-05-16 | 2020-10-06 | Commvault Systems, Inc. | De-duplication of client-side data cache for virtual disks |
US11231858B2 (en) | 2016-05-19 | 2022-01-25 | Pure Storage, Inc. | Dynamically configuring a storage system to facilitate independent scaling of resources |
US9507532B1 (en) | 2016-05-20 | 2016-11-29 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices |
US10671496B2 (en) | 2016-05-31 | 2020-06-02 | Mongodb, Inc. | Method and apparatus for reading and writing committed data |
US10691567B2 (en) | 2016-06-03 | 2020-06-23 | Pure Storage, Inc. | Dynamically forming a failure domain in a storage system that includes a plurality of blades |
US9946617B2 (en) * | 2016-06-06 | 2018-04-17 | International Business Machines Corporation | Optimized recovery in data replication environments |
US10776220B2 (en) | 2016-06-27 | 2020-09-15 | Mongodb, Inc. | Systems and methods for monitoring distributed database deployments |
US10452310B1 (en) | 2016-07-13 | 2019-10-22 | Pure Storage, Inc. | Validating cabling for storage component admission to a storage array |
US11706895B2 (en) | 2016-07-19 | 2023-07-18 | Pure Storage, Inc. | Independent scaling of compute resources and storage resources in a storage system |
US10459652B2 (en) | 2016-07-27 | 2019-10-29 | Pure Storage, Inc. | Evacuating blades in a storage array that includes a plurality of blades |
US10474363B1 (en) | 2016-07-29 | 2019-11-12 | Pure Storage, Inc. | Space reporting in a storage system |
WO2018038650A1 (en) * | 2016-08-22 | 2018-03-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for enabling a communication device to receive a partial modification of a resource |
US10437730B2 (en) | 2016-08-22 | 2019-10-08 | International Business Machines Corporation | Read cache synchronization in data replication environments |
US10572245B1 (en) | 2016-08-30 | 2020-02-25 | Amazon Technologies, Inc. | Identifying versions of running programs using signatures derived from object files |
US11531577B1 (en) | 2016-09-07 | 2022-12-20 | Pure Storage, Inc. | Temporarily limiting access to a storage device |
US10235229B1 (en) | 2016-09-07 | 2019-03-19 | Pure Storage, Inc. | Rehabilitating storage devices in a storage array that includes a plurality of storage devices |
US11481261B1 (en) | 2016-09-07 | 2022-10-25 | Pure Storage, Inc. | Preventing extended latency in a storage system |
US10331588B2 (en) | 2016-09-07 | 2019-06-25 | Pure Storage, Inc. | Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling |
US11886922B2 (en) | 2016-09-07 | 2024-01-30 | Pure Storage, Inc. | Scheduling input/output operations for a storage system |
US11960348B2 (en) | 2016-09-07 | 2024-04-16 | Pure Storage, Inc. | Cloud-based monitoring of hardware components in a fleet of storage systems |
US10671439B1 (en) | 2016-09-07 | 2020-06-02 | Pure Storage, Inc. | Workload planning with quality-of-service (‘QOS’) integration |
US10908966B1 (en) | 2016-09-07 | 2021-02-02 | Pure Storage, Inc. | Adapting target service times in a storage system |
US10146585B2 (en) | 2016-09-07 | 2018-12-04 | Pure Storage, Inc. | Ensuring the fair utilization of system resources using workload based, time-independent scheduling |
US11379132B1 (en) | 2016-10-20 | 2022-07-05 | Pure Storage, Inc. | Correlating medical sensor data |
US10007459B2 (en) | 2016-10-20 | 2018-06-26 | Pure Storage, Inc. | Performance tuning in a storage system that includes one or more storage devices |
US11620075B2 (en) | 2016-11-22 | 2023-04-04 | Pure Storage, Inc. | Providing application aware storage |
US10162566B2 (en) | 2016-11-22 | 2018-12-25 | Pure Storage, Inc. | Accumulating application-level statistics in a storage system |
US10198205B1 (en) | 2016-12-19 | 2019-02-05 | Pure Storage, Inc. | Dynamically adjusting a number of storage devices utilized to simultaneously service write operations |
US11461273B1 (en) | 2016-12-20 | 2022-10-04 | Pure Storage, Inc. | Modifying storage distribution in a storage system that includes one or more storage devices |
US10489307B2 (en) | 2017-01-05 | 2019-11-26 | Pure Storage, Inc. | Periodically re-encrypting user data stored on a storage device |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US10666707B2 (en) * | 2017-01-11 | 2020-05-26 | Microsoft Technology Licensing, Llc | Nonconsecutive file downloading |
US11340800B1 (en) | 2017-01-19 | 2022-05-24 | Pure Storage, Inc. | Content masking in a storage system |
US10503700B1 (en) | 2017-01-19 | 2019-12-10 | Pure Storage, Inc. | On-demand content filtering of snapshots within a storage system |
US11163624B2 (en) | 2017-01-27 | 2021-11-02 | Pure Storage, Inc. | Dynamically adjusting an amount of log data generated for a storage system |
US10264054B2 (en) | 2017-02-10 | 2019-04-16 | International Business Machines Corporation | Predictive device to device file transfer system for local cloud storage files |
US10740193B2 (en) | 2017-02-27 | 2020-08-11 | Commvault Systems, Inc. | Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount |
US11675520B2 (en) | 2017-03-10 | 2023-06-13 | Pure Storage, Inc. | Application replication among storage systems synchronously replicating a dataset |
US11169727B1 (en) | 2017-03-10 | 2021-11-09 | Pure Storage, Inc. | Synchronous replication between storage systems with virtualized storage |
US11803453B1 (en) | 2017-03-10 | 2023-10-31 | Pure Storage, Inc. | Using host connectivity states to avoid queuing I/O requests |
US11941279B2 (en) | 2017-03-10 | 2024-03-26 | Pure Storage, Inc. | Data path virtualization |
US10521344B1 (en) | 2017-03-10 | 2019-12-31 | Pure Storage, Inc. | Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems |
US10503427B2 (en) | 2017-03-10 | 2019-12-10 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
US10454810B1 (en) | 2017-03-10 | 2019-10-22 | Pure Storage, Inc. | Managing host definitions across a plurality of storage systems |
US11089105B1 (en) | 2017-12-14 | 2021-08-10 | Pure Storage, Inc. | Synchronously replicating datasets in cloud-based storage systems |
US11442825B2 (en) | 2017-03-10 | 2022-09-13 | Pure Storage, Inc. | Establishing a synchronous replication relationship between two or more storage systems |
US10459664B1 (en) | 2017-04-10 | 2019-10-29 | Pure Storage, Inc. | Virtualized copy-by-reference |
US9910618B1 (en) | 2017-04-10 | 2018-03-06 | Pure Storage, Inc. | Migrating applications executing on a storage system |
US11249671B2 (en) * | 2017-04-28 | 2022-02-15 | Netapp, Inc. | Methods for improved data replication across hybrid cloud volumes using data tagging and devices thereof |
US11868629B1 (en) | 2017-05-05 | 2024-01-09 | Pure Storage, Inc. | Storage system sizing service |
US10552090B2 (en) | 2017-09-07 | 2020-02-04 | Pure Storage, Inc. | Solid state drives with multiple types of addressable memory |
US11989429B1 (en) | 2017-06-12 | 2024-05-21 | Pure Storage, Inc. | Recommending changes to a storage system |
US11340939B1 (en) | 2017-06-12 | 2022-05-24 | Pure Storage, Inc. | Application-aware analytics for storage systems |
US10853148B1 (en) | 2017-06-12 | 2020-12-01 | Pure Storage, Inc. | Migrating workloads between a plurality of execution environments |
US11609718B1 (en) | 2017-06-12 | 2023-03-21 | Pure Storage, Inc. | Identifying valid data after a storage system recovery |
US20180357017A1 (en) | 2017-06-12 | 2018-12-13 | Pure Storage, Inc. | Accessible fast durable storage integrated into a bulk storage device |
US10613791B2 (en) | 2017-06-12 | 2020-04-07 | Pure Storage, Inc. | Portable snapshot replication between storage systems |
US11422731B1 (en) | 2017-06-12 | 2022-08-23 | Pure Storage, Inc. | Metadata-based replication of a dataset |
US11592991B2 (en) | 2017-09-07 | 2023-02-28 | Pure Storage, Inc. | Converting raid data between persistent storage types |
US10417092B2 (en) | 2017-09-07 | 2019-09-17 | Pure Storage, Inc. | Incremental RAID stripe update parity calculation |
US11016824B1 (en) | 2017-06-12 | 2021-05-25 | Pure Storage, Inc. | Event identification with out-of-order reporting in a cloud-based environment |
US11210133B1 (en) | 2017-06-12 | 2021-12-28 | Pure Storage, Inc. | Workload mobility between disparate execution environments |
CN110720088A (zh) | 2017-06-12 | 2020-01-21 | 净睿存储股份有限公司 | 集成到大容量存储设备的可访问快速耐久存储 |
US11442669B1 (en) | 2018-03-15 | 2022-09-13 | Pure Storage, Inc. | Orchestrating a virtual storage system |
US10884636B1 (en) | 2017-06-12 | 2021-01-05 | Pure Storage, Inc. | Presenting workload performance in a storage system |
US10976962B2 (en) | 2018-03-15 | 2021-04-13 | Pure Storage, Inc. | Servicing I/O operations in a cloud-based storage system |
US10664352B2 (en) | 2017-06-14 | 2020-05-26 | Commvault Systems, Inc. | Live browsing of backed up data residing on cloned disks |
US11561714B1 (en) | 2017-07-05 | 2023-01-24 | Pure Storage, Inc. | Storage efficiency driven migration |
US11477280B1 (en) | 2017-07-26 | 2022-10-18 | Pure Storage, Inc. | Integrating cloud storage services |
US10635632B2 (en) | 2017-08-29 | 2020-04-28 | Cohesity, Inc. | Snapshot archive management |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US11321192B2 (en) * | 2017-09-07 | 2022-05-03 | Cohesity, Inc. | Restoration of specified content from an archive |
US11874805B2 (en) | 2017-09-07 | 2024-01-16 | Cohesity, Inc. | Remotely mounted file system with stubs |
US10452444B1 (en) | 2017-10-19 | 2019-10-22 | Pure Storage, Inc. | Storage system with compute resources and shared storage resources |
US11861423B1 (en) | 2017-10-19 | 2024-01-02 | Pure Storage, Inc. | Accelerating artificial intelligence (‘AI’) workflows |
US10671434B1 (en) | 2017-10-19 | 2020-06-02 | Pure Storage, Inc. | Storage based artificial intelligence infrastructure |
US11455168B1 (en) | 2017-10-19 | 2022-09-27 | Pure Storage, Inc. | Batch building for deep learning training workloads |
US10360214B2 (en) | 2017-10-19 | 2019-07-23 | Pure Storage, Inc. | Ensuring reproducibility in an artificial intelligence infrastructure |
US11494692B1 (en) | 2018-03-26 | 2022-11-08 | Pure Storage, Inc. | Hyperscale artificial intelligence and machine learning infrastructure |
US10671494B1 (en) | 2017-11-01 | 2020-06-02 | Pure Storage, Inc. | Consistent selection of replicated datasets during storage system recovery |
US10467107B1 (en) | 2017-11-01 | 2019-11-05 | Pure Storage, Inc. | Maintaining metadata resiliency among storage device failures |
US10817392B1 (en) | 2017-11-01 | 2020-10-27 | Pure Storage, Inc. | Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices |
US10484174B1 (en) | 2017-11-01 | 2019-11-19 | Pure Storage, Inc. | Protecting an encryption key for data stored in a storage system that includes a plurality of storage devices |
US10509581B1 (en) | 2017-11-01 | 2019-12-17 | Pure Storage, Inc. | Maintaining write consistency in a multi-threaded storage system |
US10929226B1 (en) | 2017-11-21 | 2021-02-23 | Pure Storage, Inc. | Providing for increased flexibility for large scale parity |
US10990282B1 (en) | 2017-11-28 | 2021-04-27 | Pure Storage, Inc. | Hybrid data tiering with cloud storage |
US10936238B2 (en) | 2017-11-28 | 2021-03-02 | Pure Storage, Inc. | Hybrid data tiering |
US10795598B1 (en) | 2017-12-07 | 2020-10-06 | Pure Storage, Inc. | Volume migration for storage systems synchronously replicating a dataset |
US11036677B1 (en) | 2017-12-14 | 2021-06-15 | Pure Storage, Inc. | Replicated data integrity |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
US10992533B1 (en) | 2018-01-30 | 2021-04-27 | Pure Storage, Inc. | Policy based path management |
US10740022B2 (en) | 2018-02-14 | 2020-08-11 | Commvault Systems, Inc. | Block-level live browsing and private writable backup copies using an ISCSI server |
US11972134B2 (en) | 2018-03-05 | 2024-04-30 | Pure Storage, Inc. | Resource utilization using normalized input/output (‘I/O’) operations |
US11150834B1 (en) | 2018-03-05 | 2021-10-19 | Pure Storage, Inc. | Determining storage consumption in a storage system |
US11861170B2 (en) | 2018-03-05 | 2024-01-02 | Pure Storage, Inc. | Sizing resources for a replication target |
US10521151B1 (en) | 2018-03-05 | 2019-12-31 | Pure Storage, Inc. | Determining effective space utilization in a storage system |
US10942650B1 (en) | 2018-03-05 | 2021-03-09 | Pure Storage, Inc. | Reporting capacity utilization in a storage system |
US10296258B1 (en) | 2018-03-09 | 2019-05-21 | Pure Storage, Inc. | Offloading data storage to a decentralized storage network |
US10917471B1 (en) | 2018-03-15 | 2021-02-09 | Pure Storage, Inc. | Active membership in a cloud-based storage system |
US11288138B1 (en) | 2018-03-15 | 2022-03-29 | Pure Storage, Inc. | Recovery from a system fault in a cloud-based storage system |
US10924548B1 (en) | 2018-03-15 | 2021-02-16 | Pure Storage, Inc. | Symmetric storage using a cloud-based storage system |
US11048590B1 (en) | 2018-03-15 | 2021-06-29 | Pure Storage, Inc. | Data consistency during recovery in a cloud-based storage system |
US11210009B1 (en) | 2018-03-15 | 2021-12-28 | Pure Storage, Inc. | Staging data in a cloud-based storage system |
US11095706B1 (en) | 2018-03-21 | 2021-08-17 | Pure Storage, Inc. | Secure cloud-based storage system management |
US11171950B1 (en) | 2018-03-21 | 2021-11-09 | Pure Storage, Inc. | Secure cloud-based storage system management |
US10838833B1 (en) | 2018-03-26 | 2020-11-17 | Pure Storage, Inc. | Providing for high availability in a data analytics pipeline without replicas |
US11436344B1 (en) | 2018-04-24 | 2022-09-06 | Pure Storage, Inc. | Secure encryption in deduplication cluster |
US11392553B1 (en) | 2018-04-24 | 2022-07-19 | Pure Storage, Inc. | Remote data management |
US11675503B1 (en) | 2018-05-21 | 2023-06-13 | Pure Storage, Inc. | Role-based data access |
US11455409B2 (en) | 2018-05-21 | 2022-09-27 | Pure Storage, Inc. | Storage layer data obfuscation |
US10992598B2 (en) | 2018-05-21 | 2021-04-27 | Pure Storage, Inc. | Synchronously replicating when a mediation service becomes unavailable |
US11954220B2 (en) | 2018-05-21 | 2024-04-09 | Pure Storage, Inc. | Data protection for container storage |
US10871922B2 (en) | 2018-05-22 | 2020-12-22 | Pure Storage, Inc. | Integrated storage management between storage systems and container orchestrators |
JP7248267B2 (ja) * | 2018-06-06 | 2023-03-29 | Necソリューションイノベータ株式会社 | ストレージ装置、復旧方法、プログラム |
CN108874590A (zh) * | 2018-06-16 | 2018-11-23 | 武汉商启网络信息有限公司 | 一种云主机自动备份与恢复的系统 |
US11416298B1 (en) | 2018-07-20 | 2022-08-16 | Pure Storage, Inc. | Providing application-specific storage by a storage system |
US11403000B1 (en) | 2018-07-20 | 2022-08-02 | Pure Storage, Inc. | Resiliency in a cloud-based storage system |
US11632360B1 (en) | 2018-07-24 | 2023-04-18 | Pure Storage, Inc. | Remote access to a storage device |
US11146564B1 (en) | 2018-07-24 | 2021-10-12 | Pure Storage, Inc. | Login authentication in a cloud storage platform |
US11954238B1 (en) | 2018-07-24 | 2024-04-09 | Pure Storage, Inc. | Role-based access control for a storage system |
US11860820B1 (en) | 2018-09-11 | 2024-01-02 | Pure Storage, Inc. | Processing data through a storage system in a data pipeline |
US10671302B1 (en) | 2018-10-26 | 2020-06-02 | Pure Storage, Inc. | Applying a rate limit across a plurality of storage systems |
US10963189B1 (en) | 2018-11-18 | 2021-03-30 | Pure Storage, Inc. | Coalescing write operations in a cloud-based storage system |
US11526405B1 (en) | 2018-11-18 | 2022-12-13 | Pure Storage, Inc. | Cloud-based disaster recovery |
US11340837B1 (en) | 2018-11-18 | 2022-05-24 | Pure Storage, Inc. | Storage system management via a remote console |
US11023179B2 (en) | 2018-11-18 | 2021-06-01 | Pure Storage, Inc. | Cloud-based storage system storage management |
US11010258B2 (en) | 2018-11-27 | 2021-05-18 | Commvault Systems, Inc. | Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication |
US11698727B2 (en) | 2018-12-14 | 2023-07-11 | Commvault Systems, Inc. | Performing secondary copy operations based on deduplication performance |
US11650749B1 (en) | 2018-12-17 | 2023-05-16 | Pure Storage, Inc. | Controlling access to sensitive data in a shared dataset |
US11003369B1 (en) | 2019-01-14 | 2021-05-11 | Pure Storage, Inc. | Performing a tune-up procedure on a storage device during a boot process |
US11042452B1 (en) | 2019-03-20 | 2021-06-22 | Pure Storage, Inc. | Storage system data recovery using data recovery as a service |
US11221778B1 (en) | 2019-04-02 | 2022-01-11 | Pure Storage, Inc. | Preparing data for deduplication |
US11068162B1 (en) | 2019-04-09 | 2021-07-20 | Pure Storage, Inc. | Storage management in a cloud data store |
US20200327017A1 (en) | 2019-04-10 | 2020-10-15 | Commvault Systems, Inc. | Restore using deduplicated secondary copy data |
US11463264B2 (en) | 2019-05-08 | 2022-10-04 | Commvault Systems, Inc. | Use of data block signatures for monitoring in an information management system |
US11126364B2 (en) | 2019-07-18 | 2021-09-21 | Pure Storage, Inc. | Virtual storage system architecture |
US11327676B1 (en) | 2019-07-18 | 2022-05-10 | Pure Storage, Inc. | Predictive data streaming in a virtual storage system |
US11392555B2 (en) | 2019-05-15 | 2022-07-19 | Pure Storage, Inc. | Cloud-based file services |
US11853266B2 (en) | 2019-05-15 | 2023-12-26 | Pure Storage, Inc. | Providing a file system in a cloud environment |
CN110362429B (zh) * | 2019-07-12 | 2021-08-06 | 优刻得科技股份有限公司 | 数据库的连续数据保护方法、系统、设备和介质 |
US11093139B1 (en) | 2019-07-18 | 2021-08-17 | Pure Storage, Inc. | Durably storing data within a virtual storage system |
US11550514B2 (en) | 2019-07-18 | 2023-01-10 | Pure Storage, Inc. | Efficient transfers between tiers of a virtual storage system |
US11861221B1 (en) | 2019-07-18 | 2024-01-02 | Pure Storage, Inc. | Providing scalable and reliable container-based storage services |
US11526408B2 (en) | 2019-07-18 | 2022-12-13 | Pure Storage, Inc. | Data recovery in a virtual storage system |
US11487715B1 (en) | 2019-07-18 | 2022-11-01 | Pure Storage, Inc. | Resiliency in a cloud-based storage system |
TWI711288B (zh) * | 2019-08-27 | 2020-11-21 | 中華電信股份有限公司 | 異地備份方法 |
US11086553B1 (en) | 2019-08-28 | 2021-08-10 | Pure Storage, Inc. | Tiering duplicated objects in a cloud-based object store |
US11693713B1 (en) | 2019-09-04 | 2023-07-04 | Pure Storage, Inc. | Self-tuning clusters for resilient microservices |
US11797569B2 (en) | 2019-09-13 | 2023-10-24 | Pure Storage, Inc. | Configurable data replication |
US11625416B1 (en) | 2019-09-13 | 2023-04-11 | Pure Storage, Inc. | Uniform model for distinct types of data replication |
US11573864B1 (en) | 2019-09-16 | 2023-02-07 | Pure Storage, Inc. | Automating database management in a storage system |
KR102427418B1 (ko) * | 2019-09-27 | 2022-08-01 | 주식회사 데이타커맨드 | 백업 데이터 합성 장치 및 방법 |
US11669386B1 (en) | 2019-10-08 | 2023-06-06 | Pure Storage, Inc. | Managing an application's resource stack |
CN112685225A (zh) * | 2019-10-18 | 2021-04-20 | 伊姆西Ip控股有限责任公司 | 用于传输数据的方法、设备和计算机程序产品 |
US10715524B1 (en) * | 2019-11-14 | 2020-07-14 | Snowflake Inc. | External credential-less stages for data warehouse integrations |
US11442896B2 (en) | 2019-12-04 | 2022-09-13 | Commvault Systems, Inc. | Systems and methods for optimizing restoration of deduplicated data stored in cloud-based storage resources |
US11868318B1 (en) | 2019-12-06 | 2024-01-09 | Pure Storage, Inc. | End-to-end encryption in a storage system with multi-tenancy |
US11709636B1 (en) | 2020-01-13 | 2023-07-25 | Pure Storage, Inc. | Non-sequential readahead for deep learning training |
US11733901B1 (en) | 2020-01-13 | 2023-08-22 | Pure Storage, Inc. | Providing persistent storage to transient cloud computing services |
US11720497B1 (en) | 2020-01-13 | 2023-08-08 | Pure Storage, Inc. | Inferred nonsequential prefetch based on data access patterns |
CN111309388B (zh) * | 2020-02-03 | 2023-07-21 | 杭州迪普科技股份有限公司 | 设备的系统软件版本的自动回滚系统及其方法 |
US11868622B2 (en) | 2020-02-25 | 2024-01-09 | Pure Storage, Inc. | Application recovery across storage systems |
US11637896B1 (en) | 2020-02-25 | 2023-04-25 | Pure Storage, Inc. | Migrating applications to a cloud-computing environment |
US11321006B1 (en) | 2020-03-25 | 2022-05-03 | Pure Storage, Inc. | Data loss prevention during transitions from a replication source |
US11630598B1 (en) | 2020-04-06 | 2023-04-18 | Pure Storage, Inc. | Scheduling data replication operations |
US11301152B1 (en) | 2020-04-06 | 2022-04-12 | Pure Storage, Inc. | Intelligently moving data between storage systems |
US11494267B2 (en) | 2020-04-14 | 2022-11-08 | Pure Storage, Inc. | Continuous value data redundancy |
US11921670B1 (en) | 2020-04-20 | 2024-03-05 | Pure Storage, Inc. | Multivariate data backup retention policies |
US11687424B2 (en) | 2020-05-28 | 2023-06-27 | Commvault Systems, Inc. | Automated media agent state management |
US11431488B1 (en) | 2020-06-08 | 2022-08-30 | Pure Storage, Inc. | Protecting local key generation using a remote key management service |
US11831773B1 (en) | 2020-06-29 | 2023-11-28 | Amazon Technologies, Inc. | Secured database restoration across service regions |
US11422733B2 (en) * | 2020-06-29 | 2022-08-23 | EMC IP Holding Company LLC | Incremental replication between foreign system dataset stores |
US11442652B1 (en) | 2020-07-23 | 2022-09-13 | Pure Storage, Inc. | Replication handling during storage system transportation |
US11349917B2 (en) | 2020-07-23 | 2022-05-31 | Pure Storage, Inc. | Replication handling among distinct networks |
US11487701B2 (en) | 2020-09-24 | 2022-11-01 | Cohesity, Inc. | Incremental access requests for portions of files from a cloud archival storage tier |
US11397545B1 (en) | 2021-01-20 | 2022-07-26 | Pure Storage, Inc. | Emulating persistent reservations in a cloud-based storage system |
US11853285B1 (en) | 2021-01-22 | 2023-12-26 | Pure Storage, Inc. | Blockchain logging of volume-level events in a storage system |
US20220365827A1 (en) | 2021-05-12 | 2022-11-17 | Pure Storage, Inc. | Rebalancing In A Fleet Of Storage Systems Using Data Science |
US11816129B2 (en) | 2021-06-22 | 2023-11-14 | Pure Storage, Inc. | Generating datasets using approximate baselines |
US11914867B2 (en) | 2021-10-29 | 2024-02-27 | Pure Storage, Inc. | Coordinated snapshots among storage systems implementing a promotion/demotion model |
US11714723B2 (en) | 2021-10-29 | 2023-08-01 | Pure Storage, Inc. | Coordinated snapshots for data stored across distinct storage environments |
US11893263B2 (en) | 2021-10-29 | 2024-02-06 | Pure Storage, Inc. | Coordinated checkpoints among storage systems implementing checkpoint-based replication |
US11922052B2 (en) | 2021-12-15 | 2024-03-05 | Pure Storage, Inc. | Managing links between storage objects |
US11847071B2 (en) | 2021-12-30 | 2023-12-19 | Pure Storage, Inc. | Enabling communication between a single-port device and multiple storage system controllers |
US11860780B2 (en) | 2022-01-28 | 2024-01-02 | Pure Storage, Inc. | Storage cache management |
US11886295B2 (en) | 2022-01-31 | 2024-01-30 | Pure Storage, Inc. | Intra-block error correction |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5765173A (en) | 1996-01-11 | 1998-06-09 | Connected Corporation | High performance backup via selective file saving which can perform incremental backups and exclude files and uses a changed block signature list |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4853843A (en) * | 1987-12-18 | 1989-08-01 | Tektronix, Inc. | System for merging virtual partitions of a distributed database |
US6760840B1 (en) * | 1994-03-15 | 2004-07-06 | Kabushiki Kaisha Toshiba | File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing |
US6366930B1 (en) * | 1996-04-12 | 2002-04-02 | Computer Associates Think, Inc. | Intelligent data inventory & asset management systems method and apparatus |
KR970076238A (ko) * | 1996-05-23 | 1997-12-12 | 포만 제프리 엘 | 클라이언트 데이타 화일의 다수의 복사본을 생성하고 관리하는 서버, 방법 및 그 프로그램 제품 |
US5797016A (en) * | 1996-10-29 | 1998-08-18 | Cheyenne Software Inc. | Regeneration agent for back-up software |
US5794254A (en) * | 1996-12-03 | 1998-08-11 | Fairbanks Systems Group | Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets |
US6367029B1 (en) * | 1998-11-03 | 2002-04-02 | Sun Microsystems, Inc. | File server system tolerant to software and hardware failures |
GB2353611B (en) * | 1999-08-24 | 2004-03-17 | Ibm | Disk image backup/restore with data preparation phase |
US7574496B2 (en) * | 2001-11-30 | 2009-08-11 | Surgient, Inc. | Virtual server cloud interfacing |
US7257584B2 (en) * | 2002-03-18 | 2007-08-14 | Surgient, Inc. | Server file management |
US6990666B2 (en) * | 2002-03-18 | 2006-01-24 | Surgient Inc. | Near on-line server |
US6993539B2 (en) * | 2002-03-19 | 2006-01-31 | Network Appliance, Inc. | System and method for determining changes in two snapshots and for transmitting changes to destination snapshot |
US7139808B2 (en) * | 2002-04-30 | 2006-11-21 | Intel Corporation | Method and apparatus for bandwidth-efficient and storage-efficient backups |
US7334124B2 (en) * | 2002-07-22 | 2008-02-19 | Vormetric, Inc. | Logical access block processing protocol for transparent secure file storage |
US7925623B2 (en) * | 2002-09-10 | 2011-04-12 | Exagrid Systems, Inc. | Method and apparatus for integrating primary data storage with local and remote data protection |
US7203711B2 (en) * | 2003-05-22 | 2007-04-10 | Einstein's Elephant, Inc. | Systems and methods for distributed content storage and management |
US7567991B2 (en) * | 2003-06-25 | 2009-07-28 | Emc Corporation | Replication of snapshot using a file system copy differential |
US7275177B2 (en) * | 2003-06-25 | 2007-09-25 | Emc Corporation | Data recovery with internet protocol replication with or without full resync |
US20050015416A1 (en) * | 2003-07-16 | 2005-01-20 | Hitachi, Ltd. | Method and apparatus for data recovery using storage based journaling |
US7257257B2 (en) * | 2003-08-19 | 2007-08-14 | Intel Corporation | Method and apparatus for differential, bandwidth-efficient and storage-efficient backups |
US7225208B2 (en) * | 2003-09-30 | 2007-05-29 | Iron Mountain Incorporated | Systems and methods for backing up data files |
US7315930B2 (en) * | 2003-10-30 | 2008-01-01 | Hewlett-Packard Development Company, L.P. | Method of selecting heuristic class for data placement |
US7383463B2 (en) * | 2004-02-04 | 2008-06-03 | Emc Corporation | Internet protocol based disaster recovery of a server |
JP2005301497A (ja) * | 2004-04-08 | 2005-10-27 | Hitachi Ltd | ストレージ管理装置、リストア方法及びそのプログラム |
JP2005301464A (ja) | 2004-04-08 | 2005-10-27 | Hitachi Ltd | バックアップ方法ならびにバックアップシステム |
US7555531B2 (en) * | 2004-04-15 | 2009-06-30 | Microsoft Corporation | Efficient algorithm and protocol for remote differential compression |
US8108429B2 (en) * | 2004-05-07 | 2012-01-31 | Quest Software, Inc. | System for moving real-time data events across a plurality of devices in a network for simultaneous data protection, replication, and access services |
US7461100B2 (en) * | 2004-05-27 | 2008-12-02 | International Business Machines Corporation | Method for fast reverse restore |
US7330997B1 (en) * | 2004-06-03 | 2008-02-12 | Gary Odom | Selective reciprocal backup |
US7979404B2 (en) * | 2004-09-17 | 2011-07-12 | Quest Software, Inc. | Extracting data changes and storing data history to allow for instantaneous access to and reconstruction of any point-in-time data |
US8364633B2 (en) * | 2005-01-12 | 2013-01-29 | Wandisco, Inc. | Distributed computing systems and system components thereof |
US20060212439A1 (en) * | 2005-03-21 | 2006-09-21 | Microsoft Corporation | System and method of efficient data backup in a networking environment |
US8010498B2 (en) * | 2005-04-08 | 2011-08-30 | Microsoft Corporation | Virtually infinite reliable storage across multiple storage devices and storage services |
WO2007017857A1 (en) * | 2005-04-15 | 2007-02-15 | Zak Dechovich | Accelerated computer recovery |
US8429630B2 (en) * | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
ATE504878T1 (de) * | 2005-10-12 | 2011-04-15 | Datacastle Corp | Verfahren und system zur datensicherung |
US7653668B1 (en) * | 2005-11-23 | 2010-01-26 | Symantec Operating Corporation | Fault tolerant multi-stage data replication with relaxed coherency guarantees |
US20070136200A1 (en) * | 2005-12-09 | 2007-06-14 | Microsoft Corporation | Backup broker for private, integral and affordable distributed storage |
US20070177739A1 (en) * | 2006-01-27 | 2007-08-02 | Nec Laboratories America, Inc. | Method and Apparatus for Distributed Data Replication |
US7783600B1 (en) * | 2006-02-27 | 2010-08-24 | Symantec Operating Corporation | Redundancy management service for peer-to-peer networks |
US7529785B1 (en) * | 2006-02-28 | 2009-05-05 | Symantec Corporation | Efficient backups using dynamically shared storage pools in peer-to-peer networks |
US20070214198A1 (en) * | 2006-03-10 | 2007-09-13 | Nathan Fontenot | Allowing state restoration using differential backing objects |
US7441092B2 (en) * | 2006-04-20 | 2008-10-21 | Microsoft Corporation | Multi-client cluster-based backup and restore |
EP3336707A1 (en) * | 2006-05-05 | 2018-06-20 | Hybir Inc. | Group based complete and incremental computer file backup system, process and apparatus |
US7873601B1 (en) * | 2006-06-29 | 2011-01-18 | Emc Corporation | Backup of incremental metadata in block based backup systems |
EP2078269A4 (en) * | 2006-10-31 | 2011-02-23 | Rebit Inc | AUTOMATIC MASKING SYSTEM OF DATA AND FILE DIRECTORY STRUCTURES RECORDED ON A COMPUTER MEMORY |
US7734669B2 (en) * | 2006-12-22 | 2010-06-08 | Commvault Systems, Inc. | Managing copies of data |
US7685189B2 (en) * | 2006-12-27 | 2010-03-23 | Microsoft Corporation | Optimizing backup and recovery utilizing change tracking |
JP2008197745A (ja) * | 2007-02-08 | 2008-08-28 | Hitachi Ltd | ストレージ仮想化システムにおける記憶制御装置 |
US8874518B2 (en) * | 2007-06-06 | 2014-10-28 | International Business Machines Corporation | System, method and program product for backing up data |
WO2008154448A2 (en) * | 2007-06-08 | 2008-12-18 | Apple Inc. | Application-based backup-restore of electronic information |
JP2009070143A (ja) * | 2007-09-13 | 2009-04-02 | Hitachi Ltd | Nas装置の差分リモートバックアップにおけるデータ復旧方法及び計算機システム |
US8190836B1 (en) * | 2008-04-30 | 2012-05-29 | Network Appliance, Inc. | Saving multiple snapshots without duplicating common blocks to protect the entire contents of a volume |
US8108502B2 (en) * | 2008-07-24 | 2012-01-31 | Symform, Inc. | Storage device for use in a shared community storage network |
US8099572B1 (en) * | 2008-09-30 | 2012-01-17 | Emc Corporation | Efficient backup and restore of storage objects in a version set |
US8566362B2 (en) * | 2009-01-23 | 2013-10-22 | Nasuni Corporation | Method and system for versioned file system using structured data representations |
-
2009
- 2009-04-03 US US12/417,992 patent/US8805953B2/en not_active Expired - Fee Related
-
2010
- 2010-03-03 TW TW99106208A patent/TWI474164B/zh not_active IP Right Cessation
- 2010-03-26 WO PCT/US2010/028957 patent/WO2010114777A2/en active Application Filing
- 2010-03-26 BR BRPI1014698A patent/BRPI1014698A2/pt not_active IP Right Cessation
- 2010-03-26 JP JP2012503541A patent/JP5559867B2/ja active Active
- 2010-03-26 RU RU2011139997/08A patent/RU2531869C2/ru not_active IP Right Cessation
- 2010-03-26 AU AU2010232795A patent/AU2010232795B2/en active Active
- 2010-03-26 MX MX2011010287A patent/MX2011010287A/es active IP Right Grant
- 2010-03-26 KR KR1020117023057A patent/KR101626186B1/ko active IP Right Grant
- 2010-03-26 CN CN201080015305.XA patent/CN102388361B/zh active Active
- 2010-03-26 EP EP10759248A patent/EP2414933A4/en not_active Withdrawn
- 2010-03-26 CA CA2756085A patent/CA2756085C/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5765173A (en) | 1996-01-11 | 1998-06-09 | Connected Corporation | High performance backup via selective file saving which can perform incremental backups and exclude files and uses a changed block signature list |
Also Published As
Publication number | Publication date |
---|---|
WO2010114777A2 (en) | 2010-10-07 |
AU2010232795A1 (en) | 2011-10-20 |
JP5559867B2 (ja) | 2014-07-23 |
CN102388361B (zh) | 2015-02-25 |
US8805953B2 (en) | 2014-08-12 |
CA2756085A1 (en) | 2010-10-07 |
TW201040713A (en) | 2010-11-16 |
EP2414933A4 (en) | 2012-11-14 |
BRPI1014698A2 (pt) | 2019-04-16 |
AU2010232795B2 (en) | 2014-06-19 |
WO2010114777A3 (en) | 2011-02-03 |
EP2414933A2 (en) | 2012-02-08 |
CN102388361A (zh) | 2012-03-21 |
RU2011139997A (ru) | 2013-04-20 |
KR20120027132A (ko) | 2012-03-21 |
RU2531869C2 (ru) | 2014-10-27 |
MX2011010287A (es) | 2011-10-19 |
CA2756085C (en) | 2017-04-25 |
US20100257142A1 (en) | 2010-10-07 |
TWI474164B (zh) | 2015-02-21 |
JP2012523044A (ja) | 2012-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101626186B1 (ko) | 피어 및 클라우드로부터 파일 및 시스템의 차분 복구 | |
EP2422274B1 (en) | Intelligent tiers of backup data | |
US9792306B1 (en) | Data transfer between dissimilar deduplication systems | |
US8769055B2 (en) | Distributed backup and versioning | |
US20100257403A1 (en) | Restoration of a system from a set of full and partial delta system snapshots across a distributed system | |
US8261126B2 (en) | Bare metal machine recovery from the cloud | |
US20100318759A1 (en) | Distributed rdc chunk store | |
EP2997497B1 (en) | Selecting a store for deduplicated data | |
US10872017B2 (en) | Restoring a file system object | |
US9785646B2 (en) | Data file handling in a network environment and independent file server | |
EP2997474B1 (en) | Reporting degraded state of data retrieved for distributed object | |
US10789002B1 (en) | Hybrid data deduplication for elastic cloud storage devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
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: 20190429 Year of fee payment: 4 |