1. An apparatus comprising: a non-volatile main storage; a volatile, primary cache mirroring a first portion of the main storage; a non-volatile secondary cache mirroring a second portion of the main storage, wherein the secondary cache is used for storing read data only; and a processor configured to: cause a new segment of data to be copied to the primary cache in response to a data read access request from a host; determine a criterion for copying of data from the primary cache to the secondary cache, wherein the criterion gives segments having addresses not yet selected for reading by the host higher priority than segments having addresses selected for reading by the host; and in response to the new segment of data being copied into the primary cache, copy a selected segment of data from the primary cache to the secondary cache in response to the selected segment satisfying the criterion and where the criterion prevents the copying of the selected segment based on the selected segment containing write data.