Patent ID: 9710397
Date: 2017-07-18
CPC Classifications: G06F

Claim:
1. A non-transitory machine-readable storage medium having instructions stored therein, which when executed by a machine, cause a machine to perform operations for managing data on a multi-device composite data storage system, the operations comprising: initializing a first data structure, the first data structure to indicate a set of counts of recent accesses to one or more storage units in a set of storage units on a first non-volatile data storage device, the first data structure is managed via an algorithm that uses a circular queue and a pointer, wherein a count of recent accesses to a first storage unit in the set of storage units is incremented upon access to a logical block within the first storage unit, and wherein when a count of recent accesses to a second storage unit is decremented to a predetermined value, the predetermined value indicates that the second storage unit is eligible for migration to a second non-volatile data storage device; initializing a second data structure, the second data structure to probabilistically indicate that a storage unit on the second non-volatile data storage device has been recently referenced, wherein the second data structure comprises a queue of one or more Bloom filters and each storage unit includes multiple logical blocks; receiving a request to access a logical block of the multi-device composite data storage system which includes the first and the second non-volatile data storage devices; accessing a requested logical block from the first non-volatile data storage device if the requested logical block is stored on the first non-volatile data storage device, and updating the first data structure to indicate that the requested logical block of the multi-device composite data storage system was recently accessed from the first non-volatile data storage device; searching the second data structure for the requested logical block if the requested logical block is not found on the first non-volatile data storage device; adding an identifier for the requested logical block to the second data structure if the requested logical block is not found in the second data structure; and migrating the requested logical block from the second non-volatile data storage device to the first non-volatile data storage device if the requested logical block is found in the second data structure, wherein migrating the storage unit includes migrating multiple logical blocks in response to the request to access the requested logical block.