KR20140094506A - 데이터 유지 방법 - Google Patents

데이터 유지 방법 Download PDF

Info

Publication number
KR20140094506A
KR20140094506A KR1020147008476A KR20147008476A KR20140094506A KR 20140094506 A KR20140094506 A KR 20140094506A KR 1020147008476 A KR1020147008476 A KR 1020147008476A KR 20147008476 A KR20147008476 A KR 20147008476A KR 20140094506 A KR20140094506 A KR 20140094506A
Authority
KR
South Korea
Prior art keywords
data item
data
storage
storage nodes
api
Prior art date
Application number
KR1020147008476A
Other languages
English (en)
Other versions
KR101948956B1 (ko
Inventor
스테판 베른보
크리스티안 멜란더
로저 페르손
구스타프 피터손
Original Assignee
컴퓨버드 에이비
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 컴퓨버드 에이비 filed Critical 컴퓨버드 에이비
Publication of KR20140094506A publication Critical patent/KR20140094506A/ko
Application granted granted Critical
Publication of KR101948956B1 publication Critical patent/KR101948956B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0213Standardised network management protocols, e.g. simple network management protocol [SNMP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터 저장 시스템에서 구현되는 데이터 저장 방법이 개시된다. 데이터 저장 노드들은 통신 네트워크에 의해 상호접속될 수 있다. 본 방법은 제1 데이터 항목에 대한 요청을 복수의 저장 노드들로 전송하는 단계를 포함할 수 있다. 제1 데이터 항목은 저장 시스템에 저장된 제2 데이터 항목에 대한 참조를 포함할 수 있다. 본 방법은 적어도 하나의 저장 노드로부터 제1 데이터 항목을 수신하는 단계, 및 제1 데이터 항목에 포함된 참조에 기초하여 제2 데이터 항목에 대한 요청을 복수의 저장 노드들에 전송하는 단계를 포함할 수 있다.

Description

데이터 유지 방법{METHOD FOR DATA MAINTENANCE}
본 개시는 복수의 데이터 저장 노드들을 포함하는 데이터 저장 시스템에서 데이터를 액세스, 기록 및 삭제하는 장치 및 방법에 관한 것으로, 이 방법들은 데이터 저장 시스템의 서버 및/또는 저장 노드에서 채용될 수 있다. 본 개시는 또한 이러한 방법들을 실행할 수 있는 저장 노드들 또는 서버들에 관한 것이다.
이러한 방법은 미국 특허 공개 제2005/0246393 A1호에 개시되어 있다. 이 방법은 지리학적으로 이질적인 위치들에 있는 복수의 저장 센터들을 이용할 수 있는 시스템용으로 개시된다. 분산된 객체 저장 관리자들은 저장된 데이터에 관한 정보를 유지하도록 포함될 수 있다. 이러한 시스템에 관련된 한 가지 문제는 데이터의 간단하지만 강건하고 신뢰할 수 있는 유지를 어떻게 달성하는가 이다.
통신 네트워크에 의해 상호접속된 데이터 저장 노드들을 포함하는 데이터 저장 시스템에서 데이터를 유지하도록 하는 방법이 개시된다. 방법은 제1 데이터 항목에 대한 요청을 복수의 저장 노드들로 전송하는 단계를 포함할 수 있다. 제1 데이터 항목은 저장 시스템에 저장된 제2 데이터 항목에 대한 참조를 포함할 수 있다. 방법은 또한 적어도 하나의 저장 노드로부터 제1 데이터 항목을 수신하는 단계, 및/또는 예를 들어 제1 데이터 항목에 포함된 참조에 기초하여, 제2 데이터 항목에 대한 요청을 복수의 저장 노드들로 전송하는 단계를 포함할 수 있다.
일 실시예에서, 가상 디렉토리 구조는 파일들이 구조화되지 않은 방식으로 저장되는 저장 시스템에서 구현될 수 있다.
제1 및 제2 데이터 엔티티들에 대한 요청은 멀티캐스트에 의해 전송될 수 있다.
예를 들어, 멀티캐스트를 이용함으로써, 많은 저장 노드들은 용이하게 액세스될 수 있다.
제1 및 제2 데이터 항목들은 제1 및 제2 고유키에 의해 식별될 수 있다.
일 실시예에서, 저장 시스템 내의 파일들은 그 시스템 내에서의 그들의 위치와는 무관하게 직접적으로 액세스될 수 있다.
제1 및 제2 고유키는 시스템 내의 상기 저장 노드들의 서브세트를 가리키는 클러스터 어드레스, 및/또는 저장 노드들의 서브세트 내의 데이터 항목을 식별하는 데이터 항목 식별자를 포함할 수 있다. 데이터 항목에 대한 참조는 고유키를 포함할 수 있다.
일 실시예에서, 방법은 대량 저장 시스템들, 예를 들어 수백 또는 수천의 저장 노드들을 포함하는 저장 시스템에서 구현될 수 있다.
방법은 애플리케이션 프로그래밍 인터페이스(API)로부터의 제1 및 제2 요청을 전송하는 단계를 포함할 수 있다.
예를 들어, 저장 노드들에 액세스하기 위해 공통 API를 이용함으로써, 그 방법은 많은 상이한 플랫폼들 상에서 용이하게 구현될 수 있다.
API는 저장 노드들과 통신하는 서버 상에서 구현될 수 있다.
일 실시예에서, 그 방법은, 예컨대 저장 노드들의 유지를 담당하지 않을 수 있는 제3 자에 의해 제공되는 전용 디바이스 상에서 구현될 수 있다.
API는 저장 노드에서 구현될 수 있다.
예시적인 실시예에서, 저장 노드에서 API를 구현하는 것은 저장 시스템 내로의 액세스 포인트들의 수가 증가하게 할 수 있다.
방법은, API가, 수신된 제1 데이터 항목으로부터 제2 데이터 항목을 식별하는 고유키를 취출하는 단계를 포함할 수 있다.
예를 들어, 제2 데이터 항목에 대한 고유 식별자는, 고유 식별자의 표시가 제1 데이터 항목에 포함되는 경우에 용이하게 취출가능할 수 있다.
방법은 제1 데이터 항목을 식별하는 키를 API에서 수신하는 단계를 포함할 수 있다.
일 실시예에서, 하나 이상의 디렉토리 구조들이 동시에 구현될 수 있다.
제2 데이터 항목은 제3 데이터 항목에 대한 참조를 포함할 수 있다.
예를 들어, 일 실시예에서, 다수의 레벨들을 갖는 디렉토리 구조들이 구현될 수 있다.
제2 데이터 항목은 이미지와 같은 페이로드 데이터를 포함할 수 있다.
예를 들어, 페이로드 데이터를 갖는 데이터 파일들은 디렉토리 구조의 일부일 수 있다(예컨대, 하위 폴더들에 저장될 수 있다).
제1 데이터 항목은 유니캐스트에 의해 전송될 수 있다.
예를 들어, 유니캐스트를 이용함으로써, 데이터 항목은 대역폭 효율적 방식으로 전송될 수 있다.
일 실시예에 따르면, 통신 네트워크에 의해 상호접속된 데이터 저장 노드들을 포함하는 데이터 저장 시스템에서 데이터를 유지하는 방법이 서버 및/또는 데이터 저장 노드에서 구현될 수 있다. 방법은 적어도 하나의 저장 노드에 제1 데이터 항목을 저장하는 단계를 포함할 수 있다. 방법은 또한 적어도 하나의 저장 노드에 저장된 제2 데이터 항목을 업데이트하는 단계를 포함할 수 있다. 예를 들어, 제2 데이터 항목은 제1 데이터 항목에 대한 참조를 제2 데이터 항목에 추가함으로써 업데이트될 수 있다. 제2 데이터 항목을 업데이트하는 것은 제2 데이터 항목의 복사본을 저장하라는 요청을 적어도 하나의 저장 노드로 전송하는 것을 포함할 수 있다. 요청은 적어도 하나의 저장 노드가 제1 데이터 항목에 대한 참조를 제2 데이터 항목에 추가할 것을 명령하고/하거나 요청할 수 있다.
일 실시예에서, 새로운 항목들이, 예를 들어 새로운 항목들에 대한 참조들을 디렉토리 구조에서의 다른 항목들에 추가함으로써, 디렉토리 구조에 용이하게 추가될 수 있다.
일 실시예에 따르면, 데이터를 유지하는 방법은 데이터 저장 시스템에 포함된 서버 또는 데이터 저장 노드를 구현시킬 수 있다. 데이터 저장 노드들은 통신 네트워크에 의해 상호접속될 수 있다. 방법은 적어도 하나의 저장 노드에서 제1 데이터 항목을 삭제하는 단계를 포함할 수 있다. 방법은 또한 제2 데이터 항목에서 제2 데이터 항목에 대한 참조를 삭제함으로써 적어도 하나의 저장 노드에 저장된 제2 데이터 항목을 업데이트하는 단계를 포함할 수 있다.
예시적인 실시예에서, 디렉토리 구조 내의 항목들은, 예를 들어 그 항목들에 대한 참조들을 삭제함으로써, 용이하게 삭제될 수 있다.
일 실시예에 따르면, 데이터 저장 시스템은 통신 네트워크에 의해 상호접속된 데이터 저장 노드들을 포함할 수 있다. 서버 또는 노드는 애플리케이션 프로그래밍 인터페이스(API)를 포함할 수 있고, 제1 데이터 항목에 대한 요청을 복수의 저장 노드들로 전송하도록 구성될 수 있다. 제1 데이터 항목은 저장 시스템에 저장된 제2 데이터 항목에 대한 참조를 포함할 수 있다. 적어도 하나의 저장 노드는 제1 데이터 항목을 API로 전송하도록 구성될 수 있다. API 및/또는 저장 노드 또는 서버는 또한 제1 데이터 항목에 포함된 참조에 기초하여 제2 데이터 항목에 대한 요청을 복수의 저장 노드들로 전송하도록 추가 구성될 수 있다.
예를 들어, 가상 디렉토리 구조는 파일들이 구조화되지 않은 방식으로 저장되는 저장 시스템에서 구현될 수 있다.
개시된 실시예들의 다른 목적들, 특징들 및 이점들은 다음의 상세한 설명, 첨부한 청구범위 및 도면으로부터 명백해질 수 있다.
일반적으로, 청구범위에서 사용된 모든 용어들은, 본 명세서에서 명시적으로 다른 방식으로 정의되지 않는다면, 기술 분야에서의 일반적인 의미에 따라 해석되어야 할 것이다. "한/하나/그 [구성요소, 디바이스, 구성소자, 수단, 단계 등]"에 대한 언급들은, 명시적으로 다른 방식으로 언급되지 않는다면, 상기 구성요소, 디바이스, 구성소자, 수단, 단계 등의 적어도 하나의 사례를 지칭하는 것으로서 개방적으로 해석되어야 한다. 본 명세서에서 개시되는 임의의 방법의 단계들은, 명시적으로 다르게 언급되지 않는다면, 개시된 정확한 순서로 수행되어야 하는 것은 아니다.
개시되는 실시예들의 이러한 목적들, 특징들 및 이점들뿐 아니라 추가적인 목적들, 특징들 및 이점들은, 동일한 참조 기호들이 유사한 구성요소들에 사용될 수 있는 첨부한 도면을 참조하면, 다음의 예시적이고 비제한적인 상세한 설명을 통해 더 잘 이해될 수 있을 것이다.
도 1은 예시적인 저장 시스템의 개략도이다.
도 2는 저장 시스템에 저장된 다수의 데이터 항목들의 예시적인 개략적 블록도이다.
도 3은 예시적인 데이터 항목 식별자의 개략적인 블록도이다.
도 4는 데이터를 취출하는 예시적인 방법의 개략적인 블록도이다.
도 5a 내지 도 5c는 저장 시스템에서 상이한 엔티티들 사이의 예시적인 통신의 도해들이다.
도 6은 데이터를 저장하는 예시적인 방법의 개략적인 블록도이다.
도 7은 데이터를 삭제하는 예시적인 방법의 개략적인 블록도이다.
개시되는 방법들 및 시스템들의 상세한 실시예들이 도면을 참조하여 설명될 수 있다. 본 개시는 복수의 저장 노드들을 포함하는 분산형 데이터 저장 시스템에 관한 것이다. 시스템의 예시적인 구조 및 그 시스템이 사용될 수 있는 상황이 도 1에서 개요가 약술된다.
사용자 컴퓨터(1)는, 예를 들어 인터넷(3)을 통해, 서버(7) 상에서 구동하는 애플리케이션(5)에 액세스할 수 있다. 따라서, 본 명세서에서 예시되는 사용자 상황은 클라이언트-서버 구성일 수 있다. 그러나, 개시될 데이터 저장 시스템은, 예를 들어 다른 통신 방법들을 이용하는 다른 구성들에서도 유용할 수 있다는 것에 유의해야 한다.
예시된 경우에 있어서, 2개의 애플리케이션들(5, 9)은 서버(7) 상에서 구동할 수 있다. 그러나, 물론, 임의의 수의 애플리케이션들이 서버(7) 상에서 구동하고 있을 수 있다. 각각의 애플리케이션은 분산형 데이터 저장 시스템(13)과 관련하여 인터페이스를 제공할 수 있는 애플리케이션 프로그래밍 인터페이스(API)(11)를 가질 수 있으며, 서버 상에서 구동하는 애플리케이션들로부터의 요청들을 지원하고, 요청들을 통상적으로 기록하고 판독할 수 있다. 데이터는, 2011년 4월 21일에 출원되고 그 내용이 본 명세서에서 참조로서 포함되는 미국 특허 출원 제13/125,524호에 상세히 기술된 방법들을 이용하여 저장 시스템에 판독 및 기록될 수 있다. 따라서, 데이터의 판독 및 기록 방법들은 본 명세서에서 더 상세히 설명되지 않을 수 있다. 애플리케이션의 관점으로 볼 때, 데이터 저장 시스템(13)으로부터/으로 정보를 판독하거나 기록하는 것은 임의의 다른 유형의 저장 솔루션, 예를 들어 파일 서버 또는 하드드라이브를 사용하는 것과 동일한 것으로 보일 수 있다.
각각의 API(11)는 데이터 저장 시스템(13) 내의 저장 노드들(15)과 통신할 수 있고 저장 노드들은 서로 통신할 수 있다. 대안적으로, 또는 추가적으로, 저장 노드들(15) 중 하나 이상은 전술된 바와 같은 요청들을 지원하는 API(23)를 포함할 수 있다. 이러한 통신들은 전송 제어 프로토콜(TCP) 및 사용자 데이터그램 프로토콜(UDP)에 기초할 수 있다. 다른 통신 프로토콜들이 또한 이용될 수 있다.
분산형 데이터 저장 시스템의 구성소자들은 저장 노드들(15) 및 저장 노드들(15)에 액세스할 수 있는 서버(7) 내의 API들(11)일 수 있다. 본 개시는 서버(7) 및 저장 노드들(15)에서 시행되는 방법들에 관해 설명될 수 있다. 이러한 방법들은, 주로, 서버 및 저장 노드들 상에서 각각 실행되는 소프트웨어/하드웨어 구현들의 조합들로서 구현될 수 있다. 서버 및/또는 저장 노드들의 동작들은 전체적인 분산형 데이터 저장 시스템의 동작 및 속성들을 함께 결정할 수 있다.
도 1에서는, 서버(7)가 저장 노드들(15)로부터 이격되어 있는 저장 시스템(13)의 부재로서 예시되어 있지만, 서버(7)는 서버 기능성을 포함하는 저장 노드일 수 있다는 것에 유의해야 한다.
저장 노드(15)는 다수의 기능 블록들이 제공되는 파일 서버에 의해 통상적으로 구현될 수 있다. 따라서, 저장 노드는 저장 매체(17)를 포함할 수 있으며, 이러한 저장 매체는, 독립적 디스크의 중복 어레이((Redundant Array of Independent Disk: RAID)로서 선택적으로 구성된, 예를 들어 다수의 내부 (예컨대, 통합 구동 전자 장치(Integrated Drive Electronics, IDE), 직렬 고급 기술 연결(Serial Advanced Technology Attachment, SATA), 등을 통해 접속됨) 또는 외부 하드 드라이브(예컨대, 범용 직렬 버스(Universal Serial Bus, USB), 파이어와이어, 블루투스 등을 통해 접속됨)들을 포함할 수 있다. 그러나, 다른 유형들의 저장 매체들이 마찬가지로 고려될 수 있다.
각각의 저장 노드(15)는 저장 노드들의 세트 또는 저장 노드들의 그룹에서 모든 저장 노드들의 IP 어드레스들을 포함하는 노드 목록을 함유할 수 있다. 그룹 내의 저장 노드들의 수는 수 개 내지 수백 또는 수천 개의 저장 노드들로 변화할 수 있다.
저장 매체(17)는 집합 객체들(19)의 형태인 하나 이상의 데이터 항목들(19, 21) 또는 데이터 파일들(21)의 형태인 페이로드 데이터를 저장할 수 있다. 집합 객체(19)는 참조 세트를 포함할 수 있다. 참조는 저장 시스템에 저장된 하나 이상의 데이터 파일들, 예컨대 데이터 파일들(21)에 대한 참조일 수 있다. 참조는 또한 저장 시스템에 저장된 다른 집합 객체(19)에 대한 참조일 수 있다. 참조는 저장 노드(15)의 저장 위치에 대한 포인터(예컨대, 메모리 어드레스)를 포함할 수 있다. 참조는 지칭되는 집합 객체 또는 데이터 파일의 식별자를 포함할 수 있다.
아래에서 보다 상세히 개시될 것인 바와 같이, 집합 객체(19)는 저장 시스템에서 구조화된 계층을 구현하는 데 이용될 수 있다. 집합 객체(19)에서 참조되는 데이터 파일들(21)은 그러한 구현에서 구조에 저장된 데이터 파일들을 나타낼 수 있다. 집합 객체(19)에서 참조되는 추가적인 집합 객체들(19)은 그러한 구현에서 디렉토리에 저장된 서브디렉토리들을 나타낼 수 있다.
집합 객체(19)는 사전 결정된 형식을 갖는 데이터 객체로서 구현될 수 있다. 데이터 객체는, 그 데이터 객체가 API에 의해 해석될 이진 파일일 수 있다는 관점에서 저장 매체(17)의 파일 시스템 내의 특수 파일일 수 있다. 일 예에서 데이터 객체는 저장 매체(17)의 파일 시스템에서 표준 데이터 파일일 수 있다, 여기서 데이터 객체는, 예를 들어, 참조된 집합 객체들(19) 및/또는 데이터 파일들(21)을 나타내는 일반 텍스트 파일일 수 있다. 데이터 객체는 데이터 파일들(21)과 동일한, 파일 시스템의 루틴들을 이용하여 판독가능할 수 있다.
도 2는 일 실시예에 따른 집합 객체(19a)를 개략적으로 예시한다. 집합 객체(19a)는 관련된 집합 객체 식별자(20a)를 가질 수 있다. 식별자(20a)는, 예를 들어 범용 고유 식별자(Universally Unique Identifier, UUID)일 수 있다. 집합 객체 식별자(20a)는 집합 객체(19a)의 헤더에 포함될 수 있다. 그러나, 집합 객체 식별자(20a)는, 예를 들어 집합 객체(19a)에 포함되는 것이 아니라, 저장 노드(15)에서 유지되는 레지스터에 저장될 수 있다. 일 예에서, 3개의 UUID 및/또는 저장 노드(15)에서 유지되는 레지스터는, 예컨대 집합 객체(19a)가 발견될 메모리 어드레스를 가리킴으로써, 집합 객체(19a)를 집합 객체 식별자(20a)와 연관시킬 수 있다. 따라서, 집합 객체(19a)는 제1 고유키에 의해 식별되는 제1 데이터 항목을 형성할 수 있다.
집합 객체(19a)는, 예컨대 스트링의 형태인 다른 집합 객체(19b)의 식별자(20b)를 갖는 필드(22a)를 포함할 수 있다. 집합 객체(19a)는 집합 객체(19b)에 대한 참조를 포함할 수 있다. 집합 객체(19b)는 집합 객체(19a)와 동일한 저장 노드 상에 저장될 수 있거나 집합 객체(19a)와는 다른 저장 노드 상에 저장될 수 있다. 저장 시스템은 집합 객체(19b)를 위치시키고 액세스하는 데 필드(22a) 내의 식별자(20b)를 이용할 수 있다. 따라서, 집합 객체(19b)는 제2 고유키에 의해 식별되는 제2 데이터 항목을 형성할 수 있다.
일 실시예에서, 다수의 네트워크에 걸쳐서 신장하는 대형 저장 시스템들을 구현하기 위해, 데이터 항목 식별자들(20a 내지 20d)은 2개의 데이터 구성요소들을 포함할 수 있다. 도 3을 참조하면, 제1 데이터 구성요소(30)는 데이터 항목(집합 객체(19a 내지 19c) 또는 데이터 파일(21a))이 위치되는 클러스터를 식별할 수 있는 클러스터 ID(31)일 수 있다. 클러스터 어드레스는 멀티캐스트 어드레스(32)일 수 있다. 멀티캐스트 어드레스(32)는 데이터 항목에 대한 요청을 특정 클러스터에 전송하기 위해 API에 의해 이용될 수 있다. 제2 데이터 구성요소(33)는 클러스터 내부에서 데이터 항목(19a 내지 19d)을 식별하는 고유 번호(35)에 의해 형성된 데이터 항목 ID(34)일 수 있다. 고유 번호(35)는 식별된 길이, 예컨대 128 비트를 갖는 수일 수 있거나 길이가 변화할 수 있다. 고유 번호(35)는 다수의 비트들을 포함하여, 다수의 데이터 항목들이 클러스터 내에서 고유하게 식별되게 할 수 있다. 이러한 배열에 의해, 하나의 클러스터 내의 집합 구성요소는 다른 집합 구성요소 또는 다른 클러스터 내의 데이터 파일을 참조할 수 있다. 다시 말해, 제1 및 제2 고유키는 시스템 내의 저장 노드들의 서브세트를 가리키는 클러스터 어드레스, 및 저장 노드들의 서브세트 내의 데이터 항목을 식별하는 데이터 항목 식별자를 포함할 수 있다.
도 1 및 도 2를 다시 참조하면, 서버(7)는, 예를 들어, 특정 식별자(예컨대, 식별자(20a))와 연관된 집합 객체(예컨대, 집합 객체(19a))를 저장하는 저장 노드(15)를 나타내는 레지스터를 포함할 수 있다. 다른 예에서, 집합 객체(19a)는 미국 특허 출원 제13/125,524호에 개시되어 있는 판독 방법을 이용하여 위치될 수 있다. 간단히 말해, 이 판독 방법에 따르면, 서버(7) 또는 저장 노드(15)는 멀티캐스트 메시지를 복수의 저장 노드들(15)에 전송할 수 있다. 멀티캐스트 메시지는 바람직한 집합 객체(19a)의 식별자(20a)를 포함할 수 있다. 각각의 저장 노드(15)는, 멀티캐스트 메시지를 수신하는 것에 응답하여, 상기 식별자를 갖는 집합 객체에 대해 자신의 저장 매체(17)를 스캔할 수 있다. 발견되는 경우, 저장 노드(15)는 응답할 수 있고, 멀티캐스트 메시지의 발신자에 수요가 많은 객체를 저장한다는 것을 나타낼 수 있다. 그 후, 집합 객체(19a)는 집합 객체(19a)를 저장하는 응답하는 저장 노드(15)에 전송된 유니캐스트 요청에 의해 액세스될 수 있다.
본 실시예에 따르면, 멀티캐스트 통신은 복수의 저장 노드들과 동시에 통신하는 데 이용될 수 있다. 멀티캐스트 또는 IP 멀티캐스트에 의해, 여기서는, 멀티캐스트 애플리케이션들에 대해 예약될 수 있는 IP 어드레스에 메시지를 전송함으로써 달성될 수 있는 점-대-다중점 통신이 의도된다. 예를 들어, 메시지, 예를 들어 요청은 그러한 IP 어드레스(예컨대, 244.0.0.1)에 전송될 수 있고, 다수의 수신자 서버들은 그 IP 어드레스에 대한 가입자들로서 등록될 수 있다. 수신자 서버들 각각은 자신의 IP 어드레스를 가질 수 있다. 네트워크에서의 스위치가 244.0.0.1로 지향된 메시지를 수신할 때, 스위치는 가입자로서 등록된 각각의 서버의 IP 어드레스들에 그 메시지를 보낼 수 있다.
원칙적으로, 단일 서버는 멀티캐스트 어드레스에 대한 가입자로서 등록될 수 있으며, 이 경우에, 점-대-점 통신이 달성될 수 있다. 그러나, 본 개시의 맥락에서, 그러한 통신은, 그럼에도 불구하고, 멀티캐스트 방식이 채용되므로, 멀티캐스트 통신으로 간주될 수 있다.
본 실시예에 따르면, 유니캐스트 통신은 단일 수신자와의 통신을 지칭할 수 있다. 유니캐스트 통신은 네트워크 당사자에 의해 개시될 수 있고, 단일의 특정 수신자에게 지향될 수 있다.
집합 객체(19a) 외에도, 집합 객체(19b)는 제3 집합 객체(19c)의 식별자(20c)를 갖는 필드(22b)를 포함할 수 있다. 집합 객체(19c)는 데이터 파일(21a)의 식별자(21d)를 갖는 필드(22c)를 포함할 수 있다. 다시 말해, 집합 객체들(19a 내지 19c) 중 누구나 (또는, 예를 들어, 각각의 집합 객체들(19a 내지 19c)) 제3 데이터 항목에 대한 참조를 포함하는 제2 데이터 항목을 나타낼 수 있고, 데이터 파일(21a)은 페이로드 데이터, 예를 들어 이미지를 포함하는 제2 데이터 항목을 나타낼 수 있다.
집합 객체(19a)를 루트(root) 집합 객체로 지명함으로써, 집합 객체(19a)는 저장 시스템의 루트 디렉토리(19a)를 나타낼 수 있다. 유사하게, 집합 객체(19b)는 루트 디렉토리(19a)의 서브디렉토리(19b)를 나타낼 수 있다. 집합 객체(19c)는 서브디렉토리(19b)의 서브디렉토리를 나타낼 수 있다. 데이터 파일(21a)은 서브디렉토리(19c)에 저장된 데이터 파일을 나타낼 수 있다. 따라서, 집합 객체들(19a 내지 19c)은 계층적 저장 구조를 정의할 수 있다. 구조는 디렉토리 트리로 지칭될 수 있다.
도 4 및 도 5a 내지 도 5c를 참조하면, 저장 노드(15)에 저장된 파일(19, 21)에 액세스하기 위해 디렉토리 구조를 분석하는 방법이 개시될 수 있다.
디렉토리 구조의 시작 지점은 사전 정의된 루트 키일 수 있다. 예를 들어, 저장 노드들(15) 중 임의의 저장 노드가 루트 키를 포함할 수 있다. 이 키는 저장 클러스터의 외부에 저장될 수 있으며, 디렉토리 구조에서 제1 데이터 항목(예컨대, 집합 객체(19a))를 식별하는 데 이용될 수 있다. 저장 클러스터는 사용자가 동일한 저장 클러스터 내에 저장된 다수의 개별 디렉토리 구조들을 갖게 하는 다수의 루트 키들을 가질 수 있다. 디렉토리 구조는 여러 개의 저장 클러스터들에 걸쳐 있을 수 있다. 루트 키는 클러스터 내에 저장된 디렉토리 구조를 설명하는 외부 정보와 함께 저장될 수 있다.
블록(40)에서, 서버(7)는 제1 데이터 항목(19, 21)을 식별할 수 있는 루트 키를 수신할 수 있으며, 저장 시스템 내의 파일을 식별하는 고유 식별자를 API(11)에 전달할 수 있다. 예를 들어, API(23)는 저장 노드(15)에서 구현될 수 있으며, 이 때 루트 키는 서버(7)에서가 아니라 저장 노드(15)에서 수신될 수 있다.
블록(41)에서, 서버(7) 내의 API(11)는 루트 키에 의해 식별된 데이터 항목(예컨대, 집합 객체(19a))에 대한 요청을 저장 시스템 내의 저장 노드들(15a 내지 15e) 또는 노드들의 서브세트에 멀티캐스트할 수 있다. 예를 들어, 멀티캐스트 메시지는, 예를 들어 도 3과 관련하여 개시된 데이터 항목 식별자 구성을 이용하여 특정 클러스터에 전송될 수 있다. 일 실시예에 따르면, 루트 키에 의해 식별된 데이터 항목(예컨대, 집합 객체(19a))은, 그 항목이 시스템에 의해 이용될 수 있는 추가적인 메타데이터를 포함할 수 있다는 관점에서 특수 데이터 항목일 수 있다. 이러한 데이터의 예들은 디렉토리 구조에서 항목들로의 액세스 허가에 관한 정보, 특정 데이터 항목들을 어디에 저장할 것인지(예컨대, 고체 상태 드라이브(SSD)와 같은 급속한 액세스를 갖는 저장 노드 상)에 관한 정보 등일 수 있다.
블록(42)에서, 저장 노드(15a 내지 15e)는, 멀티캐스트 메시지를 수신하는 것에 응답하여, 루트 키에서 데이터 항목 ID(34)에 의해 식별된 데이터 항목을 위치시키기 위해 그들의 각각의 저장 매체들(17)을 스캔할 수 있다.
예시를 위해, 이 예에서는, 노드들(15b, 및 15e)이 데이터 항목 ID(34)에 의해 식별된 데이터 항목을 위치시킨다는 것을 상정한다. 블록(43)에서, 데이터 항목을 발견한 노드들(15b, 15e)은 어떤 다른 노드들(15b, 15d, 15e)이 데이터 항목을 포함할 수 있는지와 노드(15b, 15e)에서 현재 실행 부하가 어떤지(예컨대, 노드들이 얼마나 바쁜지, 노드들이 얼마나 많은 요청을 수신했는지, 노드 상에 얼마나 많은 자유 공간이 있는지 등)에 관한 정보로 응답할 수 있다. 요청된 데이터 항목은 복수의 저장 노드들(15b, 15d, 15e)에 저장될 수 있으며, 이 때 API는 노드들(15b, 15d, 15e)로부터 수신된 정보를 수집할 수 있고, 데이터 항목의 취출을 위해 어떤 것을 선택할 것인지에 대해 결정을 내리기 전에 데이터 항목을 포함하는 열거된 저장 노드들(15b, 15d, 15e)의 50%를 초과한 노드들로부터 응답들을 수신할 때까지 기다릴 수 있다. 결정은 최저 실행 부하를 갖는 노드에 기초할 수 있다.
블록(44)에서, API(11)는 특정 파일에 대한 유니캐스트 요청을 선택된 저장 노드에 전송할 수 있다. 이 예에서, 예시를 위해, 저장 노드(15b)가 선택되는 것을 상정할 수 있다. API(11)는 저장 노드(15b)로부터 데이터 항목을 취출할 수 있다. API(11)는 선택된 노드(15b)를 이용한 판독 또는 통신 실패의 경우에 파일의 복제본들을 저장하는 모든 저장 노드들(15b, 15d, 15e)의 목록을 유지할 수 있다. 오류가 발생하면, API(11)는 목록 내에서 다음으로 최상인 노드를 분명하게 선택할 수 있고, 판독 동작을 계속한다.
블록(45)에서, API는 취출된 데이터 항목의 내용을 해석할 수 있다. 디렉토리 구조가 추가적인 레벨들을 포함하는 경우, 취출된 데이터 항목은 집합 객체(19b)일 수 있다. 그러한 경우, API(11)는 디렉토리 구조에서 다른 집합 객체(19c)를 지칭하는 식별자(20b)를 포함할 수 있는 필드(22b)를 판독할 수 있다. 예를 들어, API는 수신된 제1 데이터 항목, 예컨대 집합 객체(19a)로부터 제2 데이터 항목, 예컨대 집합 객체(19b)를 식별하는 고유키, 즉 식별자(20b)를 취출할 수 있다. 그 후, 프로세스는 블록(41)으로 되돌아갈 수 있고, 디렉토리 구조를 계속해서 분석할 수 있다. 따라서, 제1 및 제2 요청 양자 모두는 애플리케이션 프로그래밍 인터페이스(API)로부터 전송될 수 있다. 프로세스는, 디렉토리 구조에서 마지막 객체, 예컨대 프로세스가 46에서 종료될 수 있는 데이터 파일(21a)이 식별되고 취출될 때까지 계속될 수 있다. 다른 예에서, API(11)는 식별된 객체에 업데이트 요청, 예컨대 디렉토리 구조에서 객체에 대응하는 데이터 항목에서의 데이터를 변경하거나 결부시키는 명령어를 전송할 수 있다.
일 예로서, 그것은 데이터 파일(21)은 디렉토리 구조의 루트에 위치되는 것일 수 있다. 이러한 경우에 있어서, 프로세스는 단일 시간에 순환될 수 있는데, 이는 처음 취출된 집합 객체(19a)가 데이터 파일(21a)에 대한 참조를 포함할 수 있기 때문이다. 데이터 파일(21a)에 대한 참조를 포함하는 것 외에도, 취출된 집합 객체는 다른 데이터 항목들, 이를테면 집합 객체(19b)에 대한 참조들도 또한 포함할 수 있다는 것이 강조된다.
따라서, 전술한 사항에 따르면, 방법은 파일에 액세스하기 위해 통신 네트워크에 의해 상호접속된 데이터 저장 노드들을 포함하는 데이터 저장 시스템에서 구현될 수 있다. 방법은 제1 데이터 항목(19, 21)(예컨대, 집합 객체(19a))에 대한 요청을 복수의 저장 노드들(15a 내지 15e)에 전송하는 것을 포함할 수 있다. 제1 데이터 항목은 저장 시스템에 저장된 제2 데이터 항목(예컨대, 데이터 파일(21a) 또는 집합 객체(19b))에 대한 참조를 포함할 수 있다. 방법은 적어도 하나의 저장 노드(15b)로부터 제1 데이터 항목을 수신하는 단계, 및 제1 데이터 항목에 포함된 참조에 기초하여 제2 데이터 항목에 대한 요청을 복수의 저장 노드들(15a 내지 15e)에 전송하는 단계를 포함할 수 있다.
예시된 예로서, 도 2를 참조하면, API는 참조된 엔벨로프들을 재귀적으로 판독하고 해석하여 디렉토리 구조에서의 경로를 분석할 수 있다. 예를 들어, API는 구조화된 경로에서 파일을 나타내는 구조화되지 않은 키를 식별할 수 있다. 예를 들어, 저장 시스템에 액세스하는 사용자는 경로: "/Documents/Sample_Pictures/Blue_Hills.jpg"를 분석하기를 원할 수 있다.
도 2에서, 집합 객체(19a)는 루트 키 "/"(고유키(20a)에 의해 식별됨)를 나타낼 수 있고, 식별자(22a)는 폴더 "Documents/"(고유키(20b)에 의해 식별됨)를 나타내는 집합 객체(19b)에 대한 참조를 포함할 수 있다. 집합 객체(19b) 내의 식별자(22b)는 폴더 "Sample_Pictures/"를 나타내는 집합 객체(19c)에 대한 참조를 포함할 수 있다. 마지막으로, 집합 객체(19c) 내의 식별자(22c)는 파일 "Blue_Hills.jpg"에 대한 페이로드 데이터를 포함하는 데이터 파일(21a)에 대한 참조를 포함할 수 있다. 따라서, 집합 객체들에서 참조들을 재귀적으로 판독함으로써, 가상 파일 구조가 구조화되지 않은 저장 시스템에서 생성될 수 있다.
도 6 및 도 5a 내지 도 5c를 참조하면, 저장 노드(15)에 파일(19, 21)을 생성하기 위해 디렉토리 구조를 분석하는 방법이 개시된다.
도 4에서 개시된 시스템과 유사하게, 디렉토리 구조의 시작 지점은 사전 정의된 루트 키이다. 루트 키는 임의적인 키일 수 있으며, 시스템 전반에 걸쳐서 많은 루트 키들이 있을 수 있다. 이 키는 저장 클러스터의 외부에 저장될 수 있고, 디렉토리 구조에서 제1 데이터 항목(예컨대, 집합 객체(19a))를 식별하는 데 이용될 수 있다.
블록(60)에서, 서버(7)는 루트 키를 수신할 수 있으며, 저장 시스템 내의 파일을 식별하는 고유 식별자를 API에 전달할 수 있다.
블록(61)에서, API(11)는 위의 방법에 따라 희망 데이터 항목에 대한 경로를 분석할 수 있다.
블록(63)에서, 서버(7) 내의 API(11)는, 예를 들어 도 3과 관련하여 개시된 데이터 항목 식별자 구성을 이용하여, 식별자를 포함하는 데이터 항목(예컨대, 집합 객체(19c))을 저장하기 위한 요청을 저장 시스템 내의 모든 저장 노드들(15a 내지 15e) 또는, 예컨대 특정 클러스터 내의 노드들의 서브세트에 멀티캐스트할 수 있다.
블록(63)에서, 저장 노드들(15a 내지 15e)은, 멀티캐스트 메시지를 수신하는 것에 응답하여, 데이터 항목 ID(34)가 아직 사용 중이 아님을 검증할 수 있다.
블록(64)에서, 그 특정 식별자를 갖는 기존 파일을 발견하는 데 실패한 저장 노드(15a 내지 15e)는, 저장 노드 상의 자유 저장 공간, 저장 노드가 구동 중인 하드웨어의 노후화 표시, 현재 CPU 부하 및/또는 저장 노드(15a 내지 15e)의 지리적 위치(위도, 경도 및 고도 등의 형태) 등을 나타낼 수 있는 확인응답(acknowledgement)으로 응답할 수 있다.
블록(65)에서, API(11)는 멀티캐스트 요청에 응답한 저장 노드로부터 반환된 데이터에 기초하여 3개의 저장 노드들(예컨대, 저장 노드들(15a, 15b, 및 15e))을 선택할 수 있다. 3개의 가장 적합한 노드들이 선택되었을 때, API(11)는 요청을 3개의 노드들에 동시에 전송하여 데이터 항목을 저장할 수 있다. 데이터 항목을 선택된 노드들(15a, 15b, 15e)중 하나에 전송하는 중에 오류가 발생하는 경우, 예를 들어 선택된 노드들 중 50%를 초과하는 노드들이 동작하는 한, 동작은 계속된다.
블록(66)에서, 디렉토리 구조에서 1 레벨 더 높은 데이터 항목 (예컨대, 제1 데이터 항목 - 집합 객체(19b)) 내의 식별자 필드(22b)는, 예를 들어 서버가 제1 데이터 항목의 식별자를 캐시에 저장했다면, 전술한 사항에 따른 판독 방법에 따라 제1 데이터 항목을 취출하거나 제1 데이터 항목에 직접적으로 액세스함으로써, 저장된 데이터 항목(예컨대, 집합 객체(19c))을 참조하여 업데이트될 수 있다.
시스템에서 데이터 무결성을 증가시키기 위해, 위의 방법은, 데이터 항목이 저장된 후이지만 제1 데이터 항목이 업데이트되기 전에, 모든 저장 노드들과의 통신이 손실되어야 하는 경우에 있어서, 데이터 항목을 저장하기 전에 제1 데이터 항목을 취출하는 동작으로 보완될 수 있다. 이 절차에 의해, API는 일단 저장 노드들과의 통신이 재개되면, 업데이트 절차를 재개할 수 있다.
따라서, 위 사항에 따르면, 방법은 통신 네트워크에 의해 상호접속된 데이터 저장 노드들을 포함하는 데이터 저장 시스템 내의 다양한 디바이스들에서 구현될 수 있다. 방법은 적어도 하나의 저장 노드에 제1 데이터 항목을 저장하는 단계, 및 제1 데이터 항목에 대한 참조를 제2 데이터 항목에 추가함으로써 적어도 하나의 저장 노드에 저장된 제2 데이터 항목을 업데이트하는 단계를 포함할 수 있다.
도 7 및 도 5a 내지 도 5c를 참조하면, 저장 노드(15)에서 파일(19, 21)을 삭제하기 위해 디렉토리 구조를 분석하는 방법이 개시된다.
도 4와 관련한 개시사항과 유사하게, 디렉토리 구조의 시작 지점은 사전 정의되지만 임의적인 루트 키일 수 있다. 이 키는 저장 클러스터의 외부에 저장될 수 있으며, 디렉토리 구조에서 제1 데이터 항목(예컨대, 집합 객체(19a))를 식별하는 데 이용될 수 있다.
블록(70)에서, 서버(7)는 루트 키를 수신할 수 있으며, 저장 시스템 내의 파일을 식별하는 고유 식별자를 API에 전달할 수 있다.
블록(71)에서, API(11)는 위의 방법에 따라 바람직한 데이터 항목에 대한 경로를 분석할 수 있다.
블록(72)에서, 서버(7) 내의 API(11)는, 예를 들어 도 3과 관련하여 개시된 데이터 항목 식별자 구성을 이용하여, 식별자를 포함하는 데이터 항목(예컨대, 집합 객체(19c))의 위치에 관한 질의를 저장 시스템 내의 저장 노드들(15a 내지 15e) 또는, 예컨대 특정 클러스터 내의 노드들의 서브세트에 멀티캐스트할 수 있다.
블록(73)에서, 저장 노드들(15a 내지 15e)은, 멀티캐스트 메시지를 수신하는 것에 응답하여, 데이터 항목 ID(34)에 의해 식별된 데이터 항목을 위치시키기 위해 그들의 각각의 저장 매체(17)를 스캔할 수 있다.
블록(74)에서, 데이터 항목을 위치시키는 노드들은 데이터 항목을 저장할 수 있는 다른 노드들 및 노드에서의 현재 실행 부하에 관한 정보에 관하여 응답할 수 있다. 요청된 데이터 항목은 복수의 저장 노드들에 저장될 수 있다. API는 노드들로부터 수신된 정보를 수집할 수 있으며, 데이터 항목의 삭제를 위해 어떤 노드들을 선택할 것인지에 대해 결정을 내리기 전에 데이터 항목을 포함하는 열거된 저장 노드들 중의 50%를 초과한 노드들로부터 응답들을 수신할 때까지 기다릴 수 있다.
블록(75)에서, API(11)는 특정 파일(예컨대, 수집 객체(19c))을 삭제하라는 유니캐스트 요청을 선택된 저장 노드들에 전송할 수 있다.
블록(76)에서, 디렉토리 구조에서 1 레벨 더 높은 데이터 항목(예컨대, 집합 객체(19b)) 내의 식별자 필드(22b)는 삭제된 데이터 항목(예컨대, 집합 객체(19c))에 대한 참조를 삭제함으로써 업데이트될 수 있다. 업데이트는, 예를 들어 서버가 제1 데이터 항목의 식별자를 캐시에 저장한 경우, 전술된 판독 방법에 따라 제1 데이터 항목을 취출하고/하거나 제1 데이터 항목에 직접적으로 액세스함으로써 발생할 수 있다. 삭제될 데이터 항목이 디렉토리 구조에서 다수 레벨 낮아지게 위치되는 경우, 삭제 동작은, i) 제1 데이터 항목을 삭제하는 것, 및 ii) 제1 데이터 항목에 대한 참조를 삭제함으로써 제2 데이터 항목을 업데이트하는 것에 추가하여, 도 4와 관련하여 개시된 방법으로서 표현될 수 있다.
따라서, 데이터 삭제 방법은 통신 네트워크에 의해 상호접속된 데이터 저장 노드들을 포함하는 데이터 저장 시스템에서 구현될 수 있다. 방법은 적어도 하나의 저장 노드에 저장된 제1 데이터 항목을 삭제하는 단계를 포함할 수 있다. 방법은 또한 제2 데이터 항목에서 제1 데이터 항목에 대한 참조를 삭제함으로써 적어도 하나의 저장 노드에 저장된 제2 데이터 항목을 업데이트하는 단계를 포함할 수 있다.
집합 객체들(19)은 데이터 파일들과 유사한 방식으로 취급되고 유지될 수 있다. 이것은 데이터가 무난한 저장 구조, 예컨대 어떠한 서브디렉토리들 없이, 또는 단일 디렉토리 내에서, 저장되게 할 수 있다. 가상 계층 저장 구조는 다른 집합 객체들(19) 및/또는 데이터 파일들(21)에 대한 참조들을 포함하는 집합 객체들(19)을 추가함으로써 생성될 수 있다. 심지어 동일한 데이터가 집합 객체들(19)의 상이한 세트들을 이용하여 여러 개의 상이한 가상 계층 저장 구조들에서 구성되게 할 수 있다.
데이터 보안을 이유로, 저장 시스템에 저장된 일부 또는 모든 정보(예컨대, 집합 객체들(19) 및/또는 데이터 파일들(21))는 저장 시스템에 중복적으로 저장될 수 있다. 집합 객체들(19a 내지 19c) 및 데이터 파일(21a)은 2개 이상의 저장 노드들(15)에서 저장될 수 있다. 집합 객체 또는 데이터 파일의 각각의 예는 동일한 식별자와 연관될 수 있다. 이러한 경우에 있어서, 전술된 판독 방법은 집합 객체를 저장하는 각각의 저장 노드로부터의 응답을 초래할 수 있다. 따라서, 중복적으로 저장된 집합 객체는 집합 객체를 저장하는 저장 노드들 중 하나 또는 모두로부터 취출될 수 있다.
개시된 방법 및 시스템을 입증하는 여러 실시예들이 설명되었다. 그러나, 당업자에게 용이하게 인식되는 바와 같이, 본 명세서에서 설명된 방법들 및 제품들에 따르는 전술된 개시들 외의 다른 실시예들이 동등하게 가능하다. 전술한 예들은 제한하고자 하는 것이 아니며, 보호의 범주는 첨부된 특허청구범위에 의해 정의될 것이다.

Claims (19)

  1. 통신 네트워크에 의해 상호접속된 데이터 저장 노드들을 포함하는 데이터 저장 시스템에서 데이터를 유지하는 방법으로서,
    제1 데이터 항목에 대한 요청을 복수의 저장 노드들 중 적어도 하나에 전송하는 단계로서, 상기 제1 데이터 항목은 상기 저장 시스템에 저장된 제2 데이터 항목에 대한 참조를 포함하는 것인 단계;
    상기 복수의 저장 노드들 중 적어도 하나의 저장 노드로부터 상기 제1 데이터 항목을 수신하는 단계; 및
    상기 제2 데이터 항목에 대한 요청을 상기 복수의 저장 노드들의 서브세트에 전송하는 단계로서, 상기 서브세트는 상기 제1 데이터 항목에 포함된 상기 참조에 기초하여 결정되는 것인 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 제1 및 제2 데이터 엔티티들에 대한 상기 요청은 멀티캐스트에 의해 전송되는, 방법.
  3. 제1항에 있어서, 상기 제1 데이터 항목은 제1 고유키와 연관되고, 상기 제2 데이터 항목은 제2 고유키와 연관되는, 방법.
  4. 제3항에 있어서, 상기 제1 고유키 및 제2 고유키 각각은 클러스터 어드레스 및 데이터 항목 식별자를 포함하되, 상기 클러스터 어드레스는 상기 시스템 내의 상기 저장 노드들의 서브세트를 식별하고, 상기 데이터 항목 식별자는 저장 노드들의 상기 서브세트에 저장된 데이터 항목을 식별하는, 방법.
  5. 제4항에 있어서, 애플리케이션 프로그래밍 인터페이스(API)로부터의 상기 제1 및 제2 요청을 전송하는 단계를 더 포함하는, 방법.
  6. 제5항에 있어서, 상기 API는 상기 저장 시스템과 통신하는 서버 상에서 구현되는, 방법.
  7. 제5항에 있어서, 상기 API는 상기 저장 시스템 내의 저장 노드들 상에서 구현되는, 방법.
  8. 제3항에 있어서, 상기 수신된 제1 데이터 항목으로부터 상기 제1 고유키에 기초하여 상기 제2 데이터 항목을 식별하는 단계를 더 포함하는, 방법.
  9. 제5항에 있어서, 상기 제1 데이터 항목은 상기 API에서 수신되고, 상기 제1 고유키는 상기 API에서 식별되는, 방법.
  10. 제1항에 있어서, 상기 제2 데이터 항목은 제3 데이터 항목에 대한 참조를 포함하는, 방법.
  11. 제1항에 있어서, 상기 제2 데이터 항목은 페이로드 데이터를 포함하는, 방법.
  12. 제11항에 있어서, 상기 페이로드 데이터는 이미지 파일인, 방법.
  13. 제1항에 있어서, 상기 제1 데이터 항목은 유니캐스트 메시지에 의해 수신되는, 방법.
  14. 통신 네트워크를 통해 상호접속된 데이터 저장 노드들을 포함하는 데이터 저장 시스템에 데이터를 추가하는 방법으로서,
    제1 데이터 항목을 제1 저장 노드에 저장하는 단계; 및
    제2 저장 노드에 저장된 제2 데이터 항목을 업데이트하는 단계로서, 상기 제2 데이터 항목을 업데이트하는 단계는 상기 제1 데이터 항목에 대한 참조를 상기 제2 데이터 항목에 추가하는 단계를 포함하는 것인 단계를 포함하는, 방법.
  15. 제14항에 있어서, 상기 제1 저장 노드 및 상기 제2 저장 노드는 동일한 것인, 방법.
  16. 통신 네트워크를 통해 상호접속된 데이터 저장 노드들을 포함하는 데이터 저장 시스템으로부터 데이터를 삭제하는 방법으로서,
    제1 저장 노드에 저장된 제1 데이터 항목을 삭제하는 단계; 및
    제2 저장 노드에 저장된 제2 데이터 항목을 업데이트하는 단계로서, 상기 제2 데이터 항목을 업데이트하는 단계는 상기 제1 데이터 항목에 대한 참조를 상기 제2 데이터 항목에서 삭제하는 단계를 포함하는 것인 단계를 포함하는, 방법.
  17. 제16항에 있어서, 상기 제1 저장 노드 및 상기 제2 저장 노드는 동일한 것인, 방법.
  18. 제16항에 있어서, 상기 제1 데이터 항목에 대한 참조를 상기 제2 데이터 항목에서 삭제하는 단계는 상기 제2 저장 노드에 요청을 전송하는 단계를 포함하되, 상기 요청은 상기 제2 저장 노드에게 상기 제1 데이터 항목에 대한 상기 참조를 상기 제2 데이터 항목에서 삭제하도록 명령하는 것인, 방법.
  19. 통신 네트워크를 통해 상호접속된 다른 데이터 저장 노드들을 포함하는 데이터 저장 시스템 내의 데이터 저장 노드로서,
    상기 통신 네트워크를 통해 통신하도록 구성된 통신 인터페이스; 및
    애플리케이션 프로그래밍 인터페이스(API)를 포함하되, 상기 API는,
    상기 통신 인터페이스를 통해 제1 데이터 항목에 대한 요청을 복수의 저장 노드들에 전송하고,
    상기 통신 인터페이스를 통해 상기 복수의 저장 노드들 중 적어도하나의 저장 노드로부터 상기 제1 데이터 항목을 수신하되, 상기 제1 데이터 항목은 상기 저장 시스템에 저장된 제2 데이터 항목에 대한 참조를 포함하고,
    상기 복수의 저장 노드들의 서브세트를 결정하여 상기 제1 데이터 항목에 포함된 상기 참조에 기초하여 상기 제2 데이터 항목에 대한 요청을 전송하고,
    상기 제2 데이터 항목에 대한 상기 요청을 상기 복수의 저장 노드들의 상기 서브세트에 전송하도록 구성된, 데이터 저장 노드.
KR1020147008476A 2011-09-02 2012-08-29 데이터 유지 방법 KR101948956B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/224,415 US8645978B2 (en) 2011-09-02 2011-09-02 Method for data maintenance
US13/224,415 2011-09-02
PCT/EP2012/066739 WO2013030217A1 (en) 2011-09-02 2012-08-29 Method for data maintenance

Publications (2)

Publication Number Publication Date
KR20140094506A true KR20140094506A (ko) 2014-07-30
KR101948956B1 KR101948956B1 (ko) 2019-04-22

Family

ID=46796569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147008476A KR101948956B1 (ko) 2011-09-02 2012-08-29 데이터 유지 방법

Country Status (12)

Country Link
US (7) US8645978B2 (ko)
EP (1) EP2751716B1 (ko)
JP (1) JP5967673B2 (ko)
KR (1) KR101948956B1 (ko)
CN (1) CN103858124B (ko)
CA (1) CA2846693A1 (ko)
DK (1) DK2751716T3 (ko)
EA (1) EA201490443A1 (ko)
ES (1) ES2699260T3 (ko)
HU (1) HUE040456T2 (ko)
IL (2) IL231102A (ko)
WO (1) WO2013030217A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
US8650365B2 (en) 2011-09-02 2014-02-11 Compuverde Ab Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes
US8874835B1 (en) 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
TWI567550B (zh) * 2015-03-04 2017-01-21 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
CN105938419B (zh) 2015-03-04 2019-05-14 慧荣科技股份有限公司 数据储存装置及其数据维护方法
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
FR3065605A1 (fr) * 2017-04-19 2018-10-26 Orange Systeme et procede de communications
CN107403105B (zh) * 2017-06-30 2020-09-04 华为技术有限公司 一种文件系统的权限设置方法及装置
US10834190B2 (en) 2018-01-18 2020-11-10 Portworx, Inc. Provisioning of clustered containerized applications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6259701B1 (en) * 1997-09-11 2001-07-10 At&T Corp. Method and system for a unicast endpoint client to access a multicast internet protocol (IP) session
US6510162B1 (en) * 1998-05-27 2003-01-21 3Com Corporation System and method for managing channel usage in a data over cable system
US20070192451A1 (en) * 2006-02-14 2007-08-16 Cisco Technology, Inc. Techniques for distributing information using multicast subsets
US20090271412A1 (en) * 2008-04-29 2009-10-29 Maxiscale, Inc. Peer-to-Peer Redundant File Server System and Methods

Family Cites Families (241)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3707707A (en) 1970-11-12 1972-12-26 Cipher Data Prod Digital cassette magnetic tape recorder and reproducer
JP3139884B2 (ja) 1993-06-14 2001-03-05 株式会社東芝 多重要素処理システム
US5713017A (en) * 1995-06-07 1998-01-27 International Business Machines Corporation Dual counter consistency control for fault tolerant network file servers
JPH103421A (ja) 1995-11-20 1998-01-06 Matsushita Electric Ind Co Ltd 仮想ファイル管理システム
US5787247A (en) 1996-07-12 1998-07-28 Microsoft Corporation Replica administration without data loss in a store and forward replication enterprise
US5924094A (en) 1996-11-01 1999-07-13 Current Network Technologies Corporation Independent distributed database system
US6021118A (en) 1997-02-10 2000-02-01 Lucent Techologies Inc. Synchronization methods for distributed processing systems having replicated data
US6003065A (en) * 1997-04-24 1999-12-14 Sun Microsystems, Inc. Method and system for distributed processing of applications on host and peripheral devices
US6101508A (en) * 1997-08-01 2000-08-08 Hewlett-Packard Company Clustered file management for network resources
US6055543A (en) 1997-11-21 2000-04-25 Verano File wrapper containing cataloging information for content searching across multiple platforms
DE69907631T2 (de) 1998-01-23 2004-02-26 Emc Corp., Hopkinton Netzzugang zu inhaltsadressierbaren daten
JPH11249874A (ja) 1998-02-27 1999-09-17 Toshiba Corp コンピュータシステム、同システムにおける同期処理方法および記録媒体
JP2002527800A (ja) * 1998-10-02 2002-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 会話ブラウザおよび会話システム
JP4146983B2 (ja) * 1999-02-26 2008-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ・オブジェクトのメソッドを呼び出すプロセス方法及びデータ処理システム
US6658016B1 (en) * 1999-03-05 2003-12-02 Broadcom Corporation Packet switching fabric having a segmented ring with token based resource control protocol and output queuing control
US7774469B2 (en) 1999-03-26 2010-08-10 Massa Michael T Consistent cluster operational data in a server cluster using a quorum of replicas
US6389432B1 (en) 1999-04-05 2002-05-14 Auspex Systems, Inc. Intelligent virtual volume access
JP2000322292A (ja) 1999-05-10 2000-11-24 Nec Corp クラスタ型データサーバシステム及びデータ格納方法
US6952741B1 (en) * 1999-06-30 2005-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
US7634453B1 (en) 1999-08-13 2009-12-15 Storage Technology Corporation Distributed file data location
US6976165B1 (en) 1999-09-07 2005-12-13 Emc Corporation System and method for secure storage, transfer and retrieval of content addressable information
US7934251B2 (en) 1999-12-02 2011-04-26 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US6499090B1 (en) 1999-12-28 2002-12-24 Intel Corporation Prioritized bus request scheduling mechanism for processing devices
US6546388B1 (en) 2000-01-14 2003-04-08 International Business Machines Corporation Metadata search results ranking system
US6542972B2 (en) 2000-01-31 2003-04-01 Commvault Systems, Inc. Logical view and access to physical storage in modular data and storage management system
US6738766B2 (en) 2000-02-02 2004-05-18 Doongo Technologies, Inc. Apparatus and methods for providing personalized application search results for wireless devices based on user profiles
US7506034B2 (en) 2000-03-03 2009-03-17 Intel Corporation Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user
US6952737B1 (en) 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
US7281168B1 (en) * 2000-03-03 2007-10-09 Intel Corporation Failover architecture for local devices that access remote storage
US6470420B1 (en) 2000-03-31 2002-10-22 Western Digital Ventures, Inc. Method for designating one of a plurality of addressable storage devices to process a data transfer request
WO2001082678A2 (en) 2000-05-02 2001-11-08 Sun Microsystems, Inc. Cluster membership monitor
US6728716B1 (en) * 2000-05-16 2004-04-27 International Business Machines Corporation Client-server filter computing system supporting relational database records and linked external files operable for distributed file system
CA2413434A1 (en) * 2000-06-26 2002-01-03 International Business Machines Corporation Data management application programming interface for a parallel file system
US6826564B2 (en) 2000-07-10 2004-11-30 Fastforward Networks Scalable and programmable query distribution and collection in a network of queryable devices
US6732237B1 (en) 2000-08-29 2004-05-04 Oracle International Corporation Multi-tier caching system
US20040236798A1 (en) 2001-09-11 2004-11-25 Sudhir Srinivasan Migration of control in a distributed segmented file system
US7406484B1 (en) 2000-09-12 2008-07-29 Tbrix, Inc. Storage allocation in a distributed segmented file system
US6782389B1 (en) 2000-09-12 2004-08-24 Ibrix, Inc. Distributing files across multiple, permissibly heterogeneous, storage devices
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US7272613B2 (en) 2000-10-26 2007-09-18 Intel Corporation Method and system for managing distributed content and related metadata
SE520129C2 (sv) * 2000-10-27 2003-05-27 Terraplay Systems Ab Kommunikationsinfrastrukturanordning i och en datorläsbar programprodukt för ett databearbetningssystem för fleranvändarapplikationer
US6985956B2 (en) 2000-11-02 2006-01-10 Sun Microsystems, Inc. Switching system
AU2002232411A1 (en) 2000-11-28 2002-06-11 Gregory L. Gingerich A method and system for software and hardware multiplicity
US7165096B2 (en) 2000-12-22 2007-01-16 Data Plow, Inc. Storage area network file system
DE50110186D1 (de) 2000-12-27 2006-07-27 Bsh Bosch Siemens Hausgeraete Verfahren und vorrichtung zum entfeuchten von kleidungsstücken
US7266556B1 (en) 2000-12-29 2007-09-04 Intel Corporation Failover architecture for a distributed storage system
US20020124137A1 (en) * 2001-01-29 2002-09-05 Ulrich Thomas R. Enhancing disk array performance via variable parity based load balancing
US6768871B2 (en) 2001-01-30 2004-07-27 The Regents Of The University Of California Optical layer multicasting using a multicast switch to effect survivability and security
US6865603B2 (en) 2001-01-31 2005-03-08 Hewlett-Packard Development Company, L.P. Correcting for network address changes
US7069295B2 (en) 2001-02-14 2006-06-27 The Escher Group, Ltd. Peer-to-peer enterprise storage
US20020156912A1 (en) 2001-02-15 2002-10-24 Hurst John T. Programming content distribution
US7062490B2 (en) 2001-03-26 2006-06-13 Microsoft Corporation Serverless distributed file system
US6839815B2 (en) 2001-05-07 2005-01-04 Hitachi, Ltd. System and method for storage on demand service in a global SAN environment
US6918013B2 (en) 2001-07-16 2005-07-12 Bea Systems, Inc. System and method for flushing bean cache
US7039622B2 (en) 2001-09-12 2006-05-02 Sas Institute Inc. Computer-implemented knowledge repository interface system and method
US7054867B2 (en) 2001-09-18 2006-05-30 Skyris Networks, Inc. Systems, methods and programming for routing and indexing globally addressable objects and associated business models
GB2381427A (en) 2001-10-27 2003-04-30 Hewlett Packard Co Spanning tree in peer to peer networks
WO2003039071A1 (en) 2001-10-29 2003-05-08 Sun Microsystems, Inc. Method to manage high availability equipments
US7257308B2 (en) * 2001-12-06 2007-08-14 Scientific-Atlanta, Inc. Converting time-shift buffering for personal video recording into permanent recordings
US7054910B1 (en) 2001-12-20 2006-05-30 Emc Corporation Data replication facility for distributed computing environments
US6917941B2 (en) 2001-12-28 2005-07-12 Channel Intelligence, Inc. Method and apparatus for creation and maintenance of database structure
JP4202026B2 (ja) 2002-01-31 2008-12-24 株式会社アンソナ ストレージシステムおよびストレージ装置
US7640547B2 (en) * 2002-02-08 2009-12-29 Jpmorgan Chase & Co. System and method for allocating computing resources of a distributed computing system
US7243103B2 (en) 2002-02-14 2007-07-10 The Escher Group, Ltd. Peer to peer enterprise storage system with lexical recovery sub-system
JP4198920B2 (ja) 2002-02-26 2008-12-17 エイディシーテクノロジー株式会社 バックアップシステム、バックアップ用プログラムおよびバックアップ方法
US7020665B2 (en) 2002-03-07 2006-03-28 Microsoft Corporation File availability in distributed file storage systems
JP2003271316A (ja) 2002-03-14 2003-09-26 Hitachi Ltd ストレージシステム、その動作プログラム及びその運用方法、情報処理端末及びその動作プログラム、データ管理システム
US7257645B2 (en) 2002-05-01 2007-08-14 Bea Systems, Inc. System and method for storing large messages
US7305585B2 (en) 2002-05-23 2007-12-04 Exludus Technologies Inc. Asynchronous and autonomous data replication
US7574488B2 (en) * 2002-05-31 2009-08-11 Hitachi, Ltd. Method and apparatus for peer-to-peer file sharing
US6732171B2 (en) 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization
US20030233455A1 (en) 2002-06-14 2003-12-18 Mike Leber Distributed file sharing system
US7631313B2 (en) 2002-06-17 2009-12-08 David Mayhew System and method for transferring data
US8060598B1 (en) 2002-07-01 2011-11-15 Sprint Communications Company L.P. Computer network multicasting traffic monitoring and compensation
JP4240930B2 (ja) 2002-07-15 2009-03-18 株式会社日立製作所 複数ネットワークストレージの仮送想一元化方法及び装置
CN1221898C (zh) * 2002-08-13 2005-10-05 国际商业机器公司 刷新网络代理高速缓存服务器对象的系统和方法
DE10237875A1 (de) 2002-08-19 2004-03-04 Siemens Ag Vorrichtung, insbesondere Automatisierungsgerät, mit in Datei gespeicherter Dateiverzeichnisstruktur
ATE400026T1 (de) 2002-09-10 2008-07-15 Exagrid Systems Inc Datenschutzverfahren und vorrichtung
US7206836B2 (en) 2002-09-23 2007-04-17 Sun Microsystems, Inc. System and method for reforming a distributed data system cluster after temporary node failures or restarts
US7146499B2 (en) 2002-09-30 2006-12-05 International Business Machines Corporation Security system for replicated storage devices on computer networks
US7774325B2 (en) 2002-10-17 2010-08-10 Intel Corporation Distributed network attached storage system
CA2500166A1 (en) 2002-10-29 2004-05-13 British Telecommunications Public Limited Company Method and apparatus for network management
US7328243B2 (en) 2002-10-31 2008-02-05 Sun Microsystems, Inc. Collaborative content coherence using mobile agents in peer-to-peer networks
US7565419B1 (en) 2002-11-22 2009-07-21 Symantec Operating Corporation Conflict resolution in a peer to peer network
US20040139167A1 (en) 2002-12-06 2004-07-15 Andiamo Systems Inc., A Delaware Corporation Apparatus and method for a scalable network attach storage system
US7624158B2 (en) 2003-01-14 2009-11-24 Eycast Inc. Method and apparatus for transmission and storage of digital medical data
US7320009B1 (en) 2003-03-28 2008-01-15 Novell, Inc. Methods and systems for file replication utilizing differences between versions of files
US7328256B2 (en) 2003-06-02 2008-02-05 Apple Inc. Method and apparatus for distributing computer files across a network to multiple clients
US20040260775A1 (en) 2003-06-20 2004-12-23 Xerox Corporation System and method for sending messages
US7694086B1 (en) 2003-06-30 2010-04-06 Symantec Operating Corporation Method and system for incremental backup of data volumes
US7523217B2 (en) 2003-07-15 2009-04-21 Hewlett-Packard Development Company, L.P. System and method having improved efficiency and reliability for distributing a file among a plurality of recipients
US20050015461A1 (en) 2003-07-17 2005-01-20 Bruno Richard Distributed file system
JP2005044003A (ja) * 2003-07-23 2005-02-17 Fujitsu Ltd 認証装置、方法、及びプログラム
US6983429B2 (en) 2003-09-30 2006-01-03 Bull Hn Information Systems Inc. Formal proof methods for analyzing circuit loading problems under operating conditions
US20130097302A9 (en) 2003-10-01 2013-04-18 Robert Khedouri Audio visual player apparatus and system and method of content distribution using the same
US7340510B1 (en) 2003-11-18 2008-03-04 Cisco Technology, Inc. Content delivery network (CDN) replication status reporter
US7376945B1 (en) 2003-12-02 2008-05-20 Cisco Technology, Inc. Software change modeling for network devices
US7039661B1 (en) 2003-12-29 2006-05-02 Veritas Operating Corporation Coordinated dirty block tracking
US7822711B1 (en) 2003-12-31 2010-10-26 Symantec Operating Corporation Conflict resolution for a distributed file sharing system
US7383463B2 (en) 2004-02-04 2008-06-03 Emc Corporation Internet protocol based disaster recovery of a server
US7385978B1 (en) 2004-02-19 2008-06-10 Cisco Technology, Inc. Method and apparatus for reliable multicast distribution
US9160571B2 (en) 2004-03-11 2015-10-13 Hewlett-Packard Development Company, L.P. Requesting a service from a multicast network
JP4448719B2 (ja) 2004-03-19 2010-04-14 株式会社日立製作所 ストレージシステム
US7503052B2 (en) * 2004-04-14 2009-03-10 Microsoft Corporation Asynchronous database API
US20060023969A1 (en) 2004-04-30 2006-02-02 Lara Eyal D Collaboration and multimedia authoring
ATE390013T1 (de) 2004-05-18 2008-04-15 British Telecomm Peer-to-peer-netze
US7433898B1 (en) 2004-06-01 2008-10-07 Sanbolic, Inc. Methods and apparatus for shared storage journaling
US7634566B2 (en) 2004-06-03 2009-12-15 Cisco Technology, Inc. Arrangement in a network for passing control of distributed data between network nodes for optimized client access based on locality
US7873650B1 (en) 2004-06-11 2011-01-18 Seisint, Inc. System and method for distributing data in a parallel processing system
US20050278552A1 (en) 2004-06-14 2005-12-15 Vincent Delisle Secure virtual account
US20060031230A1 (en) 2004-07-21 2006-02-09 Kumar Sinha M Data storage systems
US20060047776A1 (en) 2004-08-31 2006-03-02 Chieng Stephen S Automated failover in a cluster of geographically dispersed server nodes using data replication over a long distance communication link
US20060080574A1 (en) 2004-10-08 2006-04-13 Yasushi Saito Redundant data storage reconfiguration
US8090776B2 (en) 2004-11-01 2012-01-03 Microsoft Corporation Dynamic content change notification
JP4222295B2 (ja) 2004-11-19 2009-02-12 パナソニック株式会社 ビデオサーバおよびこれを用いた映像配信システム
US7631023B1 (en) 2004-11-24 2009-12-08 Symantec Operating Corporation Performance-adjusted data allocation in a multi-device file system
JP4451293B2 (ja) 2004-12-10 2010-04-14 株式会社日立製作所 名前空間を共有するクラスタ構成のネットワークストレージシステム及びその制御方法
US7320088B1 (en) 2004-12-28 2008-01-15 Veritas Operating Corporation System and method to automate replication in a clustered environment
US8229985B2 (en) * 2005-02-07 2012-07-24 Cisco Technology, Inc. Arrangement for a distributed file system having data objects mapped independent of any data object attribute
JP4843976B2 (ja) 2005-03-25 2011-12-21 日本電気株式会社 レプリケーションシステムと方法
US7454426B2 (en) 2005-04-12 2008-11-18 International Business Machines Corporation Referential integrity across a distributed directory
US7631016B2 (en) 2005-05-04 2009-12-08 Oracle International Corporation Providing the latest version of a data item from an N-replica set
WO2006124911A2 (en) 2005-05-18 2006-11-23 Ibrix, Inc. Balanced computer architecture
CA2611527A1 (en) * 2005-06-09 2006-12-21 Whirlpool Corporation Software architecture system and method for communication with, and management of, at least one component within a household appliance
US7523146B2 (en) 2005-06-21 2009-04-21 Apple Inc. Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment
US8401997B1 (en) 2005-06-30 2013-03-19 Symantec Operating Corporation System and method for replication using consistency interval markers in a distributed storage environment
US7631045B2 (en) * 2005-07-14 2009-12-08 Yahoo! Inc. Content router asynchronous exchange
US7599941B2 (en) 2005-07-25 2009-10-06 Parascale, Inc. Transparent redirection and load-balancing in a storage network
US9305011B2 (en) 2005-07-27 2016-04-05 Hitachi Data Systems Corporation Method for improving mean time to data loss (MTDL) in a fixed content distributed data storage
US20070028291A1 (en) 2005-07-29 2007-02-01 Bit 9, Inc. Parametric content control in a network security system
US7568069B2 (en) * 2005-07-29 2009-07-28 Lsi Corporation Method for creating a large-scale storage array system out of multiple mid-range storage arrays
JP4747733B2 (ja) 2005-08-22 2011-08-17 ブラザー工業株式会社 ノード装置、共用情報更新処理プログラム、共用情報更新方法、及び情報共有システム
US20070055703A1 (en) * 2005-09-07 2007-03-08 Eyal Zimran Namespace server using referral protocols
US9996413B2 (en) 2007-10-09 2018-06-12 International Business Machines Corporation Ensuring data integrity on a dispersed storage grid
US7558859B2 (en) 2005-10-17 2009-07-07 Microsoft Corporation Peer-to-peer auction based data distribution
US7788303B2 (en) 2005-10-21 2010-08-31 Isilon Systems, Inc. Systems and methods for distributed system scanning
CN101300542A (zh) 2005-11-04 2008-11-05 汤姆逊许可证公司 用于管理媒体存储装置的方法和设备
BRPI0619070B1 (pt) 2005-11-23 2019-07-30 Envisionit Llc Sistema de radiodifusão de mensagem, e, métodos de transferência de mensagens por radiodifusão para uma área alvo de radiodifusão, e de controle de admissão para autorizar uma submissão de uma mensagem de radiodifusão para uma área alvo de radiodifusão
EP1798934A1 (en) 2005-12-13 2007-06-20 Deutsche Thomson-Brandt Gmbh Method and apparatus for organizing nodes in a network
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US7739239B1 (en) 2005-12-29 2010-06-15 Amazon Technologies, Inc. Distributed storage system with support for distinct storage classes
US20070179981A1 (en) * 2006-01-31 2007-08-02 International Business Machines Corporation Efficient data management in a cluster file system
US7546484B2 (en) 2006-02-08 2009-06-09 Microsoft Corporation Managing backup solutions with light-weight storage nodes
US8185576B2 (en) 2006-03-14 2012-05-22 Altnet, Inc. Filter for a distributed network
US7480817B2 (en) 2006-03-31 2009-01-20 International Business Machines Corporation Method for replicating data based on probability of concurrent failure
US7778183B2 (en) 2006-03-31 2010-08-17 International Business Machines Corporation Data replica selector
US20070288638A1 (en) 2006-04-03 2007-12-13 British Columbia, University Of Methods and distributed systems for data location and delivery
US8364891B2 (en) 2006-04-04 2013-01-29 Permabit Technology Corporation Storage assignment technique for scalable and fault tolerant storage system
US20070255763A1 (en) 2006-04-27 2007-11-01 International Business Machines Corporation Database replication method and system
US20080126357A1 (en) 2006-05-04 2008-05-29 Wambo, Inc. Distributed file storage and transmission system
KR101366220B1 (ko) 2006-05-23 2014-02-21 노리안 홀딩 코포레이션 분산형 저장소
US8255420B2 (en) 2006-05-23 2012-08-28 Noryan Holding Corporation Distributed storage
US8117155B2 (en) 2006-06-30 2012-02-14 Microsoft Corporation Collection-based object replication
US20080005195A1 (en) 2006-06-30 2008-01-03 Microsoft Corporation Versioning synchronization for mass p2p file sharing
US7546486B2 (en) 2006-08-28 2009-06-09 Bycast Inc. Scalable distributed object management in a distributed fixed content storage system
US20080077635A1 (en) 2006-09-22 2008-03-27 Digital Bazaar, Inc. Highly Available Clustered Storage Network
US7840992B1 (en) 2006-09-28 2010-11-23 Emc Corporation System and method for environmentally aware data protection
US7680048B2 (en) 2006-10-06 2010-03-16 International Business Machiens Corporation Method and apparatus for routing data in an inter-nodal communications lattice of a massively parallel computer system by dynamically adjusting local routing strategies
US8176265B2 (en) 2006-10-30 2012-05-08 Nvidia Corporation Shared single-access memory with management of multiple parallel requests
US8094585B2 (en) 2006-10-31 2012-01-10 International Business Machines Corporation Membership management of network nodes
US8555335B2 (en) 2006-11-01 2013-10-08 Microsoft Corporation Securing distributed application information delivery
US8190561B1 (en) 2006-12-06 2012-05-29 At&T Mobility Ii Llc LDAP replication priority queuing mechanism
US7590672B2 (en) 2006-12-11 2009-09-15 Bycast Inc. Identification of fixed content objects in a distributed fixed content storage system
GB2445986A (en) 2007-01-17 2008-07-30 Connect Spot Ltd Database Update Systems for Wireless communications Systems
US8756253B2 (en) 2007-01-22 2014-06-17 Xerox Corporation Two-level structured overlay design for cluster management in a peer-to-peer network
JP5016063B2 (ja) 2007-02-22 2012-09-05 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 整合性のとれた耐障害性分散ハッシュテーブル(dht)オーバレイネットワーク
US8635691B2 (en) 2007-03-02 2014-01-21 403 Labs, Llc Sensitive data scanner
US7584294B2 (en) 2007-03-12 2009-09-01 Citrix Systems, Inc. Systems and methods for prefetching objects for caching using QOS
JP2008234445A (ja) 2007-03-22 2008-10-02 Brother Ind Ltd コンテンツ分散保存システム、複製データ取得方法、ノード装置、及びノード処理プログラム
US8150800B2 (en) 2007-03-28 2012-04-03 Netapp, Inc. Advanced clock synchronization technique
JP4696089B2 (ja) 2007-03-30 2011-06-08 三菱電機インフォメーションシステムズ株式会社 分散ストレージシステム
JP2008250773A (ja) 2007-03-30 2008-10-16 Brother Ind Ltd 情報配信システム、管理装置用プログラム及び情報処理装置用プログラム
TWI483584B (zh) 2007-06-04 2015-05-01 Graco Minnesota Inc 分配式監視及控制流體處理系統
US7676704B2 (en) 2007-06-29 2010-03-09 Symantec Corporation Resource management for scalable file system recovery
WO2009019949A1 (ja) 2007-08-03 2009-02-12 Nec Corporation 磁気ランダムアクセスメモリ及びその製造方法
WO2009032710A2 (en) 2007-08-29 2009-03-12 Nirvanix, Inc. Filing system and method for data files stored in a distributed communications network
WO2009031915A1 (fr) 2007-09-03 2009-03-12 Obschestvo S Ogranichennoi Otvetstvennostiyu 'meralabs' Système et procédés de stockage, de recherche et d'extraction des informations sur la base d'ensembles de données faiblement organisés et décentralisés
US8533256B2 (en) 2007-10-09 2013-09-10 Cleversafe, Inc. Object interface to a dispersed data storage network
US8185614B2 (en) 2007-10-09 2012-05-22 Cleversafe, Inc. Systems, methods, and apparatus for identifying accessible dispersed digital storage vaults utilizing a centralized registry
US7913030B2 (en) 2007-12-28 2011-03-22 Sandisk Il Ltd. Storage device with transaction logging capability
US7979662B2 (en) 2007-12-28 2011-07-12 Sandisk Il Ltd. Storage device with transaction indexing capability
US7899850B2 (en) 2008-02-22 2011-03-01 Bycast, Inc. Relational objects for the optimized management of fixed-content storage systems
US20090228669A1 (en) 2008-03-10 2009-09-10 Microsoft Corporation Storage Device Optimization Using File Characteristics
WO2009120301A2 (en) 2008-03-25 2009-10-01 Square Products Corporation System and method for simultaneous media presentation
US8577957B2 (en) 2008-04-01 2013-11-05 Litl Llc System and method for streamlining user interaction with electronic content
JP2009259007A (ja) 2008-04-17 2009-11-05 Nippon Telegr & Teleph Corp <Ntt> 分散格納方法、分散格納システム及び分散格納装置
US20100010975A1 (en) * 2008-07-10 2010-01-14 Morris Robert P Methods And Systems For Resolving A Query Region To A Network Identifier
US8458128B2 (en) 2008-08-26 2013-06-04 Microsoft Corporation Minimal extensions required for multi-master offline and collaboration for devices and web services
US8255430B2 (en) * 2008-08-26 2012-08-28 Caringo, Inc. Shared namespace for storage clusters
WO2010037117A1 (en) 2008-09-29 2010-04-01 Nirvanix, Inc. Client application program interface for network-attached storage system
WO2010045109A1 (en) 2008-10-17 2010-04-22 Azuki Systems, Inc. Method and apparatus for efficient http data streaming
US9781148B2 (en) 2008-10-21 2017-10-03 Lookout, Inc. Methods and systems for sharing risk responses between collections of mobile communications devices
US8347386B2 (en) 2008-10-21 2013-01-01 Lookout, Inc. System and method for server-coupled malware prevention
US8443062B2 (en) 2008-10-23 2013-05-14 Microsoft Corporation Quorum based transactionally consistent membership management in distributed storage systems
SE533007C2 (sv) 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
US8898236B2 (en) 2008-10-31 2014-11-25 Netapp, Inc. Automated conversion of versioned data collections
KR101285113B1 (ko) 2008-10-31 2013-07-17 에스케이플래닛 주식회사 컨텐츠 전달 시스템, 방법, 서비스 서버, 이동통신단말기 및 저장 매체
US8561052B2 (en) 2008-12-08 2013-10-15 Harris Corporation Communications device with a plurality of processors and compatibility synchronization module for processor upgrades and related method
EP2377294B1 (en) 2008-12-18 2017-05-17 Scality, SA Multipurpose storage system based upon a distributed hashing mechanism with transactional support and failover capability
US20100185693A1 (en) 2009-01-20 2010-07-22 Murty Venkataesh V Methods and apparatus for creating an audit trail
US8832023B2 (en) 2009-01-30 2014-09-09 Apple Inc. System for managing distributed assets and metadata
US9368716B2 (en) 2009-02-02 2016-06-14 Qualcomm Incorporated Magnetic tunnel junction (MTJ) storage element and spin transfer torque magnetoresistive random access memory (STT-MRAM) cells having an MTJ
US8165122B2 (en) 2009-05-26 2012-04-24 Alcatel Lucent System and method for converting unicast client requests into multicast client requests
US8533151B2 (en) 2009-05-26 2013-09-10 Microsoft Corporation Generating a local copy of a virtualized application package from a local installation
US20130254314A1 (en) 2009-06-09 2013-09-26 Edmond K. Chow Digital content delivery
US10108492B2 (en) 2009-07-30 2018-10-23 International Business Machines Corporation Rebuilding data stored in a dispersed storage network
US9189244B2 (en) 2009-08-18 2015-11-17 Adobe Systems Incorporated Methods and systems for managing data service specifications
US20110047413A1 (en) 2009-08-20 2011-02-24 Mcgill Robert E Methods and devices for detecting service failures and maintaining computing services using a resilient intelligent client computer
US8745170B2 (en) 2009-08-27 2014-06-03 Apple Inc. Dynamic file streaming
CN104899286B (zh) 2009-09-21 2018-09-11 高通股份有限公司 分布式内容存储和取回
WO2011036707A1 (en) 2009-09-24 2011-03-31 Hitachi, Ltd. Computer system for controlling backups using wide area network
US8620879B2 (en) 2009-10-13 2013-12-31 Google Inc. Cloud based file storage service
CN101710339B (zh) * 2009-11-20 2012-02-01 中国科学院计算技术研究所 控制机群文件系统中数据存储方法和系统及创建文件方法
US8190578B2 (en) 2009-12-17 2012-05-29 International Business Machines Corporation Migration of versioned data between configuration management systems
US9135268B2 (en) 2009-12-30 2015-09-15 Symantec Corporation Locating the latest version of replicated data files
US8707091B2 (en) * 2010-03-15 2014-04-22 Cleversafe, Inc. Failsafe directory file system in a dispersed storage network
WO2011116087A2 (en) 2010-03-16 2011-09-22 Copiun, Inc. Highly scalable and distributed data de-duplication
US20110238909A1 (en) * 2010-03-29 2011-09-29 Pankaj Kumar Multicasting Write Requests To Multiple Storage Controllers
EP2387200B1 (en) 2010-04-23 2014-02-12 Compuverde AB Distributed data storage
US8234372B2 (en) * 2010-05-05 2012-07-31 Go Daddy Operating Company, LLC Writing a file to a cloud storage solution
US8468214B1 (en) 2010-06-15 2013-06-18 Proximetry, Inc. Systems and methods for distributing content using attributes
CN102947879B (zh) 2010-06-22 2015-11-25 索尼电脑娱乐公司 信息处理装置
CN101909058B (zh) 2010-07-30 2013-01-16 天维讯达无线电设备检测(北京)有限责任公司 一种适合可信连接架构的平台鉴别策略管理方法及系统
GB2486393B (en) 2010-09-08 2016-12-28 Saffron Digital Ltd Delivering a file from a content provider to a client
US9253199B2 (en) 2010-09-09 2016-02-02 Red Hat, Inc. Verifying authenticity of a sender of an electronic message sent to a recipient using message salt
US8504758B1 (en) 2010-09-21 2013-08-06 Amazon Technologies, Inc. System and method for logical deletion of stored data objects
US8660986B2 (en) 2010-10-27 2014-02-25 Microsoft Corporation Preserving user intent in merging ordered objects
EP2635991B1 (en) 2010-11-05 2015-09-16 InterDigital Patent Holdings, Inc. Device validation, distress indication, and remediation
US9471593B1 (en) 2010-12-30 2016-10-18 Emc Corporation Method and apparatus for ensuring consistent ordering of writes in a distributed database storage system
US8949828B2 (en) * 2011-01-11 2015-02-03 International Business Machines Corporation Single point, scalable data synchronization for management of a virtual input/output server cluster
US9020996B2 (en) * 2011-06-24 2015-04-28 Stephen P. LORD Synthetic view
US9268665B2 (en) 2011-07-26 2016-02-23 Trimble Navigation Limited System and method for identifying fault prone computer code files
US9021053B2 (en) 2011-09-02 2015-04-28 Compuverde Ab Method and device for writing data to a data storage system comprising a plurality of data storage nodes
US9225780B2 (en) 2012-02-24 2015-12-29 Xyratex Technology Limited Data integrity in a networked storage system
US20130268632A1 (en) 2012-04-05 2013-10-10 Canon Kabushiki Kaisha Server assisted authenticated device
US9256765B2 (en) 2012-06-29 2016-02-09 Kip Sign P1 Lp System and method for identifying software changes
US9344521B2 (en) 2012-12-13 2016-05-17 Red Hat, Inc. Pluggable infrastructure for cloud provider selection
US9367448B1 (en) 2013-06-04 2016-06-14 Emc Corporation Method and system for determining data integrity for garbage collection of data storage systems
US20150288659A1 (en) 2014-04-03 2015-10-08 Bitdefender IPR Management Ltd. Systems and Methods for Mutual Integrity Attestation Between A Network Endpoint And A Network Appliance
CN105978981B (zh) * 2016-05-19 2019-09-24 北京春鸿科技有限公司 基于公有云存储账户的数据备份的线性扩容方法及系统
US20210064486A1 (en) * 2019-08-28 2021-03-04 Commvault Systems, Inc. Access arbitration to a shared cache storage area in a data storage management system for live browse, file indexing, backup and/or restore operations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6259701B1 (en) * 1997-09-11 2001-07-10 At&T Corp. Method and system for a unicast endpoint client to access a multicast internet protocol (IP) session
US6510162B1 (en) * 1998-05-27 2003-01-21 3Com Corporation System and method for managing channel usage in a data over cable system
US20070192451A1 (en) * 2006-02-14 2007-08-16 Cisco Technology, Inc. Techniques for distributing information using multicast subsets
US20090271412A1 (en) * 2008-04-29 2009-10-29 Maxiscale, Inc. Peer-to-Peer Redundant File Server System and Methods

Also Published As

Publication number Publication date
EP2751716B1 (en) 2018-09-26
US11372897B1 (en) 2022-06-28
US9305012B2 (en) 2016-04-05
US20130061252A1 (en) 2013-03-07
DK2751716T3 (en) 2018-12-03
US20140095559A1 (en) 2014-04-03
IL231102A0 (en) 2014-04-30
EP2751716A1 (en) 2014-07-09
US9965542B2 (en) 2018-05-08
CA2846693A1 (en) 2013-03-07
IL249886A0 (en) 2017-03-30
US8645978B2 (en) 2014-02-04
US10430443B2 (en) 2019-10-01
CN103858124B (zh) 2018-06-29
US10769177B1 (en) 2020-09-08
US20160232225A1 (en) 2016-08-11
ES2699260T3 (es) 2019-02-08
IL231102A (en) 2017-01-31
JP2014529814A (ja) 2014-11-13
CN103858124A (zh) 2014-06-11
EA201490443A1 (ru) 2014-08-29
HUE040456T2 (hu) 2019-03-28
US20220284046A1 (en) 2022-09-08
JP5967673B2 (ja) 2016-08-10
KR101948956B1 (ko) 2019-04-22
IL249886B (en) 2019-01-31
WO2013030217A1 (en) 2013-03-07
US20180225358A1 (en) 2018-08-09

Similar Documents

Publication Publication Date Title
KR101948956B1 (ko) 데이터 유지 방법
US8200788B2 (en) Slice server method and apparatus of dispersed digital storage vaults
US9575826B2 (en) Two level addressing in storage clusters
US8762353B2 (en) Elimination of duplicate objects in storage clusters
US10210167B1 (en) Multi-level page caching for distributed object store
US20080126357A1 (en) Distributed file storage and transmission system
CN111435286A (zh) 一种数据存储方法、装置和系统
KR101531564B1 (ko) 네트워크 분산 파일 시스템 기반 iSCSI 스토리지 시스템에서의 부하 분산 방법 및 시스템
US9626378B2 (en) Method for handling requests in a storage system and a storage node for a storage system
US8997124B2 (en) Method for updating data in a distributed data storage system
KR101589122B1 (ko) 네트워크 분산 파일 시스템 기반 iSCSI 스토리지 시스템에서의 장애 복구 방법 및 시스템
JP2007249297A (ja) データ管理システム、及びファイル共有方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant