A storage system comprising: a first storage medium; a processor configured to communicate with the first storage medium; and a memory coupled to the processor, the memory storing instructions that, when executed by the processor, cause the processor to: identify a request to allocate memory in the first storage medium; in response to the request, represent the allocated memory via at least a first node of a first data structure, wherein the first node stores first information for a first portion of the allocated memory and a second portion of the allocated memory, wherein the first data structure is associated with a first tier of a memory hierarchy; monitor a criterion for at least one of the first portion or the second portion; update an order of the first node in the first data structure based on detecting the criterion; characterised in that the instructions further cause the processor to: in response to the request, represent the allocated memory via a second node of a second data structure, wherein the second node stores second information for the first portion of the allocated memory and the second portion of the allocated memory, wherein the second data structure is associated with a second tier of the allocated memory hierarchy, wherein the first information identifies whether the first portion of the allocated memory and the second portion of the allocated memory belong to the first tier, and the second information identifies whether the first portion of the allocated memory and the second portion of the allocated memory belong to the second tier. a first storage medium; a processor configured to communicate with the first storage medium; and a memory coupled to the processor, the memory storing instructions that, when executed by the processor, cause the processor to: identify a request to allocate memory in the first storage medium; in response to the request, represent the allocated memory via at least a first node of a first data structure, wherein the first node stores first information for a first portion of the allocated memory and a second portion of the allocated memory, wherein the first data structure is associated with a first tier of a memory hierarchy; monitor a criterion for at least one of the first portion or the second portion; update an order of the first node in the first data structure based on detecting the criterion; characterised in that the instructions further cause the processor to: in response to the request, represent the allocated memory via a second node of a second data structure, wherein the second node stores second information for the first portion of the allocated memory and the second portion of the allocated memory, wherein the second data structure is associated with a second tier of the allocated memory hierarchy, wherein the first information identifies whether the first portion of the allocated memory and the second portion of the allocated memory belong to the first tier, and the second information identifies whether the first portion of the allocated memory and the second portion of the allocated memory belong to the second tier. identify a request to allocate memory in the first storage medium; in response to the request, represent the allocated memory via at least a first node of a first data structure, wherein the first node stores first information for a first portion of the allocated memory and a second portion of the allocated memory, wherein the first data structure is associated with a first tier of a memory hierarchy; monitor a criterion for at least one of the first portion or the second portion; update an order of the first node in the first data structure based on detecting the criterion; characterised in that the instructions further cause the processor to: in response to the request, represent the allocated memory via a second node of a second data structure, wherein the second node stores second information for the first portion of the allocated memory and the second portion of the allocated memory, wherein the second data structure is associated with a second tier of the allocated memory hierarchy, wherein the first information identifies whether the first portion of the allocated memory and the second portion of the allocated memory belong to the first tier, and the second information identifies whether the first portion of the allocated memory and the second portion of the allocated memory belong to the second tier. in response to the request, represent the allocated memory via a second node of a second data structure, wherein the second node stores second information for the first portion of the allocated memory and the second portion of the allocated memory, wherein the second data structure is associated with a second tier of the allocated memory hierarchy, wherein the first information identifies whether the first portion of the allocated memory and the second portion of the allocated memory belong to the first tier, and the second information identifies whether the first portion of the allocated memory and the second portion of the allocated memory belong to the second tier.