1. A non-volatile data storage system, comprising: a data storage module comprising a plurality of regions for storing data; and a controller configured to: compute a set of scores associated with a set of regions of the plurality of regions, each score based at least in part on a duration since last invalidation of data stored in a corresponding region; and perform garbage collection of at least one region based at least partly on the set of scores, wherein garbage collection comprises copying valid data stored in the at least one region to another region.