OPTIMIZED PLACEMENT OF DATA CONTAINED IN A GARBAGE COLLECTED STORAGE SYSTEM
First Claim
1. A computing device, comprising:
- a non-transitory data storage system including at least a first storage medium and a second storage medium, the first storage media having higher endurance relative to the second storage medium;
one or more processors; and
at least one hardware-based non-transitory computer-readable memory device having computer-executable instructions stored thereon which, when executed by the one or more processors, cause the computing device totrack lifetime of data in each extent in the data storage system, in which lifetime is a number of garbage collection cycles for which an extent has been persisted,initiate a garbage collection cycle,coalesce extents existing at the initiation of the garbage collection cycle into new extents created during the garbage collection cycle so that each new extent contains data of similar lifetime,place the new extents on the data storage system according to lifetime, such that new extents having lower lifetime values relative to other new extents are placed on the first storage medium, and the other new extents are placed on the second storage medium.
1 Assignment
0 Petitions
Accused Products
Abstract
A garbage collection process running on a computing device is configured to track the number of garbage collection cycles that storage fragments, called extents, are persisted in storage without being modified or deleted using a lifetime counter that is implemented using metadata. At each garbage collection cycle, the extents are sorted by lifetime values. Old extents (i.e., those existing at the start of the cycle) are bucketed together by lifetime values during garbage collection into new extents (i.e., those being created during the cycle). Thus, each of the new extents includes data having similar lifetime values. The lifetime value for the new extent equals the lowest lifetime value of the old source extent plus one additional increment on the counter. As extents are organized by garbage collection lifetime, placement on storage media can be optimized according to expected endurance requirements.
6 Citations
20 Claims
-
1. A computing device, comprising:
-
a non-transitory data storage system including at least a first storage medium and a second storage medium, the first storage media having higher endurance relative to the second storage medium; one or more processors; and at least one hardware-based non-transitory computer-readable memory device having computer-executable instructions stored thereon which, when executed by the one or more processors, cause the computing device to track lifetime of data in each extent in the data storage system, in which lifetime is a number of garbage collection cycles for which an extent has been persisted, initiate a garbage collection cycle, coalesce extents existing at the initiation of the garbage collection cycle into new extents created during the garbage collection cycle so that each new extent contains data of similar lifetime, place the new extents on the data storage system according to lifetime, such that new extents having lower lifetime values relative to other new extents are placed on the first storage medium, and the other new extents are placed on the second storage medium. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for placing data in extents on a plurality of storage media with varying endurance during each cycle of a garbage collection process, comprising:
-
tracking a lifetime of each extent using an integer counter, in which the counter is incremented for each garbage collection cycle that the extent is persisted; garbage collecting old extents into new extents so that data in each new extent is sourced from old extents having similar lifetime values; assigning a lifetime value for each new extent, in which the assigned lifetime value is equal to a lowest lifetime value of the old source extents plus one increment on the integer counter; and placing the new extents on the plurality of storage media so that new extents having higher lifetime values relative to those of other new extents are placed on storage media having lower endurance relative to that of other storage media in the plurality, and new extents having lower lifetime values relative to those of other new extents are placed on storage media having higher endurance relative to that of other storage media in the plurality. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. One or more hardware-based non-transitory computer-readable memory devices storing computer-executable instructions which, upon execution by one or more processors in a computing device that includes a data storage system, cause the computing device to
attach metadata to each data fragment that is stored in the data storage system in which the metadata provides a counter to count a number of garbage collection cycles that each data fragment has undergone; -
sort the stored data fragments using the counter in each cycle of garbage collection; distribute the sorted data fragments, in each cycle of garbage collection, into at least two buckets such that data fragments with higher relative counts are in one bucket, and data fragments with lower relative counts are in the other bucket; and in each cycle of garbage collection, place the bucketed data fragments on different respective storage media, in which the storage media have respective different levels of endurance. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification