US20110196869A1 - Cluster storage using delta compression - Google Patents
Cluster storage using delta compression Download PDFInfo
- Publication number
- US20110196869A1 US20110196869A1 US13/090,166 US201113090166A US2011196869A1 US 20110196869 A1 US20110196869 A1 US 20110196869A1 US 201113090166 A US201113090166 A US 201113090166A US 2011196869 A1 US2011196869 A1 US 2011196869A1
- Authority
- US
- United States
- Prior art keywords
- segment
- similar
- stored
- segments
- delta
- 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.)
- Granted
Links
- 230000006835 compression Effects 0.000 title description 13
- 238000007906 compression Methods 0.000 title description 13
- 238000000034 method Methods 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims 2
- 230000006870 function Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 18
- 230000011218 segmentation Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000004873 anchoring Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010899 nucleation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004557 technical material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Definitions
- Scaling data storage systems to hold more information is important as data storage users continue to increase their desired storage requirements.
- One approach is to aggregate multiple individual storage systems into a cluster that combines the capacity and performance of the multiple individual nodes into one.
- each node of the cluster must be used appropriately in terms of data stored on the node and processing and throughput required by the node.
- Some storage systems optimize storage capacity by eliminating identical copies of stored data.
- stored data is divided into segments. A new segment that is desired to be stored is first compared against those segments already stored. If an identical segment is already stored on the system, a reference to that segment is stored instead of storing the new segment. This is referred to as identity compression.
- delta compression Other storage systems optimize storage capacity by comparing a new segment that is desired to be stored against those segments already stored and looking for a similar though not necessarily identical segment. If a similar segment is already stored on the system, a delta between the old and new segment is computed and a reference to the old segment and the delta is stored in place of the entire new segment. This is referred to as delta compression.
- each node In using either identity or delta compression with a cluster, in order to achieve high efficiency and find a similar segment each node ideally searches all stored segments in all nodes and in addition can reference, using an index, all segments in all nodes.
- the ability to search and index all segments on all nodes poses problems in scaling to a large number of nodes because each node must maintain its ability to search and index over all segments stored on each node of the cluster and the inter-node communication can reduce performance.
- fingerprints of segments are not useful for assigning segments to nodes because similar segments do not, in general, have similar fingerprints. Thus, assignment based on fingerprints would usually result in similar segments being stored on different nodes. A cluster which limited its search for a similar segment to a single node would often fail to find a similar segment even when one exists in the cluster.
- FIG. 1 is a block diagram illustrating an embodiment of a system for cluster storage using delta compression.
- FIG. 2 is a block diagram illustrating a storage system using cluster storage.
- FIG. 3A is a block diagram illustrating an embodiment of a data stream or a portion of a data block.
- FIG. 3B is a block diagram illustrating an embodiment of segments distributed to cluster nodes.
- FIG. 4 is a flow diagram illustrating an embodiment of a process for cluster storage.
- FIG. 5 is a flow diagram illustrating an embodiment of a process for selecting a storage node.
- FIG. 6 is a flow diagram illustrating an embodiment of a process for selecting a storage node.
- FIG. 7 is a flow diagram illustrating an embodiment of a process for storing a representation of a segment.
- FIG. 8 is a flow diagram illustrating an embodiment of a process for determining if a selected segment is similar to a previously stored segment.
- the invention can be implemented in numerous ways, including as a process, an apparatus, a system, a composition of matter, a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or electronic communication links.
- these implementations, or any other form that the invention may take, may be referred to as techniques.
- a component such as a processor or a memory described as being configured to perform a task includes both a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task.
- the order of the steps of disclosed processes may be altered within the scope of the invention.
- a storage system uses a cluster of nodes to store in-coming data. In-coming data is segmented. Each segment is characterized for assignment for storage on a given node. On the given node of the cluster, segments are stored in a manner that deduplicates segment storage. Sorting segments into a plurality of nodes reduces the number of segments to be searched for deduplication and reduces the size of the segment index required on a node. It also reduces the overhead of network traffic for inter-node communication because the nodes need to exchange less information to deduplicate and store the data.
- Segments are deduplicated on each node of the cluster using delta compression.
- Delta compression allows the use of large segments for distributing efficiently to nodes so that sequential bytes are stored close to each other on disk.
- Delta compression efficiently stores segments that are similar to each other by storing one base and, for other similar segments, storing only a delta from the base along with a reference to the base. If a segment is not similar to a previously stored base, the new segment is stored as a new base and possibly a delta from that base.
- a node is selected for a given segment by finding a node that manages or stores similar segments to the given segment. In some embodiments, the node is selected using a sketch or other resemblance measure to identify if the node manages or stores similar segments.
- a cluster node is associated with the segment based at least in part on a computed hash of all or some of the content of the segment, on a function of less than all the bytes in the segment (e.g., the initial bytes, the ending bytes, algorithmically determined sample of bytes, etc.), on a sketch of the segment, on a content based tag associated with the segment, determining which cluster nodes have likely similar segments, on node capacities (e.g., remaining storage capacity, used storage capacity, etc.) or capabilities, or any other appropriate available resource associated with the node.
- node capacities e.g., remaining storage capacity, used storage capacity, etc.
- a sketch or other resemblance measure is used to identify a subset of segments to search through for a similar match on the node.
- the subset comprises likely similar segments and is used to more efficiently locate the similar segments by reducing the search space within the managed or stored segments.
- Resemblance is determined by comparing a summary feature set of a first segment with a summary feature set of a second segment.
- a summary feature set is determined by selecting a plurality of either fixed length or variable length parts or shingles of a first segment; for each shingle, computing a plurality of values by applying a set of functions to each shingle; and from all the values computed for all the shingles, selecting a first subset of values.
- the first subset of values is used in determining resemblance between the first segment and a second segment.
- the segments are created based at least in part on the content of the data in the stream.
- the segments are created using an anchoring function.
- the anchoring function includes computing a hash of a sliding window of bytes, determining if the computed hash meets one or more predetermined criteria, and/or establishing a boundary in an algorithmic manner in or around the sliding window of bytes.
- a window is defined and a minimum or maximum value of a computed function (e.g., a hash or other function) or of a value of data anywhere within the window is used to define a segment or subsegment.
- a window is defined that includes a plurality of subsegments. A hash of the first, all, or a selection of bytes of each subsegment is calculated and the maximum or minimum hash value within the window is selected to begin a next segment.
- FIG. 1 is a block diagram illustrating an embodiment of a system for cluster storage using delta compression.
- storage system 100 stores data for clients represented in FIG. 1 by client 112 and client 108 .
- a client may have local storage device in addition to local memory.
- client 108 has storage 110 whereas client 112 does not have a local storage device.
- Storage system 100 stores data either using internal storage device 102 or attached external storage device 104 .
- Storage system 100 communicates with clients via network 106 .
- Network 106 comprises one or more of the following: a local area network, a wide area network, a storage area network, a wired network, a wireless network, the Internet, a fiber network, or any other appropriate network enabling communication.
- Storage system 100 communicates with replica system 120 via network 106 as well.
- Replica system 120 includes internal storage device 122 and is connected to external storage device 124 .
- Replica system 120 stores all or a portion of data stored on storage system 100 . Initially, all or the portion of data stored on storage system 100 is replicated on replica system 120 by sending appropriate data via network 106 . After the initial seeding, replica system 120 is updated by sending from storage system 100 new data. Updating can be continuous, sent in bursts on a regular schedule, when the amount of data exceeds a certain size, or at other appropriate times. In various embodiments, replica system 120 receives a data stream or data blocks, data segments, segments that have not previously been stored, and/or bases (or references to bases) and deltas to previously stored segments instead of all segments of a data stream or data block. In some embodiments, replica system 120 replicates storage system 100 by receiving a copy of each of the cluster nodes.
- storage devices 102 , 104 , 122 , and 124 comprise a single storage device such as a hard disk, a tape drive, a semiconductor memory, a plurality of storage devices such as a redundant array system (e.g., a redundant array of independent disks (RAID)), a system for storage such as a library system or network attached storage system, or any other appropriate storage device or system.
- a redundant array system e.g., a redundant array of independent disks (RAID)
- RAID redundant array of independent disks
- FIG. 2 is a block diagram illustrating a storage system using cluster storage.
- storage system 200 is used to implement storage system 100 of FIG. 1 .
- storage system 200 receives one or more data streams or data blocks.
- the data streams or data blocks are processed by a plurality of data redirectors, represented in FIG. 2 by 202 and 204 .
- a data redirector takes an input data stream or data block and breaks up the data stream or block into segments.
- a segment is created using an anchoring function in which a hash of a sliding window of bytes is computed; if the hash meets some predetermined criteria, then a boundary between segments is established in an algorithmic way in or around the sliding window.
- a window is defined that includes a plurality of smaller windows within which a hash of some of the bytes of each smaller window is calculated and the maximum or minimum hash value within the window is selected to begin a next segment.
- a segment boundary is determined using a value of a function calculated for a plurality of windows within a segmentation window.
- a plurality of values are computed that are associated with candidate boundaries within the segmentation window.
- One of the candidate boundaries is selected based at least in part on a comparison between two or more of the computed values.
- a boundary within the segmentation window is determined.
- a segmentation window can be determined by determining a first location corresponding to a minimum segment length and determining a second location corresponding to a maximum length where the segmentation window is the segment from the first location to the second location. Determining a boundary can include determining a plurality of windows within the segmentation window.
- Each window corresponds to a location within the segmentation window and is associated with a candidate boundary.
- a function is then evaluated for each window.
- the function has as its inputs one or more data values of the window.
- the function comprises a hash function, SHA-1 (Secure Hash Algorithm 1), SHA-256, SHA-384, SHA-512, MD5 (Message-Digest algorithm 5), RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest 160-bit version), a Rabin hash, a fingerprint, a CRC (Cyclic Redundancy Check), a sum, an XOR, or any other appropriate function to distinguish a window.
- SHA-1 Secure Hash Algorithm 1
- SHA-256 SHA-384
- SHA-512 SHA-512
- MD5 Message-Digest algorithm 5
- RIPEMD-160 RACE Integrity Primitives Evaluation Message Digest 160-bit version
- Rabin hash a fingerprint
- a boundary is selected based at least in part on the values that were generated—for example, the location corresponding to an extrema of a function value of all values generated, the location corresponding to the minimum value of all values generated is selected, the location corresponding to the maximum value of all values generated is selected, the location corresponding to a value with the longest run of 1 bits in its value of all values generated is selected, or the location corresponding to a value with the most 1 bits in its value of all values generated is selected. If there is a tie for the value, a criterion of selecting the location that maximizes or minimizes the segment length could be adopted.
- the boundary may be selected at an offset from one of the above locations, or at fixed-block aligned location near one of the above locations.
- the data redirector may be a software function that runs on the same physical hardware as the clients of the storage system.
- cluster node 224 includes matching node 206 and storage device 210 ;
- cluster node 226 includes matching node 212 and storage device 216 ;
- cluster node 228 includes matching node 218 and storage device 222 .
- Each matching node is responsible for managing a subset of the segments stored in the cluster.
- Managing a segment includes enabling finding matches or similar segments to a new segment within the other segments being managed, and storing a deduplicated representation of the segment in a storage node.
- the deduplicated segment is stored by storing a reference to a similar stored segment and a delta or difference between the similar stored segment and the new segment being stored.
- a segment is transmitted to one or more matching function nodes, represented in FIG.
- the assignment to one or more matching nodes is a function of the hash computed as part of the anchoring function.
- the assignment is based on a function of less than all of the bytes in the segments. For example, it could be based on a function of the initial bytes of the segment, of the ending bytes of the segment, or some algorithmically determined sample of the bytes.
- the assignment is based on one or more tags of the segment.
- a tag comprises a summary feature set, a sketch, a hash or fingerprint of some of the segment, or any other appropriate characterizer of the segment that can be used for assigning the segment to a cluster node.
- a summary feature set is determined by selecting a plurality of either fixed length or variable length parts or shingles of a first segment; for each shingle, computing a plurality of values by applying a set of functions to each shingle; and from all the values computed for all the shingles, selecting a first subset of values.
- the first subset of values is used in determining resemblance between the first segment and a second segment.
- the assignment is based on sending one or more tags of the segment to some or all of the matching nodes to determine if the matching node is likely to be able to identify similar segments. In some embodiments, the assignment is based on data maintained in the Data Redirectors about the segments stored on each node such as a summary data structure—for example, a Bloom filter.
- a function generates a value for each segment and the Data Redirectors maintain a table which maps a set of such values to each node and a segment is assigned to a node at least in part based on the mapping in such a table.
- other external factors such as bytes in neighboring segments or other available resources in a node are used to assign the segment to a matching function node.
- the assignment of the segment to a matching function node is not dependent on any segment stored on any node in the cluster.
- a node may have already stored a segment similar to the transmitted segment.
- the transmitted segment is compared to previously stored similar segments to locate a base segment.
- a reference to the base segment and a delta are stored instead of the transmitted segment. If no similar base segment is located, then the transmitted segment is stored as a new base or possibly as a delta and a new base not identical to the transmitted segment.
- the new base may not be identical to the transmitted segment if, for example, the transmitted segment contains embedded byte sequences, such as a timestamp, not likely to be repeated in future segments which are otherwise similar. In this case, the embedded byte sequences could be removed from the base and stored in the delta.
- multiple matching nodes may be hosted on the same physical storage device.
- physical storage devices comprise a hard drive, a tape drive, a RAID system, an optical drive, a removable storage device, a network storage device, or any other appropriate storage device.
- the storage devices may physically reside in one or more separate nodes.
- devices may be shared by a plurality of nodes.
- FIG. 3A is a block diagram illustrating an embodiment of a data stream or a portion of a data block.
- data stream or portion of a data block 300 is shown.
- Data stream or portion of a data block 300 can be data that is being backed up, data that is being stored, data that is being replicated on a remote site, or any other appropriate data stream or portion of a data block.
- FIG. 3B is a block diagram illustrating an embodiment of segments distributed to cluster nodes.
- cluster nodes 316 , 318 , and 320 are similar to cluster nodes 224 , 226 , and 228 of FIG. 2 .
- data stream or portion of a data block is segmented into a plurality of segments—for example, segments 310 , 312 , and 314 .
- Segmenting of the data stream or portion of the data block can use content-based determination of segment boundaries (e.g., hash of content in a window is equal to a value, or hash of content in a window is the minimum or maximum of the hashes of the content of a set of windows), non-content based determination of segment boundaries (e.g., byte count), file-based segment boundaries, or any other appropriate way of breaking the data stream or data block into segments.
- segments are the same size or are different sizes.
- the segments may be non-overlapping or overlapping. Segments 310 , 312 , and 314 are distributed to cluster nodes 316 , 318 , and 320 , respectively.
- Distribution of a segment to a cluster node is based on the segment content, segment number, metadata associated with the segment, and/or a cluster node having likely similar segments so that efficient storage of the segment can take place.
- a tag or other characterization of a segment is distributed to a plurality of nodes, and a given node having likely similar segments can indicate that it would be a good candidate node for the segment to be distributed to.
- FIG. 4 is a flow diagram illustrating an embodiment of a process for cluster storage.
- the process of FIG. 4 is implemented in storage system 200 of FIG. 2 .
- a data stream or data block is received.
- the data stream or data block is broken into segments.
- a first segment is selected.
- a storage node is selected.
- a similar previously stored segment is identified; representation of the similar previously stored segment and delta are stored; if no similar previously stored segment is identified, store the segment.
- a base segment and delta are stored for the segment.
- a segment is associated with a stream, and when the segment is stored on a selected storage node, the segment is stored in such a manner that the segments associated with a stream do not require substantial time (e.g., a long seek time) to be retrieved from the selected storage node.
- This enables easier (i.e., efficient) retrieval of the stream (e.g., lower retrieval time because the segments associated with a stream are stored close to one another).
- new base segments and/or deltas that represent segments associated with a stream are stored in the same storage device, proximal to one another in the same storage device, in the same logical storage unit, or any other appropriate way of storing to enable efficient retrieval.
- new base segments and/or deltas that represent segments associated with a stream are stored in the same container.
- the stream may be associated with a single file, several related files, a directory, a group of related segments, or any other appropriate grouping of data segments.
- the data redirector provides an indication of the stream with which the segment is associated to the selected storage node or matching node to which it sends the segment.
- deltas are stored in such a manner that the deltas and the previously stored base segments do not require substantial time (e.g., a long seek) to be retrieved in quick succession. This enables easier reconstruction of a segment from its base segment and delta.
- FIG. 5 is a flow diagram illustrating an embodiment of a process for selecting a storage node.
- the process of FIG. 5 is used to implement 406 of FIG. 4 .
- a tag is computed.
- a node is selected using the tag.
- the segment is assigned to a node based on the tag without consideration of what segments are currently stored in the node; for example, all odd tags (e.g., a hash value) go to node 1, even tags go to node 2. Over time the nodes will have similar segments, but there is actually no check for having similar segments when the node is selected.
- all odd tags e.g., a hash value
- a redirector accesses a database or table which maps sets of tag values to each node to determine to which node to assign the segment.
- a given node's loading and/or capacity is/are considered in assigning a segment to a given node.
- the tag comprises a sketch, a hash, or any other appropriate manner of identifying likely similar segments.
- a redirector compares the tag to a summary data structure (e.g., a Bloom filter) that the redirector is maintaining to determine which node to assign a given segment to.
- a summary data structure e.g., a Bloom filter
- FIG. 6 is a flow diagram illustrating an embodiment of a process for selecting a storage node.
- the process of FIG. 6 is used to implement 406 of FIG. 4 .
- a tag is computed.
- the tag is broadcast to all nodes.
- the tag is sent to one or more nodes but not all nodes.
- the nodes selected to receive the tag are based at least in part on the tag.
- the nodes determine whether they contain a likely similar segment. The nodes could use a Bloom filter to determine if they have similar segments.
- an indication is received that one or more nodes likely contain(s) similar previously stored segment(s).
- a node is selected based on the indication.
- the indication indicates a measure of how many likely similar stored segments are stored on a node.
- the indication includes information regarding how close a match the likely similar segments may be.
- the indication includes information regarding the overall number of stored segments at a given node so that load balancing can be considered in determining assignment of a segment.
- the tag comprises a sketch, a hash, or any other appropriate manner of identifying likely similar segments.
- FIG. 7 is a flow diagram illustrating an embodiment of a process for storing a representation of a segment.
- the process of FIG. 7 is used to implement 408 of FIG. 4 .
- the segment in 700 the segment is sent to the selected node.
- the segment is received at the selected node.
- a tag e.g., a sketch
- the tag is the same tag already calculated in 500 or in 600 .
- it is determined if there is a previously stored similar segment using the tag.
- a delta is calculated between the segment and the previously stored similar segment, if appropriate (e.g., if there is a previously stored similar segment).
- segment tag(s) is/are stored with segment or with base reference and delta. If a new segment is stored, then tag(s) is/are calculated for the segment to be stored with the segment.
- FIG. 8 is a flow diagram illustrating an embodiment of a process for determining if a selected segment is similar to a previously stored segment.
- the process of FIG. 8 is used to implement 706 of FIG. 7 .
- a first previously stored segment tag in 800 .
Abstract
Description
- This application is a continuation of co-pending U.S. patent application Ser. No. 12/082,244 (Attorney Docket No. DDOMP021), entitled CLUSTER STORAGE USING DELTA COMPRESSION filed Apr. 9, 2008 which is incorporated herein by reference for all purposes
- This application claims priority to U.S. Provisional Patent Application No. 60/925,514 entitled SUBSEGMENTING FOR EFFICIENT STORAGE, RESEMBLANCE DETERMINATION, AND TRANSMISSION filed Apr. 19, 2007 which is incorporated herein by reference for all purposes.
- This application claims priority to U.S. Provisional Patent Application No. 60/923,066 entitled CLUSTER STORAGE USING SUBSEGMENTING filed Apr. 11, 2007 which is incorporated herein by reference for all purposes.
- This application claims priority to U.S. Provisional Patent Application No. 60/922,996 entitled CLUSTER STORAGE USING DELTA COMPRESSION filed Apr. 11, 2007 which is incorporated herein by reference for all purposes.
- Scaling data storage systems to hold more information is important as data storage users continue to increase their desired storage requirements. One approach is to aggregate multiple individual storage systems into a cluster that combines the capacity and performance of the multiple individual nodes into one. However, in order to scale smoothly, each node of the cluster must be used appropriately in terms of data stored on the node and processing and throughput required by the node.
- Some storage systems optimize storage capacity by eliminating identical copies of stored data. In some cases, stored data is divided into segments. A new segment that is desired to be stored is first compared against those segments already stored. If an identical segment is already stored on the system, a reference to that segment is stored instead of storing the new segment. This is referred to as identity compression.
- Other storage systems optimize storage capacity by comparing a new segment that is desired to be stored against those segments already stored and looking for a similar though not necessarily identical segment. If a similar segment is already stored on the system, a delta between the old and new segment is computed and a reference to the old segment and the delta is stored in place of the entire new segment. This is referred to as delta compression.
- In using either identity or delta compression with a cluster, in order to achieve high efficiency and find a similar segment each node ideally searches all stored segments in all nodes and in addition can reference, using an index, all segments in all nodes. The ability to search and index all segments on all nodes poses problems in scaling to a large number of nodes because each node must maintain its ability to search and index over all segments stored on each node of the cluster and the inter-node communication can reduce performance.
- It is useful in scaling storage using a cluster approach to divide the segments among the nodes so that a single node does not need to maintain its ability to search and index over all segments stored on each node of the cluster and to reduce the communication among the nodes. In identity compression, such division is sometimes based on a fingerprint computed over the segment, the fingerprints being divided into groups or buckets of fingerprints, and the buckets being assigned to nodes so that, given a segment, a fingerprint can be computed and the node that would have the segment, if it already exists in the cluster, can be identified. Because each node only stores some of the segments, each node only needs to index some of the segments.
- Unfortunately, in delta compression, fingerprints of segments are not useful for assigning segments to nodes because similar segments do not, in general, have similar fingerprints. Thus, assignment based on fingerprints would usually result in similar segments being stored on different nodes. A cluster which limited its search for a similar segment to a single node would often fail to find a similar segment even when one exists in the cluster.
- Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.
-
FIG. 1 is a block diagram illustrating an embodiment of a system for cluster storage using delta compression. -
FIG. 2 is a block diagram illustrating a storage system using cluster storage. -
FIG. 3A is a block diagram illustrating an embodiment of a data stream or a portion of a data block. -
FIG. 3B is a block diagram illustrating an embodiment of segments distributed to cluster nodes. -
FIG. 4 is a flow diagram illustrating an embodiment of a process for cluster storage. -
FIG. 5 is a flow diagram illustrating an embodiment of a process for selecting a storage node. -
FIG. 6 is a flow diagram illustrating an embodiment of a process for selecting a storage node. -
FIG. 7 is a flow diagram illustrating an embodiment of a process for storing a representation of a segment. -
FIG. 8 is a flow diagram illustrating an embodiment of a process for determining if a selected segment is similar to a previously stored segment. - The invention can be implemented in numerous ways, including as a process, an apparatus, a system, a composition of matter, a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or electronic communication links. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. A component such as a processor or a memory described as being configured to perform a task includes both a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. In general, the order of the steps of disclosed processes may be altered within the scope of the invention.
- A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.
- Cluster storage is disclosed. A storage system uses a cluster of nodes to store in-coming data. In-coming data is segmented. Each segment is characterized for assignment for storage on a given node. On the given node of the cluster, segments are stored in a manner that deduplicates segment storage. Sorting segments into a plurality of nodes reduces the number of segments to be searched for deduplication and reduces the size of the segment index required on a node. It also reduces the overhead of network traffic for inter-node communication because the nodes need to exchange less information to deduplicate and store the data.
- Segments are deduplicated on each node of the cluster using delta compression. Delta compression allows the use of large segments for distributing efficiently to nodes so that sequential bytes are stored close to each other on disk. Delta compression efficiently stores segments that are similar to each other by storing one base and, for other similar segments, storing only a delta from the base along with a reference to the base. If a segment is not similar to a previously stored base, the new segment is stored as a new base and possibly a delta from that base.
- In some embodiments, a node is selected for a given segment by finding a node that manages or stores similar segments to the given segment. In some embodiments, the node is selected using a sketch or other resemblance measure to identify if the node manages or stores similar segments. In various embodiments, a cluster node is associated with the segment based at least in part on a computed hash of all or some of the content of the segment, on a function of less than all the bytes in the segment (e.g., the initial bytes, the ending bytes, algorithmically determined sample of bytes, etc.), on a sketch of the segment, on a content based tag associated with the segment, determining which cluster nodes have likely similar segments, on node capacities (e.g., remaining storage capacity, used storage capacity, etc.) or capabilities, or any other appropriate available resource associated with the node.
- In some embodiments, a sketch or other resemblance measure is used to identify a subset of segments to search through for a similar match on the node. In this case, the subset comprises likely similar segments and is used to more efficiently locate the similar segments by reducing the search space within the managed or stored segments. Resemblance is determined by comparing a summary feature set of a first segment with a summary feature set of a second segment. A summary feature set is determined by selecting a plurality of either fixed length or variable length parts or shingles of a first segment; for each shingle, computing a plurality of values by applying a set of functions to each shingle; and from all the values computed for all the shingles, selecting a first subset of values. In some embodiments, the first subset of values is used in determining resemblance between the first segment and a second segment.
- In some embodiments, the segments are created based at least in part on the content of the data in the stream. In some embodiments, the segments are created using an anchoring function. In various embodiments, the anchoring function includes computing a hash of a sliding window of bytes, determining if the computed hash meets one or more predetermined criteria, and/or establishing a boundary in an algorithmic manner in or around the sliding window of bytes. In some embodiments, a window is defined and a minimum or maximum value of a computed function (e.g., a hash or other function) or of a value of data anywhere within the window is used to define a segment or subsegment. In some embodiments, a window is defined that includes a plurality of subsegments. A hash of the first, all, or a selection of bytes of each subsegment is calculated and the maximum or minimum hash value within the window is selected to begin a next segment.
-
FIG. 1 is a block diagram illustrating an embodiment of a system for cluster storage using delta compression. In the example shown,storage system 100 stores data for clients represented inFIG. 1 byclient 112 andclient 108. A client may have local storage device in addition to local memory. For example,client 108 hasstorage 110 whereasclient 112 does not have a local storage device.Storage system 100 stores data either usinginternal storage device 102 or attachedexternal storage device 104. -
Storage system 100 communicates with clients vianetwork 106.Network 106 comprises one or more of the following: a local area network, a wide area network, a storage area network, a wired network, a wireless network, the Internet, a fiber network, or any other appropriate network enabling communication.Storage system 100 communicates withreplica system 120 vianetwork 106 as well.Replica system 120 includesinternal storage device 122 and is connected toexternal storage device 124. -
Replica system 120 stores all or a portion of data stored onstorage system 100. Initially, all or the portion of data stored onstorage system 100 is replicated onreplica system 120 by sending appropriate data vianetwork 106. After the initial seeding,replica system 120 is updated by sending fromstorage system 100 new data. Updating can be continuous, sent in bursts on a regular schedule, when the amount of data exceeds a certain size, or at other appropriate times. In various embodiments,replica system 120 receives a data stream or data blocks, data segments, segments that have not previously been stored, and/or bases (or references to bases) and deltas to previously stored segments instead of all segments of a data stream or data block. In some embodiments,replica system 120 replicatesstorage system 100 by receiving a copy of each of the cluster nodes. - In various embodiments,
storage devices -
FIG. 2 is a block diagram illustrating a storage system using cluster storage. In some embodiments,storage system 200 is used to implementstorage system 100 ofFIG. 1 . In the example shown,storage system 200 receives one or more data streams or data blocks. The data streams or data blocks are processed by a plurality of data redirectors, represented inFIG. 2 by 202 and 204. A data redirector takes an input data stream or data block and breaks up the data stream or block into segments. In some embodiments, a segment is created using an anchoring function in which a hash of a sliding window of bytes is computed; if the hash meets some predetermined criteria, then a boundary between segments is established in an algorithmic way in or around the sliding window. In some embodiments, a window is defined that includes a plurality of smaller windows within which a hash of some of the bytes of each smaller window is calculated and the maximum or minimum hash value within the window is selected to begin a next segment. - In various embodiments, a segment boundary is determined using a value of a function calculated for a plurality of windows within a segmentation window. A plurality of values are computed that are associated with candidate boundaries within the segmentation window. One of the candidate boundaries is selected based at least in part on a comparison between two or more of the computed values. A boundary within the segmentation window is determined. In some embodiments, a segmentation window can be determined by determining a first location corresponding to a minimum segment length and determining a second location corresponding to a maximum length where the segmentation window is the segment from the first location to the second location. Determining a boundary can include determining a plurality of windows within the segmentation window. Each window corresponds to a location within the segmentation window and is associated with a candidate boundary. In some embodiments, a function is then evaluated for each window. The function has as its inputs one or more data values of the window. In various embodiments, the function comprises a hash function, SHA-1 (Secure Hash Algorithm 1), SHA-256, SHA-384, SHA-512, MD5 (Message-Digest algorithm 5), RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest 160-bit version), a Rabin hash, a fingerprint, a CRC (Cyclic Redundancy Check), a sum, an XOR, or any other appropriate function to distinguish a window. After the function values are generated for all windows, a boundary is selected based at least in part on the values that were generated—for example, the location corresponding to an extrema of a function value of all values generated, the location corresponding to the minimum value of all values generated is selected, the location corresponding to the maximum value of all values generated is selected, the location corresponding to a value with the longest run of 1 bits in its value of all values generated is selected, or the location corresponding to a value with the most 1 bits in its value of all values generated is selected. If there is a tie for the value, a criterion of selecting the location that maximizes or minimizes the segment length could be adopted. The boundary may be selected at an offset from one of the above locations, or at fixed-block aligned location near one of the above locations.
- In some embodiments, the data redirector may be a software function that runs on the same physical hardware as the clients of the storage system.
- In the example shown,
cluster node 224 includes matchingnode 206 andstorage device 210;cluster node 226 includes matchingnode 212 andstorage device 216;cluster node 228 includes matchingnode 218 andstorage device 222. Each matching node is responsible for managing a subset of the segments stored in the cluster. Managing a segment includes enabling finding matches or similar segments to a new segment within the other segments being managed, and storing a deduplicated representation of the segment in a storage node. The deduplicated segment is stored by storing a reference to a similar stored segment and a delta or difference between the similar stored segment and the new segment being stored. A segment is transmitted to one or more matching function nodes, represented inFIG. 2 by 206, 212, and 218, of a cluster node, represented inFIG. 2 by 224, 226, and 228, respectively. In some embodiments, the assignment to one or more matching nodes is a function of the hash computed as part of the anchoring function. In some embodiments, the assignment is based on a function of less than all of the bytes in the segments. For example, it could be based on a function of the initial bytes of the segment, of the ending bytes of the segment, or some algorithmically determined sample of the bytes. In some embodiments, the assignment is based on one or more tags of the segment. In various embodiments, a tag comprises a summary feature set, a sketch, a hash or fingerprint of some of the segment, or any other appropriate characterizer of the segment that can be used for assigning the segment to a cluster node. In some embodiments, a summary feature set is determined by selecting a plurality of either fixed length or variable length parts or shingles of a first segment; for each shingle, computing a plurality of values by applying a set of functions to each shingle; and from all the values computed for all the shingles, selecting a first subset of values. In some embodiments, the first subset of values is used in determining resemblance between the first segment and a second segment. In some embodiments, other external factors, such as bytes in neighboring segments or other available resources in a node are used to assign the segment to a matching function node. In some embodiments, the assignment is based on sending one or more tags of the segment to some or all of the matching nodes to determine if the matching node is likely to be able to identify similar segments. In some embodiments, the assignment is based on data maintained in the Data Redirectors about the segments stored on each node such as a summary data structure—for example, a Bloom filter. In some embodiments, a function generates a value for each segment and the Data Redirectors maintain a table which maps a set of such values to each node and a segment is assigned to a node at least in part based on the mapping in such a table. - In some embodiments, other external factors, such as bytes in neighboring segments or other available resources in a node are used to assign the segment to a matching function node. In some embodiments, the assignment of the segment to a matching function node is not dependent on any segment stored on any node in the cluster.
- In some embodiments, a node may have already stored a segment similar to the transmitted segment. The transmitted segment is compared to previously stored similar segments to locate a base segment. A reference to the base segment and a delta are stored instead of the transmitted segment. If no similar base segment is located, then the transmitted segment is stored as a new base or possibly as a delta and a new base not identical to the transmitted segment. The new base may not be identical to the transmitted segment if, for example, the transmitted segment contains embedded byte sequences, such as a timestamp, not likely to be repeated in future segments which are otherwise similar. In this case, the embedded byte sequences could be removed from the base and stored in the delta.
- In some embodiments, multiple matching nodes may be hosted on the same physical storage device.
- In various embodiments, physical storage devices comprise a hard drive, a tape drive, a RAID system, an optical drive, a removable storage device, a network storage device, or any other appropriate storage device. In some embodiments, the storage devices may physically reside in one or more separate nodes. In some embodiments, devices may be shared by a plurality of nodes.
-
FIG. 3A is a block diagram illustrating an embodiment of a data stream or a portion of a data block. In the example shown, data stream or portion of adata block 300 is shown. Data stream or portion of adata block 300 can be data that is being backed up, data that is being stored, data that is being replicated on a remote site, or any other appropriate data stream or portion of a data block. -
FIG. 3B is a block diagram illustrating an embodiment of segments distributed to cluster nodes. In some embodiments,cluster nodes cluster nodes FIG. 2 . In the example shown, data stream or portion of a data block is segmented into a plurality of segments—for example,segments Segments nodes -
FIG. 4 is a flow diagram illustrating an embodiment of a process for cluster storage. In some embodiments, the process ofFIG. 4 is implemented instorage system 200 ofFIG. 2 . In the example shown, in 400 a data stream or data block is received. In 402, the data stream or data block is broken into segments. In 404, a first segment is selected. In 406, a storage node is selected. In 408, a similar previously stored segment is identified; representation of the similar previously stored segment and delta are stored; if no similar previously stored segment is identified, store the segment. In some embodiments, if no similar previously stored segment is identified, a base segment and delta are stored for the segment. In 410, it is determined if there are more segments to process. If so, then in 412 a next segment is selected and control passes to 406. If not, then the process ends. - In various embodiments, a segment is associated with a stream, and when the segment is stored on a selected storage node, the segment is stored in such a manner that the segments associated with a stream do not require substantial time (e.g., a long seek time) to be retrieved from the selected storage node. This enables easier (i.e., efficient) retrieval of the stream (e.g., lower retrieval time because the segments associated with a stream are stored close to one another). In various embodiments, new base segments and/or deltas that represent segments associated with a stream are stored in the same storage device, proximal to one another in the same storage device, in the same logical storage unit, or any other appropriate way of storing to enable efficient retrieval. In some embodiments, new base segments and/or deltas that represent segments associated with a stream are stored in the same container. The stream may be associated with a single file, several related files, a directory, a group of related segments, or any other appropriate grouping of data segments. In some embodiments, the data redirector provides an indication of the stream with which the segment is associated to the selected storage node or matching node to which it sends the segment.
- In various embodiments, deltas are stored in such a manner that the deltas and the previously stored base segments do not require substantial time (e.g., a long seek) to be retrieved in quick succession. This enables easier reconstruction of a segment from its base segment and delta.
-
FIG. 5 is a flow diagram illustrating an embodiment of a process for selecting a storage node. In some embodiments, the process ofFIG. 5 is used to implement 406 ofFIG. 4 . In the example shown, in 500 a tag is computed. In 502, a node is selected using the tag. In some embodiments, the segment is assigned to a node based on the tag without consideration of what segments are currently stored in the node; for example, all odd tags (e.g., a hash value) go to node 1, even tags go to node 2. Over time the nodes will have similar segments, but there is actually no check for having similar segments when the node is selected. In some embodiments, a redirector accesses a database or table which maps sets of tag values to each node to determine to which node to assign the segment. In some embodiments, a given node's loading and/or capacity is/are considered in assigning a segment to a given node. In various embodiments, the tag comprises a sketch, a hash, or any other appropriate manner of identifying likely similar segments. - In some embodiments, a redirector compares the tag to a summary data structure (e.g., a Bloom filter) that the redirector is maintaining to determine which node to assign a given segment to.
-
FIG. 6 is a flow diagram illustrating an embodiment of a process for selecting a storage node. In some embodiments, the process ofFIG. 6 is used to implement 406 ofFIG. 4 . In the example shown, in 600 a tag is computed. In 602, the tag is broadcast to all nodes. In some embodiments, the tag is sent to one or more nodes but not all nodes. In some embodiments, the nodes selected to receive the tag are based at least in part on the tag. In 603, the nodes determine whether they contain a likely similar segment. The nodes could use a Bloom filter to determine if they have similar segments. In 604, an indication is received that one or more nodes likely contain(s) similar previously stored segment(s). In 606, a node is selected based on the indication. In some embodiments, the indication indicates a measure of how many likely similar stored segments are stored on a node. In some embodiments, the indication includes information regarding how close a match the likely similar segments may be. In some embodiments, the indication includes information regarding the overall number of stored segments at a given node so that load balancing can be considered in determining assignment of a segment. In various embodiments, the tag comprises a sketch, a hash, or any other appropriate manner of identifying likely similar segments. -
FIG. 7 is a flow diagram illustrating an embodiment of a process for storing a representation of a segment. In some embodiments, the process ofFIG. 7 is used to implement 408 ofFIG. 4 . In the example shown, in 700 the segment is sent to the selected node. In 702, the segment is received at the selected node. In 704, a tag (e.g., a sketch) of the segment is calculated. In some embodiments, the tag is the same tag already calculated in 500 or in 600. In 706, it is determined if there is a previously stored similar segment using the tag. In 708 a delta is calculated between the segment and the previously stored similar segment, if appropriate (e.g., if there is a previously stored similar segment). In 710, store segment by storing a reference to the previously stored similar segment and the delta, or store the segment as a new segment. Segment tag(s) is/are stored with segment or with base reference and delta. If a new segment is stored, then tag(s) is/are calculated for the segment to be stored with the segment. -
FIG. 8 is a flow diagram illustrating an embodiment of a process for determining if a selected segment is similar to a previously stored segment. In some embodiments, the process ofFIG. 8 is used to implement 706 ofFIG. 7 . In the example shown, in 800 a first previously stored segment tag. In 802, it is determined if the selected tag is most similar to the segment tag. If the selected tag is most similar to the segment tag, then in 804 identify selected tag as most similar, and control passes to 808. If the selected tag is not the most similar to the segment tag, then control passes to 808. In 808, it is determined if there are more tags (e.g., previously stored segment tags). If so, then in 810 a next previously stored segment tag is selected. If not, then the process ends. - Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.
Claims (22)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/090,166 US8312006B2 (en) | 2007-04-11 | 2011-04-19 | Cluster storage using delta compression |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US92299607P | 2007-04-11 | 2007-04-11 | |
US92306607P | 2007-04-11 | 2007-04-11 | |
US92551407P | 2007-04-19 | 2007-04-19 | |
US12/082,244 US7962520B2 (en) | 2007-04-11 | 2008-04-09 | Cluster storage using delta compression |
US13/090,166 US8312006B2 (en) | 2007-04-11 | 2011-04-19 | Cluster storage using delta compression |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/082,244 Continuation US7962520B2 (en) | 2007-04-11 | 2008-04-09 | Cluster storage using delta compression |
Publications (2)
Publication Number | Publication Date |
---|---|
US20110196869A1 true US20110196869A1 (en) | 2011-08-11 |
US8312006B2 US8312006B2 (en) | 2012-11-13 |
Family
ID=39854727
Family Applications (8)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/804,578 Active 2030-06-22 US8768895B2 (en) | 2007-04-11 | 2007-05-18 | Subsegmenting for efficient storage, resemblance determination, and transmission |
US11/824,592 Active 2028-03-03 US8005861B2 (en) | 2007-04-11 | 2007-06-29 | Cluster storage using subsegmenting for efficient storage |
US12/082,244 Active 2029-08-20 US7962520B2 (en) | 2007-04-11 | 2008-04-09 | Cluster storage using delta compression |
US13/090,166 Active US8312006B2 (en) | 2007-04-11 | 2011-04-19 | Cluster storage using delta compression |
US13/179,164 Active US8694554B2 (en) | 2007-04-11 | 2011-07-08 | Cluster storage using subsegmenting for efficient storage |
US14/189,571 Active US9183216B2 (en) | 2007-04-11 | 2014-02-25 | Cluster storage using subsegmenting for efficient storage |
US14/280,425 Active US9841898B2 (en) | 2007-04-11 | 2014-05-16 | Subsegmenting for efficient storage, resemblance determination, and transmission |
US14/878,921 Active 2028-12-23 US10228851B2 (en) | 2007-04-11 | 2015-10-08 | Cluster storage using subsegmenting for efficient storage |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/804,578 Active 2030-06-22 US8768895B2 (en) | 2007-04-11 | 2007-05-18 | Subsegmenting for efficient storage, resemblance determination, and transmission |
US11/824,592 Active 2028-03-03 US8005861B2 (en) | 2007-04-11 | 2007-06-29 | Cluster storage using subsegmenting for efficient storage |
US12/082,244 Active 2029-08-20 US7962520B2 (en) | 2007-04-11 | 2008-04-09 | Cluster storage using delta compression |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/179,164 Active US8694554B2 (en) | 2007-04-11 | 2011-07-08 | Cluster storage using subsegmenting for efficient storage |
US14/189,571 Active US9183216B2 (en) | 2007-04-11 | 2014-02-25 | Cluster storage using subsegmenting for efficient storage |
US14/280,425 Active US9841898B2 (en) | 2007-04-11 | 2014-05-16 | Subsegmenting for efficient storage, resemblance determination, and transmission |
US14/878,921 Active 2028-12-23 US10228851B2 (en) | 2007-04-11 | 2015-10-08 | Cluster storage using subsegmenting for efficient storage |
Country Status (4)
Country | Link |
---|---|
US (8) | US8768895B2 (en) |
EP (1) | EP2156296A4 (en) |
CN (1) | CN101796492B (en) |
WO (3) | WO2008127545A1 (en) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8396839B1 (en) * | 2010-06-25 | 2013-03-12 | Emc Corporation | Representing de-duplicated file data |
US9355108B2 (en) | 2012-11-07 | 2016-05-31 | International Business Machines Corporation | Storing data files in a file system |
US20170185665A1 (en) * | 2015-12-28 | 2017-06-29 | Facebook, Inc. | Systems and methods for online clustering of content items |
WO2018191709A1 (en) * | 2017-04-13 | 2018-10-18 | EMC IP Holding Company LLC | Micro-service based deduplication |
US10459633B1 (en) | 2017-07-21 | 2019-10-29 | EMC IP Holding Company LLC | Method for efficient load balancing in virtual storage systems |
US10481813B1 (en) | 2017-07-28 | 2019-11-19 | EMC IP Holding Company LLC | Device and method for extending cache operational lifetime |
WO2019236216A1 (en) * | 2018-06-06 | 2019-12-12 | Yingquan Wu | Chunk-based data deduplication |
US10592158B1 (en) | 2018-10-30 | 2020-03-17 | EMC IP Holding Company LLC | Method and system for transferring data to a target storage system using perfect hash functions |
US10713217B2 (en) | 2018-10-30 | 2020-07-14 | EMC IP Holding Company LLC | Method and system to managing persistent storage using perfect hashing |
US10795860B1 (en) | 2017-04-13 | 2020-10-06 | EMC IP Holding Company LLC | WAN optimized micro-service based deduplication |
US10860212B1 (en) | 2017-07-21 | 2020-12-08 | EMC IP Holding Company LLC | Method or an apparatus to move perfect de-duplicated unique data from a source to destination storage tier |
US10929382B1 (en) | 2017-07-31 | 2021-02-23 | EMC IP Holding Company LLC | Method and system to verify integrity of a portion of replicated data |
US10936543B1 (en) | 2017-07-21 | 2021-03-02 | EMC IP Holding Company LLC | Metadata protected sparse block set for SSD cache space management |
US10949088B1 (en) | 2017-07-21 | 2021-03-16 | EMC IP Holding Company LLC | Method or an apparatus for having perfect deduplication, adapted for saving space in a deduplication file system |
US10977217B2 (en) | 2018-10-31 | 2021-04-13 | EMC IP Holding Company LLC | Method and system to efficiently recovering a consistent view of a file system image from an asynchronously remote system |
US11093453B1 (en) | 2017-08-31 | 2021-08-17 | EMC IP Holding Company LLC | System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication |
US11113153B2 (en) | 2017-07-27 | 2021-09-07 | EMC IP Holding Company LLC | Method and system for sharing pre-calculated fingerprints and data chunks amongst storage systems on a cloud local area network |
US11461269B2 (en) * | 2017-07-21 | 2022-10-04 | EMC IP Holding Company | Metadata separated container format |
Families Citing this family (231)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE474261T1 (en) | 2003-01-31 | 2010-07-15 | Visto Corp | ASYNCHRONOUS REAL-TIME DATA FETCHING |
US20070198659A1 (en) * | 2006-01-25 | 2007-08-23 | Lam Wai T | Method and system for storing data |
US8667273B1 (en) | 2006-05-30 | 2014-03-04 | Leif Olov Billstrom | Intelligent file encryption and secure backup system |
US8868504B2 (en) * | 2007-03-07 | 2014-10-21 | Oracle International Corporation | Database system with active standby and nodes |
US8768895B2 (en) * | 2007-04-11 | 2014-07-01 | Emc Corporation | Subsegmenting for efficient storage, resemblance determination, and transmission |
US8166012B2 (en) * | 2007-04-11 | 2012-04-24 | Emc Corporation | Cluster storage using subsegmenting |
US8611422B1 (en) * | 2007-06-19 | 2013-12-17 | Google Inc. | Endpoint based video fingerprinting |
US8099401B1 (en) * | 2007-07-18 | 2012-01-17 | Emc Corporation | Efficiently indexing and searching similar data |
KR101143670B1 (en) * | 2007-08-20 | 2012-05-09 | 노키아 코포레이션 | Segmented metadata and indexes for streamed multimedia data |
US7765204B2 (en) * | 2007-09-27 | 2010-07-27 | Microsoft Corporation | Method of finding candidate sub-queries from longer queries |
CN101141627A (en) * | 2007-10-23 | 2008-03-12 | 深圳市迅雷网络技术有限公司 | Storage system and method of stream media file |
GB2466580B (en) * | 2007-10-25 | 2013-01-02 | Hewlett Packard Development Co | Data processing apparatus and method of processing data |
GB2466581B (en) * | 2007-10-25 | 2013-01-09 | Hewlett Packard Development Co | Data processing apparatus and method of deduplicating data |
US8782368B2 (en) * | 2007-10-25 | 2014-07-15 | Hewlett-Packard Development Company, L.P. | Storing chunks in containers |
US8140637B2 (en) | 2007-10-25 | 2012-03-20 | Hewlett-Packard Development Company, L.P. | Communicating chunks between devices |
CN101855636B (en) * | 2007-10-25 | 2016-03-16 | 惠普开发有限公司 | Data processing equipment and data processing method |
US8126852B1 (en) | 2007-12-07 | 2012-02-28 | Emc Corporation | Merged collections |
US8140599B1 (en) * | 2007-12-07 | 2012-03-20 | Emc Corporation | Garbage collection for merged collections |
US8103686B2 (en) * | 2007-12-12 | 2012-01-24 | Microsoft Corporation | Extracting similar entities from lists/tables |
US8751561B2 (en) * | 2008-04-08 | 2014-06-10 | Roderick B. Wideman | Methods and systems for improved throughput performance in a distributed data de-duplication environment |
EP2263208B1 (en) | 2008-04-09 | 2016-08-10 | Level 3 Communications, LLC | Content delivery in a network |
US9426244B2 (en) * | 2008-04-09 | 2016-08-23 | Level 3 Communications, Llc | Content delivery in a network |
CN102016789B (en) * | 2008-04-25 | 2014-03-19 | 惠普开发有限公司 | Data processing apparatus and method of processing data |
US8484162B2 (en) | 2008-06-24 | 2013-07-09 | Commvault Systems, Inc. | De-duplication systems and methods for application-specific data |
US8572055B1 (en) * | 2008-06-30 | 2013-10-29 | Symantec Operating Corporation | Method and system for efficiently handling small files in a single instance storage data store |
US8832034B1 (en) | 2008-07-03 | 2014-09-09 | Riverbed Technology, Inc. | Space-efficient, revision-tolerant data de-duplication |
US8370309B1 (en) * | 2008-07-03 | 2013-02-05 | Infineta Systems, Inc. | Revision-tolerant data de-duplication |
KR20100004605A (en) * | 2008-07-04 | 2010-01-13 | 한국전자통신연구원 | Method for selecting node in network system and system thereof |
US8788466B2 (en) * | 2008-08-05 | 2014-07-22 | International Business Machines Corporation | Efficient transfer of deduplicated data |
US8386494B2 (en) * | 2008-08-07 | 2013-02-26 | Hewlett-Packard Development Company, L.P. | Providing data structures for determining whether keys of an index are present in a storage system |
US8078593B1 (en) * | 2008-08-28 | 2011-12-13 | Infineta Systems, Inc. | Dictionary architecture and methodology for revision-tolerant data de-duplication |
US8290915B2 (en) | 2008-09-15 | 2012-10-16 | International Business Machines Corporation | Retrieval and recovery of data chunks from alternate data stores in a deduplicating system |
US8452731B2 (en) * | 2008-09-25 | 2013-05-28 | Quest Software, Inc. | Remote backup and restore |
US8495032B2 (en) * | 2008-10-01 | 2013-07-23 | International Business Machines Corporation | Policy based sharing of redundant data across storage pools in a deduplicating system |
US8849772B1 (en) * | 2008-11-14 | 2014-09-30 | Emc Corporation | Data replication with delta compression |
US8751462B2 (en) * | 2008-11-14 | 2014-06-10 | Emc Corporation | Delta compression after identity deduplication |
US8447740B1 (en) * | 2008-11-14 | 2013-05-21 | Emc Corporation | Stream locality delta compression |
JP5468620B2 (en) * | 2008-12-18 | 2014-04-09 | コピウン,インク. | Method and apparatus for content-aware data partitioning and data deduplication |
EP2368199B1 (en) * | 2008-12-22 | 2018-10-31 | Google LLC | Asynchronous distributed de-duplication for replicated content addressable storage clusters |
BRPI0922542B1 (en) | 2008-12-22 | 2020-10-13 | Google Llc | METHOD PERFORMED BY A DEVICE PLURALITY DEVICE IN A DISTRIBUTED DATA REPLICATION SYSTEM, SYSTEM AND COMPUTER-READY MEMORY |
US8161255B2 (en) * | 2009-01-06 | 2012-04-17 | International Business Machines Corporation | Optimized simultaneous storing of data into deduplicated and non-deduplicated storage pools |
US8650162B1 (en) * | 2009-03-31 | 2014-02-11 | Symantec Corporation | Method and apparatus for integrating data duplication with block level incremental data backup |
US8412848B2 (en) * | 2009-05-29 | 2013-04-02 | Exagrid Systems, Inc. | Method and apparatus for content-aware and adaptive deduplication |
US8731190B2 (en) * | 2009-06-09 | 2014-05-20 | Emc Corporation | Segment deduplication system with encryption and compression of segments |
WO2010144123A1 (en) * | 2009-06-09 | 2010-12-16 | Emc Corporation | Segment deduplication system with encryption segments |
US8762348B2 (en) * | 2009-06-09 | 2014-06-24 | Emc Corporation | Segment deduplication system with compression of segments |
US8401181B2 (en) * | 2009-06-09 | 2013-03-19 | Emc Corporation | Segment deduplication system with encryption of segments |
US8615498B1 (en) * | 2009-06-19 | 2013-12-24 | Symantec Corporation | Systems and methods for migrating an object from a deduplication store to an external domain |
US8930306B1 (en) | 2009-07-08 | 2015-01-06 | Commvault Systems, Inc. | Synchronized data deduplication |
US8131688B2 (en) * | 2009-08-26 | 2012-03-06 | Lsi Corporation | Storage system data compression enhancement |
US8510275B2 (en) | 2009-09-21 | 2013-08-13 | Dell Products L.P. | File aware block level deduplication |
US10148433B1 (en) | 2009-10-14 | 2018-12-04 | Digitalpersona, Inc. | Private key/public key resource protection scheme |
US8554743B2 (en) | 2009-12-08 | 2013-10-08 | International Business Machines Corporation | Optimization of a computing environment in which data management operations are performed |
US8751448B1 (en) * | 2009-12-11 | 2014-06-10 | Emc Corporation | State-based directing of segments in a multinode deduplicated storage system |
US8285957B1 (en) * | 2010-01-12 | 2012-10-09 | Netapp, Inc. | System and method for preprocessing a data set to improve deduplication |
CN102934115B (en) * | 2010-03-12 | 2016-07-06 | 科派恩股份有限公司 | The management method of data, client device and system |
CN102985911B (en) | 2010-03-16 | 2016-07-06 | 科派恩股份有限公司 | Telescopic in height and distributed data de-duplication |
US8606756B2 (en) * | 2010-04-09 | 2013-12-10 | Ca, Inc. | Distributed system having a shared central database |
WO2012027472A2 (en) | 2010-08-24 | 2012-03-01 | Copiun, Inc. | Constant access gateway and de-duplicated data cache server |
US8838919B2 (en) | 2010-08-30 | 2014-09-16 | Oracle International Corporation | Controlling data lag in a replicated computer system |
US8589361B2 (en) * | 2010-08-30 | 2013-11-19 | Oracle International Corporation | Reduced disk space standby |
GB2483282B (en) * | 2010-09-03 | 2017-09-13 | Advanced Risc Mach Ltd | Data compression and decompression using relative and absolute delta values |
US8549350B1 (en) | 2010-09-30 | 2013-10-01 | Emc Corporation | Multi-tier recovery |
US8572340B2 (en) | 2010-09-30 | 2013-10-29 | Commvault Systems, Inc. | Systems and methods for retaining and using data block signatures in data protection operations |
US8943356B1 (en) | 2010-09-30 | 2015-01-27 | Emc Corporation | Post backup catalogs |
US8949661B1 (en) | 2010-09-30 | 2015-02-03 | Emc Corporation | Federation of indices |
US8713364B1 (en) * | 2010-09-30 | 2014-04-29 | Emc Corporation | Unified recovery |
US8504870B2 (en) | 2010-09-30 | 2013-08-06 | Emc Corporation | Optimized recovery |
US8364652B2 (en) | 2010-09-30 | 2013-01-29 | Commvault Systems, Inc. | Content aligned block-based deduplication |
US8484505B1 (en) | 2010-09-30 | 2013-07-09 | Emc Corporation | Self recovery |
US9195549B1 (en) | 2010-09-30 | 2015-11-24 | Emc Corporation | Unified recovery |
US20120089579A1 (en) * | 2010-10-08 | 2012-04-12 | Sandeep Ranade | Compression pipeline for storing data in a storage cloud |
US9442806B1 (en) | 2010-11-30 | 2016-09-13 | Veritas Technologies Llc | Block-level deduplication |
US20120150818A1 (en) | 2010-12-14 | 2012-06-14 | Commvault Systems, Inc. | Client-side repository in a networked deduplicated storage system |
US9020900B2 (en) | 2010-12-14 | 2015-04-28 | Commvault Systems, Inc. | Distributed deduplicated storage system |
US8886901B1 (en) | 2010-12-31 | 2014-11-11 | Emc Corporation | Policy based storage tiering |
US9280550B1 (en) * | 2010-12-31 | 2016-03-08 | Emc Corporation | Efficient storage tiering |
CN102810108A (en) * | 2011-06-02 | 2012-12-05 | 英业达股份有限公司 | Method for processing repeated data |
US8904128B2 (en) | 2011-06-08 | 2014-12-02 | Hewlett-Packard Development Company, L.P. | Processing a request to restore deduplicated data |
US8868492B2 (en) | 2011-06-15 | 2014-10-21 | Oracle International Corporation | Method for maximizing throughput and minimizing transactions response times on the primary system in the presence of a zero data loss standby replica |
CN102880615B (en) * | 2011-07-15 | 2018-04-27 | 腾讯科技(深圳)有限公司 | A kind of date storage method and device |
US8589363B2 (en) * | 2011-07-19 | 2013-11-19 | Exagrid Systems, Inc. | Systems and methods for managing delta version chains |
US8756249B1 (en) * | 2011-08-23 | 2014-06-17 | Emc Corporation | Method and apparatus for efficiently searching data in a storage system |
US8825626B1 (en) | 2011-08-23 | 2014-09-02 | Emc Corporation | Method and system for detecting unwanted content of files |
JP5853507B2 (en) * | 2011-09-05 | 2016-02-09 | ソニー株式会社 | Information processing apparatus, information processing system, information processing method, and program |
US11336295B2 (en) | 2011-09-13 | 2022-05-17 | Exagrid Systems, Inc. | Systems and methods for version chain clustering |
US10498356B2 (en) * | 2011-09-13 | 2019-12-03 | Exagrid Systems, Inc. | Systems and methods for version chain clustering |
US8490162B1 (en) | 2011-09-29 | 2013-07-16 | Amazon Technologies, Inc. | System and method for recognizing malicious credential guessing attacks |
JP5786670B2 (en) * | 2011-11-17 | 2015-09-30 | ソニー株式会社 | Information processing apparatus, information storage apparatus, information processing system, information processing method, and program |
US8972678B2 (en) * | 2011-12-21 | 2015-03-03 | Emc Corporation | Efficient backup replication |
US8667032B1 (en) * | 2011-12-22 | 2014-03-04 | Emc Corporation | Efficient content meta-data collection and trace generation from deduplicated storage |
US8914338B1 (en) | 2011-12-22 | 2014-12-16 | Emc Corporation | Out-of-core similarity matching |
US8615499B2 (en) | 2012-01-27 | 2013-12-24 | International Business Machines Corporation | Estimating data reduction in storage systems |
US8918390B1 (en) | 2012-06-13 | 2014-12-23 | Emc Corporation | Preferential selection of candidates for delta compression |
US20130339310A1 (en) | 2012-06-13 | 2013-12-19 | Commvault Systems, Inc. | Restore using a client side signature repository in a networked storage system |
US10135462B1 (en) * | 2012-06-13 | 2018-11-20 | EMC IP Holding Company LLC | Deduplication using sub-chunk fingerprints |
US8712978B1 (en) | 2012-06-13 | 2014-04-29 | Emc Corporation | Preferential selection of candidates for delta compression |
US9400610B1 (en) | 2012-06-13 | 2016-07-26 | Emc Corporation | Method for cleaning a delta storage system |
US10114831B2 (en) | 2012-08-16 | 2018-10-30 | Exagrid Systems, Inc. | Delta version clustering and re-anchoring |
EP2888819B1 (en) * | 2012-08-21 | 2020-09-16 | EMC Corporation | Format identification for fragmented image data |
US20140143680A1 (en) * | 2012-11-21 | 2014-05-22 | Guidance Software, Inc. | Segmented graphical review system and method |
US9262430B2 (en) * | 2012-11-22 | 2016-02-16 | Kaminario Technologies Ltd. | Deduplication in a storage system |
CN103020174B (en) * | 2012-11-28 | 2016-01-06 | 华为技术有限公司 | Similarity analysis method, Apparatus and system |
US9665591B2 (en) | 2013-01-11 | 2017-05-30 | Commvault Systems, Inc. | High availability distributed deduplicated storage system |
US9110964B1 (en) * | 2013-03-05 | 2015-08-18 | Emc Corporation | Metadata optimization for network replication using differential encoding |
US9235475B1 (en) | 2013-03-05 | 2016-01-12 | Emc Corporation | Metadata optimization for network replication using representative of metadata batch |
US9798731B2 (en) * | 2013-03-06 | 2017-10-24 | Dell Products, Lp | Delta compression of probabilistically clustered chunks of data |
US10152500B2 (en) | 2013-03-14 | 2018-12-11 | Oracle International Corporation | Read mostly instances |
US9176681B1 (en) * | 2013-03-15 | 2015-11-03 | Emc Corporation | Managing provisioning of storage in storage systems |
US9405926B2 (en) * | 2014-06-30 | 2016-08-02 | Paul Lewis | Systems and methods for jurisdiction independent data storage in a multi-vendor cloud environment |
US10984116B2 (en) * | 2013-04-15 | 2021-04-20 | Calamu Technologies Corporation | Systems and methods for digital currency or crypto currency storage in a multi-vendor cloud environment |
US11636217B2 (en) * | 2013-04-15 | 2023-04-25 | Calamu Technologies Corporation | Systems and methods for breach-proof, resilient, compliant data in a multi-vendor cloud environment and automatically self heals in the event of a ransomware attack |
US10631019B2 (en) * | 2013-06-18 | 2020-04-21 | Vecima Networks Inc. | Remote storage digital video recording optimization method and system |
US10216754B1 (en) | 2013-09-26 | 2019-02-26 | EMC IP Holding Company LLC | System and method for balancing compression and read performance in a storage system |
US9514146B1 (en) | 2013-09-26 | 2016-12-06 | Emc Corporation | System and method for improving data compression of a storage system in an online manner |
US10838990B1 (en) | 2013-09-26 | 2020-11-17 | EMC IP Holding Company LLC | System and method for improving data compression of a storage system using coarse and fine grained similarity |
US9411815B1 (en) | 2013-09-26 | 2016-08-09 | Emc Corporation | System and method for improving data compression in a deduplicated storage system |
US9367557B1 (en) | 2013-09-26 | 2016-06-14 | Emc Corporation | System and method for improving data compression |
US9767178B2 (en) | 2013-10-30 | 2017-09-19 | Oracle International Corporation | Multi-instance redo apply |
US10545918B2 (en) | 2013-11-22 | 2020-01-28 | Orbis Technologies, Inc. | Systems and computer implemented methods for semantic data compression |
US10331695B1 (en) * | 2013-11-25 | 2019-06-25 | Amazon Technologies, Inc. | Replication coordination service for data transfers between distributed databases |
WO2015089728A1 (en) * | 2013-12-17 | 2015-06-25 | 华为技术有限公司 | Repeated data processing method, device, storage controller and storage node |
CN104917798A (en) * | 2014-03-13 | 2015-09-16 | 北京奇虎科技有限公司 | Data updating method and system |
US9633056B2 (en) | 2014-03-17 | 2017-04-25 | Commvault Systems, Inc. | Maintaining a deduplication database |
US10380072B2 (en) | 2014-03-17 | 2019-08-13 | Commvault Systems, Inc. | Managing deletions from a deduplication database |
US10656864B2 (en) | 2014-03-20 | 2020-05-19 | Pure Storage, Inc. | Data replication within a flash storage array |
US9443034B2 (en) * | 2014-05-29 | 2016-09-13 | Microsoft Technology Licensing, Llc | Estimating influence using sketches |
WO2016006050A1 (en) * | 2014-07-09 | 2016-01-14 | 株式会社日立製作所 | Storage system and memory control method |
US9852026B2 (en) | 2014-08-06 | 2017-12-26 | Commvault Systems, Inc. | Efficient application recovery in an information management system based on a pseudo-storage-device driver |
US11249858B2 (en) | 2014-08-06 | 2022-02-15 | Commvault Systems, Inc. | Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host |
US9575673B2 (en) | 2014-10-29 | 2017-02-21 | Commvault Systems, Inc. | Accessing a file system using tiered deduplication |
CN104361068B (en) * | 2014-11-06 | 2017-06-16 | 华中科技大学 | Parallel method of partition and system during a kind of data deduplication |
FR3029376B1 (en) * | 2014-11-28 | 2016-12-30 | B<>Com | METHOD FOR PROCESSING A DATA DELIVERY REQUEST, DEVICE, PROXY MODULE, CLIENT TERMINAL AND COMPUTER PROGRAM |
TWI554893B (en) * | 2014-12-03 | 2016-10-21 | 仁寶電腦工業股份有限公司 | Method and system for transmitting data |
JP6476932B2 (en) * | 2015-02-02 | 2019-03-06 | 富士通株式会社 | Storage device, control program, storage system, and data transfer method |
US9996629B2 (en) | 2015-02-10 | 2018-06-12 | Researchgate Gmbh | Online publication system and method |
US10387374B2 (en) | 2015-02-27 | 2019-08-20 | Exagrid Systems, Inc. | Scalable grid deduplication |
US10339106B2 (en) | 2015-04-09 | 2019-07-02 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
US10394786B2 (en) * | 2015-04-20 | 2019-08-27 | Futurewei Technologies, Inc. | Serialization scheme for storing data and lightweight indices on devices with append-only bands |
US9753922B2 (en) | 2015-05-19 | 2017-09-05 | Researchgate Gmbh | Enhanced online user-interaction tracking |
US10073855B2 (en) | 2015-05-21 | 2018-09-11 | Exagrid Systems, Inc. | Dynamic and optimized management of grid system resources |
US20160350391A1 (en) | 2015-05-26 | 2016-12-01 | Commvault Systems, Inc. | Replication using deduplicated secondary copy data |
US9766825B2 (en) | 2015-07-22 | 2017-09-19 | Commvault Systems, Inc. | Browse and restore for block-level backups |
US10303656B2 (en) | 2015-08-13 | 2019-05-28 | Exagrid Systems, Inc. | Parallelizing and deduplicating backup data |
US11150997B2 (en) | 2015-08-19 | 2021-10-19 | Exagrid Systems, Inc. | Adaptive bandwidth management of a replication process |
US10216748B1 (en) * | 2015-09-30 | 2019-02-26 | EMC IP Holding Company LLC | Segment index access management in a de-duplication system |
US10324919B2 (en) * | 2015-10-05 | 2019-06-18 | Red Hat, Inc. | Custom object paths for object storage management |
US11657037B2 (en) | 2015-10-23 | 2023-05-23 | Oracle International Corporation | Query execution against an in-memory standby database |
US10747752B2 (en) | 2015-10-23 | 2020-08-18 | Oracle International Corporation | Space management for transactional consistency of in-memory objects on a standby database |
EP3376393B1 (en) * | 2015-12-08 | 2021-02-17 | Huawei Technologies Co., Ltd. | Data storage method and apparatus |
US10303797B1 (en) * | 2015-12-18 | 2019-05-28 | EMC IP Holding Company LLC | Clustering files in deduplication systems |
US9973521B2 (en) | 2015-12-28 | 2018-05-15 | International Business Machines Corporation | System and method for field extraction of data contained within a log stream |
US10310953B2 (en) | 2015-12-30 | 2019-06-04 | Commvault Systems, Inc. | System for redirecting requests after a secondary storage computing device failure |
CN108140047B (en) * | 2016-01-05 | 2021-06-29 | 华为技术有限公司 | Data processing apparatus and method, and data container structure |
US10296368B2 (en) | 2016-03-09 | 2019-05-21 | Commvault Systems, Inc. | Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount) |
CN105912274A (en) * | 2016-04-21 | 2016-08-31 | 乐视控股(北京)有限公司 | Streaming data positioning method and apparatus |
US10698771B2 (en) | 2016-09-15 | 2020-06-30 | Oracle International Corporation | Zero-data-loss with asynchronous redo shipping to a standby database |
US11269939B1 (en) | 2016-09-26 | 2022-03-08 | Splunk Inc. | Iterative message-based data processing including streaming analytics |
US11562023B1 (en) | 2016-09-26 | 2023-01-24 | Splunk Inc. | Merging buckets in a data intake and query system |
US11163758B2 (en) | 2016-09-26 | 2021-11-02 | Splunk Inc. | External dataset capability compensation |
US11663227B2 (en) | 2016-09-26 | 2023-05-30 | Splunk Inc. | Generating a subquery for a distinct data intake and query system |
US11126632B2 (en) | 2016-09-26 | 2021-09-21 | Splunk Inc. | Subquery generation based on search configuration data from an external data system |
US11281706B2 (en) | 2016-09-26 | 2022-03-22 | Splunk Inc. | Multi-layer partition allocation for query execution |
US11580107B2 (en) | 2016-09-26 | 2023-02-14 | Splunk Inc. | Bucket data distribution for exporting data to worker nodes |
US11604795B2 (en) | 2016-09-26 | 2023-03-14 | Splunk Inc. | Distributing partial results from an external data system between worker nodes |
US11232100B2 (en) | 2016-09-26 | 2022-01-25 | Splunk Inc. | Resource allocation for multiple datasets |
US11586627B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Partitioning and reducing records at ingest of a worker node |
US11860940B1 (en) | 2016-09-26 | 2024-01-02 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets |
US20180089324A1 (en) | 2016-09-26 | 2018-03-29 | Splunk Inc. | Dynamic resource allocation for real-time search |
US11442935B2 (en) | 2016-09-26 | 2022-09-13 | Splunk Inc. | Determining a record generation estimate of a processing task |
US10956415B2 (en) | 2016-09-26 | 2021-03-23 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
US11620336B1 (en) | 2016-09-26 | 2023-04-04 | Splunk Inc. | Managing and storing buckets to a remote shared storage system based on a collective bucket size |
US11599541B2 (en) | 2016-09-26 | 2023-03-07 | Splunk Inc. | Determining records generated by a processing task of a query |
US11593377B2 (en) | 2016-09-26 | 2023-02-28 | Splunk Inc. | Assigning processing tasks in a data intake and query system |
US11243963B2 (en) | 2016-09-26 | 2022-02-08 | Splunk Inc. | Distributing partial results to worker nodes from an external data system |
US11321321B2 (en) | 2016-09-26 | 2022-05-03 | Splunk Inc. | Record expansion and reduction based on a processing task in a data intake and query system |
US10353965B2 (en) | 2016-09-26 | 2019-07-16 | Splunk Inc. | Data fabric service system architecture |
US11250056B1 (en) | 2016-09-26 | 2022-02-15 | Splunk Inc. | Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system |
US11461334B2 (en) | 2016-09-26 | 2022-10-04 | Splunk Inc. | Data conditioning for dataset destination |
US11294941B1 (en) | 2016-09-26 | 2022-04-05 | Splunk Inc. | Message-based data ingestion to a data intake and query system |
US11550847B1 (en) | 2016-09-26 | 2023-01-10 | Splunk Inc. | Hashing bucket identifiers to identify search nodes for efficient query execution |
US11567993B1 (en) | 2016-09-26 | 2023-01-31 | Splunk Inc. | Copying buckets from a remote shared storage system to memory associated with a search node for query execution |
US11874691B1 (en) | 2016-09-26 | 2024-01-16 | Splunk Inc. | Managing efficient query execution including mapping of buckets to search nodes |
US11615104B2 (en) | 2016-09-26 | 2023-03-28 | Splunk Inc. | Subquery generation based on a data ingest estimate of an external data system |
US10891291B2 (en) | 2016-10-31 | 2021-01-12 | Oracle International Corporation | Facilitating operations on pluggable databases using separate logical timestamp services |
US11475006B2 (en) | 2016-12-02 | 2022-10-18 | Oracle International Corporation | Query and change propagation scheduling for heterogeneous database systems |
US10740193B2 (en) | 2017-02-27 | 2020-08-11 | Commvault Systems, Inc. | Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount |
US10691722B2 (en) | 2017-05-31 | 2020-06-23 | Oracle International Corporation | Consistent query execution for big data analytics in a hybrid database |
US10664352B2 (en) | 2017-06-14 | 2020-05-26 | Commvault Systems, Inc. | Live browsing of backed up data residing on cloned disks |
US10896182B2 (en) | 2017-09-25 | 2021-01-19 | Splunk Inc. | Multi-partitioning determination for combination operations |
US11748203B2 (en) | 2018-01-11 | 2023-09-05 | Robin Systems, Inc. | Multi-role application orchestration in a distributed storage system |
US11582168B2 (en) | 2018-01-11 | 2023-02-14 | Robin Systems, Inc. | Fenced clone applications |
US11392363B2 (en) | 2018-01-11 | 2022-07-19 | Robin Systems, Inc. | Implementing application entrypoints with containers of a bundled application |
US10834190B2 (en) | 2018-01-18 | 2020-11-10 | Portworx, Inc. | Provisioning of clustered containerized applications |
US11356448B1 (en) | 2018-04-13 | 2022-06-07 | Pulse Secure, Llc | Device and method for tracking unique device and user network access across multiple security appliances |
US10742595B2 (en) | 2018-04-20 | 2020-08-11 | Pulse Secure, Llc | Fully qualified domain name-based traffic control for virtual private network access control |
US11334543B1 (en) | 2018-04-30 | 2022-05-17 | Splunk Inc. | Scalable bucket merging for a data intake and query system |
US10599354B1 (en) * | 2018-04-30 | 2020-03-24 | Amazon Technologies, Inc. | Block storage with volume locality placement based on performance requirements |
US11079954B2 (en) * | 2018-08-21 | 2021-08-03 | Samsung Electronics Co., Ltd. | Embedded reference counter and special data pattern auto-detect |
US10628072B2 (en) * | 2018-08-21 | 2020-04-21 | Samsung Electronics Co., Ltd. | Scalable architecture enabling large memory system for in-memory computations |
US11005825B2 (en) * | 2018-11-13 | 2021-05-11 | Seagate Technology Llc | Sensor nodes and host forming a tiered ecosystem that uses public and private data for duplication |
US11010258B2 (en) | 2018-11-27 | 2021-05-18 | Commvault Systems, Inc. | Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication |
US11698727B2 (en) | 2018-12-14 | 2023-07-11 | Commvault Systems, Inc. | Performing secondary copy operations based on deduplication performance |
US20200327017A1 (en) | 2019-04-10 | 2020-10-15 | Commvault Systems, Inc. | Restore using deduplicated secondary copy data |
US11477028B2 (en) | 2019-04-15 | 2022-10-18 | Pulse Secure, Llc | Preventing account lockout through request throttling |
US11256434B2 (en) * | 2019-04-17 | 2022-02-22 | Robin Systems, Inc. | Data de-duplication |
WO2020220216A1 (en) | 2019-04-29 | 2020-11-05 | Splunk Inc. | Search time estimate in data intake and query system |
US11715051B1 (en) | 2019-04-30 | 2023-08-01 | Splunk Inc. | Service provider instance recommendations using machine-learned classifications and reconciliation |
US11463264B2 (en) | 2019-05-08 | 2022-10-04 | Commvault Systems, Inc. | Use of data block signatures for monitoring in an information management system |
US11520650B2 (en) | 2019-09-05 | 2022-12-06 | Robin Systems, Inc. | Performing root cause analysis in a multi-role application |
US11249851B2 (en) | 2019-09-05 | 2022-02-15 | Robin Systems, Inc. | Creating snapshots of a storage volume in a distributed storage system |
US11057164B2 (en) * | 2019-09-13 | 2021-07-06 | Td Ameritrade Ip Company, Inc. | Memory conservation in delta-compressed message transmission and recovery |
US11347684B2 (en) | 2019-10-04 | 2022-05-31 | Robin Systems, Inc. | Rolling back KUBERNETES applications including custom resources |
US11494380B2 (en) | 2019-10-18 | 2022-11-08 | Splunk Inc. | Management of distributed computing framework components in a data fabric service system |
US20210173811A1 (en) | 2019-12-04 | 2021-06-10 | Commvault Systems, Inc. | Optimizing the restoration of deduplicated data stored in multi-node replicated file systems |
US11403188B2 (en) | 2019-12-04 | 2022-08-02 | Robin Systems, Inc. | Operation-level consistency points and rollback |
US11210230B2 (en) | 2020-04-30 | 2021-12-28 | EMC IP Holding Company LLC | Cache retention for inline deduplication based on number of physical blocks with common fingerprints among multiple cache entries |
US11540029B2 (en) * | 2020-05-07 | 2022-12-27 | Synamedia Limited | Methods and systems for reducing piracy of media content |
US11687424B2 (en) | 2020-05-28 | 2023-06-27 | Commvault Systems, Inc. | Automated media agent state management |
US11528186B2 (en) | 2020-06-16 | 2022-12-13 | Robin Systems, Inc. | Automated initialization of bare metal servers |
US11663166B2 (en) * | 2020-09-17 | 2023-05-30 | EMC IP Holding Company LLC | Post-processing global deduplication algorithm for scaled-out deduplication file system |
US11740980B2 (en) | 2020-09-22 | 2023-08-29 | Robin Systems, Inc. | Managing snapshot metadata following backup |
US11743188B2 (en) | 2020-10-01 | 2023-08-29 | Robin Systems, Inc. | Check-in monitoring for workflows |
US11456914B2 (en) | 2020-10-07 | 2022-09-27 | Robin Systems, Inc. | Implementing affinity and anti-affinity with KUBERNETES |
US11271895B1 (en) | 2020-10-07 | 2022-03-08 | Robin Systems, Inc. | Implementing advanced networking capabilities using helm charts |
US11704313B1 (en) | 2020-10-19 | 2023-07-18 | Splunk Inc. | Parallel branch operation using intermediary nodes |
US11750451B2 (en) | 2020-11-04 | 2023-09-05 | Robin Systems, Inc. | Batch manager for complex workflows |
US11556361B2 (en) | 2020-12-09 | 2023-01-17 | Robin Systems, Inc. | Monitoring and managing of complex multi-role applications |
US20230027688A1 (en) * | 2021-07-22 | 2023-01-26 | EMC IP Holding Company LLC | Large object packing for storage efficiency |
US11874821B2 (en) | 2021-12-22 | 2024-01-16 | Ebay Inc. | Block aggregation for shared streams |
CN116954988A (en) * | 2022-04-15 | 2023-10-27 | 戴尔产品有限公司 | Data backup method, data backup device and computer program product |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080010322A1 (en) * | 2006-07-06 | 2008-01-10 | Data Domain, Inc. | File system replication |
US7979584B1 (en) * | 2006-07-14 | 2011-07-12 | Emc Corporation | Partitioning a data stream using embedded anchors |
Family Cites Families (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59790A (en) * | 1982-06-28 | 1984-01-05 | Fuji Electric Co Ltd | Pattern recognition device |
US5909700A (en) * | 1996-12-23 | 1999-06-01 | Emc Corporation | Back-up data storage facility incorporating filtering to select data items to be backed up |
US5315701A (en) * | 1992-08-07 | 1994-05-24 | International Business Machines Corporation | Method and system for processing graphics data streams utilizing scalable processing nodes |
JP3172387B2 (en) * | 1994-06-01 | 2001-06-04 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | I / O communication subsystem and method |
US5574906A (en) * | 1994-10-24 | 1996-11-12 | International Business Machines Corporation | System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing |
US5990810A (en) | 1995-02-17 | 1999-11-23 | Williams; Ross Neil | Method for partitioning a block of data into subblocks and for storing and communcating such subblocks |
US5842213A (en) * | 1997-01-28 | 1998-11-24 | Odom; Paul S. | Method for modeling, storing, and transferring data in neutral form |
FR2767939B1 (en) * | 1997-09-04 | 2001-11-02 | Bull Sa | MEMORY ALLOCATION METHOD IN A MULTIPROCESSOR INFORMATION PROCESSING SYSTEM |
US6157955A (en) * | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
US6952737B1 (en) * | 2000-03-03 | 2005-10-04 | Intel Corporation | Method and apparatus for accessing remote storage in a distributed storage cluster architecture |
US6470329B1 (en) * | 2000-07-11 | 2002-10-22 | Sun Microsystems, Inc. | One-way hash functions for distributed data synchronization |
US20030005306A1 (en) * | 2001-06-29 | 2003-01-02 | Hunt Preston J. | Message digest based data synchronization |
US7877438B2 (en) * | 2001-07-20 | 2011-01-25 | Audible Magic Corporation | Method and apparatus for identifying new media content |
EP1433086A4 (en) * | 2001-09-26 | 2006-07-26 | Emc Corp | Efficient management of large files |
US6823436B2 (en) * | 2001-10-02 | 2004-11-23 | International Business Machines Corporation | System for conserving metadata about data snapshots |
US20030135623A1 (en) * | 2001-10-23 | 2003-07-17 | Audible Magic, Inc. | Method and apparatus for cache promotion |
US7092956B2 (en) * | 2001-11-02 | 2006-08-15 | General Electric Capital Corporation | Deduplication system |
WO2003067473A1 (en) | 2002-02-04 | 2003-08-14 | Cataphora, Inc. | A method and apparatus for sociological data mining |
US20040030731A1 (en) * | 2002-04-03 | 2004-02-12 | Liviu Iftode | System and method for accessing files in a network |
US8205009B2 (en) | 2002-04-25 | 2012-06-19 | Emc Israel Development Center, Ltd. | Apparatus for continuous compression of large volumes of data |
US7107550B2 (en) | 2002-12-16 | 2006-09-12 | Palo Alto Research Center Incorporated | Method and apparatus for segmenting hierarchical information for display purposes |
US7111253B2 (en) | 2002-12-16 | 2006-09-19 | Palo Alto Research Center Incorporated | Method and apparatus for displaying hierarchical information |
US7280957B2 (en) | 2002-12-16 | 2007-10-09 | Palo Alto Research Center, Incorporated | Method and apparatus for generating overview information for hierarchically related information |
US7007069B2 (en) * | 2002-12-16 | 2006-02-28 | Palo Alto Research Center Inc. | Method and apparatus for clustering hierarchically related information |
US7065619B1 (en) | 2002-12-20 | 2006-06-20 | Data Domain, Inc. | Efficient data storage system |
US6928526B1 (en) * | 2002-12-20 | 2005-08-09 | Datadomain, Inc. | Efficient data storage system |
US8943024B1 (en) * | 2003-01-17 | 2015-01-27 | Daniel John Gardner | System and method for data de-duplication |
US7594002B1 (en) * | 2003-02-14 | 2009-09-22 | Istor Networks, Inc. | Hardware-accelerated high availability integrated networked storage system |
US7389462B1 (en) * | 2003-02-14 | 2008-06-17 | Istor Networks, Inc. | System and methods for high rate hardware-accelerated network protocol processing |
US7231415B1 (en) | 2003-04-08 | 2007-06-12 | At&T Corp. | Method and system for provisioning facility-based displays in support of repairing outside network facilities |
US20050004954A1 (en) * | 2003-07-01 | 2005-01-06 | Hand Held Products, Inc. | Systems and methods for expedited data transfer in a communication system using hash segmentation |
US20050060643A1 (en) * | 2003-08-25 | 2005-03-17 | Miavia, Inc. | Document similarity detection and classification system |
US7526508B2 (en) * | 2003-09-04 | 2009-04-28 | Oracle International Corporation | Self-managing database architecture |
CN1305265C (en) * | 2003-11-07 | 2007-03-14 | 清华大学 | Asynchronous remote mirror image method based on load selfadaption in SAN system |
ATE487321T1 (en) * | 2003-12-02 | 2010-11-15 | Interactive Content Engines Ll | SYNCHRONIZED DATA TRANSFER SYSTEM |
US7162571B2 (en) * | 2003-12-09 | 2007-01-09 | Emc Corporation | Methods and apparatus for parsing a content address to facilitate selection of a physical storage location in a data storage system |
US8126842B2 (en) * | 2004-02-10 | 2012-02-28 | Research In Motion Limited | Apparatus, and associated method, for synchronizing databases connected by way of a radio air interface |
TWI381374B (en) * | 2004-03-18 | 2013-01-01 | Lg Electronics Inc | Recording medium with overlapping segment information thereon and apparatus and methods for forming, recording, and reproducing the recording medium |
US7649937B2 (en) * | 2004-06-22 | 2010-01-19 | Auction Management Solutions, Inc. | Real-time and bandwidth efficient capture and delivery of live video to multiple destinations |
US7523098B2 (en) * | 2004-09-15 | 2009-04-21 | International Business Machines Corporation | Systems and methods for efficient data searching, storage and reduction |
US7457813B2 (en) * | 2004-10-06 | 2008-11-25 | Burnside Acquisition, Llc | Storage system for randomly named blocks of data |
US7849462B2 (en) * | 2005-01-07 | 2010-12-07 | Microsoft Corporation | Image server |
US8200700B2 (en) | 2005-02-01 | 2012-06-12 | Newsilike Media Group, Inc | Systems and methods for use of structured and unstructured distributed data |
US7814129B2 (en) * | 2005-03-11 | 2010-10-12 | Ross Neil Williams | Method and apparatus for storing data with reduced redundancy using data clusters |
US7747577B2 (en) * | 2005-08-17 | 2010-06-29 | International Business Machines Corporation | Management of redundant objects in storage systems |
US7584338B1 (en) * | 2005-09-27 | 2009-09-01 | Data Domain, Inc. | Replication of deduplicated storage system |
US7624335B1 (en) | 2005-10-13 | 2009-11-24 | Data Domain, Inc. | Verifying a file in a system with duplicate segment elimination using segmention-independent checksums |
US20070288638A1 (en) * | 2006-04-03 | 2007-12-13 | British Columbia, University Of | Methods and distributed systems for data location and delivery |
US7562186B2 (en) * | 2006-04-11 | 2009-07-14 | Data Domain, Inc. | Efficient data storage using resemblance of data segments |
US7478113B1 (en) * | 2006-04-13 | 2009-01-13 | Symantec Operating Corporation | Boundaries |
US8484427B1 (en) * | 2006-06-28 | 2013-07-09 | Acronis International Gmbh | System and method for efficient backup using hashes |
US7673099B1 (en) * | 2006-06-30 | 2010-03-02 | Emc Corporation | Affinity caching |
US7701945B2 (en) * | 2006-08-10 | 2010-04-20 | Sourcefire, Inc. | Device, system and method for analysis of segments in a transmission control protocol (TCP) session |
US7747584B1 (en) * | 2006-08-22 | 2010-06-29 | Netapp, Inc. | System and method for enabling de-duplication in a storage system architecture |
US8768895B2 (en) * | 2007-04-11 | 2014-07-01 | Emc Corporation | Subsegmenting for efficient storage, resemblance determination, and transmission |
US8473463B1 (en) * | 2010-03-02 | 2013-06-25 | Symantec Corporation | Method of avoiding duplicate backups in a computing system |
US8930648B1 (en) * | 2012-05-23 | 2015-01-06 | Netapp, Inc. | Distributed deduplication using global chunk data structure and epochs |
-
2007
- 2007-05-18 US US11/804,578 patent/US8768895B2/en active Active
- 2007-06-29 US US11/824,592 patent/US8005861B2/en active Active
-
2008
- 2008-03-28 WO PCT/US2008/004103 patent/WO2008127545A1/en active Application Filing
- 2008-03-28 EP EP08727213.4A patent/EP2156296A4/en not_active Ceased
- 2008-03-28 CN CN200880019270XA patent/CN101796492B/en active Active
- 2008-03-28 WO PCT/US2008/004104 patent/WO2008127546A1/en active Application Filing
- 2008-04-09 WO PCT/US2008/004575 patent/WO2008127595A1/en active Application Filing
- 2008-04-09 US US12/082,244 patent/US7962520B2/en active Active
-
2011
- 2011-04-19 US US13/090,166 patent/US8312006B2/en active Active
- 2011-07-08 US US13/179,164 patent/US8694554B2/en active Active
-
2014
- 2014-02-25 US US14/189,571 patent/US9183216B2/en active Active
- 2014-05-16 US US14/280,425 patent/US9841898B2/en active Active
-
2015
- 2015-10-08 US US14/878,921 patent/US10228851B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080010322A1 (en) * | 2006-07-06 | 2008-01-10 | Data Domain, Inc. | File system replication |
US7979584B1 (en) * | 2006-07-14 | 2011-07-12 | Emc Corporation | Partitioning a data stream using embedded anchors |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8396839B1 (en) * | 2010-06-25 | 2013-03-12 | Emc Corporation | Representing de-duplicated file data |
US20130268500A1 (en) * | 2010-06-25 | 2013-10-10 | Emc Corporation | Representing de-duplicated file data |
US8782010B2 (en) * | 2010-06-25 | 2014-07-15 | Emc Corporation | Representing de-duplicated file data |
US20140279958A1 (en) * | 2010-06-25 | 2014-09-18 | Emc Corporation | Representing de-duplicated file data |
US9128950B2 (en) * | 2010-06-25 | 2015-09-08 | Emc Corporation | Representing de-duplicated file data |
US10409777B2 (en) | 2012-11-07 | 2019-09-10 | International Business Machines Corporation | Storing data in a file system |
US9922041B2 (en) | 2012-11-07 | 2018-03-20 | International Business Machines Corporation | Storing data files in a file system |
US11221992B2 (en) | 2012-11-07 | 2022-01-11 | International Business Machines Corporation | Storing data files in a file system |
US9355108B2 (en) | 2012-11-07 | 2016-05-31 | International Business Machines Corporation | Storing data files in a file system |
US20170185665A1 (en) * | 2015-12-28 | 2017-06-29 | Facebook, Inc. | Systems and methods for online clustering of content items |
US11003692B2 (en) * | 2015-12-28 | 2021-05-11 | Facebook, Inc. | Systems and methods for online clustering of content items |
WO2018191709A1 (en) * | 2017-04-13 | 2018-10-18 | EMC IP Holding Company LLC | Micro-service based deduplication |
US10795860B1 (en) | 2017-04-13 | 2020-10-06 | EMC IP Holding Company LLC | WAN optimized micro-service based deduplication |
US10795859B1 (en) | 2017-04-13 | 2020-10-06 | EMC IP Holding Company LLC | Micro-service based deduplication |
US10949088B1 (en) | 2017-07-21 | 2021-03-16 | EMC IP Holding Company LLC | Method or an apparatus for having perfect deduplication, adapted for saving space in a deduplication file system |
US11461269B2 (en) * | 2017-07-21 | 2022-10-04 | EMC IP Holding Company | Metadata separated container format |
US10459633B1 (en) | 2017-07-21 | 2019-10-29 | EMC IP Holding Company LLC | Method for efficient load balancing in virtual storage systems |
US10860212B1 (en) | 2017-07-21 | 2020-12-08 | EMC IP Holding Company LLC | Method or an apparatus to move perfect de-duplicated unique data from a source to destination storage tier |
US10936543B1 (en) | 2017-07-21 | 2021-03-02 | EMC IP Holding Company LLC | Metadata protected sparse block set for SSD cache space management |
US11113153B2 (en) | 2017-07-27 | 2021-09-07 | EMC IP Holding Company LLC | Method and system for sharing pre-calculated fingerprints and data chunks amongst storage systems on a cloud local area network |
US10481813B1 (en) | 2017-07-28 | 2019-11-19 | EMC IP Holding Company LLC | Device and method for extending cache operational lifetime |
US10929382B1 (en) | 2017-07-31 | 2021-02-23 | EMC IP Holding Company LLC | Method and system to verify integrity of a portion of replicated data |
US11093453B1 (en) | 2017-08-31 | 2021-08-17 | EMC IP Holding Company LLC | System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication |
WO2019236216A1 (en) * | 2018-06-06 | 2019-12-12 | Yingquan Wu | Chunk-based data deduplication |
US10671306B2 (en) | 2018-06-06 | 2020-06-02 | Yingquan Wu | Chunk-based data deduplication |
US10713217B2 (en) | 2018-10-30 | 2020-07-14 | EMC IP Holding Company LLC | Method and system to managing persistent storage using perfect hashing |
US10592158B1 (en) | 2018-10-30 | 2020-03-17 | EMC IP Holding Company LLC | Method and system for transferring data to a target storage system using perfect hash functions |
US10977217B2 (en) | 2018-10-31 | 2021-04-13 | EMC IP Holding Company LLC | Method and system to efficiently recovering a consistent view of a file system image from an asynchronously remote system |
Also Published As
Publication number | Publication date |
---|---|
CN101796492A (en) | 2010-08-04 |
WO2008127595A1 (en) | 2008-10-23 |
US9183216B2 (en) | 2015-11-10 |
WO2008127545A1 (en) | 2008-10-23 |
US20160026393A1 (en) | 2016-01-28 |
US10228851B2 (en) | 2019-03-12 |
US8312006B2 (en) | 2012-11-13 |
US20110270887A1 (en) | 2011-11-03 |
US8005861B2 (en) | 2011-08-23 |
US9841898B2 (en) | 2017-12-12 |
US20080256326A1 (en) | 2008-10-16 |
US8694554B2 (en) | 2014-04-08 |
US20140244691A1 (en) | 2014-08-28 |
WO2008127546A1 (en) | 2008-10-23 |
US20080256143A1 (en) | 2008-10-16 |
US20080294660A1 (en) | 2008-11-27 |
US7962520B2 (en) | 2011-06-14 |
US8768895B2 (en) | 2014-07-01 |
EP2156296A1 (en) | 2010-02-24 |
CN101796492B (en) | 2013-09-25 |
US20140337363A1 (en) | 2014-11-13 |
EP2156296A4 (en) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8312006B2 (en) | Cluster storage using delta compression | |
US8166012B2 (en) | Cluster storage using subsegmenting | |
US8639669B1 (en) | Method and apparatus for determining optimal chunk sizes of a deduplicated storage system | |
US8712963B1 (en) | Method and apparatus for content-aware resizing of data chunks for replication | |
US10761758B2 (en) | Data aware deduplication object storage (DADOS) | |
US8756238B2 (en) | Index searching using a bloom filter | |
US9798486B1 (en) | Method and system for file system based replication of a deduplicated storage system | |
US8959089B2 (en) | Data processing apparatus and method of processing data | |
US10303797B1 (en) | Clustering files in deduplication systems | |
US7065619B1 (en) | Efficient data storage system | |
EP2164006A2 (en) | Scalable secondary storage systems and methods | |
US10509769B1 (en) | Method to efficiently track I/O access history | |
US10380141B1 (en) | Fast incremental backup method and system | |
US8234413B2 (en) | Partitioning a data stream using embedded anchors | |
US10331362B1 (en) | Adaptive replication for segmentation anchoring type | |
US10795891B2 (en) | Data deduplication for eventual consistency system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: DATA DOMAIN HOLDING, INC., MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DATA DOMAIN LLC;REEL/FRAME:027239/0577 Effective date: 20091222 Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DATA DOMAIN HOLDING, INC.;REEL/FRAME:027239/0591 Effective date: 20091231 Owner name: DATA DOMAIN, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PATTERSON, R. HUGO;LI, KAI;ZHU, MING BENJAMIN;AND OTHERS;SIGNING DATES FROM 20080527 TO 20080723;REEL/FRAME:027239/0438 Owner name: DATA DOMAIN LLC, DELAWARE Free format text: CONVERSION;ASSIGNOR:DATA DOMAIN, INC.;REEL/FRAME:027241/0736 Effective date: 20091218 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
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 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: 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 |