A method for maximizing the useful life of flash memory and similar technologies by minimizing the number of times any given memory block is erased in order to allow new data to be written. It mitigates the fact that the lifetime of such memory cells is limited by the number of erase operations they perform. See memory wear.