Garbage collection in a storage system
First Claim
1. A computing system comprising:
- a data storage medium;
a first table comprising a plurality of entries, each of which includes a mapping of a virtual address to a physical location in the data storage medium;
a second table comprising a plurality of entries, each of which includes a reverse mapping of a physical address in the data storage medium to one or more virtual addresses; and
a data storage controller configured to;
identify one or more entries in the second table, wherein said one or more entries are identified as corresponding to a given segment;
in response to determining the first table includes a valid mapping for a virtual address included in an entry of the one of the one or more entries;
copy data from a first location identified in the entry to a second location in the data storage medium; and
reclaim the first storage locationwherein the data storage controller is further configured to;
access the given segment and identify further entries which comprise a mapping of a location in the segment to one or more virtual addresses;
determine whether the first table includes a valid mapping for each of the further entries;
copy data from a current storage location in the segment corresponding to a valid mapping in the further entries to a new storage location in the data storage medium; and
reclaim the current storage location.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for performing garbage collection. A system includes a storage medium, a first table including entries which map a virtual address to locations in the storage medium, and a second table with entries which include a reverse mapping of a physical address in a data storage medium to one or more virtual addresses. A storage controller is configured to perform garbage collection. During garbage collection, the controller is configured to identify one or more entries in the second table which correspond to a segment to be garbage collected. In response to determining the first table includes a valid mapping for a virtual address included in an entry of the one of the one or more entries, the controller is configured to copy data from a first location identified in the entry to a second location in the data storage medium, and reclaim the first storage location.
785 Citations
33 Claims
-
1. A computing system comprising:
-
a data storage medium; a first table comprising a plurality of entries, each of which includes a mapping of a virtual address to a physical location in the data storage medium; a second table comprising a plurality of entries, each of which includes a reverse mapping of a physical address in the data storage medium to one or more virtual addresses; and a data storage controller configured to; identify one or more entries in the second table, wherein said one or more entries are identified as corresponding to a given segment; in response to determining the first table includes a valid mapping for a virtual address included in an entry of the one of the one or more entries; copy data from a first location identified in the entry to a second location in the data storage medium; and reclaim the first storage location wherein the data storage controller is further configured to; access the given segment and identify further entries which comprise a mapping of a location in the segment to one or more virtual addresses; determine whether the first table includes a valid mapping for each of the further entries; copy data from a current storage location in the segment corresponding to a valid mapping in the further entries to a new storage location in the data storage medium; and reclaim the current storage location. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for use in a computing system, the method comprising:
-
maintaining a first table comprising a plurality of entries, wherein each of the plurality of entries of the first table maps a virtual address to a location in a data storage medium; identifying one or more entries in a second table comprising a plurality of entries, wherein each of the one or more entries of the second table includes a reverse mapping of an address of a location in the data storage medium to one or more virtual addresses, and wherein said one or more entries are identified as corresponding to a given segment; in response to determining the second table includes a valid mapping for a virtual address included in an entry of the one of the one or more entries; copying data from a first location identified in the entry to a second location in the data storage medium; and reclaiming the first storage location; accessing the given segment and identifying further entries which comprise a mapping of a location in the segment to one or more virtual addresses; determining whether the first table includes a valid mapping for each of the further entries; copying data from a current storage location in the segment corresponding to a valid mapping in the further entries to a new storage location in the data storage medium; and reclaiming the current storage location. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A non-transitory computer readable storage medium comprising program instructions, wherein said program instructions are executable to:
-
maintain a first table comprising a plurality of entries, wherein each of the plurality of entries of the first table maps a virtual address to a location in a data storage medium; identify one or more entries in a second table comprising a plurality of entries, wherein each of the one or more entries of the second table comprises a reverse mapping of an address of a location in the data storage medium to one or more virtual addresses, and wherein said one or more entries are identified as corresponding to a given segment; in response to determining the second table includes a valid mapping for a virtual address included in an entry of the one of the one or more entries; copy data from a first location identified in the entry to a second location in the data storage medium; and reclaim the first storage location; access the given segment and identify further entries which comprise a mapping of a location in the segment to one or more virtual addresses; determine whether the first table includes a valid mapping for each of the further entries; copy data from a current storage location in the segment corresponding to a valid mapping in the further entries to a new storage location in the data storage medium; and reclaim the current storage location.
-
Specification