One of the most interesting sessions at Storage Field Day 17 was with NGD systems. I’m a fan of computational storage, and not too long ago I recorded a podcast with Scott Shadley (VP Marketing at NGD stems) where we talk about it. It’s always a pleasure hearing about how innovative startups like this one are evolving and SFD was the right place to get the latest updates.

What is Computational Storage?

The concept is really simple. Instead of moving data back and forth from the storage device to the CPU, for some workloads it is much better to do the contrary. Once data is stored in a device, the device itself can make some basic compute operations offloading the central CPU from a lot of tasks, improving overall system efficiency.

Why Computational Storage?

Modern flash devices and, more recently NVMe, allow to reach speeds that were unthinkable only a few year ago. Just to make an example, during Intel’s and Starwind sessions at the same SFD event we had the chance to see impressive numbers in the range of 2GB/sec of throughput or 500+K 4K IOPS at 500uSecs!

The performance of one device, is impressive and manageable… but that’s not the case for high density systems that are now more and more common in large scale datacenters. How many 2GB/s devices can you put in a single server and get a decent performance from them? Not many. PCI bus and CPU quickly become a bottleneck. And if you consider that it is now possible of putting 1PB of flash per rack unit thanks to the new EDSFF standard, you can have some idea of the kind of issues you are going to be facing.

By having computing capabilities in the flash device, you’re avoiding an increase in the traffic on the PCI bus while getting results faster.

How does computation storage work?

The video from SFD is quite comprehensive in this regard. I suggest you watch it to get a grasp on the architecture design and its details. From a 30,000-foot-view it is very simple though. The controller that manages the flash devices has four spare 64 bit ARM CPU cores and enough RAM to run a Linux OS. At the end of the day this is a full-fledged compute node that can access data stored in the flash memory component directly from the inside!
On the other hand, from the outside, it looks like a standard Flash drive.

The use cases for this technology are incredibly cool, and the demos I had the chance to see are no less than freaking awesome. Again, take a look at the video below to get a better idea. The difference in performance between a standard approach using the X86 server processor and this solution is incredible, especially at scale.

Two words on NGD Systems

NGD Systems is a pioneer in computational storage and has already secured several patents regarding flash management and in-situ computing.

Founded by a group of industry veterans, most of which hail from STEC (again, a pioneer in enterprise SSD drives, acquired by WD a while ago), NGD has been working on these kinds of devices for a while now and can propose them in several form factors. The interesting thing, from the engineering point of view, is that their devices are not only compute-enabled but also very efficient from the power consumption point of view, (key if you want to reach high densities) and some components are field replaceable!

They also claim that the price of these devices are competitive with products of similar capacity and specs from the competition. Meaning that even if something goes wrong, you will still have a powerful and standard flash memory device!

Closing the circle

Computational storage is a niche and it will remain so for a long time. That doesn’t diminish its value. It’s a new fascinating field of modern computing. I’ve always been especially keen on the concept of intelligent drives and their potential, and after many clumsy attempts from several startups and primary vendors, I think NGD systems has actually nailed it.

NGD is not the only company working on this, others are developing devices that are capable of doing some work locally and I think we will see more products in this segment soon. The main difference at the moment is that NGD has a solution that is easier to use, based on a well-known OS, development tools and libraries.

Disclaimer: I was invited to Storage Field Day 17 by GestaltIT and they paid for travel and accommodation, I have not been compensated for my time and am not obliged to blog. Furthermore, the content is not reviewed, approved or edited by any other person than the Juku team.