KR101905198B1 - 분산 데이터 스토리지 - Google Patents

분산 데이터 스토리지 Download PDF

Info

Publication number
KR101905198B1
KR101905198B1 KR1020127030479A KR20127030479A KR101905198B1 KR 101905198 B1 KR101905198 B1 KR 101905198B1 KR 1020127030479 A KR1020127030479 A KR 1020127030479A KR 20127030479 A KR20127030479 A KR 20127030479A KR 101905198 B1 KR101905198 B1 KR 101905198B1
Authority
KR
South Korea
Prior art keywords
storage
data
storage node
nodes
storage nodes
Prior art date
Application number
KR1020127030479A
Other languages
English (en)
Other versions
KR20130115983A (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 KR20130115983A publication Critical patent/KR20130115983A/ko
Application granted granted Critical
Publication of KR101905198B1 publication Critical patent/KR101905198B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • 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
    • G06F16/1844Management specifically adapted to replicated file systems
    • 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/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1845Arrangements for providing special services to substations for broadcast or conference, e.g. multicast broadcast or multicast in a specific location, e.g. geocast
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Abstract

본 발명은 복수의 스토리지 노드를 포함하는 분산 데이터 스토리지 시스템에 관한 것이다. 유니캐스트 및 멀티캐스트 전송을 이용하여 서버 어플리케이션은 스토리지 시스템에 데이터를 기입할 수 있다. 데이터를 기입할 시, 무작위 함수에 부분적으로 근거하여 적어도 두 개의 스토리지 노드를 선택한다. 이는 데이터가 충분히 전파되는 것을 보장하여 스토리지 노드 오작동의 경우에 효율적이고 신뢰성 있는 데이터의 복제를 제공한다.

Description

분산 데이터 스토리지{DISTRIBUTED DATA STORAGE}
본 발명은 복수의 데이터 스토리지 노드를 포함하는 데이터 스토리지 시스템의 서버에 적용되어 상기 시스템에 데이터를 기입하는 방법에 관한 것이다. 본 발명은 또한 상기 방법을 실행할 수 있는 서버에 관한 것이다.
예를 들어 미국 특허 공개 공보 US 2005/0246393 A1은 상기한 바와 같은 방법을 개시하고 있다. 이 방법은 지리적으로 다른 장소에 있는 복수의 스토리지 센터를 사용하는 시스템에 대한 것이다. 저장된 데이터에 관한 정보를 유지하기 위해 분산 객체 스토리지 매니저들이 포함된다.
이러한 시스템에 관한 쟁점 중 하나는 어떻게 하면 데이터의 유지뿐만 아니라 기입을 단순하면서도 확실하고 신뢰성 있게 수행할 수 있는가에 있다.
본 발명의 목적은 분산 스토리지 시스템에서 신뢰성 있는 데이터의 기입을 구현하는 데에 있다.
이 목적은 데이터 스토리지 시스템 내의 데이터에 접속하는 어플리케이션을 실행하는 서버에서 구현되는 최초 언급된 종류의 상기 데이터 스토리지 시스템에 데이터를 기입하기 위한 방법에 의해 달성된다. 상기 방법은 멀티캐스트 스토리지 질의를 상기 복수의 스토리지 노드들로 전송하는 단계, 각 스토리지 노드에 관련된 스토리지 노드 정보를 포함하는 복수의 응답들을 상기 스토리지 노드들의 서브셋으로부터 수신하는 단계 및 상기 응답들에 근거하여 상기 서브셋 내의 적어도 두 개의 스토리지 노드를 선택하는 단계를 포함한다. 상기 선택 단계는 상기 서브셋 내의 각각의 스토리지 노드에 대해 알고리즘에 근거하여 스토리지 노드 정보에 근거한 확률 계수를 결정하는 단계 및 임의로 상기 적어도 두 개의 스토리지 노드를 선택하되, 스토리지 노드가 선택되는 확률은 그의 확률 계수에 의해 결정되는 단계를 포함하는 방법. 상기 방법은 데이터 및 상기 데이터에 상응하는 데이터 식별자를 상기 선택된 스토리지 노드들로 전송하는 단계를 더 수반한다.
이 방법은 스토리지 노드들이 그들의 일시적인 적성에 따라 선택되더라도, 정보는 짧은 시간 프레임 동안에 어느 정도까지는 시스템에서 확산되기 때문에 데이터의 안정적인 기입을 완수한다. 이는 스토리지 시스템의 유지가 덜 요구된다는 것을 의미한다. 왜냐하면, 같은 정보를 갖는 스토리지 노드들의 상관관계를 어느 정도까지 감소시킬 수 있기 때문이다. 이는 스토리지 노드가 오작동할 때 수행될 수 있는 복제 과정이 더 많은 수의 다른 스토리지 노드들에 의해 수행되어 결과적으로 훨씬 빨리 수행될 수 있음을 의미한다. 또한, 더 많은 스토리지 노드들이 쓰기 동작에 이용되고 보다 적은 수의 노드들이 유휴상태이기 때문에, 집중적인 쓰기 동작 중 상위 등급 스토리지 노드들의 과부하의 위험성은 감소된다.
상기 스토리지 노드 정보는 위도, 경도, 고도와 같은 각 스토리지 노드의 지리적 위치에 관련된 지리 데이터를 포함할 수 있다. 이는 상기 서버로 하여금 상기 정보를 방, 빌딩, 국가, 심지어는 전세계 안에서 지리적으로 확산하게 할 수 있다.
상기 임의로 스토리지 노드들을 선택하는 단계는 지리적 이격에 기반한 일차 기준을 충족하는 서브셋 내의 스토리지 노드들에 대해 수행되도록 할 수 있으며, 이는 가외성의 중요한 특징이기도 하다.
상기 스토리지 노드 정보는 해당 스토리지 노드에 대한 시스템 에이지 및/또는 시스템 부하를 포함할 수 있다.
상기 멀티캐스트 스토리지 질의는 저장될 데이터를 식별하는 데이터 식별자를 포함할 수 있다.
적어도 세 개의 노드가 선택될 수 있으며, 상기 데이터를 성공적으로 저장하는 스토리지 노드들의 리스트를 상기 선택된 스토리지 노드들로 전송될 수 있다.
상기 임의로 스토리지 노드들을 선택하는 과정은 상기 서브셋 내의 노드들의 일부에 대해 수행될 수 있으며, 상기 일부는 가장 높은 확률 계수들을 갖는 스토리지 노드들을 포함한다. 따라서, 가장 부적절한 스토리지 노드들은 배제되어, 기입될 정보의 임의 분산을 유지하면서도 더 신뢰성 있는 스토리지 노드들을 선택할 수 있도록 한다.
또한, 본원은 상기 방법에 상응하여 데이터 쓰기를 수행하기 위한 서버에 관한 것이다. 상기 서버는 일반적으로 상기 방법의 동작들을 수행하기 위한 수단을 포함한다.
도 1은 분산 데이터 스토리지 시스템을 도시한다.
도 2a 내지 도 2c 및 도 3은 데이터 읽기 과정을 도시한다.
도 4a 내지 도 4c 및 도 5는 데이터 쓰기 과정을 도시한다.
도 6은 다수의 파일이 다수의 데이터 스토리지 노드 중에 저장되어 있는 상황을 개략적으로 도시한다.
도 7은 심박 신호의 전송을 도시한다.
도 8은 데이터 유지 과정의 개관이다.
본 발명은 복수의 스토리지 노드를 포함하는 분산 데이터 스토리지 시스템에 관한 것이다. 상기 시스템의 구조와 그의 사용 환경이 도 1에 도시되어 있다.
사용자 컴퓨터(1)는 인터넷(3)을 통하여 서버(7)에서 실행되는 어플리케이션(5)에 접속한다. 도시된 바와 같이, 이러한 사용자 환경은 그 자체로 잘 알려져 있는 일반적인 클라이언트-서버 설정이다. 그러나, 개시되는 데이터 스토리지 시스템은 다른 설정에서도 사용될 수 있음을 주의하여야 한다.
도시된 예에서는, 두 개의 어플리케이션(5, 9)이 서버(7)에서 실행되고 있다. 하지만, 상기 어플리케이션의 개수가 달라질 수 있음은 당연하다. 각각의 어플리케이션은 어플리케이션 프로그래밍 인터페이스(Application Programming Interface, API)(11)를 가지고 있으며, 이 API는 분산 데이터 스토리지 시스템(13)과 관련하여 인터페이스를 제공하고 상기 서버에서 실행되는 어플리케이션들로부터의 요청(일반적으로 쓰기 및 읽기 요청)을 지원한다. 어플리케이션의 관점에서, 데이터 스토리지 시스템(13)으로부터 정보를 읽거나 데이터 스토리지 시스템(13)에 정보를 쓰는 것은 다른 스토리지 솔루션, 예를 들어 파일 서버나 단순한 하드 드라이브를 사용하는 경우와 비교하여 달리 보일 필요가 없다.
각각의 API(11)는 데이터 스토리지 시스템(13)내의 스토리지 노드들(15)과 통신하며, 상기 스토리지 노드들은 서로 통신한다. 이러한 통신은 전송 제어 프로토콜(Transmission Control Protocol, TCP) 및 사용자 데이터그램 프로토콜(User Datagram Protocol, UDP)에 근거하고 있다. 이러한 개념은 당업자에게는 주지의 사실이며, 더 이상의 설명은 생략하기로 한다.
동일한 서버(7)상의 서로 다른 API들(11)은 스토리지 노드들(15)의 서로 다른 집합에 접속할 수 있음을 주의하여야 한다. 또한, 각각의 노드(15)에 접속하는 서버(7)가 한 개보다 많은 수로 존재할 수 있음도 주의하여야 한다. 그러나, 이는 추후 설명되는 바와 같이 스토리지 노드들이 작동하는 방식에 영향을 미칠 정도는 아니다.
스토리지 노드들(15)에 접속하는 서버(7)에서, 상기 분산 데이터 스토리지 시스템의 구성요소는 스토리지 노드들(15) 및 API들(11)이다. 따라서, 본 발명은 서버(7) 및 스토리지 노드들(15)에서 실행되는 방법들에 관한 것이다. 이러한 방법들은 주로 소프트웨어들로 구현되며, 이 소프트웨어들은 각각 상기 서버와 스토리지 노드들에서 실행되고 전반적인 분산 데이터 스토리지 시스템의 동작 및 특성을 함께 결정한다.
스토리지 노드(15)는 일반적으로 다수의 기능 블록을 구비하고 있는 파일 서버에 의해 구현될 수 있다. 따라서, 스토리지 노드는 일반적으로 다수의 하드 드라이브로 이루어지며 선택적으로 복수 배열 독립 디스크(Redundant Array of Independent Disk, RAID) 시스템으로 구성되는 스토리지 매체(17)를 포함할 수 있다. 그러나, 다른 종류의 스토리지 매체들도 또한 사용 가능하다.
스토리지 노드(15)는 디렉토리(19)를 더 포함할 수 있으며, 상기 디렉토리는, 추후 설명되는 바와 같이, 데이터 개체/스토리지 노드 관계들의 리스트들을 호스트 리스트로서 포함한다.
호스트 리스트에 덧붙여, 각각의 스토리지 노드는 그가 속한 스토리지 노드 집합 또는 그룹의 모든 스토리지 노드들의 IP 주소들을 포함하는 노드 리스트를 더 포함한다. 그룹 내 스토리지 노드들의 개수는 수개 내지 수백 개일 수 있다. 노드 리스트는 버전 넘버를 더 포함할 수 있다.
추가적으로, 스토리지 노드(15)는 복제 블록(replication block)(21) 및 클러스터 모니터 블록(23)을 포함할 수 있다. 복제 블록(21)은 스토리지 노드 API(25)를 포함하며, 추후 자세히 설명되는 바와 같이, 복제 과정의 필요성을 식별하고 이를 수행하기 위한 기능들을 실행하도록 구성된다. 복제 과정은 추후 설명되는 읽기 및 쓰기 동작 동안에 서버(7)에 의해 실행되는 동작들에 상당할 정도로 대응되는 동작들을 포함하므로, 복제 블록(21)의 스토리지 노드 API(25)는 서버(7)의 스토리지 노드 API(11)의 코드에 상당할 정도로 대응되는 코드를 포함할 수 있다. 예를 들어, 복제 중 수행되는 쓰기 동작은 서버(7)에 의해 수행되는 쓰기 동작에 상당할 정도로 대응된다. 클러스터 모니터 블록(23)은, 추후 더 자세히 설명되는 바와 같이, 데이터 스토리지 시스템(13)내의 다른 스토리지 노드를 모니터링하도록 구성된다.
분산 데이터 시스템의 스토리지 노드들(15)은 같은 계층 수준에 존재하는 것으로 간주될 수 있다. 저장된 데이터 개체들의 디렉토리를 유지하고 데이터 일관성 등을 모니터링하기 위한 마스터 스토리지 노드를 지정할 필요는 없다. 대신, 모든 스토리지 노드들(15)은 동일하다고 간주될 수 있고, 때로는, 시스템 내의 다른 스토리지 노드들에 관하여 데이터 관리 동작을 수행할 수 있다. 이러한 동일성은 시스템의 신뢰성을 보장한다. 스토리지 노드의 오작동의 경우, 시스템내의 다른 노드들이 오작동하는 노드를 대신하여 신뢰성 있는 데이터 스토리지를 보장할 것이다.
상기 시스템의 동작은 데이터의 읽기, 데이터의 쓰기, 데이터 유지순서로 설명한다. 이러한 방법들이 함께 잘 작동하더라도, 원칙적으로는 서로 독립적으로 수행될 수 있음을 유의하여야 한다. 즉, 예를 들어, 본 발명의 데이터 쓰기 방법이 사용되지 않더라도, 데이터 읽기 방법은 훌륭한 특성을 제공할 수 있으며 그 역도 마찬가지이다.
읽기 방법을 도 2a 내지 도 2c 및 도 3을 참조하여 설명한다. 도 3은 읽기 방법을 도시하는 흐름도이다.
읽기 동작은, 상기 시스템의 다른 기능과 마찬가지로, 복수의 스토리지 노드와 동시에 통신하기 위해 멀티캐스트 통신을 이용한다. 여기서, 멀티캐스트 또는 IP 멀티캐스트는 멀티캐스트 어플리케이션을 위해 예비된 IP 주소로 메시지를 보냄으로써 수행되는 지점 대 다지점 간(point-to-multipoint) 통신을 의미한다.
예를 들어, 메시지(일반적으로 요청)는 IP 주소(예를 들어, 244.0.0.1)에 전송되며 다수의 수신 서버들은 상기 IP 주소의 가입자로 등록되어 있다. 각각의 수신 서버는 고유의 IP 주소를 갖고 있다. 네트워크의 스위치가 244.0.0.1으로 향하는 상기 메시지를 받으면, 가입자로 등록된 각각의 서버의 IP 주소로 상기 메시지를 전달한다.
원칙적으로, 하나의 서버만이 멀티캐스트 주소의 가입자로 등록될 수 있으며, 이런 경우 지점간(point-to-point) 통신이 이루어진다. 그러나, 본 개시의 맥락에서, 그럼에도 불구하고 이런 통신은 멀티캐스트 방식을 이용하기 때문에 멀티캐스트 통신으로 간주된다.
하나의 수신자와의 통신과 관련하여 유기캐스트 통신도 이용된다.
도 2a 및 도 3을 참조하면, 데이터 스토리지 시스템에서 데이터를 검색하는 방법은 복수의 스토리지 노드들(15)로 멀티캐스트 질의를 전송(31)하는 것을 포함한다. 도면에 도시된 예에서는, 각각 192.168.1.1, 192.168.1.2 등등의 인터넷 프로토콜(Internet Protocol, IP) 주소를 갖고 있는 다섯 개의 스토리지 노드가 있다. 설명할 필요 없이, 스토리지 노드의 개수는 일 예일 뿐이다. 상기 질의는 데이터 식별자 "2B9B4A97-76E5-499E-A21 A6D7932DD7927"를 포함하며 이는, 예를 들어, 그 자체로 잘 알려져 있는 범용 고유 식별자(Universally Unique Identifier, UUID)일 수 있다.
스토리지 노드들은 자신들을 검색하여 식별자에 대응하는 데이터를 찾는다. 그러한 데이터가 검색되면, 스토리지 노드는 서버(7)에 의해 수신(33)되는 응답을 전송한다 (도 2b 참조). 도시된 바와 같이, 상기 응답은 스토리지 노드가 관련 있는 데이터의 복사본을 갖고 있음을 지시하는 것 이외의 추가 정보를 선택적으로 포함할 수 있다. 구체적으로, 상기 응답은 상기 데이터를 포함하는 다른 스토리지 노드들에 관한 스토리지 노드 디렉토리로부터의 정보, 상기 데이터의 어떤 버전이 스토리지 노드에 포함되어 있는지에 관한 정보 및 스토리지 노드가 현재 어떤 부하에 노출되어 있는지에 관한 정보를 포함할 수 있다.
응답들에 근거하여, 서버는 데이터가 검색될 하나 이상의 스토리지 노드를 선택(35)하여, 데이터를 요청하는 유니캐스트 요청을 선택된 스토리지 노드(들)로 전송(37)한다 (도 2c 참조).
상기 데이터 요청에 응답하여, 데이터 스토리지 노드(들)은 관련 있는 데이터를 데이터를 수신(39)하는 서버로 유니캐스트에 의해 전송한다. 도시된 예에서는, 하나의 스토리지 노드만이 선택된다. 이로써 충분하기는 하지만, 일관성 확인을 가능하게 하는 두 개의 데이터 집합을 수신하기 위해 둘 이상의 스토리지 노드를 선택하는 것도 가능하다. 데이터 전송이 실패하면, 서버는 검색을 위한 다른 스토리지 노드를 선택할 수 있다.
스토리지 노드의 선택은 전반적으로 양호한 시스템 성능을 얻기 위해 여러 요인들을 고려하는 알고리즘에 근거할 수 있다. 일반적으로, 다른 방식도 충분히 가능하긴 하지만, 가장 최신의 데이터 버전을 갖고 있으면서 부하가 가장 적은 스토리지 노드가 선택될 것이다.
선택적으로, 상기 동작은 관여된 모든 스토리지 노드에 리스트를 전송하여 어떤 노드가 상기 데이터를 포함하며 어떤 버전을 갖고 있는지를 지시하는 서버에 의해 완료될 수 있다. 이 정보에 근거하여, 스토리지 노드들은 추후 설명되는 복제 과정에 의해 자체적으로 데이터를 적절하게 유지할 수 있다.
도 4a 내지 도 4c 및 도 5는 분산 데이터 스토리지 시스템을 위한 데이터 쓰기 과정을 도시하고 있다.
도 4a 및 도 5를 참조하면, 상기 과정은 서버가 멀티캐스트 스토리지 질의를 복수의 스토리지 노드로 전송(41)하는 것을 포함한다. 상기 스토리지 질의는 데이터 식별자를 포함하며 기본적으로 수신 스토리지 노드들이 이 파일을 저장할 수 있는지에 대한 질문으로 이루어져 있다. 선택적으로, 상기 스토리지 노드들은 자신들의 내부 디렉토리가 이 이름의 파일을 이미 갖고 있는지를 확인할 수 있으며, 이미 갖고 있는 경우에는, 서버(7)가 파일 이름을 다시 정할 수 있도록 이 사실을 서버에 통보할 수 있다.
어떤 경우이든, 스토리지 노드들의 적어도 서브셋은 서버(7)로의 유니캐스트 전송을 통해 응답을 제공한다. 일반적으로, 소정의 최소 여유 디스크 공간을 갖고 있는 스토리지 노드들은 상기 질의에 응답할 것이다. 서버(7)는 각 서버의 지리적 위치와 관련된 지리 데이터와 같은, 각 스토리지 노드의 특성과 관련된 스토리지 노드 정보를 포함하는 응답들을 수신(43)한다. 예를 들어, 도 4b에 도시된 바와 같이, 이러한 지리 데이터는 각 서버의 위도, 경도, 고도를 포함할 수 있다. 그러나, 우편 번호, 위치 문자열(즉, 건물, 방, 랙(rack) 행, 랙 열)등의 다른 종류의 지리 데이터도 가능하다.
대안적으로, 또는 지리 데이터에 추가하여, 스토리지 노드의 특성과 관련된 추가 정보를 제공하여 스토리지 노드 선택 과정의 입력으로서 기능할 수 있다. 도시된 예에서, 각 스토리지 노드의 여유 공간의 양은 스토리지 노드의 시스템 에이지(age) 지시 및 스토리지 노드가 현재 겪고 있는 부하의 지시와 함께 제공된다.
수신된 응답들에 근거하여, 서버는 데이터를 저장하기 위해 서브셋에서 적어도 두 개의, 일반적 실시예에서는 세 개의, 스토리지 노드를 선택(45)한다. 이러한 스토리지 노드의 선택은 서로 다른 데이터를 고려하는 알고리즘을 이용하여 수행된다. 상기 선택은 어느 정도의 지리적 다양성을 얻기 위해 수행될 수 있다. 적어도, 동일한 랙 내의 파일 서버들만을 스토리지 노드로서 선택하는 것은 바람직하게 피할 수 있다. 일반적으로, 서로 다른 대륙상의 스토리지 노드들을 선택하더라도 상당한 지리적 다양성을 얻을 수 있다. 지리적 다양성 외에, 다른 파라미터들도 상기 선택 알고리즘에 포함될 수 있다. 하기에 설명되는 바와 같이, 선택 과정은 무작위 특성을 갖는 것이 바람직하다.
일반적으로, 상기 선택은 지리적으로 충분이 이격된 다수의 스토리지 노드를 선택함으로써 시작될 수 있다. 이는 다양한 방식으로 수행될 수 있다. 예를 들어, 다수의 스토리지 노드 그룹을 식별하는 알고리즘을 이용하거나, 스토리지 노드에 그룹 번호를 제공하여 각 그룹에서 하나의 스토리지 노드를 선택할 수 있도록 할 수 있다.
그 다음, 상기 선택은 각 노드의 스토리지 노드 정보(시스템 에이지, 시스템 부하 등등)에 근거하여 스토리지 노드 적성 점수에 상응하는 확률 계수(probability factor)를 계산하는 것을 포함할 수 있다. 예를 들어, 오작동할 가능성이 더 적은 최신의 시스템일수록 더 높은 점수를 받는다. 상기 확률 계수는 두 벡터의 스칼라 곱으로서 계산될 수 있으며 두 벡터 중 하나는 스토리지 노드 정보 파라미터들(또는 적용가능 하다면 그들의 역)을 포함하고 다른 하나는 상응하는 가중치 파라미터들을 포함한다.
다음으로, 상기 선택은 임의로 스토리지 노드들을 선택하는 것을 포함한다. 여기서, 특정 스토리지 노드가 선택되는 확률은 그의 확률 계수에 달려있다. 일반적으로, 제1서버가 제2서버에 비해 2배 큰 확률 계수를 갖는다면, 제1서버는 선택될 확률이 2배 높다.
임의 선택을 수행하기 전 가장 낮은 확률 계수들의 일부 스토리지 노드들을 제거하여 서브셋 내의 가장 높은 확률 계수들을 갖는 일부 스토리지 노드들에 대해 임의 선택이 수행되도록 하는 것이 가능하다. 이는 선택 알고리즘 계산 시간 소모를 크게 할 수 있는 가용 스토리지 노드들이 많은 경우에 특히 유용하다.
설명할 필요 없이, 선택 과정은 다양한 방식으로 수행될 수 있다. 예를 들어, 응답하는 서브셋 내의 모든 스토리지 노드에 대한 확률 계수를 우선 계산하고, 임의 선택을 수행할 수 있다. 이 동작이 완료됐을 때, 결과적인 지리 다양성이 충분한지 확인할 수 있으며, 충분하지 않은 경우, 서브셋에서 배제된 가장 가까운 두 개의 선택된 스토리지 노드 중 하나에 대한 선택을 반복할 수 있다. 지리적 다양성에 근거하여 첫 선택을 하는 것, 예를 들어, 상기 다른 파라미터들에 근거한 차후 선택을 위한 각 그룹에서 하나의 스토리지 노드를 선택하는 것은 가용 스토리지 노드들이 많이 존재하는 경우에 특히 유용하다. 이 경우, 모든 가용 노드의 파라미터를 이용한 계산을 수행하지 않고도 양호한 선택이 이루어질 것이다.
스토리지 노드들이 선택되었을 때, 저장될 데이터 및 상응하는 데이터 식별자는 일반적으로 유니캐스트 전송을 이용하여 선택된 각 노드로 전송된다.
선택적으로, 상기 동작은 쓰기 동작을 성공적으로 수행한 각 스토리지 노드에 의해 서버에 수신 확인 통지를 전송함으로써 완료될 수 있다. 그러면, 서버는 관여된 모든 스토리지 노드에 리스트를 전송하여 어떤 노드가 데이터 쓰기를 성공적으로 완료했고 어떤 노드가 못했는지를 지시한다. 이 정보에 근거하여, 스토리지 노드들은 추후 설명되는 복제 과정에 의해 자체적으로 데이터를 적절하게 유지할 수 있다. 예를 들어, 하나의 스토리지 노드의 쓰기가 실패한 경우, 파일을 저장하는 스토리지 노드를 원하는 개수만큼 얻기 위하여 다른 하나의 스토리지 노드에 파일을 복제할 필요가 있다.
훌륭한 지리적 다양성이 제공될 수 있기 때문에, 상기 데이터 쓰기 방법은 그 자체로 서버(7)의 API로 하여금 매우 안정적인 방식으로 데이터를 저장하도록 한다.
쓰기 및 읽기 동작에 추가하여, 서버(7)의 API는 파일의 삭제 및 갱신 동작을 수행할 수 있다. 이러한 동작들은 하기의 데이터 유지 과정과 연계하여 설명하기로 한다.
데이터 유지 절차의 목적은 합당한 개수 만큼의 오작동 하지 않는 스토리지 노드들 각각이 각 파일의 최신 버전을 저장하는 것을 확실히 하는 것이다. 또한, 이는 삭제된 파일이 어느 스토리지 노드에도 저장되지 않도록 하는 기능을 제공할 수 있다. 상기 유지 절차는 스토리지 노드들 자체적으로 수행된다. 따라서, 데이터 스토리지의 유지를 책임지는 전용 “마스터”는 필요치 않다. 이러한 점은 “마스터”가 시스템의 취약점이 될 수 있기에 향상된 신뢰성을 보장한다.
도 6은 다수의 파일이 다수의 데이터 스토리지 노드 중에 저장되어 있는 상황을 개략적으로 도시한다. 도시된 예에서는, 예시적으로 12개의 노드가 192.168.1.1 내지 192.168.1.12의 연속된 IP 주소를 갖고 있다. 그러나, 설명할 필요 없이, IP 주소들이 동일 범위내에 있어야 할 필요는 없다. 상기 노드들은 단순한 설명을 위해 원형 순서로 배치된다. 즉, 노드들이 특정한 순서를 가질 필요는 없다. 각 노드는 단순성을 위해 “A” 내지 “F”의 문자로 식별되는 하나 또는 두 개의 파일을 저장한다.
도 8을 참조하면, 데이터를 유지하는 방법은 데이터 스토리지 시스템 내의 노드들 사이에서의 데이터 복제의 필요성을 시사하는 데이터 스토리지 시스템 내의 상태를 감지(51)하는 단계와 복제 과정(53)을 포함한다. 감지 과정(51)의 결과는 복제 필요성이 식별된 파일들의 리스트(55)이다. 상기 리스트는 복제의 서로 다른 필요성들의 우선순위에 관한 데이터를 더 포함할 수 있다. 이 리스트에 근거하여 복제 과정(53)이 수행된다.
분산 스토리지의 신뢰성은 각 파일의 복사본의 정확한 버전이 합당한 개수만큼 시스템에 저장되어 있는 데에 달려 있다. 도시된 예에서는, 각 파일의 세 개의 복사본이 저장된다. 그러나, 예를 들어, 주소 192.168.1.5의 스토리지 노드가 실패한다면, 파일 “B” 및 “C”에 대한 저장된 복사본의 개수는 바람직한 개수보다 부족하게 될 것이다.
따라서, 복제 필요성에 의해 야기되는 한가지 결과는 시스템 내 스토리지 노드의 오작동이다.
시스템 내의 각 스토리지 노드는 시스템 내 다른 노드들의 상태를 모니터할 수 있다. 이는, 도 7에 도시된 바와 같이, 각 스토리지 노드로 하여금 소위 심박(heartbeat) 신호를 일정 간격으로 방출하게 함으로써 수행될 수 있다. 도시된 예에서, 주소 192.168.1.7의 스토리지 노드는 시스템 내의 다른 스토리지 노드들로 멀티캐스트 신호(57)을 방출하여 자신이 정확하게 작동하고 있음을 지시한다. 이 신호는 심박 모니터링(59, 도 8 참조) 또는 그의 서브셋을 수행함으로써 시스템 내의 작동하는 다른 모든 스토리지 노드에 의해 수신될 수 있다. 그러나, 주소 192.168.1.5의 스토리지 노드의 경우, 이 노드는 오작동중이고 심박 신호를 방출하지 않는다. 따라서, 다른 스토리지 노드들은 이 노드가 오랫동안 심박 신호를 방출하지 않는 것을 알 것이고 이는 해당 스토리지 노드가 다운됐음을 지시한다.
심박 신호는 스토리지 노드의 주소외에 노드 리스트 버전 번호를 포함할 수 있다. 심박 신호를 청취하고 전송하는 스토리지 노드가 더 최근의 버전을 갖고 있음을 발견한 다른 스토리지 노드는 전송하는 스토리지 노드에게 그의 노드 리스트를 전송해줄 것을 요청할 수 있다. 이는 스토리지 노드를 단순히 추가하거나 삭제하고 새로운 노드 리스트 버전을 하나의 스토리지 노드에 전송함으로써 스토리지 노드의 추가 및 삭제를 할 수 있음을 의미한다. 이 노드 리스트는 시스템 내의 다른 모든 스토리지 노드들로 전파된다.
다시 도 8을 참조하면, 각 스토리지 노드는 오작동하는 스토리지 노드에 저장된 파일들을 내부 디렉토리에서 검색(61)한다.
파일 “B” 및 “C”를 저장한 스토리지 노드들은 오작동하는 스토리지 노드를 발견할 것이고 따라서, 해당 파일을 리스트(55)에 추가할 수 있다.
그러나, 상기 감지 과정 또한 파일 복제의 필요성을 시사하는 다른 상태들을 발견할 수 있다. 일반적으로, 이러한 상태들은 비일관적일 수 있다. 즉, 하나 또는 그 이상의 노드가 파일의 구버전을 갖는다. 삭제 동작 또한 복제 과정을 시사한다. 왜냐하면, 이 과정은 파일의 실제 물리적 삭제를 수행할 수 있기 때문이다. 서버의 삭제 동작은 스토리지 노드들이 해당 파일에 대한 삭제 플래그를 설정하는 것을 확실히 하도록 할 필요만 있다. 따라서, 각 노드는 데이터 스토리지 시스템에서 수행되는 읽기 및 쓰기 동작을 모니터할 수 있다. 서버(7)에 의해 읽기 및 쓰기 동작의 마지막에 각각 제공되는 정보는, 하나의 스토리지 노드가 파일의 구버전을 포함하고 있음을 지시하거나(읽기 동작의 경우) 또는 스토리지 노드가 쓰기 동작을 성공적으로 수행하지 못했음을 지시할 수 있다. 두 경우 모두, 유지 과정의 전반적인 목적이 충족되도록 복제에 의해 데이터를 유지하는 필요성이 존재한다.
기본적인 읽기 및 쓰기 동작(63, 65)외에, 적어도 두 개의 추가적인 과정, 즉 지금 간략히 설명하려고 하는 삭제 과정(67) 및 갱신 과정(69)이 복제의 필요성이 존재함을 지시할 수 있다.
삭제 과정은 서버(7)에 의해 개시된다 (도 1 참조). 읽기 과정과 유사하게, 어떤 스토리지 노드가 특정의 데이터 식별자를 갖는 데이터를 갖고 있는지를 발견하기 위하여 서버는 멀티캐스팅에 의해 질의를 모든 스토리지 노드로 전송한다. 스토리지 노드들은 자신들을 검색하여 관련된 식별자를 갖는 데이터를 찾고, 해당 데이터를 갖고 있다면 유니캐스트 전송에 의해 응답한다. 이 응답은 데이터를 포함하는 다른 스토리지 노드들의 리스트(스토리지 노드 디렉토리에서 전송된)를 포함할 수 있다. 그러면, 서버(7)는 파일 삭제를 요청하는 유니캐스트 요청을 파일을 저장한 것으로 판단되는 스토리지 노드들로 전송한다. 각 스토리지 노드는 파일과 관련되고 파일이 삭제되어야 함을 지시하는 플래그를 설정한다. 이 파일은 복제 리스트에 추가되고, 확인 통지를 서버로 전송한다. 그러면, 복제 과정은 하기 설명되는 바와 같이 물리적으로 파일을 삭제한다.
갱신 과정은 삭제 과정의 검색 기능과 유사한 검색 기능을 갖고 쓰기 과정에서 실행되는 쓰기 기능과 유사한 쓰기 기능을 갖는다. 어떤 스토리지 노드가 특정의 데이터 식별자를 갖는 데이터를 갖고 있는지를 발견하기 위하여 서버는 멀티캐스팅에 의해 질의를 모든 스토리지 노드로 전송한다. 스토리지 노드들은 자신들을 검색하여 관련된 식별자를 갖는 데이터를 찾고, 해당 데이터를 갖고 있다면 유니캐스트 전송에 의해 응답한다. 이 응답은 데이터를 포함하는 다른 스토리지 노드들의 리스트(스토리지 노드 디렉토리에서 전송된)를 포함할 수 있다. 그러면, 서버(7)는 유니캐스트 요청을 전송하여 스토리지 노드들로 하여금 데이터를 갱신하도록 알린다. 당연히, 이 요청은 갱신된 데이터를 포함한다. 데이터를 갱신하는 스토리지 노드들은 확인 통지를 서버에 전송하며, 서버는 성공적으로 데이터를 갱신한 스토리지 노드들과 그렇지 못한 스토리지 노드들의 리스트를 포함하는 유니캐스트 전송을 보냄으로써 응답한다. 이 리스트는 다시 유지 과정에 이용될 수 있다.
다시 도 8을 참조하면, 읽기(63), 쓰기(65), 삭제(67) 및 갱신(69) 동작은 모두 복제의 필요성이 존재함을 지시할 수 있다. 심박 모니터링(59)도 마찬가지이다. 따라서, 전반적 감지 과정(51)은 어떤 파일이 복제될 필요가 있는지에 대한 데이터를 생성한다. 예를 들어, 읽기 또는 갱신 동작은 특정의 스토리지 노드가 구버전의 파일을 포함하고 있음을 드러낼 수 있다. 삭제 과정은 특정의 파일에 대해 삭제 플래그를 설정할 수 있다. 심박 모니터링은 오작동하는 스토리지 노드에 저장된 다수의 파일이 새로운 스토리지 노드로 복제될 필요가 있음을 드러낼 수 있다.
각 스토리지 노드는 이러한 복제의 필요성을 모든 파일에 대해 모니터 하고 복제 리스트(55)를 저장하고 유지한다. 따라서, 복제 리스트(55)는 복제될 필요가 있는 다수의 파일을 포함한다. 상기 파일들은 각 복제의 우선순위에 대응하여 순서를 정할 수 있다. 일반적으로, 서로 다른 세 개의 우선순위 등급이 있을 수 있다. 가장 높은 등급은 스토리지 노드가 마지막 온라인 복사본을 갖고 있는 파일을 위해 예비된다. 합당한 수준의 가외성을 얻도록 이러한 파일은 다른 스토리지 노드들로 빨리 복제될 필요가 있다. 중간 등급의 우선순위는 스토리지 노드를 중에서 버전이 일관되지 않는 파일들과 관련될 수 있다. 하위 등급 우선순위는 오작동하는 스토리지 노드에 저장된 파일들과 관련될 수 있다.
스토리지 노드는 우선순위 등급에 따라서 복제 리스트(55)상의 파일들을 처리한다. 작동 스토리지 노드로 지칭되는 스토리지 노드에 대한 복제 과정이, 비록 모든 스토리지 노드가 이 방식으로 작동할 수 있지만, 이제 설명된다.
유지 과정의 복제부(53)는 복제하기를 원하는 파일에 대한 마스터가 되기를 시도(71)하는 작동 스토리지 노드와 함께 시작된다. 작동 스토리지 노드는 해당 파일을 저장한 것으로 알려진 다른 스토리지 노드들에 대한 마스터가 되기 위해 유니캐스트 요청을 전송한다. 디렉토리(19, 도 1 참조)는 어떤 노드에 요청할 것인지에 관련된 정보를 포함하는 호스트 리스트를 제공한다. 예를 들어, 충돌하는 요청의 경우, 스토리지 노드들 중 하나가 긍정적으로 응답을 하지 않으면, 파일은 당분간 리스트로 되돌려지며, 대신 리스트상의 다음 파일에 대해 시도가 이루어진다. 그렇지 않으면, 작동 스토리지 노드는 이 파일의 마스터로 간주되고 다른 스토리지 노드들은 작동 스토리지 노드가 해당 파일의 마스터임을 지시하는 플래그를 설정한다.
다음 단계는 분산 스토리지 시스템에서 해당 파일의 모든 복사본을 발견(73)하는 것이다. 이는 어떤 스토리지 노드가 파일을 갖고 있는 지를 질문하는 멀티캐스트 질의를 모든 스토리지 노드에 전송하여 작동 스토리지 노드에 의해 수행될 수 있다. 파일을 갖고 있는 스토리지 노드들은 그들의 호스트 리스트, 즉 각 스토리지 리스트의 디렉토리에 보관된 관련 파일을 포함하는 스토리지 노드들의 리스트뿐만 아니라 갖고 있는 파일의 버전을 포함하는 질의에 대한 응답을 제출한다. 이 호스트 리스트들은 작동 스토리지 노드에 의해 병합(75)되어 검색된 모든 호스트 리스트의 통합에 상응하여 마스터 호스트 리스트가 형성되도록 한다. 추가적인 스토리지 노드들이 발견되면, 이는 작동 스토리지 노드가 마스터가 되려고 시도할 때 요청된 것은 아니지만, 상기 단계는 추가적인 스토리지 노드들에 대해 반복되어 수행된다. 마스터 호스트 리스트는 서로 다른 스토리지 노드들이 어떤 버전의 파일을 보관하고 있는지에 관련되고 전체 스토리지 시스템내의 파일의 상태를 나타내는 정보를 포함한다.
작동 스토리지 노드가 해당 파일의 최신 버전을 갖고 있지 않으면, 이 파일은 최신 버전을 갖고 있는 스토리지 노드들 중 하나로부터 검색(77)된다.
그러면, 일반적으로 추가적 스토리지 노드들이 추가되어야 한다면, 작동 스토리지 노드는 호스트 리스트가 변경될 필요가 있는지를 결정(79)한다. 그렇다면, 작동 스토리지 노드는 서버에 의해 수행되고 도 4a 내지 도 4c 및 도 5와 관련하여 설명된 바와 같은 쓰기 과정과 유사한 과정을 수행할 수 있다. 이 과정의 결과는 파일이 새로운 스토리지 노드에 쓰여지는 것이다.
버전 불일치의 경우, 작동 스토리지 노드는 다른 스토리지 노드들에 저장된 파일의 복사본들을 갱신(81)하여 저장된 모든 파일들이 정확한 버전을 갖게 할 수 있다.
저장된 파일의 불필요한 복사본들은 삭제(83)될 수 있다. 복제 과정이 삭제 동작에 의해 개시되면, 이 과정은 이 단계로 바로 건너뛸 수 있다. 그러면, 모든 스토리지 노드가 파일의 삭제를 수락하자마자, 작동 스토리지 노드는, 유니캐스트를 이용하여, 모든 스토리지 노드에게 해당 파일을 물리적으로 삭제할 것을 단순히 요청한다. 스토리지 노드들은 파일이 삭제됐음을 확인 통지한다.
또한, 상기 상태, 즉 파일의 마스터 호스트 리스트는 갱신된다. 그러면, 복제 필요성이 더 이상 존재하지 않음을 확인하기 위하여 단계(73) 내지 단계(83)을 반복하는 것이 선택적으로 가능한다. 이러한 반복은 단계(85)에서 갱신될 필요가 없는 일관된 마스터 호스트 리스트를 유발하여야 한다.
이후, 상기 파일에 대한 복제 과정은 완료되고, 작동 스토리지 노드는 호스트 리스트상의 다른 모든 스토리지 노드에 해당 메시지를 전송함으로써 파일의 마스터로서의 지위를 해제(87)할 수 있다.
스토리지 노드들의 집합을 통틀어 각각의 스토리지 노드가 각자 저장된 파일의 유지를 책임지는 이 시스템은 자체 수리(스토리지 노드 오작동의 경우), 자체 교정(파일 불일치 또는 삭제될 파일의 경우) 기능을 갖는 우수한 신뢰성의 시스템을 제공한다. 이 시스템은 확장이 용이하고 많은 수의 서로 다른 어플리케이션을 위한 파일들을 동시에 저장할 수 있다.
본 발명은 개시된 특정의 예들로 한정되지 않고 첨부된 청구항의 범위에서 서로 다른 방식으로 변경 및 개조될 수 있다.

Claims (14)

  1. 복수의 데이터 스토리지 노드들을 포함하는 데이터 스토리지 시스템에 데이터를 기입하고 상기 데이터 스토리지 시스템 내의 데이터에 접속하는 어플리케이션을 실행하는 서버에서 이용되는 방법에 있어서,
    - 멀티캐스트 스토리지 질의를 상기 복수의 스토리지 노드들로 전송하는 단계(41);
    - 각 스토리지 노드에 관련된 스토리지 노드 정보를 포함하는 복수의 응답들을 상기 스토리지 노드들의 서브셋으로부터 수신하는 단계(43)로서, 상기 스토리지 노드 정보는 각각의 스토리지 노드의 지리적 위치와 관련되어 있는 단계;
    - 상기 응답들에 근거하여 상기 서브셋 내의 적어도 두 개의 스토리지 노드를 선택하는 단계(45)로서, 지리적으로 이격되어 있는 복수의 스토리지 노드를 선택하는 단계; 및
    - 데이터 및 상기 데이터에 상응하는 데이터 식별자를 상기 선택된 스토리지 노드들로 전송하는 단계(47)를 포함하며,
    상기 선택 단계는
    -- 상기 서브셋 내의 지리적으로 이격되어 있는 각각의 스토리지 노드에 대해 알고리즘에 근거하여 스토리지 노드 정보에 근거한 확률 계수를 결정하는 단계,
    -- 지리적으로 이격된 상기 스토리지 노드의 서브셋으로부터 가장 낮은 확률 계수를 가지는 일부 스토리지 노드를 제거하는 단계, 그리고
    -- 임의로 상기 적어도 두 개의 스토리지 노드를 선택하되, 스토리지 노드가 선택되는 확률은 그의 확률 계수에 의해 결정되는 단계를 포함하는 방법.
  2. 제1항에 있어서, 상기 지리적 위치는 해당 스토리지 노드의 위도 및 경도를 포함하는 방법.
  3. 제1항에 있어서, 상기 스토리지 노드 정보는 해당 스토리지 노드에 대한 시스템 에이지를 포함하는 방법.
  4. 제1항에 있어서, 상기 스토리지 노드 정보는 해당 스토리지 노드에 대한 시스템 부하를 포함하는 방법.
  5. 제1항에 있어서, 상기 멀티캐스트 스토리지 질의는 저장될 데이터를 식별하는 데이터 식별자를 포함하는 방법.
  6. 제1항에 있어서, 적어도 세 개의 노드가 선택되는 방법.
  7. 제1항에 있어서, 상기 데이터를 성공적으로 저장하는 스토리지 노드들의 리스트를 상기 선택된 스토리지 노드들로 전송하는 방법.
  8. 복수의 데이터 스토리지 노드들을 포함하는 데이터 스토리지 시스템에 데이터를 기입하도록 구성된 서버에 있어서,
    - 멀티캐스트 스토리지 질의를 상기 복수의 스토리지 노드들로 전송하기 위한 수단;
    - 각 스토리지 노드에 관련된 스토리지 노드 정보를 포함하는 복수의 응답들을 상기 스토리지 노드들의 서브셋으로부터 수신하기 위한 수단으로서, 상기 스토리지 노드 정보는 각각의 스토리지 노드의 지리적 위치와 관련되어 있는 지리적 데이터를 포함하는 수단;
    - 상기 응답들에 근거하여 상기 서브셋 내의 적어도 두 개의 스토리지 노드를 선택하기 위한 수단으로서, 지리적으로 이격되어 있는 복수의 스토리지 노드를 선택하는 수단; 및
    - 데이터 및 상기 데이터에 상응하는 데이터 식별자를 상기 선택된 스토리지 노드들로 전송하기 위한 수단을 포함하며,
    상기 선택은
    -- 상기 서브셋 내의 지리적으로 이격되어 있는 각각의 스토리지 노드에 대해 알고리즘에 근거하여 스토리지 노드 정보에 근거한 확률 계수를 결정하는 단계,
    -- 지리적으로 이격된 상기 스토리지 노드의 서브셋으로부터 가장 낮은 확률 계수를 가지는 일부 스토리지 노드를 제거하는 단계, 그리고
    -- 임의로 상기 적어도 두 개의 스토리지 노드를 선택하되, 스토리지 노드가 선택되는 확률은 그의 확률 계수에 의해 결정되는 단계를 포함하는 서버.
  9. 제8항에 있어서, 상기 지리적 위치는 해당 스토리지 노드의 위도 및 경도를 포함하는 서버.
  10. 제8항에 있어서, 상기 스토리지 노드 정보는 해당 스토리지 노드에 대한 시스템 에이지를 포함하는 서버.
  11. 제8항에 있어서, 상기 스토리지 노드 정보는 해당 스토리지 노드에 대한 시스템 부하를 포함하는 서버.
  12. 제8항에 있어서, 상기 멀티캐스트 스토리지 질의는 저장될 데이터를 식별하는 데이터 식별자를 포함하는 서버.
  13. 제8항에 있어서, 적어도 세 개의 노드가 선택되는 서버.
  14. 제8항에 있어서, 상기 데이터를 성공적으로 저장하는 스토리지 노드들의 리스트를 상기 선택된 스토리지 노드들로 전송하는 서버.
KR1020127030479A 2010-04-23 2011-04-20 분산 데이터 스토리지 KR101905198B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10160910.5A EP2387200B1 (en) 2010-04-23 2010-04-23 Distributed data storage
EP10160910.5 2010-04-23
PCT/EP2011/056317 WO2011131717A1 (en) 2010-04-23 2011-04-20 Distributed data storage

Publications (2)

Publication Number Publication Date
KR20130115983A KR20130115983A (ko) 2013-10-22
KR101905198B1 true KR101905198B1 (ko) 2018-10-05

Family

ID=42342003

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127030479A KR101905198B1 (ko) 2010-04-23 2011-04-20 분산 데이터 스토리지

Country Status (13)

Country Link
US (3) US8850019B2 (ko)
EP (2) EP2712149B1 (ko)
JP (1) JP5612195B2 (ko)
KR (1) KR101905198B1 (ko)
CN (1) CN102939740B (ko)
AU (1) AU2011244345B2 (ko)
BR (1) BR112012027012A2 (ko)
CA (1) CA2797053C (ko)
EA (1) EA026842B1 (ko)
IL (1) IL222630A (ko)
MX (1) MX2012012198A (ko)
WO (1) WO2011131717A1 (ko)
ZA (1) ZA201208755B (ko)

Families Citing this family (37)

* 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
EP2712149B1 (en) 2010-04-23 2019-10-30 Compuverde AB Distributed data storage
US9137331B2 (en) * 2011-07-15 2015-09-15 Metalogix International Gmbh Adaptive replication
US9385874B2 (en) 2013-01-23 2016-07-05 Nexenta Systems, Inc. Scalable transport with client-consensus rendezvous
US9626378B2 (en) 2011-09-02 2017-04-18 Compuverde Ab Method for handling requests in a storage system and a storage node for a storage system
US8997124B2 (en) 2011-09-02 2015-03-31 Compuverde Ab Method for updating data in a distributed data storage system
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
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
US8645978B2 (en) 2011-09-02 2014-02-04 Compuverde Ab Method for data maintenance
US8769138B2 (en) 2011-09-02 2014-07-01 Compuverde Ab Method for data retrieval from a distributed data storage system
CN103019614B (zh) 2011-09-23 2015-11-25 阿里巴巴集团控股有限公司 分布式存储系统管理装置及方法
US9203625B2 (en) * 2011-11-28 2015-12-01 Cleversafe, Inc. Transferring encoded data slices in a distributed storage network
US10558592B2 (en) 2011-11-28 2020-02-11 Pure Storage, Inc. Priority level adaptation in a dispersed storage network
US11474958B1 (en) 2011-11-28 2022-10-18 Pure Storage, Inc. Generating and queuing system messages with priorities in a storage network
CN102546782B (zh) * 2011-12-28 2015-04-29 北京奇虎科技有限公司 一种分布式系统及其数据操作方法
CN102646127A (zh) * 2012-02-29 2012-08-22 浪潮(北京)电子信息产业有限公司 分布式文件系统副本选择方法和装置
CN102638567B (zh) * 2012-03-02 2015-05-20 深圳市朗科科技股份有限公司 多应用云存储平台和云存储终端
US20180336097A1 (en) * 2012-06-25 2018-11-22 International Business Machines Corporation Namespace affinity and failover for processing units in a dispersed storage network
CN103514212B (zh) * 2012-06-27 2016-04-27 腾讯科技(深圳)有限公司 数据写入方法及系统
US10547693B2 (en) * 2012-09-07 2020-01-28 Avigilon Corporation Security device capability discovery and device selection
CN103064635B (zh) * 2012-12-19 2016-08-24 华为技术有限公司 分布式存储方法和分布式存储装置
CN103902568B (zh) * 2012-12-27 2017-05-31 中国银联股份有限公司 一种基于数据划分的多节点数据库同步方法和多节点数据库系统
US9479587B2 (en) 2013-01-23 2016-10-25 Nexenta Systems, Inc. Scalable object storage using multicast transport
CN103207897B (zh) * 2013-03-15 2016-08-17 北京京东世纪贸易有限公司 一种分布式存储查询系统及其运行方法和运行装置
CN104636327A (zh) * 2013-11-06 2015-05-20 上海语镜汽车信息技术有限公司 一种基于增量计算的分布式流式数据系统
US20150169609A1 (en) * 2013-12-06 2015-06-18 Zaius, Inc. System and method for load balancing in a data storage system
US10185730B2 (en) * 2014-12-31 2019-01-22 Nexenta Systems, Inc. Methods and systems for key-value-tuple-encoded storage
US10523241B2 (en) * 2015-05-29 2019-12-31 Pure Storage, Inc. Object fan out write operation
US10601683B1 (en) * 2016-12-19 2020-03-24 Amazon Technologies, Inc. Availability of a distributed application using diversity scores
US10209901B2 (en) 2017-01-04 2019-02-19 Walmart Apollo, Llc Systems and methods for distributive data storage
JP6990055B2 (ja) * 2017-07-12 2022-01-12 株式会社日立製作所 分散コンピューティングシステムにおけるデータをリカバリする方法およびシステム
CN108429813B (zh) * 2018-03-22 2021-04-06 深圳市网心科技有限公司 云存储服务的容灾方法、系统及终端
RU2697961C1 (ru) * 2018-03-30 2019-08-21 Акционерное общество "Лаборатория Касперского" Система и способ оценки деградации устройства хранения данных и обеспечения сохранности наиболее важных данных
CN108681485A (zh) * 2018-04-27 2018-10-19 佛山市日日圣科技有限公司 一种接收信息的处理方法及处理装置
CN110162270B (zh) * 2019-04-29 2020-08-25 平安国际智慧城市科技股份有限公司 基于分布式存储系统的数据存储方法、存储节点及介质
CN110515916B (zh) * 2019-07-26 2022-12-23 济南浪潮数据技术有限公司 一种主从分布式文件处理方法、主节点、从节点及系统
CN110865987A (zh) * 2019-11-18 2020-03-06 杭州安恒信息技术股份有限公司 一种文件同步方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060080574A1 (en) * 2004-10-08 2006-04-13 Yasushi Saito Redundant data storage reconfiguration
US20070288638A1 (en) * 2006-04-03 2007-12-13 British Columbia, University Of Methods and distributed systems for data location and delivery
US20080043634A1 (en) * 2004-05-18 2008-02-21 Fang Wang Peer-To-Peer Networks
US20080077635A1 (en) * 2006-09-22 2008-03-27 Digital Bazaar, Inc. Highly Available Clustered Storage Network
US20080198752A1 (en) * 2006-03-31 2008-08-21 International Business Machines Corporation Data replica selector

Family Cites Families (214)

* 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
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
US6055543A (en) 1997-11-21 2000-04-25 Verano File wrapper containing cataloging information for content searching across multiple platforms
ATE223595T1 (de) 1998-01-23 2002-09-15 Emc Corp Einkapselung, datendarstellung und übertragung von inhaltsaddressierbaren daten
JPH11249874A (ja) 1998-02-27 1999-09-17 Toshiba Corp コンピュータシステム、同システムにおける同期処理方法および記録媒体
US6510162B1 (en) 1998-05-27 2003-01-21 3Com Corporation System and method for managing channel usage in a data over cable system
JP4146983B2 (ja) 1999-02-26 2008-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ・オブジェクトのメソッドを呼び出すプロセス方法及びデータ処理システム
WO2000052889A1 (en) 1999-03-05 2000-09-08 Allayer Technologies 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
US6952737B1 (en) 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
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
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
US7039694B2 (en) 2000-05-02 2006-05-02 Sun Microsystems, Inc. Cluster membership monitor
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
US7406484B1 (en) 2000-09-12 2008-07-29 Tbrix, Inc. Storage allocation in a distributed segmented file system
US20040236798A1 (en) 2001-09-11 2004-11-25 Sudhir Srinivasan Migration of control 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
DE60131900T2 (de) 2000-10-26 2008-12-04 Flood, James C. jun., Portland Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten
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
WO2002044835A2 (en) 2000-11-28 2002-06-06 Gingerich Gregory L 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
WO2002052097A1 (de) 2000-12-27 2002-07-04 BSH Bosch und Siemens Hausgeräte GmbH Verfahren und vorrichtung zum glätten von kleidungsstücken
US7266556B1 (en) * 2000-12-29 2007-09-04 Intel Corporation Failover architecture for a distributed storage system
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
WO2002065329A1 (en) 2001-02-14 2002-08-22 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
US7975016B2 (en) 2001-10-29 2011-07-05 Oracle America, Inc. Method to manage high availability equipments
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 株式会社アンソナ ストレージシステムおよびストレージ装置
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
US6732171B2 (en) 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization
US7574488B2 (en) 2002-05-31 2009-08-11 Hitachi, Ltd. Method and apparatus for peer-to-peer file sharing
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 株式会社日立製作所 複数ネットワークストレージの仮送想一元化方法及び装置
DE10237875A1 (de) 2002-08-19 2004-03-04 Siemens Ag Vorrichtung, insbesondere Automatisierungsgerät, mit in Datei gespeicherter Dateiverzeichnisstruktur
CA2497825A1 (en) 2002-09-10 2004-03-25 Exagrid Systems, Inc. Method and apparatus for server share migration and server recovery using hierarchical storage management
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
US7509645B2 (en) 2002-10-17 2009-03-24 Intel Corporation Methods and apparatus for load balancing storage nodes in a distributed network attached storage system
WO2004040846A2 (en) 2002-10-29 2004-05-13 British Telecommunications Public Limited Company Method and apparatus for network management
US7945669B2 (en) * 2002-10-30 2011-05-17 Emc Corporation Method and apparatus for provisioning storage resources
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
CN100578493C (zh) * 2003-07-16 2010-01-06 乔蒂德有限公司 分布式数据库系统
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
US7340510B1 (en) 2003-11-18 2008-03-04 Cisco Technology, Inc. Content delivery network (CDN) replication status reporter
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
US7490089B1 (en) 2004-06-01 2009-02-10 Sanbolic, Inc. Methods and apparatus facilitating access to shared storage among multiple computers
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
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
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
CN101305350A (zh) 2005-06-09 2008-11-12 惠而浦公司 与家用电器内的至少一个部件通信以及对其进行管理的软件体系系统和方法
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
WO2007014296A2 (en) 2005-07-25 2007-02-01 Parascale, Inc. Scalable distributed file storage access and management
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
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
US20070028291A1 (en) 2005-07-29 2007-02-01 Bit 9, Inc. Parametric content control in a network security system
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
US20090043922A1 (en) 2005-11-04 2009-02-12 David Aaron Crowther Method and Apparatus for Managing Media Storage Devices
EP1961158B1 (en) 2005-11-23 2013-05-15 EnvisionIT LLC Message broadcasting admission control system and method
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
US8589574B1 (en) 2005-12-29 2013-11-19 Amazon Technologies, Inc. Dynamic application instance discovery and state management within a distributed system
US7546484B2 (en) 2006-02-08 2009-06-09 Microsoft Corporation Managing backup solutions with light-weight storage nodes
US7623474B2 (en) 2006-02-14 2009-11-24 Cisco Technology, Inc. Techniques for distributing information using multicast subsets
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
US7979771B2 (en) 2006-04-04 2011-07-12 Permabit Technology Corporation Erasure coding technique for scalable and fault tolerant storage system
US20080126357A1 (en) * 2006-05-04 2008-05-29 Wambo, Inc. Distributed file storage and transmission system
US8255420B2 (en) 2006-05-23 2012-08-28 Noryan Holding Corporation Distributed storage
KR101366220B1 (ko) 2006-05-23 2014-02-21 노리안 홀딩 코포레이션 분산형 저장소
US8117155B2 (en) 2006-06-30 2012-02-14 Microsoft Corporation Collection-based object replication
US7546486B2 (en) 2006-08-28 2009-06-09 Bycast Inc. Scalable distributed object management in a distributed fixed content storage system
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
DE602007010040D1 (de) 2007-02-22 2010-12-02 Ericsson Telefon Ab L M Overlay-Netzwerk mit einheitlicher und fehlertoleranter verteilter Hash-Tabelle (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
WO2009032712A2 (en) 2007-08-29 2009-03-12 Nirvanix, Inc. Method and system for moving requested files from one storage location to another
US8156117B2 (en) 2007-09-03 2012-04-10 Obschestvo S Ogranichennoi Otvetstvennostiyu “Meralabs” Method and system for storing, searching and retrieving information based on semistructured and de-centralized data sets
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
US8533256B2 (en) 2007-10-09 2013-09-10 Cleversafe, Inc. Object interface to a dispersed data storage network
US7979662B2 (en) 2007-12-28 2011-07-12 Sandisk Il Ltd. Storage device with transaction indexing capability
US7913030B2 (en) 2007-12-28 2011-03-22 Sandisk Il Ltd. Storage device with transaction logging 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> 分散格納方法、分散格納システム及び分散格納装置
TWI476610B (zh) 2008-04-29 2015-03-11 Maxiscale Inc 同級間冗餘檔案伺服器系統及方法
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
US9390102B2 (en) 2008-09-29 2016-07-12 Oracle International Corporation Client application program interface for network-attached storage system
JP5557840B2 (ja) * 2008-10-03 2014-07-23 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 分散データベースの監視メカニズム
WO2010045109A1 (en) 2008-10-17 2010-04-22 Azuki Systems, Inc. Method and apparatus for efficient http data streaming
US8347386B2 (en) 2008-10-21 2013-01-01 Lookout, Inc. System and method for server-coupled malware prevention
US9781148B2 (en) 2008-10-21 2017-10-03 Lookout, Inc. Methods and systems for sharing risk responses between collections of mobile communications devices
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
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
US8533151B2 (en) 2009-05-26 2013-09-10 Microsoft Corporation Generating a local copy of a virtualized application package from a local installation
US8165122B2 (en) 2009-05-26 2012-04-24 Alcatel Lucent System and method for converting unicast client requests into multicast client requests
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
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
CN102640125B (zh) * 2009-09-21 2015-07-08 高通股份有限公司 分布式内容存储和取回
US8745342B2 (en) * 2009-09-24 2014-06-03 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
US8683119B2 (en) 2010-03-15 2014-03-25 Cleversafe, Inc. Access control 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
EP2712149B1 (en) 2010-04-23 2019-10-30 Compuverde AB Distributed data storage
US9357328B1 (en) 2010-06-15 2016-05-31 Thales Avionics, Inc. Systems and methods for distributing content using attributes
WO2011161849A1 (ja) 2010-06-22 2011-12-29 株式会社ソニー・コンピュータエンタテインメント 情報処理装置
CN101909058B (zh) 2010-07-30 2013-01-16 天维讯达无线电设备检测(北京)有限责任公司 一种适合可信连接架构的平台鉴别策略管理方法及系统
GB2544888A (en) 2010-09-08 2017-05-31 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
US8660986B2 (en) 2010-10-27 2014-02-25 Microsoft Corporation Preserving user intent in merging ordered objects
CN106055930A (zh) 2010-11-05 2016-10-26 交互数字专利控股公司 设备检验和遇险指示
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
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080043634A1 (en) * 2004-05-18 2008-02-21 Fang Wang Peer-To-Peer Networks
US20060080574A1 (en) * 2004-10-08 2006-04-13 Yasushi Saito Redundant data storage reconfiguration
US20080198752A1 (en) * 2006-03-31 2008-08-21 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
US20080077635A1 (en) * 2006-09-22 2008-03-27 Digital Bazaar, Inc. Highly Available Clustered Storage Network

Also Published As

Publication number Publication date
US20170048321A1 (en) 2017-02-16
EP2712149A3 (en) 2014-05-14
EP2387200A1 (en) 2011-11-16
CN102939740B (zh) 2016-08-03
US9503524B2 (en) 2016-11-22
EA201291023A1 (ru) 2013-05-30
EA026842B1 (ru) 2017-05-31
US8850019B2 (en) 2014-09-30
KR20130115983A (ko) 2013-10-22
US20120084383A1 (en) 2012-04-05
EP2712149A2 (en) 2014-03-26
WO2011131717A1 (en) 2011-10-27
US9948716B2 (en) 2018-04-17
AU2011244345A1 (en) 2012-11-08
EP2712149B1 (en) 2019-10-30
IL222630A (en) 2017-05-29
CA2797053C (en) 2016-05-31
US20140379845A1 (en) 2014-12-25
CA2797053A1 (en) 2011-10-27
AU2011244345B2 (en) 2015-01-15
JP2013525895A (ja) 2013-06-20
JP5612195B2 (ja) 2014-10-22
ZA201208755B (en) 2014-01-29
CN102939740A (zh) 2013-02-20
EP2387200B1 (en) 2014-02-12
IL222630A0 (en) 2012-12-31
BR112012027012A2 (pt) 2016-09-13
MX2012012198A (es) 2013-03-12

Similar Documents

Publication Publication Date Title
KR101905198B1 (ko) 분산 데이터 스토리지
US11468088B2 (en) Selection of storage nodes for storage of data
US9021053B2 (en) Method and device for writing data to a data storage system comprising a plurality of data storage nodes

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right