A flash file system is one that is comprised of a type of electronically erasable programmable read-only memory (EEPROM) called flash memory. It is one of the most popular methods of storing data and is non-volatile, meaning it retains information even when there is no power. Found in datacenter servers as well as mobile phones and handheld computers, a flash file system is arranged in blocks of data, each which have to be erased in full before being written to. The standard erase block holds about 128 kilobytes of data, and some blocks can store as much as 2,048 kilobytes.
The memory in a flash file system cannot be stored for an infinite amount of time. After a certain number of write and erase cycles, data become corrupted and sections of the memory can no longer be used. Wear leveling is used to create a balance between parts of the flash that are frequently used and others that are not. The process of dynamic wear leveling can lead to large blocks of a disk with data that is rarely altered, causing frequent changes to occur in other areas. A more static strategy moves data to places that are used more to make the balance more efficient.
In a flash file system, data are found using a method for mapping data blocks and sectors. These data structure maps are stored inside flash devices and update when changes to data are made by using special assigned identities for each block. Sectors and blocks are automatically associated when a rewrite cycle occurs in random access memory, but in a flash system, an indirect map helps link sectors with blocks. Data can be found more quickly with a direct map which is stored in the flash transaction layer, a sort of interface section that contains the information on data assigned to various blocks and erase units.
Data retention is often listed as a benefit for the flash file system. How long data remains safe depends on operating temperature and how many write and erase cycles a memory device can undergo before system performance degrades. Many flash systems are rated to last 20 years and to tolerate anywhere from 1,000 to 1,000,000 erase cycles. The more frequently data are written and erased, and the higher the temperatures, the shorter the general life expectancy of the retained data and memory system.