US8327080B1 - Write-back cache protection - Google Patents
Write-back cache protection Download PDFInfo
- Publication number
- US8327080B1 US8327080B1 US12/892,081 US89208110A US8327080B1 US 8327080 B1 US8327080 B1 US 8327080B1 US 89208110 A US89208110 A US 89208110A US 8327080 B1 US8327080 B1 US 8327080B1
- Authority
- US
- United States
- Prior art keywords
- data
- block
- sub
- blocks
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000004891 communication Methods 0.000 claims abstract description 27
- 238000013500 data storage Methods 0.000 claims description 74
- 238000003860 storage Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 4
- 238000013459 approach Methods 0.000 description 15
- 238000011084 recovery Methods 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 11
- 238000011010 flushing procedure Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0886—Variable-length word access
Definitions
- a conventional data storage cluster includes multiple data storage nodes and an array of magnetic disk drives, e.g., a redundant array of independent disks (RAID) group.
- Each data storage node writes host data into the array and reads host data from the array on behalf of one or more host computers.
- Some arrays include additional magnetic disk drives to hold error correcting checksums, e.g., for RAID 5, RAID 6 or Reed-Solomon RAID.
- Each data storage node typically includes a processor and cache memory.
- the processor of that node stores the host data in the array and perhaps temporarily buffers the host data in the cache memory.
- the node's processor buffers the host data in the node's cache memory and acknowledges completion of the write command prior to flushing the host data from the node's cache memory to the array of magnetic disk drives.
- the node's processor may provide a full copy of the host data to a second data storage node so that, if the first data storage node were to fail prior to flushing the host data from its cache memory to the array of magnetic disk drives, the full copy of the host data can be retrieved from the cache memory of the second data storage node thus preventing loss of the host data.
- the cluster can be further provisioned to withstand a second node failure (e.g., loss of the host data if the second data storage node were to additionally fail) by configuring the node's processor to provide another full copy of the host data to the cache memory of yet another data storage node (e.g., another full copy of the host data to a third data storage node), and so on.
- a second node failure e.g., loss of the host data if the second data storage node were to additionally fail
- the node's processor to provide another full copy of the host data to the cache memory of yet another data storage node (e.g., another full copy of the host data to a third data storage node), and so on.
- the conventional na ⁇ ve cache protection approach consumes substantial bandwidth and cache memory space.
- a full copy of the host data must be transmitted from the original data storage node to two other data storage nodes (i.e., a bandwidth cost of 2 ⁇ ) and stored in the cache memory of each of the two other data storage nodes (i.e., a cache memory space cost of 2 ⁇ ).
- a full copy of the host data must be transmitted from the original data storage node to three other data storage nodes (i.e., a bandwidth cost of 3 ⁇ ) and stored in the cache memory of each of the three other data storage nodes (i.e., a cache memory space cost of 3 ⁇ ), and so on.
- improved techniques protect cached host data by distributing, among a set of nodes, only portions of the host data (i.e., host data sub-blocks) in combination with a set of checksums.
- the techniques involve splitting the block of host data into N equally-sized, non-overlapping host data sub-blocks and computing M checksum sub-blocks from these N host data sub-blocks.
- the resulting N+M sub-blocks i.e., N host data sub-blocks plus M checksum sub-blocks
- the M checksums are computed via application of error correcting mathematics so that each checksum sub-block is the same size as each host data sub-block and so that the entire block of host data can be reconstructed from any combination of N host data or checksum sub-blocks. Accordingly, the entire block of host data is capable of being recovered after a failure as long as there are at least N cached sub-blocks remaining. Furthermore, it will be demonstrated that such techniques can consume less bandwidth and less cache memory space vis-à-vis the conventional na ⁇ ve cache protection approach.
- Reed-Solomon coding is suitable for use by the improved cache protection techniques.
- the processing circuitry of the node which initially receives a block of host data can compute the M checksums using linear algebra over a Galois Field. That is, the processing circuitry of that node splits the block of host data into the N host data sub-blocks, and multiplies the host data sub-block vector with a Vandermonde matrix. Since the Vandermonde matrix guarantees a set of linearly independent equations, any N ⁇ N matrix made up of rows from the identity matrix and Vandermonde matrix is invertible and is the key property that allows any N host data or checksum sub-blocks to be used to recover the original host data sub-blocks.
- Linear Algebra over a Galois Field is performed using XOR operations for addition and subtraction. Furthermore, log addition and log subtraction are used for multiplication and division operations on the Galois Field.
- the node A( 0 ) then performs a set of caching operations to distribute sub-blocks b( 1 ), b( 2 ) and c( 1 ) among the other nodes A( 1 ), A( 2 ) and A( 3 ).
- node A( 1 ) caches sub-block b( 1 )
- node A( 2 ) caches sub-block b( 2 )
- node A( 3 ) caches sub-block c( 1 ).
- Node A( 0 ) then acknowledges completion of the write to the host computer (i.e., write-back caching).
- data storage cluster is capable of losing up to two nodes (i.e., level 2 cache protection) while maintaining its ability to reconstruct the original host data block B using Reed-Solomon mathematics.
- nodes A( 0 ) and A( 1 ) fail, the entire host data block B can be reconstructed from host data sub-block b( 2 ) cached on node A( 2 ) and checksum sub-block c( 1 ) cached on node A( 3 ).
- the entire host data block B can be reconstructed from host data sub-block b( 1 ) cached on node A( 1 ) and checksum sub-block c( 1 ) cached on node A( 3 ). Furthermore, if nodes A( 0 ) and A( 3 ) fail, the entire host data block B can be reconstructed from host data sub-block b( 1 ) cached on node A( 1 ) and host data sub-block b( 2 ) cached on node A( 2 ).
- the amount of consumed network bandwidth equals 1.5 ⁇ the size of block B since sub-blocks b( 1 ), b( 2 ), c( 1 ) were sent from node A( 0 ) to nodes A( 1 ), A( 2 ), A( 3 ), respectively.
- the above-described conventional na ⁇ ve cache protection approach would require 2 ⁇ the size of the block B in network bandwidth to protect against a failure of two nodes, i.e., block B would be fully copied to two other nodes. Accordingly, the above-described embodiment of the improved technique uses less bandwidth for the same level of cache protection.
- the amount of consumed cache memory space on other nodes equals 1.5 ⁇ the size of block B since sub-blocks b( 1 ), b( 2 ), c( 1 ) were cached on nodes A( 1 ), A( 2 ), A( 3 ), respectively.
- the above-described conventional na ⁇ ve cache protection approach would require 2 ⁇ the size of the block B in cache memory space on other nodes to protect against a failure of two nodes, i.e., block B would be fully cached on two other nodes. Accordingly, the above-described embodiment of the improved technique uses less cache memory space for the same level of cache protection.
- One embodiment is directed to a method of protecting host data.
- the method includes receiving, at a local computerized node, a block of data from a host computer.
- the block of data includes data sub-blocks.
- the method further includes storing the block of data, as a dirty cache block, in a local cache of the local computerized node.
- the method further includes performing a set of external caching operations to cache a set of sub-blocks in a set of external computerized nodes in communication with the local computerized node.
- Each external caching operation caches a respective sub-block of the set of sub-blocks in a cache of a respective external computerized node.
- the set of sub-blocks includes (i) the data sub-blocks of the block of data from the host and (ii) a set of checksums derived from the data sub-blocks of the block of data from the host.
- FIG. 1 is a block diagram of a data storage environment which provides write-back cache protection of host data.
- FIG. 2 is a block diagram of a data storage node of the data storage environment of FIG. 1 .
- FIG. 3 is a flowchart of a procedure performed by a data storage node when protecting host data.
- FIG. 4 is a flowchart of a procedure performed by a data storage node when recovering host data.
- FIG. 5 is a block diagram of a first example illustrating how sub-blocks can be distributed among data storage nodes of the data storage environment of FIG. 1 .
- FIG. 6 is a block diagram of a second example illustrating how sub-blocks can be distributed among data storage nodes of the data storage environment of FIG. 1 .
- An improved technique protects cached host data by spreading, across a set of nodes, only portions of the host data (i.e., host data sub-blocks) in combination with a set of checksums (e.g., erasure codes).
- the technique involves splitting the block of host data into N equally-sized, non-overlapping host data sub-blocks and computing M checksum sub-blocks from these N host data sub-blocks.
- the resulting N+M sub-blocks i.e., N host data sub-blocks plus M checksum sub-blocks
- the M checksums are computed via application of error correcting mathematics (e.g., Reed-Solomon coding) so that the checksums are the same size as the host data sub-blocks and so that the entire block of host data can be reconstructed from any combination of N sub-blocks. Accordingly, the entire block of host data is capable of being recovered after a failure as long as there are at least N sub-blocks cached on the remaining nodes. Moreover, it will be demonstrated that such techniques can consume less bandwidth and less cache memory space vis-à-vis a conventional na ⁇ ve cache protection approach.
- error correcting mathematics e.g., Reed-Solomon coding
- FIG. 1 shows a data storage environment 20 which provides write-back cache protection of host data.
- the data storage environment 20 includes a set of host computers 22 (A), 22 (B), . . . (collectively, hosts 22 ), a front-end communications medium 24 , a set of computerized nodes 26 ( 1 ), 26 ( 2 ), . . . 26 (X) (collectively, computerized nodes 26 ), a back-end communications medium 28 , and a data storage assembly 30 .
- the front-end communications medium 24 conveys electronic signals 32 between the hosts 22 and the nodes 26 .
- the back-end communications medium 28 conveys electronic signals 34 between the nodes 26 and the data storage assembly 30 .
- Each communications medium 24 , 28 may include various components (IP-based devices, block-based devices, cables, switches, gateways/bridges, other SAN/NAS communications devices and interfaces, combinations thereof, etc.) and have a variety of topologies (e.g., switched fabric, hub-and-spoke, ring/loop, backbone, multi-drop, point-to-point, irregular, combinations thereof, etc.).
- the communications media 24 , 28 are isolated from each other. Such an arrangement enables at least portions of the communications media 24 , 28 to exclusively handle different types of communications, e.g., the communications medium 24 may be a computer network (IP-based communications) while the communications medium 28 may be a storage network (block-based communications).
- IP-based communications computer network
- block-based communications block-based communications
- the communications media 24 , 28 are at least partially connected or overlap. Such an arrangement enables IP-based storage and block-based storage to be conveniently accessible by each node 26 via a single communications interface.
- each host 22 is capable of sending write commands 36 and host data 38 to the nodes 26 to store the host data 38 in the data storage assembly 30 (e.g., see the host 22 (A)).
- each host 22 is capable of sending read commands 40 to the nodes 26 to read the host data 38 from the data storage assembly 30 (e.g., see the host 22 (B)).
- the nodes 26 preferably coordinate their operation as a data storage cluster 42 .
- the nodes 26 are capable of load balancing their operations.
- each node 26 is capable of filling in for another node 26 which has failed or become inoperative thus maintaining operation of the cluster 42 as a whole in a fault tolerant manner.
- the data storage assembly 30 preferably includes one or more arrays 44 of magnetic disk drives 46 which stores the host data 38 in a non-volatile (i.e., persistent) manner.
- multiple disk drives 46 are configured into one or more RAID groups which implement a particular RAID level to enable recovery of the host data 38 in the event of one or more disk drive failures (e.g., RAID 1, RAID 5, RAID 6, etc.).
- the nodes 26 are configured to (i) perform write-back caching and (ii) protect cached host data 38 against node failures. That is, each node 26 of the cluster 42 is configured to acknowledge completion of a write command 36 after that node 26 caches the accompanying host data 38 but before writing that host data 38 to the data storage assembly 30 . To prevent inadvertent loss of the host data 38 if that node 26 were to fail, that node 26 remotely caches respective sub-blocks 50 among the other nodes 26 of the cluster 42 before acknowledging the write command 36 .
- the sub-blocks 50 include N equally-sized, non-overlapping host data sub-blocks 52 (i.e., sub-blocks of the actual host data 38 ) and M error correcting checksums 54 (i.e., erasure codes derived from the N host data sub-blocks).
- N+M sub-blocks 50 Once all of the N+M sub-blocks 50 have been distributed among the other nodes 26 of the cluster 42 , up to M other nodes 26 as well as the node 26 storing the original block of host data 38 can fail. Even so, the entire block of host data 38 can be fully reconstructed from the remaining N sub-blocks 50 on the remaining nodes 26 .
- Reed-Solomon mathematics is suitable for computing the M checksums 54 from N host data sub-blocks 52 , as wells as fully reconstructing the host data 38 from any combination of N sub-blocks 50 (i.e., any combination of N host data sub-blocks 52 and checksum sub-blocks 54 ). Further details will now be provided with reference to FIG. 2 .
- FIG. 2 shows a data storage node 26 of the data storage environment 20 .
- the data storage node 26 includes interface circuitry 80 , a controller 82 , and a cache 84 .
- the interface circuitry 80 is constructed and arranged to enable the data storage node 26 to communicate with a variety of external devices (e.g., a network interface for TCP/IP based communications, a storage interface for block-based communications, etc.).
- the controller 82 is configured to perform input/output (I/O) operations (e.g., reads and writes) on behalf of one or more host computers 22 (also see FIG. 1 ).
- the cache 84 temporarily stores the host data 38 en route between the host computers 22 and the data storage assembly 30 .
- the controller 82 is constructed and arranged to coordinate operation of the node 26 with the other nodes 26 of the data storage cluster 42 and operate in a write-back caching mode. For example, when a host computer 22 attempts to write a block of host data 38 to the data storage assembly 30 , the node 26 receives a write command 36 and the block of host data 38 from a host computer 22 (also see FIG. 1 ). In response to the write command 36 , the controller 82 of the node 26 safely caches the block of host data 38 in the cache 84 as a dirty cache block. Additionally, the controller 82 splits the dirty cache block into N host data sub-blocks 52 and computes M checksums 54 from N host data sub-blocks 52 .
- the controller 82 then distributes the N+M sub-blocks 50 (i.e., the N host data sub-blocks 52 and the M checksum sub-blocks 54 ) to the other nodes 26 of the cluster 42 , and acknowledges completion of the write command 36 to the host computer 22 prior to flushing the dirty cache block to the data storage assembly 30 .
- N+M sub-blocks 50 i.e., the N host data sub-blocks 52 and the M checksum sub-blocks 54
- Such operation reduces perceived I/O latency for the write command 36 since acknowledgement of the write command 36 is sent before the block of host data 38 is written out to the data storage assembly 30 . Furthermore, such operation provides robust and reliable cache protection and can enable savings of network bandwidth as well as cache memory space vis-à-vis a conventional na ⁇ ve cache protection approach.
- the controller 82 is implemented by a set of processors (one or more processors) running a specialized application 86 .
- the specialized application 86 is capable of being delivered to the data storage node 26 via a computer program product 88 having a non-transitory computer readable storage medium which stores instructions of the specialized application 86 .
- suitable non-transitory computer readable storage media include tangible articles of manufacture and apparatus which store instructions in a non-volatile manner such as CD-ROM, flash memory, disk memory, tape memory, combinations thereof, and the like.
- FIG. 3 is a flowchart of a procedure 100 performed by a data storage node 26 when protecting a block of host data 38 .
- the data storage node 26 receives, through the communications interface 80 , a write command 36 and a block of host data 38 from a host computer 22 .
- the block of host data 38 includes adjacent host data sub-blocks 52 (also see FIGS. 1-2 ).
- step 104 the data storage node 26 stores the block of host data 38 , as a dirty cache block, in its local cache 84 . At this point, if the node 26 were to fail, the block of host data 38 would be lost. Accordingly, the node 26 does not yet acknowledge completion of the write command 36 .
- the data storage node 26 provides a set of sub-blocks 50 .
- the node 26 inputs, from the block of host data 38 , N host data sub-blocks 52 into a computation that results in M checksum sub-blocks 54 from the N host data sub-blocks 52 .
- the node 26 now has N+M sub-blocks 50 .
- the node 26 performs, through the communications interface 80 , a set of external caching operations to cache the set of sub-blocks 50 among other nodes 26 .
- Each external caching operation caches a respective sub-block 50 in a cache of a respective external computerized node 26 .
- the cached block of host data 38 is safely protected. In particular, the entire block of host data 38 is capable of being recovered from any N sub-blocks 50 .
- step 110 the data storage node 26 acknowledges completion of the write command 36 to the host computer 22 prior to flushing the dirty cache block out to disk.
- This write-back caching behavior provides a reduction in I/O latency compared to write-back caching using a conventional na ⁇ ve cache protection approach.
- step 112 the data storage node 26 flushes the dirty cache block in the data storage assembly 30 .
- the block of host data 38 is safely stored in persistent storage (e.g., magnetic disk drives). Further details will now be provided with reference to FIG. 4 .
- FIG. 4 is a flowchart of a procedure 140 which is performed in response to one or more node failures of the cluster 42 . It should be understood that such reconstruction is only necessary if another data storage node 26 had cached an original block of host data 38 but failed prior to flushing the original block of host data 38 out to disk. For example, reconstruction would be appropriate if a node 26 performed steps 102 through 110 of the procedure 100 but then failed prior to completing step 112 (also see FIG. 3 ).
- the recovery node 26 detects the failure situation and determines that it is responsible for reconstructing the block of host data 38 from at least N remaining sub-blocks 50 . To begin the recovery process, the recovery node 26 identifies the locations of the remaining sub-blocks 50 among the remaining nodes 26 . It should be understood that one of the sub-block 50 may already reside in the local cache of the recovery node 26 .
- the recovery node 26 obtains at least N sub-blocks 50 from the remaining nodes 26 (perhaps one of the sub-blocks 50 already residing in local cache), and computes any lost host data sub-blocks 52 from the available host data sub-blocks 52 and the available checksum sub-blocks 54 . If the particular host data sub-block 52 already exists, it is unnecessary to re-compute that host data sub-block 52 . It is possible that there are no lost host data sub-blocks 52 if all of the nodes 26 caching the host data sub-blocks 52 are still operational.
- the node 26 systematically recovers the lost host data sub-blocks 52 .
- the node 26 finds the inverse matrix for an N ⁇ N matrix consisting of the corresponding identity matrix row or Vandermonde matrix row for which the host data or checksum sub-blocks 50 are available and then performs matrix multiplication on the vector consisting of available host data sub-blocks 52 and checksum sub-blocks 54 in order to recover all of the host data sub-blocks 52 .
- the number of possible inverse matrices is limited and thus the inverse matrices can be pre-computed.
- recovery is simply a matrix by vector multiplication over a Galois Field and can implemented using a table lookup.
- step 144 the node 26 reconstructs the block of host data 38 from the N host data sub-blocks 52 .
- the block of host data 38 is now fully reassembled and can be safely stored in a non-volatile manner on the data storage assembly 30 . Further details of how the various sub-blocks are generated and distributed will now be provided by way of an example and with reference to FIG. 5 .
- FIG. 5 shows, in the context of an example embodiment, how a data storage cluster 42 provides cache protection for blocks of host data (also see FIGS. 1-2 ).
- the node A[i] receives a write command and block B of host data from one of the host computers 22 (also see step 102 in FIG. 3 ).
- Node A[i] safely caches block B in its local cache 84 (also see step 104 in FIG. 3 ), and identifies N+M protection nodes.
- Such identification can be represented as follows:
- node A[i] splits block B into four host data sub-blocks 52 , and computes a checksum sub-block 54 based on the host data sub-blocks 54 (also see step 106 in FIG. 3 ). This can be represented as follows:
- node A[i] distributes the four host data sub-blocks 52 and the checksum sub-block 54 to the other protection nodes (also see step 108 in FIG. 3 ). This can be represented as follows:
- the cluster 42 is able to withstand a failure of up to two arbitrary nodes (i.e., level 2 cache protection).
- level 2 cache protection i.e., level 2 cache protection
- the node 26 acknowledges completion of the write command (step 110 of FIG. 3 ) upon confirmation that the protection sub-blocks 50 have been safely cached in the other nodes 26 of the cluster 42 .
- the node 26 ultimately flushes block B out to disk (step 112 of FIG. 3 ) to complete the formal write operation to disk. Further details will now be provided with reference to FIG. 6 .
- FIG. 6 shows, in the context of another example embodiment, how a data storage cluster provides cache protection for blocks of host data.
- the example of FIG. 6 is similar to that of FIG. 5 except that the example of FIG. 6 provides level 4 protection, i.e., the cluster 42 can withstand up to four node failures while maintaining cache protection.
- M three checksum sub-blocks
- node A[i] splits block B into four host data sub-blocks 52 , and computes three checksum sub-blocks 54 based on the host data sub-blocks 54 (also see step 106 in FIG. 3 ). This can be represented as follows:
- node A[i] distributes the four host data sub-blocks 52 and the three checksum sub-blocks 54 to the other protection nodes (also see step 108 in FIG. 3 ). This can be represented as follows:
- the cluster 42 is able to withstand a failure of up to four arbitrary nodes (i.e., level 4 cache protection).
- the original block B is capable of being fully recovered from any four protection sub-blocks 50 (i.e., any combination of four host data sub-blocks and checksum sub-blocks) for high reliability.
- double fault protection (encoding and recovery) can be computed very efficiently using only XOR operations.
- Triple fault protection can be computed with XOR operations and bit shifting.
- protection beyond triple fault protection can be performed using table lookup.
- improved techniques protect cached host data 38 by distributing, among a set of nodes 26 , only portions of the host data 38 in combination with a set of checksums 54 .
- the techniques involve splitting the block of host data 38 into N equally-sized, non-overlapping host data sub-blocks 52 and computing M checksum sub-blocks 54 from these N host data sub-blocks 52 .
- the resulting N+M sub-blocks 50 i.e., N host data sub-blocks 52 and M checksum sub-blocks 54
- the M checksums 54 are computed via application of error correcting mathematics so that the checksums 54 are the same size as the host data sub-blocks 52 and so that the entire block of host data 38 can be reconstructed from any combination of N sub-blocks 50 . Accordingly, the entire block of host data 38 is capable of being recovered after a failure as long as there are at least N cached sub-blocks 50 remaining. Such techniques can consume less bandwidth and less cache memory space vis-à-vis the conventional na ⁇ ve cache protection approach.
- node clusters 42 were described above for illustration purposes only. Other numbers of nodes 26 can be utilized as well (e.g., 5, 6, 7, 9, 10, and so on).
- Reed-Solomon coding to cache protection can be independent of any RAID level which is implemented in back-end storage. That is, the data storage assembly 30 is capable of implementing different data protection schemes.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
-
- B is the block of host data that needs to be protected (size is power of 2),
- b(1), . . . , b(N) are the host data sub-blocks in B that are used as Reed-Solomon inputs for checksum generation,
- c(1), . . . , c(M) are the checksum blocks computed using Reed-Solomon mathematics on b(1), . . . , b(N),
- X is number of nodes in the data storage cluster (although only six nodes are shown in
FIG. 5 since only six nodes participate in protecting block B), - A[i] is the ith node in the cluster (zero based index)
-
- locate N+M protection nodes from the X nodes of the cluster in accordance with Node A[(i+j) % X] for j=1, 2, . . . , N+M
-
- split block B into host data sub-blocks b(1), b(2), b(3), b(4)
- compute the checksum sub-block c(1) from the host data sub-blocks b(1), b(2), b(3), b(4) using Reed-Solomon (details omitted)
- note that the bytes in the sub-blocks can be striped/interleaved within block B to improve CPU caching if required (the trade off is encoding efficiency vs. recovery efficiency).
-
- Node[i] safely maintains entire block B in local cache, i.e., all of the host data sub-blocks b(1), b(2), b(3), b(4) (previous step 104)
- Node[(i+1)%8] safely caches host data sub-block b(1)
- Node[(i+2)%8] safely caches host data sub-block b(2)
- Node[(i+3)%8] safely caches host data sub-block b(3)
- Node[(i+4)%8] safely caches host data sub-block b(4)
- Node[(i+5)%8] safely caches checksum sub-block c(1)
-
- split block B into host data sub-blocks b(1), b(2), b(3), b(4)
- compute the checksum sub-blocks c(1), c(2), c(3) from the host data sub-blocks b(1), b(2), b(3), b(4) using Reed-Solomon (details omitted)
- note that the bytes in the sub-blocks can be striped/interleaved within block B to improve CPU caching if required (the trade off is encoding efficiency vs. recovery efficiency).
-
- Node[i] safely maintains entire block B in local cache, i.e., all of the host data sub-blocks b(1), b(2), b(3), b(4) (previous step 104)
- Node[(i+1)%8] safely caches host data sub-block b(1)
- Node[(i+2)%8] safely caches host data sub-block b(2)
- Node[(i+3)%8] safely caches host data sub-block b(3)
- Node[(i+4)%8] safely caches host data sub-block b(4)
- Node[(i+5)%8] safely caches checksum sub-block c(1)
- Node[(i+6)%8] safely caches checksum sub-block c(2)
- Node[(i+7)%8] safely caches checksum sub-block c(3)
-
- RS(N,M)=Reed-Solomon with N input host data sub-blocks 52 and
M checksum sub-blocks 54 - P=Level of cache protection, i.e., protection against any M+1 node failures
- RS(N,M)=Reed-Solomon with N input host data sub-blocks 52 and
TABLE 1 | |
Naïve Cache | |
Protection | |
Improved Cache Protection Technique | Approach |
Nodes | Protection Sub-blocks | RS(N,M) | P | | Layout | Cost | |
4, 8 | b(1),b(2),c(1) | RS(2,1) | 2 | 1.50 | B,B | 2.00 | |
8 | b(1),b(2),b(3),b(4),c(1) | RS(4,1) | 2 | 1.25 | B,B | 2.00 | |
8 | b(1),b(2),c(1),c(2) | RS(2,2) | 3 | 2.00 | B,B,B | 3.00 | |
8 | b(1),b(2),b(3),b(4), | RS(4,2) | 3 | 1.50 | B,B,B | 3.00 | |
c(1),c(2) | |||||||
8 | b(1),b(2),b(3),b(4), | RS(4,3) | 4 | 1.75 | B,B,B,B | 4.00 | |
c(1),c(2),c(3) | |||||||
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/892,081 US8327080B1 (en) | 2010-09-28 | 2010-09-28 | Write-back cache protection |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/892,081 US8327080B1 (en) | 2010-09-28 | 2010-09-28 | Write-back cache protection |
Publications (1)
Publication Number | Publication Date |
---|---|
US8327080B1 true US8327080B1 (en) | 2012-12-04 |
Family
ID=47226838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/892,081 Active 2031-03-23 US8327080B1 (en) | 2010-09-28 | 2010-09-28 | Write-back cache protection |
Country Status (1)
Country | Link |
---|---|
US (1) | US8327080B1 (en) |
Cited By (205)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130086330A1 (en) * | 2011-09-30 | 2013-04-04 | Oracle International Corporation | Write-Back Storage Cache Based On Fast Persistent Memory |
US20140053227A1 (en) * | 2012-08-14 | 2014-02-20 | Adi Ruppin | System and Method for Secure Synchronization of Data Across Multiple Computing Devices |
US8850108B1 (en) * | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
CN104156327A (en) * | 2014-08-25 | 2014-11-19 | 曙光信息产业股份有限公司 | Method for recognizing object power failure in write back mode in distributed file system |
WO2014205667A1 (en) * | 2013-06-26 | 2014-12-31 | 华为技术有限公司 | Network volume creating method, data storage method, storage device and storage system |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US9032061B1 (en) * | 2011-12-30 | 2015-05-12 | Emc Corporation | Policy based intelligent data placement |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US9087012B1 (en) | 2014-06-04 | 2015-07-21 | Pure Storage, Inc. | Disaster recovery at high reliability in a storage cluster |
US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US9280469B1 (en) | 2012-12-28 | 2016-03-08 | Emc Corporation | Accelerating synchronization of certain types of cached data |
US9361232B2 (en) | 2008-09-19 | 2016-06-07 | Oracle International Corporation | Selectively reading data from cache and primary storage |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US9405694B2 (en) | 2009-09-14 | 2016-08-02 | Oracle Internation Corporation | Caching data between a database server and a storage system |
US9430383B2 (en) | 2013-09-20 | 2016-08-30 | Oracle International Corporation | Fast data initialization |
US9444496B2 (en) | 2012-04-04 | 2016-09-13 | University Of Southern California | Correctable parity protected memory |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US20170004082A1 (en) * | 2015-07-02 | 2017-01-05 | Netapp, Inc. | Methods for host-side caching and application consistent writeback restore and devices thereof |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
US9612953B1 (en) | 2014-01-16 | 2017-04-04 | Pure Storage, Inc. | Data placement based on data properties in a tiered storage device system |
US9612952B2 (en) | 2014-06-04 | 2017-04-04 | Pure Storage, Inc. | Automatically reconfiguring a storage memory topology |
CN106569730A (en) * | 2015-10-08 | 2017-04-19 | 光宝电子(广州)有限公司 | Solid state device and relevant data writing method thereof |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US9672125B2 (en) | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US9766972B2 (en) | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
US9772793B2 (en) | 2013-09-20 | 2017-09-26 | Oracle International Corporation | Data block movement offload to storage systems |
US9798655B2 (en) | 2013-09-20 | 2017-10-24 | Oracle International Corporation | Managing a cache on storage devices supporting compression |
WO2017186871A1 (en) * | 2016-04-27 | 2017-11-02 | Memoscale As | Data protection coding technique |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US9817576B2 (en) | 2015-05-27 | 2017-11-14 | Pure Storage, Inc. | Parallel update to NVRAM |
US9817750B2 (en) | 2014-07-03 | 2017-11-14 | Pure Storage, Inc. | Profile-dependent write placement of data into a non-volatile solid-state storage |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US9948615B1 (en) | 2015-03-16 | 2018-04-17 | Pure Storage, Inc. | Increased storage unit encryption based on loss of trust |
US20180173435A1 (en) * | 2016-12-21 | 2018-06-21 | EMC IP Holding Company LLC | Method and apparatus for caching data |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US10114757B2 (en) | 2014-07-02 | 2018-10-30 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US10133667B2 (en) | 2016-09-06 | 2018-11-20 | Orcle International Corporation | Efficient data storage and retrieval using a heterogeneous main memory |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US10140149B1 (en) | 2015-05-19 | 2018-11-27 | Pure Storage, Inc. | Transactional commits with hardware assists in remote memory |
US10146616B1 (en) * | 2015-03-31 | 2018-12-04 | EMC IP Holding Company LLC | Cache based recovery of corrupted or missing data |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
US10216420B1 (en) | 2016-07-24 | 2019-02-26 | Pure Storage, Inc. | Calibration of flash channels in SSD |
US10229161B2 (en) | 2013-09-20 | 2019-03-12 | Oracle International Corporation | Automatic caching of scan and random access data in computing systems |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US10331573B2 (en) | 2016-11-04 | 2019-06-25 | Oracle International Corporation | Detection of avoidable cache thrashing for OLTP and DW workloads |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US10380021B2 (en) | 2013-03-13 | 2019-08-13 | Oracle International Corporation | Rapid recovery from downtime of mirrored storage device |
US10445013B2 (en) | 2016-09-23 | 2019-10-15 | EMC IP Holding Company LLC | Method and device for storing data |
US10454498B1 (en) | 2018-10-18 | 2019-10-22 | Pure Storage, Inc. | Fully pipelined hardware engine design for fast and efficient inline lossless data compression |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US10642837B2 (en) | 2013-03-15 | 2020-05-05 | Oracle International Corporation | Relocating derived cache during data rebalance to maintain application performance |
US10678452B2 (en) | 2016-09-15 | 2020-06-09 | Pure Storage, Inc. | Distributed deletion of a file and directory hierarchy |
US10691567B2 (en) | 2016-06-03 | 2020-06-23 | Pure Storage, Inc. | Dynamically forming a failure domain in a storage system that includes a plurality of blades |
US10705768B2 (en) | 2016-06-22 | 2020-07-07 | EMC IP Holding Company LLC | Method and system for managing storage using an intermediate storage area |
US10705732B1 (en) | 2017-12-08 | 2020-07-07 | Pure Storage, Inc. | Multiple-apartment aware offlining of devices for disruptive and destructive operations |
US10719446B2 (en) | 2017-08-31 | 2020-07-21 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
US10733053B1 (en) | 2018-01-31 | 2020-08-04 | Pure Storage, Inc. | Disaster recovery for high-bandwidth distributed archives |
US10732836B2 (en) | 2017-09-29 | 2020-08-04 | Oracle International Corporation | Remote one-sided persistent writes |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US10802766B2 (en) | 2017-09-29 | 2020-10-13 | Oracle International Corporation | Database with NVDIMM as persistent storage |
US10803039B2 (en) | 2017-05-26 | 2020-10-13 | Oracle International Corporation | Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US10853146B1 (en) | 2018-04-27 | 2020-12-01 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10931450B1 (en) | 2018-04-27 | 2021-02-23 | Pure Storage, Inc. | Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers |
US10929053B2 (en) | 2017-12-08 | 2021-02-23 | Pure Storage, Inc. | Safe destructive actions on drives |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10956335B2 (en) | 2017-09-29 | 2021-03-23 | Oracle International Corporation | Non-volatile cache access using RDMA |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10979223B2 (en) | 2017-01-31 | 2021-04-13 | Pure Storage, Inc. | Separate encryption for a solid-state drive |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US10990566B1 (en) | 2017-11-20 | 2021-04-27 | Pure Storage, Inc. | Persistent file locks in a storage system |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US11068389B2 (en) | 2017-06-11 | 2021-07-20 | Pure Storage, Inc. | Data resiliency with heterogeneous storage |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US11080155B2 (en) | 2016-07-24 | 2021-08-03 | Pure Storage, Inc. | Identifying error types among flash memory |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11190580B2 (en) | 2017-07-03 | 2021-11-30 | Pure Storage, Inc. | Stateful connection resets |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
US11231858B2 (en) | 2016-05-19 | 2022-01-25 | Pure Storage, Inc. | Dynamically configuring a storage system to facilitate independent scaling of resources |
US11232079B2 (en) | 2015-07-16 | 2022-01-25 | Pure Storage, Inc. | Efficient distribution of large directories |
US11256587B2 (en) | 2020-04-17 | 2022-02-22 | Pure Storage, Inc. | Intelligent access to a storage device |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US11294893B2 (en) | 2015-03-20 | 2022-04-05 | Pure Storage, Inc. | Aggregation of queries |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US11438279B2 (en) | 2018-07-23 | 2022-09-06 | Pure Storage, Inc. | Non-disruptive conversion of a clustered service from single-chassis to multi-chassis |
US11436023B2 (en) | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
US11449232B1 (en) | 2016-07-22 | 2022-09-20 | Pure Storage, Inc. | Optimal scheduling of flash operations |
US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
US11507297B2 (en) | 2020-04-15 | 2022-11-22 | Pure Storage, Inc. | Efficient management of optimal read levels for flash storage systems |
US11513974B2 (en) | 2020-09-08 | 2022-11-29 | Pure Storage, Inc. | Using nonce to control erasure of data blocks of a multi-controller storage system |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US11567917B2 (en) | 2015-09-30 | 2023-01-31 | Pure Storage, Inc. | Writing data and metadata into storage |
US11581943B2 (en) | 2016-10-04 | 2023-02-14 | Pure Storage, Inc. | Queues reserved for direct access via a user application |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US11650976B2 (en) | 2011-10-14 | 2023-05-16 | Pure Storage, Inc. | Pattern matching using hash tables in storage system |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US11675762B2 (en) | 2015-06-26 | 2023-06-13 | Pure Storage, Inc. | Data structures for key management |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11706895B2 (en) | 2016-07-19 | 2023-07-18 | Pure Storage, Inc. | Independent scaling of compute resources and storage resources in a storage system |
US11714572B2 (en) | 2019-06-19 | 2023-08-01 | Pure Storage, Inc. | Optimized data resiliency in a modular storage system |
US11714708B2 (en) | 2017-07-31 | 2023-08-01 | Pure Storage, Inc. | Intra-device redundancy scheme |
US11722455B2 (en) | 2017-04-27 | 2023-08-08 | Pure Storage, Inc. | Storage cluster address resolution |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
US11836348B2 (en) | 2018-04-27 | 2023-12-05 | Pure Storage, Inc. | Upgrade for system with differing capacities |
US11842053B2 (en) | 2016-12-19 | 2023-12-12 | Pure Storage, Inc. | Zone namespace |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US11847013B2 (en) | 2018-02-18 | 2023-12-19 | Pure Storage, Inc. | Readable data determination |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US11893023B2 (en) | 2015-09-04 | 2024-02-06 | Pure Storage, Inc. | Deterministic searching using compressed indexes |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
US11899932B2 (en) * | 2010-10-11 | 2024-02-13 | Nec Corporation | Storage system having cross node data redundancy and method and computer readable medium for same |
US11922070B2 (en) | 2016-10-04 | 2024-03-05 | Pure Storage, Inc. | Granting access to a storage device based on reservations |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
US11995318B2 (en) | 2016-10-28 | 2024-05-28 | Pure Storage, Inc. | Deallocated block determination |
US11995336B2 (en) | 2018-04-25 | 2024-05-28 | Pure Storage, Inc. | Bucket views |
US12001684B2 (en) | 2019-12-12 | 2024-06-04 | Pure Storage, Inc. | Optimizing dynamic power loss protection adjustment in a storage system |
US12001688B2 (en) | 2019-04-29 | 2024-06-04 | Pure Storage, Inc. | Utilizing data views to optimize secure data access in a storage system |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US12032848B2 (en) | 2021-06-21 | 2024-07-09 | Pure Storage, Inc. | Intelligent block allocation in a heterogeneous storage system |
US12032724B2 (en) | 2017-08-31 | 2024-07-09 | Pure Storage, Inc. | Encryption in a storage array |
US12038927B2 (en) | 2015-09-04 | 2024-07-16 | Pure Storage, Inc. | Storage system having multiple tables for efficient searching |
US12039165B2 (en) | 2016-10-04 | 2024-07-16 | Pure Storage, Inc. | Utilizing allocation shares to improve parallelism in a zoned drive storage system |
US12056365B2 (en) | 2020-04-24 | 2024-08-06 | Pure Storage, Inc. | Resiliency for a storage system |
US12061814B2 (en) | 2021-01-25 | 2024-08-13 | Pure Storage, Inc. | Using data similarity to select segments for garbage collection |
US12067282B2 (en) | 2020-12-31 | 2024-08-20 | Pure Storage, Inc. | Write path selection |
US12067274B2 (en) | 2018-09-06 | 2024-08-20 | Pure Storage, Inc. | Writing segments and erase blocks based on ordering |
US12079494B2 (en) | 2018-04-27 | 2024-09-03 | Pure Storage, Inc. | Optimizing storage system upgrades to preserve resources |
US12079125B2 (en) | 2019-06-05 | 2024-09-03 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US12087382B2 (en) | 2019-04-11 | 2024-09-10 | Pure Storage, Inc. | Adaptive threshold for bad flash memory blocks |
US12093545B2 (en) | 2020-12-31 | 2024-09-17 | Pure Storage, Inc. | Storage system with selectable write modes |
US12099742B2 (en) | 2021-03-15 | 2024-09-24 | Pure Storage, Inc. | Utilizing programming page size granularity to optimize data segment storage in a storage system |
US12105620B2 (en) | 2016-10-04 | 2024-10-01 | Pure Storage, Inc. | Storage system buffering |
US12135878B2 (en) | 2019-01-23 | 2024-11-05 | Pure Storage, Inc. | Programming frequently read data to low latency portions of a solid-state storage array |
US12137140B2 (en) | 2014-06-04 | 2024-11-05 | Pure Storage, Inc. | Scale out storage platform having active failover |
US12141118B2 (en) | 2016-10-04 | 2024-11-12 | Pure Storage, Inc. | Optimizing storage system performance using data characteristics |
US12153818B2 (en) | 2020-09-24 | 2024-11-26 | Pure Storage, Inc. | Bucket versioning snapshots |
US12158814B2 (en) | 2014-08-07 | 2024-12-03 | Pure Storage, Inc. | Granular voltage tuning |
US12175124B2 (en) | 2018-04-25 | 2024-12-24 | Pure Storage, Inc. | Enhanced data access using composite data views |
US12182044B2 (en) | 2014-07-03 | 2024-12-31 | Pure Storage, Inc. | Data storage in a zone drive |
US12204768B2 (en) | 2019-12-03 | 2025-01-21 | Pure Storage, Inc. | Allocation of blocks based on power loss protection |
US12204788B1 (en) | 2023-07-21 | 2025-01-21 | Pure Storage, Inc. | Dynamic plane selection in data storage system |
US12210476B2 (en) | 2016-07-19 | 2025-01-28 | Pure Storage, Inc. | Disaggregated compute resources and storage resources in a storage system |
US12216903B2 (en) | 2016-10-31 | 2025-02-04 | Pure Storage, Inc. | Storage node data placement utilizing similarity |
US12229437B2 (en) | 2020-12-31 | 2025-02-18 | Pure Storage, Inc. | Dynamic buffer for storage system |
US12235743B2 (en) | 2016-06-03 | 2025-02-25 | Pure Storage, Inc. | Efficient partitioning for storage system resiliency groups |
US12242425B2 (en) | 2017-10-04 | 2025-03-04 | Pure Storage, Inc. | Similarity data for reduced data usage |
US12271359B2 (en) | 2015-09-30 | 2025-04-08 | Pure Storage, Inc. | Device host operations in a storage system |
US12277106B2 (en) | 2023-05-03 | 2025-04-15 | Pure Storage, Inc. | Flash system having multiple fingerprint tables |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7398459B2 (en) | 2003-01-20 | 2008-07-08 | Samsung Electronics Co., Ltd. | Parity storing method and error block recovering method in external storage subsystem |
US7606980B2 (en) * | 2006-02-27 | 2009-10-20 | Intel Corporation | Demand-based error correction |
US8006126B2 (en) | 2007-05-10 | 2011-08-23 | International Business Machines Corporation | Data integrity validation in storage systems |
US8041990B2 (en) | 2007-06-28 | 2011-10-18 | International Business Machines Corporation | System and method for error correction and detection in a memory system |
US8086783B2 (en) | 2009-02-23 | 2011-12-27 | International Business Machines Corporation | High availability memory system |
US8156400B1 (en) | 2006-06-02 | 2012-04-10 | Marvell International Ltd. | Embedded parity coding for data storage |
-
2010
- 2010-09-28 US US12/892,081 patent/US8327080B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7398459B2 (en) | 2003-01-20 | 2008-07-08 | Samsung Electronics Co., Ltd. | Parity storing method and error block recovering method in external storage subsystem |
US7606980B2 (en) * | 2006-02-27 | 2009-10-20 | Intel Corporation | Demand-based error correction |
US8156400B1 (en) | 2006-06-02 | 2012-04-10 | Marvell International Ltd. | Embedded parity coding for data storage |
US8006126B2 (en) | 2007-05-10 | 2011-08-23 | International Business Machines Corporation | Data integrity validation in storage systems |
US8041990B2 (en) | 2007-06-28 | 2011-10-18 | International Business Machines Corporation | System and method for error correction and detection in a memory system |
US8086783B2 (en) | 2009-02-23 | 2011-12-27 | International Business Machines Corporation | High availability memory system |
Cited By (377)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9361232B2 (en) | 2008-09-19 | 2016-06-07 | Oracle International Corporation | Selectively reading data from cache and primary storage |
US10430338B2 (en) | 2008-09-19 | 2019-10-01 | Oracle International Corporation | Selectively reading data from cache and primary storage based on whether cache is overloaded |
US9405694B2 (en) | 2009-09-14 | 2016-08-02 | Oracle Internation Corporation | Caching data between a database server and a storage system |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US11899932B2 (en) * | 2010-10-11 | 2024-02-13 | Nec Corporation | Storage system having cross node data redundancy and method and computer readable medium for same |
US10592416B2 (en) * | 2011-09-30 | 2020-03-17 | Oracle International Corporation | Write-back storage cache based on fast persistent memory |
US20130086330A1 (en) * | 2011-09-30 | 2013-04-04 | Oracle International Corporation | Write-Back Storage Cache Based On Fast Persistent Memory |
US11650976B2 (en) | 2011-10-14 | 2023-05-16 | Pure Storage, Inc. | Pattern matching using hash tables in storage system |
US9032061B1 (en) * | 2011-12-30 | 2015-05-12 | Emc Corporation | Policy based intelligent data placement |
US9444496B2 (en) | 2012-04-04 | 2016-09-13 | University Of Southern California | Correctable parity protected memory |
US9948677B2 (en) | 2012-08-14 | 2018-04-17 | Blackberry Limited | System and method for secure synchronization of data across multiple computing devices |
US20150180905A1 (en) * | 2012-08-14 | 2015-06-25 | Adi Ruppin | System and method for secure synchronization of data across multiple computing devices |
US10505988B2 (en) * | 2012-08-14 | 2019-12-10 | Blackberry Limited | System and method for secure synchronization of data across multiple computing devices |
US8984582B2 (en) * | 2012-08-14 | 2015-03-17 | Confidela Ltd. | System and method for secure synchronization of data across multiple computing devices |
US10075473B2 (en) * | 2012-08-14 | 2018-09-11 | Blackberry Limited | System and method for secure synchronization of data across multiple computing devices |
US20140053227A1 (en) * | 2012-08-14 | 2014-02-20 | Adi Ruppin | System and Method for Secure Synchronization of Data Across Multiple Computing Devices |
US9280469B1 (en) | 2012-12-28 | 2016-03-08 | Emc Corporation | Accelerating synchronization of certain types of cached data |
US10380021B2 (en) | 2013-03-13 | 2019-08-13 | Oracle International Corporation | Rapid recovery from downtime of mirrored storage device |
US10642837B2 (en) | 2013-03-15 | 2020-05-05 | Oracle International Corporation | Relocating derived cache during data rebalance to maintain application performance |
WO2014205667A1 (en) * | 2013-06-26 | 2014-12-31 | 华为技术有限公司 | Network volume creating method, data storage method, storage device and storage system |
US10031855B2 (en) | 2013-09-20 | 2018-07-24 | Oracle International Corporation | Fast data initialization |
US9798655B2 (en) | 2013-09-20 | 2017-10-24 | Oracle International Corporation | Managing a cache on storage devices supporting compression |
US9772793B2 (en) | 2013-09-20 | 2017-09-26 | Oracle International Corporation | Data block movement offload to storage systems |
US10229161B2 (en) | 2013-09-20 | 2019-03-12 | Oracle International Corporation | Automatic caching of scan and random access data in computing systems |
US9430383B2 (en) | 2013-09-20 | 2016-08-30 | Oracle International Corporation | Fast data initialization |
US9612953B1 (en) | 2014-01-16 | 2017-04-04 | Pure Storage, Inc. | Data placement based on data properties in a tiered storage device system |
US20230376379A1 (en) * | 2014-06-04 | 2023-11-23 | Pure Storage, Inc. | Storage system accommodating differing types of storage |
US10809919B2 (en) | 2014-06-04 | 2020-10-20 | Pure Storage, Inc. | Scalable storage capacities |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US11057468B1 (en) | 2014-06-04 | 2021-07-06 | Pure Storage, Inc. | Vast data storage system |
US9525738B2 (en) * | 2014-06-04 | 2016-12-20 | Pure Storage, Inc. | Storage system architecture |
US11036583B2 (en) | 2014-06-04 | 2021-06-15 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US11138082B2 (en) | 2014-06-04 | 2021-10-05 | Pure Storage, Inc. | Action determination based on redundancy level |
US9563506B2 (en) * | 2014-06-04 | 2017-02-07 | Pure Storage, Inc. | Storage cluster |
US9477554B2 (en) | 2014-06-04 | 2016-10-25 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US9612952B2 (en) | 2014-06-04 | 2017-04-04 | Pure Storage, Inc. | Automatically reconfiguring a storage memory topology |
US9357010B1 (en) * | 2014-06-04 | 2016-05-31 | Pure Storage, Inc. | Storage system architecture |
US11310317B1 (en) | 2014-06-04 | 2022-04-19 | Pure Storage, Inc. | Efficient load balancing |
US11385799B2 (en) | 2014-06-04 | 2022-07-12 | Pure Storage, Inc. | Storage nodes supporting multiple erasure coding schemes |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US11500552B2 (en) | 2014-06-04 | 2022-11-15 | Pure Storage, Inc. | Configurable hyperconverged multi-tenant storage system |
US10838633B2 (en) | 2014-06-04 | 2020-11-17 | Pure Storage, Inc. | Configurable hyperconverged multi-tenant storage system |
US11593203B2 (en) | 2014-06-04 | 2023-02-28 | Pure Storage, Inc. | Coexisting differing erasure codes |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US9798477B2 (en) | 2014-06-04 | 2017-10-24 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US12212624B2 (en) | 2014-06-04 | 2025-01-28 | Pure Storage, Inc. | Independent communication pathways |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US11671496B2 (en) | 2014-06-04 | 2023-06-06 | Pure Storage, Inc. | Load balacing for distibuted computing |
US11714715B2 (en) * | 2014-06-04 | 2023-08-01 | Pure Storage, Inc. | Storage system accommodating varying storage capacities |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US10671480B2 (en) * | 2014-06-04 | 2020-06-02 | Pure Storage, Inc. | Utilization of erasure codes in a storage system |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US11822444B2 (en) | 2014-06-04 | 2023-11-21 | Pure Storage, Inc. | Data rebuild independent of error detection |
US9087012B1 (en) | 2014-06-04 | 2015-07-21 | Pure Storage, Inc. | Disaster recovery at high reliability in a storage cluster |
US9934089B2 (en) | 2014-06-04 | 2018-04-03 | Pure Storage, Inc. | Storage cluster |
US10489256B2 (en) | 2014-06-04 | 2019-11-26 | Pure Storage, Inc. | Disaster recovery at high reliability in a storage cluster |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US10430306B2 (en) | 2014-06-04 | 2019-10-01 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US9967342B2 (en) | 2014-06-04 | 2018-05-08 | Pure Storage, Inc. | Storage system architecture |
US10379763B2 (en) | 2014-06-04 | 2019-08-13 | Pure Storage, Inc. | Hyperconverged storage system with distributable processing power |
US9201600B1 (en) | 2014-06-04 | 2015-12-01 | Pure Storage, Inc. | Storage cluster |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US8850108B1 (en) * | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US10303547B2 (en) | 2014-06-04 | 2019-05-28 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US12066895B2 (en) | 2014-06-04 | 2024-08-20 | Pure Storage, Inc. | Heterogenous memory accommodating multiple erasure codes |
US20150355969A1 (en) * | 2014-06-04 | 2015-12-10 | Pure Storage, Inc. | Storage Cluster |
US12101379B2 (en) | 2014-06-04 | 2024-09-24 | Pure Storage, Inc. | Multilevel load balancing |
US12141449B2 (en) | 2014-06-04 | 2024-11-12 | Pure Storage, Inc. | Distribution of resources for a storage system |
US12137140B2 (en) | 2014-06-04 | 2024-11-05 | Pure Storage, Inc. | Scale out storage platform having active failover |
US10152397B2 (en) | 2014-06-04 | 2018-12-11 | Pure Storage, Inc. | Disaster recovery at high reliability in a storage cluster |
US10372617B2 (en) | 2014-07-02 | 2019-08-06 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US11079962B2 (en) | 2014-07-02 | 2021-08-03 | Pure Storage, Inc. | Addressable non-volatile random access memory |
US11385979B2 (en) | 2014-07-02 | 2022-07-12 | Pure Storage, Inc. | Mirrored remote procedure call cache |
US10877861B2 (en) | 2014-07-02 | 2020-12-29 | Pure Storage, Inc. | Remote procedure call cache for distributed system |
US10817431B2 (en) | 2014-07-02 | 2020-10-27 | Pure Storage, Inc. | Distributed storage addressing |
US12135654B2 (en) | 2014-07-02 | 2024-11-05 | Pure Storage, Inc. | Distributed storage system |
US10114714B2 (en) | 2014-07-02 | 2018-10-30 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US9396078B2 (en) | 2014-07-02 | 2016-07-19 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US10114757B2 (en) | 2014-07-02 | 2018-10-30 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US10572176B2 (en) | 2014-07-02 | 2020-02-25 | Pure Storage, Inc. | Storage cluster operation using erasure coded data |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US11922046B2 (en) | 2014-07-02 | 2024-03-05 | Pure Storage, Inc. | Erasure coded data within zoned drives |
US9110789B1 (en) | 2014-07-02 | 2015-08-18 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
US9501244B2 (en) | 2014-07-03 | 2016-11-22 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
US11392522B2 (en) | 2014-07-03 | 2022-07-19 | Pure Storage, Inc. | Transfer of segmented data |
US10185506B2 (en) | 2014-07-03 | 2019-01-22 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
US11494498B2 (en) | 2014-07-03 | 2022-11-08 | Pure Storage, Inc. | Storage data decryption |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US10853285B2 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Direct memory access data format |
US11550752B2 (en) | 2014-07-03 | 2023-01-10 | Pure Storage, Inc. | Administrative actions via a reserved filename |
US10198380B1 (en) | 2014-07-03 | 2019-02-05 | Pure Storage, Inc. | Direct memory access data movement |
US11928076B2 (en) | 2014-07-03 | 2024-03-12 | Pure Storage, Inc. | Actions for reserved filenames |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US10691812B2 (en) | 2014-07-03 | 2020-06-23 | Pure Storage, Inc. | Secure data replication in a storage grid |
US9817750B2 (en) | 2014-07-03 | 2017-11-14 | Pure Storage, Inc. | Profile-dependent write placement of data into a non-volatile solid-state storage |
US12182044B2 (en) | 2014-07-03 | 2024-12-31 | Pure Storage, Inc. | Data storage in a zone drive |
US11620197B2 (en) | 2014-08-07 | 2023-04-04 | Pure Storage, Inc. | Recovering error corrected data |
US12158814B2 (en) | 2014-08-07 | 2024-12-03 | Pure Storage, Inc. | Granular voltage tuning |
US9880899B2 (en) | 2014-08-07 | 2018-01-30 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US10268548B2 (en) | 2014-08-07 | 2019-04-23 | Pure Storage, Inc. | Failure mapping in a storage array |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US10528419B2 (en) | 2014-08-07 | 2020-01-07 | Pure Storage, Inc. | Mapping around defective flash memory of a storage array |
US11080154B2 (en) | 2014-08-07 | 2021-08-03 | Pure Storage, Inc. | Recovering error corrected data |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
US12229402B2 (en) | 2014-08-07 | 2025-02-18 | Pure Storage, Inc. | Intelligent operation scheduling based on latency of operations |
US10579474B2 (en) | 2014-08-07 | 2020-03-03 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US10990283B2 (en) | 2014-08-07 | 2021-04-27 | Pure Storage, Inc. | Proactive data rebuild based on queue feedback |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US10983866B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Mapping defective memory in a storage system |
US11544143B2 (en) | 2014-08-07 | 2023-01-03 | Pure Storage, Inc. | Increased data reliability |
US10216411B2 (en) | 2014-08-07 | 2019-02-26 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US11204830B2 (en) | 2014-08-07 | 2021-12-21 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US12271264B2 (en) | 2014-08-07 | 2025-04-08 | Pure Storage, Inc. | Adjusting a variable parameter to increase reliability of stored data |
US11656939B2 (en) | 2014-08-07 | 2023-05-23 | Pure Storage, Inc. | Storage cluster memory characterization |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US12253922B2 (en) | 2014-08-07 | 2025-03-18 | Pure Storage, Inc. | Data rebuild based on solid state memory characteristics |
US11442625B2 (en) | 2014-08-07 | 2022-09-13 | Pure Storage, Inc. | Multiple read data paths in a storage system |
US9766972B2 (en) | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
US10324812B2 (en) | 2014-08-07 | 2019-06-18 | Pure Storage, Inc. | Error recovery in a storage cluster |
US10498580B1 (en) | 2014-08-20 | 2019-12-03 | Pure Storage, Inc. | Assigning addresses in a storage system |
US11734186B2 (en) | 2014-08-20 | 2023-08-22 | Pure Storage, Inc. | Heterogeneous storage with preserved addressing |
US11188476B1 (en) | 2014-08-20 | 2021-11-30 | Pure Storage, Inc. | Virtual addressing in a storage system |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
CN104156327A (en) * | 2014-08-25 | 2014-11-19 | 曙光信息产业股份有限公司 | Method for recognizing object power failure in write back mode in distributed file system |
US9948615B1 (en) | 2015-03-16 | 2018-04-17 | Pure Storage, Inc. | Increased storage unit encryption based on loss of trust |
US11294893B2 (en) | 2015-03-20 | 2022-04-05 | Pure Storage, Inc. | Aggregation of queries |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US11775428B2 (en) | 2015-03-26 | 2023-10-03 | Pure Storage, Inc. | Deletion immunity for unreferenced data |
US12253941B2 (en) | 2015-03-26 | 2025-03-18 | Pure Storage, Inc. | Management of repeatedly seen data |
US10853243B2 (en) | 2015-03-26 | 2020-12-01 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US12086472B2 (en) | 2015-03-27 | 2024-09-10 | Pure Storage, Inc. | Heterogeneous storage arrays |
US10353635B2 (en) | 2015-03-27 | 2019-07-16 | Pure Storage, Inc. | Data control across multiple logical arrays |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US11188269B2 (en) | 2015-03-27 | 2021-11-30 | Pure Storage, Inc. | Configuration for multiple logical storage arrays |
US10430273B2 (en) | 2015-03-31 | 2019-10-01 | EMC IP Holding Company LLC | Cache based recovery of corrupted or missing data |
US11200116B2 (en) | 2015-03-31 | 2021-12-14 | EMC IP Holding Company LLC | Cache based recovery of corrupted or missing data |
US10146616B1 (en) * | 2015-03-31 | 2018-12-04 | EMC IP Holding Company LLC | Cache based recovery of corrupted or missing data |
US10693964B2 (en) | 2015-04-09 | 2020-06-23 | Pure Storage, Inc. | Storage unit communication within a storage system |
US12069133B2 (en) | 2015-04-09 | 2024-08-20 | Pure Storage, Inc. | Communication paths for differing types of solid state storage devices |
US11722567B2 (en) | 2015-04-09 | 2023-08-08 | Pure Storage, Inc. | Communication paths for storage devices having differing capacities |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US11240307B2 (en) | 2015-04-09 | 2022-02-01 | Pure Storage, Inc. | Multiple communication paths in a storage system |
US11144212B2 (en) | 2015-04-10 | 2021-10-12 | Pure Storage, Inc. | Independent partitions within an array |
US10496295B2 (en) | 2015-04-10 | 2019-12-03 | Pure Storage, Inc. | Representing a storage array as two or more logical arrays with respective virtual local area networks (VLANS) |
US9672125B2 (en) | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US10140149B1 (en) | 2015-05-19 | 2018-11-27 | Pure Storage, Inc. | Transactional commits with hardware assists in remote memory |
US11231956B2 (en) | 2015-05-19 | 2022-01-25 | Pure Storage, Inc. | Committed transactions in a storage system |
US12050774B2 (en) | 2015-05-27 | 2024-07-30 | Pure Storage, Inc. | Parallel update for a distributed system |
US10712942B2 (en) | 2015-05-27 | 2020-07-14 | Pure Storage, Inc. | Parallel update to maintain coherency |
US9817576B2 (en) | 2015-05-27 | 2017-11-14 | Pure Storage, Inc. | Parallel update to NVRAM |
US11675762B2 (en) | 2015-06-26 | 2023-06-13 | Pure Storage, Inc. | Data structures for key management |
US12093236B2 (en) | 2015-06-26 | 2024-09-17 | Pure Storage, Inc. | Probalistic data structure for key management |
US20170004082A1 (en) * | 2015-07-02 | 2017-01-05 | Netapp, Inc. | Methods for host-side caching and application consistent writeback restore and devices thereof |
US9852072B2 (en) * | 2015-07-02 | 2017-12-26 | Netapp, Inc. | Methods for host-side caching and application consistent writeback restore and devices thereof |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US12147715B2 (en) | 2015-07-13 | 2024-11-19 | Pure Storage, Inc. | File ownership in a distributed system |
US11704073B2 (en) | 2015-07-13 | 2023-07-18 | Pure Storage, Inc | Ownership determination for accessing a file |
US11232079B2 (en) | 2015-07-16 | 2022-01-25 | Pure Storage, Inc. | Efficient distribution of large directories |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US11740802B2 (en) | 2015-09-01 | 2023-08-29 | Pure Storage, Inc. | Error correction bypass for erased pages |
US11099749B2 (en) | 2015-09-01 | 2021-08-24 | Pure Storage, Inc. | Erase detection logic for a storage system |
US11893023B2 (en) | 2015-09-04 | 2024-02-06 | Pure Storage, Inc. | Deterministic searching using compressed indexes |
US12038927B2 (en) | 2015-09-04 | 2024-07-16 | Pure Storage, Inc. | Storage system having multiple tables for efficient searching |
US10211983B2 (en) | 2015-09-30 | 2019-02-19 | Pure Storage, Inc. | Resharing of a split secret |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US11971828B2 (en) | 2015-09-30 | 2024-04-30 | Pure Storage, Inc. | Logic module for use with encoded instructions |
US10887099B2 (en) | 2015-09-30 | 2021-01-05 | Pure Storage, Inc. | Data encryption in a distributed system |
US12072860B2 (en) | 2015-09-30 | 2024-08-27 | Pure Storage, Inc. | Delegation of data ownership |
US11489668B2 (en) | 2015-09-30 | 2022-11-01 | Pure Storage, Inc. | Secret regeneration in a storage system |
US12271359B2 (en) | 2015-09-30 | 2025-04-08 | Pure Storage, Inc. | Device host operations in a storage system |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US11567917B2 (en) | 2015-09-30 | 2023-01-31 | Pure Storage, Inc. | Writing data and metadata into storage |
US11838412B2 (en) | 2015-09-30 | 2023-12-05 | Pure Storage, Inc. | Secret regeneration from distributed shares |
CN106569730A (en) * | 2015-10-08 | 2017-04-19 | 光宝电子(广州)有限公司 | Solid state device and relevant data writing method thereof |
CN106569730B (en) * | 2015-10-08 | 2019-03-22 | 光宝电子(广州)有限公司 | Solid state storage device and its related data wiring method |
US11582046B2 (en) | 2015-10-23 | 2023-02-14 | Pure Storage, Inc. | Storage system communication |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US10277408B2 (en) | 2015-10-23 | 2019-04-30 | Pure Storage, Inc. | Token based communication |
US11070382B2 (en) | 2015-10-23 | 2021-07-20 | Pure Storage, Inc. | Communication in a distributed architecture |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US10599348B2 (en) | 2015-12-22 | 2020-03-24 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US11204701B2 (en) | 2015-12-22 | 2021-12-21 | Pure Storage, Inc. | Token based transactions |
US12067260B2 (en) | 2015-12-22 | 2024-08-20 | Pure Storage, Inc. | Transaction processing with differing capacity storage |
WO2017186871A1 (en) * | 2016-04-27 | 2017-11-02 | Memoscale As | Data protection coding technique |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US11550473B2 (en) | 2016-05-03 | 2023-01-10 | Pure Storage, Inc. | High-availability storage array |
US11847320B2 (en) | 2016-05-03 | 2023-12-19 | Pure Storage, Inc. | Reassignment of requests for high availability |
US10649659B2 (en) | 2016-05-03 | 2020-05-12 | Pure Storage, Inc. | Scaleable storage array |
US11231858B2 (en) | 2016-05-19 | 2022-01-25 | Pure Storage, Inc. | Dynamically configuring a storage system to facilitate independent scaling of resources |
US10691567B2 (en) | 2016-06-03 | 2020-06-23 | Pure Storage, Inc. | Dynamically forming a failure domain in a storage system that includes a plurality of blades |
US12235743B2 (en) | 2016-06-03 | 2025-02-25 | Pure Storage, Inc. | Efficient partitioning for storage system resiliency groups |
US10705768B2 (en) | 2016-06-22 | 2020-07-07 | EMC IP Holding Company LLC | Method and system for managing storage using an intermediate storage area |
US12210476B2 (en) | 2016-07-19 | 2025-01-28 | Pure Storage, Inc. | Disaggregated compute resources and storage resources in a storage system |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US11706895B2 (en) | 2016-07-19 | 2023-07-18 | Pure Storage, Inc. | Independent scaling of compute resources and storage resources in a storage system |
US10831594B2 (en) | 2016-07-22 | 2020-11-10 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US11449232B1 (en) | 2016-07-22 | 2022-09-20 | Pure Storage, Inc. | Optimal scheduling of flash operations |
US11409437B2 (en) | 2016-07-22 | 2022-08-09 | Pure Storage, Inc. | Persisting configuration information |
US11886288B2 (en) | 2016-07-22 | 2024-01-30 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US11080155B2 (en) | 2016-07-24 | 2021-08-03 | Pure Storage, Inc. | Identifying error types among flash memory |
US12105584B2 (en) | 2016-07-24 | 2024-10-01 | Pure Storage, Inc. | Acquiring failure information |
US10216420B1 (en) | 2016-07-24 | 2019-02-26 | Pure Storage, Inc. | Calibration of flash channels in SSD |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US11340821B2 (en) | 2016-07-26 | 2022-05-24 | Pure Storage, Inc. | Adjustable migration utilization |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10776034B2 (en) | 2016-07-26 | 2020-09-15 | Pure Storage, Inc. | Adaptive data migration |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US11030090B2 (en) | 2016-07-26 | 2021-06-08 | Pure Storage, Inc. | Adaptive data migration |
US10133667B2 (en) | 2016-09-06 | 2018-11-20 | Orcle International Corporation | Efficient data storage and retrieval using a heterogeneous main memory |
US10678452B2 (en) | 2016-09-15 | 2020-06-09 | Pure Storage, Inc. | Distributed deletion of a file and directory hierarchy |
US11922033B2 (en) | 2016-09-15 | 2024-03-05 | Pure Storage, Inc. | Batch data deletion |
US11656768B2 (en) | 2016-09-15 | 2023-05-23 | Pure Storage, Inc. | File deletion in a distributed system |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US11301147B2 (en) | 2016-09-15 | 2022-04-12 | Pure Storage, Inc. | Adaptive concurrency for write persistence |
US10445013B2 (en) | 2016-09-23 | 2019-10-15 | EMC IP Holding Company LLC | Method and device for storing data |
US12105620B2 (en) | 2016-10-04 | 2024-10-01 | Pure Storage, Inc. | Storage system buffering |
US11922070B2 (en) | 2016-10-04 | 2024-03-05 | Pure Storage, Inc. | Granting access to a storage device based on reservations |
US12141118B2 (en) | 2016-10-04 | 2024-11-12 | Pure Storage, Inc. | Optimizing storage system performance using data characteristics |
US12039165B2 (en) | 2016-10-04 | 2024-07-16 | Pure Storage, Inc. | Utilizing allocation shares to improve parallelism in a zoned drive storage system |
US11581943B2 (en) | 2016-10-04 | 2023-02-14 | Pure Storage, Inc. | Queues reserved for direct access via a user application |
US11995318B2 (en) | 2016-10-28 | 2024-05-28 | Pure Storage, Inc. | Deallocated block determination |
US12216903B2 (en) | 2016-10-31 | 2025-02-04 | Pure Storage, Inc. | Storage node data placement utilizing similarity |
US11138131B2 (en) | 2016-11-04 | 2021-10-05 | Oracle International Corporation | Detection of avoidable cache thrashing for OLTP and DW workloads |
US10331573B2 (en) | 2016-11-04 | 2019-06-25 | Oracle International Corporation | Detection of avoidable cache thrashing for OLTP and DW workloads |
US11842053B2 (en) | 2016-12-19 | 2023-12-12 | Pure Storage, Inc. | Zone namespace |
US10496287B2 (en) * | 2016-12-21 | 2019-12-03 | EMC IP Holding Company LLC | Method and apparatus for caching data |
US20180173435A1 (en) * | 2016-12-21 | 2018-06-21 | EMC IP Holding Company LLC | Method and apparatus for caching data |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US11762781B2 (en) | 2017-01-09 | 2023-09-19 | Pure Storage, Inc. | Providing end-to-end encryption for data stored in a storage system |
US11289169B2 (en) | 2017-01-13 | 2022-03-29 | Pure Storage, Inc. | Cycled background reads |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US10650902B2 (en) | 2017-01-13 | 2020-05-12 | Pure Storage, Inc. | Method for processing blocks of flash memory |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US10979223B2 (en) | 2017-01-31 | 2021-04-13 | Pure Storage, Inc. | Separate encryption for a solid-state drive |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US10942869B2 (en) | 2017-03-30 | 2021-03-09 | Pure Storage, Inc. | Efficient coding in a storage system |
US11449485B1 (en) | 2017-03-30 | 2022-09-20 | Pure Storage, Inc. | Sequence invalidation consolidation in a storage system |
US11592985B2 (en) | 2017-04-05 | 2023-02-28 | Pure Storage, Inc. | Mapping LUNs in a storage memory |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
US11869583B2 (en) | 2017-04-27 | 2024-01-09 | Pure Storage, Inc. | Page write requirements for differing types of flash memory |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US11722455B2 (en) | 2017-04-27 | 2023-08-08 | Pure Storage, Inc. | Storage cluster address resolution |
US10803039B2 (en) | 2017-05-26 | 2020-10-13 | Oracle International Corporation | Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index |
US12204413B2 (en) | 2017-06-07 | 2025-01-21 | Pure Storage, Inc. | Snapshot commitment in a distributed system |
US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US11138103B1 (en) | 2017-06-11 | 2021-10-05 | Pure Storage, Inc. | Resiliency groups |
US11068389B2 (en) | 2017-06-11 | 2021-07-20 | Pure Storage, Inc. | Data resiliency with heterogeneous storage |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US11190580B2 (en) | 2017-07-03 | 2021-11-30 | Pure Storage, Inc. | Stateful connection resets |
US11689610B2 (en) | 2017-07-03 | 2023-06-27 | Pure Storage, Inc. | Load balancing reset packets |
US11714708B2 (en) | 2017-07-31 | 2023-08-01 | Pure Storage, Inc. | Intra-device redundancy scheme |
US12086029B2 (en) | 2017-07-31 | 2024-09-10 | Pure Storage, Inc. | Intra-device and inter-device data recovery in a storage system |
US12032724B2 (en) | 2017-08-31 | 2024-07-09 | Pure Storage, Inc. | Encryption in a storage array |
US10719446B2 (en) | 2017-08-31 | 2020-07-21 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
US11256627B2 (en) | 2017-08-31 | 2022-02-22 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US10732836B2 (en) | 2017-09-29 | 2020-08-04 | Oracle International Corporation | Remote one-sided persistent writes |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US10802766B2 (en) | 2017-09-29 | 2020-10-13 | Oracle International Corporation | Database with NVDIMM as persistent storage |
US10956335B2 (en) | 2017-09-29 | 2021-03-23 | Oracle International Corporation | Non-volatile cache access using RDMA |
US12242425B2 (en) | 2017-10-04 | 2025-03-04 | Pure Storage, Inc. | Similarity data for reduced data usage |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US12046292B2 (en) | 2017-10-31 | 2024-07-23 | Pure Storage, Inc. | Erase blocks having differing sizes |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US11086532B2 (en) | 2017-10-31 | 2021-08-10 | Pure Storage, Inc. | Data rebuild with changing erase block sizes |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US11074016B2 (en) | 2017-10-31 | 2021-07-27 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US11604585B2 (en) | 2017-10-31 | 2023-03-14 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US11704066B2 (en) | 2017-10-31 | 2023-07-18 | Pure Storage, Inc. | Heterogeneous erase blocks |
US12099441B2 (en) | 2017-11-17 | 2024-09-24 | Pure Storage, Inc. | Writing data to a distributed storage system |
US11741003B2 (en) | 2017-11-17 | 2023-08-29 | Pure Storage, Inc. | Write granularity for storage system |
US11275681B1 (en) | 2017-11-17 | 2022-03-15 | Pure Storage, Inc. | Segmented write requests |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US12197390B2 (en) | 2017-11-20 | 2025-01-14 | Pure Storage, Inc. | Locks in a distributed file system |
US10990566B1 (en) | 2017-11-20 | 2021-04-27 | Pure Storage, Inc. | Persistent file locks in a storage system |
US10719265B1 (en) | 2017-12-08 | 2020-07-21 | Pure Storage, Inc. | Centralized, quorum-aware handling of device reservation requests in a storage system |
US10929053B2 (en) | 2017-12-08 | 2021-02-23 | Pure Storage, Inc. | Safe destructive actions on drives |
US10705732B1 (en) | 2017-12-08 | 2020-07-07 | Pure Storage, Inc. | Multiple-apartment aware offlining of devices for disruptive and destructive operations |
US11782614B1 (en) | 2017-12-21 | 2023-10-10 | Pure Storage, Inc. | Encrypting data to optimize data reduction |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
US11442645B2 (en) | 2018-01-31 | 2022-09-13 | Pure Storage, Inc. | Distributed storage system expansion mechanism |
US11966841B2 (en) | 2018-01-31 | 2024-04-23 | Pure Storage, Inc. | Search acceleration for artificial intelligence |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US10733053B1 (en) | 2018-01-31 | 2020-08-04 | Pure Storage, Inc. | Disaster recovery for high-bandwidth distributed archives |
US10915813B2 (en) | 2018-01-31 | 2021-02-09 | Pure Storage, Inc. | Search acceleration for artificial intelligence |
US11797211B2 (en) | 2018-01-31 | 2023-10-24 | Pure Storage, Inc. | Expanding data structures in a storage system |
US11847013B2 (en) | 2018-02-18 | 2023-12-19 | Pure Storage, Inc. | Readable data determination |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US12175124B2 (en) | 2018-04-25 | 2024-12-24 | Pure Storage, Inc. | Enhanced data access using composite data views |
US11995336B2 (en) | 2018-04-25 | 2024-05-28 | Pure Storage, Inc. | Bucket views |
US10931450B1 (en) | 2018-04-27 | 2021-02-23 | Pure Storage, Inc. | Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers |
US12079494B2 (en) | 2018-04-27 | 2024-09-03 | Pure Storage, Inc. | Optimizing storage system upgrades to preserve resources |
US10853146B1 (en) | 2018-04-27 | 2020-12-01 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US11836348B2 (en) | 2018-04-27 | 2023-12-05 | Pure Storage, Inc. | Upgrade for system with differing capacities |
US11436023B2 (en) | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
US11438279B2 (en) | 2018-07-23 | 2022-09-06 | Pure Storage, Inc. | Non-disruptive conversion of a clustered service from single-chassis to multi-chassis |
US11846968B2 (en) | 2018-09-06 | 2023-12-19 | Pure Storage, Inc. | Relocation of data for heterogeneous storage systems |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US12067274B2 (en) | 2018-09-06 | 2024-08-20 | Pure Storage, Inc. | Writing segments and erase blocks based on ordering |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US10454498B1 (en) | 2018-10-18 | 2019-10-22 | Pure Storage, Inc. | Fully pipelined hardware engine design for fast and efficient inline lossless data compression |
US12001700B2 (en) | 2018-10-26 | 2024-06-04 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
US12135878B2 (en) | 2019-01-23 | 2024-11-05 | Pure Storage, Inc. | Programming frequently read data to low latency portions of a solid-state storage array |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US12087382B2 (en) | 2019-04-11 | 2024-09-10 | Pure Storage, Inc. | Adaptive threshold for bad flash memory blocks |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US11899582B2 (en) | 2019-04-12 | 2024-02-13 | Pure Storage, Inc. | Efficient memory dump |
US12001688B2 (en) | 2019-04-29 | 2024-06-04 | Pure Storage, Inc. | Utilizing data views to optimize secure data access in a storage system |
US12079125B2 (en) | 2019-06-05 | 2024-09-03 | Pure Storage, Inc. | Tiered caching of data in a storage system |
US11714572B2 (en) | 2019-06-19 | 2023-08-01 | Pure Storage, Inc. | Optimized data resiliency in a modular storage system |
US11822807B2 (en) | 2019-06-24 | 2023-11-21 | Pure Storage, Inc. | Data replication in a storage system |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
US12204768B2 (en) | 2019-12-03 | 2025-01-21 | Pure Storage, Inc. | Allocation of blocks based on power loss protection |
US11947795B2 (en) | 2019-12-12 | 2024-04-02 | Pure Storage, Inc. | Power loss protection based on write requirements |
US12117900B2 (en) | 2019-12-12 | 2024-10-15 | Pure Storage, Inc. | Intelligent power loss protection allocation |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US12001684B2 (en) | 2019-12-12 | 2024-06-04 | Pure Storage, Inc. | Optimizing dynamic power loss protection adjustment in a storage system |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
US11656961B2 (en) | 2020-02-28 | 2023-05-23 | Pure Storage, Inc. | Deallocation within a storage system |
US11507297B2 (en) | 2020-04-15 | 2022-11-22 | Pure Storage, Inc. | Efficient management of optimal read levels for flash storage systems |
US11256587B2 (en) | 2020-04-17 | 2022-02-22 | Pure Storage, Inc. | Intelligent access to a storage device |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US12056365B2 (en) | 2020-04-24 | 2024-08-06 | Pure Storage, Inc. | Resiliency for a storage system |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US11775491B2 (en) | 2020-04-24 | 2023-10-03 | Pure Storage, Inc. | Machine learning model for storage system |
US12079184B2 (en) | 2020-04-24 | 2024-09-03 | Pure Storage, Inc. | Optimized machine learning telemetry processing for a cloud based storage system |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
US11513974B2 (en) | 2020-09-08 | 2022-11-29 | Pure Storage, Inc. | Using nonce to control erasure of data blocks of a multi-controller storage system |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
US12153818B2 (en) | 2020-09-24 | 2024-11-26 | Pure Storage, Inc. | Bucket versioning snapshots |
US11789626B2 (en) | 2020-12-17 | 2023-10-17 | Pure Storage, Inc. | Optimizing block allocation in a data storage system |
US12236117B2 (en) | 2020-12-17 | 2025-02-25 | Pure Storage, Inc. | Resiliency management in a storage system |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US12093545B2 (en) | 2020-12-31 | 2024-09-17 | Pure Storage, Inc. | Storage system with selectable write modes |
US12067282B2 (en) | 2020-12-31 | 2024-08-20 | Pure Storage, Inc. | Write path selection |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US12056386B2 (en) | 2020-12-31 | 2024-08-06 | Pure Storage, Inc. | Selectable write paths with different formatted data |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US12229437B2 (en) | 2020-12-31 | 2025-02-18 | Pure Storage, Inc. | Dynamic buffer for storage system |
US12061814B2 (en) | 2021-01-25 | 2024-08-13 | Pure Storage, Inc. | Using data similarity to select segments for garbage collection |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US12099742B2 (en) | 2021-03-15 | 2024-09-24 | Pure Storage, Inc. | Utilizing programming page size granularity to optimize data segment storage in a storage system |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
US12067032B2 (en) | 2021-03-31 | 2024-08-20 | Pure Storage, Inc. | Intervals for data replication |
US12032848B2 (en) | 2021-06-21 | 2024-07-09 | Pure Storage, Inc. | Intelligent block allocation in a heterogeneous storage system |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
US12277106B2 (en) | 2023-05-03 | 2025-04-15 | Pure Storage, Inc. | Flash system having multiple fingerprint tables |
US12204788B1 (en) | 2023-07-21 | 2025-01-21 | Pure Storage, Inc. | Dynamic plane selection in data storage system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8327080B1 (en) | Write-back cache protection | |
US10496481B2 (en) | Methods and systems for rebuilding data subsequent to the failure of a storage unit | |
US10191676B2 (en) | Scalable storage protection | |
US7080278B1 (en) | Technique for correcting multiple storage device failures in a storage array | |
US7779335B2 (en) | Enhanced error identification with disk array parity checking | |
US7437652B2 (en) | Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups | |
US5379417A (en) | System and method for ensuring write data integrity in a redundant array data storage system | |
US7392428B2 (en) | Method and system for recovering from abnormal interruption of a parity update operation in a disk array system | |
KR100928882B1 (en) | Data recovery device using RAID device and galloche | |
US7529970B2 (en) | System and method for improving the performance of operations requiring parity reads in a storage array system | |
US9823968B1 (en) | Data storage system employing a variable redundancy distributed RAID controller with embedded RAID logic and method for data migration between high-performance computing architectures and data storage devices using the same | |
US8484506B2 (en) | Redundant array of independent disks level 5 (RAID 5) with a mirroring functionality | |
US20080022150A1 (en) | Method and system for improved buffer utilization for disk array parity updates | |
TW201911041A (en) | System and method for storing data | |
JP2008217395A (en) | Disk array device | |
Khawatreh et al. | RAID-based Storage Systems | |
JP5440884B2 (en) | Disk array device and disk array control program | |
Liu | Repairing Triple Data Erasure with Extending Row Diagonal Parity | |
Danilescu et al. | Spread Data Storage–A Means of Storing in Internet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DER, KENNETH P.;REEL/FRAME:025201/0445 Effective date: 20100927 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT, NORTH CAROLINA Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040134/0001 Effective date: 20160907 Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT, TEXAS Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040136/0001 Effective date: 20160907 Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLAT Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040134/0001 Effective date: 20160907 Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., A Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040136/0001 Effective date: 20160907 |
|
AS | Assignment |
Owner name: EMC IP HOLDING COMPANY LLC, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EMC CORPORATION;REEL/FRAME:040203/0001 Effective date: 20160906 |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., T Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES, INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:049452/0223 Effective date: 20190320 Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES, INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:049452/0223 Effective date: 20190320 |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:053546/0001 Effective date: 20200409 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
AS | Assignment |
Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: SCALEIO LLC, MASSACHUSETTS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: MOZY, INC., WASHINGTON Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: MAGINATICS LLC, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: FORCE10 NETWORKS, INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL SYSTEMS CORPORATION, TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL SOFTWARE INC., CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL MARKETING L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL INTERNATIONAL, L.L.C., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: DELL USA L.P., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: CREDANT TECHNOLOGIES, INC., TEXAS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: AVENTAIL LLC, CALIFORNIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 Owner name: ASAP SOFTWARE EXPRESS, INC., ILLINOIS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058216/0001 Effective date: 20211101 |
|
AS | Assignment |
Owner name: SCALEIO LLC, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC), MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL INTERNATIONAL L.L.C., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL USA L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061324/0001 Effective date: 20220329 |
|
AS | Assignment |
Owner name: SCALEIO LLC, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC), MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL INTERNATIONAL L.L.C., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL USA L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 Owner name: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.), TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:061753/0001 Effective date: 20220329 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |