KR20150008440A - 분산형 데이터 저장 시스템에서 데이터 저장 및 보수 방법 및 대응하는 디바이스 - Google Patents
분산형 데이터 저장 시스템에서 데이터 저장 및 보수 방법 및 대응하는 디바이스 Download PDFInfo
- Publication number
- KR20150008440A KR20150008440A KR1020147033940A KR20147033940A KR20150008440A KR 20150008440 A KR20150008440 A KR 20150008440A KR 1020147033940 A KR1020147033940 A KR 1020147033940A KR 20147033940 A KR20147033940 A KR 20147033940A KR 20150008440 A KR20150008440 A KR 20150008440A
- Authority
- KR
- South Korea
- Prior art keywords
- storage device
- storage
- data blocks
- data
- cluster
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1088—Reconstruction on already foreseen single or plurality of spare disks
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- 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
-
- 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
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 일반적으로는 분산형 데이터 저장 시스템에 관한 것이다. 구체적으로는, 본 발명은 분산형 데이터 저장 시스템에 데이터를 저장하는 방법에 관한 것으로서, 저장 방법에 대해서도, 연관된 수복 방법에 대해서도, 디바이스 간 통신 비용 및 필요 저장 공간의 관점에서 분산형 데이터 저장 시스템을 효율적이게 하는 데이터 블록의 클러스터링 및 데이터 블록의 랜덤 선형 결합의 사용을 포함한다.
Description
본 발명은 일반적으로는 분산형 데이터 저장 시스템에 관한 것이다. 구체적으로는, 본 발명은, 네트워크 저장 디바이스 간 데이터의 교환에 필요로 되는 대역폭의 관점에서 그리고 데이터의 아이템을 저장하는데 필요로 되는 네트워크 저장 디바이스의 수의 관점에서, 네트워크 및 데이터 저장 자원에 대한 낮은 충격과 높은 데이터 가용성을 결합하는 분산형 데이터 저장 시스템 내 데이터 저장 방법에 관한 것이다. 본 발명은 또한 그러한 분산형 데이터 저장 시스템 내 고장난 저장 디바이스의 수복(repair) 방법에 관한 것이다.
비디오 및 이미지 취급 디바이스와 같이 대용량 데이터 취급 디바이스의 급속한 보급 배치로, 직접 저장을 위해 또는 백업 저장의 일부분으로서, 막대한 양의 데이터의 신뢰할만한 저장이 요구된다. 점점 더 많은 디바이스에 네트워크 접속성이 제공됨에 따라, 네트워크 접속된 디바이스('저장 디바이스') 내 데이터의 분산형 저장이 비용 효과적 솔루션으로서 고려된다. 인터넷 상에서와 같이 비-관리형 네트워크를 통해 배치될 수 있는 그러한 분산형 데이터 저장 시스템에 있어서는, 데이터 손실에 대한 장애허용력 및 데이터 가용성을 보장하기 위해 데이터의 동일한 아이템을 다수의 네트워크 접속된 디바이스에 복사하는 방법이 개발되어 왔다. 이것은 소위 데이터 복제 또는 리던던시 부가이다. 리던던시는 폭넓은 의미로 받아들여져야 하고, 단순 데이터 중복과 더불어 (장애허용력을 위해 저장 디바이스 상에 인코딩된 데이터가 놓이는 경우) 코드 재발생 또는 삭제와 같은 코딩 기술의 사용도 포함한다. 디바이스 고장에 기인하는 영구적 데이터 손실 또는 일시적 디바이스 이용불가에 기인하는 일시적 데이터 손실의 위험에 대처하기 위해서는, 높은 리던던시가 요망된다. 그렇지만, 필요로 되는 통신 및 저장 사이즈의 관점에서 비용(소위 복제 비용)을 줄이기 위해서는, 오히려 낮은 리던던시를 갖는 것이 요망된다.
그리하여 리던던시는 신뢰할 수 없는 컴포넌트에 기반하여 신뢰할만한 서비스를 제공하여야 하는 어느 실제 시스템에 대해서라도 핵심 측면이다. 저장 시스템은 불가피한 디스크 이용불가 및 고장을 가리도록 리던던시를 사용하는 서비스의 전형적 예이다. 위에서 논의된 바와 같이, 이러한 리던던시는 기본 복제 또는 코딩 기술을 사용하여 제공될 수 있다. 삭제 코드는 기본 복제보다 훨씬 더 좋은 효율을 제공할 수 있지만 그들은 현재 시스템에서는 충분히 배치되어 있지 않다. 삭제 코드를 사용할 때 주된 관심사는, 코딩-디코딩 연산에 기인하는 복잡도 증가를 제외하고는, 고장난 저장 디바이스의 보수로부터 유래한다. 실제로, 저장 디바이스가 고장날 때, 그것이 저장한 여러 다른 파일의 블록 전부는 데이터 내구성을 보장하기 위해 교체되어야 한다. 이것은 각각의 손실 블록에 대해 이 블록이 기원해 오는 파일 전체가 단지 하나의 새로운 블록을 재생성하기 위해 다운로드 및 디코딩되어야 함을 의미한다. 기본 데이터 복제에 비해 대역폭 및 디코딩 연산의 관점에서 이러한 오버헤드는 고장 및 그리하여 수복이 예외라기보다는 통상인 시스템에서는 삭제 코드의 사용을 상당히 제한한다. 그럼에도 불구하고, 네트워크 코딩은 보수 프로세스 동안 필요 대역폭을 크게 줄이도록 사용될 수 있다. 이것은 인코딩된 파일의 보수를 다루도록 특히 설계되어 그리하여 그 알려져 있는 결점을 경감하면서 삭제 코드의 효율에 지렛대 효과를 발휘하는 신규 분산형 저장 시스템에 대한 분위기를 조성한다.
필요로 되는 것은 높은 레벨의 데이터 가용성을 달성하는 그리고 가용성 요건과 복제 비용을 공동으로 고려하는 분산형 데이터 저장 솔루션이다.
본 발명은 종래 기술의 불편함 중 일부를 완화하는 것을 목적으로 한다.
분산형 데이터 저장 시스템에서 데이터 저장을 최적화하기 위하여, 본 발명은 네트워크 내 상호접속된 저장 디바이스를 포함하는 분산형 데이터 저장 시스템에서의 데이터 저장 방법을 제안하며, 그 방법은, 분산형 데이터 저장 시스템에 저장할 데이터 파일의 각각에 대해 실행되는,
- 데이터 파일을 k개의 데이터 블록으로 분할하고, k개의 데이터 블록의 랜덤 선형 결합을 통해 이들 k개의 데이터 블록으로부터의 적어도 n개의 인코딩된 데이터 블록을 생성하는 단계; 및
- 동일 저장 디바이스 클러스터의 일부분인 적어도 n개의 저장 디바이스에 걸쳐 파일의 적어도 n개의 인코딩된 데이터 블록을 분산함으로써 적어도 n개의 인코딩된 데이터 블록을 저장하는 단계를 포함하되,
각각의 클러스터는 별개의 저장 디바이스 세트를 포함하고, 파일의 적어도 n개의 인코딩된 데이터 블록은 각각의 저장 디바이스 클러스터가 적어도 2개의 다른 파일로부터의 인코딩된 데이터 블록을 저장하도록 그리고 저장 디바이스 클러스터의 저장 디바이스의 각각이 적어도 2개의 다른 파일로부터의 인코딩된 데이터 블록을 저장하도록 저장 디바이스 클러스터의 적어도 n개의 저장 디바이스에 걸쳐 분배된다.
본 발명은 또한 데이터가 본 발명의 저장 방법에 따라 저장되고 저장된 파일이 k개의 데이터 블록으로 분할되는 분산형 데이터 저장 시스템에서 고장난 저장 디바이스를 수복하는 방법을 포함하며, 그 방법은,
- 고장난 저장 디바이스가 속하는 저장 디바이스 클러스터에 교체 저장 디바이스를 부가하는 단계;
- 저장 디바이스 클러스터 내 k+1개의 남아있는 저장 디바이스 중 어느 하나로부터, k+1개의 저장 디바이스의 각각에 의해 저장된 2개의 다른 파일(X, Y)로부터의 2개의 인코딩된 데이터 블록으로부터 발생된 k+1개의 새로운 랜덤 선형 결합을, 교체 저장 디바이스에 의해, 수신하는 단계;
- 대수적 연산을 사용하여 X에만 관련된 하나의 블록과 Y에만 관련된 다른 하나의 블록인 2개의 블록이 획득되는 2개의 선형 결합을 획득하도록 수신된 새로운 랜덤 선형 결합을 서로 간 결합하는 단계; 및
- 2개의 선형 결합을 교체 저장 디바이스에 저장하는 단계를 포함한다.
수복하는 방법의 변형 실시예에 의하면, 그 수복하는 방법은 분산형 데이터 시스템에 복귀하는 상기 고장난 저장 디바이스를 저장 디바이스 클러스터에 재통합하는 단계를 포함한다.
본 발명은 또한 네트워크 내 상호접속된 저장 디바이스를 포함하는 분산형 데이터 저장 시스템에 데이터 파일의 저장을 관리하기 위한 디바이스를 포함하며, 그 디바이스는 데이터 파일을 k개의 데이터 블록으로 분할하고, 그리고 k개의 데이터 블록의 랜덤 선형 결합을 통해 이들 k개의 데이터 블록으로부터의 적어도 n개의 인코딩된 데이터 블록을 생성하기 위한 데이터 스플리터를 포함하고, 그 디바이스는 동일 저장 디바이스 클러스터의 일부분인 적어도 n개의 저장 디바이스에 걸쳐 파일의 적어도 n개의 인코딩된 데이터 블록을 분산함으로써 적어도 n개의 인코딩된 데이터 블록을 저장하기 위한 저장 분배기를 더 포함하되, 각각의 클러스터는 별개의 저장 디바이스 세트를 포함하고, 파일의 적어도 n개의 인코딩된 데이터 블록은 각각의 저장 디바이스 클러스터가 적어도 2개의 다른 파일로부터의 인코딩된 데이터 블록을 저장하도록 그리고 저장 디바이스 클러스터의 저장 디바이스의 각각이 적어도 2개의 다른 파일로부터의 인코딩된 데이터 블록을 저장하도록 저장 디바이스 클러스터의 적어도 n개의 저장 디바이스에 걸쳐 분배된다.
또한 본 발명은 데이터가 본 발명의 저장 방법에 따라 저장되는 분산형 데이터 저장 시스템에서 고장난 저장 디바이스의 수복을 관리하기 위한 디바이스에 관한 것이다. 수복을 관리하기 위한 디바이스는 고장난 저장 디바이스가 속하는 저장 디바이스 클러스터에 교체 저장 디바이스를 부가하기 위한 교체기; 저장 디바이스 클러스터 내 k+1개의 남아있는 저장 디바이스 중 어느 하나로부터, k+1개의 저장 디바이스의 각각에 의해 저장된 2개의 다른 파일(X, Y)로부터의 2개의 인코딩된 데이터 블록으로부터 발생된 k+1개의 새로운 랜덤 선형 결합을 교체 저장 디바이스에 분배하기 위한 분배기; 대수적 연산을 사용하여 X에만 관련된 하나의 블록과 Y에만 관련된 다른 하나의 블록인 2개의 블록이 획득되는 2개의 선형 결합을 획득하도록 수신된 새로운 랜덤 선형 결합을 서로 간 결합하기 위한 결합기; 및 2개의 선형 결합을 교체 저장 디바이스에 저장하기 위한 데이터 라이터를 포함한다.
본 발명의 더 많은 이점은 본 발명의 구체적이고 비-제한적인 실시예의 설명을 통하여 나타날 것이다.
실시예는 이하의 도면을 참조하여 설명될 것이다.
도 1은 본 발명의 저장 방법의 특정 상세도;
도 2는 본 발명의 저장 방법에 따른 데이터 클러스터링의 예시도;
도 3은 저장 디바이스 고장의 수복 프로세스 표시도;
도 4는 본 발명을 구현할 수 있는 디바이스의 예시도;
도 5는 본 발명의 방법의 특정 실시예를 구현하는 알고리즘;
도 6a는 네트워크에서 상호접속된 저장 디바이스를 포함하는 분산형 데이터 시스템에서 데이터 파일의 저장을 관리하기 위한 디바이스;
도 6b는 데이터가 본 발명의 저장 방법에 따라 저장되는 분산형 데이터 저장 시스템에서 고장난 저장 디바이스의 수복을 관리하기 위한 디바이스.
실시예는 이하의 도면을 참조하여 설명될 것이다.
도 1은 본 발명의 저장 방법의 특정 상세도;
도 2는 본 발명의 저장 방법에 따른 데이터 클러스터링의 예시도;
도 3은 저장 디바이스 고장의 수복 프로세스 표시도;
도 4는 본 발명을 구현할 수 있는 디바이스의 예시도;
도 5는 본 발명의 방법의 특정 실시예를 구현하는 알고리즘;
도 6a는 네트워크에서 상호접속된 저장 디바이스를 포함하는 분산형 데이터 시스템에서 데이터 파일의 저장을 관리하기 위한 디바이스;
도 6b는 데이터가 본 발명의 저장 방법에 따라 저장되는 분산형 데이터 저장 시스템에서 고장난 저장 디바이스의 수복을 관리하기 위한 디바이스.
앞서 언급된 바와 같이, 이제 삭제 코드가 데이터 저장 시스템에서 기본 복제보다 훨씬 더 좋은 효율을 제공할 수 있음이 이해된다. 그러한 저장 시스템에서 그들의 응용은 명확한 이점에도 불구하고 실제로는 아직 널리 보급되어 있지 않다. 그들 응용이 상대적으로 부족한 이유 중 하나는 최첨단 코딩 방법은 새로운 저장 디바이스가 블록이 삽입되거나 수복될 필요가 있을 때마다 찾아내어질 수 있다고 생각하기 때문이다, 즉, 저장 디바이스의 자원이 무한히 존재한다고 상정된다. 더욱, 저장 디바이스의 가용성은 고려되지 않는다. 그들 2개의 전제조건은 현재 분산형 데이터 저장 시스템에서 삭제 코드의 단순 응용에 대한 실제적 장벽을 이루고, 그들 핵심 문제에 답하는 설계 선택이 이루어져야 할 때 혼동을 주고 있다. 이들 결점을 없애기 위하여, 본 발명은 분산형 데이터 저장 시스템에서 리던던시를 이루고 있는 데이터의 블록의 호스팅을 담당하는 저장 디바이스의 클러스터링을 제안하며 삭제 코드를 사용 및 배치하는 실용적 수단을 더 제안한다. 그리고 나면, 본 발명은 단순 복제 및 코딩 스킴 둘 다에 비할 때 유의미한 성능 이득을 가능하게 한다. 본 발명에 따른 클러스터링은 단일 파일 레벨에서 대신에 저장 디바이스 레벨(즉, 여러 파일의 여러 블록을 포함하는 저장 디바이스)에서 일어나는 보수를 가능하게 하고, 삭제 코드의 응용은 효율적 데이터 복제를 가능하게 하고, 그리하여 다중 수복에 지렛대 효과를 발휘하고 분산형 데이터 저장 시스템의 성능 이득을 개선한다.
삭제 코드의 효율은 소위 '최적'인 MDS(Maximum Distance Separable) 코드가 사용될 때 최대이다. 이것은, 소정 저장 오버헤드에 대하여, MDS 코드가 데이터 가용성의 관점에서 최상의 가능 효율을 제공함을 의미한다. MDS 코드는 n개 중 k개의 리던던시 블록(=인코딩된 데이터 블록)의 어떠한 서브세트라도 손실 데이터의 복원에 충분하게 되는 그러한 코드이다. 이것은 M 바이트의 파일을 복원하기 위하여 누구든 정확히 M 바이트를 다운로드할 필요가 있음을 의미한다. RS(Reed Solomon)는 MDS 코드의 고전적 예이다. 랜덤화는 MDS 코드를 구성하는 유연한 방법이다.
본 발명은 네트워크 내 상호접속된 저장 디바이스를 포함하는 분산형 데이터 저장 시스템에 데이터 파일을 저장하는 특정 방법을 제안한다. 그 방법은 분산형 데이터 저장 시스템에 저장할 데이터 파일의 각각에 대해 실행되는 이하의 단계를 포함한다:
- 데이터 파일을 k개의 데이터 블록으로 분할하고, k개의 데이터 블록의 랜덤 선형 결합을 통해 이들 k개의 데이터 블록으로부터의 n개의 인코딩된 데이터 블록을 생성하는 단계; 및
- 동일 저장 디바이스 클러스터의 일부분인 n개의 저장 디바이스에 걸쳐 파일의 n개의 인코딩된 데이터 블록을 분산하는 단계, 각각의 클러스터는 별개의 저장 디바이스 세트를 포함하고, 파일의 n개의 인코딩된 데이터 블록은 각각의 저장 디바이스 클러스터가 적어도 2개의 다른 파일로부터의 인코딩된 데이터 블록을 저장하도록 그리고 저장 디바이스 클러스터의 저장 디바이스의 각각이 적어도 2개의 다른 파일로부터의 인코딩된 데이터 블록을 저장하도록 저장 디바이스 클러스터의 n개의 저장 디바이스에 걸쳐 분배된다.
도 1은 본 발명의 저장 방법의 특정 예를 도시하고 있으며, 이 경우 파일은 k=2 데이터 블록으로 분할되고 그 연관된 선형 결합 방법은 n=4 인코딩된 데이터 블록을 발생시킨다. 그것은 다음과 같이 진행된다: 각각의 파일(X)(10)은 동등한 사이즈의 k개의 데이터 블록(12, 13)으로 청크되고 그 후 n개의 인코딩된 데이터 블록(Xj)(15, 16, 17, 18)이 이들 k개의 블록의 랜덤 선형 결합으로서 생성된다. 분산형 저장 시스템의 각각의 저장 디바이스(j)는 그 후 이들 k개의 데이터 블록의 랜덤 선형 결합인 인코딩된 데이터 블록(Xj)을 저장한다. 연관된 랜덤 계수()(예컨대, 블록(15)에 대해 2 및 7)는 필드(Fq)에서 랜덤으로 균등하게 선택된다, 즉, Fq는 q개의 원소를 갖는 "유한 필드"를 의미한다. 유한 필드의 이용은 에러 정정 코드의 구현에 필요하고, 당업자에 의해 알려져 있다. 요컨대, 유한 필드는 이산 수들의 세트와 같이 수들의 세트이지만, 이산 수들에 대해 흔히 알려져 있는 것과는 다른 덧셈 및 곱셈에 대한 규칙을 갖는다.
n개의 인코딩된 데이터 블록(Xj)(15-18)의 저장에 부가하여, 연관된 랜덤 계수()가 저장될 필요가 있다. 그들의 사이즈는 블록(Xj)의 사이즈에 비해 무시할만하므로, 이들 계수를 저장하는데 필요로 되는 저장 공간도 무시할만하다. 일반적으로, 워딩 (랜덤) 선형 결합이 여기서 사용될 때, 이것은 연관된 계수를 포함한다.
실용적 예로서, 파일(X)(10)이 M=1 기가바이트의 사이즈를 갖는다고 생각해 보자. 파라미터(k)(파일 청크의 수) 및 n(k개의 파일 청크의 랜덤 선형 결합의 수)는 코드 구현이 존재하게 되도록, 예컨대 k=2 및 n=4로 선택된다. 연관된 랜덤 계수()는 1 내지 q 범위 내 이산 수를 발생시키도록 파라미터화되는 종래 기술 난수 발생기로 발생될 수 있다.
n/k는 분산형 저장 시스템의 설계자에 의해 요망되는 리던던시 레벨에 따라 선택된다. 예컨대, 코드 k=2, n=4에 대하여, n/k=2이고 그리하여 1Gb의 파일을 저장하기 위해, 시스템은 2Gb의 저장 공간을 필요로 한다. 부가적으로, n/k는 시스템이 용인할 수 있는 고장의 수(고장난 저장 디바이스의 수)를 표현한다. k=2, n=4의 소정 예에 대하여, 원래 파일은 k=2개의 인코딩된 데이터 블록이 남아있는 한 복구될 수 있다. 그리하여 도입되는 리던던시의 수량과 분산형 저장 시스템의 장애 허용성 간 절충점이 존재한다.
분산형 저장 시스템에 그렇게 저장된 파일의 복원은 다음과 같이 행해진다. 수학적 관점에서, k개의 데이터 블록으로부터 랜덤 선형 결합으로부터 그렇게 생성된 n개의 인코딩된 데이터 블록(Xj)의 각각은 k개의 데이터 블록에 의해 스패닝된 서브스페이스의 랜덤 벡터로서 표현될 수 있다. 파일(X)의 복원에 대해, 그리하여 이러한 서브스페이스에서 k개의 독립 벡터를 획득하는 것으로 충분하다. 독립성 요건은 연관된 랜덤 계수()가, 파일(X)의 저장 동안, 위에서 언급된 난수 발생기에 의해 미리 발생되었기 때문에 이행된다. 실제로, 선형 독립적인 k개의 벡터의 모든 패밀리마다 역이 가능한 비-특이 매트릭스를 형성하고, 그리하여 파일(X)은 매우 높은 확률(즉, 1에 가까움)로 또는 더 공식적 항으로 복원될 수 있다: D는 n개의 리던던트 블록(Xj) 또는 그렇지 않으면 상기 n개의 랜덤 벡터에 의해 스패닝되는 서브스페이스의 차원을 표시하는 랜덤 변수로서, Fq n에 속한다고 하자. 그때 다음과 같이 나타낼 수 있다:
그 식은 m개의 랜덤 벡터에 의해 스패닝되는 서브스페이스의 차원이 정확히 n이고 그리고 그렇게 이들 n개의 벡터의 패밀리가 선형 독립적일 확률을 준다. 이러한 확률은 실용적 필드 사이즈, 전형적으로는 28 또는 216을 사용할 때 모든 n마다 1에 매우 가까운 것으로 나타난다. 언급된 바와 같이, 필드 사이즈는 유한 필드(Fq) 내 원소의 수이다. 값(28 또는 216)은 유한 필드의 하나의 원소가 각각 1개 또는 2개의 바이트(8 비트 또는 16 비트)에 대응하기 때문에 실용적 값이다. 예컨대 216의 필드 사이즈에 대하여 그리고 n=16에 대하여, 이들은 고전적이고 실용적인 값이고, 정확히 n=16 저장 디바이스에 접촉할 때, 파일(X)을 복원할 수 있을 확률은 0.999985이다. 그리하여 랜덤(MDS) 코드는 데이터를 최적으로 인코딩하는 유연한 방법을 제공한다. 그것들은, 고정식 인코딩 매트릭스를 사용하고 그리하여 고정식 레이트 k/n를 갖는 고전적 삭제 코드에 비해서는 다르다, 즉, 그때 리던던시 시스템은 고정된 수의 리던던트 및 독립적 블록보다 더 많이 생성할 수 없다. 실제로, 본 발명에서 제안된 바와 같은 랜덤 코드를 사용할 때, 레이트의 개념은 사라지는데, 누구든, 단지 파일(X)의 k개의 블록(Xj)의 새로운 랜덤 결합을 만드는 것에 의해, 필요만큼 많은 리던던트 블록(Xj)을 발생시킬 수 있기 때문이다. 이러한 속성은 랜덤 코드를 레이트 없는 코드, 또한 소위 파운틴 코드로 만든다. 이러한 레이트 없는 속성은 이들 코드가 분산형 저장 시스템의 컨텍스트에서 매우 적합하게 만드는데, 그것이, 앞으로 더 논의될 바와 같이, 잘못 '손실된' 저장 디바이스의 재통합을 가능하게 하기 때문이다.
손실 데이터의 수복을 쉽고 효율적이게 하는 (위에서 논의된 바와 같은 파라미터(k,n)의) MDS 삭제 코드의 논의된 사용과 함께, 본 발명은 다수의 파일에 속하는 손실 데이터의 동시적 수복에 지렛대 효과를 발휘하는 특정 데이터 클러스터링 방법의 채용을 제안한다. 클러스터의 사이즈는 코드의 유형에 의존한다. 더 정밀하게는 MDS 코드가 k개의 블록으로부터 n개의 인코딩된 데이터 블록을 발생시키고 있으면, 클러스터의 사이즈는 정확히 n일 것이다. 본 발명의 저장 방법에 따른 그러한 클러스터링의 일례가 도 2에 예시되어 있다. 모든 저장 디바이스의 세트는 디스조인트 클러스터로 파티셔닝된다. 그리하여 각각의 저장 디바이스는 하나의 클러스터에만 속한다. 그렇게 편성된 분산형 저장 시스템에 저장할 각각의 파일은 그 후 특정 클러스터 내에 저장된다. 클러스터는 여러 다른 파일로부터의 데이터를 포함한다. 저장 디바이스는 여러 다른 파일로부터의 데이터를 포함한다. 더욱 저장 디바이스는 그 클러스터 상에 저장된 모든 파일마다로부터 하나씩의 데이터 블록을 포함한다. 도 2는 6개의 파일(X1 내지 X6)에 대한 일례를 제공하는데, 각각의 파일은 이들 파일의 k개의 블록의 랜덤 선형 결합인 n=3개의 인코딩된 데이터 블록(Xj)을 포함한다. 2개의 저장 클러스터는 각각 3개의 저장 디바이스의 세트를 포함한다: 제1 클러스터 1(20)는 저장 디바이스 1, 2 및 3(200, 201, 202)를 포함하고, 제2 클러스터 2(21)는 3개의 저장 디바이스 4, 5 및 6(210, 211, 212)를 포함한다. 파일(X1)의 3개(n=3)의 인코딩된 데이터 블록(Xj)은 클러스터 1(20)에 저장된다: 저장 디바이스 1(200) 상의 제1 블록(2000), 저장 디바이스 2(201) 상의 제2 블록(2010) 및 저장 디바이스 3(202) 상의 제3 블록(2020). 파일(X2)의 3개의 인코딩된 데이터 블록(Xj)은 클러스터 2(21)에 저장된다: 저장 디바이스 4(210) 상의 제1 블록(2100), 저장 디바이스 5(211) 상의 제2 블록(2110) 및 저장 디바이스 6(212) 상의 제3 블록(2120). 마찬가지로, 클러스터 1은 또한 파일(X3)(2001, 2011, 2021)의 인코딩된 데이터 블록(Xj), 및 파일(X5)(2002, 2012, 2022)의 인코딩된 데이터 블록(Xj)을 저장 디바이스 1, 2 및 3(각각, 200, 201, 202)에 저장한다. 마찬가지로, 클러스터 2는 또한 파일(X4)(2101, 2111, 2121)의 그리고 파일(X6)(2102, 2112, 2122)의 인코딩된 데이터 블록(Xj)을 저장 디바이스 4, 5 및 6(각각, 210, 211, 212)에 저장한다. 그 파일들은 선택된 부하 균형 정책에 따라 도착 순서로 저장된다(예컨대, 클러스터 1 상에 파일(X1), 클러스터 2 상에 파일(X2), 클러스터 1 상에 파일(X3) 등).
이들 파일을 관리하기 위하여, 2개의 인덱스를 유지하는 것으로 충분하다: 각각의 파일을 클러스터에 매핑하는 것 하나, 및 각각의 저장 디바이스를 클러스터에 매핑하는 것 하나. 본 발명의 특정 실시예에 의하면, 저장 디바이스는 그들의 IP(인터넷 프로토콜) 주소에 의해 식별될 수 있다.
본 발명의 데이터 블록 배치 전략은 분산형 저장 시스템에 저장된 파일의 수로 잘 스케일링하는 단순 파일 관리를 암시하는 한편, 앞으로 더 설명될 바와 같이 그러한 시스템의 보수 프로세스를 직접 서비스 제공한다. 클러스터가 어떻게 구성되는지 클러스터가 여러 다른 파일로 어떻게 채워지는지에 관한 방법은 특정 프로토콜 사용 또는 균등 샘플링처럼 어떠한 정책에 따라서라도 행해질 수 있다. 실로, 최첨단의 다양한 배치 전략이 존재하며, 예를 들면 어떤 것은 부하 균형에 초점을 두고 어떤 다른 것은 가용성에 초점에 둔다.
배치 전략 및 보수(수복) 프로세스는 통상 독립적으로 설계되는 2개의 빌딩 블록으로서 고려된다. 본 발명으로는, 앞으로 더 설명될 바와 같이 배치 전략은 보수 프로세스를 직접 서비스 제공한다. 분산형 데이터 저장 시스템은 단지 그러한 시스템의 상업적 구현의 사이즈에 기인하여 고장나기 쉽다. 전형적으로, 이 서비스에 대한 인터넷 가입자로부터의 데이터를 저장하도록 서비스 제공하는 분산형 데이터 저장 시스템은 하드 디스크 드라이브를 구비한 수천의 저장 디바이스를 채용한다. 그래서 이들 고장에 의해 야기된 데이터 손실을 수복하기 위해서는 신뢰할만한 보수 메커니즘이 요건으로 된다. 그렇게 행하기 위하여, 시스템은 저장 디바이스를 모니터링할 필요가 있고 전통적으로는 수복이 수행되어야 하는지 결정하도록 타임아웃-기반 트리거링 메커니즘을 사용한다. 본 발명의 클러스터링 방법의 제1 실용주의적 포인트는, 필요로 될 때 스스로 모니터링 및 재발생(즉, 데이터 손실을 수복)하는 자율적 클러스터를 생성함으로써, 저장 디바이스의 클러스터가 관리하기 쉽고 모니터링이 완전히 분산적 방식으로 구현될 수 있다는 것이다. 이것은 현재의 저장 시스템과는 대조적인데, 그 경우는 고장난 저장 디바이스를 수복하기 위해, 고장난 저장 디바이스를 교체하는 저장 디바이스는 고장난 저장 디바이스가 저장하고 있었던 리던던트 블록의 각각에 연관된 파일 전부에 액세스할 필요가 있다; 그 후 접촉할 저장 디바이스는 자의적 위치에 위치할 수 있어서, 수복 이전에, 교체 저장 디바이스가 우선 그들의 위치에 대해 질의할 것을 요건으로 한다. 이것은 본 발명에서는, 소정 클러스터에서, 배치가 구조화되므로 일어나지 않는다.
이러한 종래 기술에 따라 각각의 저장된 파일로의 액세스가 독립적 이벤트로 고려되면, 이는 전형적으로는 저장 디바이스의 충분히 큰 세트 상에 데이터의 균등 랜덤 배치를 사용할 때의 경우인데, 그때 그 세트 내 이들 저장 디바이스 전부와 접촉하는데 성공할 확률은 여러 다른 파일의 리던던트 블록이 저장 디바이스의 동일한 세트 상에 저장되어 있지 않으면 블록의 수에 따라 감소한다. 이것은 각각의 호스트 저장 디바이스가 어떤 확률로 실제 이용가능하고, 그때 증가하는 수의 그러한 호스트 저장 디바이스에 액세스하는 것은 소정 시점에서 필요로 되는 블록 전부에 액세스할 수 있을 확률을 감소시킨다는 사실로부터 유래한다. 위에서 설명된 종래 기술 솔루션과는 대조적으로, 본 발명의 클러스터링된 배치 방법을 사용하면, 저장 디바이스는 그들이 교체 저장 디바이스에 대해 중대 블록을 공동으로 호스팅하는 그러한 방식으로 그룹화되어 있으므로, 수복이 성공할 확률은 고장난 저장 디바이스에 의해 저장된 블록의 수에 더 이상 의존하지 않는다. 부가적으로, 교체 저장 디바이스가 접촉할 필요가 있는 저장 디바이스의 수는 고장난 저장 디바이스에 의해 저장되어 있었던 블록의 수에 의존하지 않는다. 그 대신, 이러한 수는 시스템 운영자에 의해 미리 정해지고 고정되는 클러스터 사이즈에 의존하고, 그리하여 교체 저장 디바이스가 유지할 필요가 있는 커넥션의 수를 감축한다.
그 저장 방법의 특정 효율은 고장난 저장 디바이스의 수복을 예시하고 앞으로 더 논의될 도 3의 도움으로 가장 잘 설명된다.
도 3에 의해 예시된 발명의 방법과는 대조적으로, 종래-기술 수복 프로세스는, 고전적 삭제 코드를 사용할 때, 다음과 같다: 소정 파일의 하나의 데이터 블록을 수복하기 위하여, 교체 저장 디바이스는 할 수 있는 충분한 리던던트, 삭제 코드 인코딩된 블록을 다운로드하고, (인코딩되지 않은 플레인 데이터) 파일을 재생성하기 위해, 그것들을 디코딩하여야 한다. 이러한 연산이 행해지고 나면, 교체 저장 디바이스는 파일을 재-인코딩하고 손실 리던던트 데이터 블록을 재발생할 수 있는데, 재-인코딩은 각각의 손실 블록에 대해 반복되어야 한다. 이러한 종래 기술 방법은 이들 유형의 코드의 사용에 의해 야기되는 이하의 결점을 갖는다:
1. 하나의 블록, 즉, 파일의 작은 부분을 수복하기 위해, 교체 저장 디바이스는 파일의 블록을 저장하고 있는 다른 저장 디바이스에 의해 저장된 블록 전부를 다운로드하여야 한다. 이것은 통신의 관점에서 비용이 들고, 이러한 제1 단계가 완료되지 않았을 때 (이후의) 제2 단계가 관여될 수 없으므로 시간 소비적이다.
2. 제1 단계가 완료되고 나면, 교체 저장 디바이스는 인코딩되지 않은 플레인 데이터 파일을 재발생시킬 수 있도록 그 다운로드된 블록을 파악하여야 한다. 이것은 계산-집약적 연산이며, 큰 파일에 대해서는 더더욱 그렇다.
3. 그 후, 인코딩 알고리즘을 사용하여, 손실 블록은 재발생된 플레인 데이터 파일로부터 그것을 인코딩함으로써 재생성되어야 한다.
이러한 종래 기술 방법과는 대조적으로, 본 발명의 저장 방법의 클러스터링된 배치 전략 및 랜덤 코드의 사용은 수복 프로세스 동안 중요한 이점을 허용한다. 도시되었던 바와 같이, 종래 기술 수복 방법에 의하면, 동일 파일의 다수의 블록이 그들 중에서 결합된다. 본 발명의 방법에 의하면, 네트워크 코딩이 파일 레벨이 아니라 그보다는 시스템 레벨에서 사용된다, 즉, 본 발명의 수복 방법은 다수의 파일의 데이터 블록의 결합을 포함하며, 이는 수복 동안 저장 디바이스 간 교환되는 메시지의 수를 상당히 감축한다. 저장 디바이스에 의해 저장된 인코딩된 데이터 블록(Xj)은 단지 대수적 원소이고, 그에 대해서는 대수적 연산이 수행될 수 있다.
수복 프로세스의 종료시, 수복 프로세스의 종료시에 획득되어야 하는 것은 고장난 저장 디바이스의 수복이다. 현재 발명의 컨텍스트에 있어서, 고장난 저장 디바이스의 수복은 고장난 저장 디바이스가 그 인코딩된 데이터 블록(Xj)을 저장하였던 각각의 파일에 대한 랜덤 벡터의 생성을 의미한다. 어느 랜덤 벡터라도 리던던트 또는 인코딩된 데이터 블록이다. 그리하여 고장난 저장 디바이스의 수복 프로세스에 요구되는 연산은 고장난 저장 디바이스에 저장되었던 바로 그 데이터를 교체하는 것이 아니라 그보다는 고장난 저장 디바이스에 의해 손실되었던 데이터의 양을 재발생시키는 것이다. 이러한 선택은 소위 저장 디바이스 재통합에 관한 부가적 이점을 제공함이 앞으로 더 논의될 것이다.
도 3은 본 발명에 따라 고장난 저장 디바이스의 수복을 예시하고 있으며, 본 발명의 데이터 저장 방법을 사용하는 분산형 데이터 저장 시스템에 기반하고 있다. 여기서, 클러스터(30000)는 초기에는 4개의 저장 디바이스(30, 31, 32, 33)를 포함한다. 각각의 저장 디바이스는 2개의 파일, 파일(X) 및 파일(Y)의 랜덤 코드 블록(Xj)을 저장한다. 파일(X, Y) 둘 다에 대해 k=2이다(즉, 파일(X, Y)은 k=2개의 블록으로 청크된다). 제1 저장 디바이스(30)는 랜던 코드 블록(=인코딩된 데이터 블록)(300, 301)을 저장한다. 제2 저장 디바이스(31)는 랜덤 코드 블록(310, 311)을 저장한다. 제3 저장 디바이스(32)는 랜덤 코드 블록(320, 321)을 저장한다. 제4 저장 디바이스(33)는 랜덤 코드 블록(330, 331)을 저장한다. 제4 저장 디바이스(33)가 고장나서 수복되어야 한다고 상정한다. 이것은 다음과 같이 행해진다:
1. 제5의, 교체 저장 디바이스(39)가 클러스터(30000)에 부가된다. 교체 저장 디바이스는, 클러스터 내 k+1개의 잔여 저장 디바이스로부터, 각각의 저장 디바이스에 의해 저장된 랜덤 코드로부터 발생되는 이들 랜덤 코드의 새로운 랜덤 선형 결합(연관된 계수()를 가짐)을 수신한다. 이것은 직사각형(34-36) 및 화살표(3000-3005)에 의해 예시되어 있다.
2. 결과적으로 발생된 새로운 랜덤 선형 결합은 인수 X, Y가 각각 소거되는 2개의 선형 결합이 남아있게 되는 그러한 방식으로 그들 중에서 결합된다. 즉, X에만 관련되는 하나의 선형 결합 및 Y에만 관련되는 다른 하나의 결합. 이러한 소거는, 예를 들어 고전적 "가우시안 소거" 대수적 연산을 사용하여, 이들 결합의 계수를 유의하여 선택함으로써 행해진다.
3. 남아있는 2개의 선형 결합은 교체 저장 디바이스(39)에 저장된다. 이것은 화살표(3012, 3013)에 의해 예시되어 있다.
이제, 수복 연산이 완료되었고, 시스템은 다시 안정적 동작 상태에 있다고 생각된다.
대부분의 분산형 저장 시스템에 있어서, 저장 디바이스를 고장 디바이스라고 선언하는 결정은 타임아웃을 사용하여 수행된다. 이것은 불확실성 하의 결정이어서, 에러가 나기 쉽다는 점이다. 실제로, 저장 디바이스는 부당하게 타임-아웃 될 수 있고 수복이 종료된 후에 예상치 못하게 재접속할 수 있다. 물론 타임아웃이 길수록, 에러는 더 적게 난다. 그렇지만, 긴 타임아웃을 사용하는 것은 위험한데, 저장 시스템의 반응성이 감축되어, 고장 버스트가 일어날 때 불치의 데이터 손실에 이를 가능성이 있기 때문이다. 재통합의 아이디어는 부당하게 타임-아웃된 저장 디바이스를 재통합하는 것이다. 재통합은 삭제 코드를 사용할 때는 아직 다뤄지지 않았다. 재통합이 구현되지 않으면, 부당하게 고장인 것으로 생각되었던 저장 디바이스의 수복은 불필요한 것이었고, 그리하여 그것이 부가적 고장을 용인하는데 기여할 수 없으므로 자원의 낭비이다. 이것은 수복된 저장 디바이스가 다른 저장 디바이스로부터의 독립적 리던던시를 포함하고 있지 않다는 사실로부터 유래하고, 그리하여 그것은 부가적 리던던시 이점을 가져오지 못한다.
본 발명의 특정 유익한 실시예는 부당한 고장난 저장 디바이스, 즉, 예를 들어 검출된 커넥션 타임-아웃 시 분산형 데이터 저장에 의해 고장이라고 생각되었지만 시스템에 재접속하는 것인 디바이스의 재통합을 포함한다. 본 발명으로는, 그러한 재통합이 가능한데, 그것이 단지 더 많은 리던던트 데이터를 클러스터에 부가하고 부당한 고장난 저장 디바이스의 수복이, 일견 불필요하기는 하지만, 클러스터의 리던던시에 부가하고, 동일 클러스터의 어느 저장 디바이스가 고장나는 다음번에는, 그리하여 수복을 실행하는 것이 필요치 않기 때문이다. 이것은, 본 발명에 따른 클러스터링 스킴과 함께, 랜덤 코드의 속성으로부터 유도된다. 그리하여 재통합은 분산형 데이터 저장 시스템의 자원 사용에 관하여 효율을 부가한다.
저장 디바이스 재통합의 이러한 개념을 활용하는 본 발명의 여러 다른 변형 실시예가 가능하다.
제1 변형 실시예에 의하면, 클러스터의 사이즈는 정확히 n개의 저장 디바이스에서 유지된다. 저장 디바이스가 고장나면, 그것은 교체 저장 디바이스에 의해 교체되어, 본 발명의 고장난 저장 디바이스를 수복하는 방법에 따라 인코딩된 데이터 블록을 제공받는다. 고장난 저장 디바이스가 복귀하면(즉, 그것이 단지 일시적 이용불가이었으면), 그것은 클러스터의 저장 디바이스 중 하나로서 클러스터에 재통합되지 않고, 그보다는 그것은, 필요로 될 때, 이러한 클러스터에 대한 교체 디바이스로서, 또는 변형에 따라 다른 것을 위해 사용될 수 있는 저장 디바이스의 풀 내에 자유 디바이스로서 통합된다.
제2 변형 실시예에 의하면, 수복되었고, 즉 다른, 교체 저장 디바이스로 교체되었고 클러스터로 복귀하는 고장 디바이스는 클러스터에 재통합될 것이다. 이것은 클러스터가 이제 특정 시간 기간 동안(즉, 다음 고장까지) n+1개의 저장 디바이스의 레벨에서 유지될 것임을 의미하며, 이 경우 그것은 이전에 n개의 저장 디바이스를 갖고 있었다. 2가지의 경우가 적용된다: 고장 디바이스의 일시적 부재 동안, n개의 노드 상에서 데이터는 변경되지 않았고, 그 노드는 이미 클러스터의 부분인 n개의 저장 노드에 단순히 부가될 수 있다. 대조적으로, 데이터가 변경되었으면, 고장 노드는 클러스터의 n개의 노드의 나머지와 동기화될 필요가 있다. 이러한 동기화는, 고장 노드의 완전한 수복에 대해 요구되는 연산을 필요로 하기보다는, 단지, 도 1의 도움으로 설명되어 있는 바와 같이, 디바이스의 부재 동안 클러스터에 의해 저장되었던 각각의 새로운 파일에 대해 하나의 블록의 새로운 랜덤 선형 결합의 발생, 및 그 발생된 새로운 랜덤 선형 결합의 고장난 저장 디바이스에 의한 저장을 요건으로 한다. 물론, 클러스터가 n+1개의 저장 디바이스의 레벨에 남아있으면, 클러스터에 부가되는 어느 새로운 파일이라도 클러스터의 n+1개의 노드에 걸쳐 분산되어야 한다. 이것은 디바이스 고장이 없는 한 계속된다. 다음 디바이스 고장 후에, 클러스터의 사이즈는 다시 n으로 감축될 것이다.
언급된 바와 같이, 변형 실시예에 의하면, n개의 저장 디바이스를 포함하는 대신에, 클러스터는 n+1개의 저장 디바이스, 또는 n+2 또는 n+10 또는 n+m개를 포함할 수 있으며, m은 어떠한 정수라도 된다. 이것은 본 발명의 데이터 저장 방법을 변경하지 않고, 수복 방법도 변경하지 않고, 단지, 저장 방법에서는 k개의 데이터 블록으로 분할된 파일로부터 n개가 아니라 n+m개의 인코딩된 데이터 블록이 생성되는 것이며, 클러스터의 n+m개의 저장 디바이스 부분에 걸쳐 분산되는 것임을 고려하기만 하면 된다. 클러스터에 n개보다 많은 저장 디바이스를 갖는 것은 클러스터에서 더 많은 리던던시를 갖는 이점을 갖지만, 그것은 더 많은 데이터 저장 오버헤드를 생성한다.
도 4는 본 발명에 따라 데이터 아이템의 저장 방법을 구현하는 분산형 저장 시스템에서의 저장 디바이스로서 사용될 수 있는 디바이스를 도시하고 있다. 디바이스(400)는 저장 디바이스의 관리 디바이스의 역할도 하는 범용 디바이스일 수 있다. 디바이스는 디지털 데이터- 및 주소 버스(414)에 의해 상호접속되는 이하의 컴포넌트를 포함한다.
- 프로세싱 유닛(411)(또는 중앙 프로세싱 유닛에 대한 CPU);
- 비-휘발성 메모리(NVM)(410);
- 휘발성 메모리(VM)(420);
- 디바이스(400)의 컴포넌트 간 동작의 동기화를 위한 그리고 타이밍 목적을 위한 참조 클록 신호를 제공하는 클록(412);
- 커넥션(415)을 통해 네트워크에서 접속된 다른 디바이스에 디바이스(400)의 상호접속을 위한 네트워크 인터페이스(413).
메모리(410, 420)의 설명에서 사용되는 단어 "레지스터"는 언급된 메모리의 각각에 있어서 몇몇 2진 데이터를 저장할 수 있는 저-용량 메모리 존과 더불어, 실행가능한 프로그램 또는 전 데이터 세트를 저장할 수 있는 고-용량 메모리 존도 지명함이 주목된다.
프로세싱 유닛(411)은 마이크로프로세서, 커스텀 칩, 전용 (마이크로-) 컨트롤러 등으로서 구현될 수 있다. 비-휘발성 메모리(NVM)(410)는 하드 디스크, 비-휘발성 램, EPROM(Erasable Programmable ROM) 등과 같이 비-휘발성 메모리의 형태로 구현될 수 있다.
비-휘발성 메모리(NVM)(410)는 주목할만하게는 본 발명에 따른 바로 그 수복 방법을 포함하는 실행가능한 프로그램을 표현하는 프로그램을 유지하는 레지스터(4201) 및 영속적 파라미터를 포함하는 레지스터(4202)를 포함한다. 전원이 켜질 때, 프로세싱 유닛(411)은 NVM 레지스터(4101)에 포함된 명령어를 로딩하고, 그들을 VM 레지스터(4201)에 복사하고, 그들을 실행한다.
VM 메모리(420)는 주목할만하게는 다음을 포함한다:
- NVM 레지스터(4101)의 프로그램 'prog'의 복사본을 포함하는 레지스터(4201);
- 데이터 저장소(4202).
디바이스(400)와 같은 디바이스는 데이터 아이템을 저장하는 본 발명의 방법을 구현하는데 적당하고, 그 디바이스는,
- 데이터 파일을 k개의 데이터 블록으로 분할하기 위한 그리고 k개의 데이터 블록의 랜덤 선형 결합을 통해 이들 k개의 블록으로부터 n개의 인코딩된 데이터 블록을 생성하기 위한 수단(CPU(411), VM 레지스터(4202));
- 동일 저장 디바이스 클러스터의 일부분인 n개의 저장 디바이스에 걸쳐 파일의 n개의 인코딩된 데이터 블록을 분산하기 위한 수단(CPU(411), 네트워크 인터페이스(413)), 각각의 클러스터는 별개의 저장 디바이스 세트를 포함하고, 파일의 n개의 인코딩된 데이터 블록은 각각의 저장 디바이스 클러스터가 적어도 2개의 다른 파일로부터의 인코딩된 데이터 블록을 저장하도록 그리고 저장 디바이스 클러스터의 저장 디바이스의 각각이 적어도 2개의 다른 파일로부터의 인코딩된 데이터 블록을 저장하도록 저장 디바이스 클러스터의 n개의 저장 디바이스에 걸쳐 분배된다.
변형 실시예에 의하면, 본 발명은 전적으로 하드웨어로, 예컨대, 전용 컴포넌트로(예컨대, ASIC, FPGA 또는 VLSI로)(각자 <<Application Specific Integrated Circuit>>, <<Field-Programmable Gate Array>> 및 <<Very Large Scale Integration>>) 또는 디바이스에 집적된 별개의 전자 컴포넌트로서 또는 하드웨어와 소프트웨어의 혼합의 형태로 구현된다.
도 5a는 순서도 형태로 본 발명에 따라 분산형 데이터 저장 시스템에 데이터 파일을 저장하는 방법을 도시하고 있다.
제1 단계(500)에서는, 방법이 초기화된다. 이러한 초기화는 방법의 적용에 요구되는 메모리 공간 및 변수의 초기화를 포함한다. 단계(501)에서는, 저장할 파일이 k개의 데이터 블록으로 분할되고, n개의 인코딩된 데이터 블록은 k개의 데이터 블록의 랜덤 선형 결합을 통해 이들 k개의 데이터 블록으로부터 생성된다. 단계(502)에서, 파일의 n개의 데이터 블록은 분산형 데이터 저장 시스템에서 동일 저장 디바이스 클러스터의 일부분인 저장 디바이스에 걸쳐 분산된다. 분산형 데이터 저장 시스템 내 각각의 클러스터는 별개의 저장 디바이스 세트를 포함한다. 파일의 n개의 인코딩된 데이터 블록은, 각각의 저장 디바이스 클러스터가 2개 이상의 파일로부터의 인코딩된 데이터 블록을 저장하도록 그리고 저장 디바이스 클러스터의 저장 디바이스의 각각이 적어도 2개의 다른 파일로부터의 인코딩된 데이터를 저장하도록, 동일 저장 디바이스 클러스터에 걸쳐 분배된다(또는 앞서 사용된 워딩을 사용하도록 분산된다), 또한 도 2 및 그 설명을 참조하라. 단계(503)에서는, 그 방법이 종료된다.
본 발명에 따라 분산형 데이터 저장 시스템에서의 이들 단계의 실행은 그러한 시스템에서의 디바이스에 의해 여러 다른 방식으로 행해질 수 있다.
예컨대, 단계(501)는 관리 디바이스, 즉, 분산형 데이터 저장 시스템을 관리하는 관리 디바이스, 또는 특정 클러스터를 관리하는 관리 디바이스에 의해 실행된다. 특정 디바이스인 대신에, 그러한 관리 디바이스는 관리 디바이스의 역할도 하는, 저장 디바이스와 같은, 어떠한 디바이스라도 될 수 있다.
도 5b는, 순서도 형태로, 본 발명의 저장 방법에 따라 파일이 k개의 데이터 블록으로 분할되어 데이터가 저장되는 분산형 데이터 저장 시스템에서 고장난 저장 디바이스를 수복하는 방법을 도시하고 있다.
제1 단계(600)에서는, 방법이 초기화된다. 이러한 초기화는 방법의 적용에 요구되는 메모리 공간 및 변수의 초기화를 포함한다. 단계(601)에서는, 교체 저장 디바이스가 고장난 저장 디바이스가 속하는 저장 디바이스 클러스터에 부가된다.
그 후 단계(602)에서, 교체 저장 디바이스는 그 저장 디바이스 클러스터 내 모든 k+1개의 남아있는 저장 디바이스로부터 랜덤 선형 결합을 수신한다. 이들 결합은 2개의 다른 파일(X, Y)로부터의 2개의 인코딩된 데이터 블록으로부터 발생된다(노트: 본 발명에 따른 데이터 저장 방법에 의하면, 각각의 저장 디바이스는 적어도 2개의 다른 파일로부터의 인코딩된 데이터 블록을 저장한다). 그 후, 단계(603)에서, 이들 수신된 새로운 랜덤 선형 결합은 2개의 선형 결합, 파일(X)에만 관련된 하나 및 파일(Y)에만 관련된 다른 하나가 획득되도록 그들 중에서 결합된다. 마지막 전 단계(604)에서 이들 2개의 결합이 교체 디바이스에 저장되고, 수복은 종료된다(단계(605)).
수복 방법은 예정 레벨 아래로 떨어지는 데이터 리던던시의 소망 레벨의 검출에 의해 트리거링될 수 있다.
도 6a는 분산형 데이터 시스템에서 데이터 파일의 저장을 관리하기 위한 디바이스(700)이며, 분산형 데이터 시스템은 네트워크에서 상호접속된 저장 디바이스를 포함하고 있다. 디바이스(700)는 저장 관리 디바이스라고 더 지칭될 것이다. 저장 관리 디바이스는 네트워크로의 접속을 위한 네트워크 커넥션(705)을 갖는 네트워크 인터페이스(703)를 포함한다. 저장 관리 디바이스(700)는 데이터 파일을 k개의 데이터 블록으로 분할하기 위한 그리고 k개의 데이터 블록의 랜덤 선형 결합을 통해 이들 k개의 데이터 블록으로부터 적어도 n개의 인코딩된 데이터 블록을 생성하기 위한 데이터 스플리터(701)를 더 포함한다. 저장 관리 디바이스(700)는 동일 저장 디바이스 클러스터의 일부분인 적어도 n개의 저장 디바이스에 걸쳐 파일의 적어도 n개의 데이터 블록을 분산함으로써 적어도 n개의 인코딩된 데이터 블록을 저장하기 위한 저장 분배기(702)를 더 포함한다. 각각의 클러스터는 별개의 저장 디바이스 세트를 포함하고, 파일의 적어도 n개의 인코딩된 데이터 블록은 각각의 저장 디바이스 클러스터가 적어도 2개의 다른 파일로부터의 인코딩된 데이터 블록을 저장하도록 그리고 저장 디바이스 클러스터의 저장 디바이스의 각각이 적어도 2개의 다른 파일로부터의 인코딩된 데이터 블록을 저장하도록 저장 디바이스 클러스터의 적어도 n개의 저장 디바이스에 걸쳐 분배됨으로써 분배된다. 데이터 스플리터(701), 저장 분배기(702) 및 네트워크 인터페이스(703)는 저장 관리 디바이스(700)의 내부 통신 버스를 통하여 상호접속된다.
특정 실시예에 의하면, 저장 관리 디바이스는 그 자체가 분산형 데이터 시스템 내 저장 디바이스 중 하나이다.
도 6b는 데이터가 본 발명의 저장 방법에 따라 저장되고 저장된 파일이 k개의 데이터 블록으로 분할되는 분산형 데이터 저장 시스템에서 고장난 저장 디바이스를 수복하는 것의 관리를 위한 디바이스(710)이다. 디바이스(710)는 수복 관리 디바이스라고 더 지칭될 것이다. 수복 관리 디바이스(710)는 커넥션(715)을 통하여 분산형 데이터 저장 시스템 내 디바이스의 접속을 위한 네트워크 인터페이스(713), 고장난 저장 디바이스가 속하는 저장 디바이스 클러스터에 교체 저장 디바이스를 부가하기 위한 교체기(711), 저장 디바이스 클러스터 내 k+1개의 남아있는 저장 디바이스 중 어느 하나로부터, k+1개의 저장 디바이스의 각각에 의해 저장된 2개의 다른 파일(X, Y)로부터의 2개의 인코딩된 데이터 블록으로부터 발생된 k+1개의 새로운 랜덤 선형 결합을 교체 저장 디바이스에 분배하기 위한 분배기(712)를 포함한다. 수복 관리 디바이스(710)는, 대수적 연산을 사용하여, 그 수신된 새로운 랜덤 선형 결합을 그들 중에서 결합하여 X에만 관련된 하나 및 Y에만 관련된 다른 하나로서 2개의 블록이 획득되는 2개의 선형 결합을 획득하기 위한 결합기(716)를 더 포함한다. 최종적으로, 수복 관리 디바이스는 교체 저장 디바이스에 그 2개의 선형 결합을 저장하기 위한 데이터 라이터(717)를 포함한다. 네트워크 인터페이스(713), 분배기(712), 교체기(711), 결합기(716) 및 데이터 라이터(717)는 내부 통신 버스(714)를 통하여 상호접속된다.
특정 실시예에 의하면, 저장 수복 관리 디바이스는 그 자체가 분산형 데이터 시스템 내 저장 디바이스 중 하나이다.
Claims (5)
- 네트워크 내 상호접속된 저장 디바이스를 포함하는 분산형 데이터 저장 시스템에 데이터 파일을 저장하는 방법으로서, 상기 방법은, 상기 분산형 데이터 저장 시스템에 저장할 상기 데이터 파일의 각각에 대해 실행되는,
- 상기 데이터 파일을 k개의 데이터 블록으로 분할하고, 상기 k개의 데이터 블록의 랜덤 선형 결합을 통해 상기 k개의 데이터 블록으로부터의 적어도 n개의 인코딩된 데이터 블록을 생성하는 단계; 및
- 동일 저장 디바이스 클러스터의 일부분인 적어도 n개의 저장 디바이스에 걸쳐 상기 파일의 상기 적어도 n개의 인코딩된 데이터 블록을 분산함으로써 상기 적어도 n개의 인코딩된 데이터 블록을 저장하는 단계를 포함하되,
각각의 클러스터는 별개의 저장 디바이스 세트를 포함하고, 상기 파일의 상기 적어도 n개의 인코딩된 데이터 블록은 각각의 저장 디바이스 클러스터가 적어도 2개의 다른 파일로부터의 인코딩된 데이터 블록을 저장하도록 그리고 저장 디바이스 클러스터의 상기 저장 디바이스의 각각이 적어도 2개의 다른 파일로부터의 인코딩된 데이터 블록을 저장하도록 저장 디바이스 클러스터의 상기 적어도 n개의 저장 디바이스에 걸쳐 분배되는 것을 특징으로 하는 방법. - 데이터가 제1항에 따라 저장되고 저장된 파일이 k개의 데이터 블록으로 분할되는 분산형 데이터 저장 시스템에서 고장난 저장 디바이스를 수복(repair)하는 방법으로서, 상기 방법은,
- 상기 고장난 저장 디바이스가 속하는 저장 디바이스 클러스터에 교체 저장 디바이스를 부가하는 단계;
- 상기 저장 디바이스 클러스터 내 k+1개의 남아있는 저장 디바이스 중 어느 하나로부터, 상기 k+1개의 저장 디바이스의 각각에 의해 저장된 2개의 다른 파일(X, Y)로부터의 2개의 인코딩된 데이터 블록으로부터 발생된 k+1개의 새로운 랜덤 선형 결합을, 상기 교체 저장 디바이스에 의해, 수신하는 단계;
- 대수적 연산을 사용하여 X에만 관련된 블록과 Y에만 관련된 다른 하나의 블록인 2개의 블록이 획득되는 2개의 선형 결합을 획득하도록 수신된 상기 새로운 랜덤 선형 결합을 서로 간 결합하는 단계; 및
- 상기 2개의 선형 결합을 상기 교체 저장 디바이스에 저장하는 단계를 포함하는 것을 특징으로 하는 방법. - 제2항에 있어서, 상기 수복하는 방법은 상기 분산형 데이터 시스템에 복귀하는 고장난 저장 디바이스를 상기 저장 디바이스 클러스터에 재통합하는 단계를 포함하는 것인 방법.
- 네트워크 내 상호접속된 저장 디바이스를 포함하는 분산형 데이터 저장 시스템에 데이터 파일의 저장을 관리하기 위한 디바이스(700)로서, 상기 디바이스는,
- 상기 데이터 파일을 k개의 데이터 블록으로 분할하고, 그리고 상기 k개의 데이터 블록의 랜덤 선형 결합을 통해 상기 k개의 데이터 블록으로부터의 적어도 n개의 인코딩된 데이터 블록을 생성하기 위한 데이터 스플리터(701) 수단; 및
- 동일 저장 디바이스 클러스터의 일부분인 적어도 n개의 저장 디바이스에 걸쳐 상기 파일의 상기 적어도 n개의 인코딩된 데이터 블록을 분산함으로써 상기 적어도 n개의 인코딩된 데이터 블록을 저장하기 위한 저장 분배기(702) 수단을 포함하되,
각각의 클러스터는 별개의 저장 디바이스 세트를 포함하고, 상기 파일의 상기 적어도 n개의 인코딩된 데이터 블록은 각각의 저장 디바이스 클러스터가 적어도 2개의 다른 파일로부터의 인코딩된 데이터 블록을 저장하도록 그리고 저장 디바이스 클러스터의 상기 저장 디바이스의 각각이 적어도 2개의 다른 파일로부터의 인코딩된 데이터 블록을 저장하도록 저장 디바이스 클러스터의 상기 적어도 n개의 저장 디바이스에 걸쳐 분배되는 것을 특징으로 하는 디바이스. - 데이터가 제1항에 따라 저장되고 저장된 파일이 k개의 데이터 블록으로 분할되는 분산형 데이터 저장 시스템에서 고장난 저장 디바이스의 수복을 관리하기 위한 디바이스(710)로서, 상기 디바이스는,
- 상기 고장난 저장 디바이스가 속하는 저장 디바이스 클러스터에 교체 저장 디바이스를 부가하기 위한 교체기(711) 수단;
- 상기 저장 디바이스 클러스터 내 k+1개의 남아있는 저장 디바이스 중 어느 하나로부터, 상기 k+1개의 저장 디바이스의 각각에 의해 저장된 2개의 다른 파일(X, Y)로부터의 2개의 인코딩된 데이터 블록으로부터 발생된 k+1개의 새로운 랜덤 선형 결합을 상기 교체 저장 디바이스에 분배하기 위한 분배기(712) 수단;
- 대수적 연산을 사용하여 X에만 관련된 하나의 블록과 Y에만 관련된 다른 하나의 블록인 2개의 블록이 획득되는 2개의 선형 결합을 획득하도록 수신된 상기 새로운 랜덤 선형 결합을 서로 간 결합하기 위한 결합기(716) 수단; 및
- 상기 2개의 선형 결합을 상기 교체 저장 디바이스에 저장하기 위한 데이터 라이터(717) 수단을 포함하는 것을 특징으로 하는 디바이스.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP12166706.7 | 2012-05-03 | ||
EP12166706.7A EP2660723A1 (en) | 2012-05-03 | 2012-05-03 | Method of data storing and maintenance in a distributed data storage system and corresponding device |
PCT/EP2013/058430 WO2013164227A1 (en) | 2012-05-03 | 2013-04-24 | Method of data storing and maintenance in a distributed data storage system and corresponding device |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150008440A true KR20150008440A (ko) | 2015-01-22 |
Family
ID=48227226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147033940A KR20150008440A (ko) | 2012-05-03 | 2013-04-24 | 분산형 데이터 저장 시스템에서 데이터 저장 및 보수 방법 및 대응하는 디바이스 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20150089283A1 (ko) |
EP (2) | EP2660723A1 (ko) |
JP (1) | JP2015519648A (ko) |
KR (1) | KR20150008440A (ko) |
CN (1) | CN104364765A (ko) |
WO (1) | WO2013164227A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101701131B1 (ko) * | 2016-04-28 | 2017-02-13 | 주식회사 라피 | 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템 |
Families Citing this family (166)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
WO2013191658A1 (en) * | 2012-06-20 | 2013-12-27 | Singapore University Of Technology And Design | System and methods for distributed data storage |
US9367562B2 (en) * | 2013-12-05 | 2016-06-14 | Google Inc. | Distributing data on distributed storage systems |
US9323615B2 (en) * | 2014-01-31 | 2016-04-26 | Google Inc. | Efficient data reads from distributed storage systems |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US8850108B1 (en) | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US10114757B2 (en) | 2014-07-02 | 2018-10-30 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US9766972B2 (en) | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
US9948615B1 (en) | 2015-03-16 | 2018-04-17 | Pure Storage, Inc. | Increased storage unit encryption based on loss of trust |
US11294893B2 (en) | 2015-03-20 | 2022-04-05 | Pure Storage, Inc. | Aggregation of queries |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US9672125B2 (en) * | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US20220027064A1 (en) * | 2015-04-10 | 2022-01-27 | Pure Storage, Inc. | Two or more logical arrays having zoned drives |
US10140149B1 (en) | 2015-05-19 | 2018-11-27 | Pure Storage, Inc. | Transactional commits with hardware assists in remote memory |
US9817576B2 (en) | 2015-05-27 | 2017-11-14 | Pure Storage, Inc. | Parallel update to NVRAM |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
AU2016290088A1 (en) * | 2015-07-08 | 2017-11-23 | Datomia Research Labs OṺ | System and method for secure transmission of signals from a camera |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US11232079B2 (en) | 2015-07-16 | 2022-01-25 | Pure Storage, Inc. | Efficient distribution of large directories |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
KR101621752B1 (ko) | 2015-09-10 | 2016-05-17 | 연세대학교 산학협력단 | 부분접속 복구 가능한 반복분할 부호를 이용한 분산 저장 장치 및 그 방법 |
US10007585B2 (en) * | 2015-09-21 | 2018-06-26 | TigerIT Americas, LLC | Fault-tolerant methods, systems and architectures for data storage, retrieval and distribution |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
WO2017132487A1 (en) * | 2016-01-29 | 2017-08-03 | Massachusetts Institute Of Technology | Apparatus and method for multi-code distributed storage |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US11449232B1 (en) | 2016-07-22 | 2022-09-20 | Pure Storage, Inc. | Optimal scheduling of flash operations |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US11080155B2 (en) | 2016-07-24 | 2021-08-03 | Pure Storage, Inc. | Identifying error types among flash memory |
US10216420B1 (en) | 2016-07-24 | 2019-02-26 | Pure Storage, Inc. | Calibration of flash channels in SSD |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US12039165B2 (en) | 2016-10-04 | 2024-07-16 | Pure Storage, Inc. | Utilizing allocation shares to improve parallelism in a zoned drive storage system |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US10613974B2 (en) | 2016-10-04 | 2020-04-07 | Pure Storage, Inc. | Peer-to-peer non-volatile random-access memory |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US10979223B2 (en) | 2017-01-31 | 2021-04-13 | Pure Storage, Inc. | Separate encryption for a solid-state drive |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US11138103B1 (en) | 2017-06-11 | 2021-10-05 | Pure Storage, Inc. | Resiliency groups |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US10425473B1 (en) | 2017-07-03 | 2019-09-24 | Pure Storage, Inc. | Stateful connection reset in a storage cluster with a stateless load balancer |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10831935B2 (en) | 2017-08-31 | 2020-11-10 | Pure Storage, Inc. | Encryption management with host-side data reduction |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
DE102017216974A1 (de) * | 2017-09-25 | 2019-05-16 | Bundesdruckerei Gmbh | Dataculestruktur und Verfahren zum manipulationssicheren Speichern von Daten |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US12032848B2 (en) | 2021-06-21 | 2024-07-09 | Pure Storage, Inc. | Intelligent block allocation in a heterogeneous storage system |
US12067274B2 (en) | 2018-09-06 | 2024-08-20 | Pure Storage, Inc. | Writing segments and erase blocks based on ordering |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10990566B1 (en) | 2017-11-20 | 2021-04-27 | Pure Storage, Inc. | Persistent file locks in a storage system |
US10929053B2 (en) | 2017-12-08 | 2021-02-23 | Pure Storage, Inc. | Safe destructive actions on drives |
US10719265B1 (en) | 2017-12-08 | 2020-07-21 | Pure Storage, Inc. | Centralized, quorum-aware handling of device reservation requests in a storage system |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
CN108062419B (zh) * | 2018-01-06 | 2021-04-20 | 深圳市网心科技有限公司 | 一种文件存储方法、电子设备、系统和介质 |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10733053B1 (en) | 2018-01-31 | 2020-08-04 | Pure Storage, Inc. | Disaster recovery for high-bandwidth distributed archives |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US12001688B2 (en) | 2019-04-29 | 2024-06-04 | Pure Storage, Inc. | Utilizing data views to optimize secure data access in a storage system |
US11995336B2 (en) | 2018-04-25 | 2024-05-28 | Pure Storage, Inc. | Bucket views |
US10853146B1 (en) | 2018-04-27 | 2020-12-01 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US12079494B2 (en) | 2018-04-27 | 2024-09-03 | Pure Storage, Inc. | Optimizing storage system upgrades to preserve resources |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US10931450B1 (en) | 2018-04-27 | 2021-02-23 | Pure Storage, Inc. | Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers |
US11436023B2 (en) | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
US11438279B2 (en) | 2018-07-23 | 2022-09-06 | Pure Storage, Inc. | Non-disruptive conversion of a clustered service from single-chassis to multi-chassis |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US10454498B1 (en) | 2018-10-18 | 2019-10-22 | Pure Storage, Inc. | Fully pipelined hardware engine design for fast and efficient inline lossless data compression |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
EP3713094A1 (en) * | 2019-03-22 | 2020-09-23 | Zebware AB | Application of the mojette transform to erasure correction for distributed storage |
US11151093B2 (en) * | 2019-03-29 | 2021-10-19 | International Business Machines Corporation | Distributed system control for on-demand data access in complex, heterogenous data storage |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US12087382B2 (en) | 2019-04-11 | 2024-09-10 | Pure Storage, Inc. | Adaptive threshold for bad flash memory blocks |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11487665B2 (en) | 2019-06-05 | 2022-11-01 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US11714572B2 (en) | 2019-06-19 | 2023-08-01 | Pure Storage, Inc. | Optimized data resiliency in a modular storage system |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
CN110825791A (zh) * | 2019-11-14 | 2020-02-21 | 北京京航计算通讯研究所 | 基于分布式系统的数据访问性能优化系统 |
CN110895451A (zh) * | 2019-11-14 | 2020-03-20 | 北京京航计算通讯研究所 | 基于分布式系统的数据访问性能优化方法 |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US12001684B2 (en) | 2019-12-12 | 2024-06-04 | Pure Storage, Inc. | Optimizing dynamic power loss protection adjustment in a storage system |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
US11507297B2 (en) | 2020-04-15 | 2022-11-22 | Pure Storage, Inc. | Efficient management of optimal read levels for flash storage systems |
US11256587B2 (en) | 2020-04-17 | 2022-02-22 | Pure Storage, Inc. | Intelligent access to a storage device |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US12056365B2 (en) | 2020-04-24 | 2024-08-06 | Pure Storage, Inc. | Resiliency for a storage system |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
US11513974B2 (en) | 2020-09-08 | 2022-11-29 | Pure Storage, Inc. | Using nonce to control erasure of data blocks of a multi-controller storage system |
CN112445656B (zh) * | 2020-12-14 | 2024-02-13 | 北京京航计算通讯研究所 | 分布式存储系统中数据的修复方法及装置 |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US12067282B2 (en) | 2020-12-31 | 2024-08-20 | Pure Storage, Inc. | Write path selection |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US12093545B2 (en) | 2020-12-31 | 2024-09-17 | Pure Storage, Inc. | Storage system with selectable write modes |
US12061814B2 (en) | 2021-01-25 | 2024-08-13 | Pure Storage, Inc. | Using data similarity to select segments for garbage collection |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US12099742B2 (en) | 2021-03-15 | 2024-09-24 | Pure Storage, Inc. | Utilizing programming page size granularity to optimize data segment storage in a storage system |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2002224448A1 (en) * | 2000-10-26 | 2002-05-06 | Prismedia Networks, Inc. | Method and apparatus for large payload distribution in a network |
US20070177739A1 (en) * | 2006-01-27 | 2007-08-02 | Nec Laboratories America, Inc. | Method and Apparatus for Distributed Data Replication |
US8051362B2 (en) * | 2007-06-15 | 2011-11-01 | Microsoft Corporation | Distributed data storage using erasure resilient coding |
EP2288991B8 (en) * | 2008-05-05 | 2018-02-28 | Amplidata NV | Method of storing a data set in a distributed storage system, distributed storage system and computer program product for use with said method |
US8949449B2 (en) * | 2008-10-15 | 2015-02-03 | Aster Risk Management Llc | Methods and systems for controlling fragment load on shared links |
US20100138717A1 (en) * | 2008-12-02 | 2010-06-03 | Microsoft Corporation | Fork codes for erasure coding of data blocks |
EP2394220B1 (en) * | 2009-02-03 | 2014-10-22 | Bittorrent, Inc. | Distributed storage of recoverable data |
US8458287B2 (en) * | 2009-07-31 | 2013-06-04 | Microsoft Corporation | Erasure coded storage aggregation in data centers |
US8631269B2 (en) * | 2010-05-21 | 2014-01-14 | Indian Institute Of Science | Methods and system for replacing a failed node in a distributed storage network |
EP2793130B1 (en) * | 2010-12-27 | 2015-12-23 | Amplidata NV | Apparatus for storage or retrieval of a data object on a storage medium, which is unreliable |
US8645799B2 (en) * | 2010-12-31 | 2014-02-04 | Microsoft Corporation | Storage codes for data recovery |
US8538029B2 (en) * | 2011-03-24 | 2013-09-17 | Hewlett-Packard Development Company, L.P. | Encryption key fragment distribution |
WO2013164228A1 (en) * | 2012-05-04 | 2013-11-07 | Thomson Licensing | Method of storing a data item in a distributed data storage system, corresponding storage device failure repair method and corresponding devices |
CN104583965B (zh) * | 2012-08-16 | 2017-08-11 | 英派尔科技开发有限公司 | 将编码数据文件存储在多个文件服务器上 |
US9647698B2 (en) * | 2013-02-26 | 2017-05-09 | Peking University Shenzhen Graduate School | Method for encoding MSR (minimum-storage regenerating) codes and repairing storage nodes |
US9632829B2 (en) * | 2013-03-14 | 2017-04-25 | California Institute Of Technology | Distributed storage allocation for heterogeneous systems |
-
2012
- 2012-05-03 EP EP12166706.7A patent/EP2660723A1/en not_active Withdrawn
-
2013
- 2013-04-24 US US14/398,502 patent/US20150089283A1/en not_active Abandoned
- 2013-04-24 WO PCT/EP2013/058430 patent/WO2013164227A1/en active Application Filing
- 2013-04-24 KR KR1020147033940A patent/KR20150008440A/ko not_active Application Discontinuation
- 2013-04-24 EP EP13719477.5A patent/EP2845099A1/en not_active Withdrawn
- 2013-04-24 CN CN201380026373.XA patent/CN104364765A/zh active Pending
- 2013-04-24 JP JP2015509372A patent/JP2015519648A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101701131B1 (ko) * | 2016-04-28 | 2017-02-13 | 주식회사 라피 | 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템 |
Also Published As
Publication number | Publication date |
---|---|
WO2013164227A1 (en) | 2013-11-07 |
US20150089283A1 (en) | 2015-03-26 |
EP2660723A1 (en) | 2013-11-06 |
JP2015519648A (ja) | 2015-07-09 |
EP2845099A1 (en) | 2015-03-11 |
CN104364765A (zh) | 2015-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20150008440A (ko) | 분산형 데이터 저장 시스템에서 데이터 저장 및 보수 방법 및 대응하는 디바이스 | |
CA2751358C (en) | Distributed storage of recoverable data | |
US9104603B2 (en) | Method of exact repair of pairs of failed storage nodes in a distributed data storage system and corresponding device | |
CN108540520B (zh) | 基于部分重复码的局部性修复编码及节点故障修复方法 | |
EP2288991B1 (en) | Method of storing a data set in a distributed storage system, distributed storage system and computer program product for use with said method | |
US20150127974A1 (en) | Method of storing a data item in a distributed data storage system, corresponding storage device failure repair method and corresponding devices | |
US8719667B2 (en) | Method for adding redundancy data to a distributed data storage system and corresponding device | |
KR20120058556A (ko) | 인코딩 및 디코딩 프로세스들을 위해 심볼들의 영속적 비활성화에 의한 fec 코드들을 활용하는 방법 및 장치 | |
RU2680350C2 (ru) | Способ и система распределенного хранения восстанавливаемых данных с обеспечением целостности и конфиденциальности информации | |
CN104052576A (zh) | 一种云存储下基于纠错码的数据恢复方法 | |
Lin et al. | Novel repair-by-transfer codes and systematic exact-MBR codes with lower complexities and smaller field sizes | |
CN104935481A (zh) | 一种分布式存储下基于冗余机制的数据恢复方法 | |
JP2612000B2 (ja) | データ処理装置 | |
CN111679939A (zh) | 数据备份方法及系统 | |
CN111090540A (zh) | 基于纠删码的数据处理方法与装置 | |
Han et al. | Update-efficient regenerating codes with minimum per-node storage | |
CN110704232B (zh) | 一种分布式系统中失效节点的修复方法、装置和设备 | |
CN107615248A (zh) | 分布式数据存储方法、控制设备和系统 | |
JP2012033169A (ja) | バックアップシステムにおける符号化を使用して、ライブチェックポインティング、同期、及び/又は復旧をサポートするための方法及び装置 | |
Singal et al. | Storage vs repair bandwidth for network erasure coding in distributed storage systems | |
TW201351126A (zh) | 分佈式資料儲存系統內資料檔案之儲存方法和管理裝置以及故障儲存裝置之修理方法和修理管理裝置 | |
Rai | On adaptive (functional MSR code based) distributed storage systems | |
JP7140424B1 (ja) | コンピュータ装置、情報処理方法、プログラム | |
CN117667834B (zh) | 存算解耦系统、数据处理方法及存储介质 | |
Han et al. | Update-Efficient Error-Correcting Regenerating Codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |