A method and system are provided for transferring data from a host computer to one or more subscriber computers, the data consisting of k original packets. The method includes the steps of encoding the k original packets to form n encoded packets, where n>k, transmitting the encoded packets from the host computer to the subscriber computers, receiving some of the transmitted packets, and decoding any combination of k correctly-received encoded packets to reconstruct the k original packets.

Patent
   6012159
Priority
Jan 17 1996
Filed
Jan 17 1997
Issued
Jan 04 2000
Expiry
Jan 17 2017
Assg.orig
Entity
Small
1386
4
all paid
3. A method for transferring data from a host computer to at least one subscriber computer, the data comprising a plurality of k original packets, where k is a positive integer, said method comprising the steps of:
dividing the original k packets into a plurality of groups of 1 packets;
separately encoding each group of 1 packets to form a plurality of n' encoded packets for each group, where n'>1;
transmitting the encoded packets of all the groups in an interleaved fashion from the host computer to the at least one subscriber computer;
receiving at least some of the transmitted packets within each group in a deinterleaved fashion;
separately decoding each group by using any combination of 1 correctly-received packets of the group to reconstruct the 1 original packets of each group, so as to form a plurality of decoded groups; and
reconstructing the data from the plurality of decoded groups.
1. A method for transferring data from a host computer to at least one subscriber computer, the data comprising a plurality of k original packets, where k is a positive integer, said method comprising the steps of:
encoding the k original packets to form a plurality of n encoded packets, where n>k;
transmitting the encoded packets from the host computer to the at least one subscriber computer; and
decoding any combination of k correctly-received encoded packets to reconstruct the k original packets,
wherein the original packets are encoded with a k×n code generator matrix and the left k×k submatrix of the k×n code generator matrix is the identity matrix, so that the first k encoded packets are the original k packets, and thus if the first k encoded packets are received correctly, the decoding step is not performed, and wherein n is recomputed for each transmission based on an estimate of the percentage of packets expected to be lost during that transmission.
15. A system for transferring data from a host computer to at least one subscriber computer, the data comprising a plurality of k original packets, where k is a positive integer, said system comprising:
dividing means for dividing the original k packets into a plurality of groups of 1 packets;
an encoder for separately encoding each group of 1 packets to form a plurality of n' encoded packets for each group, where n'>1;
a transmitter for transmitting the encoded packets of all the groups in an interleaved fashion from the host computer to the at least one subscriber computer;
a receiver for receiving at least some of the transmitted packets within each group in a deinterleaved fashion;
a decoder for separately decoding each group by using any combination of 1 correctly-received packets of the group to reconstruct the 1 original packets of each group, so as to form a plurality of decoded groups; and
reconstructing means for reconstructing the data from the plurality of decoded groups.
18. A storage medium storing a computer readable program executable by a host computer to perform a method for transferring data from a host computer to at least one subscriber computer, the data comprising a plurality of k original packets, where k is a positive integer, said method comprising the steps of:
dividing the original k packets into a plurality of groups of 1 packets;
separately encoding each group of 1 packets to form a plurality of n' encoded packets for each group, where n'>1;
transmitting the encoded packets of all the groups in an interleaved fashion from the host computer to the at least one subscriber computer;
receiving at least some of the transmitted packets within each group in a deinterleaved fashion;
separately decoding each group by using any combination of 1 correctly-received packets of the group to reconstruct the 1 original packets of each group, so as to form a plurality of decoded groups; and
reconstructing the data from the plurality of decoded groups.
2. A method for transferring data from a host computer to at least one subscriber computer, the data comprising a plurality of k original packets, where k is a positive integer, said method comprising the steps of:
dividing the original k packets into a plurality of groups of 1 packets;
separately encoding each group of 1 packets to form a plurality of n' encoded packets for each group, where n'>1, and wherein n' is recomputed for each transmission based on an estimate of the percentage of packets expected to be lost during that transmission;
separately transmitting each group of encoded packets from the host computer to the at least one subscriber computer;
receiving, for each transmitted group, at least some of the transmitted packets;
separately decoding any combination of 1 correctly-received encoded packets for each group to reconstruct the 1 original packets of each group so as to form a plurality of decoded groups;
reconstructing the file from the plurality of decoded groups.
16. A storage medium storing a computer readable program executable by a host computer to perform a method for transferring data from a host computer to at least one subscriber computer, the data comprising a plurality of k original packets, where k is a positive integer, said method comprising the steps of:
encoding the k original packets to form a plurality of n encoded packets, where n>k;
transmitting the encoded packets from the host computer to the at least one subscriber computer; and
decoding any combination of k correctly-received encoded packets to reconstruct the k original packets,
wherein the original packets are encoded with a k×n code generator matrix and the left k×k submatrix of the k×n code generator matrix is the identity matrix, so that the first k encoded packets are the original k packets, and thus if the first k encoded packets are received correctly, the decoding step is not performed, and wherein n is recomputed for each transmission based on an estimate of the percentage of packets expected to be lost during that transmission.
8. A system for transferring data from a host computer to at least one subscriber computer, the data comprising a plurality of k original packets, where k is a positive integer, said system comprising:
an encoder for encoding the k original packets to form a plurality of n encoded packets, where n>k;
a transmitter for transmitting the encoded packets from the host computer to the at least one subscriber computer;
a receiver for receiving at least some of the transmitted packets; and
a decoder for decoding any combination of k correctly-received encoded packets to reconstruct the data, wherein the original packets are encoded with a k×n code generator matrix and the left k×k submatrix of the k×n code generator matrix is the identity matrix, so that the first k encoded packets are the original k packets, and thus if the first k encoded packets are received correctly by the receiver, no decoding is performed by the decoder, and wherein n is recomputed for each transmission based on an estimate of the percentage of packets expected to be lost during that transmission.
14. A system for transferring data from a host computer to at least one subscriber computer, the data comprising a plurality of k original packets, where k is a positive integer, said system comprising:
dividing means for dividing the original k packets into a plurality of groups of 1 packets;
an encoder for separately encoding each group of 1 packets to form a plurality of n' encoded packets for each group, where n'>1, and wherein n' is recomputed for each transmission based on an estimate of the percentage of packets expected to be lost during that transmission;
a transmitter for separately transmitting each group of encoded packets from the host computer to the at least one subscriber computer;
a receiver for receiving, for each transmitted group, at least some of the transmitted packets;
a decoder for separately decoding any combination of 1 correctly-received encoded packets for each group to reconstruct the 1 original packets of each group so as to form a plurality of decoded groups; and
reconstructing means for reconstructing the file from the plurality of decoded groups.
17. A storage medium storing a computer readable program executable by a host computer to perform a method for transferring data from a host computer to at least one subscriber computer, the data comprising a plurality of k original packets, where k is a positive integer, said method comprising the steps of:
dividing the original k packets into a plurality of groups of 1 packets;
separately encoding each group of 1 packets to form a plurality of n' encoded packets for each group, where n'>1, and wherein n' is recomputed for each transmission based on an estimate of the percentage of packets expected to be lost during that transmission;
separately transmitting each group of encoded packets from the host computer to the at least one subscriber computer;
receiving, for each transmitted group, at least some of the transmitted packets;
separately decoding any combination of 1 correctly-received encoded packets for each group to reconstruct the 1 original packets of each group so as to form a plurality of decoded groups; and
reconstructing the file from the plurality of decoded groups.
20. A system for transferring data from a host computer to at least one subscriber computer, comprising:
an encoder for (1) dividing the data into k original packets x, each original packet comprising j symbols from a finite field f, (2) forming j message vectors x each of length k, the ath message vector being formed by taking the ath symbol from each of the k original packets x in sequence, (3) matrix multiplying each of the j message vectors x by a code generator matrix g on the right to form j codeword vectors y each of length n, the code generator matrix g being a k row×n column matrix defined over the finite field f, where n>k and any k columns out of the n columns are linearly independent and (4) forming n encoded packets y, each encoded packet comprising j symbols, from the j codeword vectors y, the bth coded packet being formed by taking the bth symbol from each of the j codeword vectors y in sequence,
a transmitter for transmitting the encoded packets y from the host computer to the at least one subscriber computer;
a receiver for receiving y' packets of the encoded packets y by the at least one subscriber computer; and
a decoder for (1) determining which and how many of the received packets y'-- have no error, (2) if the number of received packets having no error is greater than or equal to k, forming a matrix A of k rows and k columns that comprises the columns from the code generator matrix g that correspond to k packets received without error, (3) inverting the matrix A to form an inverted matrix A-1, forming j vectors z from the k packets received without error, the cth vector z being formed by taking the cth symbol from each of the k packets y in sequence, (4) matrix multiplying each of the j vectors z by the inverted matrix A-1 on the right to form the j message vectors x, (5) reconstructing the k original packets x from the j message vectors x, the dth original packet being formed by taking the dth symbol from each of the j message vectors x in sequence, and (6) reconstructing the original data of step (1) from the k original packets x.
5. A method for transferring data from a host computer to at least one subscriber computer, said method comprising the steps of:
(1) dividing the data into k original packets x, each original packet comprising j symbols from a finite field f;
(2) forming j message vectors x each of length k, the ath message vector being formed by taking the ath symbol from each of the k original packets x in sequence;
(3) matrix multiplying each of the j message vectors x by a code generator matrix g on the right to form j codeword vectors y each of length n, the code generator matrix g being a k row×n column matrix defined over the finite field f, where n>k and any k columns out of the n columns are linearly independent;
(4) forming n encoded packets y, each encoded packet comprising j symbols, from the j codeword vectors y, the bth coded packet being formed by taking the bth symbol from each of the j codeword vectors y in sequence;
(5) transmitting the encoded packets y from the host computer to the at least one subscriber computer;
(6) receiving y' packets of the encoded packets y by the at least one subscriber computer;
(7) determining which and how many of the received packets y' have no error;
(8) if the number of received packets having no error is greater than or equal to k, forming a matrix A of k rows and k columns that comprises the columns from the code generator matrix g that correspond to k packets received without error;
(9) inverting the matrix A to form an inverted matrix A-1 ;
(10) forming j vectors z from the k packets received without error used in step (8), the cth vector z being formed by taking the cth symbol from each of the k packets y in sequence;
(11) matrix multiplying each of the j vectors z by the inverted matrix A-1 on the right to form the j message vectors x of step (2);
(12) reconstructing the k original packets x from the j message vectors x of step (11), the dth original packet being formed by taking the dth symbol from each of the j message vectors x in sequence; and
(13) reconstructing the original data of step (1) from the k original packets x of step (12).
19. A storage medium storing a computer readable program executable by a host computer to perform a method for transferring data from a host computer to at least one subscriber computer, said method comprising the steps of:
(1) dividing the data into k original packets x, each original packet comprising j symbols from a finite field f;
(2) forming j message vectors x each of length k, the ath message vector being formed by taking the ath symbol from each of the k original packets x in sequence;
(3) matrix multiplying each of the j message vectors x by a code generator matrix g on the right to form j codeword vectors y each of length n, the code generator matrix g being a k row×n column matrix defined over the finite field f, where n>k and any k columns out of the n columns are linearly independent;
(4) forming n encoded packets y, each encoded packet comprising j symbols, from the j codeword vectors y, the bth coded packet being formed by taking the bth symbol from each of the j codeword vectors y in sequence;
(5) transmitting the encoded packets y from the host computer to the at least one subscriber computer;
(6) receiving y' packets of the encoded packets y by the at least one subscriber computer;
(7) determining which and how many of the received packets y'-- have no error;
(8) if the number of received packets having no error is greater than or equal to k, forming a matrix A of k rows and k columns that comprises the columns from the code generator matrix g that correspond to k packets received without error;
(9) inverting the matrix A to form an inverted matrix A-1 ;
(10) forming j vectors z from the k packets received without error used in step (8), the cth vector z being formed by taking the cth symbol from each of the k packets y in sequence;
(11) matrix multiplying each of the j vectors z by the inverted matrix A-1 on the right to form the j message vectors x of step (2);
(12) reconstructing the k original packets x from the j message vectors x of step (11), the dth original packet being formed by taking the dth symbol from each of the j message vectors x in sequence; and
(13) reconstructing the original data of step (1) from the k original packets x of step (12).
21. A method for transferring data from a host computer to at least one subscriber computer, said method comprising the steps of:
(1) dividing the data into k original packets x, each original packet comprising j symbols from a finite field f;
(2) forming j message vectors x each of length k, the ath message vector being formed by taking the ath symbol from each of the k original packets x in sequence;
(3) matrix multiplying each of the j message vectors x by a code generator matrix g on the right to form j codeword vectors y each of length n, the code generator matrix g being a k row×n column matrix defined over the finite field f, where n>k and any k columns out of the n columns are linearly independent;
(4) forming n encoded packets y, each encoded packet comprising j symbols, from the j codeword vectors y, the bth coded packet being formed by taking the bth symbol from each of the j codeword vectors y in sequence;
(5) performing bit-level error detection and correction (EDAC) encoding on the symbols within the coded packets y;
(6) transmitting the encoded packets y from the host computer to the at least one subscriber computer;
(7) receiving y' packets by the at least one subscriber computer;
(8) performing bit-level EDAC decoding on the symbols within the received packets y';
(9) determining which and how many of the bit-level decoded packets y' have no error;
(10) if the number of bit-level decoded packets having no error is greater than or equal to k, forming a matrix A of k rows and k columns that comprises the columns from the code generator matrix g that correspond to k bit-level decoded packets having no error;
(11) inverting the matrix A to form an inverted matrix A-1 ;
(12) forming j vectors z from the k packets having no error used in step (10), the cth vector z being formed by taking the cth symbol from each of the k packets y in sequence;
(13) matrix multiplying each of the j vectors z by the inverted matrix A-1 on the right to form the j message vectors x of step (2);
(14) reconstructing the k original packets x from the j message vectors x of step (13), the dth original packet being formed by taking the dth symbol from each of the j message vectors x in sequence; and
(15) reconstructing the original data of step (1) from the k original packets x of step (14).
23. A system for transferring data from a host computer to at least one subscriber computer, comprising:
a packet encoder for (1) dividing the data into k original packets x, each original packet comprising j symbols from a finite field f, (2) forming j message vectors x each of length k, the ath message vector being formed by taking the ath symbol from each of the k original packets x in sequence, (3) matrix multiplying each of the j message vectors x by a code generator matrix g on the right to form j codeword vectors y each of length n, the code generator matrix g being a k row×n column matrix defined over the finite field f, where n>k and any k columns out of the n columns are linearly independent, (4) forming n encoded packets y, each encoded packet comprising j symbols, from the j codeword vectors y, the bth coded packet being formed by taking the bth symbol from each of the j codeword vectors y in sequence;
a bit-level encoder for performing bit-level error detection and correction (EDAC) encoding on the symbols within the coded packets y;
a transmitter for transmitting the encoded packets y from the host computer to the at least one subscriber computer;
a receiver for receiving y' packets by the at least one subscriber computer;
a bit-level decoder for performing bit-level EDAC decoding on the symbols within the received packets y'; and
a packet decoder for (1) determining which and how many of the bit-level decoded packets y' have no error, (2) if the number of bit-level decoded packets having no error is greater than or equal to k, forming a matrix A of k rows and k columns that comprises the columns from the code generator matrix g that correspond to k bit-level decoded packets having no error, (3) inverting the matrix A to form an inverted matrix A-1, (4) forming j vectors z from the k packets having no error, the cth vector z being formed by taking the cth symbol from each of the k packets y in sequence, (5) matrix multiplying each of the j vectors z by the inverted matrix A-1 on the right to form the j message vectors x, (6) reconstructing the k original packets x from the j message vectors x, the dth original packet being formed by taking the dth symbol from each of the j message vectors x in sequence, and (7) reconstructing the original data of step (1) from the k original packets x.
22. A storage medium storing a computer readable program executable by a host computer to perform a method for transferring data from a host computer to at least one subscriber computer, said method comprising the steps of:
(1) dividing the data into k original packets x, each original packet comprising j symbols from a finite field f;
(2) forming j message vectors x each of length k, the ath message vector being formed by taking the ath symbol from each of the k original packets x in sequence;
(3) matrix multiplying each of the j message vectors x by a code generator matrix g on the right to form j codeword vectors y each of length n, the code generator matrix g being a k row×n column matrix defined over the finite field f, where n>k and any k columns out of the n columns are linearly independent;
(4) forming n encoded packets y, each encoded packet comprising j symbols, from the j codeword vectors y, the bth coded packet being formed by taking the bth symbol from each of the j codeword vectors y in sequence;
(5) performing bit-level error detection and correction (EDAC) encoding on the symbols within the coded packets y;
(6) transmitting the encoded packets y from the host computer to the at least one subscriber computer;
(7) receiving y' packets by the at least one subscriber computer;
(8) performing bit-level EDAC decoding on the symbols within the received packets y';
(9) determining which and how many of the bit-level decoded packets y' have no error;
(10) if the number of bit-level decoded packets having no error is greater than or equal to k, forming a matrix A of k rows and k columns that comprises the columns from the code generator matrix g that correspond to k bit-level decoded packets having no error;
(11) inverting the matrix A to form an inverted matrix A-1 ;
(12) forming j vectors z from the k packets having no error used in step (10), the cth vector z being formed by taking the cth symbol from each of the k packets y in sequence;
(13) matrix multiplying each of the j vectors z by the inverted matrix A-1 on the right to form the j message vectors x of step (2);
(14) reconstructing the k original packets x from the j message vectors x of step (13), the dth original packet being formed by taking the dth symbol from each of the j message vectors x in sequence; and
(15) reconstructing the original data of step (1) from the k original packets x of step (14).
4. A method according to claim 3, wherein the packets are transmitted in a maximally interleaved fashion.
6. A method according to claim 5, wherein the symbols within the coded packets y are also error detection and correction encoded before transmission and decoded after reception.
7. A method according to claim 5, wherein the left k×k submatrix of the code generator matrix g is the identity matrix.
9. A system according to claim 8, wherein said encoder is a processor and the encoding is performed by a computer program stored in a storage medium accessed by said processor.
10. A system according to claim 9, wherein the processor is within the host computer.
11. A system according to claim 8, wherein said decoder is a processor and the decoding is performed by a computer program stored in a storage medium accessed by said processor.
12. A system according to claim 11, wherein the processor is within the at least one subscriber computer.
13. A system according to claim 8, wherein said transmitter is a satellite broadcast transmitter.

This application claims the benefit of U.S. Provisional Application No. 60/010,111, filed Jan. 17, 1996.

1. Field of the Invention

The present invention relates to a method and system for reliable transfer of data. In particular, the present invention provides a method and system of error correction coding to ensure that large, multimedia data files, including digitized music, still images or moving images, such as may be transmitted using one-way satellite broadcasting, are received error-free despite the effects of various types of noise interfering with the transmitted signal.

2. Description of Related Art

Today, the availability of powerful digital computational tools has yielded the ability to present information and data in forms that go far beyond text and numbers. There now exists the capability to create and share data in more complex multimedia forms, using graphics, audio, still images, moving images (video), and combinations thereof. However, digital multimedia data generally is far larger in size than text data. For example, whereas a conventional text file usually occupies less than 50 Kilobytes (Kbyte), just one minute of compressed video requires up to 10 Megabytes (Mbyte), almost 200 times larger in size.

The presentation of information in multimedia form therefore creates two problems--storage and communication. Storage has improved dramatically over the past few years. For example, personal computers (PCs) can now store inexpensively many Gigabytes (Gbyte) of data, and the cost-per-Gbyte is becoming less expensive every day.

Communications, however, remain a problem. Historically, the oldest method of distributing large amounts of information has been printed material, usually in the form of magazines and books. However, this method is relatively expensive, takes days to complete, is limited to presenting data in text, pictorial or graphic form, and is difficult to update or change. Distribution of information via audio cassette or video cassette, while less costly and allowing information to be presented in audio and video form, is still relatively slow in that shipment of the physical item containing the information must take place, and the cassette itself still makes it relatively difficult to update and change the information.

More practical than printed material and cassettes, graphics, music and other information may be digitized into computer data files, referred to as "large digital objects," which in turn may be transferred from a host computer to a potentially large number of subscriber computers. One common way of transferring data files is via a public or private computer network, in which the data files are transmitted by the host computer and received by the subscriber computers over phone lines via a modem. Although distribution via modems may work well for multi-Kbyte files, transmitting multi-Mbyte data files is impractical even when using the fastest modems, because the transmission speed of modems is constrained by the relatively low bandwidth of the telephone lines. For example, reliably retrieving just one large data object using the Internet, or other public or private networks, even when using ISDN lines, may take many minutes to many hours, and is relatively expensive.

To avoid overloading expensive private networks, many companies distribute large text files and other large digital objects using CD-ROM disks, each of which can hold, for example, up to 660 Mbytes of data. While the cost of distribution is moderate in comparison to using a network, the distribution of CD-ROM disks suffers from one major drawback shared by the oldest methods of information distribution--it can take one or more days, in comparison to the theoretically near-instantaneous communication potential that digital information should enjoy. Further, to update this CD-ROM based information, new CD-ROMS must be provided, usually from every three months to a year.

To overcome the problems associated with the above methods of distribution, distributors of large digital objects are turning to satellite broadcasting. Satellite broadcasting provides not only distribution over large geographical areas, for example, the entire United States and Canada, but potentially has the high bandwidth capacity required to transmit large digital objects at high speeds, thus reducing the transmission time to seconds. Moreover, the cost of satellite broadcasting, on a per-user basis, is comparatively less than the respective costs of the above methods. A one-way broadcast satellite system, shown in FIG. 1, transfers data from the host computer 1 to a satellite transmitter device 2. The satellite transmitter device 2 in turn transmits, through an uplink antenna 4, the data to a satellite 5 using modulation techniques well-known in the art. The satellite 5 retransmits the data to one or more downlink antennas 6 and satellite receiver devices 7. The satellite receiver device 7 transfers the data to the subscriber computer 8.

In such a system, it is essential in most applications that the transferred data files are reliably received in perfect condition at all the subscriber computers. For example, the transferred data file from the host may contain sensitive financial information in which no errors are acceptable. One notable drawback of one-way satellite broadcast systems, however, as compared to other standard methods of information distribution such as the above-described computer networks, is the inability of the subscriber computers to inform the host that a reception error has occurred.

Another drawback of satellite broadcasting is a greater vulnerability of the transmitted signal to various forms of noise interference present in the transmission channel.

One form of noise that is always present in the channel is "white" noise. For example, white noise is introduced in the satellite channel by the thermal radiation of the gaseous constituents of the earth's surface. The strength and frequency of this noise varies, and it sometimes overpowers the transmitted signal causing it to be received erroneously. Because of white noise, a transmitted binary "zero" bit is occasionally received erroneously as a binary "one" bit, and vice-versa. Such errors are known as bit errors. White noise generally tends to cause isolated bit errors in a transmitted message. Although these bit errors are usually spread out throughout the message, they can be easily detected and corrected, because they are isolated.

In contrast with white noise, "impulse" noise tends to wipe out long sequences of consecutive bits. Such errors are known as "burst" errors. Their duration varies from a few milliseconds to a few seconds, but certain phenomena, such as rainstorms or sunspots, can cause burst errors of even longer duration such as a few minutes. Unlike bit errors due to white noise, burst errors are not distributed over the entire message, but only a portion thereof. However, burst errors are more difficult to detect and correct, because they wipe out so many consecutive bits of data.

Well-known error detection and correction (EDAC) schemes are used to reduce the effects of errors caused by white noise. EDAC generally operates at the bit level by adding enough redundant data bits to the data to detect and correct the received data. In practice, EDAC can only detect and correct a limited amount of bit errors. The redundant data added to the original data, however, obviously increases the amount of data to be transmitted and thus the transmission bandwidth and transmission time. Well-known EDAC schemes include Hamming, Viterbi, Reed-Solomon, and other forward error correction (FEC) coding schemes.

Interleaving may also be performed at the bit level. Interleaving rearranges the data bits so that they are non-sequentially transmitted. The subscriber computer deinterleaves the received bits to reorder the bits as they originally appeared. This technique reduces the effect of errors in a sequence of bits. Although interleaving does not in itself correct those bit errors, by non-sequentially reordering the data bits in a block of data that is to be transmitted by the host computer, the bit errors are more uniformly distributed over the received block of data upon deinterleaving by the subscriber computer. By isolating the bit errors, interleaving enhances bit-level EDAC coding performance. Both EDAC and interleaving can also be performed on data symbols representing groups of bits, such as bytes.

In satellite broadcast systems, the transmitted data bits or symbols are most likely to be organized into large groups called packets, and a large digital object is transmitted as a sequence of packets. The addressed subscriber computers reconstruct the large digital object from the received packets. The above-described noise bursts, especially those due to rainstorms and sunspots, can typically damage one or more long sequences of consecutive packets, the effect of which is shown in FIG. 2. Those packets are either not received by one or more of the subscriber computers or are received severely corrupted. Although bit-level EDAC schemes might be able to correct some of the corrupted packets, depending on the number of erroneous bits in those corrupted packets, these schemes are simply not robust enough to correct the great majority of those corrupted packets. This is because, in extended periods of burst noise, a large amount of both the original data bits and redundant EDAC bits in a packet are received corrupted, thus making bit-level error correction, and thus packet-level error-correction, impossible. Moreover, EDAC schemes are useless in the case of those packets not received.

One known method for reducing the effect of burst errors in satellite broadcast systems is retransmission of those packets that were not received or were received corrupted and could not be corrected (hereinafter those packets are simply referred to as "lost"). For example, a host computer may broadcast via satellite to two geographically widely-separated subscriber computers A and B. Due to this wide separation, subscriber computer A and subscriber computer B may experience different weather conditions, and thus different patterns of noise. For example, subscriber computer A may lose 20% of the transmitted packets, while subscriber computer B may successfully receive all the transmitted packets.

Although it is possible to rebroadcast the entire file to all the subscriber computers, this method is costly, wastes time and bandwidth, and prevents the satellite channel from being used for other purposes. In the above example, subscriber computer A would identify the lost packets (by examining the serial numbers of the correctly received packets) and would ask the host computer to retransmit the packets it missed until the entire large digital object could be reconstructed perfectly by subscriber computer A. The request for missed packet retransmission is made through a back channel, and the host computer rebroadcasts those missed packets via satellite. Alternatively, the host computer retransmits those missed packets only to subscriber computer A through the back channel.

Retransmission of lost packets requires, however, (1) two-way communication back channels from all of the subscriber computers to the host computer so each subscriber computer can inform the host computer of which packets were lost, and (2) a retransmission protocol between the host computer and the subscriber computers. Each back channel usually takes the form of a modem and telephone lines, or is part of a standard computer network. The back channel therefore has a limited bandwidth and can timely transmit only a limited amount of information. Back channels are also expensive. Further, retransmission increases the time required to distribute the large digital object, and prevents the host computer and subscriber computers from doing other tasks.

Thus, none of the current error correction schemes or data retransmission techniques provides a reliable and efficient method of transferring large digital objects over a one-way broadcast satellite system.

The present invention provides a reliable and efficient method and system for transferring long sequences of data packets, such as those comprising a large digital object over a one-way broadcast satellite system to overcome the effects of burst errors which conventional EDAC methods fail to correct altogether and retransmission fails to correct efficiently. It accomplishes this by transforming the original packet sequence into an encoded packet sequence, so that if any combination of encoded packets, equal in number to the number of original packets, is successfully received, the original packet sequence can be recovered. By accurately estimating the number of packets expected to be lost because of noise, only the minimum number of encoded packets need be generated and broadcast, thus providing an efficient, bandwidth-minimizing transfer method and system for packet sequences such as files. Moreover, since each subscriber computer can independently reconstruct the original packets error-free, the present invention eliminates the need for retransmission, saving both money and time and making more efficient use of the satellite channel and the back channels, if present.

In accordance with one aspect of the invention, a method and a system are provided for transferring data from a host computer to one or more subscriber computers, the data consisting of a plurality of k original packets, where k is a positive integer. The method includes the steps of encoding the k original packets to form n encoded packets, where n>k, transmitting the encoded packets from the host computer to the subscriber computers, receiving some of the transmitted packets, and decoding any combination of k correctly-received encoded packets to reconstruct the original k packets.

The various aspects of the present invention can be best understood by reference to the detailed description of the preferred embodiments set forth below taken with the drawings, in which:

FIG. 1 depicts a block diagram of conventional one-way broadcast satellite system.

FIG. 2 depicts a still image showing the effect of burst noise on transmission of that image.

FIGS. 3A and 3B respectively depict flowcharts for the transmitting side and the receiving side of the first embodiment of the present invention.

FIG. 4 depicts a Vandermonde matrix used in the first embodiment of the present invention.

FIG. 5 depicts a code generator matrix used in the second embodiment of the present invention.

FIGS. 6A-6D respectively depict a Vandermonde matrix V, a code generator matrix G, a matrix A and an inverted matrix A-1, used in an example of the second embodiment of the present invention.

FIG. 7 depicts a flowchart of the third embodiment of the present invention.

FIGS. 8A-8D depict an example of the third and fourth embodiments of the present invention.

FIG. 9 depicts a file transfer system according to the fifth embodiment of the present invention.

FIGS. 10A-10N depict UU-encoded object code representative of the encoding and decoding methods of the present invention.

FIG. 11 depicts the still image, corresponding to that shown in FIG. 2, error-corrected by the fifth embodiment of the present invention.

FIG. 12 depicts transmitting side information for the still image shown in FIG. 11, to be transmitted by the fifth embodiment of the present invention.

FIG. 13 depicts receiving side information for the still image shown in FIG. 11, received by the fifth embodiment of the present invention.

In the first embodiment of the present invention, a file error-correcting coding method encodes a data file of original packets yielding a new file of encoded packets. The host computer then transmits the encoded file through a satellite transmitter device and antenna to a satellite using packet-based broadcast techniques. One or more downlink antennas and satellite receiver devices receive the transmitted packets and transfer the same to the respective subscriber computers. The file can be reconstructed without any errors by using the file error-correcting decoding method of the present invention, despite packet loss caused by the noisy transmission channel, as long as the number of encoded packets correctly received is greater than or equal to the number of original packets. If this is the case, the subscriber computer can reconstruct the file from any combination of the correctly-received encoded packets.

The file error-correcting coding method of the first embodiment is shown in the flowcharts of FIGS. 3A and 3B. In step S1, the file X is divided into k packets, X1, X2, X3, . . . , Xk, where each packet Xi is a fixed-length sequence of j symbols (a symbol being a sequence of one or more bits, typically a byte) defined over a finite field F (boldface type denotes a vector or matrix quantity, or a field, and non-boldface type denotes a scalar quantity).

Two examples of field F are ZP, the set of integers modulo a prime number P, and GF[qr ], a Galois field of size qr, where q is a prime number and r is an integer. In field ZP, all the addition and multiplication between field elements is done modulo-P. In the field GF[qr ], field elements are interpreted as polynomials and addition and multiplication are performed as polynomial addition and multiplication modulo a primitive polynomial of degree equal to r.

For example, symbol xij of packet Xi can be any one of the elements of the Galois field GF[28 ] (an integer in the range of 0-255, or as implemented on a computer, a byte). All operations involved in the matrix multiplications in the steps below are element additions and multiplications defined over the field F as stated in the above paragraph, and are thus not regular integer additions and multiplications. Returning to the example, the addition of two bytes "a" and "b" of the Galois field GF[28 ] is the exclusive-OR of each bit of byte "a" with the corresponding bit of byte "b". The result of this addition is another byte "c" of the Galois field GF[28 ].

In step S2 (steps S2a-S2c), X is encoded into the codefile Y that is transmitted by the host computer to the subscriber computers, as follows. In substep S2a, the first symbols, xij, from each of the packets Xi, i=1, 2, . . . , k, are used to form a message vector x1 of length k. Thus, x1 =(x11, x21, x31, . . . , xk1).

In step 2b, message vector x1 is encoded to form the codeword vector y1 =(y11, y21, y31, . . . , yn1) of length n, where each symbol in the codeword vector is an element of field F. Also, n is the total number of transmitted packets, is greater than k, the number of original packets, and is determined beforehand, as follows.

If p is the percentage of packets that will be lost during transmission due to noise, then p times n is the total number of packets that will be lost. To guarantee perfect file delivery, the number of correctly received encoded packets, n-p*n, must be greater than or equal to the number of original packets, k, or solving for n:

n>=ceil[k/(1-p)] (1),

where ceil[q] is the ceiling function that rounds up a real number q to the next highest integer.

Thus, if p can be accurately estimated based on familiarity of the channel by the operator of the host computer, n can be calculated from equation (1) to ensure perfect message delivery. Of course, if p is underestimated by the operator, then the number of packets received correctly will be less than k and the original file X cannot be recovered. Notably, by allowing p to be adjusted on a transmission-by-transmission basis, each transmitted file can be made to contain the minimum number of packets necessary to ensure the file's perfect reconstruction by the receiver. This allows the operator to minimize the bandwidth consumed by the system on a transmission-by-transmission basis. For example, if p is 5% and k=100, then the smallest possible value for n is 106. Thus the number of encoded packets is only six more than the number or original packets.

To form message vector x1 into the codeword vector y1, message vector x1 is matrix multiplied on the right by a code generator matrix G as follows:

y1 =x1 G(2).

G is defined as a k (row)×n (column) matrix, where n>k, and the elements of G are also defined over field F. G defines a linear block code and is thus called the code generator matrix of that code. In the present invention, G must have the property that any k out of its n columns are linearly independent. One such matrix G is the Vandermonde matrix, shown in FIG. 4. For any pair of integers k and n, where n>k, a Vandermonde matrix can be generated from n distinct elements of field F, g1, g2, g3, . . . , gn (n must be less than the number of elements in field F). The rows of the Vandermonde matrix are simply the powers of g1, g2, g3, . . . , gn from 0 to k-1. One way to generate n distinct elements of F, that is, g1, g2, g3, . . . , gn, is by starting from a primitive element b of F and taking successive powers of b, that is b0, b1, b2, b3 , . . . These powers of b eventually cover all of the non-zero elements of F before they start repeating.

In step S2c, yi1 becomes the first symbol of each respective packet Yi, i=1, 2, . . . , n. Steps S2a-S2c are looped through for all the j symbols of packets Xi. For example, the second symbol, xi2, of each of the packets Xi, i=1, 2, . . . , k, is used to form a message vector x2 of length k, which is encoded into codeword vector y2 =(y12, y22, . . . , yn2) by using equation (2). Symbols yi2 of codeword vector y2 are then used to form the second symbol of each packet Yi, i=1, 2, . . . , n, and so on. Of course, these operations need not be carried out in this fashion--for example, all message vectors may be assembled first, and all codeword vectors are then sequentially computed by equation (2).

As an extra level of protection against white noise, the individual symbols y, within the packets Y of code file Y are encoded at the bit level using standard EDAC encoding schemes, such as a Reed-Solomon code, in step S3 of the present invention. Bit-level encoding can be done by the host computer, by the satellite transmitter device or by the satellite uplink. Independent of error correction, data compression and encryption methods may also be applied to the data prior to transmission.

In step S4, the codefile Y is transmitted to the subscriber computers using packet-based broadcast protocols. Codefile Y has n-k additional packets than the original file X and thus requires more bandwidth than the original file.

In step S5, any one of the subscriber computers receives a sequence of packets Y'i, i=1, 2, . . . , n, which are the packets of codefile Y corrupted by the noise channel. In step S6, EDAC decoding is performed by the satellite receiver device or the subscriber computer to detect and correct, if possible, bit-level errors within the Y' packets. Because the transmission channel may also cause burst errors, one or more of the transmitted packets may be lost or may be received with so many bit errors that the EDAC decoding cannot correct them. In either case, in steps S6 and S7, those packets Y'i which are EDAC uncorrectable (step S6) or lost (step S7) are marked with the special symbol Δ indicating they are lost. Because the transmitted packets are sequentially numbered, for example, with serial numbers, the subscriber computer can easily detect which packets were correctly received and which packets were lost. Thus Y'i =Yi, if the packet is received correctly, or Y'i =Δ, if the packet is lost.

If the number of Y' packets correctly received are greater than or equal to the number of original packets, then the original file X can be recovered in steps S8a, S8b, S9a and S9b. In step S8a, a k×k matrix A is constructed by removing from the code generator matrix G all columns corresponding to the positions of the Δ packets in Y', and by removing any additional columns (corresponding to positions of correctly received packets) so as to form a k×k square matrix. For example, if k=7 and n=10, and if the third and fifth packets were lost, then the third and fifth columns must be removed, and one more good column, such as the tenth column, from matrix G to form matrix A. Note that the choice of the tenth column is arbitrary, since any one of the columns corresponding to the position of a correctly received packet could have been removed instead. Note also that eight packets were correctly received, which is greater than the number of original packets (7).

In step S8b, matrix A is inverted to A-1. Because any k columns of G are linearly independent, A always has full rank, that is, A is non-singular, and thus can be inverted to matrix A-1. Note that the matrix formation step S8a and matrix inversion step S8b need only be computed once for a given file transfer, since A-1 can be used repeatedly in step S9b below for computation of all of the message vectors required to reconstruct the original packets of the file.

In step S9a, the first k symbols y'i1, from the correctly received packets Y'i used to form A, are used to form a vector z1 of length k. In the example above, z1 will equal (y'11, y'21, y'41, y'61, y'71, y'81, y'91). In step S9b, the message vector x1 of length k is recovered from z1 as follows:

x1 =z1 A-1 (3).

Xi1 is the recovered first symbol from the original packet Xi, for all i=1, 2, . . . k. Steps S9a and S9b are looped through until all j symbols forming the original packets X have been recovered. For example, z2 is formed next, then x2 is computed by using equation (3), then z3 and x3, etc., and finally zj and xj, thus recovering all of the symbols of original file X. The order of formation of the vectors z may be changed. For example, all vectors z1, z2, . . . , zj may be formed first, then all message vectors x1, x2, . . . , xj are computed. In step S10, the data file is reassembled from recovered packets X.

Thus, the data file can be distributed error-free by the host computer to the subscriber computers as long as the number of packets correctly received is greater than or equal to the number of original packets.

In one particular implementation of the first embodiment of the present invention, the order in which vector-matrix operations are performed during encoding and decoding is changed to improve the overall efficiency of the error correcting method.

Suppose that G is the chosen generator matrix, and gij is the element of G in the intersection of row i and column j, where i=1, 2, . . . , k and j=1, 2, . . . , n.

The encoded packets Yi, i=1, 2, . . . , n are formed in k iterations. During the jth iteration, a set of n contribution packets Cji, i=1, 2, . . . , n, is computed from the jth original packet. Those contribution packets have the property that the ith encoded packet Yi is equal to the sum of the k contribution packets Cji, j =1, 2, . . . , k. More specifically, the element of position t of encoded packet Yi is equal to the sum of all the elements in the t positions of the contribution packets Cji, j=1, 2, . . . ,k:

Yikj=1 Cji.

The contribution packets Cij are computed as follows. In the first iteration, the first original packet is multiplied by g11 to form the first contribution packet C11 of the first iteration. More specifically, the element in the position t of the first contribution packet C11 of the first iteration is equal to the element in the t position of the first original packet multiplied by g11. Similarly, the first original packet is multiplied by the element g12 to form the second contribution packet C12 of the first iteration. In general, the first original packet is multiplied by g1m to form the mth contribution packet C1m of the first iteration, m=1, 2, . . . , n. In general, in the jth iteration, the jth original packet is multiplied by gj1 to form the first contribution packet Cj1 of the jth iteration. More specifically, the element in the t position of the first contribution packet Cj1 of the jth iteration is equal to the element in the t position of the jth original packet multiplied by gj1. Similarly, the jth original packet is multiplied by the element gj2 to form the second contribution packet Cj2 of the jth iteration. In general, the jth original packet is multiplied by gjm to form the mth contribution packet Cjm of the jth iteration, m=1, 2, . . . , n.

The encoded packets Yi are formed incrementally from the contribution packets. More specifically, their elements are initialized to zero before the first iteration, and at the end of each iteration, the contribution packets computed during that iteration are added to the current encoded packets. In this way, at the end of all iterations, the encoded packets are equal to the sum of the corresponding contribution packets from all the iterations.

Assuming that the k original packets are stored consecutively in a permanent storage device and that the encoded packets will also be stored in a similar way, the above-described order of computation constitutes an improvement over the method of computation of the first embodiment, that is, when the encoded packets are formed by the y vectors. In particular, collecting the elements that form the x vectors from the original packets and redistributing the elements of the y vectors to the encoded packets requires a very large number of seek operations on the permanent storage device in which the original and the encoded packets are stored. Such seek operations in the permanent storage device tend to be costly.

In the above-described improved order of computation, only one sequential pass over the original packets (no seeks) is required, since the original packet j is processed in full during the jth iteration and is not needed in any of the previous or following iterations. Further, a maximum of k sequential passes (k-1 seeks) over the encoded packets is necessary corresponding to the k iterations explained above. Thus, the improved order of computation significantly reduces the amount of seeks in the storage devices used and makes encoding more efficient. The efficiency of decoding can also be improved in a similar fashion.

In the second embodiment of the present invention, the first k encoded packets are the same as the k original packets. To ensure that the first k encoded packets are the same as the original packets, the code generator matrix G must be transformed to standard form through row operations, so that the left k×k submatrix of G is the identity matrix, that is, a submatrix with ones on its diagonal and zeros everywhere else, as shown in FIG. 5. If xj is matrix multiplied on the right by G to generate yj, then

yij =xij for i=1, 2, 3, . . . , k.

As it is apparent, multiplication by the k×k identity submatrix need not be performed. Thus, only multiplication by the remaining k×(k-n) submatrix of G need be performed to form the last n-k encoded packets, saving time and storage space during encoding, thus making encoding more efficient.

On the receiving side, in the case where the first k packets are received correctly, there is no need for decoding since the first k received packets are exactly the same as the k original packets and the last k-n packets can be ignored. That is, if none of the first k packets is lost,

y'ij =xij for i=1, 2, 3, . . . , k.

Thus, the above-described decoding steps S8a, S8b, S9a and S9b, including the inversion of matrix A, need not be performed to recover the original packets X, thus making decoding more efficient.

Consider, for example, a digital file consisting of k=7 original packets of 1024 bytes each. This file is encoded using the second embodiment of the present invention with p=30% expected packet loss, yielding a sequence of n=10 encoded packets of 1024 bytes each. The encoding uses the Galois field GF[28 ] represented by the polynomial x8 +x4 +x3 +x2 +1, and the Vandermonde matrix V shown in FIG. 6A. After transformation to standard form, V yields generator matrix G shown in FIG. 6B.

If x1 =(123, 55, 2, 96, 197, 0, 73) is the message vector formed from the first byte (equivalent to an integer in the range 0-255) of each one of the original 7 packets, then y1 =(123, 55, 2, 96, 197, 0, 73, 162, 173, 3) is the codeword vector formed by the first byte of each of the encoded 10 packets, where y1 =x1 G. Note that because G is in standard form, the first 7 bytes of y are equal to the 7 bytes in x.

The encoded packets are transmitted in sequence over a satellite transmission channel to a large number of subscriber computers. Subscriber computer C correctly receives encoded packets 1, 3, 5, 6, 7, 9 and 10, but misses encoded packets 2, 4 and 8. As the number of correctly received packets is equal to the number of original packets, the original file can be reconstructed from the correctly received packets as follows. Matrix A, shown in FIG. 6C, is formed from the generator matrix G with columns 2, 4 and 8, corresponding to the serial numbers 2, 4 and 8 of the lost packets, removed. Matrix A is inverted to form matrix A-1, shown in FIG. 6D.

Vector z1 =(123, 2, 197, 0, 73, 173, 3) is the vector of the first byte of each one of the correctly received packets, that is, z1 is equal to y1 without bytes 2, 4 and 8 which were lost in transmission. The original x1 =(123, 55, 2, 96, 197, 0, 73) is recovered by multiplying z1 by A-1 on the right. Bytes 2-1024 of all the original packets can be recovered in similar fashion. The original file can then be reconstructed from the recovered original packets. Notably, if transmitted packets 1, 2, . . . , 7, corresponding to the original packets, were all correctly received, then there would be no need for decoding. In this case, whether or packets 8, 9 and 10 are correctly received is immaterial.

As the size of the file to be transferred increases, k and n increase, and the file error-correcting methods of the first and second embodiments become increasingly more inefficient because of the greater difficulty of inverting a large k×k matrix A. Moreover, once the underlying finite field F is fixed, then the choices for k and n are limited by the size of the field F.

In the third embodiment of the present invention, large files are divided into "chunks", smaller groups of packets, that can be independently encoded and decoded, as shown in the flowchart of FIG. 7. Each chunk is encoded, transmitted, received and decoded separately, by the methods of the first or second embodiments. The large file is then reassembled by the subscriber computer from the recovered chunks.

A more preferable method for transferring large files is provided by the fourth embodiment of the present invention. The above-described third embodiment has less error-correcting ability against burst errors than the first and second embodiments from which it was derived. In particular, there are cases in which the subscriber computer may receive a number of encoded packets larger than the number of original packets, but cannot recover the original file. For example, consider the case of an 800-packet original file divided into 8 chunks of 100 packets each and encoded with 20% error correction yielding encoded chunks of 125 packets each. Those chunks are transmitted in sequence as in the third embodiment. Then, a single burst error yielding a 20% packet loss wipes out 200 consecutive packets of the total 1000 packets transmitted. Because the chunks were transmitted sequentially, at least one chunk will be completely lost, thus making recovery of the original file impossible.

By rearranging the encoded packets of the different chunks in such a way that they are spread out uniformly over the transmission, the error correcting ability of the third embodiment to recover from burst errors is significantly improved. This is accomplished by packet interleaving. As in the third embodiment, the large file is divided into manageable chunks. In the fourth embodiment, however, the packets of the various chunks are transmitted in an interleaved fashion. In particular, once the chunks S1, S2, . . . , Sj have been formed, each chunk is encoded using the method of the first or second embodiment to generate encoded packets for each one of the chunks. Those encoded packets are then transmitted as follows. The first encoded packet of each chunk is transmitted first. Then, the second encoded packet of each chunk is transmitted, and so on until the jth packet of each chunk is transmitted at the end.

Upon reception by a subscriber computer, the received sequence of encoded packets is deinterleaved and the encoded packets of each chunk are grouped together. Each chunk is then decoded separately and the original large file is reconstructed from the encoded chunks. Returning to the previous example, where an 800-packet file is encoded with 20% error correction, the 20% packet loss that wipes out 200 consecutive packets would kill exactly 25 packets in each one of the 8 chunks. As there are exactly 100 correctly received packets in each chunk, all chunks can be error corrected, and the original file can be reconstructed from the recovered chunks. Hence, the error correcting ability of the fourth embodiment against burst errors is significantly higher than that of the third embodiment.

Another example of the benefit of using packet interleaving is shown in FIGS. 8A-8D. The original file is broken into 12 packets as shown in FIG. 8A. The packets are organized into chunks A, B, C and D of 3 packets each, and each chunk is then encoded with one extra packet (25% of total), as shown in FIG. 8B. The encoded packets may then be transmitted in sequential order (as in the third embodiment), or they may be transmitted in an interleaved fashion (as in the fourth embodiment), as respectively shown in FIGS. 8C and 8D (ignoring the cross-out lines).

The cross-out lines of FIGS. 8C and 8D respectively show the packets lost during transmission because of burst noise. The burst error destroys 4 consecutive packets, that is, 25% of the total number of transmitted packets (16). In the case where the packets were transmitted using the third embodiment, the burst error destroyed 75% (3) of the packets of chunk B, as shown in FIG. 8C. Because chunk B was encoded with 25% expected packet loss, chunk B could not be recovered and thus the original file could not be recovered. In the case where the packets were transmitted using the fourth embodiment, however, the burst error destroyed only 25% (1) of the packets of each chunk A, B, C and D, as shown in FIG. 8D. Thus, all four chunks could be recovered, and the original file could be reconstructed from the recovered chunks. Therefore, the error correcting ability against burst errors is greater when using interleaving.

In one particular implementation of the fourth embodiment, a large digital file is divided into chunks as follows. If K is the largest number of original packets that can be handled in the first or second embodiments, a large file having more than K original packets must be split into m chunks, where m is a positive integer with m>1, each chunk containing at most K packets. Thus, the original file contains at most m*K packets. The first chunk S1 is constructed from every mth packet of the file starting with the first packet (thus, for example, if m=5, K=4, chunk S1 would consist of original packets with serial numbers 1, 6, 11, and 16). The second chunk is constructed from every mth packet of the large file starting with the second packet (continuing the example, chunk S2 would consist of original packets with serial numbers 2, 7, 12, and 17). In general, the jth chunk Sj is constructed from every mth packet of the large file starting with the jth packet, where j=1, 2, . . . , m.

The method of the third embodiment represents no interleaving, while the method of the fourth embodiment represents maximal interleaving. One skilled in the art would recognize that interleaving may be performed at various degrees between those two extremes. For example, the encoded packets of each chunk could be transmitted in pairs. More specifically, the first two packets of the first chunk would be transmitted first, followed by the first two packets of the second chunk, and so on until the first two packets of the last chunk have been transmitted. Then, the second two packets of the first chunk would be transmitted followed by the second two packets of the second chunk, and so on until the second two packets of the last chunk have been transmitted. This interleaving of packet pairs would continue in the same way until the last two packets of all chunks have been transmitted.

A block diagram of a reliable packet-based data transfer system is shown in FIG. 9. This system includes a host computer 11, usually a PC. The host computer 11 includes or is extended with a transmission communication device 13 for the transfer of data outside the computer. The communication device can take the form of a serial card or a computer chip. The communication device 13 is connected by a cable to a satellite transmitter device 12. The satellite transmitter device 12, through an attached uplink antenna 14, broadcasts the encoded data packets to one or more subscriber computers 20 via satellite 16.

The encoded packets are received by a downlink antenna 17 (usually submeter in diameter) attached to a satellite receiver device 18, which in turn is connected to subscriber computer 20, usually a PC. The subscriber computer 20 includes or is extended with a reception communication device 15 to transfer the received packets into the subscriber computer.

The file error-correcting methods of the first through fourth embodiments may be implemented (1) by computer software, (2) by dedicated hardware, or (3) by combinations of software, hardware and firmware. The computer software may run on a Windows® 3.11 or Windows® NT® operating system. The software preferably runs on a Pentium® 133 MHz PC or better with at least 16 Mbyte RAM and a 1 Gbyte hard drive for storage of the large digital objects.

An example of computer software implementing an embodiment of the present invention as described above is shown in the "UU-encoded" object code of FIGS. 10A-10N. The UU-encoded object code is created from binary object code, output from a "C++" language (Microsoft® Visual C++®, Version 1.52) compiler, by transforming every 6 bits into a symbol from a reduced ASCII set of symbols, as is well-known in the art. The UU-encoded object code may be changed back into binary object code by transforming the symbols into their corresponding six bits. FIGS. 10A-10H show the UU-encoded object code for encoding the original packets on the transmitting side of the system, and FIGS. 10I-10N show the UU-encoded object code for decoding the received packets on the receiving side of the system. This object code, in its binary form, will run on IBM and IBM-compatible PCs using a Windows® 3.1 or Windows® 3.11 operating system.

In addition to the high speed transmission communication device, the host computer may be set up with a relational database, a graphical user interface, and list/addressing software and transmission communication software to communicate with the transmission communication device. Data files are transmitted and received using a packet-based broadcast protocol at speeds of over 8.44 Mbps in a dedicated computer. In addition to the high speed receiver communication card, the subscriber computer may be set up with a local database, a graphical user interface and receive communication software to communicate with the receiver communication device.

Moreover, the packets may be encoded using a computer separate from the host computer. In this case, the host computer is responsible for transmitting the encoded packets. Similarly, the received packets may be received by the subscriber computer and then decoded using a separate computer.

Any type of digital file may be transmitted and received. These files may include, but are not limited to, video files (MPEG, M-JPEG), electronic documents (PDF), color images (TIF), press clippings, interactive training (CD-I, CD-ROM), news feeds, music and audio (WAV), compound documents, and other multimedia files.

An example of a digital image encoded, transmitted, received damaged and successfully decoded using the present invention of the fifth embodiment is shown in FIG. 11. This image corresponds to the image shown in FIG. 2. In FIG. 11, the received packets have been decoded using the present invention and all of the original packets have been recovered, allowing the original image to be reconstructed successfully. Transmission-side information and receiving-side information relating to the image of FIG. 11 are respectively shown in FIGS. 12 and 13.

Of course, it will be appreciated that the invention may take forms other than those specifically described, and the scope of the invention is to be determined solely by the following claims.

Fischer, Michael, Paleologou, Sophia

Patent Priority Assignee Title
10001923, Dec 29 2009 Pure Storage, Inc Generation collapse
10001950, Mar 29 2016 Green Market Square Limited Maintaining storage thresholds in a distributed storage network
10002047, Jun 05 2012 Pure Storage, Inc Read-if-not-revision-equals protocol message
10007438, Jun 25 2016 International Business Machines Corporation Method and system for achieving consensus using alternate voting strategies (AVS) with incomplete information
10007444, Apr 29 2016 International Business Machines Corporation Batching access requests in a dispersed storage network
10007574, Jul 31 2009 Pure Storage, Inc Memory controller utilizing an error coding dispersal function
10007575, Feb 27 2010 Pure Storage, Inc Alternative multiple memory format storage in a storage network
10013191, Aug 31 2015 Pure Storage, Inc Encoding data for storage in a dispersed storage network
10013203, Jan 04 2013 Pure Storage, Inc Achieving storage compliance in a dispersed storage network
10013207, Sep 24 2015 Pure Storage, Inc Considering object health of a multi-region object
10013309, Aug 17 2016 Pure Storage, Inc Missing slice reconstruction in a dispersed storage network
10013444, Mar 02 2012 Pure Storage, Inc Modifying an index node of a hierarchical dispersed storage index
10013471, Sep 13 2012 Pure Storage, Inc Avoiding write conflicts in a dispersed storage network
10015141, Nov 25 2009 Pure Storage, Inc Dispersed data storage in a VPN group of devices
10015152, Apr 02 2014 Pure Storage, Inc Securing data in a dispersed storage network
10015161, Jun 05 2012 Pure Storage, Inc Establishing trust within a cloud computing system
10015255, Sep 30 2005 Pure Storage, Inc Storing data in a dispersed storage network
10020826, Apr 02 2014 Pure Storage, Inc Generating molecular encoding information for data storage
10025505, Jun 29 2016 International Business Machines Corporation Accessing data in a dispersed storage network during write operations
10025665, Jun 30 2015 Pure Storage, Inc Multi-stage slice recovery in a dispersed storage network
10027478, Oct 09 2007 Pure Storage, Inc Differential key backup
10027755, Jun 01 2016 International Business Machines Corporation Selecting storage units in one or more dispersed storage networks
10031669, Dec 29 2009 Pure Storage, Inc Scheduling migration related traffic to be non-disruptive and performant
10031700, Nov 30 2015 Pure Storage, Inc Storing data copies in a dispersed storage network
10031805, Aug 09 2016 International Business Machines Corporation Assigning slices to storage locations based on a predicted lifespan
10031809, Jul 20 2016 Pure Storage, Inc Efficient method for rebuilding a set of encoded data slices
10037140, Oct 03 2013 Pure Storage, Inc Migration of encoded data slices in a dispersed storage network
10037171, Apr 30 2015 Pure Storage, Inc Accessing common data in a dispersed storage network
10042564, Jun 30 2014 Pure Storage, Inc Accessing data while migrating storage of the data
10042566, Aug 31 2015 Pure Storage, Inc Intelligent read strategy within a dispersed storage network (DSN)
10042577, Jan 04 2013 Pure Storage, Inc Storing and retrieving mutable objects
10042703, Apr 25 2012 Pure Storage, Inc Encrypting data for storage in a dispersed storage network
10042704, Jul 31 2015 Pure Storage, Inc Validating stored encoded data slice integrity in a dispersed storage network
10042705, Oct 08 2012 Pure Storage, Inc Robust transmission of data utilizing encoded data slices
10042706, Oct 30 2015 Pure Storage, Inc Optimizing secondary storage in a dispersed storage network
10042707, Oct 30 2015 Pure Storage, Inc Recovering affinity with imposter slices
10042708, Oct 30 2015 Pure Storage, Inc System for rebuilding data in a dispersed storage network
10042709, Jun 06 2011 Pure Storage, Inc Rebuild prioritization during a plurality of concurrent data object write operations
10044807, Sep 30 2005 Pure Storage, Inc Optimistic checked writes
10048897, Nov 30 2015 Pure Storage, Inc Making consistent reads more efficient in IDA+copy system
10049120, Sep 05 2014 Pure Storage, Inc Consistency based access of data in a dispersed storage network
10051057, Sep 30 2005 Pure Storage, Inc Prioritizing read locations based on an error history
10055170, Apr 30 2015 Pure Storage, Inc Scheduling storage unit maintenance tasks in a dispersed storage network
10055283, Nov 28 2011 Pure Storage, Inc Securely distributing random keys in a dispersed storage network
10055290, Jun 30 2015 Pure Storage, Inc Accelerating slice transfers utilizing multiple interfaces
10055291, Jun 30 2015 Pure Storage, Inc Method and system for processing data access requests during data transfers
10055441, Feb 05 2013 Pure Storage, Inc Updating shared group information in a dispersed storage network
10057178, Feb 07 2011 ADAPTIV NETWORKS INC System and method for reducing bandwidth usage of a network
10057351, Sep 13 2012 Pure Storage, Inc Modifying information dispersal algorithm configurations in a dispersed storage network
10061524, Sep 01 2016 International Business Machines Corporation Wear-leveling of memory devices
10061648, Jun 30 2015 Pure Storage, Inc Efficient method for redundant storage of a set of encoded data slices
10061649, Mar 29 2016 Pure Storage, Inc Storing data contiguously in a dispersed storage network
10061650, Jun 06 2011 Pure Storage, Inc Priority based rebuilding
10067721, Nov 30 2015 Pure Storage, Inc Selecting partial task resources in a dispersed storage network
10067822, Sep 26 2016 International Business Machines Corporation Combined slice objects in alternate memory locations
10067831, Dec 29 2009 Pure Storage, Inc Slice migration in a dispersed storage network
10067832, Oct 30 2015 Pure Storage, Inc Imposter slices
10067998, Apr 30 2015 Pure Storage, Inc Distributed sync list
10069915, Feb 27 2015 Pure Storage, Inc Storing data in a dispersed storage network
10073638, Jun 05 2012 Pure Storage, Inc Automatic namespace ordering determination
10073645, Nov 30 2015 Pure Storage, Inc Initiating rebuild actions from DS processing unit errors
10073652, Sep 24 2015 Pure Storage, Inc Performance optimized storage vaults in a dispersed storage network
10073658, Nov 30 2015 Pure Storage, Inc Optimized caching of slices by a DS processing unit
10073736, Jul 31 2015 Pure Storage, Inc Proxying slice access requests during a data evacuation
10073737, Oct 30 2009 Pure Storage, Inc Slice location identification
10075523, Apr 01 2013 Pure Storage, Inc Efficient storage of data in a dispersed storage network
10078468, Aug 18 2016 International Business Machines Corporation Slice migration in a dispersed storage network
10078472, Feb 27 2015 Pure Storage, Inc Rebuilding encoded data slices in a dispersed storage network
10078561, Apr 30 2015 Pure Storage, Inc Handling failing memory devices in a dispersed storage network
10079887, Mar 31 2015 Pure Storage, Inc Expanding storage capacity of a set of storage units in a distributed storage network
10082970, Nov 01 2010 International Business Machines Corporation Storing an effective dynamic width of encoded data slices
10083081, Jul 06 2011 Pure Storage, Inc Responding to a maintenance free storage container security threat
10084770, Nov 09 2010 Pure Storage, Inc Balancing memory utilization in a dispersed storage network
10084857, Jan 26 2016 Pure Storage, Inc Dispersing data to biological memory systems
10089036, Jul 31 2014 Pure Storage, Inc Migrating data in a distributed storage network
10089178, Feb 29 2016 Pure Storage, Inc Developing an accurate dispersed storage network memory performance model through training
10089180, Jul 31 2015 Pure Storage, Inc Unfavorable storage growth rate abatement
10089344, Mar 02 2012 Pure Storage, Inc Listing data objects using a hierarchical dispersed storage index
10091298, May 27 2016 International Business Machines Corporation Enhancing performance of data storage in a dispersed storage network
10095441, Sep 24 2015 Pure Storage, Inc End-to-end secure data retrieval in a dispersed storage network
10095578, Jun 22 2010 Pure Storage, Inc Data modification in a dispersed storage network
10095580, Jul 01 2013 Pure Storage, Inc Rebuilding data while reading data in a dispersed storage network
10095582, Oct 29 2014 Pure Storage, Inc Partial rebuilding techniques in a dispersed storage unit
10095872, Jun 05 2014 Pure Storage, Inc Accessing data based on a dispersed storage network rebuilding issue
10102063, Mar 02 2011 Pure Storage, Inc Transferring data utilizing a transfer token module
10102067, Jul 14 2016 International Business Machines Corporation Performing a desired manipulation of an encoded data slice based on a metadata restriction and a storage operational condition
10102068, Jun 25 2012 Pure Storage, Inc Non-temporarily storing temporarily stored data in a dispersed storage network
10102069, Jun 05 2014 Pure Storage, Inc Maintaining data storage in accordance with an access metric
10104045, Apr 20 2009 Pure Storage, Inc Verifying data security in a dispersed storage network
10104168, Dec 12 2011 Pure Storage, Inc Method for managing throughput in a distributed storage network
10108484, Jun 25 2012 Pure Storage, Inc Detecting storage errors in a dispersed storage network
10108492, Jul 30 2009 Pure Storage, Inc Rebuilding data stored in a dispersed storage network
10108493, May 30 2013 Pure Storage, Inc Adjusting dispersed storage network traffic due to rebuilding
10114588, Mar 29 2016 Green Market Square Limited Consolidating encoded data slices in read memory devices in a distributed storage network
10114696, Jul 14 2016 International Business Machines Corporation Tracking data access in a dispersed storage network
10114697, Jun 25 2012 Pure Storage, Inc Large object parallel writing
10114698, Jan 05 2017 International Business Machines Corporation Detecting and responding to data loss events in a dispersed storage network
10120569, Oct 03 2013 Pure Storage, Inc Dispersed storage system with identity unit selection and methods for use therewith
10120574, Jun 25 2012 Pure Storage, Inc Reversible data modifications within DS units
10120596, Aug 31 2015 Pure Storage, Inc Adaptive extra write issuance within a dispersed storage network (DSN)
10120739, Dec 02 2014 Pure Storage, Inc Prioritized data rebuilding in a dispersed storage network
10120756, Aug 17 2011 Pure Storage, Inc Audit object generation in a dispersed storage network
10120757, Feb 29 2016 Pure Storage, Inc Prioritizing dispersed storage network memory operations during a critical juncture
10122795, May 31 2016 International Business Machines Corporation Consistency level driven data storage in a dispersed storage network
10126961, Aug 31 2015 Pure Storage, Inc Securely recovering stored data in a dispersed storage network
10126974, Dec 31 2014 Pure Storage, Inc Redistributing encoded data slices in a dispersed storage network
10127110, Jul 31 2015 Pure Storage, Inc Reallocating storage in a dispersed storage network
10127111, Oct 08 2012 Pure Storage, Inc Client provided request prioritization hints
10127112, Jul 20 2016 International Business Machines Corporation Assigning prioritized rebuild resources optimally
10127402, Jun 06 2011 Pure Storage, Inc Systematic erasure code encoding of data packages
10129023, Aug 11 2016 International Business Machines Corporation Enhancing security for multiple storage configurations
10133609, Dec 12 2011 Pure Storage, Inc Dispersed storage network secure hierarchical file directory
10133631, Oct 30 2015 Pure Storage, Inc Multi option rebuilding in a dispersed storage network
10133632, Dec 29 2009 Pure Storage, Inc Determining completion of migration in a dispersed storage network
10133634, Mar 30 2017 International Business Machines Corporation Method for performing in-place disk format changes in a distributed storage network
10133635, Jul 01 2013 Pure Storage, Inc Low-width vault in distributed storage system
10140061, Mar 29 2016 Green Market Square Limited Cycling out dispersed storage processing units from access pools to perform expensive operations
10140177, Jan 31 2012 Pure Storage, Inc Transferring a partial task in a distributed computing system
10140178, Jun 05 2014 Pure Storage, Inc Verifying a status level of stored encoded data slices
10140182, Feb 26 2014 Pure Storage, Inc Modifying allocation of storage resources in a dispersed storage network
10142115, Mar 31 2008 Pure Storage, Inc Distributed storage network data revision control
10142176, Jul 18 2016 International Business Machines Corporation Utilizing reallocation via a decentralized or distributed, agreement protocol (DAP) for storage unit (SU) replacement
10146458, Mar 29 2016 Green Market Square Limited Proxying read requests when performance or availability failure is anticipated
10146620, Apr 26 2010 Pure Storage, Inc Storing data in accordance with encoded data slice revision levels in a dispersed storage network
10146621, Dec 12 2011 Pure Storage, Inc Chaining computes in a distributed computing system
10146622, Sep 08 2014 Pure Storage, Inc Combining deduplication with locality for efficient and fast storage
10146645, Nov 01 2010 Pure Storage, Inc Multiple memory format storage in a storage network
10148788, Dec 29 2009 Pure Storage, Inc Method for providing schedulers in a distributed storage network
10152601, Jun 05 2014 Pure Storage, Inc Reliably recovering stored data in a dispersed storage network
10154034, Apr 26 2010 Pure Storage, Inc Cooperative data access request authorization in a dispersed storage network
10157002, Aug 26 2010 Pure Storage, Inc Migrating an encoded data slice based on an end-of-life memory level of a memory device
10157011, Jun 25 2012 Pure Storage, Inc Temporary suspension of vault access
10157018, Sep 24 2015 Pure Storage, Inc Using vault to track reception of slices
10157021, Jun 29 2016 International Business Machines Corporation Processing incomplete data access transactions
10157051, Mar 02 2012 Pure Storage, Inc Upgrading devices in a dispersed storage network
10157094, Apr 30 2015 Pure Storage, Inc Validating system registry files in a dispersed storage network
10158648, Dec 29 2009 Pure Storage, Inc Policy-based access in a dispersed storage network
10162524, Aug 02 2010 Pure Storage, Inc Determining whether to compress a data segment in a dispersed storage network
10162705, May 22 2013 Pure Storage, Inc Storing data in accordance with a performance threshold
10164736, Oct 18 2006 KENCAST, INC Systems, methods, apparatus, and computer program products for providing forward error correction with low latency
10168904, Apr 30 2015 Pure Storage, Inc Quasi-error notifications in a dispersed storage network
10168950, Sep 24 2015 Pure Storage, Inc Coordination of connection initiation scheduling in a distributed storage network (DSN)
10169082, Apr 27 2016 International Business Machines Corporation Accessing data in accordance with an execution deadline
10169123, Jan 30 2015 Pure Storage, Inc Distributed data rebuilding
10169125, May 29 2015 Pure Storage, Inc Re-encoding data in a dispersed storage network
10169129, Mar 02 2011 Pure Storage, Inc Dispersed B-tree directory trees
10169146, Dec 27 2010 Pure Storage, Inc Reproducing data from obfuscated data retrieved from a dispersed storage network
10169147, Oct 30 2015 Pure Storage, Inc End-to-end secure data storage in a dispersed storage network
10169148, Mar 29 2016 International Business Machines Corporation Apportioning storage units amongst storage sites in a dispersed storage network
10169149, Sep 06 2016 International Business Machines Corporation Standard and non-standard dispersed storage network data access
10169150, Feb 26 2014 Pure Storage, Inc Concatenating data objects for storage in a dispersed storage network
10169151, Oct 30 2015 Pure Storage, Inc Utilizing request deadlines in a dispersed storage network
10169153, Oct 30 2015 Pure Storage, Inc Reallocation in a dispersed storage network (DSN)
10169229, Jun 05 2012 Pure Storage, Inc Protocols for expanding existing sites in a dispersed storage network
10169369, Jul 01 2013 Pure Storage, Inc Meeting storage requirements with limited storage resources
10169392, Mar 08 2017 International Business Machines Corporation Persistent data structures on a dispersed storage network memory
10171111, Sep 24 2015 Pure Storage, Inc Generating additional slices based on data access frequency
10171243, Apr 30 2014 Pure Storage, Inc Self-validating request message structure and operation
10176044, Oct 30 2015 Pure Storage, Inc Fallback delegates for modification of an index structure
10176045, Dec 12 2011 Pure Storage, Inc Internet based shared memory in a distributed computing system
10176191, Sep 05 2014 Pure Storage, Inc Recovering from conflicts that emerge from eventually consistent operations
10178083, Jun 05 2012 Pure Storage, Inc Updating access control information within a dispersed storage unit
10180787, Feb 09 2017 International Business Machines Corporation Dispersed storage write process with lock/persist
10180880, Jul 31 2013 Pure Storage, Inc Adaptive rebuilding rates based on sampling and inference
10180884, Sep 30 2005 Pure Storage, Inc Dispersed storage network with customized security and methods for use therewith
10182115, Nov 01 2013 Pure Storage, Inc Changing rebuild priority for a class of data
10193689, May 19 2010 Pure Storage, Inc Storing access information in a dispersed storage network
10198199, Dec 30 2015 Pure Storage, Inc Applying multiple hash functions to generate multiple masked keys in a secure slice implementation
10200156, Aug 02 2012 Pure Storage, Inc Storing a stream of data in a dispersed storage network
10203877, Dec 29 2009 Pure Storage, Inc Security checks for proxied requests
10203999, May 29 2015 Pure Storage, Inc Spreading load for highly popular content with asynchronous counted writes
10204009, Jan 04 2013 Pure Storage, Inc Prioritized rebuilds using dispersed indices
10205783, Jun 30 2014 Pure Storage, Inc Identifying a task execution resource of a dispersed storage network
10209921, Sep 24 2015 Pure Storage, Inc Expanding slice count in response to low-level failures
10216434, Dec 30 2015 Pure Storage, Inc Detailed memory device statistics with drive write location determination
10216436, Mar 29 2016 Green Market Square Limited Monitoring and sharing registry states
10216443, Nov 30 2015 Pure Storage, Inc Proactively deselect storage units for access during major geographic events
10216444, Nov 30 2015 Pure Storage, Inc Requester specified transformations of encoded data in dispersed storage network memory
10216594, Apr 30 2015 Pure Storage, Inc Automated stalled process detection and recovery
10216647, Feb 27 2010 International Business Machines Corporation Compacting dispersed storage space
10223033, Oct 29 2014 Pure Storage, Inc Coordinating arrival times of data slices in a dispersed storage network
10223036, Aug 10 2016 International Business Machines Corporation Expanding a dispersed storage network (DSN)
10223201, Jun 30 2015 Pure Storage, Inc Method of storing encoded data slices using a distributed agreement protocol
10223213, May 03 2013 Pure Storage, Inc Salted zero expansion all or nothing transformation
10225205, Jun 30 2014 Pure Storage, Inc Accessing a dispersed storage network
10225271, Sep 09 2016 International Business Machines Corporation Distributed storage network with enhanced security monitoring
10229001, Mar 29 2016 International Business Machines Corporation Allocating data based on memory device performance in a dispersed storage network
10229002, Jan 04 2013 Pure Storage, Inc Process to migrate named objects to a dispersed or distributed storage network (DSN)
10229004, Jul 31 2015 Pure Storage, Inc Data transfer priority levels
10230692, Jun 30 2009 Pure Storage, Inc Distributed storage processing module
10235085, Jun 27 2016 International Business Machines Corporation Relocating storage unit data in response to detecting hotspots in a dispersed storage network
10235237, Sep 06 2011 Pure Storage, Inc Decoding data streams in a distributed storage network
10235241, Mar 15 2017 International Business Machines Corporation Method for partial updating data content in a distributed storage network
10237281, Dec 29 2009 Pure Storage, Inc Access policy updates in a dispersed storage network
10241677, Feb 24 2017 International Business Machines Corporation Ensuring consistency between content and metadata with intents
10241692, Aug 31 2015 Pure Storage, Inc Extra write scaling for performance and reliability
10241694, Dec 30 2015 Pure Storage, Inc Reducing data stored when using multiple information dispersal algorithms
10241695, Dec 30 2015 Pure Storage, Inc Optimizing rebuilds when using multiple information dispersal algorithms
10241697, Mar 29 2016 Green Market Square Limited Temporary enrollment in anonymously obtained credentials
10241861, Mar 23 2017 International Business Machines Corporation Method for tenant isolation in a distributed computing system
10241863, Aug 31 2012 Pure Storage, Inc Slice rebuilding in a dispersed storage network
10241864, Oct 30 2015 Pure Storage, Inc Expanding information dispersal algorithm width without rebuilding through imposter slices
10241865, Feb 15 2017 International Business Machines Corporation Handling storage unit failure in a dispersed storage network
10241866, Jan 04 2013 Pure Storage, Inc Allocating rebuilding queue entries in a dispersed storage network
10248361, Nov 30 2015 Pure Storage, Inc Rebuilding slices in a dispersed storage network
10248495, Feb 17 2017 International Business Machines Corporation Eventual consistency intent cleanup in a dispersed storage network
10248504, Jun 30 2015 Pure Storage, Inc List request processing during a dispersed storage network configuration change
10248505, Feb 29 2016 Pure Storage, Inc Issue escalation by management unit
10248506, Jul 31 2015 Pure Storage, Inc Storing data and associated metadata in a dispersed storage network
10250686, Sep 30 2005 Pure Storage, Inc Finding alternate storage locations to support failing disk migration
10254992, Apr 30 2015 Pure Storage, Inc Rebalancing data storage in a dispersed storage network
10255002, Nov 30 2015 Pure Storage, Inc Utilizing fast memory devices to optimize different functions
10255003, Nov 30 2015 Pure Storage, Inc Making consistent reads more efficient in IDA+copy system
10255133, Mar 29 2016 International Business Machines Corporation Isolating the introduction of software defects in a dispersed storage network
10255135, Aug 25 2010 Pure Storage, Inc Method and apparatus for non-interactive information dispersal
10257276, Sep 30 2005 Pure Storage, Inc Predictive rebalancing according to future usage expectations
10268374, Feb 27 2010 Pure Storage, Inc Redundant array of independent discs and dispersed storage network system re-director
10268376, Apr 30 2015 Pure Storage, Inc Automated deployment and assignment of access devices in a dispersed storage network
10268545, Sep 08 2014 Pure Storage, Inc Using reinforcement learning to select a DS processing unit
10268554, Feb 05 2013 Pure Storage, Inc Using dispersed computation to change dispersal characteristics
10268712, Aug 27 2009 Pure Storage, Inc Method and apparatus for identifying data inconsistency in a dispersed storage network
10270855, Oct 09 2007 Pure Storage, Inc Integrated client for use with a dispersed data storage network
10270858, Sep 30 2005 Pure Storage, Inc Inducing memory device idle time through rolling read prioritizations
10275161, Oct 30 2009 Pure Storage, Inc Distributed storage network for storing a data object based on storage requirements
10275185, Feb 27 2015 Pure Storage, Inc Fail-in-place supported via decentralized or Distributed Agreement Protocol (DAP)
10275313, Jan 31 2014 Pure Storage, Inc Writing encoded data slices in a dispersed storage network
10277490, Jul 19 2016 International Business Machines Corporation Monitoring inter-site bandwidth for rebuilding
10282118, Dec 29 2009 Pure Storage, Inc Using reason codes to determine how to handle memory device error conditions
10282135, Oct 29 2014 Pure Storage, Inc Strong consistency write threshold
10282440, Mar 31 2015 Pure Storage, Inc Prioritizing rebuilding of encoded data slices
10282564, Jan 28 2010 Pure Storage, Inc Distributed storage with auxiliary data interspersal and method for use therewith
10289318, Nov 01 2010 Pure Storage, Inc Adjusting optimistic writes in a dispersed storage network
10289319, Aug 31 2015 Pure Storage, Inc Varying rebuild task priorities
10289342, Jan 30 2015 Pure Storage, Inc Data access optimization protocol in a dispersed storage network
10289505, Dec 29 2009 Pure Storage, Inc Dispersed multi-media content for a centralized digital video storage system
10289688, Jun 22 2010 Pure Storage, Inc Metadata access in a dispersed storage network
10296263, Apr 30 2014 Pure Storage, Inc Dispersed bloom filter for determining presence of an object
10296404, May 29 2015 Pure Storage, Inc Determining slices used in a reconstruction
10298683, Jan 26 2016 Pure Storage, Inc Consolidating data access in a dispersed storage network
10298684, Apr 01 2011 Pure Storage, Inc Adaptive replication of dispersed data to improve data access performance
10298957, Oct 06 2010 Pure Storage, Inc Content-based encoding in a multiple routing path communications system
10303521, Dec 12 2011 Pure Storage, Inc Determining task distribution in a distributed computing system
10303546, Jun 30 2015 Pure Storage, Inc Accessing data when transferring the data between storage facilities
10303548, Jul 01 2013 Pure Storage, Inc Time-sensitive data storage operations in a dispersed storage network
10303549, Aug 27 2009 Pure Storage, Inc Dispersed storage network with access control and methods for use therewith
10304096, Nov 01 2013 Pure Storage, Inc Renting a pipe to a storage system
10305982, Jan 26 2016 Pure Storage, Inc Access slices during multiple migrations
10305988, Nov 28 2011 Pure Storage, Inc Adaptive resource utilization with request cancellation
10305989, Sep 30 2005 Pure Storage, Inc Finding alternate storage locations to support failing disk migration
10305990, Sep 30 2005 Pure Storage, Inc Inducing memory device idle time through rolling read prioritizations
10310763, Feb 05 2013 Pure Storage, Inc Forming a distributed storage network memory without namespace aware distributed storage units
10318189, Dec 30 2015 Pure Storage, Inc Determining respective mappings for logically defined dispersed storage units
10318380, Jun 30 2015 Pure Storage, Inc Multi-stage slice recovery in a dispersed storage network
10318382, Jan 31 2014 Pure Storage, Inc Determining missing encoded data slices
10318445, Nov 28 2011 Pure Storage, Inc Priority level adaptation in a dispersed storage network
10318549, Sep 13 2012 Pure Storage, Inc Batching modifications to nodes in a dispersed index
10324623, Jan 04 2013 Pure Storage, Inc Mapping storage of data in a dispersed storage network
10324657, May 29 2015 Pure Storage, Inc Accounting for data whose rebuilding is deferred
10324791, Nov 01 2010 Pure Storage, Inc Selectable parallel processing of dispersed storage error encoding
10324855, Jun 23 2017 International Business Machines Corporation Associating a processing thread and memory section to a memory device
10325110, Apr 02 2014 Pure Storage, Inc Distributing registry information in a dispersed storage network
10326740, Feb 29 2016 Pure Storage, Inc Efficient secret-key encrypted secure slice
10331384, Mar 31 2015 Pure Storage, Inc Storing data utilizing a maximum accessibility approach in a dispersed storage network
10331518, Aug 31 2012 Pure Storage, Inc Encoding data in a dispersed storage network
10331519, Oct 08 2012 Pure Storage, Inc Application of secret sharing schemes at multiple levels of a dispersed storage network
10331698, Sep 13 2012 Pure Storage, Inc Rebuilding data in a dispersed storage network
10334045, Jun 06 2016 Pure Storage, Inc Indicating multiple encoding schemes in a dispersed storage network
10334046, Dec 05 2012 Pure Storage, Inc Utilizing data object storage tracking in a dispersed storage network
10339003, Jun 01 2017 International Business Machines Corporation Processing data access transactions in a dispersed storage network using source revision indicators
10339006, Jul 31 2015 Pure Storage, Inc Proxying slice access requests during a data evacuation
10346218, Dec 12 2011 Pure Storage, Inc Partial task allocation in a dispersed storage network
10346246, Nov 30 2015 Pure Storage, Inc Recovering data copies in a dispersed storage network
10346250, Jan 06 2014 Pure Storage, Inc Configuring storage resources of a dispersed storage network
10348640, Dec 12 2011 Pure Storage, Inc Partial task execution in a dispersed storage network
10348829, Aug 15 2016 International Business Machines Corporation Auto indexing with customizable metadata
10353772, May 31 2016 International Business Machines Corporation Selecting data for storage in a dispersed storage network
10353774, Oct 30 2015 Pure Storage, Inc Utilizing storage unit latency data in a dispersed storage network
10356177, Sep 30 2005 Pure Storage, Inc Prioritizing ranges to rebuild based on namespace health
10359935, Jul 31 2013 Pure Storage, Inc Dispersed storage encoded data slice rebuild
10360097, May 30 2013 Pure Storage, Inc Securing data in a dispersed storage network
10360103, Jul 18 2016 International Business Machines Corporation Focused storage pool expansion to prevent a performance degradation
10360106, Dec 12 2011 Pure Storage, Inc Throttled real-time writes
10360107, Feb 26 2014 Pure Storage, Inc Modifying allocation of storage resources in a dispersed storage network
10360180, Sep 30 2005 Pure Storage, Inc Digest listing decomposition
10360391, Apr 03 2017 International Business Machines Corporation Verifiable keyed all-or-nothing transform
10361813, Jun 16 2017 International Business Machine Corporation Using slice routers for improved storage placement determination
10362111, Jan 30 2015 Pure Storage, Inc Selecting a data storage resource of a dispersed storage network
10365968, Oct 30 2015 Pure Storage, Inc Apportioning namespace ranges in accordance with dispersed storage unit capacity
10365969, Nov 01 2011 Pure Storage, Inc Multiple wireless communication systems stream slices based on geography
10372350, Nov 29 2010 Pure Storage, Inc Shared ownership of namespace ranges
10372357, Aug 31 2015 Pure Storage, Inc Securely recovering stored data in a dispersed storage network
10372380, Mar 01 2017 BEIJING ZITIAO NETWORK TECHNOLOGY CO , LTD Asserting integrity with a verifiable codec
10372381, Jun 05 2017 International Business Machines Corporation Implicit leader election in a distributed storage network
10372506, Dec 12 2011 Pure Storage, Inc Compute architecture in a memory device of distributed computing system
10372540, Sep 06 2016 International Business Machines Corporation Standard and non-standard dispersed storage network data access
10372562, Apr 30 2015 Pure Storage, Inc Handling failing memory devices in a dispersed storage network
10372686, Dec 29 2009 Pure Storage, Inc Policy-based storage in a dispersed storage network
10379744, Jul 21 2016 International Business Machines Corporation System for collecting end-user feedback and usability metrics
10379773, Aug 29 2016 International Business Machines Corporation Storage unit for use in a dispersed storage network
10379778, Aug 18 2016 International Business Machines Corporation Using a master encryption key to sanitize a dispersed storage network memory
10379942, Sep 27 2017 International Business Machines Corporation Efficient transfer of objects between containers on the same vault
10379961, Apr 11 2017 International Business Machines Corporation Ensuring metadata and index consistency using write intents
10382553, Feb 20 2017 International Business Machines Corporation Zone storage—resilient and efficient storage transactions
10387063, Nov 30 2015 Pure Storage, Inc Securing encoding data slices using an integrity check value list
10387067, Feb 27 2015 Pure Storage, Inc Optimizing data storage in a dispersed storage network
10387070, Mar 31 2015 Pure Storage, Inc Migrating data in response to adding incremental storage resources in a dispersed storage network
10387071, Nov 28 2011 Pure Storage, Inc On-the-fly cancellation of unnecessary read requests
10387079, Sep 09 2016 International Business Machines Corporation Placement of dispersed storage data based on requestor properties
10387080, Nov 30 2015 Pure Storage, Inc Rebuilding slices in a dispersed storage network
10387213, Dec 12 2011 Pure Storage, Inc Dispersed storage network secure hierarchical file directory
10387247, Mar 12 2010 Pure Storage, Inc Dispersed storage network file system directory
10387248, Mar 29 2016 International Business Machines Corporation Allocating data for storage by utilizing a location-based hierarchy in a dispersed storage network
10387249, Mar 29 2016 International Business Machines Corporation Migrating data slices within a dispersed storage network
10387250, Jan 31 2014 Pure Storage, Inc Recovering data from microslices in a dispersed storage network
10387252, Dec 31 2014 Pure Storage, Inc Synchronously storing data in a plurality of dispersed storage networks
10387256, Sep 30 2005 Pure Storage, Inc Method and apparatus for distributed storage integrity processing
10387286, Jun 30 2016 International Business Machines Corporation Managing configuration updates in a dispersed storage network
10387382, Dec 30 2015 Pure Storage, Inc Estimating a number of entries in a dispersed hierarchical index
10389683, Aug 26 2016 International Business Machines Corporation Securing storage units in a dispersed storage network
10389814, Sep 30 2005 Pure Storage, Inc Prioritizing memory devices to replace based on namespace health
10389845, Oct 29 2009 Pure Storage, Inc Determining how to service requests based on several indicators
10394468, Feb 23 2017 International Business Machines Corporation Handling data slice revisions in a dispersed storage network
10394476, Apr 30 2014 Pure Storage, Inc Multi-level stage locality selection on a large system
10394613, Mar 02 2012 Pure Storage, Inc Transferring task execution in a distributed storage and task network
10394630, Oct 26 2016 International Business Machines Corporation Estimating relative data importance in a dispersed storage network
10394650, Jun 03 2016 International Business Machines Corporation Multiple writes using inter-site storage unit relationship
10395043, Jul 29 2016 International Business Machines Corporation Securely storing data in an elastically scalable dispersed storage network
10395054, Jun 06 2011 Pure Storage, Inc Updating distributed storage network software
10402122, May 29 2015 Pure Storage, Inc Transferring encoded data slices in a dispersed storage network
10402268, Feb 01 2011 Pure Storage, Inc Utilizing a dispersed storage network access token module to acquire digital content from a digital content provider
10402269, May 22 2013 Pure Storage, Inc Storing data in accordance with a performance threshold
10402270, Jan 04 2013 Pure Storage, Inc Deterministically determining affinity for a source name range
10402271, Dec 02 2014 Pure Storage, Inc Overcoming bottlenecks in zero information gain (ZIG) rebuild operations
10402393, Mar 02 2012 Pure Storage, Inc Slice migration in a dispersed storage network
10402395, Sep 05 2014 Pure Storage, Inc Facilitating data consistency in a dispersed storage network
10402423, Sep 13 2012 Pure Storage, Inc Sliding windows for batching index updates
10404410, Feb 27 2015 Pure Storage, Inc Storage unit (SU) report cards
10409492, Feb 09 2017 International Business Machines Corporation Multi-phase dispersed storage write process
10409514, Nov 30 2015 Pure Storage, Inc IP multicast message transmission for event notifications
10409522, May 29 2015 Pure Storage, Inc Reclaiming storage capacity in a dispersed storage network
10409661, Sep 29 2017 International Business Machines Corporation Slice metadata for optimized dispersed storage network memory storage strategies
10409678, Aug 31 2012 Pure Storage, Inc Self-optimizing read-ahead
10409679, Aug 31 2012 Pure Storage, Inc Migrating data slices in a dispersed storage network
10409771, Jun 22 2010 Pure Storage, Inc Hardware authentication in a dispersed storage network
10409772, Feb 27 2015 Pure Storage, Inc Accessing serially stored data in a dispersed storage network
10412165, May 19 2010 Pure Storage, Inc Entity registration in multiple dispersed storage networks
10416889, Oct 03 2013 Pure Storage, Inc Session execution decision
10416898, Jun 29 2016 International Business Machines Corporation Accessing data in a dispersed storage network during write operations
10416906, Mar 29 2016 Green Market Square Limited Rebalancing efficiency with optimal logical insertion locations
10416930, Jul 21 2016 International Business Machines Corporation Global access permit listing
10419538, Apr 26 2016 International Business Machines Corporation Selecting memory for data access in a dispersed storage network
10423359, Dec 31 2014 Pure Storage, Inc Linking common attributes among a set of synchronized vaults
10423362, Nov 30 2015 Pure Storage, Inc Utilizing multiple dispersal algorithms to encode data for storage in a dispersed storage network
10423476, May 29 2015 Pure Storage, Inc Aggressive searching for missing data in a DSN memory that has had migrations
10423490, Jan 03 2015 Pure Storage, Inc Read-source requests to support bundled writes in a distributed storage system
10423491, Jan 04 2013 Pure Storage, Inc Preventing multiple round trips when writing to target widths
10423497, Nov 28 2017 International Business Machines Corporation Mechanism for representing system configuration changes as a series of objects writable to an object storage container
10423502, Feb 27 2015 Pure Storage, Inc Stand-by distributed storage units
10430107, May 29 2015 Pure Storage, Inc Identifying stored data slices during a slice migration activity in a dispersed storage network
10430122, Feb 05 2013 Pure Storage, Inc Using partial rebuilding to change information dispersal algorithm (IDA)
10430276, Jun 25 2012 Pure Storage, Inc Optimal orderings of processing unit priorities in a dispersed storage network
10430277, Oct 30 2015 Pure Storage, Inc Multi option rebuilding in a dispersed storage network
10432726, Sep 30 2005 Pure Storage, Inc Last-resort operations to save at-risk-data
10437515, Mar 31 2015 Pure Storage, Inc Selecting storage units in a dispersed storage network
10437671, Jun 30 2015 Pure Storage, Inc Synchronizing replicated stored data
10437673, Dec 12 2011 Pure Storage, Inc Internet based shared memory in a distributed computing system
10437676, Feb 27 2015 Pure Storage, Inc Urgent reads and using data source health to determine error recovery procedures
10437677, Feb 27 2015 Pure Storage, Inc Optimized distributed rebuilding within a dispersed storage network
10437678, Nov 01 2011 Pure Storage, Inc Updating an encoded data slice
10440105, Jun 30 2014 Pure Storage, Inc Using a decentralized agreement protocol to rank storage locations for target width
10440107, Jan 26 2016 Pure Storage, Inc Protecting encoded data slice integrity at various levels
10440115, Feb 27 2015 Pure Storage, Inc Write intent messaging in a dispersed storage network
10440116, Jan 30 2015 Pure Storage, Inc Minimizing data movement through rotation of spare memory devices
10445006, Apr 01 2011 Pure Storage, Inc Adjusting a dispersal parameter of dispersedly stored data
10445164, Nov 01 2011 Pure Storage, Inc Copying data in a dispersed storage network without replication
10445179, Aug 31 2012 Pure Storage, Inc Securely storing data in a dispersed storage network
10447471, Jun 05 2012 Pure Storage, Inc Systematic secret sharing
10447474, Apr 20 2009 Pure Storage, Inc Dispersed data storage system data decoding and decryption
10447612, Jun 30 2014 Pure Storage, Inc Migrating encoded data slices in a dispersed storage network
10447662, Dec 12 2011 Pure Storage, Inc Encrypting segmented data in a distributed computing system
10447767, Apr 26 2010 Pure Storage, Inc Resolving a performance issue within a dispersed storage network
10448062, Oct 26 2016 International Business Machines Corporation Pre-fetching media content to reduce peak loads
10452265, Oct 03 2013 Pure Storage, Inc Dispersed storage system with width dispersal control and methods for use therewith
10452317, Dec 31 2014 Pure Storage, Inc DAP redistribution operation within a dispersed storage network
10452836, May 09 2011 Pure Storage, Inc Retrieving a hypertext markup language file from a dispersed storage network memory
10454678, Aug 17 2011 Pure Storage, Inc Accesor-based audit trails
10459790, Jul 26 2016 International Business Machines Corporation Elastic storage in a dispersed storage network
10459792, Oct 29 2014 Pure Storage, Inc Using an eventually consistent dispersed memory to implement storage tiers
10459796, Jul 20 2016 International Business Machines Corporation Prioritizing rebuilding based on a longevity estimate of the rebuilt slice
10459797, Jun 30 2014 Pure Storage, Inc Making trade-offs between rebuild scanning and failing memory device flexibility
10466914, Aug 31 2015 Pure Storage, Inc Verifying authorized access in a dispersed storage network
10467095, Oct 30 2015 Pure Storage, Inc Engaging a delegate for modification of an index structure
10467096, Jul 31 2015 Pure Storage, Inc Securely storing data in a dispersed storage network
10467097, Jun 02 2017 International Business Machines Corporation Indicating data health in a DSN memory
10469406, Dec 12 2011 Pure Storage, Inc Partial task execution in a dispersed storage network
10469578, Nov 28 2011 Pure Storage, Inc Prioritization of messages of a dispersed storage network
10474395, Jun 05 2012 Pure Storage, Inc Abstracting namespace mapping in a dispersed storage network through multiple hierarchies
10476849, Feb 29 2016 Pure Storage, Inc Monitoring and alerting for improper memory device replacement
10476961, Nov 01 2013 Pure Storage, Inc Changing rebuild priority for a class of data
10481832, Dec 02 2014 Pure Storage, Inc Applying a probability function to avoid storage operations for already-deleted data
10481833, Oct 29 2014 Pure Storage, Inc Transferring data encoding functions in a distributed storage network
10481977, Oct 27 2016 International Business Machines Corporation Dispersed storage of error encoded data objects having multiple resolutions
10481978, Mar 29 2016 International Business Machines Corporation Optimal slice encoding strategies within a dispersed storage unit
10484474, Aug 29 2013 Pure Storage, Inc Rotating offline DS units
10489070, Mar 29 2016 Green Market Square Limited Proxying read requests when performance or availability failure is anticipated
10489071, Aug 29 2013 Pure Storage, Inc Vault provisioning within dispersed or distributed storage network (DSN)
10489247, Dec 31 2014 Pure Storage, Inc Generating time-ordered globally unique revision numbers
10491386, Jun 01 2017 International Business Machines Corporation Slice-level keyed encryption with support for efficient rekeying
10496308, Nov 30 2015 Pure Storage, Inc Using pseudo DSN memory units to handle data in motion within a DSN memory
10496480, Oct 30 2009 Pure Storage, Inc Slice location identification
10496500, Nov 01 2011 Pure Storage, Inc Preemptively reading extra encoded data slices
10498822, Jan 30 2015 Pure Storage, Inc Adaptive scanning rates
10498823, Jan 30 2015 Pure Storage, Inc Optimally apportioning rebuilding resources
10503591, Feb 27 2015 Pure Storage, Inc Selecting retrieval locations in a dispersed storage network
10503592, Dec 02 2014 Pure Storage, Inc Overcoming bottlenecks in partial and traditional rebuild operations
10503594, Apr 26 2010 Pure Storage, Inc Storing data in accordance with encoded data slice revision levels in a dispersed storage network
10503595, Sep 08 2014 Pure Storage, Inc Combining deduplication with locality for efficient and fast storage
10503596, Jul 31 2015 Pure Storage, Inc Accessing an encoded data slice in a dispersed storage network
10503598, Jul 01 2013 Pure Storage, Inc Rebuilding data while reading data in a dispersed storage network
10505915, Aug 02 2010 Pure Storage, Inc Determining whether to compress a data segment in a dispersed storage network
10505947, Dec 29 2009 Pure Storage, Inc Policy-based access in a dispersed storage network
10506045, Jan 30 2015 Pure Storage, Inc Memory access using deterministic function and secure seed
10509577, Jun 05 2014 Pure Storage, Inc Reliable storage in a dispersed storage network
10509699, Aug 07 2017 International Business Machines Corporation Zone aware request scheduling and data placement
10509709, Oct 30 2009 Pure Storage, Inc Indirect storage of data in a dispersed storage system
10511665, Jan 30 2015 Pure Storage, Inc Efficient resource reclamation after deletion of slice from common file
10514857, Aug 29 2013 Pure Storage, Inc Dynamic adjusting of parameters based on resource scoring
10514971, Mar 02 2011 Pure Storage, Inc Dispersed b-tree directory trees
10521298, Dec 02 2014 Pure Storage, Inc Temporarily storing dropped and rebuilt slices in a DSN memory
10521300, Oct 08 2012 Pure Storage, Inc Client provided request prioritization hints
10523241, May 29 2015 Pure Storage, Inc Object fan out write operation
10523781, Dec 29 2009 Pure Storage, Inc Method for providing schedulers in a distributed storage network
10528282, Mar 31 2015 Pure Storage, Inc Modifying and utilizing a file structure in a dispersed storage network
10528425, Feb 27 2015 Pure Storage, Inc Transitioning to an optimized data storage approach in a dispersed storage network
10530861, Feb 27 2015 Pure Storage, Inc Utilizing multiple storage pools in a dispersed storage network
10530862, Jan 30 2015 Pure Storage, Inc Determining slices to rebuild from low-level failures
10534548, Jun 20 2017 International Business Machines Corporation Validating restricted operations on a client using trusted environments
10534661, Mar 31 2015 Pure Storage, Inc Selecting a storage error abatement alternative in a dispersed storage network
10534666, Jul 14 2016 International Business Machines Corporation Determining storage requirements based on licensing right in a dispersed storage network
10534668, Feb 27 2015 Pure Storage, Inc Accessing data in a dispersed storage network
10536525, May 31 2016 International Business Machines Corporation Consistency level driven data storage in a dispersed storage network
10540111, Jun 28 2017 International Business Machines Corporation Managing data container instances in a dispersed storage network
10540120, Nov 14 2017 International Business Machines Corporation Contention avoidance on associative commutative updates
10540230, Mar 29 2016 International Business Machines Corporation Allocating data based on memory device performance in a dispersed storage network
10540247, Nov 10 2016 International Business Machines Corporation Handling degraded conditions using a redirect module
10545699, Apr 11 2017 International Business Machines Corporation Dynamic retention policies and optional deletes
10547615, Sep 12 2016 International Business Machines Corporation Security response protocol based on security alert encoded data slices of a distributed storage network
10552341, Feb 17 2017 International Business Machines Corporation Zone storage—quickly returning to a state of consistency following an unexpected event
10554752, Jul 20 2016 International Business Machines Corporation Efficient transfer of encoded data slice sets to new or alternate storage units
10558389, Sep 20 2016 International Business Machines Corporation Per-storage class quality of service (QoS) management within a distributed storage network (DSN) where the DSN stores data using dispersed storage error decoding/encoding
10558396, Sep 14 2016 International Business Machines Corporation Pre-caching data according to a current or predicted requester location
10558526, Mar 29 2016 International Business Machines Corporation Apportioning storage units amongst storage sites in a dispersed storage network
10558527, Dec 02 2014 Pure Storage, Inc Rebuilding strategy in memory managed multi-site duplication
10558592, Nov 28 2011 Pure Storage, Inc Priority level adaptation in a dispersed storage network
10558621, Dec 05 2012 Pure Storage, Inc Lock stealing writes for improved reliability
10558638, Mar 08 2017 International Business Machines Corporation Persistent data structures on a dispersed storage network memory
10558819, Jun 06 2011 Pure Storage, Inc Updating distributed storage network software
10564852, Jun 25 2016 International Business Machines Corporation Method and system for reducing memory device input/output operations
10565392, Nov 28 2017 International Business Machines Corporation Secure and verifiable update operations
10567509, May 15 2017 International Business Machines Corporation Rebuilding derived content
10572433, Apr 27 2016 International Business Machines Corporation Accessing data in accordance with an execution deadline
10574395, Aug 02 2012 Pure Storage, Inc Storing a stream of data in a dispersed storage network
10574742, Aug 06 2004 ADAPTIV NETWORKS INC Network quality as a service
10579309, Feb 16 2017 International Business Machines Corporation Method for increasing throughput in a distributed storage network
10579450, Jan 30 2015 Pure Storage, Inc Distributed data rebuilding
10579451, Feb 27 2015 Pure Storage, Inc Pro-actively preparing a dispersed storage network memory for higher-loads
10579475, Jul 14 2016 International Business Machines Corporation Performing a desired manipulation of an encoded data slice based on a metadata restriction and a storage operational condition
10581807, Aug 29 2016 International Business Machines Corporation Using dispersal techniques to securely store cryptographic resources and respond to attacks
10585607, Nov 10 2016 International Business Machines Corporation Determining an optimum selection of functions for units in a DSN memory
10585715, Dec 12 2011 Pure Storage, Inc Partial task allocation in a dispersed storage network
10585748, Sep 29 2017 Edison Vault, LLC Scalable cloud—assigning scores to requesters and treating requests differently based on those scores
10585751, Oct 27 2016 International Business Machines Corporation Partial rebuild operation within a dispersed storage network including local memory and cloud-based alternative memory
10587691, Dec 05 2012 Pure Storage, Inc Impatient writes
10592109, Feb 26 2014 Pure Storage, Inc Selecting storage resources in a dispersed storage network
10592132, Jan 30 2015 Pure Storage, Inc Read-foreign-slices request for improved read efficiency with bundled writes
10594790, Jun 28 2017 International Business Machines Corporation Data compression in a dispersed storage network
10594793, Jan 30 2015 Pure Storage, Inc Read-prepare requests to multiple memories
10599502, Aug 07 2017 International Business Machines Corporation Fault detection and recovery in a distributed storage network
10599519, Oct 30 2015 Pure Storage, Inc Coordinating node modification of an index structure via delegates
10601918, Aug 29 2013 Pure Storage, Inc Rotating inactive storage units in a distributed storage network
10606507, Sep 24 2015 Pure Storage, Inc Coordination of connection initiation scheduling in a distributed storage network (DSN)
10606700, Oct 08 2012 Pure Storage, Inc Enhanced dispersed storage error encoding using multiple encoding layers
10613776, Dec 30 2015 Pure Storage, Inc Appyling multiple hash functions to generate multiple masked keys in a secure slice implementation
10613798, May 29 2015 Pure Storage, Inc Slice fanout write request
10613936, Jul 31 2014 Pure Storage, Inc Fractional slices in a distributed storage system
10616330, Jan 26 2016 Pure Storage, Inc Utilizing tree storage structures in a dispersed storage network
10620878, Jan 30 2015 Pure Storage, Inc Write threshold plus value in dispersed storage network write operations
10621021, Feb 05 2013 Pure Storage, Inc Using dispersed data structures to point to slice or date source replicas
10621042, Dec 31 2014 Pure Storage, Inc Vault transformation within a dispersed storage network
10621044, Apr 25 2012 Pure Storage, Inc Mapping slice groupings in a dispersed storage network
10623495, Dec 31 2014 Pure Storage, Inc Keeping synchronized writes from getting out of synch
10628245, Apr 02 2014 Pure Storage, Inc Monitoring of storage units in a dispersed storage network
10628399, Apr 29 2016 International Business Machines Corporation Storing data in a dispersed storage network with consistency
10635312, Feb 26 2014 Pure Storage, Inc Recovering data in a dispersed storage network
10635536, Mar 29 2016 International Business Machines Corporation Dynamic distributed agreement protocols in a dispersed storage network
10642489, Feb 26 2013 Pure Storage, Inc Determining when to initiate an intra-distributed storage unit rebuild vs. an inter-distributed storage unit rebuild
10642532, Feb 28 2017 International Business Machines Corporation Storing data sequentially in zones in a dispersed storage network
10642687, Dec 31 2014 Pure Storage, Inc Pessimistic reads and other smart-read enhancements with synchronized vaults
10642992, Jan 04 2013 Pure Storage, Inc Password augmented all-or-nothin transform
10644874, Jul 31 2014 Pure Storage, Inc Limiting brute force attacks against dispersed credentials in a distributed storage system
10649828, Dec 02 2014 Pure Storage, Inc Prioritized data rebuilding in a dispersed storage network
10650160, Aug 11 2016 International Business Machines Corporation Enhancing security for multiple storage configurations
10651975, Aug 02 2012 Pure Storage, Inc Forwarding data amongst cooperative DSTN processing units of a massive data ingestion system
10652350, Jun 06 2016 International Business Machines Corporation Caching for unique combination reads in a dispersed storage network
10656866, Dec 31 2014 Pure Storage, Inc Unidirectional vault synchronization to support tiering
10656871, Sep 24 2015 Pure Storage, Inc Expanding slice count in response to low-level failures
10656997, Aug 17 2011 Pure Storage, Inc Audit object generation in a dispersed storage network
10656998, Oct 30 2015 Pure Storage, Inc End-to-end secure data storage in a dispersed storage network
10657000, Feb 27 2015 Pure Storage, Inc Optimizing data storage in a dispersed storage network
10664360, Feb 05 2013 Pure Storage, Inc Identifying additional resources to accelerate rebuildling
10666596, Dec 12 2011 Pure Storage, Inc Messaging via a shared memory of a distributed computing system
10671328, Jun 30 2014 Pure Storage, Inc Method for generating addresses in a dispersed storage network
10671585, Jan 31 2012 Pure Storage, Inc Storing indexed data to a dispersed storage network
10671746, Aug 28 2017 International Business Machines Corporation Controlling access when processing intents in a dispersed storage network
10673828, Feb 29 2016 Pure Storage, Inc Developing an accurate dispersed storage network memory performance model through training
10673946, Jun 30 2014 Pure Storage, Inc Using separate weighting scores for different types of data in a decentralized agreement protocol
10678450, Aug 26 2010 Pure Storage, Inc Migrating an encoded data slice based on an end-of-life memory level of a memory device
10678451, Mar 29 2016 Green Market Square Limited Cycling out dispersed storage processing units from access pools to perform expensive operations
10678462, Apr 30 2015 Pure Storage, Inc Rebalancing data storage in a dispersed storage network
10678472, Sep 24 2015 Pure Storage, Inc Generating additional slices based on data access frequency
10678619, Jul 27 2011 Pure Storage, Inc Unified logs and device statistics
10678622, Feb 29 2016 Pure Storage, Inc Optimizing and scheduling maintenance tasks in a dispersed storage network
10678638, Feb 26 2014 Pure Storage, Inc Resolving write conflicts in a dispersed storage network
10678639, Apr 30 2015 Pure Storage, Inc Quasi-error notifications in a dispersed storage network
10678640, Sep 08 2014 Pure Storage, Inc Using reinforcement learning to select a DS processing unit
10678642, Jul 31 2015 Pure Storage, Inc Unfavorable storage growth rate abatement
10678644, Jul 31 2013 Pure Storage, Inc Adaptive rebuilding rates based on sampling and inference
10681134, Jul 31 2013 Pure Storage, Inc Accelerated learning in adaptive rebuilding by applying observations to other samples
10681135, Dec 08 2017 International Business Machines Corporation Generating slices from a broadcast message and a recipient identity
10681138, Apr 02 2014 Pure Storage, Inc Storing and retrieving multi-format content in a distributed storage network
10686880, Aug 29 2013 Pure Storage, Inc Dispersed storage based on range availability and methods for use therewith
10691541, Mar 15 2017 International Business Machines Corporation Method for partial updating data content in a distributed storage network
10693640, Mar 17 2017 International Business Machines Corporation Use of key metadata during write and read operations in a dispersed storage network memory
10698778, Apr 30 2015 Pure Storage, Inc Automated stalled process detection and recovery
10705923, Sep 30 2005 Pure Storage, Inc Dispersed storage network with customized security and methods for use therewith
10713374, Mar 31 2015 Pure Storage, Inc Resolving detected access anomalies in a dispersed storage network
10719499, Jun 06 2016 INTERNATIONAL BUSINESS MACHINES CORPORATIOb Establishing distributed consensus via alternate voting strategies in a dispersed storage network
10735545, Jun 06 2016 Pure Storage, Inc Routing vault access requests in a dispersed storage network
10740180, Jan 30 2015 Pure Storage, Inc Storing and retrieving data using proxies
10747616, Mar 31 2015 Pure Storage, Inc Adapting rebuilding of encoded data slices in a dispersed storage network
10748055, Apr 30 2015 Pure Storage, Inc Validating system registry files in a dispersed storage network
10757187, Oct 29 2009 Pure Storage, Inc Streaming all-or-nothing encoding with random offset support
10761917, Apr 02 2014 Pure Storage, Inc Using global namespace addressing in a dispersed storage network
10768833, Nov 01 2010 Pure Storage, Inc Object dispersal load balancing
10769015, Jul 19 2016 International Business Machines Corporation Throttling access requests at different layers of a DSN memory
10769016, Feb 26 2014 Pure Storage, Inc Storing a plurality of correlated data in a dispersed storage network
10771191, Mar 09 2018 Kencast, Inc.; KENCAST INC System for highly reliable file delivery of using continuous FEC encoding/decoding
10776204, Feb 26 2014 Pure Storage, Inc Concatenating data objects for storage in a dispersed storage network
10782921, Jan 25 2017 International Business Machines Corporation Non-writing device finalization of a write operation initiated by another device
10785194, Dec 07 2017 International Business Machines Corporation Processing intents using trusted entities in a dispersed storage network
10789128, May 29 2015 Pure Storage, Inc External healing mode for a dispersed storage network memory
10795766, Apr 25 2012 Pure Storage, Inc Mapping slice groupings in a dispersed storage network
10798169, Sep 30 2005 Pure Storage, Inc Prioritizing ranges to rebuild based on namespace health
10802713, Sep 29 2017 International Business Machines Corporation Requester-associated storage entity data
10802732, Apr 30 2014 Pure Storage, Inc Multi-level stage locality selection on a large system
10802763, Nov 29 2010 Pure Storage, Inc Remote storage verification
10802915, Jan 30 2015 Pure Storage, Inc Time based storage of encoded data slices
10805042, Nov 01 2010 Pure Storage, Inc Creating transmission data slices for use in a dispersed storage network
10824495, Feb 29 2016 Pure Storage, Inc Cryptographic key storage in a dispersed storage network
10831381, Mar 29 2016 Green Market Square Limited Hierarchies of credential and access control sharing between DSN memories
10831544, Oct 08 2012 Pure Storage, Inc. Prioritization task execution within a storage unit (SU)
10831600, Jun 05 2014 Pure Storage, Inc. Establishing an operation execution schedule in a storage network
10838649, Jun 27 2016 International Business Machines Corporation Relocating storage unit data in response to detecting hotspots in a dispersed storage network
10838664, May 29 2015 Pure Storage, Inc Determining a storage location according to legal requirements
10838814, Jan 04 2013 Pure Storage, Inc Allocating rebuilding queue entries in a dispersed storage network
10841376, Aug 29 2013 Pure Storage, Inc Detection and correction of copy errors in a distributed storage network
10846025, Nov 30 2015 Pure Storage, Inc Utilizing fast memory devices to optimize different functions
10852957, Mar 31 2015 Pure Storage, Inc Migration agent employing moveslice request
10853171, Aug 31 2012 Pure Storage, Inc Encoding data in a dispersed storage network
10853172, Feb 26 2014 Pure Storage, Inc. Concatenating data objects for storage in a vast data storage network
10853173, Jul 31 2015 Pure Storage, Inc Proxying slice access requests during a data evacuation
10853174, Oct 30 2015 Pure Storage, Inc Utilizing storage unit latency data in a dispersed storage network
10853175, Feb 27 2015 Pure Storage, Inc. Storage unit (SU) operative to service urgent read requests
10853388, Sep 13 2012 Pure Storage, Inc Rebuilding data in a dispersed storage network
10855691, Dec 29 2009 Pure Storage, Inc Access policy updates in a dispersed storage network
10855736, Sep 22 2009 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
10855759, Jan 26 2016 Pure Storage, Inc Utilizing a hierarchical index in a dispersed storage network
10855769, Sep 30 2005 Pure Storage, Inc Prioritizing memory devices to replace based on namespace health
10860256, Mar 31 2015 Pure Storage, Inc Storing data utilizing a maximum accessibility approach in a dispersed storage network
10860424, Sep 30 2005 Pure Storage, Inc. Background verification processing in a storage network
10866754, Apr 26 2010 Pure Storage, Inc Content archiving in a distributed storage network
10871905, Aug 31 2015 Pure Storage, Inc Extra write scaling for performance and reliability
10891058, May 29 2015 Pure Storage, Inc Encoding slice verification information to support verifiable rebuilding
10891390, Apr 02 2014 Pure Storage, Inc.; Pure Storage, Inc Adjusting data storage efficiency of data in a storage network
10891400, Jan 28 2010 Pure Storage, Inc Secure data transmission utilizing distributed storage
10896090, Jul 18 2016 International Business Machines Corporation Focused storage pool expansion to prevent a performance degradation
10901618, Dec 29 2009 Pure Storage, Inc. Storage unit (SU) operative within non-disruptive and performant migration
10901642, Jun 28 2017 International Business Machines Corporation Managing data container instances in a dispersed storage network
10901650, Aug 18 2016 International Business Machines Corporation Using a master encryption key to sanitize a dispersed storage network memory
10901870, Jun 30 2016 International Business Machines Corporation Managing configuration updates in a dispersed storage network
10904214, Aug 26 2016 International Business Machines Corporation Securing storage units in a dispersed storage network
10904320, Apr 26 2010 Pure Storage, Inc. Performance testing in a distributed storage network based on memory type
10904336, Sep 30 2005 Pure Storage, Inc Predictive rebalancing according to future usage expectations
10904337, Feb 20 2017 International Business Machines Corporation Zone storage—resilient and efficient storage transactions
10911230, May 19 2010 Pure Storage, Inc Securely activating functionality of a computing device in a dispersed storage network
10915253, Mar 29 2016 Green Market Square Limited Temporary enrollment in anonymously obtained credentials
10915261, Mar 31 2015 Pure Storage, Inc Selecting a set of storage units in a distributed storage network
10922179, Nov 29 2010 Pure Storage, Inc Post rebuild verification
10922181, Jan 06 2014 Pure Storage, Inc Using storage locations greater than an IDA width in a dispersed storage network
10922198, Apr 30 2015 Pure Storage, Inc. Cloning failing memory devices in a dispersed storage network
10929068, Sep 14 2016 International Business Machines Corporation Pre-caching data according to a current or predicted requester location
10929214, Feb 17 2017 International Business Machines Corporation Eventual consistency intent cleanup in a dispersed storage network
10936388, Sep 29 2017 International Business Machines Corporation Slice metadata for optimized dispersed storage network (DSN) memory storage strategies
10936417, Jun 30 2015 Pure Storage, Inc Multi-stage slice recovery in a dispersed storage network
10936448, Feb 05 2013 Pure Storage, Inc Using dispersed computation to change dispersal characteristics
10936452, Nov 14 2018 International Business Machines Corporation Dispersed storage network failover units used to improve local reliability
10938418, Sep 30 2005 Pure Storage, Inc Online disk replacement/removal
10942684, Jul 20 2016 International Business Machines Corporation Assigning prioritized rebuild resources optimally
10942806, Jul 12 2016 International Business Machines Corporation Manipulating a distributed agreement protocol to identify a desired set of storage units
10944712, Dec 12 2011 Pure Storage, Inc. Partial task messaging in a distributed storage system
10949301, Jun 06 2011 Pure Storage, Inc Pre-positioning pre-stored content in a content distribution system
10951358, Jun 16 2017 International Business Machines Corporation Using slice routers for improved storage placement determination
10951743, Feb 04 2011 ADAPTIV NETWORKS INC Methods for achieving target loss ratio
10956091, Aug 10 2016 International Business Machines Corporation Expanding a dispersed storage network (DSN)
10956266, Jun 01 2017 International Business Machines Corporation Processing data access transactions in a dispersed storage network using source revision indicators
10956292, Apr 26 2010 Pure Storage, Inc.; Pure Storage, Inc Utilizing integrity information for data retrieval in a vast storage system
10958430, Aug 17 2011 Pure Storage, Inc. Log record generation and storage based on associated principals
10958731, Jun 06 2016 International Business Machines Corporation Indicating multiple encoding schemes in a dispersed storage network
10963180, Mar 31 2015 Pure Storage, Inc Adding incremental storage resources in a dispersed storage network
10963341, Mar 29 2016 International Business Machines Corporation Isolating the introduction of software defects in a dispersed storage network
10963343, Dec 02 2014 Pure Storage, Inc. Facilitation of temporary storage of a slice in a storage unit (SU)
10969972, Jun 20 2017 International Business Machines Corporation Validating restricted operations on a client using trusted environments
10970168, Oct 06 2010 Pure Storage, Inc Adjusting dispersed storage error encoding parameters based on path performance
10970171, Jun 22 2010 Pure Storage, Inc Metadata access in a dispersed storage network
10972541, Sep 30 2005 Pure Storage, Inc. Priority encoded data slice retention
10977123, Mar 29 2016 International Business Machines Corporation Coordination protocol between dispersed storage processing units and rebuild modules
10977127, Feb 26 2014 Pure Storage, Inc. Concatenating data objects in a vast data storage network
10977194, Nov 28 2011 Pure Storage, Inc Securely storing random keys in a dispersed storage network
10996895, Mar 31 2015 Pure Storage, Inc. Selecting a subset of storage units in a dispersed storage network
10997022, Apr 26 2010 Pure Storage, Inc. Storing data in accordance with encoded data slice revision levels in a storage network
10997023, Jul 31 2015 Pure Storage, Inc. Processing a request for encoded data in a storage network
10997136, Aug 27 2009 Pure Storage, Inc Method and apparatus for identifying data inconsistency in a dispersed storage network
11010246, Jun 03 2016 International Business Machines Corporation Multiple writes using inter-site storage unit relationship
11010357, Jun 05 2014 Pure Storage, Inc Reliably recovering stored data in a dispersed storage network
11016702, Jul 27 2011 Pure Storage, Inc Hierarchical event tree
11023338, Feb 15 2017 International Business Machines Corporation Handling storage unit failure in a dispersed storage network
11025965, Oct 26 2016 International Business Machines Corporation Pre-fetching content among DVRs
11036392, Feb 26 2013 Pure Storage, Inc Determining when to use convergent encryption
11036584, May 22 2013 Pure Storage, Inc. Dynamically adjusting write requests for a multiple phase write operation
11055177, Mar 31 2015 Pure Storage, Inc Correlating operational information with an error condition in a dispersed storage network
11061597, Nov 09 2010 Pure Storage, Inc Supporting live migrations and re-balancing with a virtual storage unit
11061613, Apr 11 2017 International Business Machines Corporation Dynamic retention policies and optional deletes
11068163, Aug 02 2010 Pure Storage, Inc. Storing a credential in a storage network
11070318, Aug 02 2012 Pure Storage, Inc. Forwarding data amongst cooperative computing devices of a massive data ingestion system
11073993, Aug 26 2010 Pure Storage, Inc. Predicting usable memory
11080138, Apr 26 2010 Pure Storage, Inc.; Pure Storage, Inc Storing integrity information in a vast storage system
11093327, Jun 25 2012 Pure Storage, Inc. Failure abatement approach for failed storage units common to multiple vaults
11093330, Feb 26 2014 Pure Storage, Inc. Combining data objects in a vast data storage network
11099763, Jun 30 2014 Pure Storage, Inc. Migrating generational storage to a decentralized agreement protocol paradigm
11101929, Aug 02 2012 Pure Storage, Inc. Dynamically caching data for storage in storage units of a content delivery network
11113008, Feb 05 2013 Pure Storage, Inc. Data restoration using partially encoded slice requests
11113009, Oct 08 2012 Pure Storage, Inc. Computing device facilitating prioritization of task execution within a distributed storage network (DSN)
11115221, May 29 2015 Pure Storage, Inc Verifying a rebuilt encoded data slice using slice verification information
11115469, Jun 28 2016 International Business Machines Corporation Efficient updates within a dispersed storage network
11132257, Jan 04 2013 Pure Storage, Inc Prioritized rebuilds using dispersed indices
11132340, Jul 01 2013 Pure Storage, Inc Storage unit selection of memory devices used for distributed storage network memory
11144204, Feb 26 2014 Pure Storage, Inc. Recovering data in a storage network
11153384, May 15 2017 International Business Machines Corporation Rebuilding derived content
11157362, Jul 26 2016 International Business Machines Corporation Elastic storage in a dispersed storage network
11157366, Jul 31 2015 Pure Storage, Inc. Securing data in a dispersed storage network
11169731, Oct 31 2016 International Business Machines Corporation Managing storage resources in a dispersed storage network
11182082, Mar 29 2016 Green Market Square Limited Monitoring and sharing registry states
11182251, Jul 01 2013 Pure Storage, Inc. Rebuilding an encoded data slice utilizing integrity check values
11188665, Feb 27 2015 Pure Storage, Inc Using internal sensors to detect adverse interference and take defensive actions
11194662, Sep 30 2005 Pure Storage, Inc Digest listing decomposition
11194672, Sep 30 2005 Pure Storage, Inc. Storage network with connection security and methods for use therewith
11204723, Jun 05 2017 International Business Machines Corporation Implicit leader election in a distributed storage network
11204822, Feb 29 2016 Pure Storage, Inc. Distributed storage network (DSN) configuration adaptation based on estimated future loading
11204836, Jan 31 2014 Pure Storage, Inc. Using trap slices for anomaly detection in a distributed storage network
11210151, Jan 30 2015 Pure Storage, Inc. Peer-assisted data rebuilding
11221916, Jul 01 2013 Pure Storage, Inc Prioritized data reconstruction in a dispersed storage network
11221917, Sep 30 2005 Pure Storage, Inc. Integrity processing in a dispersed storage network
11226860, May 30 2013 Pure Storage, Inc Difference based rebuild list scanning
11226980, Mar 13 2017 International Business Machines Corporation Replicating containers in object storage using intents
11232093, Mar 02 2012 Pure Storage, Inc Slice migration in a dispersed storage network
11233643, Apr 20 2009 Pure Storage, Inc. Distributed data storage system data decoding and decryption
11237904, Jul 14 2016 International Business Machines Corporation Tracking data access in a dispersed storage network
11243839, Aug 17 2011 Pure Storage, Inc. Audit file generation in a dispersed storage network
11250141, Jul 29 2016 International Business Machines Corporation Securely storing data in an elastically scalable dispersed storage network
11256558, Dec 02 2014 Pure Storage, Inc. Prioritized data rebuilding in a dispersed storage network based on consistency requirements
11272009, Sep 30 2005 Pure Storage, Inc. Managed data slice maintenance in a distributed storage system
11281532, Dec 31 2014 Pure Storage, Inc. Synchronously storing data in a dispersed storage network
11283871, Jun 30 2014 Pure Storage, Inc. Processing data access requests for different types of data using a decentralized agreement protocol
11294568, Feb 26 2013 Pure Storage, Inc. Moving data from a buffer to other storage
11294745, Feb 05 2013 Pure Storage, Inc. Storage unit (SU) implemented to service alternate read slice requests
11294765, Feb 26 2014 Pure Storage, Inc. Resolving write conflicts in a dispersed storage network
11301592, Jan 28 2010 Pure Storage, Inc Distributed storage with data obfuscation and method for use therewith
11307930, Nov 29 2010 Pure Storage, Inc.; Pure Storage, Inc Optimized selection of participants in distributed data rebuild/verification
11321172, Dec 31 2014 Pure Storage, Inc. Vault transformation within a storage network
11321174, Sep 08 2014 Pure Storage, Inc. Using estimated efficiency models to select a processing unit in a distributed storage network
11327674, Jun 05 2012 Pure Storage, Inc Storage vault tiering and data migration in a distributed storage network
11327689, Nov 30 2015 Pure Storage, Inc. Storage unit including memories of different operational speeds for optimizing data storage functions
11327840, Jun 30 2015 Pure Storage, Inc. Multi-stage data recovery in a distributed storage network
11329830, Nov 01 2011 Pure Storage, Inc.; Pure Storage, Inc Dispersed credentials
11334425, Sep 06 2011 Pure Storage, Inc. Transmitting synchronized data streams in a distributed storage network
11336428, Jul 31 2014 Pure Storage, Inc. Blinded passwords for a distributed storage system
11340788, Dec 29 2009 Pure Storage, Inc Security checks for proxied requests
11340988, Sep 30 2005 Pure Storage, Inc Generating integrity information in a vast storage system
11340993, Jan 06 2014 Pure Storage, Inc Deferred rebuilding with alternate storage locations
11347590, Apr 02 2014 Pure Storage, Inc.; Pure Storage, Inc Rebuilding data in a distributed storage network
11360851, Aug 31 2012 Pure Storage, Inc Duplicating authentication information between connections
11360852, Jun 25 2012 Pure Storage, Inc. Selection of memory in a distributed data storage network
11366939, Jan 28 2010 Pure Storage, Inc. Secure data transmission utilizing a set of obfuscated encoded data slices
11385803, Mar 29 2016 Green Market Square Limited Cycling out dispersed storage processing units from access pools to perform expensive operations
11385964, Jan 30 2015 Pure Storage, Inc. Maintaining storage of encoded data slices
11394779, Oct 29 2009 Pure Storage, Inc. Storing all or nothing encoded data chunks in a storage network
11398988, Jun 30 2014 Pure Storage, Inc. Selection of access resources in a distributed storage network
11409767, Sep 13 2012 Pure Storage, Inc. Rebuilding failed slices in a vast storage network
11410019, Apr 30 2015 Pure Storage, Inc. Verifying system registry files in a storage network
11412041, Jun 25 2018 International Business Machines Corporation Automatic intervention of global coordinator
11416149, Dec 29 2009 Pure Storage, Inc. Selecting a processing unit in accordance with a customizable data processing plan
11416179, Oct 30 2009 Pure Storage, Inc. Storage unit solicitation for encoded data slice storage
11416339, Sep 30 2005 Pure Storage, Inc. Validating requests based on stored vault information
11416340, Jan 04 2013 Pure Storage, Inc. Storage system with multiple storage types in a vast storage network
11418580, Apr 01 2011 Pure Storage, Inc Selective generation of secure signatures in a distributed storage network
11418591, Dec 05 2012 Pure Storage, Inc. Write response thresholds
11422711, Aug 31 2015 Pure Storage, Inc. Write performance distribution monitoring for write operation adaptation
11429486, Feb 27 2010 Pure Storage, Inc. Rebuilding data via locally decodable redundancy in a vast storage network
11442921, Sep 05 2014 Pure Storage, Inc Data access in a dispersed storage network with consistency
11445052, Aug 04 2004 ADAPTIV NETWORKS INC System and method for achieving accelerated throughput
11449280, Apr 30 2014 Pure Storage, Inc. Dynamic provisioning and activation of storage pools
11455100, Feb 23 2017 International Business Machines Corporation Handling data slice revisions in a dispersed storage network
11463420, Dec 12 2011 Pure Storage, Inc. Storage unit partial task processing
11474729, Jun 30 2014 Pure Storage, Inc Updating the configuration of storage units of a storage network
11474902, Jun 02 2017 International Business Machines Corporation Indicating data health in a DSN memory
11474903, Sep 30 2005 Pure Storage, Inc Rebuilding of encoded data slices using locally decodable code segments
11474958, Nov 28 2011 Pure Storage, Inc. Generating and queuing system messages with priorities in a storage network
11477253, Sep 22 2009 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
11487620, Feb 27 2010 Pure Storage, Inc. Utilizing locally decodable redundancy data in a vast storage network
11507459, Oct 08 2012 Pure Storage, Inc. Migration of data in a distributed storage network using storage records
11513685, Feb 26 2014 Pure Storage, Inc. Retrieving data in a storage network
11526398, Oct 06 2010 Pure Storage, Inc. Determining an error encoding function ratio based on path performance
11537470, Aug 17 2011 Pure Storage, Inc. Audit record aggregation in a storage network
11543963, Jul 31 2013 Pure Storage, Inc. Storage unit shutdown in a distributed storage network using a load-balancer
11543964, Jan 04 2013 Pure Storage, Inc. Efficient rebuilding of an encoded data slice
11544146, Sep 30 2005 Pure Storage, Inc. Utilizing integrity information in a vast storage system
11550501, Feb 28 2017 International Business Machines Corporation Storing data sequentially in zones in a dispersed storage network
11550515, May 29 2015 Pure Storage, Inc. Determining a storage location according to data retention policies
11556435, Feb 05 2013 Pure Storage, Inc. Modifying storage of encoded data slices based on changing storage parameters
11567702, Mar 31 2015 Pure Storage, Inc. Resolving detected access anomalies in a vast storage network
11567832, Dec 02 2014 Pure Storage, Inc. Using copied data in a distributed storage network
11580076, Dec 05 2012 Pure Storage, Inc. Prioritizing rebuilding erasure coded data in a storage network
11582299, Jan 26 2016 Pure Storage, Inc Allocating cache memory in a dispersed storage network
11586755, Apr 02 2014 Pure Storage, Inc. Adjusting efficiency of storing data in a storage network
11588892, Jul 31 2013 Pure Storage, Inc. Adaptive rebuilding of encoded data slices in a storage network
11593026, Mar 06 2020 International Business Machines Corporation Zone storage optimization using predictive protocol patterns
11593029, Jul 27 2011 Pure Storage, Inc. Identifying a parent event associated with child error states
11599419, May 22 2013 Pure Storage, Inc. Determining a performance threshold for a write operation
11604587, Aug 29 2013 Pure Storage, Inc. Processing of a vault provisioning request within a data storage system
11604707, Dec 31 2014 Pure Storage, Inc Handling failures when synchronizing objects during a write operation
11606431, Jun 30 2014 Pure Storage, Inc. Maintaining failure independence for storage of a set of encoded data slices
11616653, Nov 01 2011 Pure Storage, Inc.; Pure Storage, Inc Storing error-encoded data slices in vast network based on storage requirements and parameters
11620087, Jun 05 2017 International Business Machines Corporation Implicit leader election in a distributed storage network
11620185, Sep 30 2005 Pure Storage, Inc. Integrity processing in a dispersed storage network
11620232, Jun 23 2017 International Business Machines Corporation Associating a processing thread and memory section to a memory device
11625300, Feb 27 2010 Pure Storage, Inc. Recovering missing data in a storage network via locally decodable redundancy data
11640248, Aug 31 2015 Pure Storage, Inc. Variable write threshold storage replication sites in a distributed storage network
11645133, Feb 05 2013 Pure Storage, Inc. Modifying encoded data in a distributed storage network
11650878, Jun 25 2012 Pure Storage, Inc. Failure abatement approach for a failed storage unit
11650879, Sep 08 2014 Pure Storage, Inc. Generating estimated efficiency models for selecting a processing unit in a storage network
11650883, Jan 06 2014 Pure Storage, Inc. Batch rebuilding a set of encoded data slices
11656941, Feb 26 2014 Pure Storage, Inc. Retrieval of data objects with a common trait in a storage network
11662915, Aug 26 2010 Pure Storage, Inc. Parity in a vast storage system using alternate memory
11669397, Apr 25 2012 Pure Storage, Inc. Partial task processing with data slice errors
11669546, Jun 30 2015 Pure Storage, Inc Synchronizing replicated data in a storage network
11675502, Apr 01 2011 Pure Storage, Inc. Transferring encoded data slices stored in flash memory of a storage network
11681582, Feb 26 2014 Pure Storage, Inc. Write lock conflicts in a storage network
11693985, Feb 27 2015 Pure Storage, Inc Stand-by storage nodes in storage network
11704184, Feb 29 2016 Pure Storage, Inc. Storage network with enhanced data access performance
11704195, Jun 06 2011 Pure Storage, Inc. Pre-positioning target content in a storage network
11714719, Jun 25 2012 Pure Storage, Inc. Tiered storage of data in a storage network
11714720, Jan 30 2015 Pure Storage, Inc. Maintaining storage of data slices in accordance with a slice reduction scheme
11726875, Apr 26 2010 Pure Storage, Inc. Verifying revision levels while storing data in a storage network
11728964, Jul 31 2014 Pure Storage, Inc Performance aided data migration in a distributed storage network
11734196, Nov 28 2011 Pure Storage, Inc. Decrypting secure packages in a storage network
11734463, Jan 28 2010 Pure Storage, Inc. Obfuscating a set of encoded data slices
11740972, May 19 2010 Pure Storage, Inc.; Pure Storage, Inc Migrating data in a vast storage network
11741125, Sep 13 2012 Pure Storage, Inc. Storage network for rebuilding failed slices
11743317, Sep 22 2009 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
11755413, Sep 30 2005 Pure Storage, Inc. Utilizing integrity information to determine corruption in a vast storage system
11762745, Oct 30 2009 Pure Storage, Inc. Encoding data based on targeted storage unit information
11770432, Sep 22 2009 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
11770448, Aug 29 2013 Pure Storage, Inc. Rotating offline storage units in a dispersed storage network
11782789, Jul 31 2015 Pure Storage, Inc Encoding data and associated metadata in a storage network
11789631, Nov 29 2010 Pure Storage, Inc Utilizing metadata storage trees in a vast storage network
11789832, Oct 29 2014 Pure Storage, Inc. Retrying failed write operations in a distributed storage network
11811532, Aug 02 2012 Pure Storage, Inc. Dynamically processing data in a vast data ingestion system
11815998, Oct 06 2010 Pure Storage, Inc. Selecting routing paths for sending encoded data slices
11818089, Dec 12 2011 Pure Storage, Inc. Processing requests for a data range within a data object in a distributed storage system
11822824, Mar 31 2015 Pure Storage, Inc. Processing access anomalies in a storage network
11836043, Mar 12 2010 Pure Storage, Inc Dispersed storage network file system directory
11836369, Feb 27 2015 Pure Storage, Inc. Storing data in an expanded storage pool of a vast storage network
11841770, Sep 30 2005 Pure Storage, Inc. Storage unit connection security in a storage network and methods for use therewith
11853547, May 09 2011 Pure Storage, Inc. Generating audit record data files for a transaction in a storage network
11860711, Apr 02 2014 Pure Storage, Inc Storage of rebuilt data in spare memory of a storage network
11860735, Jan 04 2013 Pure Storage, Inc. Storage network with multiple storage types
11868498, Apr 20 2009 Pure Storage, Inc. Storage integrity processing in a storage network
11870916, Nov 01 2011 Pure Storage, Inc. Data availability in vast network in event of memory device failure
11886752, May 29 2015 Pure Storage, Inc. Method for determining the legal basis for transfer of a data object
11892908, Jul 01 2013 Pure Storage, Inc. Prioritizing locations for error scanning in a storage network
11895098, Dec 12 2011 Pure Storage, Inc. Storing encrypted chunksets of data in a vast storage network
11907060, Sep 06 2011 Pure Storage, Inc.; Pure Storage, Inc Coding of data streams in a vast storage network
11907566, Sep 24 2015 Pure Storage, Inc. Coordination of task execution in a distributed storage network
11907585, Feb 28 2017 International Business Machines Corporation Storing data sequentially in zones in a dispersed storage network
11907824, Apr 30 2015 Pure Storage, Inc. Storage network with system registry file verification
11909418, Sep 30 2005 Pure Storage, Inc. Access authentication in a dispersed storage network
6141788, Mar 13 1998 THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT Method and apparatus for forward error correction in packet networks
6278715, Nov 05 1998 Qualcom Incorporated System and method for reducing deinterleaver memory requirements through chunk allocation
6336200, May 22 1998 KENCAST, INC Method for validating communicated packets of data and for locating erroneous packets
6460153, Mar 26 1999 Microsoft Technology Licensing, LLC Apparatus and method for unequal error protection in multiple-description coding using overcomplete expansions
6470469, Mar 26 1999 Microsoft Technology Licensing, LLC Reconstruction of missing coefficients of overcomplete linear transforms using projections onto convex sets
6564229, Jun 08 2000 UNILOC 2017 LLC System and method for pausing and resuming move/copy operations
6570843, May 22 1998 KENCAST, INC Method for minimizing the number of data packets required for retransmission in a two-way communication system
6574218, May 25 1999 Open Invention Network LLC Method and system for spatially disjoint joint source and channel coding for high-quality real-time multimedia streaming over connection-less networks via circuit-switched interface links
6606723, May 22 1998 KENCAST, INC System, computer-readable medium, and method for validating communicated packets of data and for locating erroneous packets
6609223, Apr 06 1999 KENCAST, INC METHOD FOR PACKET-LEVEL FEC ENCODING, IN WHICH ON A SOURCE PACKET-BY-SOURCE PACKET BASIS, THE ERROR CORRECTION CONTRIBUTIONS OF A SOURCE PACKET TO A PLURALITY OF WILDCARD PACKETS ARE COMPUTED, AND THE SOURCE PACKET IS TRANSMITTED THEREAFTER
6694253, Oct 09 2001 HEWLETT-PACKARD DEVELOPMENT COMPANY L P Navigation device for receiving satellite broadcast distribution of map data
6711709, Jun 24 1998 Unisys Corporation Integrated block checking system for rapid file transfer of compressed data
6775298, Aug 12 1999 IBM Corporation Data transfer mechanism for handheld devices over a wireless communication link
6915478, Dec 21 2001 Texas Instruments Incorporated Method and apparatus for computing Reed-Solomon error magnitudes
6950642, Jul 03 2001 Microsoft Technology Licensing, LLC System and method for reducing noise in a recording receiver
6970465, Oct 26 2001 Microsoft Technology Licensing, LLC System and method for locating a data frame within a transmitted data stream
6999545, Oct 26 2001 Microsoft Technology Licensing, LLC Method and system for undersampled symbol synchronization
7024609, Apr 20 2001 KENCAST, INC System for protecting the transmission of live data streams, and upon reception, for reconstructing the live data streams and recording them into files
7219289, Mar 15 2005 Tandberg Data Corporation Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same
7243285, Feb 05 1999 Qualcomm Incorporated Systems and methods for broadcasting information additive codes
7349675, Jul 03 2001 Microsoft Technology Licensing, LLC Low latency data stream encoding and transmission
7349691, Jul 03 2001 Microsoft Technology Licensing, LLC System and apparatus for performing broadcast and localcast communications
7386621, Aug 31 2000 Sharp Kabushiki Kaisha Efficient and reliable transmission via a hybrid broadcast-point-to-point system
7409627, May 03 2002 Electronics and Telecommunications Research Institute; Kyung Hee University Method for transmitting and receiving variable length packets based on forward error correction (FEC) coding
7472334, Oct 15 2003 Efficient method for the reconstruction of digital information
7533324, Sep 22 2004 KENCAST, INC System, method and apparatus for FEC encoding and decoding
7546427, Sep 30 2005 Pure Storage, Inc System for rebuilding dispersed data
7561897, Jul 03 2001 Microsoft Technology Licensing, LLC System and apparatus for performing broadcast and localcast communications
7574570, Sep 30 2005 Pure Storage, Inc Billing system for information dispersal system
7574579, Sep 30 2005 Pure Storage, Inc Metadata management system for an information dispersed storage system
7577407, Jul 03 2001 Microsoft Technology Licensing, LLC System and apparatus for performing broadcast and localcast communications
7577457, Jul 03 2001 Microsoft Technology Licensing, LLC System and apparatus for performing broadcast and localcast communications
7593755, Sep 15 2004 Microsoft Technology Licensing, LLC Display of wireless data
7653363, Jul 03 2001 Microsoft Technology Licensing, LLC System and apparatus for performing broadcast and localcast communications
7739580, Feb 17 2005 KENCAST, INC System, method and apparatus for reducing blockage losses on information distribution networks
7742501, Aug 06 2004 ADAPTIV NETWORKS INC System and method for higher throughput through a transportation network
7787389, Aug 20 2001 QUALCOM INCORPORATED, A DELAWARE CORPORATION Method and system for utilization of an outer decoder in a broadcast services communication system
7792121, Jan 03 2003 Microsoft Technology Licensing, LLC Frame protocol and scheduling system
7904475, Oct 09 2007 Pure Storage, Inc Virtualized data storage vaults on a dispersed data storage network
7949778, Mar 27 2007 Kencast, Inc.; KENCAST, INC Systems, methods, apparatus and computer program products for providing packet-level FEC with higher throughput using user datagram protocol (UDP)
7953114, Aug 06 2004 ADAPTIV NETWORKS INC System and method for achieving accelerated throughput
7953937, Sep 30 2005 Pure Storage, Inc Systems, methods, and apparatus for subdividing data for storage in a dispersed data storage grid
7961790, Mar 18 2004 STMICROELECTRONICS S R L Method for encoding/decoding signals with multiple descriptions vector and matrix
8009696, Aug 06 2004 ADAPTIV NETWORKS INC System and method for achieving accelerated throughput
8140777, Sep 30 2005 Pure Storage, Inc Billing system for information dispersal system
8171101, Sep 30 2005 Pure Storage, Inc Smart access to a dispersed data storage network
8171355, Mar 17 2006 Fujitsu Limited Data transferring method, and communication system and program applied with the method
8179919, Dec 23 2008 Industrial Technology Research Institute Method and apparatus for data package in broadcast networks
8190662, Oct 09 2007 Pure Storage, Inc Virtualized data storage vaults on a dispersed data storage network
8200788, Oct 09 2007 Pure Storage, Inc Slice server method and apparatus of dispersed digital storage vaults
8223643, Sep 06 2005 KENCAST, INC Method for packet-level FEC encoding a stream of source packets using shifted interleaving
8230316, Jan 25 2008 Nevion Europe AS Forward error correction for burst and random packet loss for real-time multi-media communication
8245096, Sep 22 2004 KENCAST, INC System, method and apparatus for FEC encoding and decoding
8275744, Jul 30 2009 Pure Storage, Inc Dispersed storage network virtual address fields
8275966, Jul 30 2009 Pure Storage, Inc Dispersed storage network virtual address generations
8281181, Sep 30 2009 Pure Storage, Inc Method and apparatus for selectively active dispersed storage memory device utilization
8281182, Mar 12 2010 Pure Storage, Inc Dispersed storage unit selection
8285878, Oct 09 2007 Pure Storage, Inc Block based access to a dispersed data storage network
8291277, Oct 29 2009 Pure Storage, Inc Data distribution utilizing unique write parameters in a dispersed storage system
8291300, Aug 21 2003 Qualcomm Incorporated Outer coding methods for broadcast/multicast content and related apparatus
8307263, Oct 05 2009 Pure Storage, Inc Method and apparatus for dispersed storage of streaming multi-media data
8351600, Oct 30 2009 Pure Storage, Inc Distributed storage network and method for encrypting and decrypting data using hash functions
8352501, Jan 28 2010 Pure Storage, Inc Dispersed storage network utilizing revision snapshots
8352719, Jul 31 2009 Pure Storage, Inc Computing device booting utilizing dispersed storage
8352782, Sep 30 2005 Pure Storage, Inc Range based rebuilder for use with a dispersed data storage network
8352831, Dec 29 2009 Pure Storage, Inc Digital content distribution utilizing dispersed storage
8357048, Sep 29 2009 Pure Storage, Inc Interactive gaming utilizing a dispersed storage network
8365052, Sep 12 2006 Tamagawa K-12 & University Encoding device for error correction, encoding method for error correction and encoding program for error correction
8370600, Mar 12 2010 Pure Storage, Inc Dispersed storage unit and method for configuration thereof
8381025, Sep 30 2009 Pure Storage, Inc Method and apparatus for dispersed storage memory device selection
8402344, Oct 05 2009 Pure Storage, Inc Method and apparatus for controlling dispersed storage of streaming data
8402350, Feb 17 2005 KENCAST, INC System, method and apparatus for reducing blockage losses on information distribution networks
8418034, Feb 08 2008 Kencast, Inc.; KENCAST, INC Systems, methods, apparatus and computer program products for highly reliable file delivery using compound and braided FEC encoding and decoding
8433978, Oct 29 2009 Pure Storage, Inc Data distribution utilizing unique read parameters in a dispersed storage system
8437370, Feb 04 2011 ADAPTIV NETWORKS INC Methods for achieving target loss ratio
8438456, Oct 05 2009 Pure Storage, Inc Method and apparatus for dispersed storage of streaming data
8448016, Jul 31 2009 Pure Storage, Inc Computing core application access utilizing dispersed storage
8448044, May 19 2010 Pure Storage, Inc Retrieving data from a dispersed storage network in accordance with a retrieval threshold
8451770, May 06 2002 Qualcomm Incorporated Multi-media broadcast and multicast service (MBMS) in a wireless communication system
8458233, Nov 25 2009 Pure Storage, Inc Data de-duplication in a dispersed storage network utilizing data characterization
8464133, Oct 30 2009 Pure Storage, Inc Media content distribution in a social network utilizing dispersed storage
8468137, Oct 30 2009 Pure Storage, Inc Distributed storage network that processes data in either fixed or variable sizes
8468311, Sep 30 2005 Pure Storage, Inc System, methods, and apparatus for subdividing data for storage in a dispersed data storage grid
8468368, Dec 29 2009 Pure Storage, Inc Data encryption parameter dispersal
8468609, Aug 27 2009 Pure Storage, Inc Authenticating use of a dispersed storage network
8473677, Sep 29 2009 Pure Storage, Inc Distributed storage network memory access based on memory state
8473833, Jan 25 2008 Nevion Europe AS Forward error correction method
8478865, Oct 09 2007 Pure Storage, Inc Systems, methods, and apparatus for matching a connection request with a network interface adapted for use with a dispersed data storage network
8478937, Sep 30 2009 Pure Storage, Inc Method and apparatus for dispersed storage memory device utilization
8479078, Oct 30 2009 Pure Storage, Inc Distributed storage network for modification of a data object
8479082, Apr 07 2010 Indian Institute of Technology Delhi Packet error correction in networks
8489915, Jul 30 2009 Pure Storage, Inc Method and apparatus for storage integrity processing based on error types in a dispersed storage network
8495466, Mar 16 2010 Pure Storage, Inc Adjusting data dispersal in a dispersed storage network
8504847, Apr 20 2009 Pure Storage, Inc Securing data in a dispersed storage network using shared secret slices
8521697, May 19 2010 Pure Storage, Inc Rebuilding data in multiple dispersed storage networks
8522022, Oct 30 2009 Pure Storage, Inc Distributed storage network employing multiple encoding layers in data routing
8522074, Oct 29 2009 Pure Storage, Inc Intentionally introduced storage deviations in a dispersed storage network
8522113, Jan 28 2010 Pure Storage, Inc Selecting storage facilities and dispersal parameters in a dispersed storage network
8527705, Mar 16 2010 Pure Storage, Inc Temporarily caching an encoded data slice
8527807, Nov 25 2009 Pure Storage, Inc Localized dispersed storage memory system
8527838, Jul 31 2009 Pure Storage, Inc Memory controller utilizing an error coding dispersal function
8533256, Oct 09 2007 Pure Storage, Inc Object interface to a dispersed data storage network
8533424, Jul 31 2009 Pure Storage, Inc Computing system utilizing dispersed storage
8548003, Aug 06 2004 ADAPTIV NETWORKS INC System and method for achieving accelerated throughput
8548913, Sep 29 2009 Pure Storage, Inc Method and apparatus to secure an electronic commerce transaction
8549351, Oct 09 2007 Pure Storage, Inc Pessimistic data reading in a dispersed storage network
8554994, Sep 29 2009 Pure Storage, Inc Distributed storage network utilizing memory stripes
8555109, Jul 30 2009 Pure Storage, Inc Method and apparatus for distributed storage integrity processing
8555130, Oct 04 2011 International Business Machines Corporation Storing encoded data slices in a dispersed storage unit
8555142, Jun 22 2010 Pure Storage, Inc Verifying integrity of data stored in a dispersed storage memory
8560794, Mar 12 2010 Pure Storage, Inc Dispersed storage network for managing data deletion
8560798, Jul 30 2009 Pure Storage, Inc Dispersed storage network virtual address space
8560855, Aug 27 2009 Pure Storage, Inc Verification of dispersed storage network access control information
8560882, Sep 30 2005 Pure Storage, Inc Method and apparatus for rebuilding data in a dispersed data storage network
8566354, Apr 26 2010 Pure Storage, Inc Storage and retrieval of required slices in a dispersed storage network
8566552, Mar 12 2010 Pure Storage, Inc Dispersed storage network resource allocation
8572282, Oct 30 2009 Pure Storage, Inc Router assisted dispersed storage network method and apparatus
8572429, Oct 09 2007 Pure Storage, Inc Optimistic data writing in a dispersed storage network
8578205, Mar 15 2010 Pure Storage, Inc Requesting cloud data storage
8589637, Oct 30 2009 Pure Storage, Inc Concurrent set storage in distributed storage network
8595435, Jul 30 2009 Pure Storage, Inc Dispersed storage write process
8601259, Apr 20 2009 Pure Storage, Inc Securing data in a dispersed storage network using security sentinel value
8607122, Nov 01 2011 Pure Storage, Inc Accessing a large data object in a dispersed storage network
8612821, Oct 06 2010 Pure Storage, Inc Data transmission utilizing route selection and dispersed storage error encoding
8612831, Jun 22 2010 Pure Storage, Inc Accessing data stored in a dispersed storage memory
8621268, Nov 25 2009 Pure Storage, Inc Write threshold utilization in a dispersed storage system
8621269, Jun 22 2010 Pure Storage, Inc Identifying a slice name information error in a dispersed storage network
8621271, Aug 26 2010 Pure Storage, Inc Reprovisioning a memory device into a dispersed storage network memory
8621580, May 19 2010 Pure Storage, Inc Retrieving access information in a dispersed storage network
8625635, Apr 26 2010 Pure Storage, Inc Dispersed storage network frame protocol header
8625636, Apr 26 2010 Pure Storage, Inc Checked write operation dispersed storage network frame
8625637, Apr 26 2010 Pure Storage, Inc Conclusive write operation dispersed storage network frame
8626871, May 19 2010 Pure Storage, Inc Accessing a global vault in multiple dispersed storage networks
8627065, Nov 09 2010 International Business Machines Corporation Validating a certificate chain in a dispersed storage network
8627066, Nov 03 2011 International Business Machines Corporation Processing a dispersed storage network access request utilizing certificate chain validation information
8627091, Apr 01 2011 Pure Storage, Inc Generating a secure signature utilizing a plurality of key shares
8627114, Aug 02 2010 Pure Storage, Inc Authenticating a data access request to a dispersed storage network
8630987, Jul 16 2008 Pure Storage, Inc System and method for accessing a data object stored in a distributed storage network
8649399, Apr 26 2010 Pure Storage, Inc Check operation dispersed storage network frame
8649521, Jan 28 2010 Pure Storage, Inc Obfuscation of sequenced encoded data slices
8654789, Apr 26 2010 Pure Storage, Inc Intermediate write operation dispersed storage network frame
8656138, Oct 06 2010 Pure Storage, Inc Efficiently accessing an encoded data slice utilizing a memory bin
8656187, Apr 20 2009 Pure Storage, Inc Dispersed storage secure data decoding
8656253, Jun 06 2011 Pure Storage, Inc Storing portions of data in a dispersed storage network
8667362, Jun 22 2001 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED System and method for mitigating burst noise in a communications system
8677214, Oct 04 2011 Pure Storage, Inc Encoding data utilizing a zero information gain function
8681787, Apr 26 2010 Pure Storage, Inc Write operation dispersed storage network frame
8681790, Apr 26 2010 Pure Storage, Inc List digest operation dispersed storage network frame
8683119, Mar 15 2010 Pure Storage, Inc Access control in a dispersed storage network
8683205, May 19 2010 Pure Storage, Inc Accessing data utilizing entity registration in multiple dispersed storage networks
8683231, Dec 27 2010 Pure Storage, Inc Obfuscating data stored in a dispersed storage network
8683259, May 19 2010 Pure Storage, Inc Accessing data in multiple dispersed storage networks
8683286, Nov 01 2011 Pure Storage, Inc Storing data in a dispersed storage network
8688907, Nov 25 2009 Pure Storage, Inc Large scale subscription based dispersed storage network
8688949, Feb 01 2011 Pure Storage, Inc Modifying data storage in response to detection of a memory system imbalance
8689354, Sep 29 2009 Pure Storage, Inc Method and apparatus for accessing secure data in a dispersed storage system
8694545, Jul 06 2011 Pure Storage, Inc Storing data and metadata in a distributed storage network
8694668, Sep 30 2005 Pure Storage, Inc Streaming media software interface to a dispersed data storage network
8694752, Feb 01 2011 Pure Storage, Inc Transferring data in response to detection of a memory system imbalance
8694869, Aug 21 2003 Qualcomm, Incorporated Methods for forward error correction coding above a radio link control layer and related apparatus
8706980, Jul 30 2009 Pure Storage, Inc Method and apparatus for slice partial rebuilding in a dispersed storage network
8707088, May 19 2010 Pure Storage, Inc Reconfiguring data storage in multiple dispersed storage networks
8707091, Mar 15 2010 Pure Storage, Inc Failsafe directory file system in a dispersed storage network
8707105, Nov 01 2010 Pure Storage, Inc Updating a set of memory devices in a dispersed storage network
8707139, Oct 18 2006 KENCAST, INC Systems, methods, apparatus, and computer program products for providing forward error correction with low latency
8707393, May 09 2011 Pure Storage, Inc Providing dispersed storage network location information of a hypertext markup language file
8717900, Feb 07 2011 ADAPTIV NETWORKS INC Mechanisms to improve the transmission control protocol performance in wireless networks
8718283, Apr 27 2001 Verizon Ireland Limited System and method for processing a shared secret
8725940, Feb 27 2010 Pure Storage, Inc Distributedly storing raid data in a raid memory and a dispersed storage network memory
8726127, Feb 01 2011 Pure Storage, Inc Utilizing a dispersed storage network access token module to access a dispersed storage network memory
8726136, Feb 08 2008 KENCAST, INC Systems, methods, apparatus and computer program products for highly reliable file delivery using compound and braided FEC encoding and decoding
8732206, Oct 29 2009 Pure Storage, Inc Distributed storage timestamped revisions
8744071, Apr 20 2009 Pure Storage, Inc Dispersed data storage system data encryption and encoding
8751894, Sep 06 2011 Pure Storage, Inc Concurrent decoding of data streams
8756480, Jun 06 2011 Pure Storage, Inc Prioritized deleting of slices stored in a dispersed storage network
8761167, Apr 26 2010 Pure Storage, Inc List range operation dispersed storage network frame
8762343, Dec 29 2009 Pure Storage, Inc Dispersed storage of software
8762346, Nov 25 2009 Pure Storage, Inc Data de-duplication in a dispersed storage network utilizing data characterization
8762479, Jun 06 2011 Pure Storage, Inc Distributing multi-media content to a plurality of potential accessing devices
8762770, Jul 06 2011 Pure Storage, Inc Distribution of a customized preview of multi-media content
8762793, Aug 26 2010 Pure Storage, Inc Migrating encoded data slices from a re-provisioned memory device of a dispersed storage network memory
8769035, Oct 30 2009 Pure Storage, Inc Distributed storage network for storing a data object based on storage requirements
8769379, Apr 26 2010 Pure Storage, Inc Identifying a storage error of a data slice
8776186, Oct 04 2011 Pure Storage, Inc Obtaining a signed certificate for a dispersed storage network
8782086, Aug 27 2009 Pure Storage, Inc Updating dispersed storage network access control information
8782227, Jun 22 2010 Pure Storage, Inc Identifying and correcting an undesired condition of a dispersed storage network access request
8782439, Jun 06 2011 Pure Storage, Inc Securing a data segment for storage
8782491, Aug 17 2011 Pure Storage, Inc Detecting intentional corruption of data in a dispersed storage network
8782492, Oct 04 2011 Pure Storage, Inc Updating data stored in a dispersed storage network
8782494, Oct 04 2011 Pure Storage, Inc Reproducing data utilizing a zero information gain function
8804761, Aug 21 2003 Qualcomm, Incorporated Methods for seamless delivery of broadcast and multicast content across cell borders and/or between different transmission schemes and related apparatus
8806050, Aug 10 2010 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
8819011, Jul 16 2008 Pure Storage, Inc Command line interpreter for accessing a data object stored in a distributed storage network
8819179, Oct 09 2007 Pure Storage, Inc Data revision synchronization in a dispersed storage network
8819452, Nov 25 2009 Pure Storage, Inc Efficient storage of encrypted data in a dispersed storage network
8819781, Apr 20 2009 Pure Storage, Inc Management of network devices within a dispersed data storage network
8832493, Dec 22 2010 Pure Storage, Inc Storing directory metadata in a dispersed storage network
8839368, Nov 01 2011 Pure Storage, Inc Acquiring a trusted set of encoded data slices
8842746, Aug 02 2010 Pure Storage, Inc Receiving encoded data slices via wireless communication
8843803, Apr 01 2011 Pure Storage, Inc Utilizing local memory and dispersed storage memory to access encoded data slices
8843804, Apr 01 2011 Pure Storage, Inc Adjusting a dispersal parameter of dispersedly stored data
8848906, Nov 28 2011 Pure Storage, Inc Encrypting data for storage in a dispersed storage network
8850113, Feb 27 2010 Pure Storage, Inc Data migration between a raid memory and a dispersed storage network memory
8856549, Nov 28 2011 Pure Storage, Inc Deleting encoded data slices in a dispersed storage network
8856552, Mar 31 2008 Pure Storage, Inc Directory synchronization of a dispersed storage network
8856617, Oct 04 2011 Pure Storage, Inc Sending a zero information gain formatted encoded data slice
8861727, May 19 2010 Pure Storage, Inc Storage of sensitive data in a dispersed storage network
8862800, Sep 29 2009 Pure Storage, Inc Distributed storage network including memory diversity
8868695, Mar 02 2011 Pure Storage, Inc Configuring a generic computing device utilizing specific computing device operation information
8874868, May 19 2010 Pure Storage, Inc Memory utilization balancing in a dispersed storage network
8874990, Apr 01 2011 Pure Storage, Inc Pre-fetching data segments stored in a dispersed storage network
8874991, Apr 01 2011 Pure Storage, Inc Appending data to existing data stored in a dispersed storage network
8880799, Sep 30 2005 Pure Storage, Inc Rebuilding data on a dispersed storage network
8880978, Apr 01 2011 Pure Storage, Inc Utilizing a local area network memory and a dispersed storage network memory to access data
8882599, Sep 30 2005 Pure Storage, Inc Interactive gaming utilizing a dispersed storage network
8885821, Jan 28 2010 Pure Storage, Inc Sequencing encoded data slices
8886711, Oct 09 2007 Pure Storage, Inc File system adapted for use with a dispersed data storage network
8887020, Oct 06 2003 Qualcomm Incorporated Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters
8892598, Jun 22 2010 Pure Storage, Inc Coordinated retrieval of data from a dispersed storage network
8892845, Dec 22 2010 Pure Storage, Inc Segmenting data for storage in a dispersed storage network
8897443, Dec 27 2010 Pure Storage, Inc Watermarking slices stored in a dispersed storage network
8898513, May 19 2010 Pure Storage, Inc Storing data in multiple dispersed storage networks
8898542, Dec 12 2011 Pure Storage, Inc Executing partial tasks in a distributed storage and task network
8904226, Aug 26 2010 Pure Storage, Inc Migrating stored copies of a file to stored encoded data slices
8909858, Jun 09 2010 Pure Storage, Inc Storing encoded data slices in a dispersed storage network
8910022, Mar 02 2011 Pure Storage, Inc Retrieval of encoded data slices and encoded instruction slices by a computing device
8914667, Jul 27 2011 Pure Storage, Inc Identifying a slice error in a dispersed storage network
8914669, Apr 26 2010 Pure Storage, Inc Secure rebuilding of an encoded data slice in a dispersed storage network
8918534, Sep 29 2009 Pure Storage, Inc Writing data slices to ready and non-ready distributed storage units in a distributed storage network
8918674, Jan 28 2010 Pure Storage, Inc Directory file system in a dispersed storage network
8918693, Oct 06 2010 Pure Storage, Inc Data transmission utilizing data processing and dispersed storage error encoding
8918897, Nov 24 2009 Pure Storage, Inc Dispersed storage network data slice integrity verification
8924387, Sep 29 2009 Pure Storage, Inc Social networking utilizing a dispersed storage network
8924770, Jul 06 2011 Pure Storage, Inc Rebuilding a data slice of a maintenance free storage container
8930375, Mar 02 2012 Pure Storage, Inc Splitting an index node of a hierarchical dispersed storage index
8930649, Sep 06 2011 Pure Storage, Inc Concurrent coding of data streams
8935256, Mar 02 2012 Pure Storage, Inc Expanding a hierarchical dispersed storage index
8935761, Jun 25 2012 Pure Storage, Inc Accessing storage nodes in an on-line media storage system
8938013, Mar 16 2010 Pure Storage, Inc Dispersal of priority data in a dispersed storage network
8938552, Aug 02 2010 Pure Storage, Inc Resolving a protocol issue within a dispersed storage network
8938591, Sep 30 2005 Pure Storage, Inc Dispersed storage processing unit and methods with data aggregation for use in a dispersed storage system
8942084, Apr 04 2011 Samsung Electro-Mechanics Co., Ltd.; KOREA UNIVERSITY RESEARCH & BUSINESS FOUNDATION Method of reducing retransmission of data frame and receiving node therefor
8949688, Apr 01 2011 Pure Storage, Inc Updating error recovery information in a dispersed storage network
8949695, Aug 27 2009 Pure Storage, Inc Method and apparatus for nested dispersed storage
8954667, Jan 28 2010 Pure Storage, Inc Data migration in a dispersed storage network
8954787, May 09 2011 Pure Storage, Inc Establishing trust in a maintenance free storage container
8958375, Feb 11 2011 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
8959366, Jan 28 2010 Pure Storage, Inc De-sequencing encoded data slices
8959597, May 19 2010 Pure Storage, Inc Entity registration in multiple dispersed storage networks
8964988, Jul 23 2010 Nippon Telegraph and Telephone Corporation Secret sharing system, sharing apparatus, share management apparatus, acquisition apparatus, secret sharing method, program and recording medium
8965956, Oct 09 2007 Pure Storage, Inc Integrated client for use with a dispersed data storage network
8966194, Oct 29 2009 Pure Storage, Inc Processing a write request in a dispersed storage network
8966311, Jul 06 2011 Pure Storage, Inc Maintenance free storage container storage module access
8977931, Aug 27 2009 Pure Storage, Inc Method and apparatus for nested dispersed storage
8990585, Dec 29 2009 Pure Storage, Inc Time based dispersed storage access
8990664, Jan 31 2012 Pure Storage, Inc Identifying a potentially compromised encoded data slice
8996910, May 09 2011 Pure Storage, Inc Assigning a dispersed storage network address range in a maintenance free storage container
9009564, Dec 12 2011 Pure Storage, Inc Storing data in a distributed storage network
9009567, Dec 12 2011 Pure Storage, Inc Encrypting distributed computing data
9009575, Jul 30 2009 Pure Storage, Inc Rebuilding a data revision in a dispersed storage network
9015431, Oct 29 2009 Pure Storage, Inc Distributed storage revision rollbacks
9015499, Nov 01 2010 Pure Storage, Inc Verifying data integrity utilizing dispersed storage
9015556, Dec 12 2011 Pure Storage, Inc Transforming data in a distributed storage and task network
9021263, Aug 31 2012 Pure Storage, Inc Secure data access in a dispersed storage network
9021273, Nov 25 2009 Pure Storage, Inc Efficient storage of encrypted data in a dispersed storage network
9026758, Sep 30 2005 Pure Storage, Inc Memory device utilization in a dispersed storage network
9027080, Mar 31 2008 Pure Storage, Inc Proxy access to a dispersed storage network
9037904, Dec 22 2010 Pure Storage, Inc Storing directory metadata in a dispersed storage network
9037937, Oct 06 2010 Pure Storage, Inc Relaying data transmitted as encoded data slices
9043489, Oct 30 2009 Pure Storage, Inc Router-based dispersed storage network method and apparatus
9043499, Feb 05 2013 Pure Storage, Inc Modifying a dispersed storage network memory data access response plan
9043548, Jan 28 2010 Pure Storage, Inc Streaming content storage
9043616, Nov 25 2009 Pure Storage, Inc Efficient storage of encrypted data in a dispersed storage network
9047217, Aug 27 2009 Pure Storage, Inc Nested distributed storage unit and applications thereof
9047218, Apr 26 2010 Pure Storage, Inc Dispersed storage network slice name verification
9047242, Apr 26 2010 Pure Storage, Inc Read operation dispersed storage network frame
9063658, Oct 30 2009 Pure Storage, Inc Distributed storage network for modification of a data object
9063881, Apr 26 2010 Pure Storage, Inc Slice retrieval in accordance with an access sequence in a dispersed storage network
9063968, Aug 02 2010 Pure Storage, Inc Identifying a compromised encoded data slice
9071274, Feb 08 2008 Kencast, Inc. Systems, methods, apparatus and computer program products for highly reliable file delivery using compound and braided FEC encoding and decoding
9076138, Sep 29 2009 Pure Storage, Inc Method and apparatus for obfuscating slice names in a dispersed storage system
9077734, Aug 02 2010 Pure Storage, Inc Authentication of devices of a dispersed storage network
9081675, Jul 31 2009 Pure Storage, Inc Encoding data in a dispersed storage network
9081714, Feb 01 2011 Pure Storage, Inc Utilizing a dispersed storage network access token module to store data in a dispersed storage network memory
9081715, Feb 01 2011 Pure Storage, Inc Utilizing a dispersed storage network access token module to retrieve data from a dispersed storage network memory
9086964, Jul 31 2009 Pure Storage, Inc Updating user device content data using a dispersed storage network
9088407, Oct 30 2009 Pure Storage, Inc Distributed storage network and method for storing and retrieving encryption keys
9092294, Apr 20 2009 Pure Storage, Inc Systems, apparatus, and methods for utilizing a reachability set to manage a network upgrade
9092385, Aug 17 2011 Pure Storage, Inc Facilitating access of a dispersed storage network
9092386, Apr 26 2010 Pure Storage, Inc Indicating an error within a dispersed storage network
9092439, Oct 09 2007 Pure Storage, Inc Virtualized data storage vaults on a dispersed data storage network
9098376, Oct 30 2009 Pure Storage, Inc Distributed storage network for modification of a data object
9098409, Jul 31 2009 Pure Storage, Inc Detecting a computing system basic input/output system issue
9110833, Jun 25 2012 Pure Storage, Inc Non-temporarily storing temporarily stored data in a dispersed storage network
9112535, Oct 06 2010 Pure Storage, Inc Data transmission utilizing partitioning and dispersed storage error encoding
9116831, Oct 06 2010 Pure Storage, Inc Correcting an errant encoded data slice
9116832, Feb 27 2010 Pure Storage, Inc Storing raid data as encoded data slices in a dispersed storage network
9135098, Jul 27 2011 Pure Storage, Inc Modifying dispersed storage network event records
9135115, Feb 27 2010 Pure Storage, Inc Storing data in multiple formats including a dispersed storage format
9136878, May 09 2005 Qualcomm Incorporated File download and streaming system
9136983, Feb 13 2006 Qualcomm Incorporated Streaming and buffering using variable FEC overhead and protection periods
9141297, Jun 25 2012 Pure Storage, Inc Verifying encoded data slice integrity in a dispersed storage network
9141458, May 09 2011 Pure Storage, Inc Adjusting a data storage address mapping in a maintenance free storage container
9141468, Dec 12 2011 Pure Storage, Inc Managing memory utilization in a distributed storage and task network
9146810, Jan 31 2012 Pure Storage, Inc Identifying a potentially compromised encoded data slice
9152489, Dec 29 2009 Pure Storage, Inc Revision synchronization of a dispersed storage network
9152514, Nov 24 2009 Pure Storage, Inc Rebuilding a data segment in a dispersed storage network
9154298, Aug 31 2012 Pure Storage, Inc Securely storing data in a dispersed storage network
9158624, Feb 27 2010 Pure Storage, Inc Storing RAID data as encoded data slices in a dispersed storage network
9164841, Jun 05 2012 Pure Storage, Inc Resolution of a storage error in a dispersed storage network
9167277, Aug 03 2009 Pure Storage, Inc Dispersed storage network data manipulation
9170868, Jul 27 2011 Pure Storage, Inc Identifying an error cause within a dispersed storage network
9170882, Dec 22 2010 Pure Storage, Inc Retrieving data segments from a dispersed storage network
9170884, Mar 16 2010 Pure Storage, Inc Utilizing cached encoded data slices in a dispersed storage network
9171031, Mar 02 2012 Pure Storage, Inc Merging index nodes of a hierarchical dispersed storage index
9176822, Aug 31 2012 Pure Storage, Inc Adjusting dispersed storage error encoding parameters
9178535, Apr 16 2007 Qualcomm Incorporated Dynamic stream interleaving and sub-stream based delivery
9183073, Mar 02 2011 Pure Storage, Inc Maintaining data concurrency with a dispersed storage network
9189307, Aug 06 2004 ADAPTIV NETWORKS INC Method of improving the performance of an access network for coupling user devices to an application server
9191151, Sep 22 2009 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
9195408, Oct 30 2009 Pure Storage, Inc Highly autonomous dispersed storage system retrieval method
9195684, Mar 02 2012 Pure Storage, Inc Redundant task execution in a distributed storage and task network
9201732, Jan 28 2010 Pure Storage, Inc Selective activation of memory to retrieve data in a dispersed storage network
9203625, Nov 28 2011 Pure Storage, Inc Transferring encoded data slices in a distributed storage network
9203812, Apr 20 2009 Pure Storage, Inc Dispersed storage network with encrypted portion withholding and methods for use therewith
9203901, Jan 31 2012 Pure Storage, Inc Efficiently storing data in a dispersed storage network
9203902, Jan 31 2012 Pure Storage, Inc Securely and reliably storing data in a dispersed storage network
9207870, Jul 30 2009 Pure Storage, Inc Allocating storage units in a dispersed storage network
9208025, Jul 30 2009 Pure Storage, Inc Virtual memory mapping in a dispersed storage network
9209934, Sep 22 2009 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
9213742, Sep 06 2011 Pure Storage, Inc Time aligned transmission of concurrently coded data streams
9219604, May 09 2011 Pure Storage, Inc Generating an encrypted message for storage
9223723, Oct 30 2012 Pure Storage, Inc Verifying data of a dispersed storage network
9225961, May 13 2010 Qualcomm Incorporated Frame packing for asymmetric stereo video
9229823, Aug 17 2011 Pure Storage, Inc Storage and retrieval of dispersed storage network access information
9229824, Mar 16 2010 Pure Storage, Inc Caching rebuilt encoded data slices in a dispersed storage network
9231768, Jun 22 2010 Pure Storage, Inc Utilizing a deterministic all or nothing transformation in a dispersed storage network
9235350, Aug 27 2009 Pure Storage, Inc Dispersed storage unit and methods with metadata separation for use in a dispersed storage system
9236885, Oct 05 2002 Qualcomm Incorporated Systematic encoding and decoding of chain reaction codes
9236887, May 07 2004 Qualcomm Incorporated File download and streaming system
9236976, Dec 21 2001 Qualcomm Incorporated Multi stage code generator and decoder for communication systems
9237101, Sep 12 2007 Qualcomm Incorporated Generating and communicating source identification information to enable reliable communications
9240810, Jun 11 2002 Qualcomm Incorporated Systems and processes for decoding chain reaction codes through inactivation
9244768, Mar 12 2010 Pure Storage, Inc Dispersed storage network file system directory
9244770, Jul 06 2011 Pure Storage, Inc Responding to a maintenance free storage container security threat
9246633, Sep 23 1998 Qualcomm Incorporated Information additive code generator and decoder for communication systems
9253233, Aug 31 2011 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
9258177, Aug 02 2012 Pure Storage, Inc Storing a data stream in a set of storage devices
9262288, Oct 30 2009 Pure Storage, Inc Autonomous dispersed storage system retrieval method
9264069, May 10 2006 Qualcomm Incorporated Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient uses of the communications systems
9270298, Nov 24 2009 Pure Storage, Inc Selecting storage units to rebuild an encoded data slice
9270299, Feb 11 2011 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
9270414, Feb 21 2006 Qualcomm Incorporated Multiple-field based code generator and decoder for communications systems
9274864, Oct 04 2011 International Business Machines Corporation Accessing large amounts of data in a dispersed storage network
9274908, Feb 26 2013 Pure Storage, Inc Resolving write conflicts in a dispersed storage network
9274977, Nov 01 2010 Pure Storage, Inc Storing data integrity information utilizing dispersed storage
9276912, Apr 20 2009 Pure Storage, Inc Dispersed storage network with slice refresh and methods for use therewith
9277011, Oct 30 2012 Pure Storage, Inc Processing an unsuccessful write request in a dispersed storage network
9281847, Feb 27 2009 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
9288010, Oct 22 2010 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
9292212, Jun 25 2012 Pure Storage, Inc Detecting storage errors in a dispersed storage network
9292682, May 09 2011 Pure Storage, Inc Accessing a second web page from a dispersed storage network memory based on a first web page selection
9294226, Mar 26 2012 Qualcomm Incorporated Universal object delivery and template-based file delivery
9298542, Oct 30 2012 Pure Storage, Inc Recovering data from corrupted encoded data slices
9298548, Dec 12 2011 Pure Storage, Inc Distributed computing in a distributed storage and task network
9298550, May 09 2011 Pure Storage, Inc Assigning a dispersed storage network address range in a maintenance free storage container
9304843, Nov 01 2011 Pure Storage, Inc Highly secure method for accessing a dispersed storage network
9304857, Dec 12 2011 Pure Storage, Inc Retrieving data from a distributed storage network
9304858, Dec 12 2011 Pure Storage, Inc Analyzing found data in a distributed storage and task network
9305597, Dec 29 2009 Pure Storage, Inc Accessing stored multi-media content based on a subscription priority level
9311179, Oct 30 2012 Pure Storage, Inc Threshold decoding of data based on trust levels
9311184, Feb 27 2010 Pure Storage, Inc Storing raid data as encoded data slices in a dispersed storage network
9311185, Oct 30 2009 Pure Storage, Inc Dispersed storage unit solicitation method and apparatus
9311187, Jan 04 2013 Pure Storage, Inc Achieving storage compliance in a dispersed storage network
9319448, Aug 10 2010 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
9319463, Dec 27 2010 Pure Storage, Inc Reproducing data from obfuscated data retrieved from a dispersed storage network
9329940, Jan 28 2010 Pure Storage, Inc Dispersed storage having a plurality of snapshot paths and methods for use therewith
9330241, Dec 29 2009 Pure Storage, Inc Applying digital rights management to multi-media file playback
9336139, Nov 29 2010 Pure Storage, Inc Selecting a memory for storage of an encoded data slice in a dispersed storage network
9342406, Apr 26 2010 Pure Storage, Inc Dispersed storage re-dispersion method based on a failure
9344500, Dec 29 2009 Pure Storage, Inc Distributed storage time synchronization based on storage delay
9350491, Jun 22 2001 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED System and method for mitigating burst noise in a communications system
9354980, Jan 28 2010 Pure Storage, Inc Dispersed storage having snapshot clones and methods for use therewith
9369526, Dec 29 2009 Pure Storage, Inc Distributed storage time synchronization based on retrieval delay
9379913, Aug 06 2004 ADAPTIV NETWORKS INC System and method for achieving accelerated throughput
9380032, Apr 25 2012 Pure Storage, Inc Encrypting data for storage in a dispersed storage network
9380096, Sep 22 2009 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
9386064, Sep 22 2009 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
9390283, Apr 02 2014 Pure Storage, Inc Controlling access in a dispersed storage network
9397783, Oct 18 2006 KENCAST, INC Systems, methods, apparatus, and computer program products for providing forward error correction with low latency
9400714, Jun 06 2011 Pure Storage, Inc Wirelessly communicating a data file
9405609, May 22 2013 Pure Storage, Inc Storing data in accordance with a performance threshold
9411810, Aug 27 2009 Pure Storage, Inc Method and apparatus for identifying data inconsistency in a dispersed storage network
9413393, Dec 29 2009 Pure Storage, Inc Encoding multi-media content for a centralized digital video storage system
9413529, Oct 30 2009 Pure Storage, Inc Distributed storage network and method for storing and retrieving encryption keys
9419749, Aug 19 2009 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
9424132, May 30 2013 Pure Storage, Inc Adjusting dispersed storage network traffic due to rebuilding
9424326, Sep 13 2012 Pure Storage, Inc Writing data avoiding write conflicts in a dispersed storage network
9430286, Dec 12 2011 Pure Storage, Inc Authorizing distributed task processing in a distributed storage network
9430336, Sep 30 2005 Pure Storage, Inc Dispersed storage network with metadata generation and methods for use therewith
9432341, May 30 2013 Pure Storage, Inc Securing data in a dispersed storage network
9432433, Sep 22 2009 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
9438675, Aug 29 2013 Pure Storage, Inc Dispersed storage with variable slice length and methods for use therewith
9448730, Sep 30 2009 Pure Storage, Inc Method and apparatus for dispersed storage data transfer
9451025, Jul 31 2013 Pure Storage, Inc Distributed storage network with alternative foster storage approaches and methods for use therewith
9454431, Nov 29 2010 Pure Storage, Inc Memory selection for slice storage in a dispersed storage network
9456015, Aug 10 2010 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
9456035, May 03 2013 Pure Storage, Inc Storing related data in a dispersed storage network
9460148, Jul 06 2011 Pure Storage, Inc Completing distribution of multi-media content to an accessing device
9462316, Dec 29 2009 Pure Storage, Inc Digital content retrieval utilizing dispersed storage
9465824, Nov 24 2009 Pure Storage, Inc Rebuilding an encoded data slice within a dispersed storage network
9465861, Jan 31 2012 Pure Storage, Inc Retrieving indexed data from a dispersed storage network
9483398, Nov 29 2010 Pure Storage, Inc Partitioning data for storage in a dispersed storage network
9483539, Sep 13 2012 Pure Storage, Inc Updating local data utilizing a distributed storage network
9483656, Apr 20 2009 Pure Storage, Inc Efficient and secure data storage utilizing a dispersed data storage system
9489264, Nov 25 2009 Pure Storage, Inc Storing an encoded data slice as a set of sub-slices
9489533, Dec 29 2009 Pure Storage, Inc Efficient memory utilization in a dispersed storage system
9495117, Apr 26 2010 Pure Storage, Inc Storing data in a dispersed storage network
9495118, Jul 31 2013 Pure Storage, Inc Storing data in a directory-less dispersed storage network
9501349, Nov 24 2009 Pure Storage, Inc Changing dispersed storage error encoding parameters
9501355, Mar 31 2008 Pure Storage, Inc Storing data and directory information in a distributed storage network
9501360, Jul 01 2013 Pure Storage, Inc Rebuilding data while reading data in a dispersed storage network
9501366, Sep 30 2005 BISSELL INC Dispersed storage network with parameter search and methods for use therewith
9503513, Oct 08 2012 Pure Storage, Inc Robust transmission of data utilizing encoded data slices
9507735, Dec 29 2009 Pure Storage, Inc Digital content retrieval utilizing dispersed storage
9507786, Jan 31 2012 Pure Storage, Inc Retrieving data utilizing a distributed index
9514132, Jan 31 2012 Pure Storage, Inc Secure data migration in a dispersed storage network
9521197, Dec 05 2012 Pure Storage, Inc Utilizing data object storage tracking in a dispersed storage network
9529834, Feb 26 2014 Pure Storage, Inc Concatenating data objects for storage in a dispersed storage network
9537609, Aug 02 2012 Pure Storage, Inc Storing a stream of data in a dispersed storage network
9542239, Apr 30 2014 Pure Storage, Inc Resolving write request conflicts in a dispersed storage network
9552261, Jan 31 2014 Pure Storage, Inc Recovering data from microslices in a dispersed storage network
9552305, Nov 01 2010 International Business Machines Corporation Compacting dispersed storage space
9558059, Jul 30 2009 Pure Storage, Inc Detecting data requiring rebuilding in a dispersed storage network
9558067, Jan 04 2013 Pure Storage, Inc Mapping storage of data in a dispersed storage network
9558071, Jan 28 2010 Pure Storage, Inc Dispersed storage with partial data object storage and methods for use therewith
9560133, Jun 06 2011 Pure Storage, Inc Acquiring multi-media content
9565252, Jul 31 2013 Pure Storage, Inc Distributed storage network with replication control and methods for use therewith
9571230, Oct 06 2010 Pure Storage, Inc Adjusting routing of data within a network path
9576018, Oct 09 2007 Pure Storage, Inc Revision deletion markers
9584326, Nov 28 2011 Pure Storage, Inc Creating a new file for a dispersed storage network
9584359, Dec 12 2011 Pure Storage, Inc Distributed storage and computing of interim data
9588686, Oct 03 2013 Pure Storage, Inc Adjusting execution of tasks in a dispersed storage network
9588994, Mar 02 2012 Pure Storage, Inc Transferring task execution in a distributed storage and task network
9590838, Nov 09 2010 Pure Storage, Inc Transferring data of a dispersed storage network
9590913, Feb 07 2011 ADAPTIV NETWORKS INC System and method for reducing bandwidth usage of a network
9591076, Sep 08 2014 Pure Storage, Inc Maintaining a desired number of storage units
9594507, Oct 03 2013 Pure Storage, Inc Dispersed storage system with vault updating and methods for use therewith
9594639, Jan 06 2014 Pure Storage, Inc Configuring storage resources of a dispersed storage network
9602802, Jul 21 2010 Qualcomm Incorporated Providing frame packing type information for video coding
9606858, Apr 26 2010 Pure Storage, Inc Temporarily storing an encoded data slice
9606867, Jun 05 2014 Pure Storage, Inc Maintaining data storage in accordance with an access metric
9607168, Sep 29 2009 Pure Storage, Inc Obfuscating a transaction in a dispersed storage system
9612882, Apr 30 2014 Pure Storage, Inc Retrieving multi-generational stored data in a dispersed storage network
9613052, Jun 05 2012 Pure Storage, Inc Establishing trust within a cloud computing system
9626125, Jul 31 2013 Pure Storage, Inc Accounting for data that needs to be rebuilt or deleted
9626248, Nov 25 2009 Pure Storage, Inc Likelihood based rebuilding of missing encoded data slices
9632722, May 19 2010 Pure Storage, Inc Balancing storage unit utilization within a dispersed storage network
9632872, Jun 05 2012 Pure Storage, Inc Reprioritizing pending dispersed storage network requests
9639298, Jul 31 2013 Pure Storage, Inc Time-based storage within a dispersed storage network
9647945, Feb 07 2011 ADAPTIV NETWORKS INC Mechanisms to improve the transmission control protocol performance in wireless networks
9647952, Aug 06 2004 ADAPTIV NETWORKS INC Network quality as a service
9648087, Oct 08 2012 Pure Storage, Inc Allocating distributed storage and task execution resources
9652470, Jul 01 2013 Pure Storage, Inc Storing data in a dispersed storage network
9658911, Mar 02 2011 Pure Storage, Inc Selecting a directory of a dispersed storage network
9660763, Aug 19 2009 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
9661074, Aug 29 2013 Pure Storage, Inc Updating de-duplication tracking data for a dispersed storage network
9661075, Aug 29 2013 Pure Storage, Inc Defragmenting slices in dispersed storage network memory
9661356, Oct 29 2009 Pure Storage, Inc Distribution of unique copies of broadcast data utilizing fault-tolerant retrieval from dispersed storage
9665429, Feb 26 2014 Pure Storage, Inc Storage of data with verification in a dispersed storage network
9667701, Oct 30 2009 Pure Storage, Inc Robust reception of data utilizing encoded data slices
9672108, Dec 29 2009 Pure Storage, Inc Dispersed storage network (DSN) and system with improved security
9672109, Nov 25 2009 Pure Storage, Inc Adaptive dispersed storage network (DSN) and system
9674155, Dec 12 2011 Pure Storage, Inc Encrypting segmented data in a distributed computing system
9679153, Dec 29 2009 Pure Storage, Inc Data deduplication in a dispersed storage system
9681156, Oct 29 2009 Pure Storage, Inc Media distribution to a plurality of devices utilizing buffered dispersed storage
9690513, Aug 27 2009 Pure Storage, Inc Dispersed storage processing unit and methods with operating system diversity for use in a dispersed storage system
9690520, Jun 30 2014 Pure Storage, Inc Recovering an encoded data slice in a dispersed storage network
9692593, Oct 30 2009 Pure Storage, Inc Distributed storage network and method for communicating data across a plurality of parallel wireless data streams
9697171, Oct 09 2007 Pure Storage, Inc Multi-writer revision synchronization in a dispersed storage network
9697244, Dec 29 2009 Pure Storage, Inc Record addressing information retrieval based on user data descriptors
9703812, Nov 24 2009 Pure Storage, Inc Rebuilding slices of a set of encoded data slices
9727266, Dec 29 2009 Pure Storage, Inc Selecting storage units in a dispersed storage network
9727275, Dec 02 2014 Pure Storage, Inc Coordinating storage of data in dispersed storage networks
9727427, Dec 31 2014 Pure Storage, Inc Synchronizing storage of data copies in a dispersed storage network
9733853, Dec 29 2009 Pure Storage, Inc Using foster slice strategies for increased power efficiency
9735967, Apr 30 2014 Pure Storage, Inc Self-validating request message structure and operation
9740547, Jan 30 2015 Pure Storage, Inc Storing data using a dual path storage approach
9740730, Dec 12 2011 Pure Storage, Inc Authorizing distributed task processing in a distributed storage network
9747457, Nov 25 2009 Pure Storage, Inc Efficient storage of encrypted data in a dispersed storage network
9749414, Aug 29 2013 Pure Storage, Inc Storing low retention priority data in a dispersed storage network
9749419, Apr 26 2010 Pure Storage, Inc Check operation dispersed storage network frame
9760286, Nov 25 2009 Pure Storage, Inc Adaptive dispersed storage network (DSN) and system
9760440, Jan 28 2010 Pure Storage, Inc Site-based namespace allocation
9762395, Apr 30 2014 Pure Storage, Inc Adjusting a number of dispersed storage units
9772791, Aug 27 2009 Pure Storage, Inc Dispersed storage processing unit and methods with geographical diversity for use in a dispersed storage system
9772904, Oct 30 2009 Pure Storage, Inc Robust reception of data utilizing encoded data slices
9774678, Oct 29 2009 Pure Storage, Inc Temporarily storing data in a dispersed storage network
9774679, Aug 29 2013 Pure Storage, Inc Storage pools for a dispersed storage network
9774680, Jan 28 2010 Pure Storage, Inc Distributed rebuilding of data in a dispersed storage network
9774684, Sep 30 2005 Pure Storage, Inc Storing data in a dispersed storage network
9778987, Jan 31 2014 Pure Storage, Inc Writing encoded data slices in a dispersed storage network
9781207, Aug 29 2013 Pure Storage, Inc Dispersed storage based on estimated life and methods for use therewith
9781208, Nov 01 2013 Pure Storage, Inc Obtaining dispersed storage network system registry information
9785491, Oct 04 2011 Pure Storage, Inc Processing a certificate signing request in a dispersed storage network
9794337, Oct 30 2012 Pure Storage, Inc Balancing storage node utilization of a dispersed storage network
9798467, Dec 29 2009 Pure Storage, Inc Security checks for proxied requests
9798616, Nov 01 2011 Pure Storage, Inc Wireless sending a set of encoded data slices
9798619, Feb 26 2014 Pure Storage, Inc Concatenating data objects for storage in a dispersed storage network
9798621, Aug 27 2009 Pure Storage, Inc Dispersed storage network with slice rebuilding and methods for use therewith
9800372, Oct 22 2015 Hongik University-Academia Cooperation Foundation Data transmission system, encoding apparatus and encoding method
9807171, Apr 26 2010 Pure Storage, Inc Conclusive write operation dispersed storage network frame
9811405, Dec 29 2009 Pure Storage, Inc Cache for file-based dispersed storage
9811533, Dec 05 2012 Pure Storage, Inc Accessing distributed computing functions in a distributed computing system
9813501, Oct 08 2012 Pure Storage, Inc Allocating distributed storage and task execution resources
9817597, Dec 29 2009 Pure Storage, Inc Using temporary write locations for increased power efficiency
9817611, Apr 30 2014 Pure Storage, Inc Resolving write request conflicts in a dispersed storage network
9817701, Dec 12 2011 Pure Storage, Inc Threshold computing in a distributed computing system
9819484, Oct 30 2009 Pure Storage, Inc Distributed storage network and method for storing and retrieving encryption keys
9823845, Nov 25 2009 Pure Storage, Inc Adaptive dispersed storage network (DSN) and system
9823861, Sep 30 2009 Pure Storage, Inc Method and apparatus for selecting storage units to store dispersed storage data
9826038, Jan 30 2015 Pure Storage, Inc Selecting a data storage resource of a dispersed storage network
9836352, Nov 25 2009 Pure Storage, Inc Detecting a utilization imbalance between dispersed storage network storage units
9838382, Jun 05 2012 Pure Storage, Inc Establishing trust within a cloud computing system
9838478, Jun 30 2014 Pure Storage, Inc Identifying a task execution resource of a dispersed storage network
9841899, Oct 03 2013 Pure Storage, Inc Dispersed storage system with sub-vaults and methods for use therewith
9841925, Jun 30 2014 Pure Storage, Inc Adjusting timing of storing data in a dispersed storage network
9842063, Nov 28 2011 Pure Storage, Inc Encrypting data for storage in a dispersed storage network
9842222, Aug 25 2010 Pure Storage, Inc Securely rebuilding an encoded data slice
9843412, Oct 06 2010 Pure Storage, Inc Optimizing routing of data across a communications network
9843844, Oct 05 2011 Qualcomm Incorporated Network streaming of media data
9848044, Jul 31 2013 Pure Storage, Inc Distributed storage network with coordinated partial task execution and methods for use therewith
9852017, Jul 27 2011 Pure Storage, Inc Generating dispersed storage network event records
9857974, Oct 03 2013 Pure Storage, Inc Session execution decision
9858143, Jul 16 2008 Pure Storage, Inc Command line interpreter for accessing a data object stored in a distributed storage network
9866595, Dec 29 2009 Pure Storage, Inc Policy based slice deletion in a dispersed storage network
9870795, Nov 25 2009 Pure Storage, Inc Localized dispersed storage memory system
9875158, Aug 31 2012 Pure Storage, Inc Slice storage in a dispersed storage network
9876607, Aug 19 2009 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
9880902, Oct 09 2007 Pure Storage, Inc Multi-writer revision synchronization in a dispersed storage network
9881043, Oct 09 2007 Pure Storage, Inc Multiple revision mailbox
9888076, Oct 09 2007 Pure Storage, Inc Encoded data slice caching in a distributed storage network
9891829, Feb 26 2014 Pure Storage, Inc Storage of data with verification in a dispersed storage network
9891995, Jan 31 2012 Pure Storage, Inc Cooperative decentralized rebuild scanning
9893836, Aug 06 2004 ADAPTIV NETWORKS INC System and method for achieving accelerated throughput
9894157, Jul 31 2013 Pure Storage, Inc Distributed storage network with client subsets and methods for use therewith
9898373, Apr 26 2010 Pure Storage, Inc Prioritizing rebuilding of stored data in a dispersed storage network
9900150, Oct 30 2009 Pure Storage, Inc Dispersed storage camera device and method of operation
9900316, Dec 04 2013 Pure Storage, Inc Accessing storage units of a dispersed storage network
9900387, Jan 28 2010 Pure Storage, Inc Distributed rebuilding of data in a dispersed storage network
9910732, Sep 08 2014 Pure Storage, Inc Maintaining a desired number of storage units
9916114, Oct 29 2014 Pure Storage, Inc Deterministically sharing a plurality of processing resources
9917874, Sep 22 2009 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
9921907, Jul 01 2013 Pure Storage, Inc Time-sensitive data storage operations in a dispersed storage network
9922063, Dec 29 2009 Pure Storage, Inc Secure storage of secret data in a dispersed storage network
9923838, Jun 30 2014 Pure Storage, Inc Accessing a dispersed storage network
9927976, Jul 31 2013 Pure Storage, Inc Storing data in a directory-less dispersed storage network
9927977, Dec 22 2010 Pure Storage, Inc Retrieving data segments from a dispersed storage network
9927978, Dec 29 2009 Pure Storage, Inc Dispersed storage network (DSN) and system with improved security
9933969, Nov 30 2015 Pure Storage, Inc Securing encoding data slices using an integrity check value list
9934091, Jun 06 2011 Pure Storage, Inc Wirelessly communicating a data file
9934092, Jul 12 2016 International Business Machines Corporation Manipulating a distributed agreement protocol to identify a desired set of storage units
9936020, Oct 30 2012 Pure Storage, Inc Access control of data in a dispersed storage network
9940195, Aug 25 2010 Pure Storage, Inc Encryption of slice partials
9952930, Oct 30 2015 Pure Storage, Inc Reallocation in a dispersed storage network (DSN)
9959076, Oct 09 2007 Pure Storage, Inc Optimized disk load distribution
9959169, Oct 30 2015 Pure Storage, Inc Expansion of dispersed storage network (DSN) memory
9965336, Apr 30 2014 Pure Storage, Inc Delegating iterative storage unit access in a dispersed storage network
9971538, Nov 30 2015 Pure Storage, Inc Load balancing and service differentiation within a dispersed storage network
9971649, Oct 30 2015 Pure Storage, Inc Deploying and growing a set of dispersed storage units at and by non-information dispersal algorithm (IDA) width multiples
9971802, Aug 17 2011 Pure Storage, Inc Audit record transformation in a dispersed storage network
9992063, Jul 18 2016 Pure Storage, Inc Utilizing reallocation via a decentralized, or distributed, agreement protocol (DAP) for storage unit (SU) replacement
9996283, Aug 31 2015 Pure Storage, Inc Handling storage unit latency in a dispersed storage network
9996413, Oct 09 2007 Pure Storage, Inc Ensuring data integrity on a dispersed storage grid
9996548, Nov 25 2009 Pure Storage, Inc Dispersed storage using localized peer-to-peer capable wireless devices in a peer-to-peer or femto cell supported carrier served fashion
9998147, Feb 27 2017 International Business Machines Corporation Method for using write intents in a distributed storage network
9998538, Aug 29 2013 Pure Storage, Inc Dispersed storage with coordinated execution and methods for use therewith
9998540, Dec 12 2011 Pure Storage, Inc Distributed storage and computing of interim data
RE40661, Jan 14 1997 Samsung Electronics Co., Ltd.; Regents of the University of California Error prevention method for multimedia data
RE43741, Oct 05 2002 Qualcomm Incorporated Systematic encoding and decoding of chain reaction codes
Patent Priority Assignee Title
4718066, Mar 05 1985 Agence Spataile Europeenne Self-adaptive hybrid data transmission
5485474, Feb 25 1988 The President and Fellows of Harvard College Scheme for information dispersal and reconstruction
5600663, Nov 16 1994 THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT Adaptive forward error correction system
5631907, Dec 13 1995 THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT Reliable broadcast protocol structure for electronic software distribution
/////
Executed onAssignorAssigneeConveyanceFrameReelDoc
Jan 17 1997Kencast, Inc.(assignment on the face of the patent)
Oct 26 1998PALEOLOGOU, SOPHIAKENCAST, INC ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0096580884 pdf
Dec 11 1998FISCHER, MICHAEL J KENCAST, INC ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0096580898 pdf
Apr 15 2016KENCAST, INC ENHANCED CAPITAL CONNECTICUT FUND V, LLCPATENT SECURITY AGREEMENT0384390381 pdf
Jul 12 2018EDGEMONT CAPITAL LLCKENCAST, INC RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS 0466100551 pdf
Date Maintenance Fee Events
Apr 08 2003M2551: Payment of Maintenance Fee, 4th Yr, Small Entity.
Jun 12 2007M2552: Payment of Maintenance Fee, 8th Yr, Small Entity.
Jul 01 2011M2553: Payment of Maintenance Fee, 12th Yr, Small Entity.


Date Maintenance Schedule
Jan 04 20034 years fee payment window open
Jul 04 20036 months grace period start (w surcharge)
Jan 04 2004patent expiry (for year 4)
Jan 04 20062 years to revive unintentionally abandoned end. (for year 4)
Jan 04 20078 years fee payment window open
Jul 04 20076 months grace period start (w surcharge)
Jan 04 2008patent expiry (for year 8)
Jan 04 20102 years to revive unintentionally abandoned end. (for year 8)
Jan 04 201112 years fee payment window open
Jul 04 20116 months grace period start (w surcharge)
Jan 04 2012patent expiry (for year 12)
Jan 04 20142 years to revive unintentionally abandoned end. (for year 12)