US2014195551A1PendingUtilityA1

Optimizing snapshot lookups

Assignee: PURE STORAGE INCPriority: Jan 10, 2013Filed: Oct 21, 2013Published: Jul 10, 2014
Est. expiryJan 10, 2033(~6.4 yrs left)· nominal 20-yr term from priority
G06F 2212/263G06F 3/0652G06F 3/0644G06F 3/0605G06F 3/0685G06F 16/1748G06F 3/0655G06F 3/0632G06F 3/0664G06F 3/0626G06F 3/0665G06F 2212/163G06F 3/0689G06F 3/0614G06F 3/0683G06F 3/067G06F 2212/261G06F 3/065G06F 16/23G06F 3/061G06F 3/0611G06F 3/0667G06F 3/0641G06F 3/0608G06F 2212/1044G06F 2212/1008G06F 3/0619G06F 3/0604G06F 3/0673G06F 3/0671G06F 2212/154G06F 2212/1016G06F 2212/1032G06F 17/30345
61
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A system and method for performing search optimization operations. In order to optimize lookups for received data requests, a storage controller attempts to collapse the medium graph, thus reducing the number of mediums in which the storage controller must look to find a given block. One technique for collapsing the medium graph involves promoting individual mappings from a lower-level medium to a higher-level medium. Another technique for collapsing the medium graph involves pushing medium range pointers higher up in the medium mapping table to reduce the number of mediums that must be searched.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A computer system comprising:
 one or more storage devices; and   a storage controller coupled to the one or more storage devices, wherein the storage controller is configured to:
 maintain a medium mapping table to map underlying mediums to active mediums, wherein each underlying medium represents a snapshot; and 
 maintain an address translation table to map mediums to locations within the one or more storage devices; 
   wherein the storage controller is further configured to:
 initiate a search optimization operation for a first range of a first medium, wherein the search optimization operation comprises collapsing the medium mapping table for the first range of the first medium, and wherein the first range of the first medium has at least one underlying medium; 
 create one or more first entries in the address translation table; 
 assign the one or more first entries to the first range of the first medium; and 
 copy attributes from one or more second entries in the address translation table to the first entries, wherein the second entries are assigned to a second medium, and wherein the second medium underlies the first range of the first medium. 
   
     
     
         2 . The computer system as recited in  claim 1 , wherein responsive to determining a third medium underlies a second range of the first medium and a fourth medium underlies the third medium, the storage controller is configured to:
 create a new entry for the second range of the first medium in the medium mapping table, wherein the new entry indicates the fourth medium underlies the second range of the first medium; and   discard an existing entry for the second range of the first medium in the medium mapping table, wherein the existing entry indicates the third medium underlies the second range of the first medium.   
     
     
         3 . The computer system as recited in  claim 2 , wherein the storage controller is configured to create the new entry for the second range of the first medium in the medium mapping table responsive to detecting that there are no existing entries assigned to the third medium in the address translation table which correspond to an address space of the second range of the first medium. 
     
     
         4 . The computer system as recited in  claim 1 , wherein the storage controller is further configured to copy attributes from one or more third entries of the address translation table to the first entries, wherein the third entries are assigned to a third medium, and wherein the third medium underlies the second medium. 
     
     
         5 . The computer system as recited in  claim 1 , wherein the storage controller is further configured to apply an offset to block numbers copied to the first entries responsive to determining the first range of the first medium maps to the second medium using the offset. 
     
     
         6 . The computer system as recited in  claim 1 , wherein the storage controller is configured to update the medium mapping table to indicate the first range of the first medium has no underlying medium responsive to determining mappings assigned to the first range of the first medium in the address translation table cover an entire address space of the first range of the first medium. 
     
     
         7 . The computer system as recited in  claim 1 , wherein responsive to determining the entries in the second medium are no longer externally visible to any user volumes, the storage controller is configured to reclaim the second medium. 
     
     
         8 . A method for use in a storage system, the method comprising:
 maintaining a medium mapping table to map underlying mediums to active mediums, wherein each underlying medium represents a snapshot;   maintaining an address translation table to map mediums to locations within the one or more storage devices;   initiating a search optimization operation for a first range of a first medium, wherein the search optimization operation comprises collapsing the medium mapping table for the first range of the first medium, and wherein the first range of the first medium has at least one underlying medium;   creating one or more first entries in the address translation table;   assigning the one or more first entries to the first range of the first medium; and   copying attributes from one or more second entries in the address translation table to the first entries, wherein the second entries are assigned to a second medium, and wherein the second medium underlies the first range of the first medium   
     
     
         9 . The method as recited in  claim 8 , wherein responsive to determining a third medium underlies a second range of the first medium and a fourth medium underlies the third medium, the method further comprising:
 creating a new entry for the second range of the first medium in the medium mapping table, wherein the new entry indicates the fourth medium underlies the second range of the first medium; and   discarding an existing entry for the second range of the first medium in the medium mapping table, wherein the existing entry indicates the third medium underlies the second range of the first medium.   
     
     
         10 . The method as recited in  claim 9 , further comprising creating the new entry for the second range of the first medium in the medium mapping table responsive to detecting that there are no existing entries assigned to the third medium in the address translation table which correspond to an address space of the second range of the first medium. 
     
     
         11 . The method as recited in  claim 8 , further comprising copying attributes from one or more third entries of the address translation table to the first entries, wherein the third entries are assigned to a third medium, and wherein the third medium underlies the second medium. 
     
     
         12 . The method as recited in  claim 8 , further comprising applying an offset to block numbers copied to the first entries responsive to determining the first range of the first medium maps to the second medium using the offset. 
     
     
         13 . The method as recited in  claim 8 , further comprising updating the medium mapping table to indicate the first range of the first medium has no underlying medium responsive to determining mappings assigned to the first range of the first medium in the address translation table cover an entire address space of the first range of the first medium. 
     
     
         14 . The method as recited in  claim 8 , further comprising reclaiming the second medium responsive to determining the entries in the second medium are no longer externally visible to any user volumes. 
     
     
         15 . A non-transitory computer readable storage medium storing program instructions, wherein the program instructions are executable by a processor to
 maintain a medium mapping table to map underlying mediums to active mediums, wherein each underlying medium represents a snapshot;   maintain an address translation table to map mediums to locations within the one or more storage devices;   initiate a search optimization operation for a first range of a first medium, wherein the search optimization operation comprises collapsing the medium mapping table for the first range of the first medium, and wherein the first range of the first medium has at least one underlying medium;   create one or more first entries in the address translation table;   assign the one or more first entries to the first range of the first medium; and   copy attributes from one or more second entries in the address translation table to the first entries, wherein the second entries are assigned to a second medium, and wherein the second medium underlies the first range of the first medium.   
     
     
         16 . The computer readable storage medium as recited in  claim 15 , wherein responsive to determining a third medium underlies a second range of the first medium and a fourth medium underlies the third medium, the program instructions are executable by a processor to:
 create a new entry for the second range of the first medium in the medium mapping table, wherein the new entry indicates the fourth medium underlies the second range of the first medium; and   discard an existing entry for the second range of the first medium in the medium mapping table, wherein the existing entry indicates the third medium underlies the second range of the first medium.   
     
     
         17 . The computer readable storage medium as recited in  claim 16 , wherein the program instructions are further executable by a processor create the new entry for the second range of the first medium in the medium mapping table responsive to detecting that there are no existing entries assigned to the third medium in the address translation table which correspond to an address space of the second range of the first medium. 
     
     
         18 . The computer readable storage medium as recited in  claim 15 , wherein the program instructions are further executable by a processor to copy attributes from one or more third entries of the address translation table to the first entries, wherein the third entries are assigned to a third medium, and wherein the third medium underlies the second medium. 
     
     
         19 . The computer readable storage medium as recited in  claim 15 , wherein the program instructions are further executable by a processor to apply an offset to block numbers copied to the first entries responsive to determining the first range of the first medium maps to the second medium using the offset. 
     
     
         20 . The computer readable storage medium as recited in  claim 15 , wherein the program instructions are further executable by a processor to update the medium mapping table to indicate the first range of the first medium has no underlying medium responsive to determining mappings assigned to the first range of the first medium in the address translation table cover an entire address space of the first range of the first medium.

Join the waitlist — get patent alerts

Track US2014195551A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.