KR101905198B1 - 분산 데이터 스토리지 - Google Patents
분산 데이터 스토리지 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
- G06F16/1844—Management specifically adapted to replicated file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1845—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast broadcast or multicast in a specific location, e.g. geocast
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2094—Redundant storage or storage space
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Abstract
본 발명은 복수의 스토리지 노드를 포함하는 분산 데이터 스토리지 시스템에 관한 것이다. 유니캐스트 및 멀티캐스트 전송을 이용하여 서버 어플리케이션은 스토리지 시스템에 데이터를 기입할 수 있다. 데이터를 기입할 시, 무작위 함수에 부분적으로 근거하여 적어도 두 개의 스토리지 노드를 선택한다. 이는 데이터가 충분히 전파되는 것을 보장하여 스토리지 노드 오작동의 경우에 효율적이고 신뢰성 있는 데이터의 복제를 제공한다.
Description
본 발명은 복수의 데이터 스토리지 노드를 포함하는 데이터 스토리지 시스템의 서버에 적용되어 상기 시스템에 데이터를 기입하는 방법에 관한 것이다. 본 발명은 또한 상기 방법을 실행할 수 있는 서버에 관한 것이다.
예를 들어 미국 특허 공개 공보 US 2005/0246393 A1은 상기한 바와 같은 방법을 개시하고 있다. 이 방법은 지리적으로 다른 장소에 있는 복수의 스토리지 센터를 사용하는 시스템에 대한 것이다. 저장된 데이터에 관한 정보를 유지하기 위해 분산 객체 스토리지 매니저들이 포함된다.
이러한 시스템에 관한 쟁점 중 하나는 어떻게 하면 데이터의 유지뿐만 아니라 기입을 단순하면서도 확실하고 신뢰성 있게 수행할 수 있는가에 있다.
본 발명의 목적은 분산 스토리지 시스템에서 신뢰성 있는 데이터의 기입을 구현하는 데에 있다.
이 목적은 데이터 스토리지 시스템 내의 데이터에 접속하는 어플리케이션을 실행하는 서버에서 구현되는 최초 언급된 종류의 상기 데이터 스토리지 시스템에 데이터를 기입하기 위한 방법에 의해 달성된다. 상기 방법은 멀티캐스트 스토리지 질의를 상기 복수의 스토리지 노드들로 전송하는 단계, 각 스토리지 노드에 관련된 스토리지 노드 정보를 포함하는 복수의 응답들을 상기 스토리지 노드들의 서브셋으로부터 수신하는 단계 및 상기 응답들에 근거하여 상기 서브셋 내의 적어도 두 개의 스토리지 노드를 선택하는 단계를 포함한다. 상기 선택 단계는 상기 서브셋 내의 각각의 스토리지 노드에 대해 알고리즘에 근거하여 스토리지 노드 정보에 근거한 확률 계수를 결정하는 단계 및 임의로 상기 적어도 두 개의 스토리지 노드를 선택하되, 스토리지 노드가 선택되는 확률은 그의 확률 계수에 의해 결정되는 단계를 포함하는 방법. 상기 방법은 데이터 및 상기 데이터에 상응하는 데이터 식별자를 상기 선택된 스토리지 노드들로 전송하는 단계를 더 수반한다.
이 방법은 스토리지 노드들이 그들의 일시적인 적성에 따라 선택되더라도, 정보는 짧은 시간 프레임 동안에 어느 정도까지는 시스템에서 확산되기 때문에 데이터의 안정적인 기입을 완수한다. 이는 스토리지 시스템의 유지가 덜 요구된다는 것을 의미한다. 왜냐하면, 같은 정보를 갖는 스토리지 노드들의 상관관계를 어느 정도까지 감소시킬 수 있기 때문이다. 이는 스토리지 노드가 오작동할 때 수행될 수 있는 복제 과정이 더 많은 수의 다른 스토리지 노드들에 의해 수행되어 결과적으로 훨씬 빨리 수행될 수 있음을 의미한다. 또한, 더 많은 스토리지 노드들이 쓰기 동작에 이용되고 보다 적은 수의 노드들이 유휴상태이기 때문에, 집중적인 쓰기 동작 중 상위 등급 스토리지 노드들의 과부하의 위험성은 감소된다.
상기 스토리지 노드 정보는 위도, 경도, 고도와 같은 각 스토리지 노드의 지리적 위치에 관련된 지리 데이터를 포함할 수 있다. 이는 상기 서버로 하여금 상기 정보를 방, 빌딩, 국가, 심지어는 전세계 안에서 지리적으로 확산하게 할 수 있다.
상기 임의로 스토리지 노드들을 선택하는 단계는 지리적 이격에 기반한 일차 기준을 충족하는 서브셋 내의 스토리지 노드들에 대해 수행되도록 할 수 있으며, 이는 가외성의 중요한 특징이기도 하다.
상기 스토리지 노드 정보는 해당 스토리지 노드에 대한 시스템 에이지 및/또는 시스템 부하를 포함할 수 있다.
상기 멀티캐스트 스토리지 질의는 저장될 데이터를 식별하는 데이터 식별자를 포함할 수 있다.
적어도 세 개의 노드가 선택될 수 있으며, 상기 데이터를 성공적으로 저장하는 스토리지 노드들의 리스트를 상기 선택된 스토리지 노드들로 전송될 수 있다.
상기 임의로 스토리지 노드들을 선택하는 과정은 상기 서브셋 내의 노드들의 일부에 대해 수행될 수 있으며, 상기 일부는 가장 높은 확률 계수들을 갖는 스토리지 노드들을 포함한다. 따라서, 가장 부적절한 스토리지 노드들은 배제되어, 기입될 정보의 임의 분산을 유지하면서도 더 신뢰성 있는 스토리지 노드들을 선택할 수 있도록 한다.
또한, 본원은 상기 방법에 상응하여 데이터 쓰기를 수행하기 위한 서버에 관한 것이다. 상기 서버는 일반적으로 상기 방법의 동작들을 수행하기 위한 수단을 포함한다.
도 1은 분산 데이터 스토리지 시스템을 도시한다.
도 2a 내지 도 2c 및 도 3은 데이터 읽기 과정을 도시한다.
도 4a 내지 도 4c 및 도 5는 데이터 쓰기 과정을 도시한다.
도 6은 다수의 파일이 다수의 데이터 스토리지 노드 중에 저장되어 있는 상황을 개략적으로 도시한다.
도 7은 심박 신호의 전송을 도시한다.
도 8은 데이터 유지 과정의 개관이다.
도 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)
- 복수의 데이터 스토리지 노드들을 포함하는 데이터 스토리지 시스템에 데이터를 기입하고 상기 데이터 스토리지 시스템 내의 데이터에 접속하는 어플리케이션을 실행하는 서버에서 이용되는 방법에 있어서,
- 멀티캐스트 스토리지 질의를 상기 복수의 스토리지 노드들로 전송하는 단계(41);
- 각 스토리지 노드에 관련된 스토리지 노드 정보를 포함하는 복수의 응답들을 상기 스토리지 노드들의 서브셋으로부터 수신하는 단계(43)로서, 상기 스토리지 노드 정보는 각각의 스토리지 노드의 지리적 위치와 관련되어 있는 단계;
- 상기 응답들에 근거하여 상기 서브셋 내의 적어도 두 개의 스토리지 노드를 선택하는 단계(45)로서, 지리적으로 이격되어 있는 복수의 스토리지 노드를 선택하는 단계; 및
- 데이터 및 상기 데이터에 상응하는 데이터 식별자를 상기 선택된 스토리지 노드들로 전송하는 단계(47)를 포함하며,
상기 선택 단계는
-- 상기 서브셋 내의 지리적으로 이격되어 있는 각각의 스토리지 노드에 대해 알고리즘에 근거하여 스토리지 노드 정보에 근거한 확률 계수를 결정하는 단계,
-- 지리적으로 이격된 상기 스토리지 노드의 서브셋으로부터 가장 낮은 확률 계수를 가지는 일부 스토리지 노드를 제거하는 단계, 그리고
-- 임의로 상기 적어도 두 개의 스토리지 노드를 선택하되, 스토리지 노드가 선택되는 확률은 그의 확률 계수에 의해 결정되는 단계를 포함하는 방법. - 제1항에 있어서, 상기 지리적 위치는 해당 스토리지 노드의 위도 및 경도를 포함하는 방법.
- 제1항에 있어서, 상기 스토리지 노드 정보는 해당 스토리지 노드에 대한 시스템 에이지를 포함하는 방법.
- 제1항에 있어서, 상기 스토리지 노드 정보는 해당 스토리지 노드에 대한 시스템 부하를 포함하는 방법.
- 제1항에 있어서, 상기 멀티캐스트 스토리지 질의는 저장될 데이터를 식별하는 데이터 식별자를 포함하는 방법.
- 제1항에 있어서, 적어도 세 개의 노드가 선택되는 방법.
- 제1항에 있어서, 상기 데이터를 성공적으로 저장하는 스토리지 노드들의 리스트를 상기 선택된 스토리지 노드들로 전송하는 방법.
- 복수의 데이터 스토리지 노드들을 포함하는 데이터 스토리지 시스템에 데이터를 기입하도록 구성된 서버에 있어서,
- 멀티캐스트 스토리지 질의를 상기 복수의 스토리지 노드들로 전송하기 위한 수단;
- 각 스토리지 노드에 관련된 스토리지 노드 정보를 포함하는 복수의 응답들을 상기 스토리지 노드들의 서브셋으로부터 수신하기 위한 수단으로서, 상기 스토리지 노드 정보는 각각의 스토리지 노드의 지리적 위치와 관련되어 있는 지리적 데이터를 포함하는 수단;
- 상기 응답들에 근거하여 상기 서브셋 내의 적어도 두 개의 스토리지 노드를 선택하기 위한 수단으로서, 지리적으로 이격되어 있는 복수의 스토리지 노드를 선택하는 수단; 및
- 데이터 및 상기 데이터에 상응하는 데이터 식별자를 상기 선택된 스토리지 노드들로 전송하기 위한 수단을 포함하며,
상기 선택은
-- 상기 서브셋 내의 지리적으로 이격되어 있는 각각의 스토리지 노드에 대해 알고리즘에 근거하여 스토리지 노드 정보에 근거한 확률 계수를 결정하는 단계,
-- 지리적으로 이격된 상기 스토리지 노드의 서브셋으로부터 가장 낮은 확률 계수를 가지는 일부 스토리지 노드를 제거하는 단계, 그리고
-- 임의로 상기 적어도 두 개의 스토리지 노드를 선택하되, 스토리지 노드가 선택되는 확률은 그의 확률 계수에 의해 결정되는 단계를 포함하는 서버. - 제8항에 있어서, 상기 지리적 위치는 해당 스토리지 노드의 위도 및 경도를 포함하는 서버.
- 제8항에 있어서, 상기 스토리지 노드 정보는 해당 스토리지 노드에 대한 시스템 에이지를 포함하는 서버.
- 제8항에 있어서, 상기 스토리지 노드 정보는 해당 스토리지 노드에 대한 시스템 부하를 포함하는 서버.
- 제8항에 있어서, 상기 멀티캐스트 스토리지 질의는 저장될 데이터를 식별하는 데이터 식별자를 포함하는 서버.
- 제8항에 있어서, 적어도 세 개의 노드가 선택되는 서버.
- 제8항에 있어서, 상기 데이터를 성공적으로 저장하는 스토리지 노드들의 리스트를 상기 선택된 스토리지 노드들로 전송하는 서버.
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)
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)
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)
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 |
-
2010
- 2010-04-23 EP EP13198265.4A patent/EP2712149B1/en active Active
- 2010-04-23 EP EP10160910.5A patent/EP2387200B1/en active Active
-
2011
- 2011-04-20 BR BR112012027012A patent/BR112012027012A2/pt not_active Application Discontinuation
- 2011-04-20 JP JP2013505473A patent/JP5612195B2/ja not_active Expired - Fee Related
- 2011-04-20 KR KR1020127030479A patent/KR101905198B1/ko active IP Right Grant
- 2011-04-20 AU AU2011244345A patent/AU2011244345B2/en active Active
- 2011-04-20 WO PCT/EP2011/056317 patent/WO2011131717A1/en active Application Filing
- 2011-04-20 EA EA201291023A patent/EA026842B1/ru not_active IP Right Cessation
- 2011-04-20 CN CN201180028670.9A patent/CN102939740B/zh active Active
- 2011-04-20 MX MX2012012198A patent/MX2012012198A/es active IP Right Grant
- 2011-04-20 CA CA2797053A patent/CA2797053C/en not_active Expired - Fee Related
- 2011-06-30 US US13/174,350 patent/US8850019B2/en not_active Expired - Fee Related
-
2012
- 2012-10-23 IL IL222630A patent/IL222630A/en active IP Right Grant
- 2012-11-21 ZA ZA2012/08755A patent/ZA201208755B/en unknown
-
2014
- 2014-09-12 US US14/485,502 patent/US9503524B2/en not_active Expired - Fee Related
-
2016
- 2016-10-26 US US15/334,551 patent/US9948716B2/en not_active Expired - Fee Related
Patent Citations (5)
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 |