Patent ID: 9092316
Filing Date: 2015-07-28
Classification: G06F

Abstract:
1. A method for managing a computerized memory for storing data wherein the memory comprises a set of m units and each of the m units comprises subunits, the method comprising: maintaining a data structure for providing the m units in a sorted way, selecting a first subset of n units out of the set of m units with n <m by selecting units from n positions in the data structure searching in the first subset to identify a unit that matches a predetermined criterion, and rewriting data of valid subunits of the unit identified in the first subset into at least another unit, and selecting a second subset of p units out of the set of m units with p <m by selecting units from p positions in the data structure, searching in the second subset to identify a unit that matches a predetermined criterion, and rewriting data of valid subunits of the unit identified in the second subset into at least another unit, wherein the p positions in the data structure differ in at least one position from the n positions in the data structure, wherein (i) data updates are performed by writing data updates out-of-place, (ii) data updates to outdated data are written to a subunit different from a subunit containing the outdated data, (iii) the subunit containing the outdated data is invalid, while a subunit containing up-to-date data is a valid subunit, and (iv) wherein the units are sorted in the data structure according to an age of the units, and the n units of the first subset are selected to include n−1 consecutively adjacent units and an x-th unit, with at least one intervening unit in between the x-th unit and a youngest one of the n−1 consecutively adjacent units that is omitted from the first subset, the n−1 consecutively adjacent blocks being the oldest blocks in the data structure.