US11349500B2 - Data recovery in a geographically diverse storage system employing erasure coding technology and data convolution technology - Google Patents
Data recovery in a geographically diverse storage system employing erasure coding technology and data convolution technology Download PDFInfo
- Publication number
- US11349500B2 US11349500B2 US16/743,427 US202016743427A US11349500B2 US 11349500 B2 US11349500 B2 US 11349500B2 US 202016743427 A US202016743427 A US 202016743427A US 11349500 B2 US11349500 B2 US 11349500B2
- Authority
- US
- United States
- Prior art keywords
- chunk
- fragment
- chunks
- data
- recovery
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2927—Decoding strategies
- H03M13/293—Decoding strategies with erasure setting
-
- 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/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1461—Backup scheduling policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1489—Generic software techniques for error detection or fault masking through recovery blocks
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/23—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
- H03M13/235—Encoding of convolutional codes, e.g. methods or arrangements for parallel or block-wise encoding
Definitions
- the disclosed subject matter relates to data recovery and, more particularly, to data recovery in a geographically diverse storage system that convolves chunks and that employs erasure coding techniques to protect fragments of stored chunks.
- Conventional data storage techniques can employ convolution and deconvolution of data to conserve storage space.
- convolution can allow data to be packed or hashed in a manner that uses less space that the original data. Accordingly, a convolution of first data and second data, etc., can typically be de-convolved to the original first data and second data.
- other conventional data storage techniques can employ erasure coding to protect stored data.
- One use of data storage is in bulk data storage.
- FIG. 1 is an illustration of an example system that can facilitate data convolution for geographically diverse storage, in accordance with aspects of the subject disclosure.
- FIG. 2 is an illustration of an example system that can facilitate data convolution and erasure coding of chunks for geographically diverse storage, in accordance with aspects of the subject disclosure.
- FIG. 3 illustrates an example system showing compromised data that cannot be recovered via deconvolution alone and cannot be recovered via erasure decoding alone, in accordance with aspects of the subject disclosure.
- FIG. 4 is an illustration of an example system showing compromised data that can be recovered via mixed deconvolution and erasure decoding, in accordance with aspects of the subject disclosure.
- FIG. 5 illustrates an example system showing partial recovery of compromised data that can be recovered via mixed deconvolution and erasure decoding, in accordance with aspects of the subject disclosure.
- FIG. 6 illustrates an example system showing full recovery of compromised data that can be recovered via mixed deconvolution and erasure decoding, in accordance with aspects of the subject disclosure.
- FIG. 7 is an illustration of example methods facilitating partial recovery of data via deconvolution then erasure decoding, via erasure decoding then deconvolution, etc. in accordance with aspects of the subject disclosure.
- FIG. 8 illustrates an example method facilitating at least partial recovery of data via mixed deconvolution and erasure decoding, in accordance with aspects of the subject disclosure.
- FIG. 9 depicts an example schematic block diagram of a computing environment with which the disclosed subject matter can interact.
- FIG. 10 illustrates an example block diagram of a computing system operable to execute the disclosed systems and methods in accordance with an embodiment.
- data storage techniques can employ convolution and deconvolution to conserve storage space.
- convolution can allow data to be packed or hashed in a manner that uses less space that the original data.
- convolved data e.g., a convolution of first data and second data, etc.
- One use of data storage is in bulk data storage. Examples of bulk data storage can include networked storage, e.g., cloud storage, for example ECS, formerly ‘Elastic Cloud Storage,’ offered by Dell EMC.
- Bulk storage can, in an aspect, manage disk capacity via partitioning of disk space into blocks of fixed size, frequently referred to as chunks, for example a 128 MB chunk, etc.
- Chunks can be used to store user data, and the chunks can be shared among the same or different users, for example, one chunk may contain fragments of several user objects.
- a chunk's content can generally be modified in an append-only mode to prevent overwriting of data already added to the chunk. As such, when a typical chunk becomes full enough, it can be sealed so that the data therein is generally not available for further modification.
- These chunks can be then stored in a geographically diverse manner to allow for recovery of the data where a first copy of the data is destroyed, e.g., disaster recovery, etc.
- Blocks of data not strictly user data, hereinafter ‘data chunks’, ‘journal chunks’, ‘convolved chunks’, or simply ‘chunks’ unless otherwise explicitly or implicitly directed to a specific type of chunk, can be used to store data, e.g., user data, operational data, parameter, data map information, etc., facilitate storage of user data, enable protection of user data, etc.
- data chunks e.g., user data, operational data, parameter, data map information, etc.
- a typical data chunk can contain fragments of different user data objects
- a typical journal chunk can store information facilitating geographically diverse, and/or convolved geographically diverse data storage
- a typical convolved chunk can store information pertaining to portions of two or more chunks, e.g., data chunks, journal chunks, convolved chunks, etc.
- a convolved chunk can comprise information corresponding to another convolved chunk, a data chunk, etc.
- Chunk contents can be modified, for example, in an append-only mode to prevent overwriting of data already added to the chunk, etc.
- chunks from a data storage device e.g., ‘zone storage component’, ‘zone storage device’, etc., located in a first geographic location, hereinafter a ‘zone’, etc.
- a data storage device e.g., ‘zone storage component’, ‘zone storage device’, etc.
- a ‘zone’, etc. located in a first geographic location
- a ‘zone’, etc. can be stored in a second zone storage device that is located at a second geographic location different from the first geographic location. This can enable recovery of data where the first zone storage device is less available, e.g., damaged, destroyed, offline, etc., thereby supporting disaster recovery of data, etc., by accessing the off-site data from the second zone storage device.
- Geographically diverse data storage can use data compression to store data.
- a storage device in Topeka can store a backup of data from a first zone storage device in Houston, e.g., Topeka can be considered geographically diverse from Houston.
- data chunks from Seattle and San Jose can be stored in Denver.
- compression can comprise convolving data and decompression can comprise deconvolving data
- decompression can comprise deconvolving data
- Compression therefore, can allow original data to be recovered via decompression from a compressed chunk that consumes less storage space than storage of the corresponding or participating uncompressed data chunks.
- This can be beneficial in that data from a location can be backed up by redundant data in another location via a compressed chunk, wherein a redundant data chunk can be smaller than the sum of the data chunks contributing to the compressed chunk.
- local chunks e.g., chunks from different zone storage devices, can be compressed via a convolution technique to reduce the amount of storage space used by a compressed chunk at a geographically distinct location.
- a convolved chunk stored at a geographically diverse storage device can comprise data from some or all storage devices of a geographically diverse storage system.
- a first storage device can convolve chunks from the other four storage devices to create a ‘backup’ of the data from the other four storage devices.
- the first storage device can create a backup chunk by convolving chunks received from the other four storage devices. In an aspect, this can result in generating copies of the four received chunks at the first storage device and then convolving the four chunks to generate a fifth chunk that is a backup of the other four chunks.
- one or more other copies of the four chunks can be created at the first storage device for redundancy, for example if each chunk has two redundant chunks created, then the four received chunks and their redundant copies can result in creating 12 chunks at the first storage device before creating the convolved chunk that can then also be redundantly copied resulting in 15 chunk creation events. Further, the 12 now redundant copies of the four received chunks can then be deleted, e.g., the storage space can be released for reuse, the corresponding storage space can be overwritten and released, etc., leaving just the convolved chunk and related redundant convolved chunk.
- a first data chunk and a second data chunk corresponding to a first and second zone that are geographically diverse can be stored in a third data chunk stored at third zone that is geographically diverse from the first and second zones, for example see system 100 .
- the third chunk for example chunk 132 of system 100
- first data of the first data chunk and second data of the second data chunk can be convolved with or without replicating the entire first data chunk and the entire second data chunk at data store(s) of the third zone, e.g., as at least a portion of the first data chunk and at least a portion of the second data chunk are received at the third zone, they can be convolved to form at least a portion of the third data chunk.
- compression occurs without replicating a chunk at another zone prior to compression, this can be termed as ‘on-arrival data compression’ and can reduce the count of replicate data made at the third zone and data transfers events can correspondingly also be reduced.
- chunk 112 and chunk 122 can be on-arrival convolved into chunk 132 , e.g., without forming chunk 113 and chunk 123 .
- replicates of the third data chunk can be stored in a data store(s) of the third zone.
- chunk 132 can be stored in third zone storage component (ZSC) 130 , replicated as another chunk in ZSC 130 , replicated in another zone, etc.
- ZSC third zone storage component
- a ZSC can comprise one or more data storage components that can be communicatively coupled, e.g., a ZSC can comprise one data store, two or more communicatively coupled data stores, etc., such that the replication of data in the ZSC can provide data redundancy in the ZSC, for example, providing protection against loss of one or more data stores of the ZSC.
- a ZSC can comprise multiple hard drives and data replicates can be stored on more than one hard drive such that, if a hard drive fails, other hard drives of the ZSC can still enable access to a data replicate.
- Compression of chunks can be performed by different compression technologies.
- Logical operations can be applied to chunk data to allow compressed data to be recoverable, e.g., by reversing the logical operations to revert to the initial chunk data.
- One possible compression technique can be an ‘exclusive-or’ technique.
- Exclusive-or convolution can hereinafter be denoted as ‘XOR’, ‘ ⁇ ’, etc.
- data from chunk 1 can undergo an XOR operation with data from chunk 2 to form chunk 3.
- logical and/or mathematical operations can be employed in compression of chunks, those operations are generally beyond the scope of the presently disclosed subject matter and, for clarity and brevity, only the XOR operator will be illustrated herein. However, it is noted that the disclosure is not so limited and that those other operations or combinations of operations can be substituted without departing from the scope of the present disclosure. As such, all logical and/or mathematical operations for compression germane to the disclosed subject matter are to be considered within the scope of the present disclosure even where not explicitly recited for the sake of clarity and brevity.
- Zones can correspond to a geographic location or region.
- Zone A can comprise Seattle, Wash.
- Zone B can comprise Dallas, Tex.
- Zone C can comprise Boston, Mass.
- a local chunk from Zone A is replicated, e.g., compressed or uncompressed, in Zone C
- an earthquake in Seattle can be less likely to damage the replicated data in Boston.
- a local chunk from Dallas can be convolved with the local Seattle chunk, which can result in a compressed/convolved chunk, e.g., a partial or complete chunk, which can be stored in Boston.
- either the local chunk from Seattle or Dallas can be used to de-convolve the partial/complete chunk stored in Boston to recover the full set of both the Seattle and Dallas local data chunks.
- the convolved Boston chunk can consume less disk space than the sum of the Seattle and Dallas local chunks.
- the disclosed subject matter can further be employed in more or fewer zones, in zones that are the same or different than other zones, in zones that are more or less geographically diverse, etc.
- the disclosed subject matter can be applied to data of a single disk, memory, drive, data storage device, etc., without departing from the scope of the disclosure, e.g., the zones represent different logical areas of the single disk, memory, drive, data storage device, etc.
- XORs of data chunks in disparate geographic locations can provide for de-convolution of the XOR data chunk to regenerate the input data chunk data.
- the Fargo chunk, D can be de-convolved into C1 and E1 based on either C1 or D1;
- the Miami chunk, C can be de-convolved into A1 or B1 based on either A1 or B1; etc.
- convolving data into C or D comprises deletion of the replicas that were convolved, e.g., A1 and B1, or C1 and E1, respectively, to avoid storing both the input replicas and the convolved chunk
- de-convolution can rely on retransmitting a replica chunk that so that it can be employed in de-convoluting the convolved chunk.
- the Seattle chunk and Dallas chunk can be replicated in the Boston zone, e.g., as A1 and B1.
- the replicas, A1 and B1 can then be convolved into C.
- Replicas A1 and B1 can then be deleted because their information is redundantly embodied in C, albeit convolved, e.g., via an XOR process, etc.
- the corollary input data chunk can be used to de-convolve C.
- the data can be recovered from C by de-convolving C with a replica of the Dallas chunk B.
- B can be replicated by copying B from Dallas to Boston as B1, then de-convolving C with B1 to recover A1, which can then be copied back to Seattle to replace corrupted chunk A.
- disk space management can seek to recover underutilized disk space.
- recovery of the Dallas chunk, B, via Boston convolved chunk, C becomes dependent on having a copy of B to de-convolve C with after A has been deleted.
- recovery of B1 can be based on E1 and the XOR of B1E1.
- a replica of A e.g., A1 is made in Boston, this allows recovery of B1.
- B1 Once B1 is recovered, C, A1, and A can be deleted. Then B1 can be convolved with E1. It will be noted that data is transferred, e.g., A is copied into A1 from Seattle to Boston, to allow C to be de-convolved.
- erasure coding can be employed to protect data in a geographically diverse data storage system.
- Erasure coding can divide a data portion (D) into k data segments, fragments, etc.
- m redundant coding segments, fragments, etc. can be created.
- Encoding can assure that a loss of up to any m segments of the k+m segments can be tolerated without loss of data access. If up to m segments are lost or become less accessible (hereinafter simply ‘lost’ unless otherwise explicitly indicated otherwise), the missing segments can be restored via a decoding operation.
- An erasure coding protection scheme can be identified as resulting in k+m data segments, e.g., k data segment and m coding segments result for a single data portion of a protection set, e.g., for a data chunk, etc., see, for example, Chunk 212 A of first ZSC 212 in system 200 of FIG.
- Any erasure coding scheme is expressly within the scope of the instant disclosure, even where not recited for the sake of clarity and brevity.
- erasure encoding can reduce the amount of data that needs to be accessed, communicated, processed, stored, etc., to facilitate a designated level of data robustness in the geographically diverse data storage system. For example, without erasure coding, for p+1 geographically distributed zones, there can be manipulation of at least p+1 chunks, for example, of 128 MB each, which can be computer resource intensive where more than a small number of chunks are compromised.
- the p+1 chunks can be encoded into fewer coding chunks that can consume less storage space and can be communicated/accessed with less computer resources than the p+1 chunks, for example, in a 4+2 erasure coding scheme, two coding chunks can be distributed to provide data protection rather than replicating and storing greater numbers of replicate chunks. Then, in this example, the coding chunks can be used to recover data rather than having to use the larger number of replicate chunks of a non-erasure coding system.
- erasure coding e.g., instead of basic XOR techniques, etc., to protect data in a geographically diverse storage system
- use of erasure coding can be beneficial, for example by reducing computer resource demands in storing, recovering, etc., data chunks or portions thereof.
- erasure coding was created as a forward error correction method for binary erasure channels.
- erasure coding can divide a data portion, into k data fragments of equal size.
- m coding fragments can be created, which can enable access to data of the data portion, e.g., data of a data portion that has been erasure encoded into k+m fragments can be accessible with loss of up to m fragments, for example, in a 12+4 encoding, data can still be accessed despite the loss of up to four data fragments, four coding fragments, two data and two coding fragments, etc. It can be said that the way the encoding is done can assure that a system can tolerate the loss of any m fragments.
- the process of generating coding fragments can be referred to as ‘encoding.’
- the process of recovering data fragments from an encoded data portion e.g., using available data fragments and/or coding fragments, can be termed ‘decoding.’
- erasure coding technology can be employed in conjunction with, rather than instead of, convolution technology.
- erasure coding can protect chunks, including convolved chunks distributed in a geographically diverse data storage system. As such, where a chunk can suffer loss of some fragments, these fragments can be recovered with erasure coding decoding to restore the chunk, whereby the chunk can participate in deconvolutions to access data in the geographically diverse data storage system.
- a third chunk ‘C’ can comprise a convolution of a first ‘A’ and second ‘B’ chunk, where the chunks are protected by a 12+4 erasure coding scheme.
- a peer group of chunks can be a group of chunks related to a convolution operation.
- a first peer group can comprise A, B, and C, but can exclude D and E.
- a first peer group can comprise A, B, and C, but can exclude D and E and a second peer group can comprise C, D, and E but can exclude A and B, albeit information represented in A and B are indeed nested within the second peer group via C.
- an encoded convolved chunk can comprise data corresponding to convolving contributing chunk fragments.
- a XOR B C
- C′ is an encoding of chunk C according to a first erasure coding scheme
- C′ (A′ XOR B′)
- encoded chunk C is the XOR of encoded chunk A and encoded chunk B
- A′ is chunk A encoded according to the first erasure coding scheme
- B′ is chunk B encoded according to the first erasure coding scheme.
- FIG. 1 is an illustration of a system 100 , which can facilitate data convolution for geographically diverse storage, in accordance with aspects of the subject disclosure.
- System 100 can comprise three or more zone storage components (ZSCs), e.g., first ZSC 110 , second ZSC 120 , third ZSC 130 , etc.
- the ZSCs can communicate with the other ZSCs of system 100 .
- a zone can correspond to a geographic location or region. As such, different zones can be associated with different geographic locations or regions.
- a ZSC can comprise one or more data stores in one or more locations.
- a ZSC can store at least part of a data chunk on at least part of one data storage device, e.g., hard drive, flash memory, optical disk, cloud storage, etc.
- a ZSC can store at least part of one or more data chunks on one or more data storage devices, e.g., on one or more hard disks, across one or more hard disks, etc.
- a ZSC can comprise one or more data storage devices in one or more data storage centers corresponding to a zone, such as a first hard drive in a first location proximate to Miami, a second hard drive also proximate to Miami, a third hard drive proximate to Orlando, etc., where the related portions of the first, second, and third hard drives correspond to, for example, a ‘Miami zone’.
- data chunks can be replicated in their source zone, in a geographically diverse zone, in their source zone and one or more geographically diverse zones, etc.
- a Seattle zone can comprise a first chunk that can be replicated in the Seattle zone to provide data redundancy in the Seattle zone, e.g., the first chunk can have one or more replicated chunks in the Seattle zone, such as on different storage devices corresponding to the Seattle zone, thereby providing data redundancy that can protect the data of the first chunk, for example, where a storage device storing the first chunk or a replicate thereof becomes compromised, the other replicates (or the first chunk itself) can remain uncompromised.
- data replication in a zone can be on one or more storage devices, e.g., chunk 212 can be stored on a first data storage device, chunk 214 can be stored on a second storage device, and chunk 216 can be stored on a third storage device, wherein the first, second, and third storage devices correspond to the first zone, and wherein the first, second, and third storage devices can be the same storage device or different storage devices.
- Replication of chunks can comprise communicating data, e.g., over a network, bus, etc., to other data storage locations on the first, second, and third storage devices and, moreover, can consume data storage resources, e.g., drive space, etc., upon replication.
- the number of replicates can be based on balancing resource costs, e.g., network traffic, processing time, cost of storage space, etc., against a level of data redundancy, e.g., how much redundancy is needed to provide a level of confidence that the data/replicated data will be available within a zone.
- a geographically diverse storage system e.g., a system comprising system 100
- the replicate at the geographically diverse ZSC can provide data redundancy at a different level than the level associated with data replicates within a single ZSC.
- first ZSC 110 is affiliated with a Seattle zone
- third ZSC 130 is affiliated with a Boston zone
- a regional event that compromises chunk 112 in the Seattle zone can be less likely to also compromise chunk 113 in the Boston zone.
- replication of chunks between different zones of system 100 can consume data storage resources, e.g., network traffic, data storage space, processor time, energy, manpower, etc.
- data storage resources e.g., network traffic, data storage space, processor time, energy, manpower, etc.
- replication of chunk 112 and chunk 122 at third ZSC 130 e.g., as chunk 113 and chunk 123 respectively, can consume processing cycles at each of the first to third ZSCs 110 , 120 , and 130 , can consume network resources to communicate the data between the first to third ZSCs 110 , 120 , and 130 , can consume data storage space/resources at each of the first to third ZSCs 110 , 120 , and 130 , etc.
- a ZSC e.g., ZSC 130
- the replicated chunks can occupy a first amount of storage space, e.g., chunks 113 and 123 consume a first amount of storage space on storage device(s) of third ZSC 130 .
- Compression of the redundant data can reduce the amount of consumed storage space while preserving the redundancy of the data.
- chunk 113 and chunk 123 can be compressed into chunk 132 that can consume less data storage space than the space associated with separately storing each of chunk 113 and chunk 123 .
- FIG. 2 is an illustration of an example system 200 that can facilitate data convolution and erasure coding of chunks for geographically diverse storage, in accordance with aspects of the subject disclosure.
- System 200 can comprise three ZSCs, e.g., first ZSC 210 , second ZSC 220 , third ZSC 230 , etc., which can be comprise in a geographically diverse storage system.
- Chunks 212 and 222 can be replicated and compressed as chunk 232 , e.g., chunk 232 can comprise information enabling recovery of chunks 212 or 222 via deconvolution.
- the information represented in chunks 212 and/or 222 can remain accessible.
- chunks 212 and 222 can remain accessible via ZSC 210 and 220 respectively.
- the information represented in chunk 212 can be recovered via deconvolving chunk 232 with chunk 222 .
- chunks 212 , 222 , and 232 can be regarded as a peer group. Where two chunks of the peer group become less accessible, for example where chunk 212 is lost and where chunk 232 is damaged, etc., recovery of data can be compromised, e.g., in this example, the information represented on chunk 212 cannot be recovered from chunk 222 and damaged chunk 232 , etc.
- the data can be recoverable.
- chunk 212 A can be an encoding of chunk 212 according to a 12+4 erasure coding scheme
- chunk 222 A can be an encoding of chunk 222 according to the 12+4 erasure coding scheme
- chunk 232 A can be an encoding of chunk 232 according to the 12+4 erasure coding scheme, which can allow fragment recovery of fragments, e.g., fragment D 1 A , etc., hereinafter written as ‘D1A’ for simplicity.
- loss of up to any four fragments can be recovered, e.g., loss of D1A to D3A and C1A can be recovered via decoding within chunk 212 A by employing the remaining fragments of chunk 212 A according to the first example 12+4 erasure coding scheme.
- chunk 222 A becomes unavailable and chunk 212 A becomes damaged e.g., loses D1A to D3A and C1A
- the data of chunk 222 A would be regarded as being lost.
- chunk 222 A can be recovered by deconvolving chunk 232 A and restored chunk 212 A.
- fragments of a chunk can be recovered from remaining fragments of other chunks in a peer group.
- corresponding peer group fragments can be deconvolved to recover other less accessible fragments.
- the data can again be regarded as lost, e.g., where chunk 212 A loses D1A and chunk 232 A loses D1X, then the remaining corresponding peer group fragment, e.g., D1B, is not sufficient to enable recovery of either D1A or D1X via peer fragment deconvolution, although, in this example, where all other fragments remain, erasure coding scheme decoding can facilitate recovery of D1A from the remaining fragments of chunk 212 A and/or chunk D1X from the remaining fragments of 232 A, and this in turn can enable peer fragment deconvolution to proceed.
- losing more than m fragments of an encoded chunk and sufficient corresponding fragments of other peer group chunks can result in a fragment that is not directly recoverable via either decoding, nor directly via fragment deconvolution.
- corresponding fragments in a peer group can be based on each chunk of the peer group employing a same erasure coding scheme.
- a chunk can be encoded according to nearly any erasure coding scheme.
- chunk 212 can be encoded according to a 12+4 erasure coding scheme, e.g., as illustrated in chunk 212 A, according to a 10+2 erasure coding scheme, e.g., as illustrated in chunk 212 B, or nearly any other erasure coding scheme.
- each chunk of a peer group can use a same erasure coding scheme such that the fragments of a peer group correspond.
- chunk fragments of chunks 212 A, 222 A, and 232 A can employ 12+4 erasure coding using, for example, bit-matrix coding, etc., such that a fragment of a first encoded chunk corresponds to other fragments of other encoded chunks of the peer group, e.g., D1A can correspond to D1B and D1X; D3X can correspond to D3A and D3B; C2B can correspond to C2A and C2X, etc., but chunk fragment D1A would not correspond to D2B, D2X, D5X, C2B, etc.
- chunk 212 is encoded as chunk 212 B
- the 10+2 fragments e.g., D1W to D10W and C1W to C2W
- D3R:D3S:D3T:D3T can be corresponding fragments of the peer group R, S, T, U, where R′, S′, T′, and U′ are correspondingly erasure coded R, S, T, and U.
- FIG. 3 is an illustration of a system 300 , showing compromised data that cannot be recovered via deconvolution alone and/or cannot be recovered via erasure decoding alone, in accordance with aspects of the subject disclosure.
- System 300 can be a geographically diverse data storage system having zones that can store data comprising damaged chunks 313 , 323 , and 333 in a geographically diverse manner.
- Chunk 333 before the illustrated chunk damage, can be a convolution of chunks 313 and 323 , also pre-damage.
- chunks 313 , 323 , and 333 can be a peer group encoded according to a same example 12+4 erasure coding scheme.
- any one chunk from the peer group can be recovered from via chunk level deconvolution as disclosed herein.
- any two corresponding peer group fragments can be employed to recover a lost fragment via fragment deconvolution in the peer group, again as disclosed herein.
- a further recovery technology can be beneficial as is disclosed elsewhere herein.
- System 300 can comprise damaged chunks 313 - 333 , whereby chunk level deconvolution recovery can fail.
- chunk 333 XOR chunk 313 can fail to result in chunk 323 .
- chunk 333 XOR chunk 323 can fail to result in chunk 313 .
- chunk level deconvolution alone can fail to provide an avenue to recovery.
- System 300 can similarly comprise damaged chunks 313 - 333 , whereby decoding according to an erasure coding scheme can fail to recover missing fragments of a chunk.
- performing an erasure coding recovery (EC Rec) on the remaining fragments of chunk 313 can fail to yield chunk 314 , wherein chunk 314 can comprise the information represented in chunk 313 before chunk 313 was damaged, e.g., chunk 314 cannot be recovered from chunk 313 via an EC Rec.
- performing an EC Rec on chunk 323 can fail to produce chunk 324 that can be a recovered chunk 323 ; and performing an EC Rec on chunk 333 can fail to produce chunk 334 that can be a recovered chunk 333 .
- FIG. 4 is an illustration of a system 400 , showing compromised data that can be recovered via mixed deconvolution and erasure decoding, in accordance with aspects of the subject disclosure.
- System 400 can be a geographically diverse data storage system having zones that store data comprising chunks 412 A, 422 A, and 432 A in a geographically diverse manner.
- Chunk 432 A can be a convolution of chunks 412 A and 423 A.
- chunks 412 A to 432 A can be encoded according to a same example 12+4 erasure coding scheme.
- a first zone can comprise encoded chunk 412 A
- a second zone can comprise encoded chunk 422 A
- a third zone can comprise encoded chunk 432 A.
- loss of any one chunk from the peer group 412 A, 422 A, and 432 A can be recovered from via chunk level deconvolution.
- any two corresponding peer group fragments can be employed to recover a lost fragment via fragment deconvolution in the peer group.
- a further recovery technology can be beneficial.
- a mixed recovery e.g., a mix of erasure coding recovery and deconvolution recovery, can provide additional recovery options for peer group chunks that have sustained sufficient damage to their data.
- the remaining fragments of chunk 413 e.g., D2A, D4A, D6A, etc., can be insufficient to allow recovery of the other missing fragments via deconvolution according to the 12+4 erasure coding scheme.
- chunk level deconvolution can also be infeasible, e.g., 433 XOR 423 can fail to produce 413 , etc.
- chunk level deconvolution can also be infeasible, e.g., 433 XOR 423 can fail to produce 413 , etc.
- insufficient corresponding fragments for fragment deconvolution within the peer group e.g., D1X of 433 can be insufficient, without a corresponding fragment, to recover missing D1A 413 , e.g., without missing D1B of 423 , etc.
- the example damaged peer group chunks can be regarded as unrecoverable by either deconvolution alone and/or decoding alone.
- fragment deconvolution recovery among chunks 413 , 423 , and 433 .
- C1X XOR C1B can recover missing C1A.
- D8A XOR D8B can recover missing D8X.
- a chunk can perform recovery via decoding according to the erasure coding scheme of the chunk, e.g., where four fragments of chunk 413 can be recovered, chunk 413 can then have 12 fragments, e.g., eight undamaged fragments and four recovered fragments, and can undergo recovery via decoding within chunk 413 .
- fragments C1A to C4A can be recovered in chunk 413
- chunk 413 can recover missing D1A, D3A, D5A, and D7A within chunk 413 via decoding.
- chunk 413 can employ decoding according to the erasure coding scheme to recover missing D1A, D3A, D5A, and D7A within chunk 413 .
- chunk 413 can be fully recovered.
- the fragments of fully recovered chunk 413 can then be employed to populate missing fragments of chunk 423 and/or chunk 433 .
- sufficient fragments for these chunks can be recovered, e.g., via fragment deconvolution, then these chunks can employ decoding to recover further missing fragments. This can be repeated to recover further missing chunks.
- the illustrated example peer group 413 , 423 , and 433 can, in fact, be fully recovered, even where, as is illustrated in FIG. 4 , 50% of the fragments of each chunk of the peer group have been lost or otherwise become less available. This is a substantial improvement over conventional data storage technologies.
- FIG. 5 is an illustration of an example system 500 showing partial recovery of compromised data that can be recovered via mixed deconvolution and erasure decoding, in accordance with aspects of the subject disclosure.
- System 500 can be a geographically diverse data storage system having zones that store data comprising chunks in a geographically diverse manner. These chunks, or portions thereof, can be damaged, e.g., via power spikes, power drops, failed/failing memory cells, viruses, etc. Chunks can be convolved to be more storage space efficient. Moreover, chunks can be encoded according to an erasure coding scheme. A convolved chunk and corresponding participating chunks can be regarded as a peer group of chunks.
- chunks 513 , 523 , and 533 can be damaged versions of chunks comprising a peer group.
- a first zone can comprise a first encoded chunk
- a second zone can comprise a second encoded chunk
- a third zone can comprise a third encoded chunk.
- loss of any one chunk from the peer group can be recovered from via chunk level deconvolution, e.g., where the recovering chunks are undamaged.
- any two corresponding peer group fragments can be employed to recover a lost fragment via fragment deconvolution across the peer group.
- a further recovery technology can be beneficial.
- a mixed recovery e.g., a mix of erasure coding recovery and deconvolution recovery can provide additional recovery options for peer group chunks that have sustained sufficient damage to their data.
- This can prevent decoding according to the example erasure coding scheme to recover missing fragments within any one of chunks 513 , 523 , and 533 .
- the several peer-group chunks are each illustrated as being damaged, which can prevent chunk level deconvolution.
- the remaining fragments can be insufficient to allow recovery via fragment deconvolution.
- D1X of 533 can be insufficient, without a corresponding fragment, to recover missing D1A 513 , e.g., without missing D1B of 523 ;
- D5B of 523 can be insufficient, without a corresponding fragment, to recover missing D5A 513 , e.g., without missing D5X of 533 ; etc.
- the example damaged peer group chunks 513 - 533 can be regarded as unrecoverable by either deconvolution alone and/or decoding alone.
- system 500 can enjoy partial fragment deconvolution recovery, e.g., fragments C1B to C4B of chunk 523 can be deconvolved with fragments C1X to C4X of chunk 533 to recover missing fragments C1A to C4A of chunk 513 .
- This can be regarded as a ‘deconvolve first’ iteration because some fragments are deconvolved across the peer group to support a subsequent decoding operation.
- system 500 can illustrate, that where sufficient missing fragments can be recovered, chunk 513 can perform, at state 506 , further fragment recovery via decoding according to the erasure coding scheme of the chunk, e.g., where fragments C1A to C4A of chunk 513 are recovered at state 502 , chunk 513 , at state 504 , can then have 12 fragments, e.g., eight undamaged fragments and four recovered fragments, and can undergo further recovery, at state 506 , via decoding within chunk 513 , to generate other missing fragments, e.g., as illustrated at state 508 where chunk 515 illustrates the recovery of damaged chunk 513 .
- chunk 513 can perform, at state 506 , further fragment recovery via decoding according to the erasure coding scheme of the chunk, e.g., where fragments C1A to C4A of chunk 513 are recovered at state 502 , chunk 513 , at state 504 , can then have 12 fragments, e.g., eight undamaged
- chunk 515 missing fragments D1A, D3A, D5A, and D7A within chunk 513 have been recovered via decoding. Further iterations can be undertaken to recover other missing fragments of other chunks of the peer group, similar to, or the same as, is disclosed elsewhere herein, which can allow recovery of all missing fragments of damaged chunks 513 , 523 , 533 , etc., in system 500 . These additional iterations are not illustrated for the sake of brevity and clarity.
- a ‘decode first’ iteration can also be enjoyed in some circumstances.
- chunk 533 can be less damaged, for example only loosing D1X to D4X, thus comprising healthy fragments D5X to D12X and C1X to C4X.
- recovery can proceed as disclosed herein above, e.g., via a ‘deconvolve first’ iteration to recover C1A to C4A of 513 based on C1B to C4B of chunk 523 and C1X to C4X of chunk 533 .
- recovery can proceed via a ‘decode first’ iteration to recover fragments D1X to D4X of chunk 533 based on fragments D5X to D12X and C1X to C4X of chunk 533 .
- This can result in a full recovery of chunk 533 .
- recovered chunk 533 can participate in a subsequent deconvolve operation, for example, recovering missing D2B of chunk 523 based on fragment deconvolution with recovered D2X of chunk 533 and D2A of chunk 513 .
- missing D4B of chunk 523 can be recovered via fragment deconvolution with recovered D4X of chunk 533 and D4A of chunk 513 .
- fragment deconvolution recovery of C1A to C4A of 513 can be based on C1B to C4B of chunk 523 and C1X to C4X of chunk 533 .
- fragment deconvolution recovery of D9B to D12B of 523 can be based on D9A to D12A of chunk 513 and D9X to D12X of chunk 533 .
- each of chunks 513 and 523 have at least k fragments, they can then recover other missing fragments, e.g., via respectively decoding based on their existing and recovered fragments. In an aspect, this can also result in full recovery.
- more than one chunk can undergo a ‘decode first’ iteration before a subsequent deconvolve iteration.
- the peer group can undergo more than one ‘deconvolve first’ iteration before a subsequent decode iteration is performed.
- the decode and deconvolve iterations can be performed in nearly any combination to achieve recovery of an acceptable number of fragments.
- an order of decode/deconvolve iterations can be mapped to determine an estimated count of recovered fragments.
- the corresponding estimated count of recovered fragments can be used to rank different possible orders of decode/deconvolve iterations, which can enable selecting a particular order that can result in a threshold level of recovery, e.g., an order of operations that results in maximizing the count of recovered fragments, that results in an acceptable count of recovered fragments with the lowest burden on computing resources of the system, etc.
- FIG. 6 is an illustration of example system 600 showing full recovery of compromised data that can be recovered via mixed deconvolution and erasure decoding, in accordance with aspects of the subject disclosure.
- System 600 can be a geographically diverse data storage system having zones that store data comprising chunks in a geographically diverse manner. Chunks can be convolved to be more storage space efficient. Moreover, chunks can be encoded according to an erasure coding scheme. A convolved chunk and corresponding participating chunks can be regarded as a peer group of chunks. These chunks, or portions thereof, can become damaged.
- chunks 613 , 623 , and 633 of system 600 in a first state can be damaged versions of chunks of a peer group.
- the several peer-group chunks are each illustrated as being damaged, which can prevent chunk level deconvolution.
- the remaining fragments can be insufficient to allow full recovery via only fragment deconvolution.
- system 600 at second state can enjoy partial fragment deconvolution recovery, e.g., fragments C1B to C4B can be deconvolved with fragments C1X to C4X to recover missing fragments C1A to C4A.
- This can be regarded as a ‘deconvolve first’ iteration. It is noted that chunk 614 comprises the remaining fragments of chunk 613 and the already noted recovered fragment deconvolve chunks.
- System 600 at a third state can illustrate, that where sufficient missing fragments were recovered at the second state, chunk 614 can perform, further fragment recovery via decoding according to the erasure coding scheme of the chunk, e.g., chunk 615 can replace chunk 614 and can have no missing fragments. Additionally, in this third state of system 600 , a fragment deconvolve iteration can be performed that can recover some fragments of chunk 623 , e.g., chunk 624 can comprise the chunks of 623 and the chunks recovered by fragment deconvolution of D1A to D4A with D1X to D4X.
- fragment deconvolution can occur one fragment at a time or in other embodiments can occur as a single operation on a wider data fragment, e.g., a wide data fragment can be, for example four fragments wide to enable reduced iterations of fragment deconvolution operations, for example wide data fragment D1-4A, comprising the same information as D1A, D2A, D3A, D4A, can be XOR'ed with wide data fragment D1-4X, comprising the same information as D1X, D2X, D3X, D4X, to result in wide data fragment D1-4B which can comprise the same information as D1B, D2B, D3B, D4B.
- D1-4A comprising the same information as D1A, D2A, D3A, D4A
- D1-4X comprising the same information as D1X, D2X, D3X, D4X
- system 600 can illustrate full recovery of all missing fragments. In an embodiment, this can result from subsequent decoding at each of chunks 624 and 634 to correspondingly yield chunks 625 and 635 . In another embodiment, this can result from subsequent decoding of chunks 624 to yield chunk 625 , and subsequent fragment deconvolution of chunks 615 and 625 to recover the missing fragments of chunk 634 resulting in chunk 635 . In a further embodiment, this can result from subsequent decoding of chunks 634 to yield chunk 635 , and subsequent fragment deconvolution of chunks 615 and 635 to recover the missing fragments of chunk 624 resulting in chunk 625 .
- a ‘decode first’ iteration can also be performed, as disclosed hereinabove, although not recited or illustrated for the sake of clarity and brevity. Accordingly, while system 600 is illustrated as fully recovering via a ‘deconvolve first’ iteration followed by a decode iteration, etc., it is possible to also recover via a ‘decode first’ iteration followed by a deconvolve iteration, etc. Moreover, in some embodiments, other orders of decode/deconvolve iterations can be performed.
- orders of operations can be raked to enable selection of an order of operations that is in accord with operational goals, satisfies threshold criteria, etc., and all such permutations of operations, ranking of operations, ordering of operations, etc., are considered within the scope of the disclosed subject matter despite not being explicitly recited for the sake of clarity and brevity.
- example method(s) that can be implemented in accordance with the disclosed subject matter can be better appreciated with reference to flowcharts in FIG. 7 - FIG. 8 .
- example methods disclosed herein are presented and described as a series of acts; however, it is to be understood and appreciated that the claimed subject matter is not limited by the order of acts, as some acts may occur in different orders and/or concurrently with other acts from that shown and described herein.
- one or more example methods disclosed herein could alternatively be represented as a series of interrelated states or events, such as in a state diagram.
- interaction diagram(s) may represent methods in accordance with the disclosed subject matter when disparate entities enact disparate portions of the methods.
- FIG. 7 is an illustration of an example method 700 , which can facilitate partial recovery of data via deconvolution then erasure decoding, in accordance with aspects of the subject disclosure.
- method 700 can comprise determining a peer group of chunks employing an erasure coding scheme to encode data.
- a first peer group can comprise A, B, and C, but can exclude D and E and a second peer group can comprise C, D, and E but can exclude A and B, albeit information represented in A and B are indeed nested within the second peer group via C.
- method 700 can comprise recovering a first portion of fragments of a first chunk of the chunks.
- the fragments can be generated according to the erasure coding scheme.
- all chunks of the peer group can employ the same erasure coding scheme and, accordingly, fragments can correlate to corresponding fragments among the chunks of the peer group.
- a first fragment of a first chunk can correspond to a first fragment of a second chunk, wherein the first and second chunk are part of the peer group, and wherein the first and second chunk employ the same erasure coding scheme.
- the recovering can be via deconvolution of corresponding fragments of other chunks of the chunks.
- fragment Ai ⁇ fragment Bi fragment Ci
- Ai indicates the i-th fragment of chunk A
- Bi indicates the i-th fragment of chunk B
- Ci indicates the i-th fragment of chunk C.
- Method 700 can comprise recovering a second portion of fragments of the first chunk via erasure coding recovery, based, at least in part, on the first portion of fragments of the first chunk.
- Erasure coding recovery can comprise decoding at least k fragments of a chunk encoded according to a k+m erasure coding scheme.
- the fragment deconvolution results in the first chunk comprising at least k fragments, other fragments can be recovered by decoding these at lease k fragments.
- a first chunk encoded according to a 10+2 EC scheme comprises nine fragments and, for example, one additional fragment is recovered at 720 by fragment deconvolution
- the first chunk can now comprise ten fragments, whereby, ten fragments is sufficient to allow recovery of the other two missing, damaged, less accessible, etc., fragments of the first chunk via decoding according to the 10+2 erasure coding scheme.
- method 701 can be the same as, or similar to, method 700 , except that rather than performing a fragment deconvolution recovery at 720 and a erasure coding recovery at 730 , method 701 can perform an erasure coding recovery at 721 , then a fragment deconvolution recovery at 731 .
- method 701 can comprise determining a peer group of chunks employing an erasure coding scheme to encode data.
- method 701 can comprise recovering a first portion of fragments of a first chunk of the chunks via erasure coding recovery based, at least in part, on other first chunk fragment portions.
- the first chunk can be damaged but can retain at least k healthy fragments
- these fragments can be employed to recover other fragments of the first chunk by decoding according to the erasure coding of the first chunk.
- the first chunk can be sufficient to allow recovery of the other three missing, damaged, less accessible, etc., fragments of the first chunk via decoding according to the 12+4 erasure coding scheme.
- method 701 can comprise recovering a second portion of fragments of a second chunk of the chunks.
- method 701 can end.
- all chunks of the peer group can employ the same erasure coding scheme and, accordingly, fragments can correlate to corresponding fragments among the chunks of the peer group
- a fragment(s) of the first chunk and a fragment(s) of a third chunk of the peer group of chunks can be employed to fragment deconvolve a fragment(s) of the second chunk.
- use of method 700 and 701 in an iterative manner can enable recovery of damaged chunks.
- coding fragments can be recovered using method 700 and/or method 701 .
- the chunk can also be re-encoded according to the erasure coding scheme to recover the corresponding coding fragments without further use of either method 700 or 701 , e.g., the coding fragments can be regenerated rather than recovered.
- FIG. 8 is an illustration of an example method 800 , which can enable at least partial recovery of data via mixed deconvolution and erasure decoding, in accordance with aspects of the subject disclosure.
- method 800 can comprise determining a peer group of chunks employing an erasure coding scheme to encode data. This can be the same as, or similar to, the determining at 710 and/or 711 of method 700 .
- method 800 can comprise determining if a ‘decode first’ scheme or a ‘deconvolve first’ scheme will be employed. As an example, where a chunk(s) of the peer group comprises k or more fragments, the entire chunk can be recovered by employing a decode first scheme.
- decoding can be ineffective to recover any other fragments and the deconvolve first scheme can be preferable at 820 .
- Numerous other examples are readily appreciated and are considered within the scope of the instant disclosure even where not further recited for the sake of clarity and brevity.
- method 800 can comprise recovering a first portion of fragments of a first chunk of the chunks via erasure coding recovery.
- the erasure code recovery can be based, at least in part, on other first chunk fragment portions.
- these fragments can be employed to recover other fragments of the first chunk by decoding according to the erasure coding of the first chunk.
- the first chunk can be sufficient to allow recovery of the other one missing, damaged, less accessible, etc., fragment(s) of the first chunk via decoding according to the 10+2 erasure coding scheme.
- method 800 can comprise recovering a second portion of fragments of a second chunk of the chunks.
- all chunks of the peer group can employ the same erasure coding scheme and, accordingly, fragments can correlate to corresponding fragments among the chunks of the peer group, a fragment(s) of the first chunk and a fragment(s) of a third chunk of the peer group of chunks can be employed to fragment deconvolve a fragment(s) of the second chunk.
- Method 800 can then go to decision block 870 .
- method 800 can advance to 850 where a deconvolve first scheme is indicated.
- method 800 can comprise recovering a first portion of fragments of a first chunk of the chunks, via deconvolution of corresponding fragments of other chunks of the chunks.
- a wide fragment e.g., comprising data for more than one fragment, can be deconvolved as disclosed elsewhere herein.
- Method 800 can then proceed to 860 , which can comprise recovering a second portion of fragments of the first chunk via erasure coding recovery, based, at least in part, on the first portion of fragments of the first chunk. At this point method 800 can advance to decision block 870 .
- method 800 can determine if there are additional chunks to recover, e.g., if some chunks of the peer group remain damaged after an iteration from 820 to 870 of method 800 , then an additional iteration can be performed. This can continue until there are no additional recoveries to perform, whereby method 800 can end at 880 .
- no additional recoveries can be indicated where all chunks are recovered by method 800 , all chunks are recovered by another method, recovery of the chunks is determined to be below a threshold value/priority/etc., the previous iteration of method 800 failed to recover further fragments, or some other cause of determining that further recovery is unwarranted.
- system 500 can be an example of a recovery that can consume, in some embodiments, multiple iterations through a method, for example method 800 .
- a first iteration of method 800 applied to system 500 can recover chunk 515 , e.g., where method 840 can correspond to deconvolution recovery of fragments C1A to C4A at 502 , and where method 850 can correspond to decoding recovery of fragments D1A, D3A, and D5A at 506 .
- This can fully recover chunk 513 to 508 in a first iteration through method 800 , however, chunks 523 and 533 can remain damaged, and missing fragments of those chunks can be recovered, for example, via subsequent iteration through method 800 .
- FIG. 9 is a schematic block diagram of a computing environment 900 with which the disclosed subject matter can interact.
- the system 900 comprises one or more remote component(s) 910 .
- the remote component(s) 910 can be hardware and/or software (e.g., threads, processes, computing devices).
- remote component(s) 910 can be a remotely located ZSC connected to a local ZSC via communication framework 940 .
- Communication framework 940 can comprise wired network devices, wireless network devices, mobile devices, wearable devices, radio access network devices, gateway devices, femtocell devices, servers, etc.
- the system 900 also comprises one or more local component(s) 920 .
- the local component(s) 920 can be hardware and/or software (e.g., threads, processes, computing devices).
- local component(s) 920 can comprise a local ZSC connected to a remote ZSC via communication framework 940 .
- the remotely located ZSC or local ZSC can be embodied in one or more of ZSC 110 - 130 , 210 - 230 , etc.
- One possible communication between a remote component(s) 910 and a local component(s) 920 can be in the form of a data packet adapted to be transmitted between two or more computer processes.
- Another possible communication between a remote component(s) 910 and a local component(s) 920 can be in the form of circuit-switched data adapted to be transmitted between two or more computer processes in radio time slots.
- the system 900 comprises a communication framework 940 that can be employed to facilitate communications between the remote component(s) 910 and the local component(s) 920 , and can comprise an air interface, e.g., Uu interface of a UMTS network, via a long-term evolution (LTE) network, etc.
- LTE long-term evolution
- Remote component(s) 910 can be operably connected to one or more remote data store(s) 950 , such as a hard drive, solid state drive, SIM card, device memory, etc., that can be employed to store information on the remote component(s) 910 side of communication framework 940 .
- local component(s) 920 can be operably connected to one or more local data store(s) 930 , that can be employed to store information on the local component(s) 920 side of communication framework 940 .
- information corresponding to chunks stored on ZSCs can be communicated via communication framework 940 to other ZSCs of a storage network, e.g., to facilitate compression and storage in partial or complete chunks on a ZSC as disclosed herein.
- FIG. 10 In order to provide a context for the various aspects of the disclosed subject matter, FIG. 10 , and the following discussion, are intended to provide a brief, general description of a suitable environment in which the various aspects of the disclosed subject matter can be implemented. While the subject matter has been described above in the general context of computer-executable instructions of a computer program that runs on a computer and/or computers, those skilled in the art will recognize that the disclosed subject matter also can be implemented in combination with other program modules. Generally, program modules comprise routines, programs, components, data structures, etc. that performs particular tasks and/or implement particular abstract data types.
- nonvolatile memory can be included in read only memory, programmable read only memory, electrically programmable read only memory, electrically erasable read only memory, or flash memory.
- Volatile memory can comprise random access memory, which acts as external cache memory.
- random access memory is available in many forms such as synchronous random access memory, dynamic random access memory, synchronous dynamic random access memory, double data rate synchronous dynamic random access memory, enhanced synchronous dynamic random access memory, SynchLink dynamic random access memory, and direct Rambus random access memory.
- the disclosed memory components of systems or methods herein are intended to comprise, without being limited to comprising, these and any other suitable types of memory.
- the disclosed subject matter can be practiced with other computer system configurations, comprising single-processor or multiprocessor computer systems, mini-computing devices, mainframe computers, as well as personal computers, hand-held computing devices (e.g., personal digital assistant, phone, watch, tablet computers, netbook computers, . . . ), microprocessor-based or programmable consumer or industrial electronics, and the like.
- the illustrated aspects can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network; however, some if not all aspects of the subject disclosure can be practiced on stand-alone computers.
- program modules can be located in both local and remote memory storage devices.
- FIG. 10 illustrates a block diagram of a computing system 1000 operable to execute the disclosed systems and methods in accordance with an embodiment.
- Computer 1012 which can be, for example, comprised in a ZSC, e.g., ZSC 110 - 130 , 210 - 230 , etc., can comprise a processing unit 1014 , a system memory 1016 , and a system bus 1018 .
- System bus 1018 couples system components comprising, but not limited to, system memory 1016 to processing unit 1014 .
- Processing unit 1014 can be any of various available processors. Dual microprocessors and other multiprocessor architectures also can be employed as processing unit 1014 .
- System memory 1016 can comprise volatile memory 1020 and nonvolatile memory 1022 .
- nonvolatile memory 1022 can comprise read only memory, programmable read only memory, electrically programmable read only memory, electrically erasable read only memory, or flash memory.
- Volatile memory 1020 comprises read only memory, which acts as external cache memory.
- read only memory is available in many forms such as synchronous random access memory, dynamic read only memory, synchronous dynamic read only memory, double data rate synchronous dynamic read only memory, enhanced synchronous dynamic read only memory, SynchLink dynamic read only memory, Rambus direct read only memory, direct Rambus dynamic read only memory, and Rambus dynamic read only memory.
- Computer 1012 can also comprise removable/non-removable, volatile/non-volatile computer storage media.
- FIG. 10 illustrates, for example, disk storage 1024 .
- Disk storage 1024 comprises, but is not limited to, devices like a magnetic disk drive, floppy disk drive, tape drive, flash memory card, or memory stick.
- disk storage 1024 can comprise storage media separately or in combination with other storage media comprising, but not limited to, an optical disk drive such as a compact disk read only memory device, compact disk recordable drive, compact disk rewritable drive or a digital versatile disk read only memory.
- an optical disk drive such as a compact disk read only memory device, compact disk recordable drive, compact disk rewritable drive or a digital versatile disk read only memory.
- a removable or non-removable interface is typically used, such as interface 1026 .
- Computing devices typically comprise a variety of media, which can comprise computer-readable storage media or communications media, which two terms are used herein differently from one another as follows.
- Computer-readable storage media can be any available storage media that can be accessed by the computer and comprises both volatile and nonvolatile media, removable and non-removable media.
- Computer-readable storage media can be implemented in connection with any method or technology for storage of information such as computer-readable instructions, program modules, structured data, or unstructured data.
- Computer-readable storage media can comprise, but are not limited to, read only memory, programmable read only memory, electrically programmable read only memory, electrically erasable read only memory, flash memory or other memory technology, compact disk read only memory, digital versatile disk or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other tangible media which can be used to store desired information.
- tangible media can comprise non-transitory media wherein the term “non-transitory” herein as may be applied to storage, memory or computer-readable media, is to be understood to exclude only propagating transitory signals per se as a modifier and does not relinquish coverage of all standard storage, memory or computer-readable media that are not only propagating transitory signals per se.
- Communications media typically embody computer-readable instructions, data structures, program modules or other structured or unstructured data in a data signal such as a modulated data signal, e.g., a carrier wave or other transport mechanism, and comprises any information delivery or transport media.
- modulated data signal or signals refers to a signal that has one or more of its characteristics set or changed in such a manner as to encode information in one or more signals.
- communication media comprise wired media, such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media.
- FIG. 10 describes software that acts as an intermediary between users and computer resources described in suitable operating environment 1000 .
- Such software comprises an operating system 1028 .
- Operating system 1028 which can be stored on disk storage 1024 , acts to control and allocate resources of computer system 1012 .
- System applications 1030 take advantage of the management of resources by operating system 1028 through program modules 1032 and program data 1034 stored either in system memory 1016 or on disk storage 1024 . It is to be noted that the disclosed subject matter can be implemented with various operating systems or combinations of operating systems.
- a user can enter commands or information into computer 1012 through input device(s) 1036 .
- a user interface can allow entry of user preference information, etc., and can be embodied in a touch sensitive display panel, a mouse/pointer input to a graphical user interface (GUI), a command line controlled interface, etc., allowing a user to interact with computer 1012 .
- Input devices 1036 comprise, but are not limited to, a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, joystick, game pad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, web camera, cell phone, smartphone, tablet computer, etc.
- Interface port(s) 1038 comprise, for example, a serial port, a parallel port, a game port, a universal serial bus, an infrared port, a Bluetooth port, an IP port, or a logical port associated with a wireless service, etc.
- Output device(s) 1040 use some of the same type of ports as input device(s) 1036 .
- a universal serial bus port can be used to provide input to computer 1012 and to output information from computer 1012 to an output device 1040 .
- Output adapter 1042 is provided to illustrate that there are some output devices 1040 like monitors, speakers, and printers, among other output devices 1040 , which use special adapters.
- Output adapters 1042 comprise, by way of illustration and not limitation, video and sound cards that provide means of connection between output device 1040 and system bus 1018 . It should be noted that other devices and/or systems of devices provide both input and output capabilities such as remote computer(s) 1044 .
- Computer 1012 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 1044 .
- Remote computer(s) 1044 can be a personal computer, a server, a router, a network PC, cloud storage, a cloud service, code executing in a cloud-computing environment, a workstation, a microprocessor-based appliance, a peer device, or other common network node and the like, and typically comprises many or all of the elements described relative to computer 1012 .
- a cloud computing environment, the cloud, or other similar terms can refer to computing that can share processing resources and data to one or more computer and/or other device(s) on an as needed basis to enable access to a shared pool of configurable computing resources that can be provisioned and released readily.
- Cloud computing and storage solutions can store and/or process data in third-party data centers which can leverage an economy of scale and can view accessing computing resources via a cloud service in a manner similar to a subscribing to an electric utility to access electrical energy, a telephone utility to access telephonic services, etc.
- Network interface 1048 encompasses wire and/or wireless communication networks such as local area networks and wide area networks.
- Local area network technologies comprise fiber distributed data interface, copper distributed data interface, Ethernet, Token Ring and the like.
- Wide area network technologies comprise, but are not limited to, point-to-point links, circuit-switching networks like integrated services digital networks and variations thereon, packet switching networks, and digital subscriber lines.
- wireless technologies may be used in addition to or in place of the foregoing.
- processor can refer to substantially any computing processing unit or device comprising, but not limited to comprising, single-core processors; single-processors with software multithread execution capability; multi-core processors; multi-core processors with software multithread execution capability; multi-core processors with hardware multithread technology; parallel platforms; and parallel platforms with distributed shared memory.
- a processor can refer to an integrated circuit, an application specific integrated circuit, a digital signal processor, a field programmable gate array, a programmable logic controller, a complex programmable logic device, a discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein.
- processors can exploit nano-scale architectures such as, but not limited to, molecular and quantum-dot based transistors, switches and gates, in order to optimize space usage or enhance performance of user equipment.
- a processor may also be implemented as a combination of computing processing units.
- a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
- a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
- an application running on a server and the server can be a component.
- One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers. In addition, these components can execute from various computer readable media having various data structures stored thereon. The components may communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal).
- a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network such as the Internet with other systems via the signal).
- a component can be an apparatus with specific functionality provided by mechanical parts operated by electric or electronic circuitry, which is operated by a software or a firmware application executed by a processor, wherein the processor can be internal or external to the apparatus and executes at least a part of the software or firmware application.
- a component can be an apparatus that provides specific functionality through electronic components without mechanical parts, the electronic components can comprise a processor therein to execute software or firmware that confers at least in part the functionality of the electronic components.
- any particular embodiment or example in the present disclosure should not be treated as exclusive of any other particular embodiment or example, unless expressly indicated as such, e.g., a first embodiment that has aspect A and a second embodiment that has aspect B does not preclude a third embodiment that has aspect A and aspect B.
- the use of granular examples and embodiments is intended to simplify understanding of certain features, aspects, etc., of the disclosed subject matter and is not intended to limit the disclosure to said granular instances of the disclosed subject matter or to illustrate that combinations of embodiments of the disclosed subject matter were not contemplated at the time of actual or constructive reduction to practice.
- the term “include” is intended to be employed as an open or inclusive term, rather than a closed or exclusive term.
- the term “include” can be substituted with the term “comprising” and is to be treated with similar scope, unless otherwise explicitly used otherwise.
- a basket of fruit including an apple is to be treated with the same breadth of scope as, “a basket of fruit comprising an apple.”
- the terms “user,” “subscriber,” “customer,” “consumer,” “prosumer,” “agent,” and the like are employed interchangeably throughout the subject specification, unless context warrants particular distinction(s) among the terms. It should be appreciated that such terms can refer to human entities, machine learning components, or automated components (e.g., supported through artificial intelligence, as through a capacity to make inferences based on complex mathematical formalisms), that can provide simulated vision, sound recognition and so forth.
- Non-limiting examples of such technologies or networks comprise broadcast technologies (e.g., sub-Hertz, extremely low frequency, very low frequency, low frequency, medium frequency, high frequency, very high frequency, ultra-high frequency, super-high frequency, extremely high frequency, terahertz broadcasts, etc.); Ethernet; X.25; powerline-type networking, e.g., Powerline audio video Ethernet, etc.; femtocell technology; Wi-Fi; worldwide interoperability for microwave access; enhanced general packet radio service; second generation partnership project (2G or 2GPP); third generation partnership project (3G or 3GPP); fourth generation partnership project (4G or 4GPP); long term evolution (LTE); fifth generation partnership project (5G or 5GPP); third generation partnership project universal mobile telecommunications system; third generation partnership project 2; ultra mobile broadband; high speed packet access; high speed downlink packet access; high speed up
- a millimeter wave broadcast technology can employ electromagnetic waves in the frequency spectrum from about 30 GHz to about 300 GHz. These millimeter waves can be generally situated between microwaves (from about 1 GHz to about 30 GHz) and infrared (IR) waves, and are sometimes referred to extremely high frequency (EHF).
- the wavelength ( ⁇ ) for millimeter waves is typically in the 1-mm to 10-mm range.
- the term “infer” or “inference” can generally refer to the process of reasoning about, or inferring states of, the system, environment, user, and/or intent from a set of observations as captured via events and/or data. Captured data and events can include user data, device data, environment data, data from sensors, sensor data, application data, implicit data, explicit data, etc. Inference, for example, can be employed to identify a specific context or action, or can generate a probability distribution over states of interest based on a consideration of data and events. Inference can also refer to techniques employed for composing higher-level events from a set of events and/or data.
- Such inference results in the construction of new events or actions from a set of observed events and/or stored event data, whether the events, in some instances, can be correlated in close temporal proximity, and whether the events and data come from one or several event and data sources.
- Various classification schemes and/or systems e.g., support vector machines, neural networks, expert systems, Bayesian belief networks, fuzzy logic, and data fusion engines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/743,427 US11349500B2 (en) | 2020-01-15 | 2020-01-15 | Data recovery in a geographically diverse storage system employing erasure coding technology and data convolution technology |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/743,427 US11349500B2 (en) | 2020-01-15 | 2020-01-15 | Data recovery in a geographically diverse storage system employing erasure coding technology and data convolution technology |
Publications (2)
Publication Number | Publication Date |
---|---|
US20210218420A1 US20210218420A1 (en) | 2021-07-15 |
US11349500B2 true US11349500B2 (en) | 2022-05-31 |
Family
ID=76763385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/743,427 Active 2040-09-11 US11349500B2 (en) | 2020-01-15 | 2020-01-15 | Data recovery in a geographically diverse storage system employing erasure coding technology and data convolution technology |
Country Status (1)
Country | Link |
---|---|
US (1) | US11349500B2 (en) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10761743B1 (en) | 2017-07-17 | 2020-09-01 | EMC IP Holding Company LLC | Establishing data reliability groups within a geographically distributed data storage environment |
US11436203B2 (en) | 2018-11-02 | 2022-09-06 | EMC IP Holding Company LLC | Scaling out geographically diverse storage |
US11748004B2 (en) | 2019-05-03 | 2023-09-05 | EMC IP Holding Company LLC | Data replication using active and passive data storage modes |
US11449399B2 (en) | 2019-07-30 | 2022-09-20 | EMC IP Holding Company LLC | Mitigating real node failure of a doubly mapped redundant array of independent nodes |
US11449248B2 (en) * | 2019-09-26 | 2022-09-20 | EMC IP Holding Company LLC | Mapped redundant array of independent data storage regions |
US11435910B2 (en) | 2019-10-31 | 2022-09-06 | EMC IP Holding Company LLC | Heterogeneous mapped redundant array of independent nodes for data storage |
US11435957B2 (en) | 2019-11-27 | 2022-09-06 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes |
US11349501B2 (en) * | 2020-02-27 | 2022-05-31 | EMC IP Holding Company LLC | Multistep recovery employing erasure coding in a geographically diverse data storage system |
US11507308B2 (en) | 2020-03-30 | 2022-11-22 | EMC IP Holding Company LLC | Disk access event control for mapped nodes supported by a real cluster storage system |
US11693983B2 (en) | 2020-10-28 | 2023-07-04 | EMC IP Holding Company LLC | Data protection via commutative erasure coding in a geographically diverse data storage system |
US11847141B2 (en) | 2021-01-19 | 2023-12-19 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes employing mapped reliability groups for data storage |
US11625174B2 (en) | 2021-01-20 | 2023-04-11 | EMC IP Holding Company LLC | Parity allocation for a virtual redundant array of independent disks |
US11449234B1 (en) | 2021-05-28 | 2022-09-20 | EMC IP Holding Company LLC | Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes |
US11354191B1 (en) * | 2021-05-28 | 2022-06-07 | EMC IP Holding Company LLC | Erasure coding in a large geographically diverse data storage system |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216813A1 (en) * | 2004-03-23 | 2005-09-29 | Shaun Cutts | Fixed content distributed data storage using permutation ring encoding |
US20120268142A1 (en) * | 2011-04-19 | 2012-10-25 | Cypress Semiconductor Corporation | Capacitive panel scanning with reduced number of sensing circuits |
US20130021294A1 (en) * | 2011-04-19 | 2013-01-24 | Andriy Maharyta | Usage of weighting matrices in multi-phase scanning modes |
US8683205B2 (en) * | 2010-05-19 | 2014-03-25 | Cleversafe, Inc. | Accessing data utilizing entity registration in multiple dispersed storage networks |
US20140089564A1 (en) * | 2012-09-27 | 2014-03-27 | Skymedi Corporation | Method of data collection in a non-volatile memory |
US20160371145A1 (en) * | 2014-09-30 | 2016-12-22 | Hitachi, Ltd. | Distributed storage system |
US20170064048A1 (en) * | 2015-08-28 | 2017-03-02 | Nicira, Inc. | Packet Data Restoration for Flow-Based Forwarding Element |
US9864527B1 (en) * | 2014-05-05 | 2018-01-09 | EMC IP Holding Company LLC | Distributed data storage management |
US20180181324A1 (en) * | 2016-12-26 | 2018-06-28 | EMC IP Holding Company LLC | Data protection with erasure coding and xor |
US20190317858A1 (en) * | 2018-04-12 | 2019-10-17 | EMC IP Holding Company LLC | System and method for recovery of unrecoverable data with enhanced erasure coding and replication |
US20190332266A1 (en) * | 2018-04-27 | 2019-10-31 | EMC IP Holding Company LLC | Scaling-in for geographically diverse storage |
US20190384499A1 (en) * | 2018-06-15 | 2019-12-19 | EMC IP Holding Company LLC | Data Convolution for Geographically Diverse Storage |
-
2020
- 2020-01-15 US US16/743,427 patent/US11349500B2/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216813A1 (en) * | 2004-03-23 | 2005-09-29 | Shaun Cutts | Fixed content distributed data storage using permutation ring encoding |
US8683205B2 (en) * | 2010-05-19 | 2014-03-25 | Cleversafe, Inc. | Accessing data utilizing entity registration in multiple dispersed storage networks |
US20120268142A1 (en) * | 2011-04-19 | 2012-10-25 | Cypress Semiconductor Corporation | Capacitive panel scanning with reduced number of sensing circuits |
US20130021294A1 (en) * | 2011-04-19 | 2013-01-24 | Andriy Maharyta | Usage of weighting matrices in multi-phase scanning modes |
US20140089564A1 (en) * | 2012-09-27 | 2014-03-27 | Skymedi Corporation | Method of data collection in a non-volatile memory |
US9864527B1 (en) * | 2014-05-05 | 2018-01-09 | EMC IP Holding Company LLC | Distributed data storage management |
US20160371145A1 (en) * | 2014-09-30 | 2016-12-22 | Hitachi, Ltd. | Distributed storage system |
US20170064048A1 (en) * | 2015-08-28 | 2017-03-02 | Nicira, Inc. | Packet Data Restoration for Flow-Based Forwarding Element |
US20180181324A1 (en) * | 2016-12-26 | 2018-06-28 | EMC IP Holding Company LLC | Data protection with erasure coding and xor |
US20190317858A1 (en) * | 2018-04-12 | 2019-10-17 | EMC IP Holding Company LLC | System and method for recovery of unrecoverable data with enhanced erasure coding and replication |
US20190332266A1 (en) * | 2018-04-27 | 2019-10-31 | EMC IP Holding Company LLC | Scaling-in for geographically diverse storage |
US20190384499A1 (en) * | 2018-06-15 | 2019-12-19 | EMC IP Holding Company LLC | Data Convolution for Geographically Diverse Storage |
Also Published As
Publication number | Publication date |
---|---|
US20210218420A1 (en) | 2021-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11349500B2 (en) | Data recovery in a geographically diverse storage system employing erasure coding technology and data convolution technology | |
US11349501B2 (en) | Multistep recovery employing erasure coding in a geographically diverse data storage system | |
US11288139B2 (en) | Two-step recovery employing erasure coding in a geographically diverse data storage system | |
US11023130B2 (en) | Deleting data in a geographically diverse storage construct | |
US11119690B2 (en) | Consolidation of protection sets in a geographically diverse data storage environment | |
US11847141B2 (en) | Mapped redundant array of independent nodes employing mapped reliability groups for data storage | |
US10936239B2 (en) | Cluster contraction of a mapped redundant array of independent nodes | |
US20200241804A1 (en) | Affinity Sensitive Data Convolution for Data Storage Systems | |
US11113146B2 (en) | Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system | |
US11228322B2 (en) | Rebalancing in a geographically diverse storage system employing erasure coding | |
US11119686B2 (en) | Preservation of data during scaling of a geographically diverse data storage system | |
US10936196B2 (en) | Data convolution for geographically diverse storage | |
US11112991B2 (en) | Scaling-in for geographically diverse storage | |
US20200133532A1 (en) | Geological Allocation of Storage Space | |
US20210271645A1 (en) | Log-Based Storage Space Management for Geographically Diverse Storage | |
US11436203B2 (en) | Scaling out geographically diverse storage | |
US10931777B2 (en) | Network efficient geographically diverse data storage system employing degraded chunks | |
US11119683B2 (en) | Logical compaction of a degraded chunk in a geographically diverse data storage system | |
US10936244B1 (en) | Bulk scaling out of a geographically diverse storage system | |
US11347419B2 (en) | Valency-based data convolution for geographically diverse storage | |
US11693983B2 (en) | Data protection via commutative erasure coding in a geographically diverse data storage system | |
US11449399B2 (en) | Mitigating real node failure of a doubly mapped redundant array of independent nodes | |
US10684780B1 (en) | Time sensitive data convolution and de-convolution | |
US11354191B1 (en) | Erasure coding in a large geographically diverse data storage system | |
US10942825B2 (en) | Mitigating real node failure in a mapped redundant array of independent nodes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: EMC IP HOLDING COMPANY LLC, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DANILOV, MIKHAIL;ALTAYE, YOHANNES;REEL/FRAME:051523/0469 Effective date: 20200110 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT, TEXAS Free format text: PATENT SECURITY AGREEMENT (NOTES);ASSIGNORS:DELL PRODUCTS L.P.;EMC IP HOLDING COMPANY LLC;REEL/FRAME:052216/0758 Effective date: 20200324 |
|
AS | Assignment |
Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, NORTH CAROLINA Free format text: SECURITY AGREEMENT;ASSIGNORS:DELL PRODUCTS L.P.;EMC IP HOLDING COMPANY LLC;REEL/FRAME:052243/0773 Effective date: 20200326 |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:053546/0001 Effective date: 20200409 |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT, TEXAS Free format text: SECURITY INTEREST;ASSIGNORS:DELL PRODUCTS L.P.;EMC CORPORATION;EMC IP HOLDING COMPANY LLC;REEL/FRAME:053311/0169 Effective date: 20200603 |
|
AS | Assignment |
Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058001/0152 Effective date: 20211101 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058001/0152 Effective date: 20211101 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060438/0742 Effective date: 20220329 Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060438/0742 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060438/0742 Effective date: 20220329 Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060438/0680 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060438/0680 Effective date: 20220329 |