1. A method for storing data in a flash memory array having a plurality of physical pages, the method comprising: using a computer, receiving a request to perform a data access operation through a communication bus, the request comprising data and a logical page address; allocating one or more physical pages of the flash memory array to perform the data access operation; and based on a historical usage data of the flash memory array, selectively encoding the data contained in the logical page into the one or more physical pages, wherein selectively encoding the data contained in the logical page into the one or more physical pages comprises: determining a probability of a subsequent data access request updating the data contained in the logical page; determining whether the probability exceeds a predetermined threshold and; in response to determining that the probability exceeds the predetermined threshold, encoding the data contained in the logical page into the one or more physical pages.