1. A method of performing garbage collection in a hybrid memory system that includes a primary memory and a secondary memory, the method comprising: performing a read operation comprising reading data from a first cluster of a plurality of clusters; responsive to a determination that the read operation failed: unmapping the first cluster without writing the data to a second cluster; determining a programming time for the first cluster; if the programming time is greater than a first threshold, continuing to use the first cluster for subsequent data storage; if the programming time is less than or equal to the first threshold, increment a counter; determining if the counter is greater than a second threshold; and if the programming time is less than or equal to the second threshold, defecting the first cluster; and responsive to a determination that the read operation did not fail, writing the data to the second cluster.