The DSSD D5 flash appliance hit the market earlier this year with a lot of deserved fanfare and some mind-numbing performance numbers associated with it. Getting up to 10 million IO/s and 100 GBytes/s out of flash dies residing in 5 rack units is an engineering achievement requiring optimization at every level of the appliance. Those numbers are very impressive, and open a large number of use cases for high performance shared storage. For this blog post, I'll focus on storage latency (or service time). Service times represent the amount of time it takes to do a single unit of work, and it's more likely than raw throughput to impact the "wall clock" times of a given application process. I think Chad Sakac did a great job in his first blog post describing DSSD a couple years ago.
Orders of magnitude are difficult to visualize and appreciate. I'd like to offer up a couple new visualizations that can help you understand the relative performance of non-volatile shared storage available on the market today. I find that treemaps (below) are a fantastic way to show relative scale by plotting surface areas next to each other. Way over to the bottom right is the DSSD D5.
Relative service times of shared storage, 2016
The treemap is accurate, and a fantastic visualization. But despite that, it's abstract – it's difficult for humans (even engineers) to relate to things on the kind of scale that we're talking about here. The great Grace Hopper's description of a nanosecond is one of the most effective methods of describing orders of magnitude I've ever seen. You can watch the video of course, but here's what she did:
- Established a baseline visualization that was easy to comprehend: the distance light will travel in a nanosecond is 11.8 inches
- Drew a comparison to a larger measure: the distance light will travel in a microsecond is 984 feet (already this is difficult to comprehend – that's about the length of three football fields)
- Applied the initial measure to a real-life use case: satellite signal latency
In that spirit, you can look at the travel times between some well-known places. Let's say that it takes the same amount of time for the DSSD to do an IO as it takes to travel from the White House to the US Supreme Court building (1.7 miles). I drew a 1.7 mile radius around the White House here:
For a typical all-flash array to do the same unit of work, it would be about 11.7 miles, any point in the beltway around Washington DC.
For a hybrid array to do the same amount of work, it would be about 50 miles, well beyond Baltimore
A typical HDD array would look like this:
You might notice that Cleveland is in that radius. Imagine that you could get from the White House to Cleveland in the same amount of time as it takes to get from the White House to the Supreme Court.
Analogies like this invite skepticism, but it's important to help people realize the impact that revolutionary technologies can have. If your application can move 10 times as fast as does today, what new things might be possible?