The basics of flash memory is the topic of a blog entry in The Zone Manager. Engineer Brad Diggs attempts to explain why flash through the ZFS secondary cache, or L2ARC, and ZFS Intent Log (ZIL) can improve overall directory performance. He also asserts the use of flash memory and ZFS will enable "radical" new directory services architectures, and explains further in a secondary posting.
Diggs begins with a definition, writing flash memory is a non-volatile storage medium that is read and written to through electrical erasure and reprogramming. It has better kinetic shock absorption properties, lower power consumption and much greater IOPS than hard disk drives. It is this combination of features that make flash memory a great intermediate storage medium between hard disks and DRAM memory in the storage stratum hierarchy, Diggs suggests.
He discusses the two categories of flash memory devices: (1) single-level cell (SLC): store a single bit of information per cell; and (2) multi-level cell (MLC): store multiple bits of information per cell. The inherent danger with MLC devices, he notes, is that the flash memory loses more data per block than compared to SLC when memory cells fail.
Limitations of flash memory are identified as
- Erase-before-write: requires that an occupied data block (i.e. typically a 512KB group of 4KB memory cells) must be erased before the new data can be written to that block. "The performance implication of this limitation is that the device will have a perception of very high write performance until all blocks have been written to for the first time. Once the effects of erase-before-write kicks in, the overall write throughput can drop significantly," Diggs explains.
- Write endurance: each memory cell has a limited number of times that it can be erased before the memory cell fails. Current flash memory device write-erase-cycles range from 100,000 to 1,000,000 where MLC devices represent the low end and SLC devices are on the high end.
- Write cache reliability: most flash memory devices use DRAM to buffer data before it is written to the flash memory device in order to increase throughput performance. The danger is that during a power loss, all data in DRAM cache is susceptible to being lost if not committed to flash memory in time.
Diggs describes some commonly used methods to overcome these limitations such as wear leveling, garbage collection, TRIM command, and reserve capacity.
He also devotes a couple of sentences to Sun's flash modules, explaining how they can mitigate the write cache reliability issue and promote ZIL and L2ARC.
In a second blog entry, Diggs delves into the direction directory services architecture will take with flash technologies. He suggestions the possibility of using flash to extend the ZFS filesystem cache sufficiently to hold all of the directory data.
Diggs compares, contrasts and walks readers through three ZFS filesystem cache priming strategies. He maintains that directory data priming can promote more consistent directory server performance for directory service architectures that are designed to contain all of the directory data in the ZFS ARC either via sufficiently large DRAM or flash technologies.
More Information
Flash Memory Basics - Diggs' blog entry
Directory Data Priming Strategies - Diggs' blog entry
Using Sun Flash Cache and Oracle SGA to Boost Performance with the Sun Storage F5100
Hybrid Storage Pools With Sun Flash Technology and Solaris ZFS
Oracle's Sun Java System Directory Server Enterprise Edition
[...read more...]
Other articles in the Hardware section of Volume 144, Issue 3:
What is Flash Memory and Where Will Flash Technologies Lead?
(this article)
See all archived articles in the Hardware section.
|
|
Top 10 Most Popular Articles in Current Issue (Vol 168, Issue 1)
|
|
|
|
|