Rethinking Application Architectures With Flash
By marchamilton on Dec 11, 2008
Over the last several years, the entire Cache/Main Memory/Disk infrastructure has been put under more pressure with the rapid adoption of multi-core CPU architectures such as first widely used in Sun's OpenSPARC design. Because the specification for building an OpenSPARC chip is freely available to all, hundreds of universities are actually teaching their CPU design courses today using OpenSPARC, and Intel, AMD, and virtually all other CPU vendors have moved to multi-core designs. Putting the equivalent of 2, 4, 8, or more CPUs onto a single chip correspondingly requires the Cache/Main Memory/Disk subsystems to speed up by an equivalent amount to achieve the potential 2x/4x/8x performance improvements.
Now every once in a while, a technology disruption comes around that causes people to totally rethink how they do things. In a funny way, the flash/disk tradeoff occurred in exactly the opposite fashion in early music players. Early MP3 music players either used what was at the time very expensive and limited capacity flash chips or relatively big, clunky, disk drives. That is, at least until Jon Rubinstein, then at Apple thought of making a music player with a new mini hard drive, and the original iPod was born. Jon since left Apple to become CEO of Palm, and flash technology has since evolved in capacity such that most iPods now use only flash (only the so-called iPod Classic still uses a mini hard drive and what teenager wants anything to do with something that has classic in its name). Nevertheless, a great example of technology disruption that caused people to think differently about the way they designed a product.
Now back to computers. While flash memory has been available for many years in computers, the high cost and low density limited its application to very specialized uses. Today, Sun is designing most of its servers to be flash-ready. The most common form factor today for computer flash is the so called flash drive, which packages a still relatively small amount of flash into a standard disk form factor, which thus can be fitted to most any computer. However, so called flash drives are really sub-optimal use of flash for two reasons:
So while Sun's first products to ship with flash, our Sun Storage 7000 line of unified storage systems, use standard flash drives, we are investigating a broad array of new form factors and systems interfaces for flash that promise to deliver much greater performance than today's flash drives.
We choose the Sun Storage 7000 as the first product we delivered with flash technology for very simple reasons. By delivering flash in a unified storage system, there are no changes needed to your application architecture. In fact, the Sun Storage 7000 doesn't just try to cache all reads and writes, using the built-in intelligence of the ZFS file system, the Sun Storage 7000 optimizes the available cache as both a read cache as well as a write cache for the ZFS transaction log (instead of trying to cache all writes, which would be much less effective).
But that begs the question, as flash becomes available in more and more servers, and we believe that by the end of 2009 you will see flash options in nearly every new server coming to market, how do applications take advantage of the new emerging CPU/Memory/Flash/Disk architecture paradigm? Surely there are some easy wins that will not require re-architecting your application, such as running Oracle on a ZFS file system and using flash to accelerate ZFS. But ultimately, flash will provide an important new capability that application developers will think about when designing their applications. No doubt Sun's MySQL developers are already thinking about how they can use future flash-enabled servers to accelerate MySQL performance. In just the last few months, I've had discussions with some of the largest HPC and Web 2.0 developers in the world who are actively thinking about how they will develop differently to better scale their applications with flash.
From my viewpoint, the Jon Rubenstein iPod moment for server based flash, the equivalent of where he saw that first mini hard drive and envisioned the new MP3 player he would build for Steve Jobs, has already occurred. And in a ironic twist of fate, just like the economic prosperity of the last decade helped drive the widespread adoption of iPods, the economic downturn we are suffering today promises to drive the adoption of flash in commercial computing. First of all, the billions that have been invested in new flash chip manufacturing plants to meet demand for even more consumer devices which is not materializing because of the economic slowdown, means dropping prices for enterprise grade flash chips used in servers. Second, as customers look to save costs, they are more open to adopting alternative storage approaches with new price/performance economics such as the Sun Storage 7000. Finally, the strongest companies, besides just saving costs, will look to gain competitive advantage through the use of information technology, and those are exactly the companies looking today to rethink their architectures with flash.