EP2534570A1

Method and system for providing efficient access to a tape storage system

Abstract

This record has no abstract on file.

Term

Projected expiry 9 February 2031.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

28 claims: 21 independent, 7 dependent

  1. 1
    Claims of equivalent WO 2011100368 A1 What is claimed is:1. A computer-implemented method for asynchronously replicating data onto a tape medium, comprising: at a computing device having one or more processors and memory storing programs executed by the one or more processors, wherein the computing device is associated with a distributed storage system and connected to a tape storage system: receiving a first request from a client for storing an object within the tape storage system;storing the object within a staging sub-system of the distributed storage system, wherein the staging sub-system includes a plurality of objects scheduled to be transferred to the tape storage system;providing a first response to the requesting client, the first response indicating that the first request has been performed synchronously;transferring one or more objects from the staging sub-system to the tape storage system if a predefined condition is met;and for a respective transferred object, adding a reference to the object to a tape management sub-system of the tape storage system;identifying a corresponding parent object associated with the object and its metadata within a parent object management sub-system of the distributed storage system;and updating the parent object's metadata to include the object's location within the tape storage system.
  2. 3
    The computer-implemented method of any of claims 1 and 2, further comprising:before storing the object within the staging sub-system, querying the tape management sub-system to determine whether there is a replica of the object within the tape storage system;and adding a reference to the replica of the object to the tape management subsystem if there is a replica of the object within the tape storage system.
  3. 6
    The computer-implemented method of any of claims 4 and 5, wherein storing the object within the staging sub-system further comprises:adding to the staging object index table an entry that corresponds to the object.
  4. 7
    The computer-implemented method of any of claims 4-6, wherein adding a reference to a respective newly-transferred object further comprises:removing from the staging object index table an entry that corresponds to the newly- transferred object;and adding to the external object index table an entry that corresponds to the newly- transferred object.
  5. 8
    The computer-implemented method of any of claims 1-7, wherein the staging subsystem includes one or more batches of object transfer entries and an object data staging region, and storing the object within the staging sub-system further comprises:storing the object to be transferred within the object data staging region;identifying a respective batch in accordance with a locality hint provided with the first request, wherein the locality hint identifies a group of objects that are likely to be collectively restored from the tape storage system or expire from the tape storage system;inserting an object transfer entry into the identified batch, the object transfer entry identifying a location of the object within the object data staging region;and updating a total size of the identified batch in accordance with the newly-inserted object transfer entry and the object to be transferred.
  6. 10
    The computer-implemented method of any of claims 1-9, wherein the first response is provided to the requesting client before the object is transferred to the tape storage system.
  7. 11
    The computer-implemented method of any of claims 1-10, wherein the staging subsystem of the distributed storage system includes one or more batches of object transfer entries and an object data staging region, and transferring one or more objects from the staging sub-system to the tape storage system further comprises:periodically scanning the one or more batches to determine their respective states;identifying a respective batch of object transfer entries if a total size of the batch reaches a predefined threshold or the batch has been opened for at least a predefined time period;closing the identified batch from accepting any more object transfer entry;submitting an object transfer request to the tape storage system for the identified batch;and for a respective object transfer entry within the identified batch, retrieving the corresponding object from the object data staging region;and transferring the object into the tape storage system.
  8. 13
    The computer-implemented method of any of claims 11 and 12, wherein the closure of the identified batch triggers a creation of a new batch for incoming object transfer entries in the staging sub-system.
  9. 14
    The computer-implemented method of any of claims 11-13, further comprising:for a respective object transfer entry within the identified batch, deleting the object transfer entry and the corresponding object from the identified batch and the object data staging region, respectively.
  10. 15
    The computer-implemented method of any of claims 1-14, wherein updating the corresponding parent object's metadata for a respective transferred object further comprise:setting the parent object's state as "finalized" if the object is the last object of the parent object to be transferred to the tape storage system;and setting the parent object's state as "finalizing" if the object is not the last object of the parent object to be transferred to the tape storage system.
  11. 16
    A computer-implemented method for asynchronously replicating data from a tape medium, comprising:at a computing device having one or more processors and memory storing programs executed by the one or more processors, wherein the computing device is associated with a distributed storage system and connected to a tape storage system: receiving a first request from a client for restoring an object from the tape storage system to a destination storage sub-system of the distributed storage system;generating an object restore entry that identifies the object to be restored and the destination storage sub-system;storing the object restore entry within a staging sub-system of the distributed storage system, wherein the staging sub-system includes a plurality of object restore entries scheduled to be applied to the tape storage system;providing a first response to the requesting client, indicating that the first request will be performed asynchronously;applying one or more object restore entries within the staging sub-system to the tape storage system if a predefined condition is met;and for a respective restored object, transferring the object to the destination storage sub-system;identifying a corresponding parent object associated with the object and its metadata within a parent object management sub-system of the distributed storage system;and updating the parent object's metadata to identify the object's location within destination storage sub-system.
  12. 18
    The computer-implemented method of any of claims 16 and 17, wherein the first response is provided to the requesting client before the object is restored from the tape storage system.
  13. 19
    The computer-implemented method of any of claims 16-18, wherein the staging subsystem of the distributed storage system includes one or more batches of object restore entries, and applying one or more object restore entries to the tape storage system further comprises:periodically scanning the one or more batches to determine their respective states;identifying a respective batch of object restore entries if a total size of the batch reaches a predefined threshold or the batch has been opened for at least a predefined time period;closing the identified batch from accepting any more object restore entry;submitting an object restore request to the tape storage system for the closed batch;and for a respective object restore entry within the identified batch, retrieving the object from the tape storage system, the object including content and metadata;and storing the object within an object data staging region of the staging subsystem, further comprising: writing the object's content into a file in the object data staging region and the object's metadata into a bigtable in the object data staging region.
  14. 21
    The computer-implemented method of any of claims 19-20, wherein transferring a respective restored object to the destination storage sub-system further comprises:associating the destination storage sub-system in the object restore entry with the object in the object data staging region;sending a request to an object management sub-system, the request identifying the destination storage sub-system and including a copy of the object in the object data staging region;deleting the object restore entry and the corresponding object from the identified batch and the object data staging region, respectively.
  15. 22
    The computer-implemented method of any of claims 16-21, wherein updating the corresponding parent object's metadata for a respective restored object further comprise:setting the parent object's state as "finalized" if the object is the last object of the parent object to be restored from the tape storage system;and setting the parent object's state as "finalizing" if the object is not the last object of the parent object to be restored from the tape storage system.
  16. 23
    A computing device associated with a distributed storage system, for asynchronously replicating data onto a tape medium, the computing device comprising:one or more processors;and memory storing one or more programs to be executed by the one or more processors;the one or more programs comprising instructions for: receiving a first request from a client for storing an object within the tape storage system;storing the object within a staging sub-system of the distributed storage system, wherein the staging sub-system includes a plurality of objects scheduled to be transferred to the tape storage system;providing a first response to the requesting client, the first response indicating that the first request has been performed synchronously;transferring one or more objects from the staging sub-system to the tape storage system if a predefined condition is met;and for a respective transferred object, adding a reference to the object to a tape management sub-system of the tape storage system;identifying a corresponding parent object associated with the object and its metadata within a parent object management sub-system of the distributed storage system;and updating the parent object's metadata to include the object's location within the tape storage system.
  17. 24
    A computing device associated with a distributed storage system, for asynchronously replicating data from a tape medium, the computing device comprising:one or more processors;and memory storing one or more programs to be executed by the one or more processors;the one or more programs comprising instructions for: receiving a first request from a client for restoring an object from the tape storage system to a destination storage sub-system of the distributed storage system;generating an object restore entry that identifies the object to be restored and the destination storage sub-system;storing the object restore entry within a staging sub-system of the distributed storage system, wherein the staging sub-system includes a plurality of object restore entries scheduled to be applied to the tape storage system;providing a first response to the requesting client, indicating that the first request will be performed asynchronously;applying one or more object restore entries within the staging sub-system to the tape storage system if a predefined condition is met;and for a respective restored object, transferring the object to the destination storage sub-system;identifying a corresponding parent object associated with the object and its metadata within a parent object management sub-system of the distributed storage system;and updating the parent object's metadata to identify the object's location within destination storage sub-system.
  18. 25
    A non-transitory computer readable storage medium storing one or more programs configured for execution by a computing device associated with a distributed storage system, for asynchronously replicating data onto a tape medium, the one or more programs comprising instructions for:receiving a first request from a client for storing an object within the tape storage system;storing the object within a staging sub-system of the distributed storage system, wherein the staging sub-system includes a plurality of objects scheduled to be transferred to the tape storage system;providing a first response to the requesting client, the first response indicating that the first request has been performed synchronously;transferring one or more objects from the staging sub-system to the tape storage system if a predefined condition is met;and for a respective transferred object, adding a reference to the object to a tape management sub-system of the tape storage system;identifying a corresponding parent object associated with the object and its metadata within a parent object management sub-system of the distributed storage system;and updating the parent object's metadata to include the object's location within the tape storage system.
  19. 26
    A non-transitory computer readable storage medium storing one or more programs configured for execution by a computing device associated with a distributed storage system, for asynchronously replicating data from a tape medium, the one or more programs comprising instructions for:receiving a first request from a client for restoring an object from the tape storage system to a destination storage sub-system of the distributed storage system;generating an object restore entry that identifies the object to be restored and the destination storage sub-system;storing the object restore entry within a staging sub-system of the distributed storage system, wherein the staging sub-system includes a plurality of object restore entries scheduled to be applied to the tape storage system;providing a first response to the requesting client, indicating that the first request will be performed asynchronously;applying one or more object restore entries within the staging sub-system to the tape storage system if a predefined condition is met;and for a respective restored object, transferring the object to the destination storage sub-system;identifying a corresponding parent object associated with the object and its metadata within a parent object management sub-system of the distributed storage system;and updating the parent object's metadata to identify the object's location within destination storage sub-system.
  20. 27
    A computing device associated with a distributed storage system, for asynchronously replicating data from a tape medium, the computing device comprising:one or more processors;and memory storing one or more programs to be executed by the one or more processors;the one or more programs comprising instructions to be executed by the one or more processors so as to perform the method of any of claims 1-22.
  21. 28
    A non-transitory computer readable storage medium storing one or more programs configured for execution by a computing device associated with a distributed storage system, for asynchronously replicating data from a tape medium, the one or more programs comprising instructions to be executed by the one or more processors so as to perform the method of any of claims 1-22.
Independent claims21