A method for reading data from persistent solid-state storage, the method comprising: receiving a client read request for data from a client, wherein the client read request comprises a logical address; determining a physical address corresponding to the logical address, wherein the physical address comprises a page number for a physical page in the persistent solid-state storage; determining, using one address selected from a group consisting of the physical address and the logical address, a retention time for the data stored on the physical page, wherein the retention time corresponds to a time that has elapsed between the writing of the data to a physical location and the time that the data is being read from the same physical location; determining a program/erase (P/E) cycle value associated with the physical page; identifying a plurality of read threshold values corresponding to a tuple comprising the P/E cycle value, the retention time, and the page number, wherein identifying the plurality of read threshold values comprises performing a look-up in an in-memory data structure, wherein the plurality of read threshold values are indexed, in the in-memory data structure, by the P/E cycle value, the retention time, and the page number, and wherein the plurality of read threshold values comprises at least one default read threshold value and at least one non-default read threshold value; issuing, by a control module, a control module read request comprising the plurality of read threshold values to a storage module, wherein the storage module comprises the physical page, a storage module controller and a memory; receiving, by the storage module, the control module read request; issuing, by the storage module controller, a read command to the memory; and obtaining the data from the physical page using the plurality of read threshold values. receiving a client read request for data from a client, wherein the client read request comprises a logical address; determining a physical address corresponding to the logical address, wherein the physical address comprises a page number for a physical page in the persistent solid-state storage; determining, using one address selected from a group consisting of the physical address and the logical address, a retention time for the data stored on the physical page, wherein the retention time corresponds to a time that has elapsed between the writing of the data to a physical location and the time that the data is being read from the same physical location; determining a program/erase (P/E) cycle value associated with the physical page; identifying a plurality of read threshold values corresponding to a tuple comprising the P/E cycle value, the retention time, and the page number, wherein identifying the plurality of read threshold values comprises performing a look-up in an in-memory data structure, wherein the plurality of read threshold values are indexed, in the in-memory data structure, by the P/E cycle value, the retention time, and the page number, and wherein the plurality of read threshold values comprises at least one default read threshold value and at least one non-default read threshold value; issuing, by a control module, a control module read request comprising the plurality of read threshold values to a storage module, wherein the storage module comprises the physical page, a storage module controller and a memory; receiving, by the storage module, the control module read request; issuing, by the storage module controller, a read command to the memory; and obtaining the data from the physical page using the plurality of read threshold values.