WO2005066761A2 - Method, system, and program for managing parity raid data reconstruction - Google Patents

Method, system, and program for managing parity raid data reconstruction Download PDF

Info

Publication number
WO2005066761A2
WO2005066761A2 PCT/US2004/043041 US2004043041W WO2005066761A2 WO 2005066761 A2 WO2005066761 A2 WO 2005066761A2 US 2004043041 W US2004043041 W US 2004043041W WO 2005066761 A2 WO2005066761 A2 WO 2005066761A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
unit
logic engine
volatile storage
stripe
Prior art date
Application number
PCT/US2004/043041
Other languages
French (fr)
Other versions
WO2005066761A3 (en
Inventor
Mark Schmisseur
Original Assignee
Intel Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corporation filed Critical Intel Corporation
Priority to CN2004800391368A priority Critical patent/CN1965298B/en
Priority to JP2006542901A priority patent/JP2007513435A/en
Priority to EP04815156A priority patent/EP1700201A2/en
Publication of WO2005066761A2 publication Critical patent/WO2005066761A2/en
Publication of WO2005066761A3 publication Critical patent/WO2005066761A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1009Cache, i.e. caches used in RAID system with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1054Parity-fast hardware, i.e. dedicated fast hardware for RAID systems with parity

Definitions

  • Embodiments relate to a method, system, and program for managing data in a system of data organization, such as a RAID system. Description of the Related Art
  • RAID Redundant Array of Independent (or Inexpensive) Disks
  • RAID data storage organizations two or more disk drives are employed in combination to improve fault tolerance or performance, or both.
  • RAID data storage organizations There are different types of RAID data storage organizations and these different types are often referred to as RAID "levels 0, 1, 2 ... .
  • RAID level 0 data organization for example, the data of a user file is "striped", that is, blocks of user data are spread across multiple disks to improve performance.
  • there is generally no redundancy provided for recovery of data should one of the drives fail in a RAID level 0 organization of data.
  • a RAID level 3 organization of data is similar to RAID level 0 but one disk is typically reserved to store error correction data, often referred to as "parity data.” This parity data may be used to reconstruct lost user data should one of the drives fail.
  • parity data is provided for each stripe of data across the array of disk drives and no particular disk drive is dedicated to storing the parity data. Instead, blocks of parity data for the stripes of user data are distributed throughout all the disks of the array, to further improve performance.
  • a stripe of data includes four blocks of data and one block of parity data
  • the lost block can be reconstructed using the surviving four blocks of the stripe.
  • FIG. 1 illustrates one example of prior art logical operations which may be performed to rebuild lost data. If a stripe n of data has four blocks of data and one block of parity data, and data of one block from stripe n is lost, the lost data can be reconstructed using a sub-block of good data from the three good blocks of data and a sub- block of good parity data from the good parity block of stripe n. Thus, in the example of FIG. 1, an Exclusive-OR function is performed on a first sub-block 30 of good data from one good block of data from stripe n, and a second sub-block 32 of good data from a second good block of data from stripe n.
  • the result of the Exclusive-OR logical operation can be Exclusive-OR'ed with another sub-block 33 of good data from a third good block of data from stripe n.
  • the result of that Exclusive-OR logical operation can be Exclusive- OR'ed with a sub-block 34 of good parity data from the good parity block from stripe n, to reconstruct a sub-block 36 of data to replace the lost sub-block of data. If an entire block of data is lost from a stripe, the entire block can be reconstructed repeating the operations of FIG. 1 for each sub-block of the block.
  • FIG. 2 shows an example of a prior art logic engine 50 of a RAID storage processor for reconstructing lost data of RAID storage units in accordance with the logic functions of FIG. 1.
  • the logic engine 50 has a store queue 52 which can perform an Exclusive-OR logical function on the contents of the store queue 52 as represented by an arrow 54, and the data being presented at its input as represented by an arrow 56.
  • the Intel 80303 integrated circuit chip has a similar logic engine referred to as an Application Accelerator Unit (AAU).
  • AAU Application Accelerator Unit
  • a block of good data may be read (process block 62) in a first read operation 63 (FIG. 2) from a stripe n of a disk drive 64a of a RAID array 66 to a local memory 68 of a storage processor or controller.
  • Another block of good data may be read (process block 62) in a second read operation 70 from the stripe n of a disk drive 64b of the RAID array 66 to the local memory 68 of a storage processor or controller.
  • a third block of good data may be read (process block 62) in a third read operation 72 from the stripe n of a disk drive 64c of the RAID array 66 to the local memory 68.
  • a block of good parity data may be read (process block 62) in a fourth read operation 74 from the stripe n of a disk drive 64e of the RAID array 66 to the local memory 68. [0008] Once all of the good blocks of data and parity data have been read (process block 80) from the stripe, a sub-block of the data read from the disk drive 64a may be read
  • This data may be for example, the sub-block of data 30 of FIG. 1. Since the store queue 52 was previously reset, the data 30 which originated from the drive 64a may be stored in the store queue 52 by performing an Exclusive-OR function with the data 30 read from the local memory 68 and the reset contents of the store queue 52.
  • the size of the read operations from the local memory 68 to the logic engine 50 will typically depend upon the capacity of the store queue 52. Thus, if, for example, the capacity of the store queue 52 is IK bytes, the read operation 84 will continue until the store queue 52 is filled with IK bytes of the data 30.
  • a sub-block of the next block of data from the stripe n that is, a sub-block of the block of data read from the disk drive 64b may be read (process block 86) from the local memory 68 in a portion of sixth read operation 90.
  • This data may be for example, the sub-block 32 of data of FIG. 1.
  • the sub-block 32 of data from the block of data read from the drive 64b is Exclusive-OR'ed (process block 88) with the sub-block 30 of data previously stored in the store queue 52, and stored as an intermediate result in the store queue 52 .
  • a sub-block 33 (FIG.
  • a sub-block of the block of data read from the disk drive 64c may be read (process block 86) from the local memory 68 in a portion of seventh read operation 92.
  • the sub-block 33 of data from the block of data read from the drive 64c is Exclusive-ORed (process block 88) with the contents of the store queue 52, and stored as an intermediate result in the store queue 52 .
  • a sub-block 34 (FIG. 1) of the parity data block of data from the stripe n that is, the sub-block of the block of data read from the disk drive 64e may be read (process block 86) from the local memory 68 in a portion of an eighth read operation 94.
  • the sub- block 34 of parity data from the parity block of read from the drive 64e is Exclusive- OR'ed (process block 88) with the contents of the store queue 52, and stored as an intennediate result in the store queue 52 .
  • the intermediate result stored in the store queue 52 is the rebuilt sub-block 36 of stripe n which may be written (process block 96) to the local memory 68 in a portion of a write operation 96 to be written to the disk drive 64d in a subsequent write operation 97 to replace the lost sub- block.
  • the process of FIG. 3 may be repeated for each sub-block of the blocks of the stripe n until all the sub-blocks have been received (process block 98) and processed by the logic engine 50 wherein an entire block of the stripe n may be reconstructed, if needed.
  • FIG. 1 illustrates a prior art reconstruction of RAID data
  • FIG. 2 illustrates a prior art logic engine for reconstruction of RAID data
  • FIG. 3 illustrates prior art operations to reconstruct data using the prior art logic engine of FIG. 2
  • FIG.4 illustrates one embodiment of a computing environment in which data construction aspects are implemented
  • FIG. 5 illustrates one embodiment of a storage processor environment in which data construction aspects are implemented
  • FIG. 6 illustrates one embodiment of a logic engine for the storage processor of FIG. 5 in accordance with data construction aspects
  • FIG. 7 illustrates one embodiment of operations performed to reconstruct data
  • FIG. 8 illustrates blocks of data being used to reconstruct a block of data
  • FIG. 1 illustrates a prior art reconstruction of RAID data
  • FIG. 2 illustrates a prior art logic engine for reconstruction of RAID data
  • FIG. 3 illustrates prior art operations to reconstruct data using the prior art logic engine of FIG. 2
  • FIG.4 illustrates one embodiment of a computing environment in which data construction aspects are implemented
  • FIG. 5 illustrates one embodiment of a storage
  • FIG. 9 illustrates another embodiment of operations performed to reconstruct data
  • FIG. 10 illustrates another embodiment of operations performed to construct parity data
  • FIG. 11 illustrates an architecture that may be used with the described embodiments.
  • FIG. 4 illustrates a computing environment in which data construction aspects may be implemented.
  • a computer 102 includes one or more central processing units (CPU) 104 (only one is shown), a memory 106, non- volatile storage 108, a storage processor 109, an operating system 110, and a network adapter 112.
  • An application program 114 further executes in memory 106 and is capable of reading data from and writing data to the storage 108.
  • the computer 102 may comprise any computing device known in the art, such as a mainframe, server, personal computer, workstation, laptop, handheld computer, telephony device, network appliance, virtualization device, storage processor, storage controller, etc. Any CPU 104 and operating system 110 known in the art may be used. Programs and data in memory 106 may be swapped into storage 108 as part of memory management operations.
  • the computer 102 can communicate with a network 118 through the network adapter 112.
  • a device driver 120 executes in memory 106 and includes storage processor specific commands to communicate with the storage processor 109 and interface between the operating system 110 and the storage processor 109.
  • the storage 108 includes a plurality of storage units, that is, disk drives 150a, 150b ... 150n, for example, in which data may be stored in an organization type which permits the reconstruction of data.
  • the disk drives 150a, 150b ... 150n are organized in a RAID array 151.
  • the storage processor 109 performs certain functions to assist the computer 102 in reading data from or writing data to the storage 108.
  • the storage processor 109 may have software, firmware or hardware or combinations of these to translate LB A addresses from the computer 102 to cylinder, head and sector specifications of the disk drives 150a, 150b ... 150n.
  • the storage processor 109 includes a data construction manager 130 which manages the reconstruction of data in the event of drive failure or other data loss.
  • the construction manager 130 can manage the construction of new parity data when updating old data with new data.
  • FIG. 5 An example of a suitable storage processor 109 is illustrated in FIG. 5. The storage processor 109 facilitates rapid movement of large amounts of data between the host computer 102 and the storage 108.
  • the storage processor 109 includes a bridge 160 between a primary bus 162 of the host computer 102 and a secondary bus 164 coupled to a storage controller 166 of the storage 108.
  • the bridge 160 permits the storage controller 166 which may be a Serial- Advanced Technology Attachment (SAT A) controller for example, to be physically isolated from the primary bus 162.
  • the controller 166 may also convert computer information to the storage interface which connects the storage processor 109 to the storage 108.
  • the storage controller 166 is shown as part of the storage processor 109, the storage controller 166 may be part of the storage 108 or a separate unit.
  • a primary address translation unit 168 provides a high throughput data path from the primary bus 162 to a processor unit 170 and a local memory 172 via a local bus 174. Also coupled to the local bus 174 is a logic engine 176 which provides Exclusive- OR calculations to generate parity blocks for RAID algorithms.
  • a secondary address translation unit 178 provides a high throughput data path from the processor unit 170 and local memory 172 to the secondary bus 164.
  • the busses 162, 164 are PCI busses but other types of peripheral busses may be used as well.
  • the local memory 172 has a memory controller 180.
  • the local memory 172 is volatile RAM type memory and is used to cache data being transferred to or received from the disk drives 150a, 150b ... 150e.
  • Other types of memory may be used as well.
  • non- volatile flash memory may be used to store recovery information identifying incomplete stripes in the event of an unexpected shut down of the storage processor 109 or the storage 108 during data transfer.
  • Direct Memory Access (DMA) controllers 182, 184 permit direct memory transfers from the host computer 102 to the local memory 172 and from the local memory 172 to the drives 150a ... 150n.
  • DMA Direct Memory Access
  • the construction manager 130 includes a logic engine 176 of a storage processor 109 which can, in some applications, significantly facilitate efficient reconstruction of lost data or construction of new parity data in a data update.
  • the number of read operations to reconstruct a block of data for a stripe having five blocks of data including a parity block can be reduced to four read operations.
  • the number of write operations to store the reconstructed block can be reduced from two write operations to one write operation.
  • FIG. 6 shows in schematic form, one example of the logic engine 176 which includes a store queue 200.
  • the store queue 200 can perform an Exclusive-OR logical function on the contents of the store queue 200 as represented by an arrow 202 and the data being presented at its input as represented by an arrow 204.
  • data may be read directly from one of the disk drives 150a, 150b ... 150n and processed in the logic engine 176 in one read operation without first being cached in the local memory 172.
  • the store queue 200 can accommodate a full block of data at a time. As explained in greater detail, one or more of these and other features can facilitate data construction including data reconstruction.
  • the logic engine 176 is shown comprising a store queue. Other types of circuits may be used including registers and other types of logic and memory.
  • FIG. 7 illustrates one example of operations of the data construction manager 130 which includes the processor unit 170 and logic engine 176, in the reconstruction of data.
  • a stripe n (FIG. 8) of data comprising five blocks of data including one parity block, is stored across five disk drives 150a, 150b, 150c, 150d and 150e, respectively, in which each block of data of the stripe is stored on one of the disk drives 150a, 150b ... 150e.
  • one of the disk drives 150a, 150b ... 150e, in this example, disk drive 150d has failed such that the blocks of data of each stripe have been lost or otherwise corrupted and need to be reconstructed.
  • read operations may be initiated (process block 286) for all the blocks of a particular stripe.
  • all the blocks or subblocks may be read from the storage 108 and processed as described below in parallel.
  • read commands can be issued by the storage processor 109 to all the disk drives 150a, 150b ... 150e at the same time to read the corresponding blocks of a stripe.
  • a block (or subblock) is received (process block 292) from one of the disk drives disk drives 150a, 150b ... 150e in response to the read commands issued to the disk drives, the block may be stored in the store queue 200 (FIG. 6).
  • This data may be for example, block 1 of a stripe n of data as shown in FIG. 8 if the disk drive containing block 1 is the first to respond to the issued read commands. Since the store queue 200 was previously reset, the block 1 of data which was read from the drive 150a, for example, may be stored in the store queue 200 by performing an Exclusive-OR function (block 296) with the block 1 data read from the drive 150a and the reset contents of the store queue 200.
  • the capacity of the store queue 200 is sufficient to accommodate a full block of data from a disk drive stripe.
  • the capacity of the store queue 200 is 64 K bytes
  • the read operation for each block can continue until the store queue 200 is filled with the entire 64 K bytes of the block 1 data. It is appreciated that the size the store queue 200 can vary, depending upon the application.
  • process block 292 In response to the read commands previously issued (process block 286), another block of data from the stripe n, such as block 2 (FIG. 8), can be received (process block 292).
  • the block 2 of data from the drive 150b is Exclusive-OR'ed (process block 296) with the block 1 of data previously stored in the store queue 200, and stored as an intermediate result in the store queue 200 .
  • process block 292 In response to the read commands previously issued (process block 286), another block of data from the stripe n, such as block 3 (FIG. 8), can be received (process block 292).
  • the block 3 of data from the drive 150c is Exclusive-OR'ed (process block 296) with the contents of the store queue 200, and stored as an intermediate result in the store queue 200 .
  • process block 292 In response to the read commands previously issued (process block 286), another block of data from the stripe n, such as block 5 (FIG. 8), can be received (process block 292).
  • the block 5 of (parity) data from the drive 150e is Exclusive-OR'ed (process block 296) with the contents of the store queue 200, and stored as an interaiediate result in the store queue 200 .
  • the intermediate result stored in the store queue 200 is the rebuilt block 4 (FIG. 8) of stripe n which may be written (process block 304) to the disk drive 150d in a first write operation 306 to replace the lost block 4 of the stripe n.
  • the process of FIG. 7 may be repeated for each for each stripe of the array
  • process block 292 of FIG. 7 refers to reception of a "block,” it should be appreciated that the subblocks of a block of the stripe n need not be received and processed together. Instead, subblocks may be received at different times and Exclusive- OR' with the contents of the store queue 200 as received. Hence, the subblocks of each block of the stripe n may be intermingled with the subblocks of other blocks of the stripe N as they are received and processed by the store queue 200.
  • the storage processor 109 can issue read commands to each of the disk drives 150a, 150b ...
  • the disk drives can respond with the requested data at the same time such that the subblocks of the various blocks of the stripe n can be intermingled together as they transfer over the bus 164 from the disk drives to the storage processor 109 and the store queue 200.
  • FIG. 9 illustrates another embodiment of operations of the construction manager 130 in which reconstructed data may be written directly from the store queue 200 to the host 102 such as to the host memory 106 in a degraded data read operation.
  • the construction manager 130 includes a DMA function in the storage processor 109 which permits a direct memory transfer of the reconstructed data from the store queue 200 to the host memory 106, for example, in a DMA write operation 350.
  • the DMA controller may be for example, the DMA controller 182 of FIG. 5 or may be implemented within the circuitry of the logic engine 176 or elsewhere, depending upon the application.
  • FIG. 10 illustrates another embodiment of operations of the construction manager 130 in which new parity data is constructed to replace old parity data when updating old data with new data.
  • a block of the new data for a stripe n may be read from the host 102 and stored in the store queue 200 in a first read operation 400. This data transfer may be accomplished as a DMA transfer in one embodiment as discussed above.
  • the new data may be also be transferred from the store queue 200 to the local memory 172 in a first write operation 402.
  • the old data may be transferred from a disk drive such as the disk drive 150a in second read operation 404.
  • the block of old data from the drive 150a is Exclusive-OR'ed with the block of new data previously stored in the store queue 200, and stored as an intermediate result in the store queue 200 .
  • the next block that is, the block of old parity data of the stripe n, may be read from a disk drive such as the disk drive 150b in a third read operation 406.
  • the block of old parity data from the drive 150b is Exclusive-OR'ed with the contents of the store queue 200, and stored as an intermediate result in the store queue 200 .
  • the intermediate result stored in the store queue 200 is the block of new parity data for the stripe n which may be written to the disk drive 150b in a second write operation 408 to replace the old parity data for the stripe n.
  • the new data may be written from the local memory 172 to the disk drive 150a to replace the old data in a third write operation 410. It is appreciated that the number of read and write operations in a data update operation can be significantly reduced as described above.
  • all the blocks or subblocks may be read from the storage 108 and the host memory 106 and processed in parallel.
  • read commands can be issued by the storage processor 109 to the host memory and to all the disk drives 150a, 150b ... 150e at the same time to read the corresponding blocks of a stripe.
  • the described techniques for managing data construction may be implemented as a method, apparatus or article of manufacture using standard programming and or engineering techniques to produce software, firmware, hardware, or any combination thereof.
  • article of manufacture refers to code or logic implemented in hardware logic (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.) or a computer readable medium, such as magnetic storage medium (e.g., hard disk drives, floppy disks,, tape, etc.), optical storage (CD-ROMs, optical disks, etc.), volatile and non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, firmware, programmable logic, etc.).
  • Code in the computer readable medium is accessed and executed by a processor.
  • the code in which preferred embodiments are implemented may further be accessible through a transmission media or from a file server over a network.
  • the article of manufacture in which the code is implemented may comprise a transmission media, such as a network transmission line, wireless transmission media, signals propagating through space, radio waves, infrared signals, etc.
  • the "article of manufacture” may comprise the medium in which the code is embodied.
  • article of manufacture may comprise a combination of hardware and software components in which the code is embodied, processed, and executed. Of course, those skilled in the art will recognize that many modifications may be made to this configuration, and that the article of manufacture may comprise any information bearing medium known in the art.
  • the logic engine is described as having one store queue or register for performing Exclusive-OR operations, it is appreciated that the logic engine may have a plurality of store queues or registers, particularly for data organizations having plural parity blocks, as described in copending application entitled, "METHOD, SYSTEM, AND PROGRAM FOR GENERATING PARITY DATA" assigned to the assignee of the present application, filed December 29,2003, and attorney docket No. P17729.
  • the storage processor 109 includes data construction manager 130 which manages the construction and reconstruction of data.
  • the storage processor 109 may have software, firmware or hardware or combinations of these to perform these and other functions.
  • the processor 170 and the logic engine 176 may be implemented in hardware in a storage processor 109 separate from the host processor.
  • the data construction manager may be implemented in host software including drivers, an operating system or an application, or combinations of these.
  • a computer system may include a driver and a storage controller, such as Serial- Advanced Technology Attachment (SAT A), Serial IP (SAT A), Serial- Advanced Technology Attachment
  • SAS Attached SCSI
  • RAID Redundant Array of Independent Disk
  • controller that manages access to a non- volatile storage device, such as a magnetic disk drive, tape media, optical disk, etc.
  • a non- volatile storage device such as a magnetic disk drive, tape media, optical disk, etc.
  • the storage controller embodiments may be included in a system that does not include a driver.
  • Further details on the SAS architecture for devices and expanders is described in the technology specification "Information Technology - Serial Attached SCSI (SAS)", reference no. ISO/EEC 14776- 150:200x and ANSI ⁇ NCITS.***:200x PHY layer (July 9, 2003), published by ANSI. Details on the SATA architecture are described in the technology specification "Serial ATA: High Speed Serialized AT Attachment” Rev.
  • the logic engine is described as receiving and processing a full block of data, it is appreciated that a portion of a block or multiple blocks may be received and processed at a time.
  • the logic engine is described as receiving data directly from a non-volatile storage unit such as a disk drive, it is appreciated that in some embodiments, data can be transferred to the logic engine from volatile memory such as RAM memory.
  • the device driver and storage processor embodiments may be implemented in a computer system including a video controller to render information to display on a monitor coupled to the computer system including the device driver and network adapter, such as a computer system comprising a desktop, workstation, server, mainframe, laptop, handheld computer, etc.
  • the storage processor and device driver embodiments may be implemented in a computing device that does not include a video controller.
  • the network adapter may be configured to transmit data across a cable connected to a port on the network adapter.
  • the network adapter embodiments may be configured to transmit data over a wireless network or connection, such as wireless LAN, Bluetooth, etc.
  • FIG. 11 illustrates one implementation of a computer architecture 500 of the network components, such as the hosts and storage devices shown in FIG. 4.
  • the architecture 500 may include a processor 502 (e.g., a microprocessor), a memory 504 (e.g., a volatile memory device), and storage 506 (e.g., a non-volatile storage, such as magnetic disk drives, optical disk drives, a tape drive, etc.).
  • the storage 506 may comprise an internal storage device or an attached or network accessible storage. Programs in the storage 506 are loaded into the memory 504 and executed by the processor 502 in a manner known in the art.
  • a storage processor 507 can control the storage 506.
  • the architecture further includes a network adapter 508 to enable communication with a network, such as an Ethernet, a Fibre Channel Arbitrated Loop, etc. Details on the Fibre Channel architecture are described in the technology specification "Fibre Channel Framing and Signaling Interface", document no. ISO/IEC AWI 14165-25. [00047] Further, the architecture may, in certain embodiments, include a video controller 509 to render information on a display monitor, where the video controller 509 may be implemented on a video card or integrated on integrated circuit components mounted on the motherboard. As discussed, certain of the network devices may have multiple storage cards or controllers.
  • An input device 510 is used to provide user input to the processor 502, and may include a keyboard, mouse, pen-stylus, microphone, touch sensitive display screen, or any other activation or input mechanism known in the art.
  • An output device 512 is capable of rendering information transmitted from the processor 502, or other component, such as a display monitor, printer, storage, etc.
  • the storage processor 506 and the network adapter 508 may each be implemented on cards, such as a Peripheral Component Interconnect (PCI) card or some other I/O card, or on integrated circuit components mounted on the motherboard. Details on the PCI architecture are described in "PCI Local Bus, Rev. 2.3", published by the PCI- SIG.

Abstract

Provided are a method, system, and program for constructing data including reconstructing data organized in a data organization type, such as a Redundant Array of Independent Disks (RAID) organization, for example, which permits data reconstruction. In one embodiment, blocks of data are transferred from a stripe of data stored across storage units, such as disk drives in a RAID array, to a logic engine of a storage processor, bypassing the cache memory of the storage processor. A store queue performs a logic function, such as Exclusive-OR, on each block of data as it is transferred from the disk drives, to reconstruct a block of data from the stripe. The constructed block of data may be subsequently transferred to a disk drive of the RAID array to replace a lost block of data in the stripe of data across the RAID array or to replace an old block of parity data.

Description

METHOD, SYSTEM, AND PROGRAM FOR MANAGING DATA ORGANIZATION
BACKGROUND
Field [0001] Embodiments relate to a method, system, and program for managing data in a system of data organization, such as a RAID system. Description of the Related Art
[0002] Various techniques have been proposed for organizing data stored in data storage devices such as disk drives. One such data storage organization is referred to as Redundant Array of Independent (or Inexpensive) Disks or (RAID). In a RAID organization, two or more disk drives are employed in combination to improve fault tolerance or performance, or both. There are different types of RAID data storage organizations and these different types are often referred to as RAID "levels 0, 1, 2 ... . [0003] In a RAID level 0 data organization, for example, the data of a user file is "striped", that is, blocks of user data are spread across multiple disks to improve performance. However, there is generally no redundancy provided for recovery of data should one of the drives fail in a RAID level 0 organization of data. A RAID level 3 organization of data is similar to RAID level 0 but one disk is typically reserved to store error correction data, often referred to as "parity data." This parity data may be used to reconstruct lost user data should one of the drives fail. In a RAID level 5 data organization, parity data is provided for each stripe of data across the array of disk drives and no particular disk drive is dedicated to storing the parity data. Instead, blocks of parity data for the stripes of user data are distributed throughout all the disks of the array, to further improve performance. [0004] In one RAID-5 organization, there is one block of parity data for each stripe of data across the array of disk drives. Such an arrangement provides ready reconstruction of data should one drive fail. For example, if a stripe of data includes four blocks of data and one block of parity data, if one of the blocks of the stripe becomes lost due to drive failure, data corruption or other types of failures, the lost block can be reconstructed using the surviving four blocks of the stripe.
[0005] FIG. 1 illustrates one example of prior art logical operations which may be performed to rebuild lost data. If a stripe n of data has four blocks of data and one block of parity data, and data of one block from stripe n is lost, the lost data can be reconstructed using a sub-block of good data from the three good blocks of data and a sub- block of good parity data from the good parity block of stripe n. Thus, in the example of FIG. 1, an Exclusive-OR function is performed on a first sub-block 30 of good data from one good block of data from stripe n, and a second sub-block 32 of good data from a second good block of data from stripe n. The result of the Exclusive-OR logical operation can be Exclusive-OR'ed with another sub-block 33 of good data from a third good block of data from stripe n. The result of that Exclusive-OR logical operation can be Exclusive- OR'ed with a sub-block 34 of good parity data from the good parity block from stripe n, to reconstruct a sub-block 36 of data to replace the lost sub-block of data. If an entire block of data is lost from a stripe, the entire block can be reconstructed repeating the operations of FIG. 1 for each sub-block of the block.
[0006] FIG. 2 shows an example of a prior art logic engine 50 of a RAID storage processor for reconstructing lost data of RAID storage units in accordance with the logic functions of FIG. 1. The logic engine 50 has a store queue 52 which can perform an Exclusive-OR logical function on the contents of the store queue 52 as represented by an arrow 54, and the data being presented at its input as represented by an arrow 56. The Intel 80303 integrated circuit chip has a similar logic engine referred to as an Application Accelerator Unit (AAU). [0007] Operations of reading data and processing the read data using the logic engine 50 in reconstructing data is represented in FIG. 3. Upon resetting (process block 60) the store queue 52, a block of good data may be read (process block 62) in a first read operation 63 (FIG. 2) from a stripe n of a disk drive 64a of a RAID array 66 to a local memory 68 of a storage processor or controller. Another block of good data may be read (process block 62) in a second read operation 70 from the stripe n of a disk drive 64b of the RAID array 66 to the local memory 68 of a storage processor or controller. A third block of good data may be read (process block 62) in a third read operation 72 from the stripe n of a disk drive 64c of the RAID array 66 to the local memory 68. A block of good parity data may be read (process block 62) in a fourth read operation 74 from the stripe n of a disk drive 64e of the RAID array 66 to the local memory 68. [0008] Once all of the good blocks of data and parity data have been read (process block 80) from the stripe, a sub-block of the data read from the disk drive 64a may be read
(process block 82) from the local memory 68 in a portion of a fifth read operation 84 and stored in the store queue 52. This data may be for example, the sub-block of data 30 of FIG. 1. Since the store queue 52 was previously reset, the data 30 which originated from the drive 64a may be stored in the store queue 52 by performing an Exclusive-OR function with the data 30 read from the local memory 68 and the reset contents of the store queue 52. The size of the read operations from the local memory 68 to the logic engine 50 will typically depend upon the capacity of the store queue 52. Thus, if, for example, the capacity of the store queue 52 is IK bytes, the read operation 84 will continue until the store queue 52 is filled with IK bytes of the data 30.
[0009] A sub-block of the next block of data from the stripe n, that is, a sub-block of the block of data read from the disk drive 64b may be read (process block 86) from the local memory 68 in a portion of sixth read operation 90. This data may be for example, the sub-block 32 of data of FIG. 1. The sub-block 32 of data from the block of data read from the drive 64b is Exclusive-OR'ed (process block 88) with the sub-block 30 of data previously stored in the store queue 52, and stored as an intermediate result in the store queue 52 . [00010] A sub-block 33 (FIG. 1) of the next block of data from the stripe n, that is, a sub-block of the block of data read from the disk drive 64c may be read (process block 86) from the local memory 68 in a portion of seventh read operation 92. The sub-block 33 of data from the block of data read from the drive 64c is Exclusive-ORed (process block 88) with the contents of the store queue 52, and stored as an intermediate result in the store queue 52 .
[00011] A sub-block 34 (FIG. 1) of the parity data block of data from the stripe n, that is, the sub-block of the block of data read from the disk drive 64e may be read (process block 86) from the local memory 68 in a portion of an eighth read operation 94. The sub- block 34 of parity data from the parity block of read from the drive 64e is Exclusive- OR'ed (process block 88) with the contents of the store queue 52, and stored as an intennediate result in the store queue 52 .
[00012] Once all of the corresponding sub-blocks of the good blocks of data and parity of the stripe n have been received and processed (process block 95), the intermediate result stored in the store queue 52 is the rebuilt sub-block 36 of stripe n which may be written (process block 96) to the local memory 68 in a portion of a write operation 96 to be written to the disk drive 64d in a subsequent write operation 97 to replace the lost sub- block. [00013] The process of FIG. 3 may be repeated for each sub-block of the blocks of the stripe n until all the sub-blocks have been received (process block 98) and processed by the logic engine 50 wherein an entire block of the stripe n may be reconstructed, if needed. Moreover, if all of the data of the drive 64d, for example has been lost, the process may be repeated for each stripe of the array 66 of the disk drives until every block of the damaged disk drive 64d has been reconstructed. The process of constructing new parity data when updating old data with new data in a RAID type data organization is similar. [00014] Notwithstanding, there is a continued need in the art to improve the perfonnance of processors in data storage organization.
BRIEF DESCRIPTION OF THE DRAWINGS
[00015] Referring now to the drawings in which like reference numbers represent corresponding parts throughout: FIG. 1 illustrates a prior art reconstruction of RAID data; FIG. 2 illustrates a prior art logic engine for reconstruction of RAID data; FIG. 3 illustrates prior art operations to reconstruct data using the prior art logic engine of FIG. 2; FIG.4 illustrates one embodiment of a computing environment in which data construction aspects are implemented; FIG. 5 illustrates one embodiment of a storage processor environment in which data construction aspects are implemented; FIG. 6 illustrates one embodiment of a logic engine for the storage processor of FIG. 5 in accordance with data construction aspects; FIG. 7 illustrates one embodiment of operations performed to reconstruct data; FIG. 8 illustrates blocks of data being used to reconstruct a block of data; FIG. 9 illustrates another embodiment of operations performed to reconstruct data; FIG. 10 illustrates another embodiment of operations performed to construct parity data; and FIG. 11 illustrates an architecture that may be used with the described embodiments. DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENTS [00016] In the following description, reference is made to the accompanying drawings which form a part hereof and which illustrate several embodimentss. It is understood that other embodiments may be utilized and structural and operational changes may be made.
[00017] FIG. 4 illustrates a computing environment in which data construction aspects may be implemented. A computer 102 includes one or more central processing units (CPU) 104 (only one is shown), a memory 106, non- volatile storage 108, a storage processor 109, an operating system 110, and a network adapter 112. An application program 114 further executes in memory 106 and is capable of reading data from and writing data to the storage 108. The computer 102 may comprise any computing device known in the art, such as a mainframe, server, personal computer, workstation, laptop, handheld computer, telephony device, network appliance, virtualization device, storage processor, storage controller, etc. Any CPU 104 and operating system 110 known in the art may be used. Programs and data in memory 106 may be swapped into storage 108 as part of memory management operations. The computer 102 can communicate with a network 118 through the network adapter 112.
[00018] A device driver 120 executes in memory 106 and includes storage processor specific commands to communicate with the storage processor 109 and interface between the operating system 110 and the storage processor 109. The storage 108 includes a plurality of storage units, that is, disk drives 150a, 150b ... 150n, for example, in which data may be stored in an organization type which permits the reconstruction of data. In the illustrated embodiment, the disk drives 150a, 150b ... 150n are organized in a RAID array 151. [00019] In certain implementations, the storage processor 109 performs certain functions to assist the computer 102 in reading data from or writing data to the storage 108. For example, the storage processor 109 may have software, firmware or hardware or combinations of these to translate LB A addresses from the computer 102 to cylinder, head and sector specifications of the disk drives 150a, 150b ... 150n. In addition, the storage processor 109 includes a data construction manager 130 which manages the reconstruction of data in the event of drive failure or other data loss. In addition, the construction manager 130 can manage the construction of new parity data when updating old data with new data. [00020] An example of a suitable storage processor 109 is illustrated in FIG. 5. The storage processor 109 facilitates rapid movement of large amounts of data between the host computer 102 and the storage 108. The storage processor 109 includes a bridge 160 between a primary bus 162 of the host computer 102 and a secondary bus 164 coupled to a storage controller 166 of the storage 108. The bridge 160 permits the storage controller 166 which may be a Serial- Advanced Technology Attachment (SAT A) controller for example, to be physically isolated from the primary bus 162. The controller 166 may also convert computer information to the storage interface which connects the storage processor 109 to the storage 108. Although the storage controller 166 is shown as part of the storage processor 109, the storage controller 166 may be part of the storage 108 or a separate unit.
[00021 ] A primary address translation unit 168 provides a high throughput data path from the primary bus 162 to a processor unit 170 and a local memory 172 via a local bus 174. Also coupled to the local bus 174 is a logic engine 176 which provides Exclusive- OR calculations to generate parity blocks for RAID algorithms. A secondary address translation unit 178 provides a high throughput data path from the processor unit 170 and local memory 172 to the secondary bus 164. In the illustrated embodiment, the busses 162, 164 are PCI busses but other types of peripheral busses may be used as well. [00022] The local memory 172 has a memory controller 180. In the illustrated embodiment, the local memory 172 is volatile RAM type memory and is used to cache data being transferred to or received from the disk drives 150a, 150b ... 150e. Other types of memory may be used as well. For example, non- volatile flash memory may be used to store recovery information identifying incomplete stripes in the event of an unexpected shut down of the storage processor 109 or the storage 108 during data transfer. Direct Memory Access (DMA) controllers 182, 184 permit direct memory transfers from the host computer 102 to the local memory 172 and from the local memory 172 to the drives 150a ... 150n.
[00023] As previously mentioned, some RAID data reconstruction processes utilize at least eight read operations to reconstruct a block of data for a stripe having five blocks of data including a parity block. In accordance with one aspect of the illustrated embodiments, the construction manager 130 includes a logic engine 176 of a storage processor 109 which can, in some applications, significantly facilitate efficient reconstruction of lost data or construction of new parity data in a data update. For example, in one application, the number of read operations to reconstruct a block of data for a stripe having five blocks of data including a parity block, can be reduced to four read operations. Still further, the number of write operations to store the reconstructed block can be reduced from two write operations to one write operation. [00024] FIG. 6 shows in schematic form, one example of the logic engine 176 which includes a store queue 200. The store queue 200 can perform an Exclusive-OR logical function on the contents of the store queue 200 as represented by an arrow 202 and the data being presented at its input as represented by an arrow 204. In accordance with one aspect of the illustrated embodiments, data may be read directly from one of the disk drives 150a, 150b ... 150n and processed in the logic engine 176 in one read operation without first being cached in the local memory 172. In accordance with another aspect of the illustrated embodiment, the store queue 200 can accommodate a full block of data at a time. As explained in greater detail, one or more of these and other features can facilitate data construction including data reconstruction. [00025] In the illustrated embodiment, the logic engine 176 is shown comprising a store queue. Other types of circuits may be used including registers and other types of logic and memory.
[00026] FIG. 7 illustrates one example of operations of the data construction manager 130 which includes the processor unit 170 and logic engine 176, in the reconstruction of data. In this example, a stripe n (FIG. 8) of data comprising five blocks of data including one parity block, is stored across five disk drives 150a, 150b, 150c, 150d and 150e, respectively, in which each block of data of the stripe is stored on one of the disk drives 150a, 150b ... 150e. Also, one of the disk drives 150a, 150b ... 150e, in this example, disk drive 150d, has failed such that the blocks of data of each stripe have been lost or otherwise corrupted and need to be reconstructed.
[00027] Upon resetting (process block 260) the store queue 200, read operations may be initiated (process block 286) for all the blocks of a particular stripe. In accordance with one aspect, all the blocks or subblocks may be read from the storage 108 and processed as described below in parallel. Thus, read commands can be issued by the storage processor 109 to all the disk drives 150a, 150b ... 150e at the same time to read the corresponding blocks of a stripe. Once a block (or subblock) is received (process block 292) from one of the disk drives disk drives 150a, 150b ... 150e in response to the read commands issued to the disk drives, the block may be stored in the store queue 200 (FIG. 6). This data may be for example, block 1 of a stripe n of data as shown in FIG. 8 if the disk drive containing block 1 is the first to respond to the issued read commands. Since the store queue 200 was previously reset, the block 1 of data which was read from the drive 150a, for example, may be stored in the store queue 200 by performing an Exclusive-OR function (block 296) with the block 1 data read from the drive 150a and the reset contents of the store queue 200. In the illustrated embodiment, the capacity of the store queue 200 is sufficient to accommodate a full block of data from a disk drive stripe. Thus, if, for example, the capacity of the store queue 200 is 64 K bytes, the read operation for each block can continue until the store queue 200 is filled with the entire 64 K bytes of the block 1 data. It is appreciated that the size the store queue 200 can vary, depending upon the application.
[00028] In response to the read commands previously issued (process block 286), another block of data from the stripe n, such as block 2 (FIG. 8), can be received (process block 292). The block 2 of data from the drive 150b is Exclusive-OR'ed (process block 296) with the block 1 of data previously stored in the store queue 200, and stored as an intermediate result in the store queue 200 .
[00029] In response to the read commands previously issued (process block 286), another block of data from the stripe n, such as block 3 (FIG. 8), can be received (process block 292). The block 3 of data from the drive 150c is Exclusive-OR'ed (process block 296) with the contents of the store queue 200, and stored as an intermediate result in the store queue 200 .
[00030] In response to the read commands previously issued (process block 286), another block of data from the stripe n, such as block 5 (FIG. 8), can be received (process block 292). The block 5 of (parity) data from the drive 150e is Exclusive-OR'ed (process block 296) with the contents of the store queue 200, and stored as an interaiediate result in the store queue 200 .
[00031] Once all of the good blocks of data of the stripe n have been received (process block 302) from the disk drives 150a, 150b ... 150e, the intermediate result stored in the store queue 200 is the rebuilt block 4 (FIG. 8) of stripe n which may be written (process block 304) to the disk drive 150d in a first write operation 306 to replace the lost block 4 of the stripe n. The process of FIG. 7 may be repeated for each for each stripe of the array
151 of the disk drives 150a, 150b ... 150e until each damaged block (process block 310) has been reconstructed. [00032] Although process block 292 of FIG. 7 refers to reception of a "block," it should be appreciated that the subblocks of a block of the stripe n need not be received and processed together. Instead, subblocks may be received at different times and Exclusive- OR' with the contents of the store queue 200 as received. Hence, the subblocks of each block of the stripe n may be intermingled with the subblocks of other blocks of the stripe N as they are received and processed by the store queue 200. Thus, the storage processor 109 can issue read commands to each of the disk drives 150a, 150b ... 150e at the same time and the disk drives can respond with the requested data at the same time such that the subblocks of the various blocks of the stripe n can be intermingled together as they transfer over the bus 164 from the disk drives to the storage processor 109 and the store queue 200.
[00033] FIG. 9 illustrates another embodiment of operations of the construction manager 130 in which reconstructed data may be written directly from the store queue 200 to the host 102 such as to the host memory 106 in a degraded data read operation. In this embodiment, the construction manager 130 includes a DMA function in the storage processor 109 which permits a direct memory transfer of the reconstructed data from the store queue 200 to the host memory 106, for example, in a DMA write operation 350. The DMA controller may be for example, the DMA controller 182 of FIG. 5 or may be implemented within the circuitry of the logic engine 176 or elsewhere, depending upon the application.
[00034] FIG. 10 illustrates another embodiment of operations of the construction manager 130 in which new parity data is constructed to replace old parity data when updating old data with new data. Upon resetting the store queue 200, a block of the new data for a stripe n may be read from the host 102 and stored in the store queue 200 in a first read operation 400. This data transfer may be accomplished as a DMA transfer in one embodiment as discussed above. The new data may be also be transferred from the store queue 200 to the local memory 172 in a first write operation 402. The old data may be transferred from a disk drive such as the disk drive 150a in second read operation 404. The block of old data from the drive 150a is Exclusive-OR'ed with the block of new data previously stored in the store queue 200, and stored as an intermediate result in the store queue 200 .
[00035] The next block, that is, the block of old parity data of the stripe n, may be read from a disk drive such as the disk drive 150b in a third read operation 406. The block of old parity data from the drive 150b is Exclusive-OR'ed with the contents of the store queue 200, and stored as an intermediate result in the store queue 200 . [00036] Once the blocks of old data and old parity data of the stripe n and the block of new data for the stripe n have been received from the disk drives 150a, 150b and the host 102, respectively, the intermediate result stored in the store queue 200 is the block of new parity data for the stripe n which may be written to the disk drive 150b in a second write operation 408 to replace the old parity data for the stripe n. In addition, the new data may be written from the local memory 172 to the disk drive 150a to replace the old data in a third write operation 410. It is appreciated that the number of read and write operations in a data update operation can be significantly reduced as described above.
[00037] . Again, in accordance with another aspect, all the blocks or subblocks may be read from the storage 108 and the host memory 106 and processed in parallel. Thus, read commands can be issued by the storage processor 109 to the host memory and to all the disk drives 150a, 150b ... 150e at the same time to read the corresponding blocks of a stripe.
Additional Embodiment Details
[00038] The described techniques for managing data construction may be implemented as a method, apparatus or article of manufacture using standard programming and or engineering techniques to produce software, firmware, hardware, or any combination thereof. The term "article of manufacture" as used herein refers to code or logic implemented in hardware logic (e.g., an integrated circuit chip, Programmable Gate Array (PGA), Application Specific Integrated Circuit (ASIC), etc.) or a computer readable medium, such as magnetic storage medium (e.g., hard disk drives, floppy disks,, tape, etc.), optical storage (CD-ROMs, optical disks, etc.), volatile and non-volatile memory devices (e.g., EEPROMs, ROMs, PROMs, RAMs, DRAMs, SRAMs, firmware, programmable logic, etc.). Code in the computer readable medium is accessed and executed by a processor. The code in which preferred embodiments are implemented may further be accessible through a transmission media or from a file server over a network. In such cases, the article of manufacture in which the code is implemented may comprise a transmission media, such as a network transmission line, wireless transmission media, signals propagating through space, radio waves, infrared signals, etc. Thus, the "article of manufacture" may comprise the medium in which the code is embodied. Additionally, the
"article of manufacture" may comprise a combination of hardware and software components in which the code is embodied, processed, and executed. Of course, those skilled in the art will recognize that many modifications may be made to this configuration, and that the article of manufacture may comprise any information bearing medium known in the art. [00039] Although the logic engine is described as having one store queue or register for performing Exclusive-OR operations, it is appreciated that the logic engine may have a plurality of store queues or registers, particularly for data organizations having plural parity blocks, as described in copending application entitled, "METHOD, SYSTEM, AND PROGRAM FOR GENERATING PARITY DATA" assigned to the assignee of the present application, filed December 29,2003, and attorney docket No. P17729. [00040] In certain implementations, the storage processor 109 includes data construction manager 130 which manages the construction and reconstruction of data. The storage processor 109 may have software, firmware or hardware or combinations of these to perform these and other functions. For example, in one embodiment, the processor 170 and the logic engine 176 may be implemented in hardware in a storage processor 109 separate from the host processor. In other implementations, the data construction manager may be implemented in host software including drivers, an operating system or an application, or combinations of these. [00041] In certain implementations, a computer system may include a driver and a storage controller, such as Serial- Advanced Technology Attachment (SAT A), Serial
Attached SCSI (SAS), Redundant Array of Independent Disk (RAID), etc., controller, that manages access to a non- volatile storage device, such as a magnetic disk drive, tape media, optical disk, etc. In alternative implementations, the storage controller embodiments may be included in a system that does not include a driver. Further details on the SAS architecture for devices and expanders is described in the technology specification "Information Technology - Serial Attached SCSI (SAS)", reference no. ISO/EEC 14776- 150:200x and ANSI ιNCITS.***:200x PHY layer (July 9, 2003), published by ANSI. Details on the SATA architecture are described in the technology specification "Serial ATA: High Speed Serialized AT Attachment" Rev. 1.0A (Jan. 2003). [00042] Although the logic engine is described as receiving and processing a full block of data, it is appreciated that a portion of a block or multiple blocks may be received and processed at a time. In addition, although the logic engine is described as receiving data directly from a non-volatile storage unit such as a disk drive, it is appreciated that in some embodiments, data can be transferred to the logic engine from volatile memory such as RAM memory.
[00043] In certain implementations, the device driver and storage processor embodiments may be implemented in a computer system including a video controller to render information to display on a monitor coupled to the computer system including the device driver and network adapter, such as a computer system comprising a desktop, workstation, server, mainframe, laptop, handheld computer, etc. Alternatively, the storage processor and device driver embodiments may be implemented in a computing device that does not include a video controller. [00044] In certain implementations, the network adapter may be configured to transmit data across a cable connected to a port on the network adapter. Alternatively, the network adapter embodiments may be configured to transmit data over a wireless network or connection, such as wireless LAN, Bluetooth, etc. [00045] The illustrated logic of FIG. 7 shows certain events occurring in a certain order. In alternative embodiments, certain operations may be performed in a different order, modified or removed. Moreover, operations may be added to the above described logic and still conform to the described embodiments. Further, operations described herein may occur sequentially or certain operations may be processed in parallel. Yet further, operations may be performed by a single processing unit or by distributed processing units.
[00046] FIG. 11 illustrates one implementation of a computer architecture 500 of the network components, such as the hosts and storage devices shown in FIG. 4. The architecture 500 may include a processor 502 (e.g., a microprocessor), a memory 504 (e.g., a volatile memory device), and storage 506 (e.g., a non-volatile storage, such as magnetic disk drives, optical disk drives, a tape drive, etc.). The storage 506 may comprise an internal storage device or an attached or network accessible storage. Programs in the storage 506 are loaded into the memory 504 and executed by the processor 502 in a manner known in the art. A storage processor 507 can control the storage 506. The architecture further includes a network adapter 508 to enable communication with a network, such as an Ethernet, a Fibre Channel Arbitrated Loop, etc. Details on the Fibre Channel architecture are described in the technology specification "Fibre Channel Framing and Signaling Interface", document no. ISO/IEC AWI 14165-25. [00047] Further, the architecture may, in certain embodiments, include a video controller 509 to render information on a display monitor, where the video controller 509 may be implemented on a video card or integrated on integrated circuit components mounted on the motherboard. As discussed, certain of the network devices may have multiple storage cards or controllers. An input device 510 is used to provide user input to the processor 502, and may include a keyboard, mouse, pen-stylus, microphone, touch sensitive display screen, or any other activation or input mechanism known in the art. An output device 512 is capable of rendering information transmitted from the processor 502, or other component, such as a display monitor, printer, storage, etc. [00048] The storage processor 506 and the network adapter 508 may each be implemented on cards, such as a Peripheral Component Interconnect (PCI) card or some other I/O card, or on integrated circuit components mounted on the motherboard. Details on the PCI architecture are described in "PCI Local Bus, Rev. 2.3", published by the PCI- SIG. [00049] The foregoing description of various embodiments has been presented for the purposes of illustration and description. The above specification, examples and data provide a complete description of the manufacture and use of the composition. It is not intended to be exhaustive or to limit to the precise form disclosed. Many modifications and variations are possible in light of the above teaching.

Claims

WHAT IS CLAIMED IS:
1. A method, comprising: transferring from a first non- volatile storage unit of a plurality of non- volatile storage units, to a logic engine of a storage processor having a cache memory, a first unit of data stored in a stripe across said plurality of non- volatile storage units, in a first transfer operation which bypasses said cache memory; transferring from a second non- volatile storage unit of said plurality of non- volatile storage units, to said logic engine, a second unit of data stored in said stripe, in a second transfer operation which bypasses said cache memory; and constructing in said logic engine a third unit of data using said first unit of data transferred to said logic engine in said first transfer operation and using said second unit of data transferred to said logic engine in said second transfer operation.
2. The method of claim 1 further comprising transferring said constructed third unit of data to a third non- volatile storage unit of said plurality of non- volatile storage units in a third transfer operation, and storing said constructed third unit of data in said stripe.
3. The method of claim 2 wherein said third transfer operation bypasses said cache memory.
4. The method of claim 2 wherein said plurality of non- volatile storage units are arranged in a Redundant Array of Independent Disks organization.
5. The method of claim 4 wherein said second unit of data is parity data.
6. The method of claim 5 wherein each non- volatile storage unit is a disk drive.
7. The method of claim 6 wherein said stripe is organized as a Redundant Array of Independent Disks stripe of blocks of data including a block of parity data and each of said units of data is a block of data of said Redundant Array of Independent Disks stripe.
8. The method of claim 7 wherein said logic engine includes a store queue capable of storing a block of data from said Redundant Array of Independent Disks stripe.
9. The method of claim 1 wherein said cache memory of said logic engine is a random access memory.
10. The method of claim 1 wherein said constructing in said logic engine a third unit of data includes applying said first unit of data transferred to said logic engine in said first transfer operation, to a store queue of said logic engine and performing an exclusive- OR logic function operation on the contents of said first store queue and said applied first unit of data, and includes applying said second unit of data transferred to said logic engine in said second transfer operation, to said store queue of said logic engine and performing an exclusive-OR logic function operation on the contents of said store queue and said applied second unit of data.
11. The method of claim 2 further comprising: transfereing from a fourth non- volatile storage unit of said plurality of non- volatile storage units, to said logic engine, a fourth unit of data stored in said stripe, in a fourth transfer operation which bypasses said cache memory; and transferring from a fifth non- volatile storage unit of said plurality of non- volatile storage units, to said logic engine, a fifth unit of data stored in said stripe, in a fifth transfer operation which bypasses said cache memory; and wherein said constructing in said logic engine said third unit of data also uses said fourth unit of data transferred to said logic engine in said fourth transfer operation and using said fifth unit of data transferred to said logic engine in said fifth transfer operation prior to said transferring said constructed third unit of data to said third non- volatile storage unit in said third transfer operation.
12. The method of claim 2 further comprising: for each additional non- volatile storage unit of said plurality of storage units: transferring from an additional non- volatile storage unit of said plurality of non- volatile storage units, to said logic engine, an additional unit of data stored in said stripe, in an additional transfer operation which bypasses said cache memory; and wherein said constructing in said logic engine said third unit of data also uses said additional unit of data transferred to said logic engine in said additional transfer operation prior to said transferring said constructed third unit of data to said third non- volatile storage unit in said third transfer operation.
13. The method of claim 1 further comprising: transferring to said logic engine, a fourth unit of data which is new data to be stored in said stripe; wherein said first unit of data is old data to be replaced by said new data in said stripe, said second unit of data is old parity data to be replaced in said stripe and wherein said constructing in said logic engine said third unit of data constructs a replacement unit of parity data using said new data transferred to said logic engine, said method further comprising transferring said third unit of new parity data to said second non- volatile storage unit to replace said second unit of old parity data.
14. The method of claim 1 further comprising transferring said constructed third unit of data to a host in a third transfer operation..
15. The method of claim 1 wherein the storage processor issues read commands to said first and second non-volatile storage units so that said first and second units of data are accessed from said first and second non- volatile storage units at least partially in parallel.
16. An article comprising a storage medium, the storage medium comprising machine readable instructions stored thereon to: transfer from a first non- volatile storage unit of a plurality of non- volatile storage units, to a logic engine of a storage processor having a cache memory, a first unit of data stored in a stripe across said plurality of non- volatile storage units, in a first transfer operation which bypasses said cache memory; transfer from a second non- volatile storage unit of said plurality of non- volatile storage units, to said logic engine, a second unit of data stored in said stripe, in a second transfer operation which bypasses said cache memory; and construct in said logic engine a third unit of data using said first unit of data transferred to said logic engine in said first transfer operation and using said second unit of data transferred to said logic engine in said second transfer operation.
17. The article of claim 16 wherein the storage medium further comprises machine readable instructions stored thereon to transfer said constructed third unit of data to a third non- olatile storage unit of said plurality of non-volatile storage units in a third transfer operation, and store said constructed third unit of data in said stripe.
18. The article of claim 17 wherein said third transfer operation bypasses said cache memory.
19. The article of claim 17 wherein said plurality of non- volatile storage units are arranged in a Redundant Array of Independent Disks organization.
20. The article of claim 19 wherein said second unit of data is parity data.
21. The article of claim 20 wherein each non-volatile storage unit is a disk drive.
22. The article of claim 21 wherein said stripe is organized as a Redundant Array of Independent Disks stripe of blocks of data including a block of parity data and each of said units of data is a block of data of said Redundant Array of Independent Disks stripe.
23. The article of claim 22 wherein said logic engine includes a store queue capable of storing a block of data from said Redundant Array of Independent Disks stripe.
24. The article of claim 16 wherein said cache memory of said logic engine is a random access memory.
25. The article of claim 16 wherein the machine readable instructions to construct in said logic engine a third unit of data include machine readable instructions stored on the storage medium to apply said first unit of data transferred to said logic engine in said first transfer operation, to a store queue of said logic engine and perform an exclusive-OR logic function operation on the contents of said first store queue and said applied first unit of data, and to apply said second unit of data transferred to said logic engine in said second transfer operation, to said store queue of said logic engine and perform an exclusive-OR logic function operation on the contents of said store queue and said applied second unit of data.
26. The article of claim 17 wherein the storage medium further comprises machine readable instructions stored thereon to: transfer from a fourth non- volatile storage unit of said plurality of non- volatile storage units, to said logic engine, a fourth unit of data stored in said stripe, in a fourth transfer operation which bypasses said cache memory; and transfer from a fifth non- volatile storage unit of said plurality of non-volatile storage units, to said logic engine, a fifth unit of data stored in said stripe, in a fifth transfer operation which bypasses said cache memory; and wherein the machine readable instructions to construct in said logic engine a third unit of data include machine readable instructions stored on the storage medium to use said fourth unit of data transferred to said logic engine in said fourth transfer operation and to use said fifth unit of data transferred to said logic engine in said fifth transfer operation prior to said transferring said constructed third unit of data to said third non- volatile storage unit in said third transfer operation.
27. The article of claim 16 wherein the storage medium further comprises machine readable instructions stored thereon to: transfer to said logic engine, a fourth unit of data which is new data to be stored in said stripe; wherein said first unit of data is old data to be replaced by said new data in said stripe, said second unit of data is old parity data to be replaced in said stripe and wherein the machine readable instructions to construct in said logic engine a third unit of data include machine readable instructions stored on the storage medium to construct a replacement unit of parity data using said new data transferred to said logic engine, said wherein the storage medium further comprises machine readable instructions stored thereon to transfer said third unit of new parity data to said second non- volatile storage unit to replace said second unit of old parity data.
28. The article of claim 16 wherein the storage medium further comprises machine readable instructions stored thereon to transfer said constructed third unit of data to a host in a third transfer operation.
29. The article of claim 16 wherein the storage medium further comprises machine readable instructions stored thereon to issue read commands to said first and second non- volatile storage units so that said first and second units of data are accessed from said first and second non-volatile storage units at least partially in parallel.
30. A system, comprising: at least one memory which includes an operating system and an application; a processor coupled to the memory; data storage having a plurality of non- volatile storage units; a data storage processor adapted to manage Input/Output (I/O) access to the data storage and having a cache memory and a logic engine; and a device driver executable by the processor in the memory, wherein at least one of the application, operating system, device driver and the storage processor is adapted to: transfer from a first non- volatile storage unit to said logic engine of said storage processor, a first unit of data stored in a stripe across said plurality of non- volatile storage units, in a first transfer operation which bypasses said cache memory; transfer from a second non- volatile storage unit of said plurality of non- volatile storage units, to said logic engine, a second unit of data stored in said stripe, in a second transfer operation which bypasses said cache memory; and construct in said logic engine a third unit of data using said first unit of data transferred to said logic engine in said first transfer operation and using said second unit of data transferred to said logic engine in said second transfer operation.
31. The system of claim 30 wherein said at least one of the application, operating system, device driver and the storage processor is further adapted to transfer said constructed third unit of data to a third non- volatile storage unit of said plurality of non- volatile storage units in a third transfer operation, and store said constructed third unit of data in said stripe.
32. The system of claim 31 wherein said third transfer operation bypasses said cache memory.
33. The system of claim 31 wherein said plurality of non- volatile storage units are arranged in a Redundant Array of Independent Disks organization.
34. The system of claim 33 wherein said second unit of data is parity data.
35. The system of claim 34 wherein each non- volatile storage unit is a disk drive.
36. The system of claim 35 wherein said stripe is organized as a Redundant Array of Independent Disks stripe of blocks of data including a block of parity data and each of said units of data is a block of data of said Redundant Array of Independent Disks stripe.
37. The system of claim 36 wherein said logic engine includes a store queue capable of storing a block of data from said Redundant Array of Independent Disks stripe.
38. The system of claim 30 wherein said cache memory of said logic engine is a random access memory.
39. The system of claim 30 wherein to construct in said logic engine a third unit of data, said at least one of the application, operating system, device driver and the storage processor is further adapted to apply said first unit of data transferred to said logic engine in said first transfer operation, to a store queue of said logic engine and perform an exclusive-OR logic function operation on the contents of said first store queue and said applied first unit of data, and to apply said second unit of data transferred to said logic engine in said second transfer operation, to said store queue of said logic engine and perform an exclusive-OR logic function operation on the contents of said store queue and said applied second unit of data.
40. The system of claim 31 wherein said at least one of the application, operating system, device driver and the storage processor is further adapted to transfer from a fourth non- volatile storage unit of said plurality of non- volatile storage units, to said logic engine, a fourth unit of data stored in said stripe, in a fourth transfer operation which bypasses said cache memory; and transfer from a fifth non- volatile storage unit of said plurality of non- volatile storage units, to said logic engine, a fifth unit of data stored in said stripe, in a fifth transfer operation which bypasses said cache memory; and wherein to construct in said logic engine a third unit of data, said at least one of the application, operating system, device driver and the storage processor is further adapted to use said fourth unit of data transferred to said logic engine in said fourth transfer operation and to use said fifth unit of data transferred to said logic engine in said fifth transfer operation prior to said transferring said constructed third unit of data to said third nonvolatile storage unit in said third transfer operation.
41. The system of claim 30 wherein said at least one of the application, operating system, device driver and the storage processor is further adapted to transfer to said logic engine, a fourth unit of data which is new data to be stored in said stripe; wherein said first unit of data is old data to be replaced by said new data in said stripe, said second unit of data is old parity data to be replaced in said stripe and wherein the machine readable instructions to construct in said logic engine a third unit of data include machine readable instructions stored on the storage medium to construct a replacement unit of parity data using said new data transferred to said logic engine, said wherein the storage medium further comprises machine readable instructions stored thereon to transfer said third unit of new parity data to said second non- volatile storage unit to replace said second unit of old parity data.
42. The system of claim 30 wherein said at least one of the application, operating system, device driver and the storage processor is further adapted to transfer said constructed third unit of data to a host in a third transfer operation.
43. The system of claim 30 wherein said at least one of the application, operating system, device driver and the storage processor is further adapted to issue read commands to said first and second non- volatile storage units so that said first and second units of data are accessed from said first and second non- volatile storage units at least partially in parallel.
44. A device for use with a data storage having a plurality of non- volatile storage units, comprising: a data storage processor adapted to manage Input/Output (I/O) access to the data storage and having a cache memory and a logic engine, wherein the storage processor is further adapted to: transfer from a first non- volatile storage unit to said logic engine of said storage processor, a first unit of data stored in a sfripe across said plurality of non- volatile storage units, in a first transfer operation which bypasses said cache memory; transfer from a second non- volatile storage unit of said plurality of nonvolatile storage units, to said logic engine, a second unit of data stored in said stripe, in a second transfer operation which bypasses said cache memory; and construct in said logic engine a third unit of data using said first unit of data transferred to said logic engine in said first transfer operation and using said second unit of data transferred to said logic engine in said second transfer operation.
45. The device of claim 44 wherein the device is further adapted to transfer said constructed third unit of data to a third non- volatile storage unit of said plurality of non- volatile storage units in a third transfer operation, and store said constructed third unit of data in said stripe.
46. The device of claim 45 wherein said third transfer operation bypasses said cache memory.
47. The device of claim 45 wherein wherein each non- volatile storage unit is a disk drive, said plurality of non- volatile storage units are arranged in a Redundant Array of
Independent Disks organization, said stripe is organized as a Redundant Array of Independent Disks stripe of blocks of data including a block of parity data and each of said units of data is a block of data of said Redundant Array of Independent Disks stripe.
48. The device of claim 47 wherein said logic engine includes a store queue capable of storing a block of data from said Redundant Array of Independent Disks stripe, said cache memory of said logic engine is a random access memory, and to construct in said logic engine a third unit of data, said storage processor is further adapted to apply said first unit of data transferred to said logic engine in said first fransfer operation, to a store queue of said logic engine and perform an exclusive-OR logic function operation on the contents of said first store queue and said applied first unit of data, and to apply said second unit of data fransferred to said logic engine in said second transfer operation, to said store queue of said logic engine and perform an exclusive-OR logic function operation on the contents of said store queue and said applied second unit of data.
49. The device of claim 44 wherein said storage processor is further adapted to transfer said constructed third unit of data to a host in a third transfer operation.
50. The device of claim 44 wherein said storage processor is further adapted to issue read commands to said first and second non- volatile storage units so that said first and second units of data are accessed from said first and second non- volatile storage units at least partially in parallel.
PCT/US2004/043041 2003-12-29 2004-12-20 Method, system, and program for managing parity raid data reconstruction WO2005066761A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN2004800391368A CN1965298B (en) 2003-12-29 2004-12-20 Method, system, and equipment for managing parity RAID data reconstruction
JP2006542901A JP2007513435A (en) 2003-12-29 2004-12-20 Method, system, and program for managing data organization
EP04815156A EP1700201A2 (en) 2003-12-29 2004-12-20 Method, system, and program for managing parity raid data reconstruction

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/747,932 US7206899B2 (en) 2003-12-29 2003-12-29 Method, system, and program for managing data transfer and construction
US10/747,932 2003-12-29

Publications (2)

Publication Number Publication Date
WO2005066761A2 true WO2005066761A2 (en) 2005-07-21
WO2005066761A3 WO2005066761A3 (en) 2006-08-24

Family

ID=34700811

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2004/043041 WO2005066761A2 (en) 2003-12-29 2004-12-20 Method, system, and program for managing parity raid data reconstruction

Country Status (6)

Country Link
US (1) US7206899B2 (en)
EP (1) EP1700201A2 (en)
JP (1) JP2007513435A (en)
CN (1) CN1965298B (en)
TW (1) TWI296757B (en)
WO (1) WO2005066761A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111897487A (en) * 2020-06-15 2020-11-06 北京瀚诺半导体科技有限公司 Method, apparatus, electronic device and medium for managing data

Families Citing this family (666)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866754B2 (en) 2010-04-26 2020-12-15 Pure Storage, Inc. Content archiving in a distributed storage network
US7904475B2 (en) 2007-10-09 2011-03-08 Cleversafe, Inc. Virtualized data storage vaults on a dispersed data storage network
US11416339B1 (en) 2005-09-30 2022-08-16 Pure Storage, Inc. Validating requests based on stored vault information
US10257276B2 (en) 2005-09-30 2019-04-09 International Business Machines Corporation Predictive rebalancing according to future usage expectations
US11474903B1 (en) 2005-09-30 2022-10-18 Pure Storage, Inc. Rebuilding of encoded data slices using locally decodable code segments
US10747616B2 (en) 2015-03-31 2020-08-18 Pure Storage, Inc. Adapting rebuilding of encoded data slices in a dispersed storage network
US7574570B2 (en) * 2005-09-30 2009-08-11 Cleversafe Inc Billing system for information dispersal system
US11221917B1 (en) 2005-09-30 2022-01-11 Pure Storage, Inc. Integrity processing in a dispersed storage network
US10938418B2 (en) 2005-09-30 2021-03-02 Pure Storage, Inc. Online disk replacement/removal
US10250686B2 (en) 2005-09-30 2019-04-02 International Business Machines Corporation Finding alternate storage locations to support failing disk migration
US10044807B2 (en) 2005-09-30 2018-08-07 International Business Machines Corporation Optimistic checked writes
US9632722B2 (en) 2010-05-19 2017-04-25 International Business Machines Corporation Balancing storage unit utilization within a dispersed storage network
US9774684B2 (en) 2005-09-30 2017-09-26 International Business Machines Corporation Storing data in a dispersed storage network
US10270858B2 (en) 2005-09-30 2019-04-23 International Business Machines Corporation Inducing memory device idle time through rolling read prioritizations
US11327674B2 (en) 2012-06-05 2022-05-10 Pure Storage, Inc. Storage vault tiering and data migration in a distributed storage network
US10389814B2 (en) 2005-09-30 2019-08-20 Pure Storage, Inc. Prioritizing memory devices to replace based on namespace health
US10169229B2 (en) 2012-06-05 2019-01-01 International Business Machines Corporation Protocols for expanding existing sites in a dispersed storage network
US8285878B2 (en) * 2007-10-09 2012-10-09 Cleversafe, Inc. Block based access to a dispersed data storage network
US11080138B1 (en) 2010-04-26 2021-08-03 Pure Storage, Inc. Storing integrity information in a vast storage system
US10154034B2 (en) 2010-04-26 2018-12-11 International Business Machines Corporation Cooperative data access request authorization in a dispersed storage network
US8595435B2 (en) * 2009-07-30 2013-11-26 Cleversafe, Inc. Dispersed storage write process
US9027080B2 (en) 2008-03-31 2015-05-05 Cleversafe, Inc. Proxy access to a dispersed storage network
US11909418B1 (en) 2005-09-30 2024-02-20 Pure Storage, Inc. Access authentication in a dispersed storage network
US11340988B2 (en) 2005-09-30 2022-05-24 Pure Storage, Inc. Generating integrity information in a vast storage system
US7546427B2 (en) 2005-09-30 2009-06-09 Cleversafe, Inc. System for rebuilding dispersed data
US8352782B2 (en) * 2005-09-30 2013-01-08 Cleversafe, Inc. Range based rebuilder for use with a dispersed data storage network
US10282440B2 (en) 2015-03-31 2019-05-07 International Business Machines Corporation Prioritizing rebuilding of encoded data slices
US7953937B2 (en) * 2005-09-30 2011-05-31 Cleversafe, Inc. Systems, methods, and apparatus for subdividing data for storage in a dispersed data storage grid
US9996413B2 (en) * 2007-10-09 2018-06-12 International Business Machines Corporation Ensuring data integrity on a dispersed storage grid
US11620185B2 (en) 2005-09-30 2023-04-04 Pure Storage, Inc. Integrity processing in a dispersed storage network
US10356177B2 (en) 2005-09-30 2019-07-16 International Business Machines Corporation Prioritizing ranges to rebuild based on namespace health
US8555109B2 (en) * 2009-07-30 2013-10-08 Cleversafe, Inc. Method and apparatus for distributed storage integrity processing
US10855769B2 (en) 2005-09-30 2020-12-01 Pure Storage, Inc. Prioritizing memory devices to replace based on namespace health
US10860424B1 (en) 2005-09-30 2020-12-08 Pure Storage, Inc. Background verification processing in a storage network
US8209363B2 (en) 2007-10-09 2012-06-26 Cleversafe, Inc. File system adapted for use with a dispersed data storage network
US8880799B2 (en) * 2005-09-30 2014-11-04 Cleversafe, Inc. Rebuilding data on a dispersed storage network
US11272009B1 (en) 2005-09-30 2022-03-08 Pure Storage, Inc. Managed data slice maintenance in a distributed storage system
US10051057B2 (en) 2005-09-30 2018-08-14 International Business Machines Corporation Prioritizing read locations based on an error history
US8938591B2 (en) * 2005-09-30 2015-01-20 Cleversafe, Inc. Dispersed storage processing unit and methods with data aggregation for use in a dispersed storage system
US8694668B2 (en) * 2005-09-30 2014-04-08 Cleversafe, Inc. Streaming media software interface to a dispersed data storage network
US8171101B2 (en) * 2005-09-30 2012-05-01 Cleversafe, Inc. Smart access to a dispersed data storage network
US7574579B2 (en) * 2005-09-30 2009-08-11 Cleversafe, Inc. Metadata management system for an information dispersed storage system
US11841770B2 (en) 2005-09-30 2023-12-12 Pure Storage, Inc. Storage unit connection security in a storage network and methods for use therewith
US10432726B2 (en) 2005-09-30 2019-10-01 Pure Storage, Inc. Last-resort operations to save at-risk-data
US8012542B2 (en) * 2005-12-30 2011-09-06 E.I. Du Pont De Nemours And Company Fluoropolymer coating compositions containing adhesive polymers and substrate coating process
US7506200B2 (en) * 2006-01-25 2009-03-17 International Business Machines Corporation Apparatus and method to reconfigure a storage array disposed in a data storage system
US20090055451A1 (en) * 2007-08-17 2009-02-26 Clay Andre Reimer Systems and Methods For Providing Redundant Data Storage
US9888076B2 (en) 2007-10-09 2018-02-06 International Business Machines Corporation Encoded data slice caching in a distributed storage network
US10027478B2 (en) 2007-10-09 2018-07-17 International Business Machines Corporation Differential key backup
US8185614B2 (en) * 2007-10-09 2012-05-22 Cleversafe, Inc. Systems, methods, and apparatus for identifying accessible dispersed digital storage vaults utilizing a centralized registry
US8549351B2 (en) * 2007-10-09 2013-10-01 Cleversafe, Inc. Pessimistic data reading in a dispersed storage network
US8478865B2 (en) * 2007-10-09 2013-07-02 Cleversafe, Inc. Systems, methods, and apparatus for matching a connection request with a network interface adapted for use with a dispersed data storage network
US9697171B2 (en) 2007-10-09 2017-07-04 Internaitonal Business Machines Corporation Multi-writer revision synchronization in a dispersed storage network
US8533256B2 (en) * 2007-10-09 2013-09-10 Cleversafe, Inc. Object interface to a dispersed data storage network
US8819179B2 (en) * 2007-10-09 2014-08-26 Cleversafe, Inc. Data revision synchronization in a dispersed storage network
US8572429B2 (en) * 2007-10-09 2013-10-29 Cleversafe, Inc. Optimistic data writing in a dispersed storage network
US9959076B2 (en) 2007-10-09 2018-05-01 International Business Machines Corporation Optimized disk load distribution
US8965956B2 (en) * 2007-10-09 2015-02-24 Cleversafe, Inc. Integrated client for use with a dispersed data storage network
US8799535B2 (en) * 2008-01-11 2014-08-05 Akamai Technologies, Inc. Storage of data utilizing scheduling queue locations associated with different data rates
US8856552B2 (en) * 2008-03-31 2014-10-07 Cleversafe, Inc. Directory synchronization of a dispersed storage network
US9501355B2 (en) 2008-03-31 2016-11-22 International Business Machines Corporation Storing data and directory information in a distributed storage network
US8630987B2 (en) * 2008-07-16 2014-01-14 Cleversafe, Inc. System and method for accessing a data object stored in a distributed storage network
US8819011B2 (en) * 2008-07-16 2014-08-26 Cleversafe, Inc. Command line interpreter for accessing a data object stored in a distributed storage network
US10447474B2 (en) * 2009-04-20 2019-10-15 Pure Storage, Inc. Dispersed data storage system data decoding and decryption
US11868498B1 (en) 2009-04-20 2024-01-09 Pure Storage, Inc. Storage integrity processing in a storage network
US8601259B2 (en) * 2009-04-20 2013-12-03 Cleversafe, Inc. Securing data in a dispersed storage network using security sentinel value
US9092294B2 (en) * 2009-04-20 2015-07-28 Cleversafe, Inc. Systems, apparatus, and methods for utilizing a reachability set to manage a network upgrade
US8504847B2 (en) * 2009-04-20 2013-08-06 Cleversafe, Inc. Securing data in a dispersed storage network using shared secret slices
US8744071B2 (en) * 2009-04-20 2014-06-03 Cleversafe, Inc. Dispersed data storage system data encryption and encoding
US8656187B2 (en) * 2009-04-20 2014-02-18 Cleversafe, Inc. Dispersed storage secure data decoding
US9483656B2 (en) 2009-04-20 2016-11-01 International Business Machines Corporation Efficient and secure data storage utilizing a dispersed data storage system
US10104045B2 (en) * 2009-04-20 2018-10-16 International Business Machines Corporation Verifying data security in a dispersed storage network
US8819781B2 (en) * 2009-04-20 2014-08-26 Cleversafe, Inc. Management of network devices within a dispersed data storage network
WO2010137178A1 (en) * 2009-05-25 2010-12-02 Hitachi,Ltd. Storage subsystem
US10230692B2 (en) * 2009-06-30 2019-03-12 International Business Machines Corporation Distributed storage processing module
US9207870B2 (en) 2009-07-30 2015-12-08 Cleversafe, Inc. Allocating storage units in a dispersed storage network
US9208025B2 (en) 2009-07-30 2015-12-08 Cleversafe, Inc. Virtual memory mapping in a dispersed storage network
US9558059B2 (en) 2009-07-30 2017-01-31 International Business Machines Corporation Detecting data requiring rebuilding in a dispersed storage network
US8706980B2 (en) * 2009-07-30 2014-04-22 Cleversafe, Inc. Method and apparatus for slice partial rebuilding in a dispersed storage network
US8489915B2 (en) * 2009-07-30 2013-07-16 Cleversafe, Inc. Method and apparatus for storage integrity processing based on error types in a dispersed storage network
US9009575B2 (en) 2009-07-30 2015-04-14 Cleversafe, Inc. Rebuilding a data revision in a dispersed storage network
US10108492B2 (en) 2009-07-30 2018-10-23 International Business Machines Corporation Rebuilding data stored in a dispersed storage network
US8275966B2 (en) * 2009-07-30 2012-09-25 Cleversafe, Inc. Dispersed storage network virtual address generations
US8533424B2 (en) * 2009-07-31 2013-09-10 Cleversafe, Inc. Computing system utilizing dispersed storage
US9167277B2 (en) * 2009-08-03 2015-10-20 Cleversafe, Inc. Dispersed storage network data manipulation
US8782086B2 (en) 2009-08-27 2014-07-15 Cleversafe, Inc. Updating dispersed storage network access control information
US9411810B2 (en) * 2009-08-27 2016-08-09 International Business Machines Corporation Method and apparatus for identifying data inconsistency in a dispersed storage network
US9047217B2 (en) * 2009-08-27 2015-06-02 Cleversafe, Inc. Nested distributed storage unit and applications thereof
US8548913B2 (en) * 2009-09-29 2013-10-01 Cleversafe, Inc. Method and apparatus to secure an electronic commerce transaction
US8473677B2 (en) * 2009-09-29 2013-06-25 Cleversafe, Inc. Distributed storage network memory access based on memory state
US8924387B2 (en) * 2009-09-29 2014-12-30 Cleversafe, Inc. Social networking utilizing a dispersed storage network
US8478937B2 (en) * 2009-09-30 2013-07-02 Cleversafe, Inc. Method and apparatus for dispersed storage memory device utilization
US8402344B2 (en) * 2009-10-05 2013-03-19 Cleversafe, Inc. Method and apparatus for controlling dispersed storage of streaming data
US9661356B2 (en) 2009-10-29 2017-05-23 International Business Machines Corporation Distribution of unique copies of broadcast data utilizing fault-tolerant retrieval from dispersed storage
US10389845B2 (en) 2009-10-29 2019-08-20 Pure Storage, Inc. Determining how to service requests based on several indicators
US9015431B2 (en) * 2009-10-29 2015-04-21 Cleversafe, Inc. Distributed storage revision rollbacks
US10757187B2 (en) 2009-10-29 2020-08-25 Pure Storage, Inc. Streaming all-or-nothing encoding with random offset support
US9774678B2 (en) 2009-10-29 2017-09-26 International Business Machines Corporation Temporarily storing data in a dispersed storage network
US8291277B2 (en) * 2009-10-29 2012-10-16 Cleversafe, Inc. Data distribution utilizing unique write parameters in a dispersed storage system
US9900150B2 (en) * 2009-10-30 2018-02-20 International Business Machines Corporation Dispersed storage camera device and method of operation
US8589637B2 (en) * 2009-10-30 2013-11-19 Cleversafe, Inc. Concurrent set storage in distributed storage network
US9311185B2 (en) 2009-10-30 2016-04-12 Cleversafe, Inc. Dispersed storage unit solicitation method and apparatus
US10509709B2 (en) 2009-10-30 2019-12-17 Pure Storage, Inc. Indirect storage of data in a dispersed storage system
US9413529B2 (en) 2009-10-30 2016-08-09 International Business Machines Corporation Distributed storage network and method for storing and retrieving encryption keys
US10073737B2 (en) 2009-10-30 2018-09-11 International Business Machines Corporation Slice location identification
US8769035B2 (en) 2009-10-30 2014-07-01 Cleversafe, Inc. Distributed storage network for storing a data object based on storage requirements
US9195408B2 (en) 2009-10-30 2015-11-24 Cleversafe, Inc. Highly autonomous dispersed storage system retrieval method
US9098376B2 (en) 2009-10-30 2015-08-04 Cleversafe, Inc. Distributed storage network for modification of a data object
US9501349B2 (en) 2009-11-24 2016-11-22 International Business Machines Corporation Changing dispersed storage error encoding parameters
US9270298B2 (en) * 2009-11-24 2016-02-23 International Business Machines Corporation Selecting storage units to rebuild an encoded data slice
US9152514B2 (en) * 2009-11-24 2015-10-06 Cleversafe, Inc. Rebuilding a data segment in a dispersed storage network
US8918897B2 (en) * 2009-11-24 2014-12-23 Cleversafe, Inc. Dispersed storage network data slice integrity verification
US9836352B2 (en) 2009-11-25 2017-12-05 International Business Machines Corporation Detecting a utilization imbalance between dispersed storage network storage units
US9672109B2 (en) 2009-11-25 2017-06-06 International Business Machines Corporation Adaptive dispersed storage network (DSN) and system
US10015141B2 (en) 2009-11-25 2018-07-03 International Business Machines Corporation Dispersed data storage in a VPN group of devices
US8527807B2 (en) * 2009-11-25 2013-09-03 Cleversafe, Inc. Localized dispersed storage memory system
US9626248B2 (en) 2009-11-25 2017-04-18 International Business Machines Corporation Likelihood based rebuilding of missing encoded data slices
US9489264B2 (en) 2009-11-25 2016-11-08 International Business Machines Corporation Storing an encoded data slice as a set of sub-slices
US9996548B2 (en) 2009-11-25 2018-06-12 International Business Machines Corporation Dispersed storage using localized peer-to-peer capable wireless devices in a peer-to-peer or femto cell supported carrier served fashion
US8621268B2 (en) * 2009-11-25 2013-12-31 Cleversafe, Inc. Write threshold utilization in a dispersed storage system
US8819452B2 (en) 2009-11-25 2014-08-26 Cleversafe, Inc. Efficient storage of encrypted data in a dispersed storage network
US8688907B2 (en) * 2009-11-25 2014-04-01 Cleversafe, Inc. Large scale subscription based dispersed storage network
US9305597B2 (en) 2009-12-29 2016-04-05 Cleversafe, Inc. Accessing stored multi-media content based on a subscription priority level
US20180335967A1 (en) 2009-12-29 2018-11-22 International Business Machines Corporation User customizable data processing plan in a dispersed storage network
US10372686B2 (en) 2009-12-29 2019-08-06 International Business Machines Corporation Policy-based storage in a dispersed storage network
US8762343B2 (en) 2009-12-29 2014-06-24 Cleversafe, Inc. Dispersed storage of software
US10158648B2 (en) 2009-12-29 2018-12-18 International Business Machines Corporation Policy-based access in a dispersed storage network
US9727266B2 (en) 2009-12-29 2017-08-08 International Business Machines Corporation Selecting storage units in a dispersed storage network
US8352831B2 (en) * 2009-12-29 2013-01-08 Cleversafe, Inc. Digital content distribution utilizing dispersed storage
US10133632B2 (en) 2009-12-29 2018-11-20 International Business Machines Corporation Determining completion of migration in a dispersed storage network
US9369526B2 (en) 2009-12-29 2016-06-14 International Business Machines Corporation Distributed storage time synchronization based on retrieval delay
US10237281B2 (en) 2009-12-29 2019-03-19 International Business Machines Corporation Access policy updates in a dispersed storage network
US10067831B2 (en) 2009-12-29 2018-09-04 International Business Machines Corporation Slice migration in a dispersed storage network
US9866595B2 (en) 2009-12-29 2018-01-09 International Busines Machines Corporation Policy based slice deletion in a dispersed storage network
US10148788B2 (en) 2009-12-29 2018-12-04 International Business Machines Corporation Method for providing schedulers in a distributed storage network
US10031669B2 (en) 2009-12-29 2018-07-24 International Business Machines Corporation Scheduling migration related traffic to be non-disruptive and performant
US9507735B2 (en) 2009-12-29 2016-11-29 International Business Machines Corporation Digital content retrieval utilizing dispersed storage
US9798467B2 (en) 2009-12-29 2017-10-24 International Business Machines Corporation Security checks for proxied requests
US9922063B2 (en) 2009-12-29 2018-03-20 International Business Machines Corporation Secure storage of secret data in a dispersed storage network
US10289505B2 (en) 2009-12-29 2019-05-14 International Business Machines Corporation Dispersed multi-media content for a centralized digital video storage system
US8468368B2 (en) * 2009-12-29 2013-06-18 Cleversafe, Inc. Data encryption parameter dispersal
US9413393B2 (en) 2009-12-29 2016-08-09 International Business Machines Corporation Encoding multi-media content for a centralized digital video storage system
US9672108B2 (en) 2009-12-29 2017-06-06 International Business Machines Corporation Dispersed storage network (DSN) and system with improved security
US9330241B2 (en) 2009-12-29 2016-05-03 International Business Machines Corporation Applying digital rights management to multi-media file playback
US8990585B2 (en) * 2009-12-29 2015-03-24 Cleversafe, Inc. Time based dispersed storage access
US10001923B2 (en) 2009-12-29 2018-06-19 International Business Machines Corporation Generation collapse
US8649521B2 (en) * 2010-01-28 2014-02-11 Cleversafe, Inc. Obfuscation of sequenced encoded data slices
US9201732B2 (en) 2010-01-28 2015-12-01 Cleversafe, Inc. Selective activation of memory to retrieve data in a dispersed storage network
US8522113B2 (en) * 2010-01-28 2013-08-27 Cleversafe, Inc. Selecting storage facilities and dispersal parameters in a dispersed storage network
US9760440B2 (en) 2010-01-28 2017-09-12 International Business Machines Corporation Site-based namespace allocation
US9043548B2 (en) 2010-01-28 2015-05-26 Cleversafe, Inc. Streaming content storage
US8954667B2 (en) * 2010-01-28 2015-02-10 Cleversafe, Inc. Data migration in a dispersed storage network
US8918674B2 (en) * 2010-01-28 2014-12-23 Cleversafe, Inc. Directory file system in a dispersed storage network
US11301592B2 (en) 2010-01-28 2022-04-12 Pure Storage, Inc. Distributed storage with data obfuscation and method for use therewith
US10324791B2 (en) 2010-11-01 2019-06-18 International Business Machines Corporation Selectable parallel processing of dispersed storage error encoding
US20180365105A1 (en) 2014-06-05 2018-12-20 International Business Machines Corporation Establishing an operation execution schedule in a dispersed storage network
US11429486B1 (en) 2010-02-27 2022-08-30 Pure Storage, Inc. Rebuilding data via locally decodable redundancy in a vast storage network
US10007575B2 (en) 2010-02-27 2018-06-26 International Business Machines Corporation Alternative multiple memory format storage in a storage network
US9606867B2 (en) 2014-06-05 2017-03-28 International Business Machines Corporation Maintaining data storage in accordance with an access metric
US10268374B2 (en) 2010-02-27 2019-04-23 International Business Machines Corporation Redundant array of independent discs and dispersed storage network system re-director
US9311184B2 (en) * 2010-02-27 2016-04-12 Cleversafe, Inc. Storing raid data as encoded data slices in a dispersed storage network
US9135115B2 (en) 2010-02-27 2015-09-15 Cleversafe, Inc. Storing data in multiple formats including a dispersed storage format
US8566552B2 (en) * 2010-03-12 2013-10-22 Cleversafe, Inc. Dispersed storage network resource allocation
US8578205B2 (en) * 2010-03-15 2013-11-05 Cleversafe, Inc. Requesting cloud data storage
US9229824B2 (en) 2010-03-16 2016-01-05 International Business Machines Corporation Caching rebuilt encoded data slices in a dispersed storage network
US9170884B2 (en) 2010-03-16 2015-10-27 Cleversafe, Inc. Utilizing cached encoded data slices in a dispersed storage network
US8495466B2 (en) * 2010-03-16 2013-07-23 Cleversafe, Inc. Adjusting data dispersal in a dispersed storage network
US20110238909A1 (en) * 2010-03-29 2011-09-29 Pankaj Kumar Multicasting Write Requests To Multiple Storage Controllers
US9606858B2 (en) 2010-04-26 2017-03-28 International Business Machines Corporation Temporarily storing an encoded data slice
US10447767B2 (en) 2010-04-26 2019-10-15 Pure Storage, Inc. Resolving a performance issue within a dispersed storage network
US10956292B1 (en) 2010-04-26 2021-03-23 Pure Storage, Inc. Utilizing integrity information for data retrieval in a vast storage system
US9898373B2 (en) 2010-04-26 2018-02-20 International Business Machines Corporation Prioritizing rebuilding of stored data in a dispersed storage network
US8938552B2 (en) 2010-08-02 2015-01-20 Cleversafe, Inc. Resolving a protocol issue within a dispersed storage network
US9092386B2 (en) 2010-04-26 2015-07-28 Cleversafe, Inc. Indicating an error within a dispersed storage network
US8914669B2 (en) 2010-04-26 2014-12-16 Cleversafe, Inc. Secure rebuilding of an encoded data slice in a dispersed storage network
US8625635B2 (en) 2010-04-26 2014-01-07 Cleversafe, Inc. Dispersed storage network frame protocol header
US9047218B2 (en) 2010-04-26 2015-06-02 Cleversafe, Inc. Dispersed storage network slice name verification
US9495117B2 (en) 2010-04-26 2016-11-15 International Business Machines Corporation Storing data in a dispersed storage network
US8683205B2 (en) 2010-05-19 2014-03-25 Cleversafe, Inc. Accessing data utilizing entity registration in multiple dispersed storage networks
US10911230B2 (en) 2010-05-19 2021-02-02 Pure Storage, Inc. Securely activating functionality of a computing device in a dispersed storage network
US10353774B2 (en) 2015-10-30 2019-07-16 International Business Machines Corporation Utilizing storage unit latency data in a dispersed storage network
US10193689B2 (en) 2010-05-19 2019-01-29 International Business Machines Corporation Storing access information in a dispersed storage network
US8861727B2 (en) 2010-05-19 2014-10-14 Cleversafe, Inc. Storage of sensitive data in a dispersed storage network
US11740972B1 (en) 2010-05-19 2023-08-29 Pure Storage, Inc. Migrating data in a vast storage network
US8621580B2 (en) 2010-05-19 2013-12-31 Cleversafe, Inc. Retrieving access information in a dispersed storage network
US8909858B2 (en) 2010-06-09 2014-12-09 Cleversafe, Inc. Storing encoded data slices in a dispersed storage network
US8621269B2 (en) 2010-06-22 2013-12-31 Cleversafe, Inc. Identifying a slice name information error in a dispersed storage network
US8555142B2 (en) 2010-06-22 2013-10-08 Cleversafe, Inc. Verifying integrity of data stored in a dispersed storage memory
US10162524B2 (en) 2010-08-02 2018-12-25 International Business Machines Corporation Determining whether to compress a data segment in a dispersed storage network
US9077734B2 (en) 2010-08-02 2015-07-07 Cleversafe, Inc. Authentication of devices of a dispersed storage network
US20190095101A1 (en) 2010-08-02 2019-03-28 International Business Machines Corporation Authenticating a credential in a dispersed storage network
US9063968B2 (en) 2010-08-02 2015-06-23 Cleversafe, Inc. Identifying a compromised encoded data slice
US8842746B2 (en) 2010-08-02 2014-09-23 Cleversafe, Inc. Receiving encoded data slices via wireless communication
US9940195B2 (en) 2010-08-25 2018-04-10 International Business Machines Corporation Encryption of slice partials
US10255135B2 (en) 2010-08-25 2019-04-09 International Business Machines Corporation Method and apparatus for non-interactive information dispersal
US8762793B2 (en) 2010-08-26 2014-06-24 Cleversafe, Inc. Migrating encoded data slices from a re-provisioned memory device of a dispersed storage network memory
US9571230B2 (en) 2010-10-06 2017-02-14 International Business Machines Corporation Adjusting routing of data within a network path
US9843412B2 (en) 2010-10-06 2017-12-12 International Business Machines Corporation Optimizing routing of data across a communications network
US9112535B2 (en) 2010-10-06 2015-08-18 Cleversafe, Inc. Data transmission utilizing partitioning and dispersed storage error encoding
US10298957B2 (en) 2010-10-06 2019-05-21 International Business Machines Corporation Content-based encoding in a multiple routing path communications system
US9116831B2 (en) 2010-10-06 2015-08-25 Cleversafe, Inc. Correcting an errant encoded data slice
US10970168B2 (en) 2010-10-06 2021-04-06 Pure Storage, Inc. Adjusting dispersed storage error encoding parameters based on path performance
US10082970B2 (en) 2010-11-01 2018-09-25 International Business Machines Corporation Storing an effective dynamic width of encoded data slices
US10805042B2 (en) 2010-11-01 2020-10-13 Pure Storage, Inc. Creating transmission data slices for use in a dispersed storage network
US10289318B2 (en) 2010-11-01 2019-05-14 International Business Machines Corporation Adjusting optimistic writes in a dispersed storage network
US8707105B2 (en) 2010-11-01 2014-04-22 Cleversafe, Inc. Updating a set of memory devices in a dispersed storage network
US9552305B2 (en) 2010-11-01 2017-01-24 International Business Machines Corporation Compacting dispersed storage space
US10146645B2 (en) 2010-11-01 2018-12-04 International Business Machines Corporation Multiple memory format storage in a storage network
US10768833B2 (en) 2010-11-01 2020-09-08 Pure Storage, Inc. Object dispersal load balancing
US9015499B2 (en) 2010-11-01 2015-04-21 Cleversafe, Inc. Verifying data integrity utilizing dispersed storage
US8627065B2 (en) 2010-11-09 2014-01-07 Cleversafe, Inc. Validating a certificate chain in a dispersed storage network
US9590838B2 (en) 2010-11-09 2017-03-07 International Business Machines Corporation Transferring data of a dispersed storage network
US10922179B2 (en) 2010-11-29 2021-02-16 Pure Storage, Inc. Post rebuild verification
US10802763B2 (en) 2010-11-29 2020-10-13 Pure Storage, Inc. Remote storage verification
US10372350B2 (en) 2010-11-29 2019-08-06 Pure Storage, Inc. Shared ownership of namespace ranges
US11307930B1 (en) 2010-11-29 2022-04-19 Pure Storage, Inc. Optimized selection of participants in distributed data rebuild/verification
US9454431B2 (en) 2010-11-29 2016-09-27 International Business Machines Corporation Memory selection for slice storage in a dispersed storage network
US9336139B2 (en) 2010-11-29 2016-05-10 Cleversafe, Inc. Selecting a memory for storage of an encoded data slice in a dispersed storage network
US11789631B2 (en) 2010-11-29 2023-10-17 Pure Storage, Inc. Utilizing metadata storage trees in a vast storage network
US8892845B2 (en) 2010-12-22 2014-11-18 Cleversafe, Inc. Segmenting data for storage in a dispersed storage network
US9319463B2 (en) 2010-12-27 2016-04-19 Cleversafe, Inc. Reproducing data from obfuscated data retrieved from a dispersed storage network
US10402268B2 (en) 2011-02-01 2019-09-03 Pure Storage, Inc. Utilizing a dispersed storage network access token module to acquire digital content from a digital content provider
US8694752B2 (en) 2011-02-01 2014-04-08 Cleversafe, Inc. Transferring data in response to detection of a memory system imbalance
US20120226855A1 (en) 2011-03-02 2012-09-06 Cleversafe, Inc. Sharing a directory of a dispersed storage network
US8910022B2 (en) 2011-03-02 2014-12-09 Cleversafe, Inc. Retrieval of encoded data slices and encoded instruction slices by a computing device
US8949688B2 (en) 2011-04-01 2015-02-03 Cleversafe, Inc. Updating error recovery information in a dispersed storage network
US11418580B2 (en) 2011-04-01 2022-08-16 Pure Storage, Inc. Selective generation of secure signatures in a distributed storage network
US10298684B2 (en) 2011-04-01 2019-05-21 International Business Machines Corporation Adaptive replication of dispersed data to improve data access performance
US8880978B2 (en) 2011-04-01 2014-11-04 Cleversafe, Inc. Utilizing a local area network memory and a dispersed storage network memory to access data
US9298550B2 (en) 2011-05-09 2016-03-29 Cleversafe, Inc. Assigning a dispersed storage network address range in a maintenance free storage container
US10452836B2 (en) 2011-05-09 2019-10-22 Pure Storage, Inc. Retrieving a hypertext markup language file from a dispersed storage network memory
US9219604B2 (en) 2011-05-09 2015-12-22 Cleversafe, Inc. Generating an encrypted message for storage
US20170192684A1 (en) 2011-05-09 2017-07-06 International Business Machines Corporation Auditing a transaction in a dispersed storage network
US8954787B2 (en) 2011-05-09 2015-02-10 Cleversafe, Inc. Establishing trust in a maintenance free storage container
US10949301B2 (en) 2011-06-06 2021-03-16 Pure Storage, Inc. Pre-positioning pre-stored content in a content distribution system
US8782439B2 (en) 2011-06-06 2014-07-15 Cleversafe, Inc. Securing a data segment for storage
US10061650B2 (en) 2011-06-06 2018-08-28 International Business Machines Corporation Priority based rebuilding
US10042709B2 (en) 2011-06-06 2018-08-07 International Business Machines Corporation Rebuild prioritization during a plurality of concurrent data object write operations
US8756480B2 (en) 2011-06-06 2014-06-17 Cleversafe, Inc. Prioritized deleting of slices stored in a dispersed storage network
US20120317356A1 (en) * 2011-06-09 2012-12-13 Advanced Micro Devices, Inc. Systems and methods for sharing memory between a plurality of processors
US9460148B2 (en) 2011-07-06 2016-10-04 International Business Machines Corporation Completing distribution of multi-media content to an accessing device
US8924770B2 (en) 2011-07-06 2014-12-30 Cleversafe, Inc. Rebuilding a data slice of a maintenance free storage container
US9170868B2 (en) 2011-07-27 2015-10-27 Cleversafe, Inc. Identifying an error cause within a dispersed storage network
US11016702B2 (en) 2011-07-27 2021-05-25 Pure Storage, Inc. Hierarchical event tree
US10678619B2 (en) 2011-07-27 2020-06-09 Pure Storage, Inc. Unified logs and device statistics
US8782491B2 (en) 2011-08-17 2014-07-15 Cleversafe, Inc. Detecting intentional corruption of data in a dispersed storage network
US10120756B2 (en) 2011-08-17 2018-11-06 International Business Machines Corporation Audit object generation in a dispersed storage network
US9971802B2 (en) 2011-08-17 2018-05-15 International Business Machines Corporation Audit record transformation in a dispersed storage network
US10454678B2 (en) 2011-08-17 2019-10-22 Pure Storage, Inc. Accesor-based audit trails
US20190179696A1 (en) 2011-09-06 2019-06-13 International Business Machines Corporation Demultiplexing decoded data streams in a distributed storage network
US10235237B2 (en) 2011-09-06 2019-03-19 Intertnational Business Machines Corporation Decoding data streams in a distributed storage network
US11907060B2 (en) 2011-09-06 2024-02-20 Pure Storage, Inc. Coding of data streams in a vast storage network
US8751894B2 (en) 2011-09-06 2014-06-10 Cleversafe, Inc. Concurrent decoding of data streams
US9785491B2 (en) 2011-10-04 2017-10-10 International Business Machines Corporation Processing a certificate signing request in a dispersed storage network
US8782494B2 (en) 2011-10-04 2014-07-15 Cleversafe, Inc. Reproducing data utilizing a zero information gain function
US8555130B2 (en) 2011-10-04 2013-10-08 Cleversafe, Inc. Storing encoded data slices in a dispersed storage unit
US10496500B2 (en) 2011-11-01 2019-12-03 Pure Storage, Inc. Preemptively reading extra encoded data slices
US8839368B2 (en) 2011-11-01 2014-09-16 Cleversafe, Inc. Acquiring a trusted set of encoded data slices
US11329830B1 (en) 2011-11-01 2022-05-10 Pure Storage, Inc. Dispersed credentials
US10437678B2 (en) 2011-11-01 2019-10-08 Pure Storage, Inc. Updating an encoded data slice
US10365969B2 (en) 2011-11-01 2019-07-30 International Business Machines Corporation Multiple wireless communication systems stream slices based on geography
US8683286B2 (en) 2011-11-01 2014-03-25 Cleversafe, Inc. Storing data in a dispersed storage network
US8627066B2 (en) 2011-11-03 2014-01-07 Cleversafe, Inc. Processing a dispersed storage network access request utilizing certificate chain validation information
US10977194B2 (en) 2011-11-28 2021-04-13 Pure Storage, Inc. Securely storing random keys in a dispersed storage network
US10387071B2 (en) 2011-11-28 2019-08-20 Pure Storage, Inc. On-the-fly cancellation of unnecessary read requests
US9203625B2 (en) 2011-11-28 2015-12-01 Cleversafe, Inc. Transferring encoded data slices in a distributed storage network
US10558592B2 (en) 2011-11-28 2020-02-11 Pure Storage, Inc. Priority level adaptation in a dispersed storage network
US11474958B1 (en) 2011-11-28 2022-10-18 Pure Storage, Inc. Generating and queuing system messages with priorities in a storage network
US10318445B2 (en) 2011-11-28 2019-06-11 International Business Machines Corporation Priority level adaptation in a dispersed storage network
US8848906B2 (en) 2011-11-28 2014-09-30 Cleversafe, Inc. Encrypting data for storage in a dispersed storage network
US10055283B2 (en) 2011-11-28 2018-08-21 International Business Machines Corporation Securely distributing random keys in a dispersed storage network
US9009567B2 (en) 2011-12-12 2015-04-14 Cleversafe, Inc. Encrypting distributed computing data
US10346218B2 (en) 2011-12-12 2019-07-09 International Business Machines Corporation Partial task allocation in a dispersed storage network
US10666596B2 (en) 2011-12-12 2020-05-26 Pure Storage, Inc. Messaging via a shared memory of a distributed computing system
US20180083930A1 (en) 2011-12-12 2018-03-22 International Business Machines Corporation Reads for dispersed computation jobs
US10104168B2 (en) 2011-12-12 2018-10-16 International Business Machines Corporation Method for managing throughput in a distributed storage network
US9584359B2 (en) 2011-12-12 2017-02-28 International Business Machines Corporation Distributed storage and computing of interim data
US10360106B2 (en) 2011-12-12 2019-07-23 International Business Machines Corporation Throttled real-time writes
US20130238900A1 (en) 2011-12-12 2013-09-12 Cleversafe, Inc. Dispersed storage network secure hierarchical file directory
US9817701B2 (en) 2011-12-12 2017-11-14 International Business Machines Corporation Threshold computing in a distributed computing system
US9298548B2 (en) 2011-12-12 2016-03-29 Cleversafe, Inc. Distributed computing in a distributed storage and task network
US10348640B2 (en) 2011-12-12 2019-07-09 International Business Machines Corporation Partial task execution in a dispersed storage network
US9674155B2 (en) 2011-12-12 2017-06-06 International Business Machines Corporation Encrypting segmented data in a distributed computing system
US10176045B2 (en) 2011-12-12 2019-01-08 International Business Machines Corporation Internet based shared memory in a distributed computing system
US10146621B2 (en) 2011-12-12 2018-12-04 International Business Machines Corporation Chaining computes in a distributed computing system
US9430286B2 (en) 2011-12-12 2016-08-30 International Business Machines Corporation Authorizing distributed task processing in a distributed storage network
US9141468B2 (en) 2011-12-12 2015-09-22 Cleversafe, Inc. Managing memory utilization in a distributed storage and task network
CN102411516A (en) * 2011-12-13 2012-04-11 云海创想信息技术(天津)有限公司 RAID5 (Redundant Array of Independent Disk 5) data reconstruction method and device
US9185079B2 (en) 2011-12-22 2015-11-10 Intel Corporation Method and apparatus to tunnel messages to storage devices by overloading read/write commands
EP2795505A4 (en) 2011-12-22 2015-09-02 Intel Corp Activation and monetization of features built into storage subsystems using a trusted connect service back end infrastructure
US10671585B2 (en) 2012-01-31 2020-06-02 Pure Storage, Inc. Storing indexed data to a dispersed storage network
US10140177B2 (en) 2012-01-31 2018-11-27 International Business Machines Corporation Transferring a partial task in a distributed computing system
US9146810B2 (en) 2012-01-31 2015-09-29 Cleversafe, Inc. Identifying a potentially compromised encoded data slice
US9465861B2 (en) 2012-01-31 2016-10-11 International Business Machines Corporation Retrieving indexed data from a dispersed storage network
US9891995B2 (en) 2012-01-31 2018-02-13 International Business Machines Corporation Cooperative decentralized rebuild scanning
US9514132B2 (en) 2012-01-31 2016-12-06 International Business Machines Corporation Secure data migration in a dispersed storage network
US10157051B2 (en) 2012-03-02 2018-12-18 International Business Machines Corporation Upgrading devices in a dispersed storage network
US11232093B2 (en) 2012-03-02 2022-01-25 Pure Storage, Inc. Slice migration in a dispersed storage network
US9171031B2 (en) 2012-03-02 2015-10-27 Cleversafe, Inc. Merging index nodes of a hierarchical dispersed storage index
US9195684B2 (en) 2012-03-02 2015-11-24 Cleversafe, Inc. Redundant task execution in a distributed storage and task network
US10402393B2 (en) 2012-03-02 2019-09-03 Pure Storage, Inc. Slice migration in a dispersed storage network
US10621044B2 (en) 2012-04-25 2020-04-14 Pure Storage, Inc. Mapping slice groupings in a dispersed storage network
US10795766B2 (en) 2012-04-25 2020-10-06 Pure Storage, Inc. Mapping slice groupings in a dispersed storage network
US9380032B2 (en) 2012-04-25 2016-06-28 International Business Machines Corporation Encrypting data for storage in a dispersed storage network
US10447471B2 (en) 2012-06-05 2019-10-15 Pure Storage, Inc. Systematic secret sharing
US9164841B2 (en) 2012-06-05 2015-10-20 Cleversafe, Inc. Resolution of a storage error in a dispersed storage network
US10002047B2 (en) 2012-06-05 2018-06-19 International Business Machines Corporation Read-if-not-revision-equals protocol message
US10474395B2 (en) 2012-06-05 2019-11-12 Pure Storage, Inc. Abstracting namespace mapping in a dispersed storage network through multiple hierarchies
US9613052B2 (en) 2012-06-05 2017-04-04 International Business Machines Corporation Establishing trust within a cloud computing system
US10073638B2 (en) 2012-06-05 2018-09-11 International Business Machines Corporation Automatic namespace ordering determination
US20180336097A1 (en) 2012-06-25 2018-11-22 International Business Machines Corporation Namespace affinity and failover for processing units in a dispersed storage network
US10430276B2 (en) 2012-06-25 2019-10-01 Pure Storage, Inc. Optimal orderings of processing unit priorities in a dispersed storage network
US8935761B2 (en) 2012-06-25 2015-01-13 Cleversafe, Inc. Accessing storage nodes in an on-line media storage system
US11093327B1 (en) 2012-06-25 2021-08-17 Pure Storage, Inc. Failure abatement approach for failed storage units common to multiple vaults
US10157011B2 (en) 2012-06-25 2018-12-18 International Business Machines Corporation Temporary suspension of vault access
US10120574B2 (en) 2012-06-25 2018-11-06 International Business Machines Corporation Reversible data modifications within DS units
US10114697B2 (en) 2012-06-25 2018-10-30 International Business Machines Corporation Large object parallel writing
US9141297B2 (en) 2012-06-25 2015-09-22 Cleversafe, Inc. Verifying encoded data slice integrity in a dispersed storage network
US10651975B2 (en) 2012-08-02 2020-05-12 Pure Storage, Inc. Forwarding data amongst cooperative DSTN processing units of a massive data ingestion system
US9537609B2 (en) 2012-08-02 2017-01-03 International Business Machines Corporation Storing a stream of data in a dispersed storage network
US9176822B2 (en) 2012-08-31 2015-11-03 Cleversafe, Inc. Adjusting dispersed storage error encoding parameters
US10409679B2 (en) 2012-08-31 2019-09-10 Pure Storage, Inc. Migrating data slices in a dispersed storage network
US10409678B2 (en) 2012-08-31 2019-09-10 Pure Storage, Inc. Self-optimizing read-ahead
US10331518B2 (en) 2012-08-31 2019-06-25 International Business Machines Corporation Encoding data in a dispersed storage network
US10241863B2 (en) 2012-08-31 2019-03-26 International Business Machines Corporation Slice rebuilding in a dispersed storage network
US11360851B2 (en) 2012-08-31 2022-06-14 Pure Storage, Inc. Duplicating authentication information between connections
US9875158B2 (en) 2012-08-31 2018-01-23 International Business Machines Corporation Slice storage in a dispersed storage network
US9483539B2 (en) 2012-09-13 2016-11-01 International Business Machines Corporation Updating local data utilizing a distributed storage network
US10402423B2 (en) 2012-09-13 2019-09-03 Pure Storage, Inc. Sliding windows for batching index updates
US10057351B2 (en) 2012-09-13 2018-08-21 International Business Machines Corporation Modifying information dispersal algorithm configurations in a dispersed storage network
US10417253B2 (en) 2012-09-13 2019-09-17 Pure Storage, Inc. Multi-level data storage in a dispersed storage network
US10318549B2 (en) 2012-09-13 2019-06-11 International Business Machines Corporation Batching modifications to nodes in a dispersed index
US10331698B2 (en) 2012-09-13 2019-06-25 International Business Machines Corporation Rebuilding data in a dispersed storage network
US8972645B2 (en) * 2012-09-19 2015-03-03 Hewlett-Packard Development Company, L.P. Request sent to storage device based on moving average
US10127111B2 (en) 2012-10-08 2018-11-13 International Business Machines Corporation Client provided request prioritization hints
US10331519B2 (en) 2012-10-08 2019-06-25 International Business Machines Corporation Application of secret sharing schemes at multiple levels of a dispersed storage network
US9648087B2 (en) 2012-10-08 2017-05-09 International Business Machines Corporation Allocating distributed storage and task execution resources
US10606700B2 (en) 2012-10-08 2020-03-31 Pure Storage, Inc. Enhanced dispersed storage error encoding using multiple encoding layers
US9936020B2 (en) 2012-10-30 2018-04-03 International Business Machines Corporation Access control of data in a dispersed storage network
US9223723B2 (en) 2012-10-30 2015-12-29 Cleversafe, Inc. Verifying data of a dispersed storage network
US9274971B2 (en) * 2012-11-27 2016-03-01 International Business Machines Corporation Low latency data exchange
US9811533B2 (en) 2012-12-05 2017-11-07 International Business Machines Corporation Accessing distributed computing functions in a distributed computing system
US10558621B2 (en) 2012-12-05 2020-02-11 Pure Storage, Inc. Lock stealing writes for improved reliability
US10587691B2 (en) 2012-12-05 2020-03-10 Pure Storage, Inc. Impatient writes
US9521197B2 (en) 2012-12-05 2016-12-13 International Business Machines Corporation Utilizing data object storage tracking in a dispersed storage network
US10241866B2 (en) 2013-01-04 2019-03-26 International Business Machines Corporation Allocating rebuilding queue entries in a dispersed storage network
US9558067B2 (en) 2013-01-04 2017-01-31 International Business Machines Corporation Mapping storage of data in a dispersed storage network
US10402270B2 (en) 2013-01-04 2019-09-03 Pure Storage, Inc. Deterministically determining affinity for a source name range
US20190250823A1 (en) 2013-01-04 2019-08-15 International Business Machines Corporation Efficient computation of only the required slices
US10013203B2 (en) 2013-01-04 2018-07-03 International Business Machines Corporation Achieving storage compliance in a dispersed storage network
US10204009B2 (en) 2013-01-04 2019-02-12 International Business Machines Corporation Prioritized rebuilds using dispersed indices
US10229002B2 (en) 2013-01-04 2019-03-12 International Business Machines Corporation Process to migrate named objects to a dispersed or distributed storage network (DSN)
US9311187B2 (en) 2013-01-04 2016-04-12 Cleversafe, Inc. Achieving storage compliance in a dispersed storage network
US10423491B2 (en) 2013-01-04 2019-09-24 Pure Storage, Inc. Preventing multiple round trips when writing to target widths
US11416340B1 (en) 2013-01-04 2022-08-16 Pure Storage, Inc. Storage system with multiple storage types in a vast storage network
US10642992B2 (en) 2013-01-04 2020-05-05 Pure Storage, Inc. Password augmented all-or-nothin transform
US10621021B2 (en) 2013-02-05 2020-04-14 Pure Storage, Inc. Using dispersed data structures to point to slice or date source replicas
US9043499B2 (en) 2013-02-05 2015-05-26 Cleversafe, Inc. Modifying a dispersed storage network memory data access response plan
US10664360B2 (en) 2013-02-05 2020-05-26 Pure Storage, Inc. Identifying additional resources to accelerate rebuildling
US10430122B2 (en) 2013-02-05 2019-10-01 Pure Storage, Inc. Using partial rebuilding to change information dispersal algorithm (IDA)
US10055441B2 (en) 2013-02-05 2018-08-21 International Business Machines Corporation Updating shared group information in a dispersed storage network
US10268554B2 (en) 2013-02-05 2019-04-23 International Business Machines Corporation Using dispersed computation to change dispersal characteristics
US10310763B2 (en) 2013-02-05 2019-06-04 International Business Machines Corporation Forming a distributed storage network memory without namespace aware distributed storage units
US10642489B2 (en) 2013-02-26 2020-05-05 Pure Storage, Inc. Determining when to initiate an intra-distributed storage unit rebuild vs. an inter-distributed storage unit rebuild
US9274908B2 (en) 2013-02-26 2016-03-01 International Business Machines Corporation Resolving write conflicts in a dispersed storage network
US11036392B2 (en) 2013-02-26 2021-06-15 Pure Storage, Inc. Determining when to use convergent encryption
US10075523B2 (en) 2013-04-01 2018-09-11 International Business Machines Corporation Efficient storage of data in a dispersed storage network
US9456035B2 (en) 2013-05-03 2016-09-27 International Business Machines Corporation Storing related data in a dispersed storage network
US10223213B2 (en) 2013-05-03 2019-03-05 International Business Machines Corporation Salted zero expansion all or nothing transformation
US9405609B2 (en) 2013-05-22 2016-08-02 International Business Machines Corporation Storing data in accordance with a performance threshold
US11226860B1 (en) 2013-05-30 2022-01-18 Pure Storage, Inc. Difference based rebuild list scanning
US9424132B2 (en) 2013-05-30 2016-08-23 International Business Machines Corporation Adjusting dispersed storage network traffic due to rebuilding
US9432341B2 (en) 2013-05-30 2016-08-30 International Business Machines Corporation Securing data in a dispersed storage network
US9652470B2 (en) 2013-07-01 2017-05-16 International Business Machines Corporation Storing data in a dispersed storage network
US9501360B2 (en) 2013-07-01 2016-11-22 International Business Machines Corporation Rebuilding data while reading data in a dispersed storage network
US10133635B2 (en) 2013-07-01 2018-11-20 International Business Machines Corporation Low-width vault in distributed storage system
US11221916B2 (en) 2013-07-01 2022-01-11 Pure Storage, Inc. Prioritized data reconstruction in a dispersed storage network
US10169369B2 (en) 2013-07-01 2019-01-01 International Business Machines Corporation Meeting storage requirements with limited storage resources
US20180188964A1 (en) 2013-07-31 2018-07-05 International Business Machines Corporation Managed storage unit shutdown in a distributed storage network
US20150039660A1 (en) 2013-07-31 2015-02-05 Cleversafe, Inc. Co-locate objects request
US10681134B2 (en) 2013-07-31 2020-06-09 Pure Storage, Inc. Accelerated learning in adaptive rebuilding by applying observations to other samples
US9894157B2 (en) 2013-07-31 2018-02-13 International Business Machines Corporation Distributed storage network with client subsets and methods for use therewith
US10180880B2 (en) 2013-07-31 2019-01-15 International Business Machines Corporation Adaptive rebuilding rates based on sampling and inference
US9749414B2 (en) 2013-08-29 2017-08-29 International Business Machines Corporation Storing low retention priority data in a dispersed storage network
US10489071B2 (en) 2013-08-29 2019-11-26 Pure Storage, Inc. Vault provisioning within dispersed or distributed storage network (DSN)
US10514857B2 (en) 2013-08-29 2019-12-24 Pure Storage, Inc. Dynamic adjusting of parameters based on resource scoring
US9438675B2 (en) 2013-08-29 2016-09-06 International Business Machines Corporation Dispersed storage with variable slice length and methods for use therewith
US10601918B2 (en) 2013-08-29 2020-03-24 Pure Storage, Inc. Rotating inactive storage units in a distributed storage network
US10484474B2 (en) 2013-08-29 2019-11-19 Pure Storage, Inc. Rotating offline DS units
US9323630B2 (en) * 2013-09-16 2016-04-26 HGST Netherlands B.V. Enhanced data recovery from data storage devices
US9857974B2 (en) 2013-10-03 2018-01-02 International Business Machines Corporation Session execution decision
US10304096B2 (en) 2013-11-01 2019-05-28 International Business Machines Corporation Renting a pipe to a storage system
US10182115B2 (en) 2013-11-01 2019-01-15 International Business Machines Corporation Changing rebuild priority for a class of data
US9781208B2 (en) 2013-11-01 2017-10-03 International Business Machines Corporation Obtaining dispersed storage network system registry information
US9900316B2 (en) 2013-12-04 2018-02-20 International Business Machines Corporation Accessing storage units of a dispersed storage network
US10922181B2 (en) 2014-01-06 2021-02-16 Pure Storage, Inc. Using storage locations greater than an IDA width in a dispersed storage network
US9594639B2 (en) 2014-01-06 2017-03-14 International Business Machines Corporation Configuring storage resources of a dispersed storage network
US11340993B2 (en) 2014-01-06 2022-05-24 Pure Storage, Inc. Deferred rebuilding with alternate storage locations
US9552261B2 (en) 2014-01-31 2017-01-24 International Business Machines Corporation Recovering data from microslices in a dispersed storage network
US11204836B1 (en) 2014-01-31 2021-12-21 Pure Storage, Inc. Using trap slices for anomaly detection in a distributed storage network
US10318382B2 (en) 2014-01-31 2019-06-11 International Business Machines Corporation Determining missing encoded data slices
US9778987B2 (en) 2014-01-31 2017-10-03 International Business Machines Corporation Writing encoded data slices in a dispersed storage network
US10769016B2 (en) 2014-02-26 2020-09-08 Pure Storage, Inc. Storing a plurality of correlated data in a dispersed storage network
US10678638B2 (en) 2014-02-26 2020-06-09 Pure Storage, Inc. Resolving write conflicts in a dispersed storage network
US9665429B2 (en) 2014-02-26 2017-05-30 International Business Machines Corporation Storage of data with verification in a dispersed storage network
US9529834B2 (en) 2014-02-26 2016-12-27 International Business Machines Corporation Concatenating data objects for storage in a dispersed storage network
US10592109B2 (en) 2014-02-26 2020-03-17 Pure Storage, Inc. Selecting storage resources in a dispersed storage network
US10140182B2 (en) 2014-02-26 2018-11-27 International Business Machines Corporation Modifying allocation of storage resources in a dispersed storage network
US10635312B2 (en) 2014-02-26 2020-04-28 Pure Storage, Inc. Recovering data in a dispersed storage network
US20150288680A1 (en) 2014-04-02 2015-10-08 Cleversafe, Inc. Distributing registry information in a dispersed storage network
US10681138B2 (en) 2014-04-02 2020-06-09 Pure Storage, Inc. Storing and retrieving multi-format content in a distributed storage network
US20190087599A1 (en) 2014-04-02 2019-03-21 International Business Machines Corporation Compressing a slice name listing in a dispersed storage network
US10761917B2 (en) 2014-04-02 2020-09-01 Pure Storage, Inc. Using global namespace addressing in a dispersed storage network
US11347590B1 (en) 2014-04-02 2022-05-31 Pure Storage, Inc. Rebuilding data in a distributed storage network
US10020826B2 (en) 2014-04-02 2018-07-10 International Business Machines Corporation Generating molecular encoding information for data storage
US10015152B2 (en) 2014-04-02 2018-07-03 International Business Machines Corporation Securing data in a dispersed storage network
US10628245B2 (en) 2014-04-02 2020-04-21 Pure Storage, Inc. Monitoring of storage units in a dispersed storage network
US10296263B2 (en) 2014-04-30 2019-05-21 International Business Machines Corporation Dispersed bloom filter for determining presence of an object
US10394476B2 (en) 2014-04-30 2019-08-27 Pure Storage, Inc. Multi-level stage locality selection on a large system
US9735967B2 (en) 2014-04-30 2017-08-15 International Business Machines Corporation Self-validating request message structure and operation
US10802732B2 (en) 2014-04-30 2020-10-13 Pure Storage, Inc. Multi-level stage locality selection on a large system
US9965336B2 (en) 2014-04-30 2018-05-08 International Business Machines Corporation Delegating iterative storage unit access in a dispersed storage network
US10509577B2 (en) 2014-06-05 2019-12-17 Pure Storage, Inc. Reliable storage in a dispersed storage network
US10095872B2 (en) 2014-06-05 2018-10-09 International Business Machines Corporation Accessing data based on a dispersed storage network rebuilding issue
US10673946B2 (en) 2014-06-30 2020-06-02 Pure Storage, Inc. Using separate weighting scores for different types of data in a decentralized agreement protocol
US10459797B2 (en) 2014-06-30 2019-10-29 Pure Storage, Inc. Making trade-offs between rebuild scanning and failing memory device flexibility
US10440105B2 (en) 2014-06-30 2019-10-08 Pure Storage, Inc. Using a decentralized agreement protocol to rank storage locations for target width
US11099763B1 (en) 2014-06-30 2021-08-24 Pure Storage, Inc. Migrating generational storage to a decentralized agreement protocol paradigm
US9841925B2 (en) 2014-06-30 2017-12-12 International Business Machines Corporation Adjusting timing of storing data in a dispersed storage network
US11606431B2 (en) 2014-06-30 2023-03-14 Pure Storage, Inc. Maintaining failure independence for storage of a set of encoded data slices
US9690520B2 (en) 2014-06-30 2017-06-27 International Business Machines Corporation Recovering an encoded data slice in a dispersed storage network
US11398988B1 (en) 2014-06-30 2022-07-26 Pure Storage, Inc. Selection of access resources in a distributed storage network
US10447612B2 (en) 2014-06-30 2019-10-15 Pure Storage, Inc. Migrating encoded data slices in a dispersed storage network
US9838478B2 (en) 2014-06-30 2017-12-05 International Business Machines Corporation Identifying a task execution resource of a dispersed storage network
US10042564B2 (en) 2014-06-30 2018-08-07 International Business Machines Corporation Accessing data while migrating storage of the data
US10644874B2 (en) 2014-07-31 2020-05-05 Pure Storage, Inc. Limiting brute force attacks against dispersed credentials in a distributed storage system
US10089036B2 (en) 2014-07-31 2018-10-02 International Business Machines Corporation Migrating data in a distributed storage network
US11728964B2 (en) 2014-07-31 2023-08-15 Pure Storage, Inc. Performance aided data migration in a distributed storage network
US10613936B2 (en) 2014-07-31 2020-04-07 Pure Storage, Inc. Fractional slices in a distributed storage system
US10176191B2 (en) 2014-09-05 2019-01-08 International Business Machines Corporation Recovering from conflicts that emerge from eventually consistent operations
US10049120B2 (en) 2014-09-05 2018-08-14 International Business Machines Corporation Consistency based access of data in a dispersed storage network
US11442921B1 (en) 2014-09-05 2022-09-13 Pure Storage, Inc. Data access in a dispersed storage network with consistency
US10402395B2 (en) 2014-09-05 2019-09-03 Pure Storage, Inc. Facilitating data consistency in a dispersed storage network
US10268545B2 (en) 2014-09-08 2019-04-23 International Business Machines Corporation Using reinforcement learning to select a DS processing unit
US10146622B2 (en) 2014-09-08 2018-12-04 International Business Machines Corporation Combining deduplication with locality for efficient and fast storage
US9591076B2 (en) 2014-09-08 2017-03-07 International Business Machines Corporation Maintaining a desired number of storage units
US20180101457A1 (en) 2014-10-29 2018-04-12 International Business Machines Corporation Retrying failed write operations in a dispersed storage network
US10282135B2 (en) 2014-10-29 2019-05-07 International Business Machines Corporation Strong consistency write threshold
US10459792B2 (en) 2014-10-29 2019-10-29 Pure Storage, Inc. Using an eventually consistent dispersed memory to implement storage tiers
US9916114B2 (en) 2014-10-29 2018-03-13 International Business Machines Corporation Deterministically sharing a plurality of processing resources
US10481833B2 (en) 2014-10-29 2019-11-19 Pure Storage, Inc. Transferring data encoding functions in a distributed storage network
US10095582B2 (en) 2014-10-29 2018-10-09 International Business Machines Corporation Partial rebuilding techniques in a dispersed storage unit
US10223033B2 (en) 2014-10-29 2019-03-05 International Business Machines Corporation Coordinating arrival times of data slices in a dispersed storage network
US10521298B2 (en) 2014-12-02 2019-12-31 Pure Storage, Inc. Temporarily storing dropped and rebuilt slices in a DSN memory
US10402271B2 (en) 2014-12-02 2019-09-03 Pure Storage, Inc. Overcoming bottlenecks in zero information gain (ZIG) rebuild operations
US9727275B2 (en) 2014-12-02 2017-08-08 International Business Machines Corporation Coordinating storage of data in dispersed storage networks
US10120739B2 (en) 2014-12-02 2018-11-06 International Business Machines Corporation Prioritized data rebuilding in a dispersed storage network
US10558527B2 (en) 2014-12-02 2020-02-11 Pure Storage, Inc. Rebuilding strategy in memory managed multi-site duplication
US10481832B2 (en) 2014-12-02 2019-11-19 Pure Storage, Inc. Applying a probability function to avoid storage operations for already-deleted data
US10503592B2 (en) 2014-12-02 2019-12-10 Pure Storage, Inc. Overcoming bottlenecks in partial and traditional rebuild operations
KR102368071B1 (en) 2014-12-29 2022-02-25 삼성전자주식회사 Method for regrouping stripe on RAID storage system, garbage collection operating method and RAID storage system adopting the same
US10126974B2 (en) 2014-12-31 2018-11-13 International Business Machines Corporation Redistributing encoded data slices in a dispersed storage network
US10642687B2 (en) 2014-12-31 2020-05-05 Pure Storage, Inc. Pessimistic reads and other smart-read enhancements with synchronized vaults
US11604707B2 (en) 2014-12-31 2023-03-14 Pure Storage, Inc. Handling failures when synchronizing objects during a write operation
US9727427B2 (en) 2014-12-31 2017-08-08 International Business Machines Corporation Synchronizing storage of data copies in a dispersed storage network
US10387252B2 (en) 2014-12-31 2019-08-20 Pure Storage, Inc. Synchronously storing data in a plurality of dispersed storage networks
US10623495B2 (en) 2014-12-31 2020-04-14 Pure Storage, Inc. Keeping synchronized writes from getting out of synch
US10423359B2 (en) 2014-12-31 2019-09-24 Pure Storage, Inc. Linking common attributes among a set of synchronized vaults
US10452317B2 (en) 2014-12-31 2019-10-22 Pure Storage, Inc. DAP redistribution operation within a dispersed storage network
US10656866B2 (en) 2014-12-31 2020-05-19 Pure Storage, Inc. Unidirectional vault synchronization to support tiering
US10621042B2 (en) 2014-12-31 2020-04-14 Pure Storage, Inc. Vault transformation within a dispersed storage network
US10489247B2 (en) 2014-12-31 2019-11-26 Pure Storage, Inc. Generating time-ordered globally unique revision numbers
US10169123B2 (en) 2015-01-30 2019-01-01 International Business Machines Corporation Distributed data rebuilding
US10740180B2 (en) 2015-01-30 2020-08-11 Pure Storage, Inc. Storing and retrieving data using proxies
US10498823B2 (en) 2015-01-30 2019-12-03 Pure Storage, Inc. Optimally apportioning rebuilding resources
US10511665B2 (en) 2015-01-30 2019-12-17 Pure Storage, Inc. Efficient resource reclamation after deletion of slice from common file
US10498822B2 (en) 2015-01-30 2019-12-03 Pure Storage, Inc. Adaptive scanning rates
US10592132B2 (en) 2015-01-30 2020-03-17 Pure Storage, Inc. Read-foreign-slices request for improved read efficiency with bundled writes
US10594793B2 (en) 2015-01-30 2020-03-17 Pure Storage, Inc. Read-prepare requests to multiple memories
US10440116B2 (en) 2015-01-30 2019-10-08 Pure Storage, Inc. Minimizing data movement through rotation of spare memory devices
US10530862B2 (en) 2015-01-30 2020-01-07 Pure Storage, Inc. Determining slices to rebuild from low-level failures
US10802915B2 (en) 2015-01-30 2020-10-13 Pure Storage, Inc. Time based storage of encoded data slices
US10423490B2 (en) 2015-01-30 2019-09-24 Pure Storage, Inc. Read-source requests to support bundled writes in a distributed storage system
US10506045B2 (en) 2015-01-30 2019-12-10 Pure Storage, Inc. Memory access using deterministic function and secure seed
US10620878B2 (en) 2015-01-30 2020-04-14 Pure Storage, Inc. Write threshold plus value in dispersed storage network write operations
US10289342B2 (en) 2015-01-30 2019-05-14 International Business Machines Corporation Data access optimization protocol in a dispersed storage network
US9740547B2 (en) 2015-01-30 2017-08-22 International Business Machines Corporation Storing data using a dual path storage approach
US9826038B2 (en) 2015-01-30 2017-11-21 International Business Machines Corporation Selecting a data storage resource of a dispersed storage network
JP6536083B2 (en) * 2015-02-26 2019-07-03 富士通株式会社 Storage device, storage system, and recovery program
US11836369B1 (en) 2015-02-27 2023-12-05 Pure Storage, Inc. Storing data in an expanded storage pool of a vast storage network
US10437676B2 (en) 2015-02-27 2019-10-08 Pure Storage, Inc. Urgent reads and using data source health to determine error recovery procedures
US10275185B2 (en) 2015-02-27 2019-04-30 International Business Machines Corporation Fail-in-place supported via decentralized or Distributed Agreement Protocol (DAP)
US10423502B2 (en) 2015-02-27 2019-09-24 Pure Storage, Inc. Stand-by distributed storage units
US10534668B2 (en) 2015-02-27 2020-01-14 Pure Storage, Inc. Accessing data in a dispersed storage network
US10404410B2 (en) 2015-02-27 2019-09-03 Pure Storage, Inc. Storage unit (SU) report cards
US10437677B2 (en) 2015-02-27 2019-10-08 Pure Storage, Inc. Optimized distributed rebuilding within a dispersed storage network
US10503591B2 (en) 2015-02-27 2019-12-10 Pure Storage, Inc. Selecting retrieval locations in a dispersed storage network
US10069915B2 (en) 2015-02-27 2018-09-04 International Business Machines Corporation Storing data in a dispersed storage network
US11188665B2 (en) 2015-02-27 2021-11-30 Pure Storage, Inc. Using internal sensors to detect adverse interference and take defensive actions
US10409772B2 (en) 2015-02-27 2019-09-10 Pure Storage, Inc. Accessing serially stored data in a dispersed storage network
US10530861B2 (en) 2015-02-27 2020-01-07 Pure Storage, Inc. Utilizing multiple storage pools in a dispersed storage network
US10579451B2 (en) 2015-02-27 2020-03-03 Pure Storage, Inc. Pro-actively preparing a dispersed storage network memory for higher-loads
US10528425B2 (en) 2015-02-27 2020-01-07 Pure Storage, Inc. Transitioning to an optimized data storage approach in a dispersed storage network
US10657000B2 (en) 2015-02-27 2020-05-19 Pure Storage, Inc. Optimizing data storage in a dispersed storage network
US10387067B2 (en) 2015-02-27 2019-08-20 Pure Storage, Inc. Optimizing data storage in a dispersed storage network
US10440115B2 (en) 2015-02-27 2019-10-08 Pure Storage, Inc. Write intent messaging in a dispersed storage network
US10078472B2 (en) 2015-02-27 2018-09-18 International Business Machines Corporation Rebuilding encoded data slices in a dispersed storage network
US10079887B2 (en) 2015-03-31 2018-09-18 International Business Machines Corporation Expanding storage capacity of a set of storage units in a distributed storage network
US10852957B2 (en) 2015-03-31 2020-12-01 Pure Storage, Inc. Migration agent employing moveslice request
US11055177B2 (en) 2015-03-31 2021-07-06 Pure Storage, Inc. Correlating operational information with an error condition in a dispersed storage network
US10915261B2 (en) 2015-03-31 2021-02-09 Pure Storage, Inc. Selecting a set of storage units in a distributed storage network
US10331384B2 (en) 2015-03-31 2019-06-25 International Business Machines Corporation Storing data utilizing a maximum accessibility approach in a dispersed storage network
US10528282B2 (en) 2015-03-31 2020-01-07 Pure Storage, Inc. Modifying and utilizing a file structure in a dispersed storage network
US10713374B2 (en) 2015-03-31 2020-07-14 Pure Storage, Inc. Resolving detected access anomalies in a dispersed storage network
US10534661B2 (en) 2015-03-31 2020-01-14 Pure Storage, Inc. Selecting a storage error abatement alternative in a dispersed storage network
US10387070B2 (en) 2015-03-31 2019-08-20 Pure Storage, Inc. Migrating data in response to adding incremental storage resources in a dispersed storage network
US10437515B2 (en) 2015-03-31 2019-10-08 Pure Storage, Inc. Selecting storage units in a dispersed storage network
US10963180B2 (en) 2015-03-31 2021-03-30 Pure Storage, Inc. Adding incremental storage resources in a dispersed storage network
US10037171B2 (en) 2015-04-30 2018-07-31 International Business Machines Corporation Accessing common data in a dispersed storage network
US10055170B2 (en) 2015-04-30 2018-08-21 International Business Machines Corporation Scheduling storage unit maintenance tasks in a dispersed storage network
US10078561B2 (en) 2015-04-30 2018-09-18 International Business Machines Corporation Handling failing memory devices in a dispersed storage network
US10216594B2 (en) 2015-04-30 2019-02-26 International Business Machines Corporation Automated stalled process detection and recovery
US10157094B2 (en) 2015-04-30 2018-12-18 International Business Machines Corporation Validating system registry files in a dispersed storage network
US10268376B2 (en) 2015-04-30 2019-04-23 International Business Machines Corporation Automated deployment and assignment of access devices in a dispersed storage network
US10067998B2 (en) 2015-04-30 2018-09-04 International Business Machines Corporation Distributed sync list
US10254992B2 (en) 2015-04-30 2019-04-09 International Business Machines Corporation Rebalancing data storage in a dispersed storage network
US10168904B2 (en) 2015-04-30 2019-01-01 International Business Machines Corporation Quasi-error notifications in a dispersed storage network
US10324657B2 (en) 2015-05-29 2019-06-18 International Business Machines Corporation Accounting for data whose rebuilding is deferred
US10891058B2 (en) 2015-05-29 2021-01-12 Pure Storage, Inc. Encoding slice verification information to support verifiable rebuilding
US10838664B2 (en) 2015-05-29 2020-11-17 Pure Storage, Inc. Determining a storage location according to legal requirements
US10523241B2 (en) 2015-05-29 2019-12-31 Pure Storage, Inc. Object fan out write operation
US10402122B2 (en) 2015-05-29 2019-09-03 Pure Storage, Inc. Transferring encoded data slices in a dispersed storage network
US11115221B2 (en) 2015-05-29 2021-09-07 Pure Storage, Inc. Verifying a rebuilt encoded data slice using slice verification information
US10613798B2 (en) 2015-05-29 2020-04-07 Pure Storage, Inc. Slice fanout write request
US10169125B2 (en) 2015-05-29 2019-01-01 International Business Machines Corporation Re-encoding data in a dispersed storage network
US10409522B2 (en) 2015-05-29 2019-09-10 Pure Storage, Inc. Reclaiming storage capacity in a dispersed storage network
US10430107B2 (en) 2015-05-29 2019-10-01 Pure Storage, Inc. Identifying stored data slices during a slice migration activity in a dispersed storage network
US10789128B2 (en) 2015-05-29 2020-09-29 Pure Storage, Inc. External healing mode for a dispersed storage network memory
US10055291B2 (en) 2015-06-30 2018-08-21 International Business Machines Corporation Method and system for processing data access requests during data transfers
US11669546B2 (en) 2015-06-30 2023-06-06 Pure Storage, Inc. Synchronizing replicated data in a storage network
US10437671B2 (en) 2015-06-30 2019-10-08 Pure Storage, Inc. Synchronizing replicated stored data
US10229004B2 (en) 2015-07-31 2019-03-12 International Business Machines Corporation Data transfer priority levels
US11782789B2 (en) 2015-07-31 2023-10-10 Pure Storage, Inc. Encoding data and associated metadata in a storage network
US10466914B2 (en) 2015-08-31 2019-11-05 Pure Storage, Inc. Verifying authorized access in a dispersed storage network
US10073652B2 (en) 2015-09-24 2018-09-11 International Business Machines Corporation Performance optimized storage vaults in a dispersed storage network
US10169147B2 (en) 2015-10-30 2019-01-01 International Business Machines Corporation End-to-end secure data storage in a dispersed storage network
US10409514B2 (en) 2015-11-30 2019-09-10 International Business Machines Corporation IP multicast message transmission for event notifications
US10013212B2 (en) * 2015-11-30 2018-07-03 Samsung Electronics Co., Ltd. System architecture with memory channel DRAM FPGA module
US10423362B2 (en) 2015-11-30 2019-09-24 International Business Machines Corporation Utilizing multiple dispersal algorithms to encode data for storage in a dispersed storage network
US20170192688A1 (en) 2015-12-30 2017-07-06 International Business Machines Corporation Lazy deletion of vaults in packed slice storage (pss) and zone slice storage (zss)
US10855759B2 (en) 2016-01-26 2020-12-01 Pure Storage, Inc. Utilizing a hierarchical index in a dispersed storage network
US10089178B2 (en) 2016-02-29 2018-10-02 International Business Machines Corporation Developing an accurate dispersed storage network memory performance model through training
US10387248B2 (en) 2016-03-29 2019-08-20 International Business Machines Corporation Allocating data for storage by utilizing a location-based hierarchy in a dispersed storage network
US10831381B2 (en) 2016-03-29 2020-11-10 International Business Machines Corporation Hierarchies of credential and access control sharing between DSN memories
US10419538B2 (en) 2016-04-26 2019-09-17 International Business Machines Corporation Selecting memory for data access in a dispersed storage network
US10169082B2 (en) 2016-04-27 2019-01-01 International Business Machines Corporation Accessing data in accordance with an execution deadline
US10628399B2 (en) 2016-04-29 2020-04-21 International Business Machines Corporation Storing data in a dispersed storage network with consistency
US10007444B2 (en) 2016-04-29 2018-06-26 International Business Machines Corporation Batching access requests in a dispersed storage network
US10091298B2 (en) 2016-05-27 2018-10-02 International Business Machines Corporation Enhancing performance of data storage in a dispersed storage network
US10122795B2 (en) 2016-05-31 2018-11-06 International Business Machines Corporation Consistency level driven data storage in a dispersed storage network
US10353772B2 (en) 2016-05-31 2019-07-16 International Business Machines Corporation Selecting data for storage in a dispersed storage network
US10027755B2 (en) 2016-06-01 2018-07-17 International Business Machines Corporation Selecting storage units in one or more dispersed storage networks
US10394650B2 (en) 2016-06-03 2019-08-27 International Business Machines Corporation Multiple writes using inter-site storage unit relationship
US10652350B2 (en) 2016-06-06 2020-05-12 International Business Machines Corporation Caching for unique combination reads in a dispersed storage network
US10735545B2 (en) 2016-06-06 2020-08-04 International Business Machines Corporation Routing vault access requests in a dispersed storage network
US10719499B2 (en) 2016-06-06 2020-07-21 INTERNATIONAL BUSINESS MACHINES CORPORATIOb Establishing distributed consensus via alternate voting strategies in a dispersed storage network
US10334045B2 (en) 2016-06-06 2019-06-25 International Business Machines Corporation Indicating multiple encoding schemes in a dispersed storage network
US10007438B2 (en) 2016-06-25 2018-06-26 International Business Machines Corporation Method and system for achieving consensus using alternate voting strategies (AVS) with incomplete information
US10564852B2 (en) 2016-06-25 2020-02-18 International Business Machines Corporation Method and system for reducing memory device input/output operations
US10235085B2 (en) 2016-06-27 2019-03-19 International Business Machines Corporation Relocating storage unit data in response to detecting hotspots in a dispersed storage network
US11115469B2 (en) 2016-06-28 2021-09-07 International Business Machines Corporation Efficient updates within a dispersed storage network
US10025505B2 (en) 2016-06-29 2018-07-17 International Business Machines Corporation Accessing data in a dispersed storage network during write operations
US10157021B2 (en) 2016-06-29 2018-12-18 International Business Machines Corporation Processing incomplete data access transactions
US10387286B2 (en) 2016-06-30 2019-08-20 International Business Machines Corporation Managing configuration updates in a dispersed storage network
US9934092B2 (en) 2016-07-12 2018-04-03 International Business Machines Corporation Manipulating a distributed agreement protocol to identify a desired set of storage units
US10534666B2 (en) 2016-07-14 2020-01-14 International Business Machines Corporation Determining storage requirements based on licensing right in a dispersed storage network
US10114696B2 (en) 2016-07-14 2018-10-30 International Business Machines Corporation Tracking data access in a dispersed storage network
US10102067B2 (en) 2016-07-14 2018-10-16 International Business Machines Corporation Performing a desired manipulation of an encoded data slice based on a metadata restriction and a storage operational condition
US9992063B2 (en) 2016-07-18 2018-06-05 International Business Machines Corporation Utilizing reallocation via a decentralized, or distributed, agreement protocol (DAP) for storage unit (SU) replacement
US10360103B2 (en) 2016-07-18 2019-07-23 International Business Machines Corporation Focused storage pool expansion to prevent a performance degradation
US10769015B2 (en) 2016-07-19 2020-09-08 International Business Machines Corporation Throttling access requests at different layers of a DSN memory
US10277490B2 (en) 2016-07-19 2019-04-30 International Business Machines Corporation Monitoring inter-site bandwidth for rebuilding
US10127112B2 (en) 2016-07-20 2018-11-13 International Business Machines Corporation Assigning prioritized rebuild resources optimally
US10031809B2 (en) 2016-07-20 2018-07-24 International Business Machines Corporation Efficient method for rebuilding a set of encoded data slices
US10554752B2 (en) 2016-07-20 2020-02-04 International Business Machines Corporation Efficient transfer of encoded data slice sets to new or alternate storage units
US10459796B2 (en) 2016-07-20 2019-10-29 International Business Machines Corporation Prioritizing rebuilding based on a longevity estimate of the rebuilt slice
US10416930B2 (en) 2016-07-21 2019-09-17 International Business Machines Corporation Global access permit listing
US10379744B2 (en) 2016-07-21 2019-08-13 International Business Machines Corporation System for collecting end-user feedback and usability metrics
US10459790B2 (en) 2016-07-26 2019-10-29 International Business Machines Corporation Elastic storage in a dispersed storage network
US10395043B2 (en) 2016-07-29 2019-08-27 International Business Machines Corporation Securely storing data in an elastically scalable dispersed storage network
US10031805B2 (en) 2016-08-09 2018-07-24 International Business Machines Corporation Assigning slices to storage locations based on a predicted lifespan
US10223036B2 (en) 2016-08-10 2019-03-05 International Business Machines Corporation Expanding a dispersed storage network (DSN)
US10129023B2 (en) 2016-08-11 2018-11-13 International Business Machines Corporation Enhancing security for multiple storage configurations
US10348829B2 (en) 2016-08-15 2019-07-09 International Business Machines Corporation Auto indexing with customizable metadata
US10013309B2 (en) 2016-08-17 2018-07-03 International Business Machines Corporation Missing slice reconstruction in a dispersed storage network
US10379778B2 (en) 2016-08-18 2019-08-13 International Business Machines Corporation Using a master encryption key to sanitize a dispersed storage network memory
US10078468B2 (en) 2016-08-18 2018-09-18 International Business Machines Corporation Slice migration in a dispersed storage network
US10389683B2 (en) 2016-08-26 2019-08-20 International Business Machines Corporation Securing storage units in a dispersed storage network
US10379773B2 (en) 2016-08-29 2019-08-13 International Business Machines Corporation Storage unit for use in a dispersed storage network
US10581807B2 (en) 2016-08-29 2020-03-03 International Business Machines Corporation Using dispersal techniques to securely store cryptographic resources and respond to attacks
US10061524B2 (en) 2016-09-01 2018-08-28 International Business Machines Corporation Wear-leveling of memory devices
US10169149B2 (en) 2016-09-06 2019-01-01 International Business Machines Corporation Standard and non-standard dispersed storage network data access
US10387079B2 (en) 2016-09-09 2019-08-20 International Business Machines Corporation Placement of dispersed storage data based on requestor properties
US10225271B2 (en) 2016-09-09 2019-03-05 International Business Machines Corporation Distributed storage network with enhanced security monitoring
US10547615B2 (en) 2016-09-12 2020-01-28 International Business Machines Corporation Security response protocol based on security alert encoded data slices of a distributed storage network
US10558396B2 (en) 2016-09-14 2020-02-11 International Business Machines Corporation Pre-caching data according to a current or predicted requester location
US10558389B2 (en) 2016-09-20 2020-02-11 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
US10067822B2 (en) 2016-09-26 2018-09-04 International Business Machines Corporation Combined slice objects in alternate memory locations
US10448062B2 (en) 2016-10-26 2019-10-15 International Business Machines Corporation Pre-fetching media content to reduce peak loads
US10394630B2 (en) 2016-10-26 2019-08-27 International Business Machines Corporation Estimating relative data importance in a dispersed storage network
US10481977B2 (en) 2016-10-27 2019-11-19 International Business Machines Corporation Dispersed storage of error encoded data objects having multiple resolutions
US10585751B2 (en) 2016-10-27 2020-03-10 International Business Machines Corporation Partial rebuild operation within a dispersed storage network including local memory and cloud-based alternative memory
US11169731B2 (en) 2016-10-31 2021-11-09 International Business Machines Corporation Managing storage resources in a dispersed storage network
US10585607B2 (en) 2016-11-10 2020-03-10 International Business Machines Corporation Determining an optimum selection of functions for units in a DSN memory
US10540247B2 (en) 2016-11-10 2020-01-21 International Business Machines Corporation Handling degraded conditions using a redirect module
US10114698B2 (en) 2017-01-05 2018-10-30 International Business Machines Corporation Detecting and responding to data loss events in a dispersed storage network
US10782921B2 (en) 2017-01-25 2020-09-22 International Business Machines Corporation Non-writing device finalization of a write operation initiated by another device
US10180787B2 (en) 2017-02-09 2019-01-15 International Business Machines Corporation Dispersed storage write process with lock/persist
US10241865B2 (en) 2017-02-15 2019-03-26 International Business Machines Corporation Handling storage unit failure in a dispersed storage network
US10579309B2 (en) 2017-02-16 2020-03-03 International Business Machines Corporation Method for increasing throughput in a distributed storage network
US10552341B2 (en) 2017-02-17 2020-02-04 International Business Machines Corporation Zone storage—quickly returning to a state of consistency following an unexpected event
US10248495B2 (en) 2017-02-17 2019-04-02 International Business Machines Corporation Eventual consistency intent cleanup in a dispersed storage network
US10382553B2 (en) 2017-02-20 2019-08-13 International Business Machines Corporation Zone storage—resilient and efficient storage transactions
US10394468B2 (en) 2017-02-23 2019-08-27 International Business Machines Corporation Handling data slice revisions in a dispersed storage network
US10241677B2 (en) 2017-02-24 2019-03-26 International Business Machines Corporation Ensuring consistency between content and metadata with intents
US9998147B1 (en) 2017-02-27 2018-06-12 International Business Machines Corporation Method for using write intents in a distributed storage network
US10642532B2 (en) 2017-02-28 2020-05-05 International Business Machines Corporation Storing data sequentially in zones in a dispersed storage network
US10372380B2 (en) 2017-03-01 2019-08-06 International Business Machines Corporation Asserting integrity with a verifiable codec
US10169392B2 (en) 2017-03-08 2019-01-01 International Business Machines Corporation Persistent data structures on a dispersed storage network memory
US11226980B2 (en) 2017-03-13 2022-01-18 International Business Machines Corporation Replicating containers in object storage using intents
US10235241B2 (en) 2017-03-15 2019-03-19 International Business Machines Corporation Method for partial updating data content in a distributed storage network
US10693640B2 (en) 2017-03-17 2020-06-23 International Business Machines Corporation Use of key metadata during write and read operations in a dispersed storage network memory
US10241861B2 (en) 2017-03-23 2019-03-26 International Business Machines Corporation Method for tenant isolation in a distributed computing system
US10133634B2 (en) 2017-03-30 2018-11-20 International Business Machines Corporation Method for performing in-place disk format changes in a distributed storage network
US10360391B2 (en) 2017-04-03 2019-07-23 International Business Machines Corporation Verifiable keyed all-or-nothing transform
US10379961B2 (en) 2017-04-11 2019-08-13 International Business Machines Corporation Ensuring metadata and index consistency using write intents
US10545699B2 (en) 2017-04-11 2020-01-28 International Business Machines Corporation Dynamic retention policies and optional deletes
US10567509B2 (en) 2017-05-15 2020-02-18 International Business Machines Corporation Rebuilding derived content
US10491386B2 (en) 2017-06-01 2019-11-26 International Business Machines Corporation Slice-level keyed encryption with support for efficient rekeying
US10339003B2 (en) 2017-06-01 2019-07-02 International Business Machines Corporation Processing data access transactions in a dispersed storage network using source revision indicators
US10467097B2 (en) 2017-06-02 2019-11-05 International Business Machines Corporation Indicating data health in a DSN memory
US10372381B2 (en) 2017-06-05 2019-08-06 International Business Machines Corporation Implicit leader election in a distributed storage network
US10361813B2 (en) 2017-06-16 2019-07-23 International Business Machine Corporation Using slice routers for improved storage placement determination
US10534548B2 (en) 2017-06-20 2020-01-14 International Business Machines Corporation Validating restricted operations on a client using trusted environments
US10324855B2 (en) 2017-06-23 2019-06-18 International Business Machines Corporation Associating a processing thread and memory section to a memory device
US10540111B2 (en) 2017-06-28 2020-01-21 International Business Machines Corporation Managing data container instances in a dispersed storage network
US10594790B2 (en) 2017-06-28 2020-03-17 International Business Machines Corporation Data compression in a dispersed storage network
US10599502B2 (en) 2017-08-07 2020-03-24 International Business Machines Corporation Fault detection and recovery in a distributed storage network
US10509699B2 (en) 2017-08-07 2019-12-17 International Business Machines Corporation Zone aware request scheduling and data placement
US10671746B2 (en) 2017-08-28 2020-06-02 International Business Machines Corporation Controlling access when processing intents in a dispersed storage network
US10379942B2 (en) 2017-09-27 2019-08-13 International Business Machines Corporation Efficient transfer of objects between containers on the same vault
US10802713B2 (en) 2017-09-29 2020-10-13 International Business Machines Corporation Requester-associated storage entity data
US10409661B2 (en) 2017-09-29 2019-09-10 International Business Machines Corporation Slice metadata for optimized dispersed storage network memory storage strategies
US10585748B2 (en) 2017-09-29 2020-03-10 International Business Machines Corporation Scalable cloud—assigning scores to requesters and treating requests differently based on those scores
US10540120B2 (en) 2017-11-14 2020-01-21 International Business Machines Corporation Contention avoidance on associative commutative updates
US10565392B2 (en) 2017-11-28 2020-02-18 International Business Machines Corporation Secure and verifiable update operations
US10423497B2 (en) 2017-11-28 2019-09-24 International Business Machines Corporation Mechanism for representing system configuration changes as a series of objects writable to an object storage container
US10785194B2 (en) 2017-12-07 2020-09-22 International Business Machines Corporation Processing intents using trusted entities in a dispersed storage network
US10681135B2 (en) 2017-12-08 2020-06-09 International Business Machines Corporation Generating slices from a broadcast message and a recipient identity
US10649867B2 (en) * 2017-12-15 2020-05-12 Western Digital Technologies, Inc. RAID array rebuild assist from external array copy
US11412041B2 (en) 2018-06-25 2022-08-09 International Business Machines Corporation Automatic intervention of global coordinator
US10936452B2 (en) 2018-11-14 2021-03-02 International Business Machines Corporation Dispersed storage network failover units used to improve local reliability
US10726936B2 (en) 2018-12-20 2020-07-28 Micron Technology, Inc. Bad block management for memory sub-systems
EP3989069B1 (en) * 2019-07-22 2023-10-25 Huawei Technologies Co., Ltd. Data reconstruction method and apparatus, computer device, storage medium, and system
US11593026B2 (en) 2020-03-06 2023-02-28 International Business Machines Corporation Zone storage optimization using predictive protocol patterns
TWI748609B (en) * 2020-08-25 2021-12-01 慧榮科技股份有限公司 Data processing method for afa storage device and the afa storage device utilizing the same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5636359A (en) * 1994-06-20 1997-06-03 International Business Machines Corporation Performance enhancement system and method for a hierarchical data cache using a RAID parity scheme
WO2001031456A1 (en) * 1999-10-28 2001-05-03 Connectcom Solutions, Inc. Caching techniques for improving system performance in raid applications

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151641A (en) * 1997-09-30 2000-11-21 Lsi Logic Corporation DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments
US6353895B1 (en) * 1998-02-19 2002-03-05 Adaptec, Inc. RAID architecture with two-drive fault tolerance
US6247157B1 (en) * 1998-05-13 2001-06-12 Intel Corporation Method of encoding data signals for storage
US7188303B2 (en) * 2003-12-29 2007-03-06 Intel Corporation Method, system, and program for generating parity data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5636359A (en) * 1994-06-20 1997-06-03 International Business Machines Corporation Performance enhancement system and method for a hierarchical data cache using a RAID parity scheme
WO2001031456A1 (en) * 1999-10-28 2001-05-03 Connectcom Solutions, Inc. Caching techniques for improving system performance in raid applications

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"THE RAIDBOOK A SOURCE BOOK FOR RAID TECHNOLOGY, PASSAGE" THE RAIDBOOK. A SOURCE BOOK FOR RAID TECHNOLOGY, CHAPTER 10 "RAID AND CACHE", 9 June 1993 (1993-06-09), pages 181-195, XP002379252 *
VILAYANNUR M ET AL: "Discretionary caching for I/O on clusters" CLUSTER COMPUTING AND THE GRID, 2003. PROCEEDINGS. CCGRID 2003. 3RD IEEE/ACM INTERNATIONAL SYMPOSIUM ON 12-15 MAY 2003, PISCATAWAY, NJ, USA,IEEE, 12 May 2003 (2003-05-12), pages 96-103, XP010639741 ISBN: 0-7695-1919-9 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111897487A (en) * 2020-06-15 2020-11-06 北京瀚诺半导体科技有限公司 Method, apparatus, electronic device and medium for managing data
CN111897487B (en) * 2020-06-15 2023-08-18 北京瀚诺半导体科技有限公司 Method, device, electronic equipment and medium for managing data

Also Published As

Publication number Publication date
EP1700201A2 (en) 2006-09-13
US7206899B2 (en) 2007-04-17
JP2007513435A (en) 2007-05-24
US20050144382A1 (en) 2005-06-30
CN1965298A (en) 2007-05-16
CN1965298B (en) 2011-02-02
TWI296757B (en) 2008-05-11
WO2005066761A3 (en) 2006-08-24
TW200530812A (en) 2005-09-16

Similar Documents

Publication Publication Date Title
US7206899B2 (en) Method, system, and program for managing data transfer and construction
US8719520B1 (en) System and method for data migration between high-performance computing architectures and data storage devices with increased data reliability and integrity
US8560772B1 (en) System and method for data migration between high-performance computing architectures and data storage devices
US8397023B2 (en) System and method for handling IO to drives in a memory constrained environment
US6526477B1 (en) Host-memory based raid system, device, and method
US7617361B2 (en) Configureable redundant array of independent disks
US9026845B2 (en) System and method for failure protection in a storage array
US8463992B2 (en) System and method for handling IO to drives in a raid system based on strip size
US20040037120A1 (en) Storage system using fast storage devices for storing redundant data
US8959420B1 (en) Data storage system and method for data migration between high-performance computing architectures and data storage devices using memory controller with embedded XOR capability
US6993676B2 (en) Method and apparatus for fast initialization of redundant arrays of storage devices
US20060236149A1 (en) System and method for rebuilding a storage disk
US9842024B1 (en) Flash electronic disk with RAID controller
EP1700199B1 (en) Method, system, and program for managing parity raid data updates
US7188303B2 (en) Method, system, and program for generating parity data
US7240237B2 (en) Method and system for high bandwidth fault tolerance in a storage subsystem
US7143234B2 (en) Bios storage array
US7318190B2 (en) Storage device parity computation
US6785788B1 (en) System and method for implementing an enhanced raid disk storage system
US7467281B2 (en) Mapping data blocks to storage blocks to wrap around storage devices
US11663080B1 (en) Techniques for performing live rebuild in storage systems that operate a direct write mode
CN116401063A (en) RAID resource allocation method, device, equipment and medium

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200480039136.8

Country of ref document: CN

AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004815156

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2006542901

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Ref document number: DE

WWP Wipo information: published in national office

Ref document number: 2004815156

Country of ref document: EP