US20150244795A1 - Data syncing in a distributed system - Google Patents
Data syncing in a distributed system Download PDFInfo
- Publication number
- US20150244795A1 US20150244795A1 US14/186,847 US201414186847A US2015244795A1 US 20150244795 A1 US20150244795 A1 US 20150244795A1 US 201414186847 A US201414186847 A US 201414186847A US 2015244795 A1 US2015244795 A1 US 2015244795A1
- Authority
- US
- United States
- Prior art keywords
- data
- volume
- block
- source
- blocks
- 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.)
- Abandoned
Links
Images
Classifications
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G06F17/30575—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/14—Charging, metering or billing arrangements for data wireline or wireless communications
- H04L12/1403—Architecture for metering, charging or billing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
- G06Q10/1093—Calendar-based scheduling for persons or groups
- G06Q10/1095—Meeting or appointment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/01—Customer relationship services
- G06Q30/015—Providing customer assistance, e.g. assisting a customer within a business location or via helpdesk
- G06Q30/016—After-sales
Definitions
- a client's data may be stored in a volume.
- a unit of data for example a file (or object), is comprised of one or more storage units (e.g. bytes) and can be stored and retrieved from a storage medium such as disk or RAM in a variety of fashions.
- disk drives in storage systems are divided into logical blocks that are addressed using logical block addresses (LBAs).
- LBAs logical block addresses
- an entire file can be stored in a contiguous range of addresses on the storage medium and be accessed given the offset and length of the file.
- file systems store files by dividing them into blocks or extents of a fixed size, storing each block in a contiguous section of the storage medium, and then maintaining a list or tree of the blocks that correspond to each file.
- Some storage systems such as write-anywhere file layout (WAFL), logical volume manager (LVM), or new technology file system (NTFS), allow multiple objects to refer to the same blocks, typically through a tree structure, to allow for efficient storage of previous versions or “snapshots” of the file system.
- data for a single file or object may be distributed between multiple storage devices, either by a mechanism like RAID which combines several smaller storage media into one larger virtual device, or through a distributed storage system such as Lustre, General Parallel File System, or GlusterFS.
- FIG. 1 depicts a simplified system for a storage system in accordance with an illustrative implementation.
- FIG. 2A depicts a hash tree in accordance with an illustrative implementation.
- FIG. 2B depicts the hash tree illustrated in FIG. 2A , with updated node hashes, in accordance with an illustrative implementation.
- FIG. 2C depicts the hash tree illustrated in FIG. 2A , with newly added leaves, in accordance with an illustrative implementation.
- FIG. 3 shows a flow diagram of an incremental block level backup procedure in accordance with an illustrative implementation.
- FIG. 4 depicts a distributed storage system in accordance with an illustrative implementation.
- FIG. 5 shows a flow diagram for replicating data in accordance with an illustrative implementation.
- one innovative aspect of the subject matter described below can be embodied in methods for receiving a start replication message from a source system to replicate data of a source volume to a replicated volume on a replica server.
- the replicated volume comprises a copy of data of the source volume.
- the source system forwards input/output (I/O) requests to the replica server after the start replication message is sent.
- a data structure associated with units of data of the replicated volume is initialized.
- a write request is received from the source system that includes write data associated a unit of data of the replicated volume.
- the source system wrote the write data to the source volume based upon the write request.
- the write data is written to the replicated volume.
- the data structure is updated to indicate the write data has been written after the receipt of the start replication message.
- Source metadata associated with the source volume is received.
- the metadata includes an ordered list of block identifiers for data blocks of the source volume. Each block identifier is used to access a data block.
- the source metadata is compared with prior metadata associated with a prior point-in-time image of the source volume to determine blocks of data that have changed since the prior point-in-time image of the source volume.
- a first block of the blocks of data is determined to not be retrieved based upon the data structure.
- a second block of the blocks of data is determined to be retrieved based upon the data structure.
- the second block is received from the source system and written to the replicated volume.
- Other embodiments of this aspect include corresponding systems, apparatuses, and computer-readable media, configured to perform the actions of the method.
- FIG. 1 depicts a simplified system for incremental block level backup of a storage system 100 in accordance with an illustrative implementation.
- System 100 includes a client layer 102 , a metadata layer 104 , a block server layer 106 , storage 116 , and storage 120 .
- client layer 102 includes one or more clients 108 a - 108 n .
- Clients 108 include client processes that may exist on one or more physical machines.
- client the action being performed may be performed by a client process.
- a client process is responsible for storing, retrieving, and deleting data in system 100 .
- a client process may address pieces of data depending on the nature of the storage system and the format of the data stored. For example, the client process may reference data using a client address.
- the client address may take different forms. For example, in a storage system that uses file storage, client 108 may reference a particular volume or partition, and a file name. With object storage, the client address may be a unique object name.
- the client address may be a volume or partition, and a block address.
- Clients 108 communicate with metadata layer 104 using different protocols, such as small computer system interface (SCSI), Internet small computer system interface (ISCSI), fibre channel (FC), common Internet file system (CIFS), network file system (NFS), hypertext transfer protocol (HTTP), hypertext transfer protocol secure (HTTPS), web-based distributed authoring and versioning (WebDAV), or a custom protocol.
- SCSI small computer system interface
- ISCSI Internet small computer system interface
- FC common Internet file system
- CIFS common Internet file system
- NFS network file system
- HTTP hypertext transfer protocol
- HTTPS hypertext transfer protocol secure
- WebDAV web-based distributed authoring and versioning
- Metadata layer 104 includes one or more metadata servers 110 a - 110 n . Performance managers 114 may be located on metadata servers 110 a - 110 n .
- Block server layer 106 includes one or more block servers 112 a - 112 n . Block servers 112 a - 112 n are coupled to storage 116 , which stores volume data for clients 108 . Each client 108 may be associated with a volume. In one implementation, only one client 108 accesses data in a volume; however, multiple clients 108 may access data in a single volume.
- Storage 116 can include multiple solid state drives (SSDs).
- storage 116 can be a cluster of individual drives coupled together via a network. When the term “cluster” is used, it will be recognized that cluster may represent a storage system that includes multiple disks that may not be networked together.
- storage 116 uses solid state memory to store persistent data. SSDs use microchips that store data in non-volatile memory chips and contain no moving parts. One consequence of this is that SSDs allow random access to data in different drives in an optimized manner as compared to drives with spinning disks. Read or write requests to non-sequential portions of SSDs can be performed in a comparable amount of time as compared to sequential read or write requests.
- non-sequentially storing data in storage 116 is based upon breaking data up into one more storage units, e.g., data blocks.
- a data block therefore, is the raw data for a volume and may be the smallest addressable unit of data.
- the metadata layer 104 or the client layer 102 can break data into data blocks.
- the data blocks can then be stored on multiple block servers 112 .
- Data blocks can be of a fixed size, can be initially a fixed size but compressed, or can be of a variable size.
- Data blocks can also be segmented based on the contextual content of the block. For example, data of a particular type may have a larger data block size compared to other types of data.
- Maintaining segmentation of the blocks on a write (and corresponding re-assembly on a read) may occur in client layer 102 and/or metadata layer 104 . Also, compression may occur in client layer 102 , metadata layer 104 , and/or block server layer 106 .
- data blocks can be stored to achieve substantially even distribution across the storage system.
- even distribution can be based upon a unique block identifier.
- a block identifier can be an identifier that is determined based on the content of the data block, such as by a hash of the content.
- the block identifier is unique to that block of data. For example, blocks with the same content have the same block identifier, but blocks with different content have different block identifiers.
- the values of possible unique identifiers can have a uniform distribution. Accordingly, storing data blocks based upon the unique identifier, or a portion of the unique identifier, results in the data being stored substantially evenly across drives in the cluster.
- client data e.g., a volume associated with the client
- every drive in the cluster is involved in the read and write paths of each volume. This configuration balances the data and load across all of the drives. This arrangement also removes hot spots within the cluster, which can occur when client's data is stored sequentially on any volume.
- having data spread evenly across drives in the cluster allows a consistent total aggregate performance of a cluster to be defined and achieved. This aggregation can be achieved, since data for each client is spread evenly through the drives. Accordingly, a client's I/O will involve all the drives in the cluster. Since, all clients have their data spread substantially evenly through all the drives in the storage system, a performance of the system can be described in aggregate as a single number, e.g., the sum of performance of all the drives in the storage system.
- Block servers 112 and slice servers maintain a mapping between a block identifier and the location of the data block in a storage medium of block server 112 .
- a volume includes these unique and uniformly random identifiers, and so a volume's data is also evenly distributed throughout the cluster.
- Metadata layer 104 stores metadata that maps between client layer 102 and block server layer 106 .
- metadata servers 110 map between the client addressing used by clients 108 (e.g., file names, object names, block numbers, etc.) and block layer addressing (e.g., block identifiers) used in block server layer 106 .
- Clients 108 may perform access based on client addresses.
- block servers 112 store data based upon identifiers and do not store data based on client addresses. Accordingly, a client can access data using a client address which is eventually translated into the corresponding unique identifiers that reference the client's data in storage 116 .
- Entities in system 100 may be virtualized entities.
- multiple virtual block servers 112 may be included on a machine.
- Entities may also be included in a cluster, where computing resources of the cluster are virtualized such that the computing resources appear as a single entity.
- One or more backup servers 118 a - 118 n can interface with the metadata layer 104 .
- Backup servers 118 can interface directly with block servers 112 .
- Backup servers 118 a - 118 n are coupled to storage 120 , which stores backups of volume data for clients 108 .
- Storage 120 can include multiple hard disk drives (HDDs), solid state drives (SSDs), hybrid drives, or other storage drives.
- HDDs hard disk drives
- SSDs solid state drives
- storage 120 can be a cluster of individual drives coupled together via a network.
- Backup servers 118 can store backup copies of the data blocks of storage 116 according to any number of formats in storage 120 , and translation from the format of the data blocks of storage 116 may occur.
- Data may be transferred to and from backup servers 118 using different protocols, such as small computer system interface (SCSI), Internet small computer system interface (ISCSI), fibre channel (FC), common Internet file system (CIFS), network file system (NFS), hypertext transfer protocol (HTTP), hypertext transfer protocol secure (HTTPS), web-based distributed authoring and versioning (WebDAV), or a custom protocol.
- SCSI small computer system interface
- ISCSI Internet small computer system interface
- FC common Internet file system
- CIFS common Internet file system
- NFS network file system
- HTTP hypertext transfer protocol
- HTTPS hypertext transfer protocol secure
- WebDAV web-based distributed authoring and versioning
- Compression and data de-duplication may occur in backup servers 118 a - 118 n.
- the servers of metadata layer 104 store and maintain metadata that maps between client layer 102 and block server layer 106 , where the metadata maps between the client addressing used by clients 108 (e.g., file names, volume, object names, block numbers, etc.) and block layer addressing (e.g., block identifiers) used in block server layer 106 .
- the metadata includes a list of block identifiers that identifies blocks in a volume. The list may be structured as an ordered list corresponding to a list of blocks. The list may also be structured as the leaves of a hash tree.
- the block identifiers of the metadata are the same block identifiers as used throughout system 100 as described above.
- the block identifiers may be hexadecimal numbers, but other representations may be used. Additional metadata may also be included, such as inode numbers, directory pointers, modification dates, file size, client addresses, list details, etc.
- the block identifiers uniquely identify the data of a block and are a hash based on the content of the data block.
- Backup servers 118 are generally configured to create backups of block level data of a volume that is stored in storage 116 of block server layer 106 . Backup servers 118 may create backups of all of the volume data of block server layer 106 or backup servers 118 may create backups of one or more particular volumes (e.g., a volume of a client 108 ). Backups may be full backups of all data, or they may be incremental backups (e.g., data that has changed since a previous backup).
- a backup server 118 retrieves a copy of metadata from metadata server 110 for a client volume.
- the metadata includes a list of block identifiers associated with data blocks of the volume.
- the metadata includes an ordered list structure of block identifiers.
- the ordered list is structured as the leaves of a hash tree (e.g., a Merkle tree, etc.) and the metadata includes the hash tree.
- the metadata is used by backup server 118 to retrieve a copy of all of the data blocks of the client volume in order to create an initial backup of the data blocks.
- the data blocks are retrieved from storage 116 by sending a request for the data to a metadata server 110 .
- the requested data is based on the data block identifiers.
- a request may include a list of the block identifiers of blocks desired to be backed up.
- backup server 118 may calculate the LBAs of blocks desired to be backed up. For example, because each block identifier can represent a known amount of data (e.g., a 4 k block, etc.), an LBA of a block can be calculated based on the location of the block identifier in the ordered list of block identifiers associated with the volume. For example, the position of a block identifier in the ordered list can be used along with the block size to determine the LBA of the data block. As described below, the tree structure can also be used to determine the data blocks that have changed after a previous backup.
- a request from backup server 118 may include a list of LBAs of blocks to be backed up.
- the metadata server 110 routes the request to a block server 112 , which provides the requested data to metadata server 110 .
- Metadata server 110 then routes the requested data to the backup server 118 .
- This arrangement allows the servers of metadata layer 104 to facilitate data transmission between block server layer 106 and the backup servers 118 .
- backup servers 118 may be configured to communicate directly with servers of block server layer 106 . Upon retrieval of the requested data, the backup server 118 stores the data in storage 120 .
- the data may be stored in storage 120 according to any of the methods discussed herein.
- Backup server 118 may create and maintain statistics and snapshot data corresponding to a particular backup operation. The snapshot data may be used later during a data restoration operation, or during a future backup operation.
- Backup server 118 can also store a copy of the metadata used during a particular backup operation.
- the metadata is not stored on the backup server 118 . Rather, the metadata is stored on another storage device, for example, one or more metadata servers, one or more block servers, or one or more devices remote from the backup system. As a result of the initial backup operation, a complete backup of the data of a client volume is created and stored in storage 120 .
- a backup server 118 retrieves the current metadata from metadata server 110 for a client volume. The backup server 118 can then compare the current metadata from metadata server 110 with a version of stored metadata on backup server 118 (e.g., the version of metadata stored during the most recent backup operation, or the initial version of the metadata stored during the initial backup, etc.). In an implementation where the metadata includes an ordered list of block identifiers, the backup server 118 can compare the block identifiers of the two versions of metadata node-by-node. For example, the current list node corresponding to a first block of data is compared to the stored list node corresponding to the first block of data, and each node of the ordered list is traversed and compared.
- the block identifiers are hashes based on content of a corresponding data block, a difference in hash values for corresponding nodes indicates that the data of the block has been changed/updated since the prior backup.
- the block identifiers are integral to storage system 100 and maintained as described herein, the block identifiers can be compared in their native format and immediately used without the need to compute the hash values.
- the metadata includes a hash tree and the ordered list of block identifiers are structured as the leaves of the hash tree, additional performance gains may be realized.
- Such a hash tree is generally a tree data structure in which every non-leaf node includes the hash of its children nodes.
- backup server 118 can retrieve the updated blocks of data from storage 116 by sending a request for the changed data block to the metadata server 110 .
- the metadata server 110 can facilitate the transfer of data from the block server layer 106 .
- the backup server 118 stores the data in storage 120 .
- the backup server 118 also stores the current metadata from metadata server 110 used in the incremental backup operation.
- any number of incremental backup operations may be performed, during which the current metadata from metadata server 110 may be compared to previously stored metadata on backup server 118 (e.g., the stored metadata from a prior backup operation).
- Backup servers 118 may also provide an application programming interface (API) in order to allow clients 108 or traditional data backup software to interface with the backup systems described herein.
- API application programming interface
- the API may allow backup servers 118 to send statistics related to backed up data and backup operations to and from clients 108 or traditional backup software.
- the API may allow backup servers 118 to receive a request to initiate a backup operation.
- the API can also allow for backup operations to be scheduled as desired by clients 108 or as controlled by data backup software.
- Other API functionality is also envisioned.
- a hash tree 200 a is shown in accordance with an illustrative implementation.
- the hash tree 200 a may be a hash tree that is provided by a metadata server 110 to a backup server 118 in an initial or incremental backup operation as discussed above.
- hash tree 200 a (and hash trees described herein) may have any number of child nodes/branches.
- Hash tree 200 a represents the data of a particular volume, and can be provided along with additional metadata describing details related to the tree structure.
- the metadata may include statistics regarding node counts, leaf-node counts, tree-depth, indexes to sub-trees, etc.
- Hash tree 200 a includes leaves 202 a - d , internal nodes 204 a - b , and root node 206 .
- Leaves 202 a - d store block identifies B 1 -B 4 , respectively.
- leaves 202 a - d may be structured as an ordered list that is indexed by its parent nodes, which in this example are internal nodes 204 .
- Block identifiers B 1 -B 4 are identifiers as described herein (e.g., a hash of the corresponding data block's content), and each uniquely identify a particular data block of the volume.
- Hash tree 200 a further includes non-leaf internal nodes 204 a - b and non-leaf root node 206 .
- the value stored by each non-leaf node is the hash of that node's children values.
- hash H 1 is the hash of block identifiers B 1 and B 2
- hash H 2 is the hash of block identifiers B 3 and B 4
- hash H 3 is the hash of hashes H 1 and H 2 .
- backup server 118 can walk the tree, or traverse the ordered list of leaves 202 a - d to determine that the data blocks corresponding to block identifiers B 1 -B 4 should be retrieved to be backed up.
- a copy of hash tree 200 a (and any accompanying metadata) is stored by backup server 118 when a backup operation is performed.
- hash tree 200 a of FIG. 2 a is shown at a later time instance, as hash tree 200 b .
- hash tree 200 a may have been provided by metadata server 110 during an initial backup operation and stored by the backup server 118
- hash tree 200 b may have been provided by metadata server 110 during a subsequent incremental backup operation.
- Both hash trees 200 a - b represent the data stored on a particular volume.
- the block identifier B 3 of leaf node 202 c has changed to become block identifier B 3 ′ at some time since the previous backup. For example, new or updated data may have been written to the block referenced by block identifier B 3 .
- backup server 118 may walk the hash tree 200 b , and compare the nodes of hash tree 200 b to corresponding nodes of hash tree 200 a . A difference between corresponding non-leaf node hashes indicates that a block identifier (and therefore block data) below that non-leaf node has changed.
- backup server 118 may compare hash tree 200 b to hash tree 200 a as follows (although analysis performed by backup server 118 is not limited to the following operations or order of operations):
- backup server 118 may proceed to retrieve the data based on the block identifier(s) that indicate data has changed, and has not yet been backed up.
- backup server 118 may send a request to a metadata server 110 for the data block identified by block identifier B 3 ′.
- backup server 118 Upon receipt of the data block, backup server 118 stores the data block as a backup, and stores hash tree 200 b (along with any accompanying metadata) for use in future backup and/or restoration operations.
- backup server 118 may retrieve the metadata from a metadata server 110 by requesting only child nodes whose parent node has changed. For example, starting with the root, if the root node has changed the children of the root node can then be requested. These nodes can then be compared to corresponding nodes in the previously stored tree to determine if those have changed. Children of any node that has changed can then be retrieved. This process can be repeated until leaf nodes are retrieved.
- hash tree 200 b may be the current metadata from metadata server 110
- hash tree 200 a may be stored metadata from a previous backup operation.
- Backup server 118 may first retrieve root node 206 and analyze it to determine that hash H 3 ′ is different from its previous value of H 3 . In response, backup server 118 may then request nodes 204 a - b from interior node level 204 . Node 204 a is analyzed to determine that hash H 1 has not changed, and leaf nodes 202 a - b may be skipped from further requests/analysis. Node 204 b is analyzed to determine that hash H 2 ′ is different from its previous value of H 2 , and thus backup server 118 may proceed to request appropriate nodes of leaf level 202 (leaves 202 c - d ).
- Block identifier B 3 ′ is different from its previous value of B 3 and that the data block corresponding to block identifier B 3 ′ needs to be backed up.
- This implementation may allow for performance increases by minimizing data that is transmitted between backup server 118 and metadata server 110 during the retrieval of metadata.
- backup servers 118 implementations configured to utilize metadata of an ordered list of block identifiers, any newly added block identifiers (corresponding to the new data blocks) may be appended to the end of the ordered list.
- backup server 118 can determine the newly added data blocks that must be backed up based on the additional list elements. The backup operation may proceed as described above with respect to the remaining elements.
- FIG. 2C depicts the result of an increased volume size for implementations configured to utilize metadata of a hash tree.
- Hash tree 200 c is based on hash tree 200 a (which is included as a subtree and is denoted by a dashed box).
- Leaves 202 e - f have been newly added to the hash tree and include block identifiers B 5 -B 6 , which correspond to the newly added data blocks of the increased volume size.
- hash tree 200 a is restructured such that root node 206 becomes internal node 206 a , and a new root node 208 is created. Further, internal nodes 206 b and 204 c are added to maintain the tree structure.
- Hashes H 4 -H 6 are calculated based on the respective child values as described above.
- backup server 118 can determine the newly added data blocks that must be backed up based on a new root node or additional leaves.
- an implementation may make use of additional metadata that includes the indexes of the root nodes of previously stored trees. In this manner, backup server 118 may access the indexes to locate and compare the root node of a prior tree with the corresponding internal node of the current tree (e.g., root node 206 can be compared to internal node 206 a .). If the comparison indicates that the hashes have not changed, then backup server 118 may skip analyzing the subtree of the internal node, and a performance gain may be realized.
- backup server 118 may be desirable by clients 108 or an administrator of system 100 to reduce the volume size assigned to a client 108 by removing data blocks of storage space.
- backup server 118 implementations configured to utilize metadata of an ordered list of block identifiers, any removed block identifiers (corresponding to removed data blocks) may be removed from the end of the ordered list.
- backup server 118 can determine the backed up data blocks that may be removed based on the additional list elements in the stored list from the prior backup. The backup operation may proceed as described above with respect to the remaining elements.
- the backup server 118 may compare the trees (e.g. depth of the trees, leaf node count, etc.) to determine that there has been a change in volume size.
- the size of the volume can be part of the metadata received by the backup servers, and this metadata can be compared to a previously received volume size to determine that a change in volume has occurred.
- the backup server may then determine the position of the current tree within the stored hash tree. After locating the position of the current root node, the leaf nodes (and corresponding parent nodes) that are not within the subtree of the current root node can be ignored. Once the corresponding root nodes have been determined, the backup operation may then proceed as described above with respect to the remaining nodes.
- FIG. 3 shows a simplified flow diagram of an incremental block level backup procedure 300 , in accordance with an embodiment. Additional, fewer, or different operations of the procedure 300 may be performed, depending on the particular embodiment.
- the procedure 300 can be implemented on a computing device.
- the procedure 300 is encoded on a computer-readable medium that contains instructions that, when executed by a computing device, cause the computing device to perform operations of the procedure 300 .
- at least a portion of the various types of functions, operations, actions, and/or other features provided by the incremental block level backup procedure may be implemented at one or more nodes and/or volumes of the storage system.
- metadata for a particular volume is retrieved (e.g., from a metadata server).
- a backup sever may initiate a backup operation and retrieve initial metadata as described above.
- the backup server may be responding to a request to initiate a backup operation.
- a client or backup software may submit a request via an API to perform a backup at a certain time.
- the backup server may be performing a backup according to a schedule (e.g., nightly backups, weekly backups, client-specified backups, etc.).
- the initial backup of the data blocks of the volume is created.
- the metadata provides the block identifiers corresponding to the volume.
- the metadata may include an ordered list of block identifiers, a hash tree based on block identifiers, and other related data.
- the block identifiers are used to retrieve the corresponding data blocks to be backed up.
- the backup server may analyze the metadata in order to request the transmission of and retrieve particular data blocks to be backed up.
- the request may be sent to the metadata server, which can facilitate the transmission of data from a block server.
- the backup server may retrieve the data blocks directly from the block server.
- the initial backup is a backup of all of the data of the volume as specified by the metadata.
- the metadata used for the initial backup is stored for future use.
- an incremental backup of the volume is initiated by retrieving the current metadata.
- the backup server may retrieve updated metadata, which has been maintained by the metadata server to be current with the data blocks of the volume.
- metadata may be retrieved from a remote storage device.
- the current metadata is compared to other metadata (e.g., the metadata from the immediately preceding backup operation, the metadata from the initial backup operation, the metadata from a remote device, etc.).
- the backup server may analyze the metadata to determine changes in block identifiers as discussed above. Based on any changed block identifiers found during the analysis, in an operation 312 , an incremental backup is created. For example, based on the identifiers of the changed data blocks, the backup server may retrieve only the changed data blocks to be backed up.
- the backup server may store received data blocks as described herein.
- the metadata used for the incremental backup is stored for future use.
- the backup server may also generate additional metadata related to the backup procedure, including statistics to the amount of data backed up, the elapsed time of the backup process, etc. This process may repeat any number of times to create any number of incremental backups, as indicated by operation 316 .
- the retrieval of the metadata and the comparison of the metadata to other metadata is performed by a device other than the backup server (e.g., by one or more devices of the storage system).
- a storage device remote from the backup server may access metadata on the storage device, or may retrieve the metadata from another device, for example, from the metadata server.
- the storage device may analyze the metadata to determine changes in block identifiers as discussed above. Based on any changed block identifiers found during the analysis, an incremental backup can be created by transferring data to the backup server. For example, based on the identifiers of the changed data blocks, the storage device may transfer only the changed data blocks to the backup server to be backed up.
- the backup server may store received data blocks as described herein.
- the metadata used for the incremental backup can be stored by the storage device or can be transferred to another device (e.g., the metadata server) to be stored for future use.
- data can synced/replicated to another location.
- data from a source system can be copied to a replica server.
- Data can be replicated locally, to another volume in its cluster, to another cluster, to a remote storage device, etc.
- Data that can be replicated includes, but is not limited to, block server data, metadata server data, etc.
- Replicated data is a representation of the data on the source system at a particular point in time.
- the replication process does not stop incoming I/O operations.
- writes that occur during the replication must be properly handled to avoid mismatches in data between the live data and the corresponding replicated data.
- FIG. 4 depicts a distributed storage system 400 in accordance with an illustrative implementation.
- the storage system 400 stores live client data and may be configured as discussed above regarding system 100 (e.g., including client layer 102 , metadata layer 104 , block server layer 106 , and storage).
- the storage system 400 can also include one or more replica servers 418 a - 418 n .
- Replica servers 418 a - 418 n can interface with the metadata and/or block servers of the storage system 400 in order to maintain synchronized (replicated) copies of data stored by the storage system 400 .
- Replica servers 418 a - 418 n are coupled to storage 420 , which may store backups of volume data (e.g., backups of block level data of a client volume), synchronized data of client volume, snapshots of a client volume, and associated metadata.
- Storage 420 may include multiple hard disk drives (HDDs), solid state drives (SSDs), hybrid drives, or other storage drives.
- HDDs hard disk drives
- SSDs solid state drives
- storage 420 can be a cluster of individual drives coupled together via a network.
- Replica servers 418 can store backup copies of the data blocks of storage system 400 according to any number of formats in storage 420 , and translation from the format of the data blocks may occur.
- a replica server 418 maintains a live synchronized copy of data blocks of a client volume (e.g., a mirror copy of the client volume). To maintain synchronization, requests to write data that are provided by a client to storage system 400 may also be transmitted to the replica server 418 . In this manner, data written to storage system 400 can be synchronized and stored on replica server 418 in real-time or semi real-time. Synchronization of volume data on replica server 418 includes synchronizing the metadata of storage system 400 that identifies blocks in a client volume. As discussed above, metadata servers of the storage system store metadata that includes a list of block identifiers that identifies blocks in a volume.
- the block identifiers may be hexadecimal numbers, and other representations may be used. Additional metadata may also be included (e.g., inode numbers, directory pointers, modification dates, file size, client addresses, list details, etc.).
- the block identifiers uniquely identify the data of a block and are a hash based on the content of the data block.
- the metadata includes an ordered list structure of block identifiers.
- the ordered list is structured as the leaves of a hash tree (e.g., a Merkle tree, etc.) and the metadata includes the hash tree.
- replica server 418 can maintain a live synchronization tree that is updated to parallel the a tree maintained by a metadata server of storage system 400 for a particular client volume.
- FIG. 5 shows a flow diagram for replicating data in accordance with an illustrative implementation.
- Replication begins with a replica server receiving a start replication message from a source system ( 502 ).
- the replica server Upon receipt of the start replication message, the replica server initiates a data structure that will be used to track writes that occur during the replication process ( 504 ).
- the data structure is a bit field where each bit represents a single unit of information, e.g., a block, a sub-block, etc. Each bit in the bit field represents if a particular unit has been written to after the start of the replication processes. In this embodiment, the bit field will be initialized to 0.
- the source system sends over replication data to the replica server. Similar to the block level backup embodiments, merkle trees can be used to minimize the amount of data that is required to be transferred between the source system and the replica server.
- the source system will handle the writes and while the replication process is active will also send the writes to the replica server.
- the replica server can receive an I/O request to write a block of data ( 550 ). Upon receipt, the replica server can write the block of data ( 552 ) and will also update the bit associated with the block in the bit field to 1 ( 554 ). After the bit is set, the data write on the replica server is complete.
- the replica server determines which blocks of data are needed from the source system ( 506 ). For example, a merkle tree comparison as described above can be used to determine blocks of data that have changed since a previous point-in-time image. One or more of the changed blocks of data, however, may have been changed again since the start of the replication process. Accordingly, the data will have already been sent to the replica server and requesting this data again is unneeded.
- the bit field can be checked to determine if the block has already been received ( 508 ). If the block has not been updated, then the block of data is requested from the source system ( 510 ). The block is received ( 512 ) and written to storage.
- the replication system can send a message to the source system indicating that replication is complete. Upon receipt, the source system can stop forwarding I/O to the replication system.
- a block is the smallest amount of data that is written to storage in a single write operation.
- a block can be divided into smaller sub-blocks, such that each unit of a block can be written to separately.
- a block can be 4 kilobytes in size and broken down into sixteen 256 byte sub-blocks.
- the data structure corresponds to the sub-blocks and not the blocks.
- a write to a sub-block can be received.
- the write command can include the data for the entire block or just the sub-block of data.
- the write can update a cache that is associated with the sub-block or could write the sub-block to storage.
- the block that contains the sub-block is retrieved and the sub-block is updated appropriately.
- the Merkle tree comparison can be used to determine that the block with the updated sub-block needs to be retrieved from the source system. For example, another sub-block may have been update from the previous replication. The entire block can be retrieved. The corresponding block on the replica server is retrieved and updated. To update the corresponding block on the replica server, the data structure is used to update each sub-block from the block retrieved from the source system. For sub-blocks where the data structure indicates that the sub-block has been updated during the replication process, the sub-block is not updated since it already has the latest data.
- the replica server can determine if all the sub-blocks of a block have been updated during the replica process. In this case, the replica server has already replicated this block and there is no need to request that block of data from the source system.
- replica servers 418 a - 418 n can be configured to create point-in-time images of components of the data of storage system 400 .
- each point-in-time image includes corresponding metadata (e.g., a hash tree) that identifies the blocks of the point-in-time image.
- the hash tree of a point-in-time image is based on the block identifiers of the data stored for the point-in-time image.
- a replica server 418 may create one or more point-in-time images of a component of the data of storage system 400 , and each point-in-time image may be created according a defined schedule, or on demand (e.g., in response to a client demand, or as demanded by an administrator of storage system 400 , etc.).
- the source system may also create various copies/replicas of a volume locally. For example, every day a replica of a volume can be scheduled.
- a remote replication system may only replicate a subset of the replicas that are local to the source system. For example, a remote replication system can request a single local copy every week rather than each of the daily local replicas. In another embodiment, the remote replication system can make a replica of the current live volume and ignore any other local replicas of the volume.
- replica server 418 may be brought back online and resume synchronizing volume data with storage system 400 .
- the data of replica server 418 may be out of sync with the volume data of storage system 400 .
- replica server 418 may retrieve the data that is needed from storage system 400 to re-synchronize with the live volume data of storage system 400 .
- replica server 418 may implement one or more techniques of the block level incremental backup process to synchronize the volume data.
- replica server 418 can retrieve the metadata for a live volume (e.g., a tree corresponding to the live volume as maintained by a metadata server). Replica server 418 may then analyze versions of metadata (e.g., comparing the out-of-date synchronization tree of replica server 418 and the retrieved live volume tree). Based on this analysis, replica server 418 can determine changed data blocks of the volume and what blocks needs to be retrieved from storage system 400 to synchronize the volume data. The replica server 418 may request any changed data blocks from storage system 400 and the retrieved blocks may be stored. As replica server 418 is synchronizing its volume data, write requests may still be received and the point-in-time image can still be created.
- a live volume e.g., a tree corresponding to the live volume as maintained by a metadata server.
- Replica server 418 may then analyze versions of metadata (e.g., comparing the out-of-date synchronization tree of replica server 418 and the retrieved live volume tree). Based on this analysis, replica server 4
- a data block may not yet be available in the data of replica server 418 to be stored in the new point-in-time image.
- the comparison of the metadata of the new tree with the metadata of the live tree may indicate that a block identifier (and therefore block data) has changed.
- the changed block may not yet be synchronized in the volume data of replica server 418 .
- replica server 418 may retrieve the changed block data directly from the storage system 400 (as opposed to pointing to or retrieving the changed block data from the synchronized volume data of replica server 418 as discussed above).
- the replication can be verified. In one embodiment, this is done by the source system sending to the replica system one or more merkle tree nodes. The replica system can then compare the received merkle tree nodes with the corresponding merkle tree nodes of the replicated copy of the source volume. If any corresponding nodes do not match, the data was not properly replicated between the source system and the replica system.
- the merkle tree on the replica side is updated as blocks of data are written to cached data structures and/or storage. Accordingly, the merkle tree is being updated on the replica system in a similar way as the merkle tree was updated on the source side. In one embodiment, the top level node of the merkle tree is compared.
- the top two, three, etc., layers of the merkle tree are compared.
- the source side and the replica side must be in sync in regard to any data that is to be written.
- the replica side must also handle that write prior to the verification step. In one embodiment, this is accomplished through messaging between the source and replica systems.
- the replica server can send a message requesting verification data.
- the source system can pause handling write requests until the verification data, e.g., the merkle tree nodes, are sent to the replica side.
- the replica side receiving the verification data handles any queued write requests prior to comparing the received verification data with local data.
- the replica system can send a message and the I/O can continue.
- the replica side can queue any received I/O requests from the source side. This allows the source side to begin handling I/O as soon as the verification data has been sent to the replica system. Once the verification is done, the replica system can handle any queued I/O requests. Verification can be done at any point during the replication process. The only requirement is that the source and replica side be in sync in regard to handling write requests. For example, after a certain number of blocks have been replicated or after a predetermined amount of time has passed, the replica server can request verification data from the source system.
- Replication data between different systems can impact the performance of both systems.
- Quality of service can be implemented on both the source system and the replica system to ensure adequate service is provided based upon quality of service provisions.
- Embodiments of quality of service provisions that can be used in replication are described in U.S. application Ser. No. 13/856,958, which is incorporated by reference in its entirety.
- the quality of service allocated for I/O for a particular volume can be different on the source system compared to the replica system. For example, the replica system may have allocated 1,000 input output per second (IOPs), while the source system has allocated 5,000 IOPs for a particular volume. In this situation, the source system could overload the replica system's ability to handle the IOPs associated with replicating the volume from the source system to the replica system.
- IOPs input output per second
- the handling of I/O can be paused.
- a timer can be used to monitor how long I/O has been paused. If the timer exceeds some threshold, the replication of the source volume can be stopped and reported.
- volumes that are to be replicated can be sorted based upon quality of service (QoS) parameters associated with the volumes.
- QoS quality of service
- sorting is done on the sum of QoS parameters from the source system and the replica system. This sum can represent a relative importance of a volume, with higher QoS parameters being more important than lower level QoS parameter volumes.
- the ratio of the replica QoS parameter to the source QoS parameter is used to sort the volumes. Volumes with higher ratios indicate that the replication of those volumes are likely to successfully finish. Volumes whose ratios fall below a threshold amount can be flagged as volumes whose replication may not successfully finish due to QoS provisions.
- the source side's QoS provisions could force the replica side to throttle I/O to the point that the replica side terminates the replication as described above.
- the volumes can be sorted based upon the replica system's QoS parameter only. This allows volumes to be given high replication priority by increasing the QoS provisions of the volume on the replica server, without having to modify the source side's QoS provisions. Accordingly, a replication of a volume can be assured to successfully complete based upon a high QoS parameter on the replica side.
- the volumes can be sorted based upon the source system's QoS parameter only. Once the volumes have been sorted, replication can begin in an ordered fashion based upon the sorting.
- Warnings can be generated for any volume that is below some threshold, e.g., ratio below a threshold, sum is below a threshold, etc.
- the warnings can provide information regarding the replication and the QoS parameters, such that the QoS parameters can be modified to remove future warnings.
- any two components so associated can also be viewed as being “operably connected,” or “operably coupled,” to each other to achieve the desired functionality, and any two components capable of being so associated can also be viewed as being “operably couplable” to each other to achieve the desired functionality.
- operably couplable include but are not limited to physically mateable and/or physically interacting components and/or wirelessly interactable and/or wirelessly interacting components and/or logically interacting and/or logically interactable components.
Abstract
Disclosed are systems, computer-readable mediums, and methods for receiving a start replication message to replicate a source volume to a replicated volume. A source system forwards I/O requests to the replica server. A data structure associated with the replicated volume is initialized. A write request is received from the source system. The write data is written to the replicated volume and the data structure is updated. Source metadata associated with the source volume is received. The source metadata is compared with prior metadata associated with a prior point-in-time image of the source volume to determine blocks of data that have changed since the prior point-in-time image of the source volume. A first block is determined to not be retrieved based upon the data structure. A second block is determined to be retrieved based upon the data structure. The second block is received and written to the replicated volume.
Description
- The following description is provided to assist the understanding of the reader. None of the information provided is admitted to be prior art.
- In data storage architectures, a client's data may be stored in a volume. A unit of data, for example a file (or object), is comprised of one or more storage units (e.g. bytes) and can be stored and retrieved from a storage medium such as disk or RAM in a variety of fashions. For example, disk drives in storage systems are divided into logical blocks that are addressed using logical block addresses (LBAs). As another example, an entire file can be stored in a contiguous range of addresses on the storage medium and be accessed given the offset and length of the file. Most modern file systems store files by dividing them into blocks or extents of a fixed size, storing each block in a contiguous section of the storage medium, and then maintaining a list or tree of the blocks that correspond to each file. Some storage systems, such as write-anywhere file layout (WAFL), logical volume manager (LVM), or new technology file system (NTFS), allow multiple objects to refer to the same blocks, typically through a tree structure, to allow for efficient storage of previous versions or “snapshots” of the file system. In some cases, data for a single file or object may be distributed between multiple storage devices, either by a mechanism like RAID which combines several smaller storage media into one larger virtual device, or through a distributed storage system such as Lustre, General Parallel File System, or GlusterFS.
- At some point, it is desirable to backup data of the storage system. Traditional backup methods typically utilize backup software that operates independently of the data storage system and manages the backup process. Backup methods exist to backup only the differences since the last full backup (e.g., a differential backup) or to backup only the changes since the last backup (e.g., an incremental backup). However, due to inefficiency of backup software, many administrators are shifting away from traditional backup processes and moving towards data replication methods. With replication comes the issue of replicating a mistake, for example, a wrongly deleted file. High bandwidth is required for both replication and backup solutions, and neither methods are particularly well suited to scale efficiently for long term archiving.
- The foregoing and other features of the present disclosure will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings.
-
FIG. 1 depicts a simplified system for a storage system in accordance with an illustrative implementation. -
FIG. 2A depicts a hash tree in accordance with an illustrative implementation. -
FIG. 2B depicts the hash tree illustrated inFIG. 2A , with updated node hashes, in accordance with an illustrative implementation. -
FIG. 2C depicts the hash tree illustrated inFIG. 2A , with newly added leaves, in accordance with an illustrative implementation. -
FIG. 3 shows a flow diagram of an incremental block level backup procedure in accordance with an illustrative implementation. -
FIG. 4 depicts a distributed storage system in accordance with an illustrative implementation. -
FIG. 5 shows a flow diagram for replicating data in accordance with an illustrative implementation. - In general, one innovative aspect of the subject matter described below can be embodied in methods for receiving a start replication message from a source system to replicate data of a source volume to a replicated volume on a replica server. The replicated volume comprises a copy of data of the source volume. The source system forwards input/output (I/O) requests to the replica server after the start replication message is sent. A data structure associated with units of data of the replicated volume is initialized. A write request is received from the source system that includes write data associated a unit of data of the replicated volume. The source system wrote the write data to the source volume based upon the write request. The write data is written to the replicated volume. The data structure is updated to indicate the write data has been written after the receipt of the start replication message. Source metadata associated with the source volume is received. The metadata includes an ordered list of block identifiers for data blocks of the source volume. Each block identifier is used to access a data block. The source metadata is compared with prior metadata associated with a prior point-in-time image of the source volume to determine blocks of data that have changed since the prior point-in-time image of the source volume. A first block of the blocks of data is determined to not be retrieved based upon the data structure. A second block of the blocks of data is determined to be retrieved based upon the data structure. The second block is received from the source system and written to the replicated volume. Other embodiments of this aspect include corresponding systems, apparatuses, and computer-readable media, configured to perform the actions of the method.
- The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, implementations, and features described above, further aspects, implementations, and features will become apparent by reference to the following drawings and the detailed description.
- Described herein are techniques for an incremental block level backup system. In the following description, for purposes of explanation, numerous examples and specific details are set forth in order to provide a thorough understanding of various implementations. Particular implementations as defined by the claims may include some or all of the features in these examples alone or in combination with other features described below, and may further include modifications and equivalents of the features and concepts described herein.
- Storage System
-
FIG. 1 depicts a simplified system for incremental block level backup of astorage system 100 in accordance with an illustrative implementation.System 100 includes aclient layer 102, ametadata layer 104, ablock server layer 106,storage 116, andstorage 120. - In general,
client layer 102 includes one or more clients 108 a-108 n. Clients 108 include client processes that may exist on one or more physical machines. When the term “client” is used in the disclosure, the action being performed may be performed by a client process. A client process is responsible for storing, retrieving, and deleting data insystem 100. A client process may address pieces of data depending on the nature of the storage system and the format of the data stored. For example, the client process may reference data using a client address. The client address may take different forms. For example, in a storage system that uses file storage, client 108 may reference a particular volume or partition, and a file name. With object storage, the client address may be a unique object name. For block storage, the client address may be a volume or partition, and a block address. Clients 108 communicate withmetadata layer 104 using different protocols, such as small computer system interface (SCSI), Internet small computer system interface (ISCSI), fibre channel (FC), common Internet file system (CIFS), network file system (NFS), hypertext transfer protocol (HTTP), hypertext transfer protocol secure (HTTPS), web-based distributed authoring and versioning (WebDAV), or a custom protocol. -
Metadata layer 104 includes one or more metadata servers 110 a-110 n.Performance managers 114 may be located on metadata servers 110 a-110 n.Block server layer 106 includes one or more block servers 112 a-112 n. Block servers 112 a-112 n are coupled tostorage 116, which stores volume data for clients 108. Each client 108 may be associated with a volume. In one implementation, only one client 108 accesses data in a volume; however, multiple clients 108 may access data in a single volume. -
Storage 116 can include multiple solid state drives (SSDs). In one implementation,storage 116 can be a cluster of individual drives coupled together via a network. When the term “cluster” is used, it will be recognized that cluster may represent a storage system that includes multiple disks that may not be networked together. In one implementation,storage 116 uses solid state memory to store persistent data. SSDs use microchips that store data in non-volatile memory chips and contain no moving parts. One consequence of this is that SSDs allow random access to data in different drives in an optimized manner as compared to drives with spinning disks. Read or write requests to non-sequential portions of SSDs can be performed in a comparable amount of time as compared to sequential read or write requests. In contrast, if spinning disks were used, random read/writes would not be efficient since inserting a read/write head at various random locations to read data results in slower data access than if the data is read from sequential locations. Accordingly, using electromechanical disk storage can require that a client's volume of data be concentrated in a small relatively sequential portion of the cluster to avoid slower data access to non-sequential data. Using SSDs removes this limitation. - In various implementations, non-sequentially storing data in
storage 116 is based upon breaking data up into one more storage units, e.g., data blocks. A data block, therefore, is the raw data for a volume and may be the smallest addressable unit of data. Themetadata layer 104 or theclient layer 102 can break data into data blocks. The data blocks can then be stored on multiple block servers 112. Data blocks can be of a fixed size, can be initially a fixed size but compressed, or can be of a variable size. Data blocks can also be segmented based on the contextual content of the block. For example, data of a particular type may have a larger data block size compared to other types of data. Maintaining segmentation of the blocks on a write (and corresponding re-assembly on a read) may occur inclient layer 102 and/ormetadata layer 104. Also, compression may occur inclient layer 102,metadata layer 104, and/orblock server layer 106. - In addition to storing data non-sequentially, data blocks can be stored to achieve substantially even distribution across the storage system. In various examples, even distribution can be based upon a unique block identifier. A block identifier can be an identifier that is determined based on the content of the data block, such as by a hash of the content. The block identifier is unique to that block of data. For example, blocks with the same content have the same block identifier, but blocks with different content have different block identifiers. To achieve even distribution, the values of possible unique identifiers can have a uniform distribution. Accordingly, storing data blocks based upon the unique identifier, or a portion of the unique identifier, results in the data being stored substantially evenly across drives in the cluster.
- Because client data, e.g., a volume associated with the client, is spread evenly across all of the drives in the cluster, every drive in the cluster is involved in the read and write paths of each volume. This configuration balances the data and load across all of the drives. This arrangement also removes hot spots within the cluster, which can occur when client's data is stored sequentially on any volume.
- In addition, having data spread evenly across drives in the cluster allows a consistent total aggregate performance of a cluster to be defined and achieved. This aggregation can be achieved, since data for each client is spread evenly through the drives. Accordingly, a client's I/O will involve all the drives in the cluster. Since, all clients have their data spread substantially evenly through all the drives in the storage system, a performance of the system can be described in aggregate as a single number, e.g., the sum of performance of all the drives in the storage system.
- Block servers 112 and slice servers maintain a mapping between a block identifier and the location of the data block in a storage medium of block server 112. A volume includes these unique and uniformly random identifiers, and so a volume's data is also evenly distributed throughout the cluster.
-
Metadata layer 104 stores metadata that maps betweenclient layer 102 andblock server layer 106. For example, metadata servers 110 map between the client addressing used by clients 108 (e.g., file names, object names, block numbers, etc.) and block layer addressing (e.g., block identifiers) used inblock server layer 106. Clients 108 may perform access based on client addresses. However, as described above, block servers 112 store data based upon identifiers and do not store data based on client addresses. Accordingly, a client can access data using a client address which is eventually translated into the corresponding unique identifiers that reference the client's data instorage 116. - Although the parts of
system 100 are shown as being logically separate, entities may be combined in different fashions. For example, the functions of any of the layers may be combined into a single process or single machine (e.g., a computing device) and multiple functions or all functions may exist on one machine or across multiple machines. Also, when operating across multiple machines, the machines may communicate using a network interface, such as a local area network (LAN) or a wide area network (WAN). In one implementation, one or more metadata servers 110 may be combined with one or more block servers 112 or backup servers 118 in a single machine. Entities insystem 100 may be virtualized entities. For example, multiple virtual block servers 112 may be included on a machine. Entities may also be included in a cluster, where computing resources of the cluster are virtualized such that the computing resources appear as a single entity. - Block Level Incremental Backup
- One or more backup servers 118 a-118 n can interface with the
metadata layer 104. Backup servers 118 can interface directly with block servers 112. Backup servers 118 a-118 n are coupled tostorage 120, which stores backups of volume data for clients 108.Storage 120 can include multiple hard disk drives (HDDs), solid state drives (SSDs), hybrid drives, or other storage drives. In one implementation,storage 120 can be a cluster of individual drives coupled together via a network. Backup servers 118 can store backup copies of the data blocks ofstorage 116 according to any number of formats instorage 120, and translation from the format of the data blocks ofstorage 116 may occur. Data may be transferred to and from backup servers 118 using different protocols, such as small computer system interface (SCSI), Internet small computer system interface (ISCSI), fibre channel (FC), common Internet file system (CIFS), network file system (NFS), hypertext transfer protocol (HTTP), hypertext transfer protocol secure (HTTPS), web-based distributed authoring and versioning (WebDAV), or a custom protocol. Compression and data de-duplication may occur in backup servers 118 a-118 n. - As discussed above, the servers of
metadata layer 104 store and maintain metadata that maps betweenclient layer 102 andblock server layer 106, where the metadata maps between the client addressing used by clients 108 (e.g., file names, volume, object names, block numbers, etc.) and block layer addressing (e.g., block identifiers) used inblock server layer 106. In one embodiment, the metadata includes a list of block identifiers that identifies blocks in a volume. The list may be structured as an ordered list corresponding to a list of blocks. The list may also be structured as the leaves of a hash tree. The block identifiers of the metadata are the same block identifiers as used throughoutsystem 100 as described above. The block identifiers may be hexadecimal numbers, but other representations may be used. Additional metadata may also be included, such as inode numbers, directory pointers, modification dates, file size, client addresses, list details, etc. The block identifiers uniquely identify the data of a block and are a hash based on the content of the data block. Backup servers 118 are generally configured to create backups of block level data of a volume that is stored instorage 116 ofblock server layer 106. Backup servers 118 may create backups of all of the volume data ofblock server layer 106 or backup servers 118 may create backups of one or more particular volumes (e.g., a volume of a client 108). Backups may be full backups of all data, or they may be incremental backups (e.g., data that has changed since a previous backup). - During an initial backup operation, a backup server 118 retrieves a copy of metadata from metadata server 110 for a client volume. The metadata includes a list of block identifiers associated with data blocks of the volume. In an implementation, the metadata includes an ordered list structure of block identifiers. In another implementation, the ordered list is structured as the leaves of a hash tree (e.g., a Merkle tree, etc.) and the metadata includes the hash tree. The metadata is used by backup server 118 to retrieve a copy of all of the data blocks of the client volume in order to create an initial backup of the data blocks. The data blocks are retrieved from
storage 116 by sending a request for the data to a metadata server 110. The requested data is based on the data block identifiers. A request may include a list of the block identifiers of blocks desired to be backed up. In one implementation, backup server 118 may calculate the LBAs of blocks desired to be backed up. For example, because each block identifier can represent a known amount of data (e.g., a 4 k block, etc.), an LBA of a block can be calculated based on the location of the block identifier in the ordered list of block identifiers associated with the volume. For example, the position of a block identifier in the ordered list can be used along with the block size to determine the LBA of the data block. As described below, the tree structure can also be used to determine the data blocks that have changed after a previous backup. In this example, the number of leaf nodes to the left of a changed leaf node can be used to calculate the LBA of the data block. In implementations where LBAs are calculated, a request from backup server 118 may include a list of LBAs of blocks to be backed up. The metadata server 110 routes the request to a block server 112, which provides the requested data to metadata server 110. Metadata server 110 then routes the requested data to the backup server 118. This arrangement allows the servers ofmetadata layer 104 to facilitate data transmission betweenblock server layer 106 and the backup servers 118. In another implementation, backup servers 118 may be configured to communicate directly with servers ofblock server layer 106. Upon retrieval of the requested data, the backup server 118 stores the data instorage 120. The data may be stored instorage 120 according to any of the methods discussed herein. Backup server 118 may create and maintain statistics and snapshot data corresponding to a particular backup operation. The snapshot data may be used later during a data restoration operation, or during a future backup operation. Backup server 118 can also store a copy of the metadata used during a particular backup operation. In another embodiment, the metadata is not stored on the backup server 118. Rather, the metadata is stored on another storage device, for example, one or more metadata servers, one or more block servers, or one or more devices remote from the backup system. As a result of the initial backup operation, a complete backup of the data of a client volume is created and stored instorage 120. - During an incremental backup operation, a backup server 118 retrieves the current metadata from metadata server 110 for a client volume. The backup server 118 can then compare the current metadata from metadata server 110 with a version of stored metadata on backup server 118 (e.g., the version of metadata stored during the most recent backup operation, or the initial version of the metadata stored during the initial backup, etc.). In an implementation where the metadata includes an ordered list of block identifiers, the backup server 118 can compare the block identifiers of the two versions of metadata node-by-node. For example, the current list node corresponding to a first block of data is compared to the stored list node corresponding to the first block of data, and each node of the ordered list is traversed and compared. Since the block identifiers are hashes based on content of a corresponding data block, a difference in hash values for corresponding nodes indicates that the data of the block has been changed/updated since the prior backup. As the block identifiers are integral to
storage system 100 and maintained as described herein, the block identifiers can be compared in their native format and immediately used without the need to compute the hash values. In an implementation where the metadata includes a hash tree and the ordered list of block identifiers are structured as the leaves of the hash tree, additional performance gains may be realized. Such a hash tree is generally a tree data structure in which every non-leaf node includes the hash of its children nodes. This structure is particularly useful because it allows efficient determination of which data blocks have been updated since a prior backup, without the need to compare every node of the list of block identifiers. The determination of changed data blocks by using a hash tree will be discussed in further detail below with reference toFIGS. 2 a-b. Upon determination of which particular blocks of data have changed since the previous backup, backup server 118 can retrieve the updated blocks of data fromstorage 116 by sending a request for the changed data block to the metadata server 110. As discussed above, the metadata server 110 can facilitate the transfer of data from theblock server layer 106. Upon retrieval of the requested changed data blocks, the backup server 118 stores the data instorage 120. The backup server 118 also stores the current metadata from metadata server 110 used in the incremental backup operation. As a result of the incremental backup operation, only the data of a volume that has changed since a previous backup operation is backed up again. This provides a number of advantages, including increasing the efficiency of the data backup procedure, and decreasing the overall amount of data being transferred during the backup procedure. Further, any number of incremental backup operations may be performed, during which the current metadata from metadata server 110 may be compared to previously stored metadata on backup server 118 (e.g., the stored metadata from a prior backup operation). - Backup servers 118 may also provide an application programming interface (API) in order to allow clients 108 or traditional data backup software to interface with the backup systems described herein. For example, the API may allow backup servers 118 to send statistics related to backed up data and backup operations to and from clients 108 or traditional backup software. As another example, the API may allow backup servers 118 to receive a request to initiate a backup operation. The API can also allow for backup operations to be scheduled as desired by clients 108 or as controlled by data backup software. Other API functionality is also envisioned.
- Referring to
FIG. 2 a, ahash tree 200 a is shown in accordance with an illustrative implementation. Thehash tree 200 a may be a hash tree that is provided by a metadata server 110 to a backup server 118 in an initial or incremental backup operation as discussed above. Although depicted as a binary hash tree,hash tree 200 a (and hash trees described herein) may have any number of child nodes/branches.Hash tree 200 a represents the data of a particular volume, and can be provided along with additional metadata describing details related to the tree structure. For example, the metadata may include statistics regarding node counts, leaf-node counts, tree-depth, indexes to sub-trees, etc. Backup server 118 may store the additional metadata for future use.Hash tree 200 a includesleaves 202 a-d,internal nodes 204 a-b, androot node 206.Leaves 202 a-d store block identifies B1-B4, respectively. In an implementation, leaves 202 a-d may be structured as an ordered list that is indexed by its parent nodes, which in this example areinternal nodes 204. Block identifiers B1-B4 are identifiers as described herein (e.g., a hash of the corresponding data block's content), and each uniquely identify a particular data block of the volume.Hash tree 200 a further includes non-leafinternal nodes 204 a-b andnon-leaf root node 206. The value stored by each non-leaf node is the hash of that node's children values. For example, hash H1 is the hash of block identifiers B1 and B2, hash H2 is the hash of block identifiers B3 and B4, and hash H3 is the hash of hashes H1 and H2. During an initial backup operation, backup server 118 can walk the tree, or traverse the ordered list ofleaves 202 a-d to determine that the data blocks corresponding to block identifiers B1-B4 should be retrieved to be backed up. A copy ofhash tree 200 a (and any accompanying metadata) is stored by backup server 118 when a backup operation is performed. - Referring to
FIG. 2 b, thehash tree 200 a ofFIG. 2 a is shown at a later time instance, ashash tree 200 b. For example,hash tree 200 a may have been provided by metadata server 110 during an initial backup operation and stored by the backup server 118, and hashtree 200 b may have been provided by metadata server 110 during a subsequent incremental backup operation. Both hash trees 200 a-b represent the data stored on a particular volume. As depicted, the block identifier B3 ofleaf node 202 c has changed to become block identifier B3′ at some time since the previous backup. For example, new or updated data may have been written to the block referenced by block identifier B3. Because of the structure of the hash tree, the change of block identifier from B3 to B3′ causes updates in hashes to propagate upward through the parent node to the root node. Specifically, hash H2 is recalculated to become H2′, and hash H3 is recalculated to become to H3′. During a backup operation, backup server 118 may walk thehash tree 200 b, and compare the nodes ofhash tree 200 b to corresponding nodes ofhash tree 200 a. A difference between corresponding non-leaf node hashes indicates that a block identifier (and therefore block data) below that non-leaf node has changed. If the hashes of corresponding non-leaf nodes are equal, this indicates that the block identifiers below that non-leaf node have not changed (and therefore corresponding block data has also not changed). Thus, the subtree of nodes below an unchanged non-leaf node can be skipped from further processing. In this manner, a performance increase may be realized as the entire hash tree does not need to be traversed in every backup operation. As an example with reference toFIG. 2 b, backup server 118 may comparehash tree 200 b to hashtree 200 a as follows (although analysis performed by backup server 118 is not limited to the following operations or order of operations): -
- 1.
Node 206 is analyzed to determine that hash H3′ is different from its previous value of H3, and therefore hash trees 200 a-b need to be further analyzed. - 2.
Node 204 a is analyzed to determine that hash H1 has not changed, and the subtree ofnode 204 a (leaf nodes 202 a-b) may be skipped from further analysis. - 3.
Node 204 b is analyzed to determine that hash H2′ is different from its previous value of H2, therefore the subtree ofnode 204 b (leaf nodes 202 c-d) must be analyzed. - 4.
Leaf node 202 c is analyzed to determine that block identifier B3′ is different from its previous value of B3. Thus, the data block corresponding to block identifier B3′ needs to be backed up by backup server 118, since its data as changed since the previous backup operation. - 5.
Leaf node 202 d is analyzed to determine that block identifier B4 has not changed, and traversal of hash trees 200 a-b is complete.
- 1.
- After performing the above sample analysis, backup server 118 may proceed to retrieve the data based on the block identifier(s) that indicate data has changed, and has not yet been backed up. In this example, backup server 118 may send a request to a metadata server 110 for the data block identified by block identifier B3′. Upon receipt of the data block, backup server 118 stores the data block as a backup, and stores hash
tree 200 b (along with any accompanying metadata) for use in future backup and/or restoration operations. - In one implementation using trees, backup server 118 may retrieve the metadata from a metadata server 110 by requesting only child nodes whose parent node has changed. For example, starting with the root, if the root node has changed the children of the root node can then be requested. These nodes can then be compared to corresponding nodes in the previously stored tree to determine if those have changed. Children of any node that has changed can then be retrieved. This process can be repeated until leaf nodes are retrieved. For example, with reference to
FIGS. 2A- B hash tree 200 b may be the current metadata from metadata server 110, and hashtree 200 a may be stored metadata from a previous backup operation. Backup server 118 may first retrieveroot node 206 and analyze it to determine that hash H3′ is different from its previous value of H3. In response, backup server 118 may then requestnodes 204 a-b frominterior node level 204.Node 204 a is analyzed to determine that hash H1 has not changed, andleaf nodes 202 a-b may be skipped from further requests/analysis.Node 204 b is analyzed to determine that hash H2′ is different from its previous value of H2, and thus backup server 118 may proceed to request appropriate nodes of leaf level 202 (leaves 202 c-d). Analysis may then continue as described above to determine that block identifier B3′ is different from its previous value of B3 and that the data block corresponding to block identifier B3′ needs to be backed up. This implementation may allow for performance increases by minimizing data that is transmitted between backup server 118 and metadata server 110 during the retrieval of metadata. - At some point, it may be desirable by clients 108 or an administrator of
system 100 to increase the volume size assigned to a client 108 by adding more data blocks of storage space. In this situation, with backup servers 118 implementations configured to utilize metadata of an ordered list of block identifiers, any newly added block identifiers (corresponding to the new data blocks) may be appended to the end of the ordered list. Thus, during a backup operation, if a backup server 118 receives metadata of an ordered list that has more elements than that of metadata from a prior backup operation, backup server 118 can determine the newly added data blocks that must be backed up based on the additional list elements. The backup operation may proceed as described above with respect to the remaining elements. -
FIG. 2C depicts the result of an increased volume size for implementations configured to utilize metadata of a hash tree.Hash tree 200 c is based onhash tree 200 a (which is included as a subtree and is denoted by a dashed box).Leaves 202 e-f have been newly added to the hash tree and include block identifiers B5-B6, which correspond to the newly added data blocks of the increased volume size. As a result of the volume increase,hash tree 200 a is restructured such thatroot node 206 becomesinternal node 206 a, and anew root node 208 is created. Further,internal nodes root node 206 can be compared tointernal node 206 a.). If the comparison indicates that the hashes have not changed, then backup server 118 may skip analyzing the subtree of the internal node, and a performance gain may be realized. - At some point, it may be desirable by clients 108 or an administrator of
system 100 to reduce the volume size assigned to a client 108 by removing data blocks of storage space. In this situation, with backup server 118 implementations configured to utilize metadata of an ordered list of block identifiers, any removed block identifiers (corresponding to removed data blocks) may be removed from the end of the ordered list. Thus, during a backup operation, if a backup server 118 receives metadata of an ordered list that has fewer elements than that of metadata from a prior backup operation, backup server 118 can determine the backed up data blocks that may be removed based on the additional list elements in the stored list from the prior backup. The backup operation may proceed as described above with respect to the remaining elements. With backup server 118 implementations configured to utilize metadata of a hash tree including leaves that are a list of block identifiers, the backup server 118 may compare the trees (e.g. depth of the trees, leaf node count, etc.) to determine that there has been a change in volume size. In another implementation the size of the volume can be part of the metadata received by the backup servers, and this metadata can be compared to a previously received volume size to determine that a change in volume has occurred. The backup server may then determine the position of the current tree within the stored hash tree. After locating the position of the current root node, the leaf nodes (and corresponding parent nodes) that are not within the subtree of the current root node can be ignored. Once the corresponding root nodes have been determined, the backup operation may then proceed as described above with respect to the remaining nodes. -
FIG. 3 shows a simplified flow diagram of an incremental block level backup procedure 300, in accordance with an embodiment. Additional, fewer, or different operations of the procedure 300 may be performed, depending on the particular embodiment. The procedure 300 can be implemented on a computing device. In one implementation, the procedure 300 is encoded on a computer-readable medium that contains instructions that, when executed by a computing device, cause the computing device to perform operations of the procedure 300. According to different embodiments, at least a portion of the various types of functions, operations, actions, and/or other features provided by the incremental block level backup procedure may be implemented at one or more nodes and/or volumes of the storage system. In an operation 302, metadata for a particular volume is retrieved (e.g., from a metadata server). For example, a backup sever may initiate a backup operation and retrieve initial metadata as described above. In an alternative embodiment, the backup server may be responding to a request to initiate a backup operation. For example, a client or backup software may submit a request via an API to perform a backup at a certain time. Alternatively, the backup server may be performing a backup according to a schedule (e.g., nightly backups, weekly backups, client-specified backups, etc.). In an operation 304, the initial backup of the data blocks of the volume is created. The metadata provides the block identifiers corresponding to the volume. The metadata may include an ordered list of block identifiers, a hash tree based on block identifiers, and other related data. The block identifiers are used to retrieve the corresponding data blocks to be backed up. For example, the backup server may analyze the metadata in order to request the transmission of and retrieve particular data blocks to be backed up. The request may be sent to the metadata server, which can facilitate the transmission of data from a block server. In an alternative embodiment, the backup server may retrieve the data blocks directly from the block server. The initial backup is a backup of all of the data of the volume as specified by the metadata. In an operation 306, the metadata used for the initial backup is stored for future use. In an operation 308, an incremental backup of the volume is initiated by retrieving the current metadata. For example, sometime after the creation of the initial backup, the backup server may retrieve updated metadata, which has been maintained by the metadata server to be current with the data blocks of the volume. As another example, metadata may be retrieved from a remote storage device. In an operation 310, the current metadata is compared to other metadata (e.g., the metadata from the immediately preceding backup operation, the metadata from the initial backup operation, the metadata from a remote device, etc.). For example, the backup server may analyze the metadata to determine changes in block identifiers as discussed above. Based on any changed block identifiers found during the analysis, in an operation 312, an incremental backup is created. For example, based on the identifiers of the changed data blocks, the backup server may retrieve only the changed data blocks to be backed up. The backup server may store received data blocks as described herein. In an operation 314, the metadata used for the incremental backup is stored for future use. The backup server may also generate additional metadata related to the backup procedure, including statistics to the amount of data backed up, the elapsed time of the backup process, etc. This process may repeat any number of times to create any number of incremental backups, as indicated by operation 316. - In another embodiment, the retrieval of the metadata and the comparison of the metadata to other metadata is performed by a device other than the backup server (e.g., by one or more devices of the storage system). For example, a storage device remote from the backup server may access metadata on the storage device, or may retrieve the metadata from another device, for example, from the metadata server. The storage device may analyze the metadata to determine changes in block identifiers as discussed above. Based on any changed block identifiers found during the analysis, an incremental backup can be created by transferring data to the backup server. For example, based on the identifiers of the changed data blocks, the storage device may transfer only the changed data blocks to the backup server to be backed up. The backup server may store received data blocks as described herein. The metadata used for the incremental backup can be stored by the storage device or can be transferred to another device (e.g., the metadata server) to be stored for future use.
- Data Syncing in a Distributed System
- In various embodiments, data can synced/replicated to another location. For example, data from a source system can be copied to a replica server. Data can be replicated locally, to another volume in its cluster, to another cluster, to a remote storage device, etc. Data that can be replicated includes, but is not limited to, block server data, metadata server data, etc. Replicated data is a representation of the data on the source system at a particular point in time. To reduce impact on the source system during replication, the replication process does not stop incoming I/O operations. To allow I/O operations to continue during a replication, writes that occur during the replication must be properly handled to avoid mismatches in data between the live data and the corresponding replicated data.
-
FIG. 4 depicts a distributedstorage system 400 in accordance with an illustrative implementation. Thestorage system 400 stores live client data and may be configured as discussed above regarding system 100 (e.g., includingclient layer 102,metadata layer 104,block server layer 106, and storage). Thestorage system 400 can also include one or more replica servers 418 a-418 n. Replica servers 418 a-418 n can interface with the metadata and/or block servers of thestorage system 400 in order to maintain synchronized (replicated) copies of data stored by thestorage system 400. Replica servers 418 a-418 n are coupled tostorage 420, which may store backups of volume data (e.g., backups of block level data of a client volume), synchronized data of client volume, snapshots of a client volume, and associated metadata.Storage 420 may include multiple hard disk drives (HDDs), solid state drives (SSDs), hybrid drives, or other storage drives. In one implementation,storage 420 can be a cluster of individual drives coupled together via a network. Replica servers 418 can store backup copies of the data blocks ofstorage system 400 according to any number of formats instorage 420, and translation from the format of the data blocks may occur. - In one embodiment, a replica server 418 maintains a live synchronized copy of data blocks of a client volume (e.g., a mirror copy of the client volume). To maintain synchronization, requests to write data that are provided by a client to
storage system 400 may also be transmitted to the replica server 418. In this manner, data written tostorage system 400 can be synchronized and stored on replica server 418 in real-time or semi real-time. Synchronization of volume data on replica server 418 includes synchronizing the metadata ofstorage system 400 that identifies blocks in a client volume. As discussed above, metadata servers of the storage system store metadata that includes a list of block identifiers that identifies blocks in a volume. The block identifiers may be hexadecimal numbers, and other representations may be used. Additional metadata may also be included (e.g., inode numbers, directory pointers, modification dates, file size, client addresses, list details, etc.). The block identifiers uniquely identify the data of a block and are a hash based on the content of the data block. In an embodiment, the metadata includes an ordered list structure of block identifiers. In another embodiment, the ordered list is structured as the leaves of a hash tree (e.g., a Merkle tree, etc.) and the metadata includes the hash tree. In an implementation utilizing a tree, when a write request is received and data is written to a block of a volume, values of the leaves (and inner nodes) of the tree change to corresponding to the changes of the block. Thus, replica server 418 can maintain a live synchronization tree that is updated to parallel the a tree maintained by a metadata server ofstorage system 400 for a particular client volume. -
FIG. 5 shows a flow diagram for replicating data in accordance with an illustrative implementation. Replication begins with a replica server receiving a start replication message from a source system (502). Upon receipt of the start replication message, the replica server initiates a data structure that will be used to track writes that occur during the replication process (504). In one embodiment, the data structure is a bit field where each bit represents a single unit of information, e.g., a block, a sub-block, etc. Each bit in the bit field represents if a particular unit has been written to after the start of the replication processes. In this embodiment, the bit field will be initialized to 0. At some point after sending the start replication message, the source system sends over replication data to the replica server. Similar to the block level backup embodiments, merkle trees can be used to minimize the amount of data that is required to be transferred between the source system and the replica server. - While the replication data is being sent to the replica server, data writes can be received at the source system. For example, a user may be writing new data to a file or metadata related to a user volume could be updated. The source system will handle the writes and while the replication process is active will also send the writes to the replica server. For example, the replica server can receive an I/O request to write a block of data (550). Upon receipt, the replica server can write the block of data (552) and will also update the bit associated with the block in the bit field to 1 (554). After the bit is set, the data write on the replica server is complete.
- As part of the replication process, the replica server determines which blocks of data are needed from the source system (506). For example, a merkle tree comparison as described above can be used to determine blocks of data that have changed since a previous point-in-time image. One or more of the changed blocks of data, however, may have been changed again since the start of the replication process. Accordingly, the data will have already been sent to the replica server and requesting this data again is unneeded. Before requesting the block of data from source system, the bit field can be checked to determine if the block has already been received (508). If the block has not been updated, then the block of data is requested from the source system (510). The block is received (512) and written to storage. If the block has been updated, then no request for that block of data needs to be sent to the source system. This continues until there are no longer any data blocks that are needed from the source system. Once there are no longer any data blocks, the volume has been replicated. The replication system can send a message to the source system indicating that replication is complete. Upon receipt, the source system can stop forwarding I/O to the replication system.
- In one embodiment, a block is the smallest amount of data that is written to storage in a single write operation. A block, however, can be divided into smaller sub-blocks, such that each unit of a block can be written to separately. As an example, a block can be 4 kilobytes in size and broken down into sixteen 256 byte sub-blocks. In this embodiment, the data structure corresponds to the sub-blocks and not the blocks. While replication is being done, a write to a sub-block can be received. The write command can include the data for the entire block or just the sub-block of data. The write can update a cache that is associated with the sub-block or could write the sub-block to storage. When only a sub-block is received in the write request, the block that contains the sub-block is retrieved and the sub-block is updated appropriately. Later during replication, the Merkle tree comparison can be used to determine that the block with the updated sub-block needs to be retrieved from the source system. For example, another sub-block may have been update from the previous replication. The entire block can be retrieved. The corresponding block on the replica server is retrieved and updated. To update the corresponding block on the replica server, the data structure is used to update each sub-block from the block retrieved from the source system. For sub-blocks where the data structure indicates that the sub-block has been updated during the replication process, the sub-block is not updated since it already has the latest data. If the data structure indicates that a sub-block has not been updated, that sub-block is updated with the corresponding sub-block received from the source system. To reduce unnecessary data transfers, before the replica server requests a block, the replica server can determine if all the sub-blocks of a block have been updated during the replica process. In this case, the replica server has already replicated this block and there is no need to request that block of data from the source system.
- As described above, replica servers 418 a-418 n can be configured to create point-in-time images of components of the data of
storage system 400. In one embodiment, each point-in-time image includes corresponding metadata (e.g., a hash tree) that identifies the blocks of the point-in-time image. The hash tree of a point-in-time image is based on the block identifiers of the data stored for the point-in-time image. A replica server 418 may create one or more point-in-time images of a component of the data ofstorage system 400, and each point-in-time image may be created according a defined schedule, or on demand (e.g., in response to a client demand, or as demanded by an administrator ofstorage system 400, etc.). The source system may also create various copies/replicas of a volume locally. For example, every day a replica of a volume can be scheduled. A remote replication system may only replicate a subset of the replicas that are local to the source system. For example, a remote replication system can request a single local copy every week rather than each of the daily local replicas. In another embodiment, the remote replication system can make a replica of the current live volume and ignore any other local replicas of the volume. - In the instance that a replica server 418 goes offline (e.g., due to a failure, being manually taken offline, or otherwise), the replica server 418 may be brought back online and resume synchronizing volume data with
storage system 400. However, due to the period of time that the replica server 418 was offline, the data of replica server 418 may be out of sync with the volume data ofstorage system 400. Accordingly, replica server 418 may retrieve the data that is needed fromstorage system 400 to re-synchronize with the live volume data ofstorage system 400. In one embodiment, replica server 418 may implement one or more techniques of the block level incremental backup process to synchronize the volume data. For example, replica server 418 can retrieve the metadata for a live volume (e.g., a tree corresponding to the live volume as maintained by a metadata server). Replica server 418 may then analyze versions of metadata (e.g., comparing the out-of-date synchronization tree of replica server 418 and the retrieved live volume tree). Based on this analysis, replica server 418 can determine changed data blocks of the volume and what blocks needs to be retrieved fromstorage system 400 to synchronize the volume data. The replica server 418 may request any changed data blocks fromstorage system 400 and the retrieved blocks may be stored. As replica server 418 is synchronizing its volume data, write requests may still be received and the point-in-time image can still be created. In the instance that a new point-in-time image is being created and the volume data of replica server 418 is not fully synchronized with the live volume data ofstorage system 400, a data block may not yet be available in the data of replica server 418 to be stored in the new point-in-time image. For example, referring to the new point-in-time image creation process discussed above, the comparison of the metadata of the new tree with the metadata of the live tree may indicate that a block identifier (and therefore block data) has changed. However, the changed block may not yet be synchronized in the volume data of replica server 418. In this scenario, replica server 418 may retrieve the changed block data directly from the storage system 400 (as opposed to pointing to or retrieving the changed block data from the synchronized volume data of replica server 418 as discussed above). - After replication of a volume has completed, the replication can be verified. In one embodiment, this is done by the source system sending to the replica system one or more merkle tree nodes. The replica system can then compare the received merkle tree nodes with the corresponding merkle tree nodes of the replicated copy of the source volume. If any corresponding nodes do not match, the data was not properly replicated between the source system and the replica system. In this embodiment, the merkle tree on the replica side is updated as blocks of data are written to cached data structures and/or storage. Accordingly, the merkle tree is being updated on the replica system in a similar way as the merkle tree was updated on the source side. In one embodiment, the top level node of the merkle tree is compared. In other embodiments, the top two, three, etc., layers of the merkle tree are compared. For this comparison to work properly, the source side and the replica side must be in sync in regard to any data that is to be written. For example, if data is written on the source side, the replica side must also handle that write prior to the verification step. In one embodiment, this is accomplished through messaging between the source and replica systems. Once the replication is complete, the replica server can send a message requesting verification data. The source system can pause handling write requests until the verification data, e.g., the merkle tree nodes, are sent to the replica side. The replica side receiving the verification data handles any queued write requests prior to comparing the received verification data with local data. Once verification is done, the replica system can send a message and the I/O can continue. In another embodiment, the replica side can queue any received I/O requests from the source side. This allows the source side to begin handling I/O as soon as the verification data has been sent to the replica system. Once the verification is done, the replica system can handle any queued I/O requests. Verification can be done at any point during the replication process. The only requirement is that the source and replica side be in sync in regard to handling write requests. For example, after a certain number of blocks have been replicated or after a predetermined amount of time has passed, the replica server can request verification data from the source system.
- Replication data between different systems can impact the performance of both systems. Quality of service can be implemented on both the source system and the replica system to ensure adequate service is provided based upon quality of service provisions. Embodiments of quality of service provisions that can be used in replication are described in U.S. application Ser. No. 13/856,958, which is incorporated by reference in its entirety. The quality of service allocated for I/O for a particular volume can be different on the source system compared to the replica system. For example, the replica system may have allocated 1,000 input output per second (IOPs), while the source system has allocated 5,000 IOPs for a particular volume. In this situation, the source system could overload the replica system's ability to handle the IOPs associated with replicating the volume from the source system to the replica system. Once the IOPs threshold has been reached on the replica system, the handling of I/O can be paused. A timer can be used to monitor how long I/O has been paused. If the timer exceeds some threshold, the replication of the source volume can be stopped and reported.
- To reduce replications from being stopped, volumes that are to be replicated can be sorted based upon quality of service (QoS) parameters associated with the volumes. In one embodiment, sorting is done on the sum of QoS parameters from the source system and the replica system. This sum can represent a relative importance of a volume, with higher QoS parameters being more important than lower level QoS parameter volumes. In another embodiment, the ratio of the replica QoS parameter to the source QoS parameter is used to sort the volumes. Volumes with higher ratios indicate that the replication of those volumes are likely to successfully finish. Volumes whose ratios fall below a threshold amount can be flagged as volumes whose replication may not successfully finish due to QoS provisions. For example, if the ratio is less than one, the source side's QoS provisions could force the replica side to throttle I/O to the point that the replica side terminates the replication as described above. In another embodiment, the volumes can be sorted based upon the replica system's QoS parameter only. This allows volumes to be given high replication priority by increasing the QoS provisions of the volume on the replica server, without having to modify the source side's QoS provisions. Accordingly, a replication of a volume can be assured to successfully complete based upon a high QoS parameter on the replica side. In another embodiment, the volumes can be sorted based upon the source system's QoS parameter only. Once the volumes have been sorted, replication can begin in an ordered fashion based upon the sorting. Warnings can be generated for any volume that is below some threshold, e.g., ratio below a threshold, sum is below a threshold, etc. The warnings can provide information regarding the replication and the QoS parameters, such that the QoS parameters can be modified to remove future warnings.
- One or more flow diagrams have been used herein. The use of flow diagrams is not meant to be limiting with respect to the order of operations performed. The herein-described subject matter sometimes illustrates different components contained within, or connected with, different other components. It is to be understood that such depicted architectures are merely exemplary, and that in fact many other architectures can be implemented which achieve the same functionality. In a conceptual sense, any arrangement of components to achieve the same functionality is effectively “associated” such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as “associated with” each other such that the desired functionality is achieved, irrespective of architectures or intermedial components. Likewise, any two components so associated can also be viewed as being “operably connected,” or “operably coupled,” to each other to achieve the desired functionality, and any two components capable of being so associated can also be viewed as being “operably couplable” to each other to achieve the desired functionality. Specific examples of operably couplable include but are not limited to physically mateable and/or physically interacting components and/or wirelessly interactable and/or wirelessly interacting components and/or logically interacting and/or logically interactable components.
- With respect to the use of substantially any plural and/or singular terms herein, those having skill in the art can translate from the plural to the singular and/or from the singular to the plural as is appropriate to the context and/or application. The various singular/plural permutations may be expressly set forth herein for sake of clarity.
- It will be understood by those within the art that, in general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as “open” terms (e.g., the term “including” should be interpreted as “including but not limited to,” the term “having” should be interpreted as “having at least,” the term “includes” should be interpreted as “includes but is not limited to,” etc.). It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases “at least one” and “one or more” to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim recitation to inventions containing only one such recitation, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an” (e.g., “a” and/or “an” should typically be interpreted to mean “at least one” or “one or more”); the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should typically be interpreted to mean at least the recited number (e.g., the bare recitation of “two recitations,” without other modifiers, typically means at least two recitations, or two or more recitations). Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc.” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, and C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). In those instances where a convention analogous to “at least one of A, B, or C, etc.” is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, or C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). It will be further understood by those within the art that virtually any disjunctive word and/or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase “A or B” will be understood to include the possibilities of “A” or “B” or “A and B.”
- The foregoing description of illustrative implementations has been presented for purposes of illustration and of description. It is not intended to be exhaustive or limiting with respect to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the disclosed implementations. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents.
Claims (20)
1. A system comprising:
a replica server comprising one or more processors configured to:
receive a start replication message from a source system to replicate data of a source volume to a replicated volume on the replica server, wherein the replicated volume comprises a copy of data of the source volume, and wherein the source system forwards input/output (I/O) requests to the replica server after the start replication message is sent;
initiate a data structure associated with units of data of the replicated volume;
receive, from the source system, a write request comprising write data associated a unit of data of the replicated volume, wherein the source system wrote the write data to the source volume based upon the write request;
write the write data to the replicated volume;
update the data structure to indicate the write data has been written after the receipt of the start replication message;
receive source metadata associated with the source volume, wherein the metadata comprises an ordered list of block identifiers for data blocks of the source volume, and wherein each block identifier is used to access a data block;
compare the source metadata with prior metadata associated with a prior point-in-time image of the source volume to determine blocks of data that have changed since the prior point-in-time image of the source volume;
determine a first block of the blocks of data should not be retrieved based upon the data structure;
determine a second block of the blocks of data should be retrieved based upon the data structure;
retrieve the second block from the source system; and
write the second block to the replicated volume.
2. The system of claim 1 , wherein the one or more processors are further configured to send a replication complete message to the source system, wherein the source system no longer forwards I/O to the replica server based upon receipt of the replication complete message.
3. The system of claim 1 , wherein the one or more processors are further configured to:
request verification data from the source system;
receive the verification data from the source system; and
compare the received verification data with corresponding verification data of the replica volume to determine the replication was successful.
4. The system of claim 1 , wherein a unit of data is a sub-block, wherein a block consists of a plurality of sub-blocks, and wherein to write the second block the one or more processors are further configured to:
determine which sub-blocks have been updated since the receipt of the start replication message based upon the data structure; and
write sub-blocks of the second block based upon on the sub-block not being updated since the receipt of the start replication message.
5. The system of claim 1 , further comprising a data server, wherein the data server comprising one or more processors configured to:
request quality of service parameters for the replicated volume;
request quality of service parameters for the source volume;
determine if the replication of the source volume to the replicated volume will succeed based upon the quality of service parameters of the replicated volume and the source volume.
6. The system of claim 5 , wherein the data server comprising one or more processors are further configured to determine a ratio of the quality of service parameters for the replicated volume to the quality of service parameters for the source volume, wherein the replication of the source volume will succeed if the ratio is greater than one.
7. The system of claim 1 , wherein the data blocks of the replicated volume are randomly and evenly distributed across a cluster containing the replicated volume.
8. A method comprising:
receiving, at a replica server, a start replication message from a source system to replicate data of a source volume to a replicated volume on the replica server, wherein the replicated volume comprises a copy of data of the source volume, and wherein the source system forwards input/output (I/O) requests to the replica server after the start replication message is sent;
initiating a data structure associated with units of data of the replicated volume;
receiving, from the source system, a write request comprising write data associated a unit of data of the replicated volume, wherein the source system wrote the write data to the source volume based upon the write request;
writing the write data to the replicated volume;
updating the data structure to indicate the write data has been written after the receipt of the start replication message;
receiving source metadata associated with the source volume, wherein the metadata comprises an ordered list of block identifiers for data blocks of the source volume, and wherein each block identifier is used to access a data block;
comparing the source metadata with prior metadata associated with a prior point-in-time image of the source volume to determine blocks of data that have changed since the prior point-in-time image of the source volume;
determining, using a processor, a first block of the blocks of data should not be retrieved based upon the data structure;
determining a second block of the blocks of data should be retrieved based upon the data structure;
retrieving the second block from the source system; and
writing the second block to the replicated volume.
9. The method of claim 8 , further comprising sending a replication complete message to the source system, wherein the source system no longer forwards I/O to the replica server based upon receipt of the replication complete message.
10. The method of claim 8 , further comprising:
requesting verification data from the source system;
receiving the verification data from the source system; and
comparing the received verification data with corresponding verification data of the replica volume to determine the replication was successful.
11. The method of claim 8 , wherein a unit of data is a sub-block, wherein a block consists of a plurality of sub-blocks, and wherein the method further comprises:
determining which sub-blocks have been updated since the receipt of the start replication message based upon the data structure; and
writing sub-blocks of the second block based upon on the sub-block not being updated since the receipt of the start replication message.
12. The method of claim 8 , further comprising
requesting quality of service parameters for the replicated volume;
requesting quality of service parameters for the source volume;
determining if the replication of the source volume to the replicated volume will succeed based upon the quality of service parameters of the replicated volume and the source volume.
13. The method of claim 12 , further comprising determining a ratio of the quality of service parameters for the replicated volume to the quality of service parameters for the source volume, wherein the replication of the source volume will succeed if the ratio is greater than one.
14. The method of claim 8 , wherein the data blocks of the replicated volume are randomly and evenly distributed across a cluster containing the replicated volume.
15. A non-transitory computer-readable medium having instructions stored thereon, the instructions comprising:
instructions to receive a start replication message from a source system to replicate data of a source volume to a replicated volume on the replica server, wherein the replicated volume comprises a copy of data of the source volume, and wherein the source system forwards input/output (I/O) requests to the replica server after the start replication message is sent;
instructions to initiate a data structure associated with units of data of the replicated volume;
instructions to receive, from the source system, a write request comprising write data associated a unit of data of the replicated volume, wherein the source system wrote the write data to the source volume based upon the write request;
instructions to write the write data to the replicated volume;
instructions to update the data structure to indicate the write data has been written after the receipt of the start replication message;
instructions to receive source metadata associated with the source volume, wherein the metadata comprises an ordered list of block identifiers for data blocks of the source volume, and wherein each block identifier is used to access a data block;
instructions to compare the source metadata with prior metadata associated with a prior point-in-time image of the source volume to determine blocks of data that have changed since the prior point-in-time image of the source volume;
instructions to determine a first block of the blocks of data should not be retrieved based upon the data structure;
instructions to determine a second block of the blocks of data should be retrieved based upon the data structure;
instructions to retrieve the second block from the source system; and
instructions to write the second block to the replicated volume.
16. The non-transitory computer-readable medium of claim 15 , wherein the instructions further comprise instructions to send a replication complete message to the source system, wherein the source system no longer forwards I/O to the replica server based upon receipt of the replication complete message.
17. The non-transitory computer-readable medium of claim 15 , wherein the instructions further comprise instructions to:
instructions to request verification data from the source system;
instructions to receive the verification data from the source system; and
instructions to compare the received verification data with corresponding verification data of the replica volume to determine the replication was successful.
18. The non-transitory computer-readable medium of claim 15 , wherein a unit of data is a sub-block, wherein a block consists of a plurality of sub-blocks, and wherein the instructions to write the second block comprise:
instructions to determine which sub-blocks have been updated since the receipt of the start replication message based upon the data structure; and
instructions to write sub-blocks of the second block based upon on the sub-block not being updated since the receipt of the start replication message.
19. The non-transitory computer-readable medium of claim 15 , wherein the instructions further comprise instructions to:
instructions to request quality of service parameters for the replicated volume;
instructions to request quality of service parameters for the source volume;
instructions to determine if the replication of the source volume to the replicated volume will succeed based upon the quality of service parameters of the replicated volume and the source volume.
20. The non-transitory computer-readable medium of claim 15 , wherein the data blocks of the replicated volume are randomly and evenly distributed across a cluster containing the replicated volume.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/186,847 US20150244795A1 (en) | 2014-02-21 | 2014-02-21 | Data syncing in a distributed system |
PCT/US2015/016625 WO2015127083A2 (en) | 2014-02-21 | 2015-02-19 | Data syncing in a distributed system |
US14/684,929 US10628443B2 (en) | 2014-02-21 | 2015-04-13 | Data syncing in a distributed system |
US16/853,660 US11386120B2 (en) | 2014-02-21 | 2020-04-20 | Data syncing in a distributed system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/186,847 US20150244795A1 (en) | 2014-02-21 | 2014-02-21 | Data syncing in a distributed system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/684,929 Continuation US10628443B2 (en) | 2014-02-21 | 2015-04-13 | Data syncing in a distributed system |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150244795A1 true US20150244795A1 (en) | 2015-08-27 |
Family
ID=53879233
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/186,847 Abandoned US20150244795A1 (en) | 2014-02-21 | 2014-02-21 | Data syncing in a distributed system |
US14/684,929 Active 2035-09-11 US10628443B2 (en) | 2014-02-21 | 2015-04-13 | Data syncing in a distributed system |
US16/853,660 Active 2034-04-14 US11386120B2 (en) | 2014-02-21 | 2020-04-20 | Data syncing in a distributed system |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/684,929 Active 2035-09-11 US10628443B2 (en) | 2014-02-21 | 2015-04-13 | Data syncing in a distributed system |
US16/853,660 Active 2034-04-14 US11386120B2 (en) | 2014-02-21 | 2020-04-20 | Data syncing in a distributed system |
Country Status (2)
Country | Link |
---|---|
US (3) | US20150244795A1 (en) |
WO (1) | WO2015127083A2 (en) |
Cited By (92)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160110261A1 (en) * | 2013-05-07 | 2016-04-21 | Axcient, Inc. | Cloud storage using merkle trees |
US20160154704A1 (en) * | 2014-11-27 | 2016-06-02 | Institute For Information Industry | Backup system and backup method thereof |
US20170060432A1 (en) * | 2015-08-28 | 2017-03-02 | Vmware, Inc. | Scalable storage space allocation in distributed storage systems |
US9613046B1 (en) * | 2015-12-14 | 2017-04-04 | Netapp, Inc. | Parallel optimized remote synchronization of active block storage |
US9671960B2 (en) | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
US20170177445A1 (en) * | 2015-12-18 | 2017-06-22 | Dropbox, Inc. | Network folder resynchronization |
US9710317B2 (en) | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
US9720601B2 (en) | 2015-02-11 | 2017-08-01 | Netapp, Inc. | Load balancing technique for a storage array |
US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation workflow |
US9762460B2 (en) | 2015-03-24 | 2017-09-12 | Netapp, Inc. | Providing continuous context for operational information of a storage system |
US20170295239A1 (en) * | 2014-12-27 | 2017-10-12 | Huawei Technologies Co.,Ltd. | Data processing method, apparatus, and system |
US20170300424A1 (en) * | 2014-10-01 | 2017-10-19 | Cacheio Llc | Efficient metadata in a storage system |
US9798728B2 (en) | 2014-07-24 | 2017-10-24 | Netapp, Inc. | System performing data deduplication using a dense tree data structure |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US9923762B1 (en) * | 2013-08-13 | 2018-03-20 | Ca, Inc. | Upgrading an engine when a scenario is running |
US10127243B2 (en) * | 2015-09-22 | 2018-11-13 | International Business Machines Corporation | Fast recovery using self-describing replica files in a distributed storage system |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
US10324903B1 (en) * | 2017-12-28 | 2019-06-18 | Dropbox, Inc. | Content management client synchronization service |
US10331362B1 (en) * | 2016-09-30 | 2019-06-25 | EMC IP Holding Company LLC | Adaptive replication for segmentation anchoring type |
US20190197562A1 (en) * | 2017-12-27 | 2019-06-27 | Irene Woerner | System and method for product authentication |
CN110730228A (en) * | 2019-10-10 | 2020-01-24 | 深圳市网心科技有限公司 | Data storage method, electronic device, system and medium |
US20200073962A1 (en) * | 2018-08-29 | 2020-03-05 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US10776355B1 (en) | 2016-09-26 | 2020-09-15 | Splunk Inc. | Managing, storing, and caching query results and partial query results for combination with additional query results |
US10826795B2 (en) | 2014-05-05 | 2020-11-03 | Nutanix, Inc. | Architecture for implementing service level management for a virtualization environment |
US10911328B2 (en) | 2011-12-27 | 2021-02-02 | Netapp, Inc. | Quality of service policy based load adaption |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
US10949309B2 (en) * | 2015-12-28 | 2021-03-16 | Netapp Inc. | Snapshot creation with synchronous replication |
US10951488B2 (en) | 2011-12-27 | 2021-03-16 | Netapp, Inc. | Rule-based performance class access management for storage cluster performance guarantees |
US10949387B1 (en) * | 2016-09-29 | 2021-03-16 | Triad National Security, Llc | Scalable filesystem enumeration and metadata operations |
US10951465B1 (en) * | 2016-09-29 | 2021-03-16 | Emc Ïp Holding Company Llc | Distributed file system analytics |
US10956415B2 (en) | 2016-09-26 | 2021-03-23 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
US10977260B2 (en) * | 2016-09-26 | 2021-04-13 | Splunk Inc. | Task distribution in an execution node of a distributed execution environment |
CN112685378A (en) * | 2019-10-17 | 2021-04-20 | 伊姆西Ip控股有限责任公司 | Method, apparatus and computer-readable storage medium for garbage collection |
US10984044B1 (en) | 2016-09-26 | 2021-04-20 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system |
US10997098B2 (en) | 2016-09-20 | 2021-05-04 | Netapp, Inc. | Quality of service policy sets |
US11003714B1 (en) | 2016-09-26 | 2021-05-11 | Splunk Inc. | Search node and bucket identification using a search node catalog and a data store catalog |
US11010351B1 (en) * | 2018-10-31 | 2021-05-18 | EMC IP Holding Company LLC | File system replication between software defined network attached storage processes using file system snapshots |
US11010435B2 (en) | 2016-09-26 | 2021-05-18 | Splunk Inc. | Search service for a data fabric system |
US11023463B2 (en) | 2016-09-26 | 2021-06-01 | Splunk Inc. | Converting and modifying a subquery for an external data system |
US11106645B1 (en) * | 2015-09-29 | 2021-08-31 | EMC IP Holding Company LLC | Multi point in time object store |
US11106734B1 (en) | 2016-09-26 | 2021-08-31 | Splunk Inc. | Query execution using containerized state-free search nodes in a containerized scalable environment |
US11126632B2 (en) | 2016-09-26 | 2021-09-21 | Splunk Inc. | Subquery generation based on search configuration data from an external data system |
US11144401B2 (en) * | 2018-11-16 | 2021-10-12 | Vmware, Inc. | Component aware incremental backup, restore, and reconciliation solution |
US11151137B2 (en) | 2017-09-25 | 2021-10-19 | Splunk Inc. | Multi-partition operation in combination operations |
US11163758B2 (en) | 2016-09-26 | 2021-11-02 | Splunk Inc. | External dataset capability compensation |
US11196542B2 (en) | 2018-08-29 | 2021-12-07 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US11216204B2 (en) * | 2019-11-19 | 2022-01-04 | Netapp, Inc. | Degraded redundant metadata, DRuM, technique |
US11222066B1 (en) | 2016-09-26 | 2022-01-11 | Splunk Inc. | Processing data using containerized state-free indexing nodes in a containerized scalable environment |
US11226985B2 (en) * | 2015-12-15 | 2022-01-18 | Microsoft Technology Licensing, Llc | Replication of structured data records among partitioned data storage spaces |
US11232100B2 (en) | 2016-09-26 | 2022-01-25 | Splunk Inc. | Resource allocation for multiple datasets |
US11243963B2 (en) | 2016-09-26 | 2022-02-08 | Splunk Inc. | Distributing partial results to worker nodes from an external data system |
US20220043799A1 (en) * | 2020-08-07 | 2022-02-10 | EMC IP Holding Company LLC | Method, device, and computer program product for metadata comparison |
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 |
US11269939B1 (en) | 2016-09-26 | 2022-03-08 | Splunk Inc. | Iterative message-based data processing including streaming analytics |
US11281706B2 (en) | 2016-09-26 | 2022-03-22 | Splunk Inc. | Multi-layer partition allocation for query execution |
US11294941B1 (en) | 2016-09-26 | 2022-04-05 | Splunk Inc. | Message-based data ingestion to a data intake and query system |
US11314753B2 (en) | 2016-09-26 | 2022-04-26 | Splunk Inc. | Execution of a query received from a data intake and query 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 |
US11334543B1 (en) | 2018-04-30 | 2022-05-17 | Splunk Inc. | Scalable bucket merging for a data intake and query system |
US11334439B2 (en) | 2018-08-29 | 2022-05-17 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US11379119B2 (en) | 2010-03-05 | 2022-07-05 | Netapp, Inc. | Writing data in a distributed data storage system |
US11386120B2 (en) | 2014-02-21 | 2022-07-12 | Netapp, Inc. | Data syncing in a distributed system |
US11442935B2 (en) | 2016-09-26 | 2022-09-13 | Splunk Inc. | Determining a record generation estimate of a processing task |
US11461334B2 (en) | 2016-09-26 | 2022-10-04 | Splunk Inc. | Data conditioning for dataset destination |
US11494380B2 (en) | 2019-10-18 | 2022-11-08 | Splunk Inc. | Management of distributed computing framework components in a data fabric service system |
US11500875B2 (en) | 2017-09-25 | 2022-11-15 | Splunk Inc. | Multi-partitioning for combination operations |
US20220391359A1 (en) * | 2021-06-07 | 2022-12-08 | Netapp, Inc. | Distributed File System that Provides Scalability and Resiliency |
US11550847B1 (en) | 2016-09-26 | 2023-01-10 | Splunk Inc. | Hashing bucket identifiers to identify search nodes for efficient query execution |
US11562023B1 (en) | 2016-09-26 | 2023-01-24 | Splunk Inc. | Merging buckets in a data intake and query system |
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 |
US11579978B2 (en) | 2018-02-14 | 2023-02-14 | Rubrik, Inc. | Fileset partitioning for data storage and management |
US11580107B2 (en) | 2016-09-26 | 2023-02-14 | Splunk Inc. | Bucket data distribution for exporting data to worker nodes |
US11586692B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Streaming data processing |
US11586627B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Partitioning and reducing records at ingest of a worker node |
US11593377B2 (en) | 2016-09-26 | 2023-02-28 | Splunk Inc. | Assigning processing tasks in a data intake and query system |
US11599541B2 (en) | 2016-09-26 | 2023-03-07 | Splunk Inc. | Determining records generated by a processing task of a query |
US11604795B2 (en) | 2016-09-26 | 2023-03-14 | Splunk Inc. | Distributing partial results from an external data system between worker nodes |
US11615087B2 (en) | 2019-04-29 | 2023-03-28 | Splunk Inc. | Search time estimate in a data intake and query system |
US11615104B2 (en) | 2016-09-26 | 2023-03-28 | Splunk Inc. | Subquery generation based on a data ingest estimate of an external data system |
US11620191B2 (en) * | 2018-10-01 | 2023-04-04 | Rubrik, Inc. | Fileset passthrough using data management and storage node |
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 |
US11663227B2 (en) | 2016-09-26 | 2023-05-30 | Splunk Inc. | Generating a subquery for a distinct data intake and query system |
US11669428B2 (en) | 2020-05-19 | 2023-06-06 | Paypal, Inc. | Detection of matching datasets using encode values |
US11704313B1 (en) | 2020-10-19 | 2023-07-18 | Splunk Inc. | Parallel branch operation using intermediary nodes |
US11715051B1 (en) | 2019-04-30 | 2023-08-01 | Splunk Inc. | Service provider instance recommendations using machine-learned classifications and reconciliation |
US11797565B2 (en) * | 2019-12-30 | 2023-10-24 | Paypal, Inc. | Data validation using encode values |
US11835990B2 (en) | 2021-11-16 | 2023-12-05 | Netapp, Inc. | Use of cluster-level redundancy within a cluster of a distributed storage management system to address node-level errors |
US11860940B1 (en) | 2016-09-26 | 2024-01-02 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets |
US11868656B2 (en) | 2021-06-07 | 2024-01-09 | Netapp, Inc. | Distributed file system with disaggregated data management and storage management layers |
US11874691B1 (en) | 2016-09-26 | 2024-01-16 | Splunk Inc. | Managing efficient query execution including mapping of buckets to search nodes |
US11921672B2 (en) | 2017-07-31 | 2024-03-05 | Splunk Inc. | Query execution at a remote heterogeneous data store of a data fabric service |
US11922222B1 (en) | 2020-01-30 | 2024-03-05 | Splunk Inc. | Generating a modified component for a data intake and query system using an isolated execution environment image |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10747753B2 (en) | 2015-08-28 | 2020-08-18 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
US9529923B1 (en) | 2015-08-28 | 2016-12-27 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
US9390154B1 (en) | 2015-08-28 | 2016-07-12 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
US11386067B2 (en) | 2015-12-15 | 2022-07-12 | Red Hat, Inc. | Data integrity checking in a distributed filesystem using object versioning |
CN105740048B (en) * | 2016-01-26 | 2019-03-08 | 华为技术有限公司 | A kind of mirror image management method, apparatus and system |
US10176216B2 (en) | 2016-02-01 | 2019-01-08 | International Business Machines Corporation | Verifying data consistency |
WO2017156184A1 (en) | 2016-03-09 | 2017-09-14 | Alibaba Group Holding Limited | Cross-regional data transmission |
SG11201903278YA (en) | 2016-11-10 | 2019-05-30 | Swirlds Inc | Methods and apparatus for a distributed database including anonymous entries |
RU2754189C2 (en) | 2016-12-19 | 2021-08-30 | Свирлдз, Инк. | Method and device for distributed database that allows deleting events |
US10521344B1 (en) * | 2017-03-10 | 2019-12-31 | Pure Storage, Inc. | Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems |
US10282115B2 (en) | 2017-04-13 | 2019-05-07 | International Business Machines Corporation | Object synchronization in a clustered system |
KR102348418B1 (en) | 2017-07-11 | 2022-01-07 | 스월즈, 인크. | Methods and apparatus for efficiently implementing a distributed database within a network |
RU2740865C1 (en) | 2017-11-01 | 2021-01-21 | Свирлдз, Инк. | Methods and device for efficient implementation of database supporting fast copying |
US11120133B2 (en) * | 2017-11-07 | 2021-09-14 | Spinbackup Inc. | Ransomware protection for cloud storage systems |
US10671370B2 (en) * | 2018-05-30 | 2020-06-02 | Red Hat, Inc. | Distributing file system states |
US10922312B2 (en) * | 2018-09-24 | 2021-02-16 | International Business Machines Corporation | Optimization of data processing job execution using hash trees |
KR20200119601A (en) * | 2019-04-10 | 2020-10-20 | 현대모비스 주식회사 | Apparatus and method for secure update of a binary data in vehicle |
CN113711202A (en) * | 2019-05-22 | 2021-11-26 | 斯沃尔德斯股份有限公司 | Method and apparatus for implementing state attestation and ledger identifiers in a distributed database |
US11366879B2 (en) * | 2019-07-08 | 2022-06-21 | Microsoft Technology Licensing, Llc | Server-side audio rendering licensing |
CN110442430B (en) * | 2019-08-06 | 2021-11-19 | 上海浦东发展银行股份有限公司信用卡中心 | Publishing method based on distributed storage container cloud application |
CN112905691A (en) * | 2019-11-19 | 2021-06-04 | 中盈优创资讯科技有限公司 | Information synchronization method and device |
US11386122B2 (en) * | 2019-12-13 | 2022-07-12 | EMC IP Holding Company LLC | Self healing fast sync any point in time replication systems using augmented Merkle trees |
US11928085B2 (en) | 2019-12-13 | 2024-03-12 | EMC IP Holding Company LLC | Using merkle trees in any point in time replication |
US11461183B2 (en) * | 2020-01-08 | 2022-10-04 | EMC IP Holding Company LLC | Trivial snapshots |
US11461363B2 (en) * | 2020-03-31 | 2022-10-04 | Sap Se | Memory allocation and deallocation mechanism to reduce fragmentation and enhance defragmentation performance |
US20230125637A1 (en) * | 2021-10-27 | 2023-04-27 | Microsoft Technology Licensing, Llc | Enhanced co-authoring and file syncing |
US20230185670A1 (en) * | 2021-12-13 | 2023-06-15 | Scality, S.A. | Method and apparatus for monitoring storage system replication |
Citations (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6779003B1 (en) * | 1999-12-16 | 2004-08-17 | Livevault Corporation | Systems and methods for backing up data files |
US20050027817A1 (en) * | 2003-07-31 | 2005-02-03 | Microsoft Corporation | Replication protocol for data stores |
US7188149B2 (en) * | 2001-03-07 | 2007-03-06 | Hitachi, Ltd. | Storage operating data control system |
US20070083482A1 (en) * | 2005-10-08 | 2007-04-12 | Unmesh Rathi | Multiple quality of service file system |
US20070088702A1 (en) * | 2005-10-03 | 2007-04-19 | Fridella Stephen A | Intelligent network client for multi-protocol namespace redirection |
US20070186127A1 (en) * | 2006-02-03 | 2007-08-09 | Emc Corporation | Verification of computer backup data |
US20070186066A1 (en) * | 2006-02-03 | 2007-08-09 | Emc Corporation | Fast verification of computer backup data |
US20070208918A1 (en) * | 2006-03-01 | 2007-09-06 | Kenneth Harbin | Method and apparatus for providing virtual machine backup |
US7395283B1 (en) * | 2003-11-10 | 2008-07-01 | Emc Corporation | Method and apparatus for making independent data copies in a data processing system |
US7543100B2 (en) * | 2001-06-18 | 2009-06-02 | 3Par, Inc. | Node controller for a data storage system |
US20090157870A1 (en) * | 2005-09-20 | 2009-06-18 | Nec Corporation | Resource-amount calculation system, and method and program thereof |
US20090271412A1 (en) * | 2008-04-29 | 2009-10-29 | Maxiscale, Inc. | Peer-to-Peer Redundant File Server System and Methods |
US7805583B1 (en) * | 2003-04-23 | 2010-09-28 | Emc Corporation | Method and apparatus for migrating data in a clustered computer system environment |
US7817562B1 (en) * | 2006-09-29 | 2010-10-19 | Emc Corporation | Methods and systems for back end characterization using I/O sampling |
US7962709B2 (en) * | 2005-12-19 | 2011-06-14 | Commvault Systems, Inc. | Network redirector systems and methods for performing data replication |
US8055745B2 (en) * | 2004-06-01 | 2011-11-08 | Inmage Systems, Inc. | Methods and apparatus for accessing data from a primary data storage system for secondary storage |
US20120003940A1 (en) * | 2009-03-25 | 2012-01-05 | Nec Corporation | Communication device, recording medium for control program of communication device, communication system and communication method |
US8122213B2 (en) * | 2009-05-05 | 2012-02-21 | Dell Products L.P. | System and method for migration of data |
US20120317353A1 (en) * | 2011-06-13 | 2012-12-13 | XtremlO Ltd. | Replication techniques with content addressable storage |
US20130007097A1 (en) * | 2011-06-30 | 2013-01-03 | Hitachi, Ltd. | Server system and method for controlling information system |
US20130073519A1 (en) * | 2011-09-20 | 2013-03-21 | Netapp, Inc. | Handling data extent size asymmetry during logical replication in a storage system |
US20130138616A1 (en) * | 2011-11-29 | 2013-05-30 | International Business Machines Corporation | Synchronizing updates across cluster filesystems |
US20130185719A1 (en) * | 2012-01-17 | 2013-07-18 | Microsoft Corporation | Throttling guest write ios based on destination throughput |
US20130232261A1 (en) * | 2011-12-27 | 2013-09-05 | Solidfire, Inc. | Quality of service policy sets |
US8555019B2 (en) * | 2010-09-08 | 2013-10-08 | International Business Machines Corporation | Using a migration cache to cache tracks during migration |
US20140006353A1 (en) * | 2012-06-28 | 2014-01-02 | International Business Machines Corporation | Recording backup information for backed-up data items in a data item list |
US8671265B2 (en) * | 2010-03-05 | 2014-03-11 | Solidfire, Inc. | Distributed data storage system providing de-duplication of data using block identifiers |
US20140108350A1 (en) * | 2011-09-23 | 2014-04-17 | Hybrid Logic Ltd | System for live-migration and automated recovery of applications in a distributed system |
US20140310231A1 (en) * | 2013-04-16 | 2014-10-16 | Cognizant Technology Solutions India Pvt. Ltd. | System and method for automating data warehousing processes |
US20140344222A1 (en) * | 2013-05-16 | 2014-11-20 | Oracle International Corporation | Method and apparatus for replication size estimation and progress monitoring |
US20150066852A1 (en) * | 2013-08-27 | 2015-03-05 | Netapp, Inc. | Detecting out-of-band (oob) changes when replicating a source file system using an in-line system |
US9047211B2 (en) * | 2013-03-15 | 2015-06-02 | SanDisk Technologies, Inc. | Managing data reliability |
US9092142B2 (en) * | 2012-06-26 | 2015-07-28 | Hitachi, Ltd. | Storage system and method of controlling the same |
US9411620B2 (en) * | 2010-11-29 | 2016-08-09 | Huawei Technologies Co., Ltd. | Virtual storage migration method, virtual storage migration system and virtual machine monitor |
Family Cites Families (744)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01175671A (en) | 1987-12-29 | 1989-07-12 | Nippon Steel Corp | Method for converting drawing data |
US5375216A (en) | 1992-02-28 | 1994-12-20 | Motorola, Inc. | Apparatus and method for optimizing performance of a cache memory in a data processing system |
US5459857A (en) | 1992-05-15 | 1995-10-17 | Storage Technology Corporation | Fault tolerant disk array data storage subsystem |
JP3188071B2 (en) | 1993-10-14 | 2001-07-16 | 富士通株式会社 | Disk cache device |
US5603001A (en) | 1994-05-09 | 1997-02-11 | Kabushiki Kaisha Toshiba | Semiconductor disk system having a plurality of flash memories |
JP2507235B2 (en) | 1994-06-24 | 1996-06-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Client server computer system, its client computer, server computer, and object updating method |
US5542089A (en) | 1994-07-26 | 1996-07-30 | International Business Machines Corporation | Method and apparatus for estimating the number of occurrences of frequent values in a data set |
US5864698A (en) | 1994-08-24 | 1999-01-26 | Packard Bell Nec | Disk based bios |
US5511190A (en) | 1995-01-20 | 1996-04-23 | Tandem Computers, Inc. | Hash-based database grouping system and method |
US5611073A (en) | 1995-02-09 | 1997-03-11 | Delco Electronics Corp. | Method of ensuring parameter coherency in a multi-processor system |
US5666512A (en) | 1995-02-10 | 1997-09-09 | Hewlett-Packard Company | Disk array having hot spare resources and methods for using hot spare resources to store user data |
US5751993A (en) | 1995-09-05 | 1998-05-12 | Emc Corporation | Cache management system |
US5592432A (en) | 1995-09-05 | 1997-01-07 | Emc Corp | Cache management system using time stamping for replacement queue |
US5860082A (en) | 1996-03-28 | 1999-01-12 | Datalight, Inc. | Method and apparatus for allocating storage in a flash memory |
US5974421A (en) | 1996-12-23 | 1999-10-26 | Microsoft Corporation | Cache-efficient object loader |
US5991862A (en) | 1996-12-30 | 1999-11-23 | Sun Microsystems, Inc. | Modified indirect addressing for file system |
US6257756B1 (en) | 1997-07-16 | 2001-07-10 | Motorola, Inc. | Apparatus and method for implementing viterbi butterflies |
US6067541A (en) | 1997-09-17 | 2000-05-23 | Microsoft Corporation | Monitoring document changes in a file system of documents with the document change information stored in a persistent log |
US5937425A (en) | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
US5890161A (en) | 1997-10-28 | 1999-03-30 | Microsoft Corporation | Automatic transaction processing of component-based server applications |
JP4033310B2 (en) | 1997-12-16 | 2008-01-16 | 富士通株式会社 | Auxiliary storage device for information equipment and information equipment |
US6493811B1 (en) | 1998-01-26 | 2002-12-10 | Computer Associated Think, Inc. | Intelligent controller accessed through addressable virtual space |
US6047283A (en) | 1998-02-26 | 2000-04-04 | Sap Aktiengesellschaft | Fast string searching and indexing using a search tree having a plurality of linked nodes |
US6385699B1 (en) | 1998-04-10 | 2002-05-07 | International Business Machines Corporation | Managing an object store based on object replacement penalties and reference probabilities |
US6219800B1 (en) | 1998-06-19 | 2001-04-17 | At&T Corp. | Fault-tolerant storage system |
US6560196B1 (en) | 1998-11-19 | 2003-05-06 | Cisco Technology, Inc. | Method and apparatus for controlling the transmission of cells across a network |
US8266266B2 (en) | 1998-12-08 | 2012-09-11 | Nomadix, Inc. | Systems and methods for providing dynamic network authorization, authentication and accounting |
US7194554B1 (en) | 1998-12-08 | 2007-03-20 | Nomadix, Inc. | Systems and methods for providing dynamic network authorization authentication and accounting |
US6347337B1 (en) | 1999-01-08 | 2002-02-12 | Intel Corporation | Credit based flow control scheme over virtual interface architecture for system area networks |
US6795890B1 (en) | 1999-02-19 | 2004-09-21 | Mitsubishi Denki Kabushiki Kaisha | Data storage method, and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory |
US6397307B2 (en) | 1999-02-23 | 2002-05-28 | Legato Systems, Inc. | Method and system for mirroring and archiving mass storage |
US7210001B2 (en) | 1999-03-03 | 2007-04-24 | Adaptec, Inc. | Methods of and apparatus for efficient buffer cache utilization |
US6081900A (en) | 1999-03-16 | 2000-06-27 | Novell, Inc. | Secure intranet access |
US6275898B1 (en) | 1999-05-13 | 2001-08-14 | Lsi Logic Corporation | Methods and structure for RAID level migration within a logical unit |
US6876668B1 (en) | 1999-05-24 | 2005-04-05 | Cisco Technology, Inc. | Apparatus and methods for dynamic bandwidth allocation |
US6553384B1 (en) | 1999-06-14 | 2003-04-22 | International Business Machines Corporation | Transactional name service |
US6363385B1 (en) | 1999-06-29 | 2002-03-26 | Emc Corporation | Method and apparatus for making independent data copies in a data processing system |
AU6104800A (en) | 1999-07-16 | 2001-02-05 | Intertrust Technologies Corp. | Trusted storage systems and methods |
US6785704B1 (en) | 1999-12-20 | 2004-08-31 | Fastforward Networks | Content distribution system for operation over an internetwork including content peering arrangements |
US6721789B1 (en) | 1999-10-06 | 2004-04-13 | Sun Microsystems, Inc. | Scheduling storage accesses for rate-guaranteed and non-rate-guaranteed requests |
US6578158B1 (en) | 1999-10-28 | 2003-06-10 | International Business Machines Corporation | Method and apparatus for providing a raid controller having transparent failover and failback |
US6434662B1 (en) | 1999-11-02 | 2002-08-13 | Juniper Networks, Inc. | System and method for searching an associative memory utilizing first and second hash functions |
US6604155B1 (en) | 1999-11-09 | 2003-08-05 | Sun Microsystems, Inc. | Storage architecture employing a transfer node to achieve scalable performance |
US6728843B1 (en) | 1999-11-30 | 2004-04-27 | Hewlett-Packard Development Company L.P. | System and method for tracking and processing parallel coherent memory accesses |
US6609176B1 (en) | 1999-12-27 | 2003-08-19 | Kabushiki Kaisha Toshiba | Disk control system and data rearrangement method |
US6434555B1 (en) | 2000-01-24 | 2002-08-13 | Hewlett Packard Company | Method for transaction recovery in three-tier applications |
US6741698B1 (en) | 2000-01-27 | 2004-05-25 | Avaya Technology Corp. | Call management system using dynamic threshold adjustment |
US6526478B1 (en) | 2000-02-02 | 2003-02-25 | Lsi Logic Corporation | Raid LUN creation using proportional disk mapping |
US6681389B1 (en) | 2000-02-28 | 2004-01-20 | Lucent Technologies Inc. | Method for providing scaleable restart and backout of software upgrades for clustered computing |
WO2001082678A2 (en) | 2000-05-02 | 2001-11-08 | Sun Microsystems, Inc. | Cluster membership monitor |
US7219260B1 (en) | 2000-05-26 | 2007-05-15 | Emc Corporation | Fault tolerant system shared system resource with state machine logging |
US6990606B2 (en) | 2000-07-28 | 2006-01-24 | International Business Machines Corporation | Cascading failover of a data management application for shared disk file systems in loosely coupled node clusters |
US6640312B1 (en) | 2000-08-01 | 2003-10-28 | National Instruments Corporation | System and method for handling device retry requests on a communication medium |
US6928521B1 (en) | 2000-08-01 | 2005-08-09 | International Business Machines Corporation | Method, system, and data structures for using metadata in updating data in a storage device |
US6886020B1 (en) | 2000-08-17 | 2005-04-26 | Emc Corporation | Method and apparatus for storage system metrics management and archive |
US6567817B1 (en) | 2000-09-08 | 2003-05-20 | Hewlett-Packard Development Company, L.P. | Cache management system using hashing |
JP2005530242A (en) | 2000-09-11 | 2005-10-06 | アガミ システムズ, インコーポレイテッド | Storage system having partitioned movable metadata |
GB0025226D0 (en) | 2000-10-14 | 2000-11-29 | Ibm | Data storage system and method of storing data |
KR100365725B1 (en) | 2000-12-27 | 2002-12-26 | 한국전자통신연구원 | Ranked Cleaning Policy and Error Recovery Method for File Systems Using Flash Memory |
US6950901B2 (en) | 2001-01-05 | 2005-09-27 | International Business Machines Corporation | Method and apparatus for supporting parity protection in a RAID clustered environment |
US6799258B1 (en) * | 2001-01-10 | 2004-09-28 | Datacore Software Corporation | Methods and apparatus for point-in-time volumes |
US6862692B2 (en) | 2001-01-29 | 2005-03-01 | Adaptec, Inc. | Dynamic redistribution of parity groups |
US6990667B2 (en) | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Server-independent object positioning for load balancing drives and servers |
WO2002065249A2 (en) | 2001-02-13 | 2002-08-22 | Candera, Inc. | Storage virtualization and storage management to provide higher level storage services |
US7542419B2 (en) | 2001-04-02 | 2009-06-02 | International Business Machines Corporation | Method and apparatus for managing aggregate bandwidth at a server |
US7003565B2 (en) | 2001-04-03 | 2006-02-21 | International Business Machines Corporation | Clickstream data collection technique |
US20020158898A1 (en) | 2001-04-30 | 2002-10-31 | Hsieh Vivian G. | Graphical user interfaces for viewing and configuring devices in an automated provisioning environment |
US7167965B2 (en) | 2001-04-30 | 2007-01-23 | Hewlett-Packard Development Company, L.P. | Method and system for online data migration on storage systems with performance guarantees |
US8171414B2 (en) | 2001-05-22 | 2012-05-01 | Netapp, Inc. | System and method for consolidated reporting of characteristics for a group of file systems |
US7739614B1 (en) | 2001-05-22 | 2010-06-15 | Netapp, Inc. | System and method for consolidated reporting of characteristics for a group of directories |
US6961865B1 (en) | 2001-05-24 | 2005-11-01 | Oracle International Corporation | Techniques for resuming a transaction after an error |
US7617292B2 (en) | 2001-06-05 | 2009-11-10 | Silicon Graphics International | Multi-class heterogeneous clients in a clustered filesystem |
US7133876B2 (en) | 2001-06-12 | 2006-11-07 | The University Of Maryland College Park | Dwarf cube architecture for reducing storage sizes of multidimensional data |
US20030005147A1 (en) | 2001-06-29 | 2003-01-02 | Enns Daniel Albert | IP/HDLC addressing system for replacing frame relay based systems and method therefor |
US7249150B1 (en) | 2001-07-03 | 2007-07-24 | Network Appliance, Inc. | System and method for parallelized replay of an NVRAM log in a storage appliance |
US7805266B1 (en) | 2001-07-17 | 2010-09-28 | At&T Corp. | Method for automated detection of data glitches in large data sets |
US6912645B2 (en) | 2001-07-19 | 2005-06-28 | Lucent Technologies Inc. | Method and apparatus for archival data storage |
US7174379B2 (en) | 2001-08-03 | 2007-02-06 | International Business Machines Corporation | Managing server resources for hosted applications |
US7366134B2 (en) | 2001-08-17 | 2008-04-29 | Comsat Corporation | Dynamic allocation of network resources in a multiple-user communication system |
US20040054656A1 (en) | 2001-08-31 | 2004-03-18 | Arkivio, Inc. | Techniques for balancing capacity utilization in a storage environment |
US7113980B2 (en) | 2001-09-06 | 2006-09-26 | Bea Systems, Inc. | Exactly once JMS communication |
US7028225B2 (en) | 2001-09-25 | 2006-04-11 | Path Communications, Inc. | Application manager for monitoring and recovery of software based application processes |
US6854035B2 (en) | 2001-10-05 | 2005-02-08 | International Business Machines Corporation | Storage area network methods and apparatus for display and management of a hierarchical file system extension policy |
US7096320B2 (en) | 2001-10-31 | 2006-08-22 | Hewlett-Packard Development Company, Lp. | Computer performance improvement by adjusting a time used for preemptive eviction of cache entries |
US6895500B1 (en) | 2001-10-31 | 2005-05-17 | Western Digital Technologies, Inc. | Disk drive for receiving setup data in a self monitoring analysis and reporting technology (SMART) command |
US7437472B2 (en) | 2001-11-28 | 2008-10-14 | Interactive Content Engines, Llc. | Interactive broadband server system |
US7693917B2 (en) | 2001-11-30 | 2010-04-06 | Intelligent Medical Objects, Inc. | Method for adaptive data management |
US7730153B1 (en) | 2001-12-04 | 2010-06-01 | Netapp, Inc. | Efficient use of NVRAM during takeover in a node cluster |
US6785771B2 (en) | 2001-12-04 | 2004-08-31 | International Business Machines Corporation | Method, system, and program for destaging data in cache |
US20030115204A1 (en) | 2001-12-14 | 2003-06-19 | Arkivio, Inc. | Structure of policy information for storage, network and data management applications |
US20030135729A1 (en) | 2001-12-14 | 2003-07-17 | I/O Integrity, Inc. | Apparatus and meta data caching method for optimizing server startup performance |
US7047358B2 (en) | 2001-12-26 | 2006-05-16 | Boon Storage Technologies, Inc. | High-performance log-structured RAID |
US7055058B2 (en) | 2001-12-26 | 2006-05-30 | Boon Storage Technologies, Inc. | Self-healing log-structured RAID |
US20030120869A1 (en) | 2001-12-26 | 2003-06-26 | Lee Edward K. | Write-back disk cache management |
US7177868B2 (en) | 2002-01-02 | 2007-02-13 | International Business Machines Corporation | Method, system and program for direct client file access in a data management system |
US20030135609A1 (en) * | 2002-01-16 | 2003-07-17 | Sun Microsystems, Inc. | Method, system, and program for determining a modification of a system resource configuration |
US7096328B2 (en) | 2002-01-25 | 2006-08-22 | University Of Southern California | Pseudorandom data storage |
US6748504B2 (en) | 2002-02-15 | 2004-06-08 | International Business Machines Corporation | Deferred copy-on-write of a snapshot |
US7177853B1 (en) | 2002-02-21 | 2007-02-13 | Emc Corporation | Cache management via statistically adjusted time stamp queue |
TW564349B (en) | 2002-02-27 | 2003-12-01 | Acer Labs Inc | Method and related apparatus for controlling transmission interface of external device of computer system |
US6801905B2 (en) | 2002-03-06 | 2004-10-05 | Sybase, Inc. | Database system providing methodology for property enforcement |
US7010553B2 (en) | 2002-03-19 | 2006-03-07 | Network Appliance, Inc. | System and method for redirecting access to a remote mirrored snapshot |
US6993539B2 (en) | 2002-03-19 | 2006-01-31 | Network Appliance, Inc. | System and method for determining changes in two snapshots and for transmitting changes to destination snapshot |
US7043485B2 (en) | 2002-03-19 | 2006-05-09 | Network Appliance, Inc. | System and method for storage of snapshot metadata in a remote file |
US7093086B1 (en) | 2002-03-28 | 2006-08-15 | Veritas Operating Corporation | Disaster recovery and backup using virtual machines |
US7191357B2 (en) | 2002-03-29 | 2007-03-13 | Panasas, Inc. | Hybrid quorum/primary-backup fault-tolerance model |
US6820180B2 (en) | 2002-04-04 | 2004-11-16 | International Business Machines Corporation | Apparatus and method of cascading backup logical volume mirrors |
US7464125B1 (en) | 2002-04-15 | 2008-12-09 | Ibrix Inc. | Checking the validity of blocks and backup duplicates of blocks during block reads |
US7149846B2 (en) | 2002-04-17 | 2006-12-12 | Lsi Logic Corporation | RAID protected external secondary memory |
US6912635B2 (en) | 2002-05-08 | 2005-06-28 | Hewlett-Packard Development Company, L.P. | Distributing workload evenly across storage media in a storage array |
US7330430B2 (en) | 2002-06-04 | 2008-02-12 | Lucent Technologies Inc. | Packet-based traffic shaping |
US7096277B2 (en) | 2002-08-07 | 2006-08-22 | Intel Corporation | Distributed lookup based on packet contents |
US20040133590A1 (en) | 2002-08-08 | 2004-07-08 | Henderson Alex E. | Tree data structure with range-specifying keys and associated methods and apparatuses |
US7107385B2 (en) | 2002-08-09 | 2006-09-12 | Network Appliance, Inc. | Storage virtualization by layering virtual disk objects on a file system |
US7343524B2 (en) | 2002-09-16 | 2008-03-11 | Finisar Corporation | Network analysis omniscent loop state machine |
WO2004025476A1 (en) | 2002-09-16 | 2004-03-25 | Tigi Corporation | Storage system architectures and multiple caching arrangements |
US7668885B2 (en) | 2002-09-25 | 2010-02-23 | MindAgent, LLC | System for timely delivery of personalized aggregations of, including currently-generated, knowledge |
US8489742B2 (en) | 2002-10-10 | 2013-07-16 | Convergys Information Management Group, Inc. | System and method for work management |
US7152142B1 (en) | 2002-10-25 | 2006-12-19 | Copan Systems, Inc. | Method for a workload-adaptive high performance storage system with data protection |
US7457864B2 (en) | 2002-11-27 | 2008-11-25 | International Business Machines Corporation | System and method for managing the performance of a computer system based on operational characteristics of the system components |
US7028218B2 (en) | 2002-12-02 | 2006-04-11 | Emc Corporation | Redundant multi-processor and logical processor configuration for a file server |
US6928526B1 (en) | 2002-12-20 | 2005-08-09 | Datadomain, Inc. | Efficient data storage system |
US7065619B1 (en) | 2002-12-20 | 2006-06-20 | Data Domain, Inc. | Efficient data storage system |
US7110913B2 (en) | 2002-12-23 | 2006-09-19 | United Services Automobile Association (Usaa) | Apparatus and method for managing the performance of an electronic device |
US7263582B2 (en) | 2003-01-07 | 2007-08-28 | Dell Products L.P. | System and method for raid configuration |
US8499086B2 (en) | 2003-01-21 | 2013-07-30 | Dell Products L.P. | Client load distribution |
US7254648B2 (en) | 2003-01-30 | 2007-08-07 | Utstarcom, Inc. | Universal broadband server system and method |
WO2004072816A2 (en) | 2003-02-07 | 2004-08-26 | Lammina Systems Corporation | Method and apparatus for online transaction processing |
EP1595197A2 (en) | 2003-02-21 | 2005-11-16 | Caringo, Inc. | Additional hash functions in content-based addressing |
US7831736B1 (en) | 2003-02-27 | 2010-11-09 | Cisco Technology, Inc. | System and method for supporting VLANs in an iSCSI |
US7155460B2 (en) | 2003-03-18 | 2006-12-26 | Network Appliance, Inc. | Write-once-read-many storage system and method for implementing the same |
US6904470B1 (en) | 2003-03-26 | 2005-06-07 | Emc Corporation | Device selection by a disk adapter scheduler |
US7624112B2 (en) | 2003-04-03 | 2009-11-24 | Oracle International Corporation | Asynchronously storing transaction information from memory to a persistent storage |
EP1467294A3 (en) | 2003-04-04 | 2005-06-01 | Interuniversitair Microelektronica Centrum Vzw | Design method for electronic systems using library of hardware components with performance parameters and cost functions |
US7394944B2 (en) | 2003-04-11 | 2008-07-01 | Seiko Epson Corporation | Method and system for finding spatial medians in a sliding window environment |
US7325059B2 (en) | 2003-05-15 | 2008-01-29 | Cisco Technology, Inc. | Bounded index extensible hash-based IPv6 address lookup method |
US7519725B2 (en) | 2003-05-23 | 2009-04-14 | International Business Machines Corporation | System and method for utilizing informed throttling to guarantee quality of service to I/O streams |
US7567991B2 (en) | 2003-06-25 | 2009-07-28 | Emc Corporation | Replication of snapshot using a file system copy differential |
US7698115B2 (en) | 2003-06-30 | 2010-04-13 | Microsoft Corporation | System and method for dynamically allocating resources in a client/server environment |
US7451168B1 (en) | 2003-06-30 | 2008-11-11 | Data Domain, Inc. | Incremental garbage collection of data in a secondary storage |
US7181296B2 (en) | 2003-08-06 | 2007-02-20 | Asml Netherlands B.V. | Method of adaptive interactive learning control and a lithographic manufacturing process and apparatus employing such a method |
US8239552B2 (en) | 2003-08-21 | 2012-08-07 | Microsoft Corporation | Providing client access to devices over a network |
US8321955B2 (en) | 2003-08-26 | 2012-11-27 | Wu-Chang Feng | Systems and methods for protecting against denial of service attacks |
US8285881B2 (en) | 2003-09-10 | 2012-10-09 | Broadcom Corporation | System and method for load balancing and fail over |
US20050076113A1 (en) | 2003-09-12 | 2005-04-07 | Finisar Corporation | Network analysis sample management process |
US7487235B2 (en) | 2003-09-24 | 2009-02-03 | Dell Products L.P. | Dynamically varying a raid cache policy in order to optimize throughput |
US6917898B1 (en) | 2003-09-30 | 2005-07-12 | Nortel Networks Limited | Generation and processing of statistical information |
US7315866B2 (en) | 2003-10-02 | 2008-01-01 | Agency For Science, Technology And Research | Method for incremental authentication of documents |
US7451167B2 (en) | 2003-10-24 | 2008-11-11 | Network Appliance, Inc. | Verification of file system log data using per-entry checksums |
WO2005041474A1 (en) | 2003-10-28 | 2005-05-06 | The Foundation For The Promotion Of Industrial Science | Authentication system, and remotely distributed storage system |
JP2005149082A (en) | 2003-11-14 | 2005-06-09 | Hitachi Ltd | Storage controller and method for controlling it |
ES2383998T3 (en) | 2003-11-17 | 2012-06-28 | Telecom Italia S.P.A. | Architecture of quality of service supervision, related procedure, network and computer program product |
JP4516306B2 (en) | 2003-11-28 | 2010-08-04 | 株式会社日立製作所 | How to collect storage network performance information |
WO2005057365A2 (en) | 2003-12-08 | 2005-06-23 | Ebay Inc. | System to automatically regenerate software code |
US8140860B2 (en) | 2003-12-15 | 2012-03-20 | International Business Machines Corporation | Policy-driven file system with integrated RAID functionality |
JP4244319B2 (en) | 2003-12-17 | 2009-03-25 | 株式会社日立製作所 | Computer system management program, recording medium, computer system management system, management device and storage device therefor |
WO2005086631A2 (en) | 2004-01-20 | 2005-09-22 | Bae Systems Information And Electronic Systems Integration Inc. | Multifunction receiver-on-chip for electronic warfare applications |
US7701948B2 (en) | 2004-01-20 | 2010-04-20 | Nortel Networks Limited | Metro ethernet service enhancements |
US7321982B2 (en) | 2004-01-26 | 2008-01-22 | Network Appliance, Inc. | System and method for takeover of partner resources in conjunction with coredump |
US7849098B1 (en) | 2004-02-06 | 2010-12-07 | Vmware, Inc. | Providing multiple concurrent access to a file system |
US7373473B2 (en) | 2004-03-10 | 2008-05-13 | Leica Geosystems Hds Llc | System and method for efficient storage and manipulation of extremely large amounts of scan data |
US7395352B1 (en) | 2004-03-12 | 2008-07-01 | Netapp, Inc. | Managing data replication relationships |
US7555548B2 (en) | 2004-04-07 | 2009-06-30 | Verizon Business Global Llc | Method and apparatus for efficient data collection |
US7415653B1 (en) | 2004-04-21 | 2008-08-19 | Sun Microsystems, Inc. | Method and apparatus for vectored block-level checksum for file system data integrity |
US7334094B2 (en) | 2004-04-30 | 2008-02-19 | Network Appliance, Inc. | Online clone volume splitting technique |
US7251663B1 (en) | 2004-04-30 | 2007-07-31 | Network Appliance, Inc. | Method and apparatus for determining if stored memory range overlaps key memory ranges where the memory address space is organized in a tree form and partition elements for storing key memory ranges |
US7334095B1 (en) | 2004-04-30 | 2008-02-19 | Network Appliance, Inc. | Writable clone of read-only volume |
US7536424B2 (en) | 2004-05-02 | 2009-05-19 | Yoram Barzilai | System and methods for efficiently managing incremental data backup revisions |
US20050246362A1 (en) | 2004-05-03 | 2005-11-03 | Borland Devin P | System and method for dynamci log compression in a file system |
US7409582B2 (en) | 2004-05-06 | 2008-08-05 | International Business Machines Corporation | Low cost raid with seamless disk failure recovery |
US7814064B2 (en) | 2004-05-12 | 2010-10-12 | Oracle International Corporation | Dynamic distributed consensus algorithm |
US7562101B1 (en) | 2004-05-28 | 2009-07-14 | Network Appliance, Inc. | Block allocation testing |
US8949395B2 (en) | 2004-06-01 | 2015-02-03 | Inmage Systems, Inc. | Systems and methods of event driven recovery management |
WO2006012058A1 (en) | 2004-06-28 | 2006-02-02 | Japan Communications, Inc. | Systems and methods for mutual authentication of network |
US7366865B2 (en) | 2004-09-08 | 2008-04-29 | Intel Corporation | Enqueueing entries in a packet queue referencing packets |
US7490084B2 (en) | 2004-09-24 | 2009-02-10 | Oracle Corporation | Deferred incorporation of updates for spatial indexes |
US20060075281A1 (en) | 2004-09-27 | 2006-04-06 | Kimmel Jeffrey S | Use of application-level context information to detect corrupted data in a storage system |
US20060072554A1 (en) | 2004-09-29 | 2006-04-06 | Fardad Farahmand | Hierarchically organizing logical trunk groups in a packet-based network |
JP4560367B2 (en) | 2004-10-05 | 2010-10-13 | 株式会社日立製作所 | Storage network performance information collection and storage method, computer system, and program |
US7257690B1 (en) | 2004-10-15 | 2007-08-14 | Veritas Operating Corporation | Log-structured temporal shadow store |
US8131926B2 (en) | 2004-10-20 | 2012-03-06 | Seagate Technology, Llc | Generic storage container for allocating multiple data formats |
US7376866B1 (en) | 2004-10-22 | 2008-05-20 | Network Appliance, Inc. | Method and an apparatus to perform fast log replay |
US20060101091A1 (en) | 2004-10-22 | 2006-05-11 | International Business Machines Corporation | Recovering references in an extended model |
US7310704B1 (en) | 2004-11-02 | 2007-12-18 | Symantec Operating Corporation | System and method for performing online backup and restore of volume configuration information |
US7873782B2 (en) | 2004-11-05 | 2011-01-18 | Data Robotics, Inc. | Filesystem-aware block storage system, apparatus, and method |
AU2005304792B2 (en) | 2004-11-05 | 2010-07-08 | Drobo, Inc. | Storage system condition indicator and method |
JP2006139478A (en) | 2004-11-11 | 2006-06-01 | Hitachi Ltd | Disk array system |
US20060112155A1 (en) | 2004-11-24 | 2006-05-25 | Agami Systems, Inc. | System and method for managing quality of service for a storage system |
US8984140B2 (en) | 2004-12-14 | 2015-03-17 | Hewlett-Packard Development Company, L.P. | Managing connections through an aggregation of network resources providing offloaded connections between applications over a network |
US7403535B2 (en) | 2004-12-14 | 2008-07-22 | Hewlett-Packard Development Company, L.P. | Aggregation of network resources providing offloaded connections between applications over a network |
EP1672831A1 (en) | 2004-12-16 | 2006-06-21 | Nagravision S.A. | Method for transmission of digital data in a local network |
US7657578B1 (en) * | 2004-12-20 | 2010-02-02 | Symantec Operating Corporation | System and method for volume replication in a storage environment employing distributed block virtualization |
US7386758B2 (en) | 2005-01-13 | 2008-06-10 | Hitachi, Ltd. | Method and apparatus for reconstructing data in object-based storage arrays |
US8180855B2 (en) | 2005-01-27 | 2012-05-15 | Netapp, Inc. | Coordinated shared storage architecture |
WO2006090367A2 (en) | 2005-02-24 | 2006-08-31 | Xeround Systems Ltd. | Method and apparatus for distributed data management in a switching network |
US7757056B1 (en) | 2005-03-16 | 2010-07-13 | Netapp, Inc. | System and method for efficiently calculating storage required to split a clone volume |
US7305579B2 (en) | 2005-03-22 | 2007-12-04 | Xiotech Corporation | Method, apparatus and program storage device for providing intelligent rebuild order selection |
US8849767B1 (en) | 2005-04-13 | 2014-09-30 | Netapp, Inc. | Method and apparatus for identifying and eliminating duplicate data blocks and sharing data blocks in a storage system |
WO2006109307A2 (en) | 2005-04-13 | 2006-10-19 | Discretix Technologies Ltd. | Method, device, and system of selectively accessing data |
US8452929B2 (en) | 2005-04-21 | 2013-05-28 | Violin Memory Inc. | Method and system for storage of data in non-volatile media |
US8200887B2 (en) | 2007-03-29 | 2012-06-12 | Violin Memory, Inc. | Memory management system and method |
US20060253749A1 (en) | 2005-05-09 | 2006-11-09 | International Business Machines Corporation | Real-time memory verification in a high-availability system |
US7370048B2 (en) | 2005-05-27 | 2008-05-06 | International Business Machines Corporation | File storage method and apparatus |
US8028329B2 (en) | 2005-06-13 | 2011-09-27 | Iamsecureonline, Inc. | Proxy authentication network |
US7447868B2 (en) | 2005-06-15 | 2008-11-04 | International Business Machines Corporation | Using vector processors to accelerate cache lookups |
US8495244B2 (en) | 2005-06-29 | 2013-07-23 | Jumpstart Wireless Corporation | System and method for dynamic automatic communication path selection, distributed device synchronization and task delegation |
US7720820B2 (en) | 2005-07-12 | 2010-05-18 | Microsoft Corporation | Logless persistent components for enterprise applications |
US8504521B2 (en) | 2005-07-28 | 2013-08-06 | Gopivotal, Inc. | Distributed data management system |
US7984084B2 (en) | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
US7451348B2 (en) | 2005-08-04 | 2008-11-11 | Dot Hill Systems Corporation | Dynamic write cache size adjustment in raid controller with capacitor backup energy source |
CN101356506B (en) | 2005-08-25 | 2014-01-08 | 晶像股份有限公司 | Smart scalable storage switch architecture |
US8429630B2 (en) | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
US8259566B2 (en) | 2005-09-20 | 2012-09-04 | Qualcomm Incorporated | Adaptive quality of service policy for dynamic networks |
US7366859B2 (en) | 2005-10-06 | 2008-04-29 | Acronis Inc. | Fast incremental backup method and system |
US7386675B2 (en) | 2005-10-21 | 2008-06-10 | Isilon Systems, Inc. | Systems and methods for using excitement values to predict future access to resources |
CN100370732C (en) | 2005-11-04 | 2008-02-20 | 华为技术有限公司 | Charge metering method and system |
US8549051B2 (en) | 2005-11-04 | 2013-10-01 | Oracle America, Inc. | Unlimited file system snapshots and clones |
JP4766240B2 (en) | 2005-11-08 | 2011-09-07 | 日本電気株式会社 | File management method, apparatus, and program |
US7562140B2 (en) | 2005-11-15 | 2009-07-14 | Cisco Technology, Inc. | Method and apparatus for providing trend information from network devices |
US8065680B2 (en) | 2005-11-15 | 2011-11-22 | Yahoo! Inc. | Data gateway for jobs management based on a persistent job table and a server table |
US7640231B2 (en) | 2005-11-16 | 2009-12-29 | International Business Machines Corporation | Approach based on self-evolving models for performance guarantees in a shared storage system |
JP4738144B2 (en) | 2005-11-28 | 2011-08-03 | 株式会社日立製作所 | Information monitoring method, system and program |
EP1793606A1 (en) | 2005-12-05 | 2007-06-06 | Microsoft Corporation | Distribution of keys for encryption/decryption |
US7752173B1 (en) | 2005-12-16 | 2010-07-06 | Network Appliance, Inc. | Method and apparatus for improving data processing system performance by reducing wasted disk writes |
US7546321B2 (en) | 2005-12-19 | 2009-06-09 | Yahoo! Inc. | System and method for recovery from failure of a storage server in a distributed column chunk data store |
US7716180B2 (en) | 2005-12-29 | 2010-05-11 | Amazon Technologies, Inc. | Distributed storage system with web services client interface |
US7529780B1 (en) | 2005-12-30 | 2009-05-05 | Google Inc. | Conflict management during data object synchronization between client and server |
US7673116B2 (en) | 2006-01-17 | 2010-03-02 | Advanced Micro Devices, Inc. | Input/output memory management unit that implements memory attributes based on translation data |
US20140108797A1 (en) | 2006-01-26 | 2014-04-17 | Unisys Corporation | Storage communities of interest using cryptographic splitting |
US7454592B1 (en) | 2006-02-16 | 2008-11-18 | Symantec Operating Corporation | Block-level and hash-based single-instance storage |
US7593833B2 (en) | 2006-03-03 | 2009-09-22 | At&T Intellectual Property I, L.P. | System and method for determining performance of network lines |
CN100423491C (en) | 2006-03-08 | 2008-10-01 | 杭州华三通信技术有限公司 | Virtual network storing system and network storing equipment thereof |
US7739422B2 (en) | 2006-03-21 | 2010-06-15 | International Business Machines Corporation | Method to improve system DMA mapping while substantially reducing memory fragmentation |
US7603529B1 (en) | 2006-03-22 | 2009-10-13 | Emc Corporation | Methods, systems, and computer program products for mapped logical unit (MLU) replications, storage, and retrieval in a redundant array of inexpensive disks (RAID) environment |
US7647525B2 (en) | 2006-03-31 | 2010-01-12 | Emc Corporation | Resumption of operations following failover in connection with triangular asynchronous replication |
US7849281B2 (en) | 2006-04-03 | 2010-12-07 | Emc Corporation | Method and system for implementing hierarchical permission maps in a layered volume graph |
US8832045B2 (en) | 2006-04-07 | 2014-09-09 | Data Storage Group, Inc. | Data compression and storage techniques |
US7809685B2 (en) | 2006-04-21 | 2010-10-05 | Ricoh Co., Ltd. | Secure and efficient methods for logging and synchronizing data exchanges |
US8214868B2 (en) | 2006-04-21 | 2012-07-03 | Agere Systems Inc. | Flexible traffic management and shaping processing for multimedia distribution |
US8090908B1 (en) | 2006-04-26 | 2012-01-03 | Netapp, Inc. | Single nodename cluster system for fibre channel |
JP2007310772A (en) | 2006-05-22 | 2007-11-29 | Hitachi Ltd | Storage system and communication control method |
JP5048760B2 (en) | 2006-05-24 | 2012-10-17 | コンペレント・テクノロジーズ | System and method for RAID management, reallocation, and restriping |
GB0610335D0 (en) | 2006-05-24 | 2006-07-05 | Oxford Semiconductor Ltd | Redundant storage of data on an array of storage devices |
US9009199B2 (en) | 2006-06-06 | 2015-04-14 | Haskolinn I Reykjavik | Data mining using an index tree created by recursive projection of data points on random lines |
US20070300013A1 (en) | 2006-06-21 | 2007-12-27 | Manabu Kitamura | Storage system having transaction monitoring capability |
US8826023B1 (en) | 2006-06-30 | 2014-09-02 | Symantec Operating Corporation | System and method for securing access to hash-based storage systems |
US8037319B1 (en) | 2006-06-30 | 2011-10-11 | Symantec Operating Corporation | System and method for securely storing cryptographic keys with encrypted data |
US7885257B2 (en) | 2006-07-20 | 2011-02-08 | Oracle America, Inc. | Multiple virtual network stack instances using virtual network interface cards |
US7987167B1 (en) | 2006-08-04 | 2011-07-26 | Netapp, Inc. | Enabling a clustered namespace with redirection |
US20080065639A1 (en) | 2006-08-25 | 2008-03-13 | Netfortis, Inc. | String matching engine |
JP4839164B2 (en) | 2006-09-15 | 2011-12-21 | 株式会社日立製作所 | Performance evaluation system using hardware monitor and reconfigurable computer system |
US7562203B2 (en) | 2006-09-27 | 2009-07-14 | Network Appliance, Inc. | Storage defragmentation based on modified physical address and unmodified logical address |
US7356442B1 (en) | 2006-10-05 | 2008-04-08 | International Business Machines Corporation | End of life prediction of flash memory |
US7650476B2 (en) * | 2006-10-18 | 2010-01-19 | International Business Machines Corporation | System, method and computer program product for generating a consistent point in time copy of data |
US8589550B1 (en) | 2006-10-23 | 2013-11-19 | Emc Corporation | Asymmetric data storage system for high performance and grid computing |
US8447872B2 (en) | 2006-11-01 | 2013-05-21 | Intel Corporation | Load balancing in a storage system |
US8719844B2 (en) | 2006-11-27 | 2014-05-06 | Morgan Stanley | Merging realtime data flows |
US7624231B2 (en) | 2006-11-29 | 2009-11-24 | International Business Machines Corporation | Map based striping of data in a distributed volatile memory environment |
US8161353B2 (en) | 2007-12-06 | 2012-04-17 | Fusion-Io, Inc. | Apparatus, system, and method for validating that a correct data segment is read from a data storage device |
US7620669B1 (en) | 2006-12-15 | 2009-11-17 | Netapp, Inc. | System and method for enhancing log performance |
US7996609B2 (en) | 2006-12-20 | 2011-08-09 | International Business Machines Corporation | System and method of dynamic allocation of non-volatile memory |
EP2095231B1 (en) | 2006-12-22 | 2016-07-20 | Hewlett-Packard Enterprise Development LP | Computer system and method of control thereof |
US7802136B2 (en) | 2006-12-28 | 2010-09-21 | Intel Corporation | Compiler technique for efficient register checkpointing to support transaction roll-back |
US8489811B1 (en) | 2006-12-29 | 2013-07-16 | Netapp, Inc. | System and method for addressing data containers using data set identifiers |
US20080168226A1 (en) | 2007-01-05 | 2008-07-10 | Accusys. Inc. | Correction method for reading data of disk array system |
US8655939B2 (en) | 2007-01-05 | 2014-02-18 | Digital Doors, Inc. | Electromagnetic pulse (EMP) hardened information infrastructure with extractor, cloud dispersal, secure storage, content analysis and classification and method therefor |
US7912437B2 (en) | 2007-01-09 | 2011-03-22 | Freescale Semiconductor, Inc. | Radio frequency receiver having dynamic bandwidth control and method of operation |
KR101338409B1 (en) | 2007-01-25 | 2013-12-10 | 삼성전자주식회사 | Method and node for generating distributed rivest shamir adleman signature in ad-hoc network |
US7594138B2 (en) | 2007-01-31 | 2009-09-22 | International Business Machines Corporation | System and method of error recovery for backup applications |
US8380880B2 (en) | 2007-02-02 | 2013-02-19 | The Mathworks, Inc. | Scalable architecture |
US20080201535A1 (en) | 2007-02-21 | 2008-08-21 | Hitachi, Ltd. | Method and Apparatus for Provisioning Storage Volumes |
JP5219183B2 (en) | 2007-03-01 | 2013-06-26 | 任天堂株式会社 | Video content display program, information processing apparatus, video content display method, and video content display system |
US8266116B2 (en) | 2007-03-12 | 2012-09-11 | Broadcom Corporation | Method and apparatus for dual-hashing tables |
US7657500B2 (en) | 2007-03-12 | 2010-02-02 | Sun Microsystems, Inc. | Concurrent extensible cuckoo hashing |
US20080244354A1 (en) | 2007-03-28 | 2008-10-02 | Gansha Wu | Apparatus and method for redundant multi-threading with recovery |
US8135900B2 (en) | 2007-03-28 | 2012-03-13 | Kabushiki Kaisha Toshiba | Integrated memory management and memory management method |
US9632870B2 (en) | 2007-03-29 | 2017-04-25 | Violin Memory, Inc. | Memory system with multiple striping of raid groups and method for performing the same |
US8533410B1 (en) | 2007-03-29 | 2013-09-10 | Netapp, Inc. | Maintaining snapshot and active file system metadata in an on-disk structure of a file system |
JP4448866B2 (en) | 2007-03-30 | 2010-04-14 | 日立ビアメカニクス株式会社 | Drawing device |
US8209587B1 (en) | 2007-04-12 | 2012-06-26 | Netapp, Inc. | System and method for eliminating zeroing of disk drives in RAID arrays |
JP2008269462A (en) | 2007-04-24 | 2008-11-06 | Hitachi Ltd | Management device and method for node |
US8824686B1 (en) | 2007-04-27 | 2014-09-02 | Netapp, Inc. | Cluster key synchronization |
US20080270719A1 (en) | 2007-04-30 | 2008-10-30 | Cochran Robert A | Method and system for efficient snapshot operations in mass-storage arrays |
US7975109B2 (en) | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
JP4316636B2 (en) | 2007-06-06 | 2009-08-19 | 株式会社東芝 | Content distribution / browsing system, content distribution apparatus, content browsing apparatus, and program |
US8082390B1 (en) | 2007-06-20 | 2011-12-20 | Emc Corporation | Techniques for representing and storing RAID group consistency information |
KR20090005921A (en) | 2007-07-10 | 2009-01-14 | 삼성전자주식회사 | Load balancing method and apparatus in symmetric multi-processor system |
US8024525B2 (en) | 2007-07-25 | 2011-09-20 | Digi-Data Corporation | Storage control unit with memory cache protection via recorded log |
US9298417B1 (en) | 2007-07-25 | 2016-03-29 | Emc Corporation | Systems and methods for facilitating management of data |
US9336387B2 (en) | 2007-07-30 | 2016-05-10 | Stroz Friedberg, Inc. | System, method, and computer program product for detecting access to a memory device |
US7856437B2 (en) | 2007-07-31 | 2010-12-21 | Hewlett-Packard Development Company, L.P. | Storing nodes representing respective chunks of files in a data store |
US7949693B1 (en) | 2007-08-23 | 2011-05-24 | Osr Open Systems Resources, Inc. | Log-structured host data storage |
CN101803269B (en) | 2007-09-18 | 2013-01-09 | 兴和株式会社 | Serial data communication system and serial data communication method |
US7953878B1 (en) | 2007-10-09 | 2011-05-31 | Netapp, Inc. | Multi-threaded internet small computer system interface (iSCSI) socket layer |
US8185614B2 (en) | 2007-10-09 | 2012-05-22 | Cleversafe, Inc. | Systems, methods, and apparatus for identifying accessible dispersed digital storage vaults utilizing a centralized registry |
US7809701B2 (en) | 2007-10-15 | 2010-10-05 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for performing exact match searches using multiple hash tables |
US7996636B1 (en) | 2007-11-06 | 2011-08-09 | Netapp, Inc. | Uniquely identifying block context signatures in a storage volume hierarchy |
US8074019B2 (en) | 2007-11-13 | 2011-12-06 | Network Appliance, Inc. | Preventing data loss in a storage system |
US7814276B2 (en) | 2007-11-20 | 2010-10-12 | Solid State System Co., Ltd. | Data cache architecture and cache algorithm used therein |
US20090150537A1 (en) | 2007-12-10 | 2009-06-11 | John Fanson | Data communication method for a set of hard-real time applications within a network |
US9292567B2 (en) | 2007-12-12 | 2016-03-22 | Oracle International Corporation | Bulk matching with update |
US8583865B1 (en) | 2007-12-21 | 2013-11-12 | Emc Corporation | Caching with flash-based memory |
US7797279B1 (en) | 2007-12-31 | 2010-09-14 | Emc Corporation | Merging of incremental data streams with prior backed-up data |
US8099554B1 (en) | 2007-12-31 | 2012-01-17 | Emc Corporation | System and method for flash-based data caching |
US8805949B2 (en) | 2008-01-16 | 2014-08-12 | Netapp, Inc. | System and method for populating a cache using behavioral adaptive policies |
JP2009181206A (en) | 2008-01-29 | 2009-08-13 | Hitachi Ltd | Storage system and snapshot configuration migration method |
US8078918B2 (en) | 2008-02-07 | 2011-12-13 | Siliconsystems, Inc. | Solid state storage subsystem that maintains and provides access to data reflective of a failure risk |
US20090204636A1 (en) | 2008-02-11 | 2009-08-13 | Microsoft Corporation | Multimodal object de-duplication |
WO2009102425A1 (en) | 2008-02-12 | 2009-08-20 | Netapp, Inc. | Hybrid media storage system architecture |
US7979635B2 (en) | 2008-02-14 | 2011-07-12 | International Business Machines Corporation | Apparatus and method to allocate resources in a data storage library |
JP2009199199A (en) | 2008-02-20 | 2009-09-03 | Hitachi Ltd | Storage system and its data write method |
JP4489127B2 (en) | 2008-02-29 | 2010-06-23 | 株式会社東芝 | Semiconductor memory device |
US8234444B2 (en) | 2008-03-11 | 2012-07-31 | International Business Machines Corporation | Apparatus and method to select a deduplication protocol for a data storage library |
JP5146032B2 (en) | 2008-03-17 | 2013-02-20 | 富士通株式会社 | I / O control method, control device, and program |
US8060706B2 (en) | 2008-03-28 | 2011-11-15 | Inventec Corporation | Method of allocating physical memory in specified address range under Linux system platform |
US7873619B1 (en) | 2008-03-31 | 2011-01-18 | Emc Corporation | Managing metadata |
US8074014B2 (en) | 2008-03-31 | 2011-12-06 | Microsoft Corporation | Storage systems using write off-loading |
US8429096B1 (en) | 2008-03-31 | 2013-04-23 | Amazon Technologies, Inc. | Resource isolation through reinforcement learning |
US8855318B1 (en) | 2008-04-02 | 2014-10-07 | Cisco Technology, Inc. | Master key generation and distribution for storage area network devices |
US7971013B2 (en) | 2008-04-30 | 2011-06-28 | Xiotech Corporation | Compensating for write speed differences between mirroring storage devices by striping |
KR20090120159A (en) | 2008-05-19 | 2009-11-24 | 삼성전자주식회사 | Apparatus and method for combining images |
US8612572B2 (en) | 2008-05-30 | 2013-12-17 | Microsoft Corporation | Rule-based system for client-side quality-of-service tracking and reporting |
US7979399B2 (en) | 2008-06-10 | 2011-07-12 | International Business Machines Corporation | Database journaling in a multi-node environment |
US8108649B2 (en) | 2008-06-13 | 2012-01-31 | International Business Machines Corporation | Method of memory management for server-side scripting language runtime system |
US9547589B2 (en) | 2008-06-18 | 2017-01-17 | Super Talent Technology, Corp. | Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive |
JP2010009548A (en) | 2008-06-30 | 2010-01-14 | Toshiba Corp | Storage device, control device, storage system, and storage method |
US8762654B1 (en) | 2008-07-02 | 2014-06-24 | Marvell International Ltd. | Selectively scheduling memory accesses in parallel based on access speeds of memory |
US8214404B2 (en) | 2008-07-11 | 2012-07-03 | Avere Systems, Inc. | Media aware distributed data layout |
US7979671B2 (en) | 2008-07-28 | 2011-07-12 | CacheIQ, Inc. | Dual hash indexing system and methodology |
US8250310B2 (en) | 2008-07-31 | 2012-08-21 | International Business Machines Corporation | Assigning data to NVRAM of shared access hybrid hard drives |
GB0814468D0 (en) | 2008-08-07 | 2008-09-10 | Rugg Gordon | Methdo of and apparatus for analysing data files |
US8086799B2 (en) | 2008-08-12 | 2011-12-27 | Netapp, Inc. | Scalable deduplication of stored data |
US7987214B2 (en) | 2008-08-29 | 2011-07-26 | Tatu Ylonen Oy | Determining the address range of a subtree of a linearized tree |
CN101674233B (en) | 2008-09-12 | 2011-09-14 | 中国科学院声学研究所 | Peterson graph-based storage network structure and data read-write method thereof |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US9098519B2 (en) | 2008-09-16 | 2015-08-04 | File System Labs Llc | Methods and apparatus for distributed data storage |
US8127182B2 (en) | 2008-09-16 | 2012-02-28 | Lsi Corporation | Storage utilization to improve reliability using impending failure triggers |
EP2350875A1 (en) | 2008-09-19 | 2011-08-03 | Oracle International Corporation | Storage-side storage request management |
US8321834B2 (en) | 2008-09-25 | 2012-11-27 | International Business Machines Corporation | Framework for automatically merging customizations to structured code that has been refactored |
US8799571B1 (en) | 2008-09-26 | 2014-08-05 | Emc Corporation | System and method for configuring a device array upon detecting addition of a storage device |
US7873729B2 (en) | 2008-09-29 | 2011-01-18 | Verizon Patent And Licensing Inc. | Server scanning system and method |
US9330172B2 (en) | 2008-09-29 | 2016-05-03 | Echostar Technologies Llc | Audio/video archiving system and method |
US8086585B1 (en) | 2008-09-30 | 2011-12-27 | Emc Corporation | Access control to block storage devices for a shared disk based file system |
US8312231B1 (en) | 2008-11-04 | 2012-11-13 | Netapp, Inc. | Method and system for mounting logical unit numbers (LUNS) of snapshots |
CN102272731A (en) | 2008-11-10 | 2011-12-07 | 弗森-艾奥公司 | Apparatus, system, and method for predicting failures in solid-state storage |
US9015209B2 (en) | 2008-12-16 | 2015-04-21 | Sandisk Il Ltd. | Download management of discardable files |
US8732139B2 (en) | 2008-12-18 | 2014-05-20 | Sap Ag | Method and system for dynamically partitioning very large database indices on write-once tables |
US8060470B2 (en) | 2008-12-23 | 2011-11-15 | Apple Inc. | Heterogeneous database management system |
JP4766498B2 (en) | 2008-12-24 | 2011-09-07 | 株式会社ソニー・コンピュータエンタテインメント | Method and apparatus for providing user level DMA and memory access management |
US8250116B2 (en) | 2008-12-31 | 2012-08-21 | Unisys Corporation | KStore data simulator directives and values processor process and files |
US8495417B2 (en) | 2009-01-09 | 2013-07-23 | Netapp, Inc. | System and method for redundancy-protected aggregates |
TWI432959B (en) | 2009-01-23 | 2014-04-01 | Infortrend Technology Inc | Storage subsystem and storage system architecture performing storage virtualization and method thereof |
US8170997B2 (en) | 2009-01-29 | 2012-05-01 | Microsoft Corporation | Unbundled storage transaction services |
US8407436B2 (en) | 2009-02-11 | 2013-03-26 | Hitachi, Ltd. | Methods and apparatus for migrating thin provisioning volumes between storage systems |
JP5376983B2 (en) | 2009-02-12 | 2013-12-25 | 株式会社東芝 | Memory system |
US8397051B2 (en) | 2009-02-23 | 2013-03-12 | Autonomy, Inc. | Hybrid hash tables |
US8520855B1 (en) | 2009-03-05 | 2013-08-27 | University Of Washington | Encapsulation and decapsulation for data disintegration |
US8145838B1 (en) | 2009-03-10 | 2012-03-27 | Netapp, Inc. | Processing and distributing write logs of nodes of a cluster storage system |
US8205065B2 (en) | 2009-03-30 | 2012-06-19 | Exar Corporation | System and method for data deduplication |
US8271615B2 (en) | 2009-03-31 | 2012-09-18 | Cloud Connex, Llc | Centrally managing and monitoring software as a service (SaaS) applications |
US8566507B2 (en) | 2009-04-08 | 2013-10-22 | Google Inc. | Data storage device capable of recognizing and controlling multiple types of memory chips |
US9940138B2 (en) | 2009-04-08 | 2018-04-10 | Intel Corporation | Utilization of register checkpointing mechanism with pointer swapping to resolve multithreading mis-speculations |
US8656284B2 (en) | 2009-04-17 | 2014-02-18 | Empirix Inc. | Method for determining a quality of user experience while performing activities in IP networks |
US8996468B1 (en) | 2009-04-17 | 2015-03-31 | Dell Software Inc. | Block status mapping system for reducing virtual machine backup storage |
US8560879B1 (en) | 2009-04-22 | 2013-10-15 | Netapp Inc. | Data recovery for failed memory device of memory device array |
US8156290B1 (en) | 2009-04-23 | 2012-04-10 | Network Appliance, Inc. | Just-in-time continuous segment cleaning |
US8515965B2 (en) | 2010-05-18 | 2013-08-20 | Lsi Corporation | Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors |
US9037541B2 (en) | 2009-04-30 | 2015-05-19 | Microsoft Technology Licensing, Llc | Metadata for data storage array |
US8402069B2 (en) | 2009-05-04 | 2013-03-19 | Microsoft Corporation | Use of delete notifications by file systems and applications to release storage space |
US8166233B2 (en) | 2009-07-24 | 2012-04-24 | Lsi Corporation | Garbage collection for solid state disks |
US20100293147A1 (en) | 2009-05-12 | 2010-11-18 | Harvey Snow | System and method for providing automated electronic information backup, storage and recovery |
JP2010282281A (en) | 2009-06-02 | 2010-12-16 | Hitachi Ltd | Disk array device, control method therefor, and program |
US8345707B2 (en) | 2009-06-03 | 2013-01-01 | Voxer Ip Llc | Method for synchronizing data maintained at a plurality of nodes |
US20130298170A1 (en) | 2009-06-12 | 2013-11-07 | Cygnus Broadband, Inc. | Video streaming quality of experience recovery using a video quality metric |
US8478799B2 (en) | 2009-06-26 | 2013-07-02 | Simplivity Corporation | Namespace file system accessing an object store |
US8219562B1 (en) | 2009-06-29 | 2012-07-10 | Facebook, Inc. | Efficient storage and retrieval for large number of data objects |
US8615615B2 (en) | 2009-07-01 | 2013-12-24 | Lsi Corporation | Load balancing with SCSI I/O referrals |
US8225135B2 (en) | 2009-07-07 | 2012-07-17 | Drobo, Inc. | System and method for protecting users of data storage systems against known problems |
US9377960B2 (en) | 2009-07-29 | 2016-06-28 | Hgst Technologies Santa Ana, Inc. | System and method of using stripes for recovering data in a flash storage system |
US8255620B2 (en) | 2009-08-11 | 2012-08-28 | Texas Memory Systems, Inc. | Secure Flash-based memory system with fast wipe feature |
US7818525B1 (en) | 2009-08-12 | 2010-10-19 | Texas Memory Systems, Inc. | Efficient reduction of read disturb errors in NAND FLASH memory |
WO2011031796A2 (en) | 2009-09-08 | 2011-03-17 | Fusion-Io, Inc. | Apparatus, system, and method for caching data on a solid-state storage device |
US20120166749A1 (en) | 2009-09-08 | 2012-06-28 | International Business Machines Corporation | Data management in solid-state storage devices and tiered storage systems |
US8601222B2 (en) | 2010-05-13 | 2013-12-03 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
US9122579B2 (en) | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
US8712972B2 (en) | 2009-09-22 | 2014-04-29 | Sybase, Inc. | Query optimization with awareness of limited resource usage |
US8266501B2 (en) | 2009-09-29 | 2012-09-11 | Micron Technology, Inc. | Stripe based memory operation |
JP5170055B2 (en) | 2009-10-09 | 2013-03-27 | 富士通株式会社 | Processing method, storage system, information processing apparatus, and program |
US8285955B2 (en) | 2009-10-16 | 2012-10-09 | Lenovo (Singapore) Pte. Ltd. | Method and apparatus for automatic solid state drive performance recovery |
US8285956B2 (en) * | 2009-10-22 | 2012-10-09 | Symantec Corporation | Efficient logging for asynchronously replicating volume groups |
US7954021B2 (en) | 2009-10-23 | 2011-05-31 | International Business Machines Corporation | Solid state drive with flash sparing |
US8321648B2 (en) | 2009-10-26 | 2012-11-27 | Netapp, Inc | Use of similarity hash to route data for improved deduplication in a storage server cluster |
US8484439B1 (en) | 2009-10-27 | 2013-07-09 | Juniper Networks, Inc. | Scalable hash tables |
US20110119412A1 (en) | 2009-11-13 | 2011-05-19 | Orfitelli William A | Port-splitter providing a guaranteed playout rate |
US8516137B2 (en) | 2009-11-16 | 2013-08-20 | Microsoft Corporation | Managing virtual hard drives as blobs |
US8918897B2 (en) | 2009-11-24 | 2014-12-23 | Cleversafe, Inc. | Dispersed storage network data slice integrity verification |
US8417987B1 (en) | 2009-12-01 | 2013-04-09 | Netapp, Inc. | Mechanism for correcting errors beyond the fault tolerant level of a raid array in a storage system |
US20110153603A1 (en) | 2009-12-17 | 2011-06-23 | Yahoo! Inc. | Time series storage for large-scale monitoring system |
US8140821B1 (en) | 2009-12-18 | 2012-03-20 | Emc Corporation | Efficient read/write algorithms and associated mapping for block-level data reduction processes |
US8156306B1 (en) | 2009-12-18 | 2012-04-10 | Emc Corporation | Systems and methods for using thin provisioning to reclaim space identified by data reduction processes |
US8090977B2 (en) | 2009-12-21 | 2012-01-03 | Intel Corporation | Performing redundant memory hopping |
US8560598B2 (en) | 2009-12-22 | 2013-10-15 | At&T Intellectual Property I, L.P. | Integrated adaptive anycast for content distribution |
US20110153972A1 (en) | 2009-12-23 | 2011-06-23 | Quantum Corporation | Free space defragmention in extent based file system |
US8086896B2 (en) | 2009-12-28 | 2011-12-27 | International Business Machines Corporation | Dynamically tracking virtual logical storage units |
US8468368B2 (en) | 2009-12-29 | 2013-06-18 | Cleversafe, Inc. | Data encryption parameter dispersal |
US8555022B1 (en) | 2010-01-06 | 2013-10-08 | Netapp, Inc. | Assimilation of foreign LUNS into a network storage system |
US8402237B2 (en) | 2010-01-08 | 2013-03-19 | Netapp, Inc. | Presentation of a read-only clone LUN to a host device as a snapshot of a parent LUN |
US9058119B1 (en) | 2010-01-11 | 2015-06-16 | Netapp, Inc. | Efficient data migration |
WO2011090500A1 (en) | 2010-01-19 | 2011-07-28 | Rether Networks Inc. | Random write optimization techniques for flash disks |
US20110191522A1 (en) | 2010-02-02 | 2011-08-04 | Condict Michael N | Managing Metadata and Page Replacement in a Persistent Cache in Flash Memory |
US9015129B2 (en) | 2010-02-09 | 2015-04-21 | Veeam Software Ag | Cross-platform object level restoration from image level backups |
US8706692B1 (en) | 2010-02-12 | 2014-04-22 | Citibank, N.A. | Corporate infrastructure management system |
US8244978B2 (en) | 2010-02-17 | 2012-08-14 | Advanced Micro Devices, Inc. | IOMMU architected TLB support |
US9311184B2 (en) | 2010-02-27 | 2016-04-12 | Cleversafe, Inc. | Storing raid data as encoded data slices in a dispersed storage network |
US8341457B2 (en) | 2010-03-11 | 2012-12-25 | Lsi Corporation | System and method for optimizing redundancy restoration in distributed data layout environments |
JP5066209B2 (en) | 2010-03-18 | 2012-11-07 | 株式会社東芝 | Controller, data storage device, and program |
US20110238857A1 (en) | 2010-03-29 | 2011-09-29 | Amazon Technologies, Inc. | Committed processing rates for shared resources |
US8700949B2 (en) | 2010-03-30 | 2014-04-15 | International Business Machines Corporation | Reliability scheme using hybrid SSD/HDD replication with log structured management |
US8793447B2 (en) | 2010-03-30 | 2014-07-29 | Netapp, Inc. | Restoration of a parent LUN through modification of a read-write clone LUN as the parent LUN |
US8510265B1 (en) | 2010-03-31 | 2013-08-13 | Emc Corporation | Configuration utility for a data storage system using a file mapping protocol for access to distributed file systems |
US8856593B2 (en) | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
US8463825B1 (en) | 2010-04-27 | 2013-06-11 | Tintri Inc. | Hybrid file system for virtual machine storage |
US20110283048A1 (en) | 2010-05-11 | 2011-11-17 | Seagate Technology Llc | Structured mapping system for a memory device |
US8224935B1 (en) | 2010-05-12 | 2012-07-17 | Symantec Corporation | Systems and methods for efficiently synchronizing configuration data within distributed computing systems |
US8621580B2 (en) | 2010-05-19 | 2013-12-31 | Cleversafe, Inc. | Retrieving access information in a dispersed storage network |
US8380949B2 (en) | 2010-05-20 | 2013-02-19 | International Business Machines Corporation | Managing write operations to an extent of tracks migrated between storage devices |
CN102270144B (en) | 2010-06-04 | 2014-12-10 | 鸿富锦精密工业(深圳)有限公司 | Embedded network equipment and method for upgrading firmware by using same |
US9355109B2 (en) | 2010-06-11 | 2016-05-31 | The Research Foundation For The State University Of New York | Multi-tier caching |
CN103080917B (en) | 2010-06-18 | 2014-08-20 | Lsi公司 | Scalable storage devices |
US8621269B2 (en) | 2010-06-22 | 2013-12-31 | Cleversafe, Inc. | Identifying a slice name information error in a dispersed storage network |
US8327103B1 (en) | 2010-06-28 | 2012-12-04 | Emc Corporation | Scheduling data relocation activities using configurable fairness criteria |
US20120011176A1 (en) | 2010-07-07 | 2012-01-12 | Nexenta Systems, Inc. | Location independent scalable file and block storage |
US10162722B2 (en) | 2010-07-15 | 2018-12-25 | Veritas Technologies Llc | Virtual machine aware replication method and system |
US8543611B1 (en) | 2010-07-16 | 2013-09-24 | Brian Mirtich | Managing dynamic state of a physical system |
US8195619B2 (en) | 2010-08-17 | 2012-06-05 | Symantec Corporation | Extent reference count update system and method |
WO2012025974A1 (en) | 2010-08-23 | 2012-03-01 | 富士通株式会社 | Data storage device and control method for data storage device |
US9411517B2 (en) | 2010-08-30 | 2016-08-09 | Vmware, Inc. | System software interfaces for space-optimized block devices |
US8837281B2 (en) | 2010-09-10 | 2014-09-16 | Futurewei Technologies, Inc. | Use of partitions to reduce flooding and filtering database size requirements in large layer two networks |
US8396828B2 (en) | 2010-09-14 | 2013-03-12 | Microsoft Corporation | Providing lightweight multidimensional online data storage for web service usage reporting |
US8589625B2 (en) | 2010-09-15 | 2013-11-19 | Pure Storage, Inc. | Scheduling of reconstructive I/O read operations in a storage environment |
US8732426B2 (en) | 2010-09-15 | 2014-05-20 | Pure Storage, Inc. | Scheduling of reactive I/O operations in a storage environment |
JP5388976B2 (en) | 2010-09-22 | 2014-01-15 | 株式会社東芝 | Semiconductor memory control device |
US8463991B2 (en) | 2010-09-28 | 2013-06-11 | Pure Storage Inc. | Intra-device data protection in a raid array |
US8775868B2 (en) | 2010-09-28 | 2014-07-08 | Pure Storage, Inc. | Adaptive RAID for an SSD environment |
US9348696B2 (en) | 2010-10-01 | 2016-05-24 | Pure Storage, Inc. | Distributed multi-level protection in a raid array based storage system |
US10430298B2 (en) | 2010-10-28 | 2019-10-01 | Microsoft Technology Licensing, Llc | Versatile in-memory database recovery using logical log records |
US20120109936A1 (en) | 2010-10-29 | 2012-05-03 | Nec Laboratories America, Inc. | Cost-effective data layout optimization over heterogeneous storage classes |
US9104326B2 (en) | 2010-11-15 | 2015-08-11 | Emc Corporation | Scalable block data storage using content addressing |
US8577850B1 (en) | 2010-11-15 | 2013-11-05 | Symantec Corporation | Techniques for global data deduplication |
US8706701B1 (en) | 2010-11-18 | 2014-04-22 | Emc Corporation | Scalable cloud file system with efficient integrity checks |
US8583599B2 (en) | 2010-11-29 | 2013-11-12 | Ca, Inc. | Reducing data duplication in cloud storage |
US8880554B2 (en) | 2010-12-03 | 2014-11-04 | Futurewei Technologies, Inc. | Method and apparatus for high performance, updatable, and deterministic hash table for network equipment |
KR101638436B1 (en) | 2010-12-10 | 2016-07-12 | 한국전자통신연구원 | Cloud storage and management method thereof |
US8271462B2 (en) | 2010-12-10 | 2012-09-18 | Inventec Corporation | Method for creating a index of the data blocks |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
EP2652623B1 (en) | 2010-12-13 | 2018-08-01 | SanDisk Technologies LLC | Apparatus, system, and method for auto-commit memory |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
US9805108B2 (en) | 2010-12-23 | 2017-10-31 | Mongodb, Inc. | Large distributed database clustering systems and methods |
US8595595B1 (en) | 2010-12-27 | 2013-11-26 | Netapp, Inc. | Identifying lost write errors in a raid array |
US8468180B1 (en) * | 2010-12-31 | 2013-06-18 | Emc Corporation | Porting storage metadata |
US8732134B2 (en) | 2011-01-25 | 2014-05-20 | Netapp, Inc. | Collection of data associated with storage systems |
US8924354B2 (en) | 2011-02-01 | 2014-12-30 | Ca, Inc. | Block level data replication |
US9251087B2 (en) | 2011-02-11 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for virtual memory management |
US8775699B2 (en) | 2011-03-01 | 2014-07-08 | Freescale Semiconductor, Inc. | Read stacking for data processor interface |
US8370310B2 (en) | 2011-03-04 | 2013-02-05 | Microsoft Corporation | Managing database recovery time |
WO2012124100A1 (en) | 2011-03-17 | 2012-09-20 | 富士通株式会社 | Information processing device, storage system and write control method |
US9563555B2 (en) | 2011-03-18 | 2017-02-07 | Sandisk Technologies Llc | Systems and methods for storage allocation |
US9158596B2 (en) | 2011-03-18 | 2015-10-13 | Oracle International Corporation | Partitioned ticket locks with semi-local spinning |
US8966191B2 (en) | 2011-03-18 | 2015-02-24 | Fusion-Io, Inc. | Logical interface for contextual storage |
US8429282B1 (en) | 2011-03-22 | 2013-04-23 | Amazon Technologies, Inc. | System and method for avoiding system overload by maintaining an ideal request rate |
KR101717081B1 (en) | 2011-03-23 | 2017-03-28 | 삼성전자주식회사 | Storage device comprising a buffer memory by using a nonvolatile-ram and volatile-ram |
US8538029B2 (en) | 2011-03-24 | 2013-09-17 | Hewlett-Packard Development Company, L.P. | Encryption key fragment distribution |
JP4996757B1 (en) | 2011-03-29 | 2012-08-08 | 株式会社東芝 | Secret sharing system, apparatus and program |
US8392458B2 (en) | 2011-04-22 | 2013-03-05 | Hitachi, Ltd. | Information apparatus and method of controlling the same |
US9201742B2 (en) | 2011-04-26 | 2015-12-01 | Brian J. Bulkowski | Method and system of self-managing nodes of a distributed database cluster with a consensus algorithm |
US8539008B2 (en) | 2011-04-29 | 2013-09-17 | Netapp, Inc. | Extent-based storage architecture |
US8812450B1 (en) | 2011-04-29 | 2014-08-19 | Netapp, Inc. | Systems and methods for instantaneous cloning |
US8745338B1 (en) | 2011-05-02 | 2014-06-03 | Netapp, Inc. | Overwriting part of compressed data without decompressing on-disk compressed data |
US8996790B1 (en) | 2011-05-12 | 2015-03-31 | Densbits Technologies Ltd. | System and method for flash memory management |
US8904137B1 (en) | 2011-05-12 | 2014-12-02 | Symantec Corporation | Deduplication system space recycling through inode manipulation |
US8346810B2 (en) | 2011-05-13 | 2013-01-01 | Simplivity Corporation | Reference count propagation |
US8850216B1 (en) | 2011-05-19 | 2014-09-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Client device and media client authentication mechanism |
US8806122B2 (en) | 2011-05-23 | 2014-08-12 | International Business Machines Corporation | Caching data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device |
US8949568B2 (en) | 2011-05-24 | 2015-02-03 | Agency For Science, Technology And Research | Memory storage device, and a related zone-based block management and mapping method |
US9104460B2 (en) | 2011-05-31 | 2015-08-11 | Red Hat, Inc. | Inter-cloud live migration of virtualization systems |
US8990536B2 (en) | 2011-06-01 | 2015-03-24 | Schneider Electric It Corporation | Systems and methods for journaling and executing device control instructions |
US8650377B2 (en) | 2011-06-02 | 2014-02-11 | Hitachi, Ltd. | Storage managing system, computer system, and storage managing method |
US8782439B2 (en) | 2011-06-06 | 2014-07-15 | Cleversafe, Inc. | Securing a data segment for storage |
US8838895B2 (en) | 2011-06-09 | 2014-09-16 | 21Vianet Group, Inc. | Solid-state disk caching the top-K hard-disk blocks selected as a function of access frequency and a logarithmic system time |
US8332357B1 (en) * | 2011-06-10 | 2012-12-11 | Microsoft Corporation | Identification of moved or renamed files in file synchronization |
US20120317084A1 (en) | 2011-06-13 | 2012-12-13 | Beijing Z&W Technology Consulting Co., Ltd. | Method and system for achieving data de-duplication on a block-level storage virtualization device |
US9639591B2 (en) | 2011-06-13 | 2017-05-02 | EMC IP Holding Company LLC | Low latency replication techniques with content addressable storage |
US9292530B2 (en) | 2011-06-14 | 2016-03-22 | Netapp, Inc. | Object-level identification of duplicate data in a storage system |
US8600949B2 (en) | 2011-06-21 | 2013-12-03 | Netapp, Inc. | Deduplication in an extent-based architecture |
US8261085B1 (en) | 2011-06-22 | 2012-09-04 | Media Patents, S.L. | Methods, apparatus and systems to improve security in computer systems |
US8572091B1 (en) | 2011-06-27 | 2013-10-29 | Amazon Technologies, Inc. | System and method for partitioning and indexing table data using a composite primary key |
US20120331471A1 (en) | 2011-06-27 | 2012-12-27 | Microsoft Corporation | Executing molecular transactions |
US20130007370A1 (en) | 2011-07-01 | 2013-01-03 | Oracle International Corporation | Method and apparatus for minimizing working memory contentions in computing systems |
US8917872B2 (en) | 2011-07-06 | 2014-12-23 | Hewlett-Packard Development Company, L.P. | Encryption key storage with key fragment stores |
US9363339B2 (en) | 2011-07-12 | 2016-06-07 | Hughes Network Systems, Llc | Staged data compression, including block level long range compression, for data streams in a communications system |
US20130018722A1 (en) | 2011-07-13 | 2013-01-17 | Bradd Elden Libby | System and method for generating a keyword bid |
US20130019057A1 (en) | 2011-07-15 | 2013-01-17 | Violin Memory, Inc. | Flash disk array and controller |
US8671249B2 (en) | 2011-07-22 | 2014-03-11 | Fusion-Io, Inc. | Apparatus, system, and method for managing storage capacity recovery |
US8930307B2 (en) | 2011-09-30 | 2015-01-06 | Pure Storage, Inc. | Method for removing duplicate data from a storage array |
US8788788B2 (en) | 2011-08-11 | 2014-07-22 | Pure Storage, Inc. | Logical sector mapping in a flash storage array |
US8806160B2 (en) | 2011-08-16 | 2014-08-12 | Pure Storage, Inc. | Mapping in a storage system |
US8527544B1 (en) | 2011-08-11 | 2013-09-03 | Pure Storage Inc. | Garbage collection in a storage system |
US8832035B2 (en) | 2011-08-30 | 2014-09-09 | Netapp, Inc. | System and method for retaining deduplication in a storage object after a clone split operation |
US10031646B2 (en) | 2011-09-07 | 2018-07-24 | Mcafee, Llc | Computer system security dashboard |
KR20130027253A (en) | 2011-09-07 | 2013-03-15 | 삼성전자주식회사 | Method for compressing data |
US8549154B2 (en) | 2011-09-09 | 2013-10-01 | Oracle International Corporation | Recovering stateful read-only database sessions |
KR101289931B1 (en) | 2011-09-23 | 2013-07-25 | 한양대학교 산학협력단 | Method and apparatus for storing data in flash memory using address mapping with various block sizes |
US20130080679A1 (en) | 2011-09-26 | 2013-03-28 | Lsi Corporation | System and method for optimizing thermal management for a storage controller cache |
JP2013073403A (en) | 2011-09-27 | 2013-04-22 | Fujitsu Ltd | Information processor, information processing method and information processing program |
US8849782B2 (en) | 2011-09-30 | 2014-09-30 | Oracle International Corporation | Storage tape analytics user interface |
US8943032B1 (en) | 2011-09-30 | 2015-01-27 | Emc Corporation | System and method for data migration using hybrid modes |
US8751657B2 (en) | 2011-10-04 | 2014-06-10 | Hitachi, Ltd. | Multi-client storage system and storage system management method |
JP5853569B2 (en) | 2011-10-12 | 2016-02-09 | 富士通株式会社 | Control method and program, and computer |
US8839113B2 (en) | 2011-10-26 | 2014-09-16 | Brocade Communications Systems, Inc. | Method for bridging multiple network views |
US8949197B2 (en) | 2011-10-31 | 2015-02-03 | Oracle International Corporation | Virtual full backups |
US9009449B2 (en) | 2011-11-10 | 2015-04-14 | Oracle International Corporation | Reducing power consumption and resource utilization during miss lookahead |
US8990495B2 (en) | 2011-11-15 | 2015-03-24 | Emc Corporation | Method and system for storing data in raid memory devices |
CN102364474B (en) | 2011-11-17 | 2014-08-20 | 中国科学院计算技术研究所 | Metadata storage system for cluster file system and metadata management method |
US9203625B2 (en) | 2011-11-28 | 2015-12-01 | Cleversafe, Inc. | Transferring encoded data slices in a distributed storage network |
US8824296B2 (en) | 2011-12-13 | 2014-09-02 | Telefonaktiebolaget L M Ericsson (Publ) | Handling congestion in a queue without discarding new messages received from a message sender |
US9461896B2 (en) | 2011-12-15 | 2016-10-04 | Riverbed Technology, Inc. | Methods and systems for efficient updating of time-aligned graphs in a monitoring system |
US9274838B2 (en) | 2011-12-22 | 2016-03-01 | Netapp, Inc. | Dynamic instantiation and management of virtual caching appliances |
US8712963B1 (en) | 2011-12-22 | 2014-04-29 | Emc Corporation | Method and apparatus for content-aware resizing of data chunks for replication |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
WO2013101947A1 (en) | 2011-12-27 | 2013-07-04 | Solidfire, Inc. | Proportional quality of service based on client usage and system metrics |
US9003021B2 (en) | 2011-12-27 | 2015-04-07 | Solidfire, Inc. | Management of storage system access based on client performance and cluser health |
US20130227145A1 (en) | 2011-12-27 | 2013-08-29 | Solidfire, Inc. | Slice server rebalancing |
US8843711B1 (en) | 2011-12-28 | 2014-09-23 | Netapp, Inc. | Partial write without read-modify |
KR20130076430A (en) | 2011-12-28 | 2013-07-08 | 삼성전자주식회사 | Adaptive copy-back method and storage device using method thereof |
US8799705B2 (en) | 2012-01-04 | 2014-08-05 | Emc Corporation | Data protection in a random access disk array |
US9088516B2 (en) | 2012-01-18 | 2015-07-21 | F5 Networks, Inc. | Virtual network services |
US20150019792A1 (en) | 2012-01-23 | 2015-01-15 | The Regents Of The University Of California | System and method for implementing transactions using storage device support for atomic updates and flexible interface for managing data logging |
US9542227B2 (en) | 2012-01-30 | 2017-01-10 | Nvidia Corporation | Parallel dynamic memory allocation using a lock-free FIFO |
US9053140B2 (en) | 2012-02-03 | 2015-06-09 | Apple Inc. | Enhanced B-trees with record merging |
US9201804B1 (en) | 2012-02-06 | 2015-12-01 | Google Inc. | Dynamically adapting the configuration of a multi-queue cache based on access patterns |
KR101445025B1 (en) | 2012-02-09 | 2014-09-26 | 서울시립대학교 산학협력단 | Efficient raid scheme for reliable ssd |
US8977893B2 (en) | 2012-02-17 | 2015-03-10 | Lsi Corporation | Accelerated rebuild and zero time rebuild in raid systems |
US8972568B2 (en) | 2012-02-21 | 2015-03-03 | Telefonaktiebolaget L M Ericsson (Publ) | Quantifying user quality of experience by passive monitoring |
EP2738679A1 (en) | 2012-02-24 | 2014-06-04 | Hitachi, Ltd. | Computer program and management computer |
US9165005B2 (en) | 2012-02-24 | 2015-10-20 | Simplivity Corporation | Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory |
US9203713B2 (en) | 2012-03-02 | 2015-12-01 | Payoda Inc. | System and method for creating and establishing a workflow based template for a domain server or IP server in datacenters |
US9417811B2 (en) | 2012-03-07 | 2016-08-16 | International Business Machines Corporation | Efficient inline data de-duplication on a storage system |
US20130238832A1 (en) | 2012-03-07 | 2013-09-12 | Netapp, Inc. | Deduplicating hybrid storage aggregate |
US8732403B1 (en) | 2012-03-14 | 2014-05-20 | Netapp, Inc. | Deduplication of data blocks on storage devices |
US8706971B1 (en) | 2012-03-14 | 2014-04-22 | Netapp, Inc. | Caching and deduplication of data blocks in cache memory |
US9460009B1 (en) | 2012-03-26 | 2016-10-04 | Emc Corporation | Logical unit creation in data storage system |
US20130262412A1 (en) | 2012-03-28 | 2013-10-03 | Brett Derek Hawton | Method and System For Database Transaction Log Compression On SQL Server |
US8943282B1 (en) | 2012-03-29 | 2015-01-27 | Emc Corporation | Managing snapshots in cache-based storage systems |
JP5958020B2 (en) | 2012-03-30 | 2016-07-27 | 富士通株式会社 | Storage system |
US8812456B2 (en) | 2012-03-30 | 2014-08-19 | Netapp Inc. | Systems, methods, and computer program products for scheduling processing to achieve space savings |
US8918581B2 (en) | 2012-04-02 | 2014-12-23 | Microsoft Corporation | Enhancing the lifetime and performance of flash-based storage |
US8688652B2 (en) | 2012-04-05 | 2014-04-01 | International Business Machines Corporation | Increased in-line deduplication efficiency |
US9075710B2 (en) | 2012-04-17 | 2015-07-07 | SanDisk Technologies, Inc. | Non-volatile key-value store |
US9116625B2 (en) | 2012-05-11 | 2015-08-25 | Micron Technology, Inc. | Write command overlap detection |
US9141290B2 (en) | 2012-05-13 | 2015-09-22 | Emc Corporation | Snapshot mechanism |
US20130325828A1 (en) | 2012-05-14 | 2013-12-05 | Confio Corporation | System and Method For Providing High-Availability and High-Performance Options For Transaction Log |
WO2013171794A1 (en) | 2012-05-17 | 2013-11-21 | Hitachi, Ltd. | Method of data migration and information storage system |
US10831728B2 (en) | 2012-05-29 | 2020-11-10 | International Business Machines Corporation | Application-controlled sub-LUN level data migration |
US8868868B1 (en) | 2012-05-31 | 2014-10-21 | Netapp, Inc. | Method and system for responding to client requests for information maintained by storage systems |
EP2859437A4 (en) | 2012-06-08 | 2016-06-08 | Hewlett Packard Development Co | Checkpointing using fpga |
US9262320B2 (en) | 2012-06-15 | 2016-02-16 | International Business Machines Corporation | Tracking transactional execution footprint |
US9003162B2 (en) | 2012-06-20 | 2015-04-07 | Microsoft Technology Licensing, Llc | Structuring storage based on latch-free B-trees |
US20130346700A1 (en) | 2012-06-21 | 2013-12-26 | Alexander I. Tomlinson | Systems and methods for managing memory |
US9690703B1 (en) | 2012-06-27 | 2017-06-27 | Netapp, Inc. | Systems and methods providing storage system write elasticity buffers |
US8799601B1 (en) | 2012-06-28 | 2014-08-05 | Emc Corporation | Techniques for managing deduplication based on recently written extents |
US8904224B2 (en) | 2012-07-20 | 2014-12-02 | International Business Machines Corporation | Providing replication and fail-over as a network service in data centers |
US8904231B2 (en) | 2012-08-08 | 2014-12-02 | Netapp, Inc. | Synchronous local and cross-site failover in clustered storage systems |
US8903876B2 (en) | 2012-08-15 | 2014-12-02 | Facebook, Inc. | File storage system based on coordinated exhaustible and non-exhaustible storage |
US9218255B2 (en) | 2012-08-27 | 2015-12-22 | International Business Machines Corporation | Multi-volume instant virtual copy freeze |
US9501483B2 (en) | 2012-09-18 | 2016-11-22 | Mapr Technologies, Inc. | Table format for map reduce system |
US9009402B2 (en) | 2012-09-20 | 2015-04-14 | Emc Corporation | Content addressable storage in legacy systems |
US9318154B2 (en) | 2012-09-20 | 2016-04-19 | Dell Products L.P. | Method and system for preventing unreliable data operations at cold temperatures |
US8922928B2 (en) | 2012-09-20 | 2014-12-30 | Dell Products L.P. | Method and system for preventing unreliable data operations at cold temperatures |
US9021303B1 (en) | 2012-09-24 | 2015-04-28 | Emc Corporation | Multi-threaded in-memory processing of a transaction log for concurrent access to data during log replay |
US10318495B2 (en) | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
US9413680B1 (en) | 2012-09-26 | 2016-08-09 | Amazon Technologies, Inc. | Multi-tenant throttling approaches |
US8745415B2 (en) | 2012-09-26 | 2014-06-03 | Pure Storage, Inc. | Multi-drive cooperation to generate an encryption key |
US9146684B2 (en) | 2012-09-28 | 2015-09-29 | Netapp, Inc. | Storage architecture for server flash and storage array operation |
KR102002830B1 (en) | 2012-09-28 | 2019-07-23 | 삼성전자 주식회사 | Segment cleaning apparatus and method thereof |
KR102007650B1 (en) | 2012-10-05 | 2019-10-23 | 삼성전자 주식회사 | Segment group considering segment cleaning apparatus and method thereof |
US20140101298A1 (en) | 2012-10-05 | 2014-04-10 | Microsoft Corporation | Service level agreements for a configurable distributed storage system |
US9141480B2 (en) | 2012-10-17 | 2015-09-22 | Datadirect Networks, Inc. | Handling failed transaction peers in a distributed hash table |
KR102010624B1 (en) | 2012-11-02 | 2019-08-13 | 실버레이크 모빌리티 에코시스템 에스디엔 비에이치디 | Method of processing requests for digital services |
US8874908B2 (en) | 2012-11-07 | 2014-10-28 | Wolfgang Raudaschl | Process for storing data on a central server |
US8930778B2 (en) | 2012-11-15 | 2015-01-06 | Seagate Technology Llc | Read disturb effect determination |
US8898113B2 (en) | 2012-11-21 | 2014-11-25 | International Business Machines Corporation | Managing replicated data |
US9262430B2 (en) | 2012-11-22 | 2016-02-16 | Kaminario Technologies Ltd. | Deduplication in a storage system |
US9449040B2 (en) | 2012-11-26 | 2016-09-20 | Amazon Technologies, Inc. | Block restore ordering in a streaming restore system |
US9363187B2 (en) | 2012-11-28 | 2016-06-07 | Nvidia Corporation | Jitter buffering system and method of jitter buffering |
US9342243B2 (en) | 2012-11-28 | 2016-05-17 | Lenovo (Beijing) Co., Ltd. | Method and electronic apparatus for implementing multi-operating system |
US9268695B2 (en) | 2012-12-12 | 2016-02-23 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Methods and structure for using region locks to divert I/O requests in a storage controller having multiple processing stacks |
US9251201B2 (en) | 2012-12-14 | 2016-02-02 | Microsoft Technology Licensing, Llc | Compatibly extending offload token size |
US9727598B2 (en) | 2012-12-19 | 2017-08-08 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for fixing logical or physical corruption in databases using LSM trees |
US9411718B2 (en) | 2012-12-21 | 2016-08-09 | Seagate Technology Llc | Method to apply fine grain wear leveling and garbage collection |
US9331936B2 (en) | 2012-12-30 | 2016-05-03 | Mellanox Technologies Ltd. | Switch fabric support for overlay network features |
US9459856B2 (en) | 2013-01-02 | 2016-10-04 | International Business Machines Corporation | Effective migration and upgrade of virtual machines in cloud environments |
US9702346B2 (en) | 2013-01-09 | 2017-07-11 | Honeywell International Inc. | Synchronizing data from irregularly sampled sensors |
US9141554B1 (en) | 2013-01-18 | 2015-09-22 | Cisco Technology, Inc. | Methods and apparatus for data processing using data compression, linked lists and de-duplication techniques |
US9495288B2 (en) | 2013-01-22 | 2016-11-15 | Seagate Technology Llc | Variable-size flash translation layer |
US20140215147A1 (en) | 2013-01-25 | 2014-07-31 | Hewlett-Packard Development Company, L.P. | Raid storage rebuild processing |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
CN103970481B (en) | 2013-01-29 | 2017-03-01 | 国际商业机器公司 | The method and apparatus rebuilding memory array |
US20140215170A1 (en) | 2013-01-31 | 2014-07-31 | Futurewei Technologies, Inc. | Block Compression in a Key/Value Store |
WO2014117298A1 (en) | 2013-01-31 | 2014-08-07 | Hewlett-Packard Development Company, L.P. | Event log system |
US9852055B2 (en) | 2013-02-25 | 2017-12-26 | International Business Machines Corporation | Multi-level memory compression |
US20140250440A1 (en) | 2013-03-01 | 2014-09-04 | Adaptive Computing Enterprises, Inc. | System and method for managing storage input/output for a compute environment |
US20140259000A1 (en) | 2013-03-05 | 2014-09-11 | Cisco Technology, Inc. | Mitigating Issues Due to Firmware Upgrades in a Converged Network Environment |
US9792120B2 (en) | 2013-03-05 | 2017-10-17 | International Business Machines Corporation | Anticipated prefetching for a parent core in a multi-core chip |
KR102035193B1 (en) | 2013-03-11 | 2019-10-22 | 삼성전자주식회사 | Method for sherching for network an electronic device thereof |
US8751763B1 (en) | 2013-03-13 | 2014-06-10 | Nimbus Data Systems, Inc. | Low-overhead deduplication within a block-based data storage |
US9953351B1 (en) | 2013-03-13 | 2018-04-24 | Amazon Technologies, Inc. | Managing resource requests that exceed reserved resource capacity |
US9304901B2 (en) | 2013-03-14 | 2016-04-05 | Datadirect Networks Inc. | System and method for handling I/O write requests |
US10706009B2 (en) | 2013-03-14 | 2020-07-07 | Oracle International Corporation | Techniques to parallelize CPU and IO work of log writes |
US9195939B1 (en) | 2013-03-15 | 2015-11-24 | Cavium, Inc. | Scope in decision trees |
US9842053B2 (en) | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
US9460024B2 (en) | 2013-03-15 | 2016-10-04 | Vmware, Inc. | Latency reduction for direct memory access operations involving address translation |
US9971888B2 (en) | 2013-03-15 | 2018-05-15 | Id Integration, Inc. | OS security filter |
US9672237B2 (en) | 2013-03-15 | 2017-06-06 | Amazon Technologies, Inc. | System-wide checkpoint avoidance for distributed database systems |
US20150095555A1 (en) | 2013-09-27 | 2015-04-02 | Avalanche Technology, Inc. | Method of thin provisioning in a solid state disk array |
CN104246722B (en) | 2013-03-29 | 2017-02-22 | 株式会社东芝 | Storage system for eliminating data duplication on basis of hash table, storage controller, and method |
US20140304548A1 (en) | 2013-04-03 | 2014-10-09 | International Business Machines Corporation | Intelligent and efficient raid rebuild technique |
US20140317093A1 (en) | 2013-04-22 | 2014-10-23 | Salesforce.Com, Inc. | Facilitating dynamic creation of multi-column index tables and management of customer queries in an on-demand services environment |
US9213633B2 (en) | 2013-04-30 | 2015-12-15 | Seagate Technology Llc | Flash translation layer with lower write amplification |
US9563683B2 (en) | 2013-05-14 | 2017-02-07 | Actifio, Inc. | Efficient data replication |
GB2528585A (en) | 2013-05-17 | 2016-01-27 | Hitachi Ltd | Storage device |
US20140344539A1 (en) | 2013-05-20 | 2014-11-20 | Kaminario Technologies Ltd. | Managing data in a storage system |
US8849764B1 (en) | 2013-06-13 | 2014-09-30 | DataGravity, Inc. | System and method of data intelligent storage |
US9213706B2 (en) | 2013-06-13 | 2015-12-15 | DataGravity, Inc. | Live restore for a data intelligent storage system |
US9438665B1 (en) | 2013-06-18 | 2016-09-06 | Amazon Technologies, Inc. | Scheduling and tracking control plane operations for distributed storage systems |
US9317436B2 (en) | 2013-06-21 | 2016-04-19 | Hewlett Packard Enterprise Development Lp | Cache node processing |
US9519591B2 (en) | 2013-06-22 | 2016-12-13 | Microsoft Technology Licensing, Llc | Latch-free, log-structured storage for multiple access methods |
US9026694B1 (en) | 2013-06-24 | 2015-05-05 | Emc Corporation | Techniques for workload redistibution |
WO2014209984A1 (en) | 2013-06-25 | 2014-12-31 | Marvell World Trade Ltd. | Adaptive cache memory controller |
WO2015000503A1 (en) | 2013-07-02 | 2015-01-08 | Hitachi Data Systems Engineering UK Limited | Method and apparatus for migration of a virtualized file system, data storage system for migration of a virtualized file system, and file server for use in a data storage system |
US9411764B2 (en) | 2013-07-23 | 2016-08-09 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Optimized redundant high availability SAS topology |
US9432270B2 (en) | 2013-07-30 | 2016-08-30 | Draios Inc. | Performance and security management of applications deployed in hosted computing environments |
US9921732B2 (en) | 2013-07-31 | 2018-03-20 | Splunk Inc. | Radial graphs for visualizing data in real-time |
US9256631B2 (en) | 2013-07-31 | 2016-02-09 | Oracle International Corporation | Building a hash table using vectorized instructions |
US20150039716A1 (en) | 2013-08-01 | 2015-02-05 | Coraid, Inc. | Management of a Networked Storage System Through a Storage Area Network |
US9244724B2 (en) | 2013-08-15 | 2016-01-26 | Globalfoundries Inc. | Management of transactional memory access requests by a cache memory |
US9582198B2 (en) | 2013-08-26 | 2017-02-28 | Vmware, Inc. | Compressed block map of densely-populated data structures |
CN105900073B (en) | 2013-08-29 | 2020-04-10 | 慧与发展有限责任合伙企业 | System, computer readable medium, and method for maintaining a transaction log |
US9268502B2 (en) | 2013-09-16 | 2016-02-23 | Netapp, Inc. | Dense tree volume metadata organization |
US9430383B2 (en) | 2013-09-20 | 2016-08-30 | Oracle International Corporation | Fast data initialization |
EP2852097B1 (en) | 2013-09-20 | 2016-08-10 | CoScale NV | Efficient data center monitoring |
US9418131B1 (en) * | 2013-09-24 | 2016-08-16 | Emc Corporation | Synchronization of volumes |
US9385959B2 (en) | 2013-09-26 | 2016-07-05 | Acelio, Inc. | System and method for improving TCP performance in virtualized environments |
US9405783B2 (en) | 2013-10-02 | 2016-08-02 | Netapp, Inc. | Extent hashing technique for distributed storage architecture |
US9372757B2 (en) | 2013-10-18 | 2016-06-21 | Netapp, Inc. | Incremental block level backup |
JP6255893B2 (en) | 2013-10-24 | 2018-01-10 | 富士通株式会社 | Storage control device and storage control program |
US10503716B2 (en) | 2013-10-31 | 2019-12-10 | Oracle International Corporation | Systems and methods for generating bit matrices for hash functions using fast filtering |
US9400745B2 (en) | 2013-11-06 | 2016-07-26 | International Business Machines Corporation | Physical address management in solid state memory |
CN105009099B (en) | 2013-11-07 | 2018-02-06 | 株式会社日立制作所 | Computer system and data control method |
US10073630B2 (en) | 2013-11-08 | 2018-09-11 | Sandisk Technologies Llc | Systems and methods for log coordination |
US9152684B2 (en) | 2013-11-12 | 2015-10-06 | Netapp, Inc. | Snapshots and clones of volumes in a storage system |
US9201918B2 (en) | 2013-11-19 | 2015-12-01 | Netapp, Inc. | Dense tree volume metadata update logging and checkpointing |
US9274901B2 (en) | 2013-11-20 | 2016-03-01 | Avago Technologies General Ip (Singapore) Pte. Ltd. | I/O request mirroring in a clustered storage system |
US20160149763A1 (en) | 2013-11-27 | 2016-05-26 | Carl B Ingram | Systems and Methods for Providing an Administrative Framework in a Cloud Architecture |
US10693955B2 (en) | 2013-12-14 | 2020-06-23 | Netapp, Inc. | Techniques for SAN storage cluster synchronous disaster recovery |
US9965363B2 (en) | 2013-12-14 | 2018-05-08 | Netapp, Inc. | Techniques for LIF placement in SAN storage cluster synchronous disaster recovery |
US9367421B2 (en) | 2013-12-20 | 2016-06-14 | Netapp, Inc. | Systems, methods, and computer programs products providing relevant correlation of data source performance |
US9466383B2 (en) | 2013-12-30 | 2016-10-11 | Sandisk Technologies Llc | Non-volatile memory and method with adaptive logical groups |
US9170746B2 (en) | 2014-01-07 | 2015-10-27 | Netapp, Inc. | Clustered raid assimilation management |
US9448924B2 (en) | 2014-01-08 | 2016-09-20 | Netapp, Inc. | Flash optimized, log-structured layer of a file system |
US9727625B2 (en) | 2014-01-16 | 2017-08-08 | International Business Machines Corporation | Parallel transaction messages for database replication |
US9483349B2 (en) | 2014-01-17 | 2016-11-01 | Netapp, Inc. | Clustered raid data organization |
US9256549B2 (en) | 2014-01-17 | 2016-02-09 | Netapp, Inc. | Set-associative hash table organization for efficient storage and retrieval of data in a storage system |
US9268653B2 (en) | 2014-01-17 | 2016-02-23 | Netapp, Inc. | Extent metadata update logging and checkpointing |
WO2015107666A1 (en) | 2014-01-17 | 2015-07-23 | 株式会社日立製作所 | Storage apparatus and cache control method for storage apparatus |
US9454434B2 (en) | 2014-01-17 | 2016-09-27 | Netapp, Inc. | File system driven raid rebuild technique |
US20150301964A1 (en) | 2014-02-18 | 2015-10-22 | Alistair Mark Brinicombe | Methods and systems of multi-memory, control and data plane architecture |
JP6233086B2 (en) | 2014-02-20 | 2017-11-22 | 富士通株式会社 | Storage control device, storage system, and control program |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
KR102033323B1 (en) | 2014-03-05 | 2019-10-17 | 한국전자통신연구원 | Method for storing metadata of log-structured file system for flash memory |
US20150253992A1 (en) | 2014-03-10 | 2015-09-10 | Kabushiki Kaisha Toshiba | Memory system and control method |
WO2015135574A1 (en) | 2014-03-11 | 2015-09-17 | Hitachi Data Systems Engineering UK Limited | Computer program product, method, apparatus and data storage system for controlling write operations in the data storage system |
US20150261446A1 (en) | 2014-03-12 | 2015-09-17 | Futurewei Technologies, Inc. | Ddr4-onfi ssd 1-to-n bus adaptation and expansion controller |
US9633056B2 (en) | 2014-03-17 | 2017-04-25 | Commvault Systems, Inc. | Maintaining a deduplication database |
CN104934066B (en) | 2014-03-19 | 2018-03-27 | 安华高科技通用Ip(新加坡)公司 | Reading interference processing in nand flash memory |
WO2015142339A1 (en) | 2014-03-20 | 2015-09-24 | Hewlett-Packard Development Company, L.P. | Storage system transactions |
US9996549B2 (en) | 2014-03-21 | 2018-06-12 | Entangled Media Corp. | Method to construct a file system based on aggregated metadata from disparate sources |
US9274713B2 (en) | 2014-04-03 | 2016-03-01 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Device driver, method and computer-readable medium for dynamically configuring a storage controller based on RAID type, data alignment with a characteristic of storage elements and queue depth in a cache |
US9697228B2 (en) | 2014-04-14 | 2017-07-04 | Vembu Technologies Private Limited | Secure relational file system with version control, deduplication, and error correction |
US9471428B2 (en) | 2014-05-06 | 2016-10-18 | International Business Machines Corporation | Using spare capacity in solid state drives |
US9823842B2 (en) | 2014-05-12 | 2017-11-21 | The Research Foundation For The State University Of New York | Gang migration of virtual machines using cluster-wide deduplication |
US9891993B2 (en) | 2014-05-23 | 2018-02-13 | International Business Machines Corporation | Managing raid parity stripe contention |
US9639546B1 (en) | 2014-05-23 | 2017-05-02 | Amazon Technologies, Inc. | Object-backed block-based distributed storage |
US8850108B1 (en) | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US9372767B2 (en) | 2014-06-06 | 2016-06-21 | Netapp, Inc. | Recovery consumer framework |
US9524201B2 (en) | 2014-06-19 | 2016-12-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Safe and efficient dirty data flush for dynamic logical capacity based cache in storage systems |
US9514054B2 (en) | 2014-07-08 | 2016-12-06 | Netapp, Inc. | Method to persistent invalidation to ensure cache durability |
US9372630B2 (en) | 2014-07-09 | 2016-06-21 | International Business Machines Corporation | Migration of newly allocated data to a storage tier |
EP3167373A4 (en) | 2014-07-10 | 2018-02-28 | Sios Technology Corporation | Interface for orchestration and analysis of a computer environment |
US9298796B2 (en) | 2014-08-01 | 2016-03-29 | Veeva Systems Inc. | System and method for enterprise data management |
US20160048342A1 (en) | 2014-08-12 | 2016-02-18 | Facebook, Inc. | Reducing read/write overhead in a storage array |
JP2016057795A (en) | 2014-09-09 | 2016-04-21 | 富士通株式会社 | Storage control device, storage system, and storage control program |
US9524103B2 (en) | 2014-09-10 | 2016-12-20 | Netapp, Inc. | Technique for quantifying logical space trapped in an extent store |
US20160070644A1 (en) | 2014-09-10 | 2016-03-10 | Netapp, Inc. | Offset range operation striping to improve concurrency of execution and reduce contention among resources |
US20160070714A1 (en) | 2014-09-10 | 2016-03-10 | Netapp, Inc. | Low-overhead restartable merge operation with efficient crash recovery |
US9501359B2 (en) | 2014-09-10 | 2016-11-22 | Netapp, Inc. | Reconstruction of dense tree volume metadata state across crash recovery |
US20160077744A1 (en) | 2014-09-11 | 2016-03-17 | Netapp, Inc. | Deferred reference count update technique for low overhead volume metadata |
US9772783B2 (en) | 2014-09-25 | 2017-09-26 | Dropbox, Inc. | Constructing an index to facilitate accessing a closed extent in an append-only storage system |
US10164841B2 (en) | 2014-10-02 | 2018-12-25 | Pure Storage, Inc. | Cloud assist for storage systems |
US9208463B1 (en) | 2014-10-09 | 2015-12-08 | Splunk Inc. | Thresholds for key performance indicators derived from machine data |
US9846642B2 (en) | 2014-10-21 | 2017-12-19 | Samsung Electronics Co., Ltd. | Efficient key collision handling |
US10530880B2 (en) | 2014-10-31 | 2020-01-07 | Netapp, Inc. | Scalable multiple VLAN multi-tenant networking |
US9817602B2 (en) | 2014-11-13 | 2017-11-14 | Violin Systems Llc | Non-volatile buffering for deduplication |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US20160149766A1 (en) | 2014-11-21 | 2016-05-26 | Pure Storage, Inc. | Cloud based management of storage systems |
US9519666B2 (en) | 2014-11-27 | 2016-12-13 | E8 Storage Systems Ltd. | Snapshots and thin-provisioning in distributed storage over shared storage devices |
WO2016088234A1 (en) | 2014-12-04 | 2016-06-09 | 株式会社 東芝 | Storage device which extends useful lifetime of non-volatile semiconductor memory of different characteristics |
US9817858B2 (en) | 2014-12-10 | 2017-11-14 | Sap Se | Generating hash values |
US9619158B2 (en) | 2014-12-17 | 2017-04-11 | International Business Machines Corporation | Two-level hierarchical log structured array architecture with minimized write amplification |
US9852076B1 (en) | 2014-12-18 | 2017-12-26 | Violin Systems Llc | Caching of metadata for deduplicated LUNs |
JP6073854B2 (en) | 2014-12-26 | 2017-02-01 | 京セラドキュメントソリューションズ株式会社 | Electronic equipment and firmware recovery program |
US20170351543A1 (en) | 2015-01-29 | 2017-12-07 | Hewlett Packard Enterprise Development Lp | Heap data structure |
US10216966B2 (en) | 2015-02-25 | 2019-02-26 | Netapp, Inc. | Perturb key technique |
US9658785B2 (en) | 2015-03-25 | 2017-05-23 | Amazon Technologies, Inc. | Dynamic configuration of data volumes |
US9378043B1 (en) | 2015-05-28 | 2016-06-28 | Altera Corporation | Multilayer quality of service (QOS) for network functions virtualization platforms |
US9798497B1 (en) | 2015-06-08 | 2017-10-24 | Skytap | Storage area network emulation |
US9678681B2 (en) | 2015-06-17 | 2017-06-13 | International Business Machines Corporation | Secured multi-tenancy data in cloud-based storage environments |
US9652405B1 (en) | 2015-06-30 | 2017-05-16 | EMC IP Holding Company LLC | Persistence of page access heuristics in a memory centric architecture |
US10565230B2 (en) | 2015-07-31 | 2020-02-18 | Netapp, Inc. | Technique for preserving efficiency for replication between clusters of a network |
US10394660B2 (en) | 2015-07-31 | 2019-08-27 | Netapp, Inc. | Snapshot restore workflow |
US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation workflow |
US10083082B2 (en) | 2015-09-07 | 2018-09-25 | International Business Machines Corporation | Efficient index checkpointing in log-structured object stores |
US10331625B2 (en) | 2015-09-22 | 2019-06-25 | Facebook, Inc. | Managing sequential data store |
US9785525B2 (en) | 2015-09-24 | 2017-10-10 | Netapp, Inc. | High availability failover manager |
US20170097771A1 (en) | 2015-10-01 | 2017-04-06 | Netapp, Inc. | Transaction log layout for efficient reclamation and recovery |
US20170109298A1 (en) | 2015-10-15 | 2017-04-20 | Kabushiki Kaisha Toshiba | Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto |
US10120613B2 (en) | 2015-10-30 | 2018-11-06 | Sandisk Technologies Llc | System and method for rescheduling host and maintenance operations in a non-volatile memory |
US9954946B2 (en) | 2015-11-24 | 2018-04-24 | Netapp, Inc. | Directory level incremental replication |
US9537827B1 (en) | 2015-12-21 | 2017-01-03 | Netapp, Inc. | Secure mode VLANs systems and methods |
US9846539B2 (en) | 2016-01-22 | 2017-12-19 | Netapp, Inc. | Recovery from low space condition of an extent store |
US10515192B2 (en) | 2016-02-02 | 2019-12-24 | Vmware, Inc. | Consistent snapshots and clones in an asymmetric virtual distributed file system |
US10191674B2 (en) | 2016-04-15 | 2019-01-29 | Netapp, Inc. | Shared dense tree repair |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
US10382343B2 (en) | 2017-04-04 | 2019-08-13 | Netapp, Inc. | Intelligent thread management across isolated network stacks |
-
2014
- 2014-02-21 US US14/186,847 patent/US20150244795A1/en not_active Abandoned
-
2015
- 2015-02-19 WO PCT/US2015/016625 patent/WO2015127083A2/en active Application Filing
- 2015-04-13 US US14/684,929 patent/US10628443B2/en active Active
-
2020
- 2020-04-20 US US16/853,660 patent/US11386120B2/en active Active
Patent Citations (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6779003B1 (en) * | 1999-12-16 | 2004-08-17 | Livevault Corporation | Systems and methods for backing up data files |
US7188149B2 (en) * | 2001-03-07 | 2007-03-06 | Hitachi, Ltd. | Storage operating data control system |
US7543100B2 (en) * | 2001-06-18 | 2009-06-02 | 3Par, Inc. | Node controller for a data storage system |
US7805583B1 (en) * | 2003-04-23 | 2010-09-28 | Emc Corporation | Method and apparatus for migrating data in a clustered computer system environment |
US20050027817A1 (en) * | 2003-07-31 | 2005-02-03 | Microsoft Corporation | Replication protocol for data stores |
US7395283B1 (en) * | 2003-11-10 | 2008-07-01 | Emc Corporation | Method and apparatus for making independent data copies in a data processing system |
US8055745B2 (en) * | 2004-06-01 | 2011-11-08 | Inmage Systems, Inc. | Methods and apparatus for accessing data from a primary data storage system for secondary storage |
US20090157870A1 (en) * | 2005-09-20 | 2009-06-18 | Nec Corporation | Resource-amount calculation system, and method and program thereof |
US20070088702A1 (en) * | 2005-10-03 | 2007-04-19 | Fridella Stephen A | Intelligent network client for multi-protocol namespace redirection |
US20070083482A1 (en) * | 2005-10-08 | 2007-04-12 | Unmesh Rathi | Multiple quality of service file system |
US7962709B2 (en) * | 2005-12-19 | 2011-06-14 | Commvault Systems, Inc. | Network redirector systems and methods for performing data replication |
US20070186066A1 (en) * | 2006-02-03 | 2007-08-09 | Emc Corporation | Fast verification of computer backup data |
US20070186127A1 (en) * | 2006-02-03 | 2007-08-09 | Emc Corporation | Verification of computer backup data |
US20070208918A1 (en) * | 2006-03-01 | 2007-09-06 | Kenneth Harbin | Method and apparatus for providing virtual machine backup |
US7817562B1 (en) * | 2006-09-29 | 2010-10-19 | Emc Corporation | Methods and systems for back end characterization using I/O sampling |
US20090271412A1 (en) * | 2008-04-29 | 2009-10-29 | Maxiscale, Inc. | Peer-to-Peer Redundant File Server System and Methods |
US20120003940A1 (en) * | 2009-03-25 | 2012-01-05 | Nec Corporation | Communication device, recording medium for control program of communication device, communication system and communication method |
US8122213B2 (en) * | 2009-05-05 | 2012-02-21 | Dell Products L.P. | System and method for migration of data |
US8671265B2 (en) * | 2010-03-05 | 2014-03-11 | Solidfire, Inc. | Distributed data storage system providing de-duplication of data using block identifiers |
US8555019B2 (en) * | 2010-09-08 | 2013-10-08 | International Business Machines Corporation | Using a migration cache to cache tracks during migration |
US9411620B2 (en) * | 2010-11-29 | 2016-08-09 | Huawei Technologies Co., Ltd. | Virtual storage migration method, virtual storage migration system and virtual machine monitor |
US20120317353A1 (en) * | 2011-06-13 | 2012-12-13 | XtremlO Ltd. | Replication techniques with content addressable storage |
US20130007097A1 (en) * | 2011-06-30 | 2013-01-03 | Hitachi, Ltd. | Server system and method for controlling information system |
US20130073519A1 (en) * | 2011-09-20 | 2013-03-21 | Netapp, Inc. | Handling data extent size asymmetry during logical replication in a storage system |
US20140108350A1 (en) * | 2011-09-23 | 2014-04-17 | Hybrid Logic Ltd | System for live-migration and automated recovery of applications in a distributed system |
US20130138616A1 (en) * | 2011-11-29 | 2013-05-30 | International Business Machines Corporation | Synchronizing updates across cluster filesystems |
US20130232261A1 (en) * | 2011-12-27 | 2013-09-05 | Solidfire, Inc. | Quality of service policy sets |
US20130185719A1 (en) * | 2012-01-17 | 2013-07-18 | Microsoft Corporation | Throttling guest write ios based on destination throughput |
US9092142B2 (en) * | 2012-06-26 | 2015-07-28 | Hitachi, Ltd. | Storage system and method of controlling the same |
US20140006353A1 (en) * | 2012-06-28 | 2014-01-02 | International Business Machines Corporation | Recording backup information for backed-up data items in a data item list |
US9047211B2 (en) * | 2013-03-15 | 2015-06-02 | SanDisk Technologies, Inc. | Managing data reliability |
US20140310231A1 (en) * | 2013-04-16 | 2014-10-16 | Cognizant Technology Solutions India Pvt. Ltd. | System and method for automating data warehousing processes |
US20140344222A1 (en) * | 2013-05-16 | 2014-11-20 | Oracle International Corporation | Method and apparatus for replication size estimation and progress monitoring |
US20150066852A1 (en) * | 2013-08-27 | 2015-03-05 | Netapp, Inc. | Detecting out-of-band (oob) changes when replicating a source file system using an in-line system |
Cited By (155)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11379119B2 (en) | 2010-03-05 | 2022-07-05 | Netapp, Inc. | Writing data in a distributed data storage system |
US10951488B2 (en) | 2011-12-27 | 2021-03-16 | Netapp, Inc. | Rule-based performance class access management for storage cluster performance guarantees |
US11212196B2 (en) | 2011-12-27 | 2021-12-28 | Netapp, Inc. | Proportional quality of service based on client impact on an overload condition |
US10911328B2 (en) | 2011-12-27 | 2021-02-02 | Netapp, Inc. | Quality of service policy based load adaption |
US20160110261A1 (en) * | 2013-05-07 | 2016-04-21 | Axcient, Inc. | Cloud storage using merkle trees |
US9923762B1 (en) * | 2013-08-13 | 2018-03-20 | Ca, Inc. | Upgrading an engine when a scenario is running |
US11386120B2 (en) | 2014-02-21 | 2022-07-12 | Netapp, Inc. | Data syncing in a distributed system |
US10826795B2 (en) | 2014-05-05 | 2020-11-03 | Nutanix, Inc. | Architecture for implementing service level management for a virtualization environment |
US9798728B2 (en) | 2014-07-24 | 2017-10-24 | Netapp, Inc. | System performing data deduplication using a dense tree data structure |
US9671960B2 (en) | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
US10210082B2 (en) | 2014-09-12 | 2019-02-19 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
US10176117B2 (en) * | 2014-10-01 | 2019-01-08 | Cacheio Llc | Efficient metadata in a storage system |
US20170300424A1 (en) * | 2014-10-01 | 2017-10-19 | Cacheio Llc | Efficient metadata in a storage system |
US10365838B2 (en) | 2014-11-18 | 2019-07-30 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
US9720779B2 (en) * | 2014-11-27 | 2017-08-01 | Institute For Information Industry | Backup system and backup method thereof |
US20160154704A1 (en) * | 2014-11-27 | 2016-06-02 | Institute For Information Industry | Backup system and backup method thereof |
US20170295239A1 (en) * | 2014-12-27 | 2017-10-12 | Huawei Technologies Co.,Ltd. | Data processing method, apparatus, and system |
US11032368B2 (en) | 2014-12-27 | 2021-06-08 | Huawei Technologies Co., Ltd. | Data processing method, apparatus, and system |
US11799959B2 (en) | 2014-12-27 | 2023-10-24 | Huawei Technologies Co., Ltd. | Data processing method, apparatus, and system |
US9720601B2 (en) | 2015-02-11 | 2017-08-01 | Netapp, Inc. | Load balancing technique for a storage array |
US9762460B2 (en) | 2015-03-24 | 2017-09-12 | Netapp, Inc. | Providing continuous context for operational information of a storage system |
US9710317B2 (en) | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation workflow |
US10223035B2 (en) * | 2015-08-28 | 2019-03-05 | Vmware, Inc. | Scalable storage space allocation in distributed storage systems |
US20170060432A1 (en) * | 2015-08-28 | 2017-03-02 | Vmware, Inc. | Scalable storage space allocation in distributed storage systems |
US10725976B2 (en) | 2015-09-22 | 2020-07-28 | International Business Machines Corporation | Fast recovery using self-describing replica files in a distributed storage system |
US10127243B2 (en) * | 2015-09-22 | 2018-11-13 | International Business Machines Corporation | Fast recovery using self-describing replica files in a distributed storage system |
US11106645B1 (en) * | 2015-09-29 | 2021-08-31 | EMC IP Holding Company LLC | Multi point in time object store |
US9613046B1 (en) * | 2015-12-14 | 2017-04-04 | Netapp, Inc. | Parallel optimized remote synchronization of active block storage |
US11226985B2 (en) * | 2015-12-15 | 2022-01-18 | Microsoft Technology Licensing, Llc | Replication of structured data records among partitioned data storage spaces |
US9740570B2 (en) * | 2015-12-18 | 2017-08-22 | Dropbox, Inc. | Network folder resynchronization |
US20170177445A1 (en) * | 2015-12-18 | 2017-06-22 | Dropbox, Inc. | Network folder resynchronization |
US11449391B2 (en) | 2015-12-18 | 2022-09-20 | Dropbox, Inc. | Network folder resynchronization |
US10585759B2 (en) | 2015-12-18 | 2020-03-10 | Dropbox, Inc. | Network folder resynchronization |
US10949309B2 (en) * | 2015-12-28 | 2021-03-16 | Netapp Inc. | Snapshot creation with synchronous replication |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
US11327910B2 (en) | 2016-09-20 | 2022-05-10 | Netapp, Inc. | Quality of service policy sets |
US11886363B2 (en) | 2016-09-20 | 2024-01-30 | Netapp, Inc. | Quality of service policy sets |
US10997098B2 (en) | 2016-09-20 | 2021-05-04 | Netapp, Inc. | Quality of service policy sets |
US11023539B2 (en) | 2016-09-26 | 2021-06-01 | Splunk Inc. | Data intake and query system search functionality in a data fabric service system |
US11126632B2 (en) | 2016-09-26 | 2021-09-21 | Splunk Inc. | Subquery generation based on search configuration data from an external data system |
US11580107B2 (en) | 2016-09-26 | 2023-02-14 | Splunk Inc. | Bucket data distribution for exporting data to worker nodes |
US11586627B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Partitioning and reducing records at ingest of a worker node |
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 |
US11593377B2 (en) | 2016-09-26 | 2023-02-28 | Splunk Inc. | Assigning processing tasks in a data intake and query system |
US11562023B1 (en) | 2016-09-26 | 2023-01-24 | Splunk Inc. | Merging buckets in 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 |
US11599541B2 (en) | 2016-09-26 | 2023-03-07 | Splunk Inc. | Determining records generated by a processing task of a query |
US10776355B1 (en) | 2016-09-26 | 2020-09-15 | Splunk Inc. | Managing, storing, and caching query results and partial query results for combination with additional query results |
US11232100B2 (en) | 2016-09-26 | 2022-01-25 | Splunk Inc. | Resource allocation for multiple datasets |
US11461334B2 (en) | 2016-09-26 | 2022-10-04 | Splunk Inc. | Data conditioning for dataset destination |
US11222066B1 (en) | 2016-09-26 | 2022-01-11 | Splunk Inc. | Processing data using containerized state-free indexing nodes in a containerized scalable environment |
US10956415B2 (en) | 2016-09-26 | 2021-03-23 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
US10977260B2 (en) * | 2016-09-26 | 2021-04-13 | Splunk Inc. | Task distribution in an execution node of a distributed execution environment |
US11604795B2 (en) | 2016-09-26 | 2023-03-14 | Splunk Inc. | Distributing partial results from an external data system between worker nodes |
US10984044B1 (en) | 2016-09-26 | 2021-04-20 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system |
US11442935B2 (en) | 2016-09-26 | 2022-09-13 | Splunk Inc. | Determining a record generation estimate of a processing task |
US11615104B2 (en) | 2016-09-26 | 2023-03-28 | Splunk Inc. | Subquery generation based on a data ingest estimate of an external data system |
US11003714B1 (en) | 2016-09-26 | 2021-05-11 | Splunk Inc. | Search node and bucket identification using a search node catalog and a data store catalog |
US11392654B2 (en) | 2016-09-26 | 2022-07-19 | Splunk Inc. | Data fabric service system |
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 |
US11636105B2 (en) | 2016-09-26 | 2023-04-25 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
US11010435B2 (en) | 2016-09-26 | 2021-05-18 | Splunk Inc. | Search service for a data fabric system |
US11341131B2 (en) | 2016-09-26 | 2022-05-24 | Splunk Inc. | Query scheduling based on a query-resource allocation and resource availability |
US11238112B2 (en) | 2016-09-26 | 2022-02-01 | Splunk Inc. | Search service system monitoring |
US11023463B2 (en) | 2016-09-26 | 2021-06-01 | Splunk Inc. | Converting and modifying a subquery for an external data system |
US11663227B2 (en) | 2016-09-26 | 2023-05-30 | Splunk Inc. | Generating a subquery for a distinct data intake and query system |
US11797618B2 (en) | 2016-09-26 | 2023-10-24 | Splunk Inc. | Data fabric service system deployment |
US11080345B2 (en) | 2016-09-26 | 2021-08-03 | Splunk Inc. | Search functionality of worker nodes in a data fabric service 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 |
US11860940B1 (en) | 2016-09-26 | 2024-01-02 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets |
US11106734B1 (en) | 2016-09-26 | 2021-08-31 | Splunk Inc. | Query execution using containerized state-free search nodes in a containerized scalable environment |
US11314753B2 (en) | 2016-09-26 | 2022-04-26 | Splunk Inc. | Execution of a query received from a data intake and query system |
US11586692B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Streaming data processing |
US11294941B1 (en) | 2016-09-26 | 2022-04-05 | Splunk Inc. | Message-based data ingestion to a data intake and query system |
US11874691B1 (en) | 2016-09-26 | 2024-01-16 | Splunk Inc. | Managing efficient query execution including mapping of buckets to search nodes |
US11163758B2 (en) | 2016-09-26 | 2021-11-02 | Splunk Inc. | External dataset capability compensation |
US11281706B2 (en) | 2016-09-26 | 2022-03-22 | Splunk Inc. | Multi-layer partition allocation for query execution |
US11176208B2 (en) | 2016-09-26 | 2021-11-16 | Splunk Inc. | Search functionality of a data intake and query system |
US11269939B1 (en) | 2016-09-26 | 2022-03-08 | Splunk Inc. | Iterative message-based data processing including streaming analytics |
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 |
US11243963B2 (en) | 2016-09-26 | 2022-02-08 | Splunk Inc. | Distributing partial results to worker nodes from an external data system |
US11194763B1 (en) * | 2016-09-29 | 2021-12-07 | Triad National Security, Llc | Scalable augmented enumeration and metadata operations for large filesystems |
US10951465B1 (en) * | 2016-09-29 | 2021-03-16 | Emc Ïp Holding Company Llc | Distributed file system analytics |
US10949387B1 (en) * | 2016-09-29 | 2021-03-16 | Triad National Security, Llc | Scalable filesystem enumeration and metadata operations |
US10331362B1 (en) * | 2016-09-30 | 2019-06-25 | EMC IP Holding Company LLC | Adaptive replication for segmentation anchoring type |
US11921672B2 (en) | 2017-07-31 | 2024-03-05 | Splunk Inc. | Query execution at a remote heterogeneous data store of a data fabric service |
US11151137B2 (en) | 2017-09-25 | 2021-10-19 | Splunk Inc. | Multi-partition operation in combination operations |
US11860874B2 (en) | 2017-09-25 | 2024-01-02 | Splunk Inc. | Multi-partitioning data for combination operations |
US11500875B2 (en) | 2017-09-25 | 2022-11-15 | Splunk Inc. | Multi-partitioning for combination operations |
US20190197562A1 (en) * | 2017-12-27 | 2019-06-27 | Irene Woerner | System and method for product authentication |
US11704336B2 (en) | 2017-12-28 | 2023-07-18 | Dropbox, Inc. | Efficient filename storage and retrieval |
US11120039B2 (en) | 2017-12-28 | 2021-09-14 | Dropbox, Inc. | Updating a remote tree for a client synchronization service |
US10949445B2 (en) | 2017-12-28 | 2021-03-16 | Dropbox, Inc. | Content management client synchronization service |
US11461365B2 (en) | 2017-12-28 | 2022-10-04 | Dropbox, Inc. | Atomic moves with lamport clocks in a content management system |
US11080297B2 (en) | 2017-12-28 | 2021-08-03 | Dropbox, Inc. | Incremental client synchronization |
US11048720B2 (en) | 2017-12-28 | 2021-06-29 | Dropbox, Inc. | Efficiently propagating diff values |
US11836151B2 (en) | 2017-12-28 | 2023-12-05 | Dropbox, Inc. | Synchronizing symbolic links |
US10599673B2 (en) | 2017-12-28 | 2020-03-24 | Dropbox, Inc. | Content management client synchronization service |
US11016991B2 (en) | 2017-12-28 | 2021-05-25 | Dropbox, Inc. | Efficient filename storage and retrieval |
US10671638B2 (en) | 2017-12-28 | 2020-06-02 | Dropbox, Inc. | Allocation and reassignment of unique identifiers for synchronization of content items |
US11010402B2 (en) | 2017-12-28 | 2021-05-18 | Dropbox, Inc. | Updating a remote tree for a client synchronization service |
US11003685B2 (en) | 2017-12-28 | 2021-05-11 | Dropbox, Inc. | Commit protocol for synchronizing content items |
US11423048B2 (en) | 2017-12-28 | 2022-08-23 | Dropbox, Inc. | Content management client synchronization service |
US11429634B2 (en) | 2017-12-28 | 2022-08-30 | Dropbox, Inc. | Storage interface for synchronizing content |
US11782949B2 (en) | 2017-12-28 | 2023-10-10 | Dropbox, Inc. | Violation resolution in client synchronization |
US10762104B2 (en) | 2017-12-28 | 2020-09-01 | Dropbox, Inc. | File journal interface for synchronizing content |
US11188559B2 (en) | 2017-12-28 | 2021-11-30 | Dropbox, Inc. | Directory snapshots with searchable file paths |
US11475041B2 (en) | 2017-12-28 | 2022-10-18 | Dropbox, Inc. | Resynchronizing metadata in a content management system |
US11176164B2 (en) | 2017-12-28 | 2021-11-16 | Dropbox, Inc. | Transition to an organization directory |
US11669544B2 (en) | 2017-12-28 | 2023-06-06 | Dropbox, Inc. | Allocation and reassignment of unique identifiers for synchronization of content items |
US11500897B2 (en) | 2017-12-28 | 2022-11-15 | Dropbox, Inc. | Allocation and reassignment of unique identifiers for synchronization of content items |
US10324903B1 (en) * | 2017-12-28 | 2019-06-18 | Dropbox, Inc. | Content management client synchronization service |
US11500899B2 (en) | 2017-12-28 | 2022-11-15 | Dropbox, Inc. | Efficient management of client synchronization updates |
US11514078B2 (en) | 2017-12-28 | 2022-11-29 | Dropbox, Inc. | File journal interface for synchronizing content |
US10691720B2 (en) | 2017-12-28 | 2020-06-23 | Dropbox, Inc. | Resynchronizing metadata in a content management system |
US10936622B2 (en) | 2017-12-28 | 2021-03-02 | Dropbox, Inc. | Storage interface for synchronizing content |
US10929427B2 (en) | 2017-12-28 | 2021-02-23 | Dropbox, Inc. | Selective synchronization of content items in a content management system |
US10922333B2 (en) | 2017-12-28 | 2021-02-16 | Dropbox, Inc. | Efficient management of client synchronization updates |
US11657067B2 (en) | 2017-12-28 | 2023-05-23 | Dropbox Inc. | Updating a remote tree for a client synchronization service |
US10726044B2 (en) | 2017-12-28 | 2020-07-28 | Dropbox, Inc. | Atomic moves with lamport clocks in a content management system |
US10877993B2 (en) | 2017-12-28 | 2020-12-29 | Dropbox, Inc. | Updating a local tree for a client synchronization service |
US10872098B2 (en) | 2017-12-28 | 2020-12-22 | Dropbox, Inc. | Allocation and reassignment of unique identifiers for synchronization of content items |
US10866964B2 (en) | 2017-12-28 | 2020-12-15 | Dropbox, Inc. | Updating a local tree for a client synchronization service |
US10789269B2 (en) | 2017-12-28 | 2020-09-29 | Dropbox, Inc. | Resynchronizing metadata in a content management system |
US10776386B2 (en) | 2017-12-28 | 2020-09-15 | Dropbox, Inc. | Content management client synchronization service |
US10733205B2 (en) | 2017-12-28 | 2020-08-04 | Dropbox, Inc. | Violation resolution in client synchronization |
US11579978B2 (en) | 2018-02-14 | 2023-02-14 | Rubrik, Inc. | Fileset partitioning for data storage and management |
US11334543B1 (en) | 2018-04-30 | 2022-05-17 | Splunk Inc. | Scalable bucket merging for a data intake and query system |
US11720537B2 (en) | 2018-04-30 | 2023-08-08 | Splunk Inc. | Bucket merging for a data intake and query system using size thresholds |
US20200073962A1 (en) * | 2018-08-29 | 2020-03-05 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US11334439B2 (en) | 2018-08-29 | 2022-05-17 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US10901957B2 (en) * | 2018-08-29 | 2021-01-26 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US11196542B2 (en) | 2018-08-29 | 2021-12-07 | International Business Machines Corporation | Checkpointing for increasing efficiency of a blockchain |
US11620191B2 (en) * | 2018-10-01 | 2023-04-04 | Rubrik, Inc. | Fileset passthrough using data management and storage node |
US11010351B1 (en) * | 2018-10-31 | 2021-05-18 | EMC IP Holding Company LLC | File system replication between software defined network attached storage processes using file system snapshots |
US11144401B2 (en) * | 2018-11-16 | 2021-10-12 | Vmware, Inc. | Component aware incremental backup, restore, and reconciliation solution |
US11615087B2 (en) | 2019-04-29 | 2023-03-28 | Splunk Inc. | Search time estimate in a 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 |
CN110730228A (en) * | 2019-10-10 | 2020-01-24 | 深圳市网心科技有限公司 | Data storage method, electronic device, system and medium |
CN112685378A (en) * | 2019-10-17 | 2021-04-20 | 伊姆西Ip控股有限责任公司 | Method, apparatus and computer-readable storage medium for garbage collection |
US20210117275A1 (en) * | 2019-10-17 | 2021-04-22 | EMC IP Holding Company LLC | Method, device and computer readalbe medium for garbage collection |
US11494380B2 (en) | 2019-10-18 | 2022-11-08 | Splunk Inc. | Management of distributed computing framework components in a data fabric service system |
US11216204B2 (en) * | 2019-11-19 | 2022-01-04 | Netapp, Inc. | Degraded redundant metadata, DRuM, technique |
US11797565B2 (en) * | 2019-12-30 | 2023-10-24 | Paypal, Inc. | Data validation using encode values |
US11922222B1 (en) | 2020-01-30 | 2024-03-05 | Splunk Inc. | Generating a modified component for a data intake and query system using an isolated execution environment image |
US11669428B2 (en) | 2020-05-19 | 2023-06-06 | Paypal, Inc. | Detection of matching datasets using encode values |
US20220043799A1 (en) * | 2020-08-07 | 2022-02-10 | EMC IP Holding Company LLC | Method, device, and computer program product for metadata comparison |
US11704313B1 (en) | 2020-10-19 | 2023-07-18 | Splunk Inc. | Parallel branch operation using intermediary nodes |
US11868656B2 (en) | 2021-06-07 | 2024-01-09 | Netapp, Inc. | Distributed file system with disaggregated data management and storage management layers |
US20220391359A1 (en) * | 2021-06-07 | 2022-12-08 | Netapp, Inc. | Distributed File System that Provides Scalability and Resiliency |
US11835990B2 (en) | 2021-11-16 | 2023-12-05 | Netapp, Inc. | Use of cluster-level redundancy within a cluster of a distributed storage management system to address node-level errors |
US11934280B2 (en) | 2021-11-16 | 2024-03-19 | Netapp, Inc. | Use of cluster-level redundancy within a cluster of a distributed storage management system to address node-level errors |
Also Published As
Publication number | Publication date |
---|---|
WO2015127083A3 (en) | 2015-11-12 |
WO2015127083A2 (en) | 2015-08-27 |
US10628443B2 (en) | 2020-04-21 |
US20200250201A1 (en) | 2020-08-06 |
US20150242478A1 (en) | 2015-08-27 |
US11386120B2 (en) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11386120B2 (en) | Data syncing in a distributed system | |
US9558073B2 (en) | Incremental block level backup | |
US9613046B1 (en) | Parallel optimized remote synchronization of active block storage | |
US11379119B2 (en) | Writing data in a distributed data storage system | |
TWI534614B (en) | Data deduplication | |
US9501365B2 (en) | Cloud-based disaster recovery of backup data and metadata | |
US9306988B2 (en) | Appending to files via server-side chunking and manifest manipulation | |
US10311028B2 (en) | Method and apparatus for replication size estimation and progress monitoring | |
JP5671615B2 (en) | Map Reduce Instant Distributed File System | |
US20150227543A1 (en) | Method and apparatus for replication of files and file systems using a deduplication key space | |
WO2013086969A1 (en) | Method, device and system for finding duplicate data | |
US20180060348A1 (en) | Method for Replication of Objects in a Cloud Object Store | |
US20170206022A1 (en) | Data Deduplication Cache Comprising Solid State Drive Storage and the Like | |
US9824131B2 (en) | Regulating a replication operation | |
WO2015164039A1 (en) | Efficiency sets in a distributed system | |
US20180107404A1 (en) | Garbage collection system and process | |
US9361302B1 (en) | Uniform logic replication for DDFS | |
US11436088B2 (en) | Methods for managing snapshots in a distributed de-duplication system and devices thereof | |
US20180067653A1 (en) | De-duplicating multi-device plugin | |
EP3532939A1 (en) | Garbage collection system and process |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SOLIDFIRE, INC., COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CANTWELL, JARED;MINCKLER, WILLIAM;ROBACK, JOE;AND OTHERS;SIGNING DATES FROM 20140707 TO 20140714;REEL/FRAME:033325/0122 |
|
AS | Assignment |
Owner name: NETAPP, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SOLIDFIRE, INC.;REEL/FRAME:037923/0268 Effective date: 20160205 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |