By Mark Mokryn, VP Product
Storage technology has always presented complex challenges in computer architecture.
Back when hard drives were the predominant technology, their low I/O performance was a challenge to application performance. The way to improve application performance was to avoid disk I/O, especially random I/O.
With SSDs having become mainstream for high-performance apps, the challenges get flipped. Questions to ask:
- How can applications take advantage of the enormous I/O capabilities of flash?
- How can applications efficiently use flash resources, considering their high expense?
The Computational Challenges of SSDs
Databases are the largest application category for high-performance flash usage in the data center.
Both relational and NoSQL databases use “key-value” (KV) storage engines. Also, the data is indexed by “keys” and stored as “values.”
However, KV engines typically enable variable-sized keys and values. This approach presents computational challenges. For example, how can you effectively store, retrieve, and manage variable-sized data on top of devices with a fixed block size, such as HDDs and SSDs?
While not computationally difficult over a hard drive with 100 IOPS (I/Os per second), it’s challenging over an SSD capable of 500K IOPS. Not to mention in a system with numerous such devices.
Moreover, flash storage is costly when compared to hard drives. In addition, its performance and endurance are limited by the number of writes.
Therefore, there is strong motivation to compress flash-resident data. However, compression is computationally expensive at the high IOPS capabilities of flash. So is the task of managing the compressed data, which is no longer a fixed block size due to compression. When compressed, even generic block I/O appears as variable-sized KV.
Therefore, key-value storage on flash is ubiquitous, from database storage to any application’s compressed block storage. Due to the high IOPS capabilities and demands, CPUs spend immense resources on KV SSD storage, which has detrimental effects on application performance.
The industry needs new architectures to crack this problem. Flash storage cannot be treated with the same computational tools used for hard drives.
What if I told you that there was a way to resolve this?
An emerging class of hardware accelerators will ensure KV stores achieve an order of magnitude increase in price, performance, and scaling!
Key-Value SSD Storage Inefficiencies
As noted earlier, it’s challenging to efficiently store variable-sized KV data on devices with fixed block sizes.
For example, the data must be indexed, which often entails high memory utilization. The data must also be maintained in the presence of deletions and over-writes. This is challenging under high IOPS and causes high write and read amplification.
Furthermore, I/O amplification means for every byte written or read, the storage subsystem must write or read numerous bytes due to overhead and maintenance of the on-disk data structures. Also, the compression and decompression involved take a high toll on CPU utilization.
The storage subsystem often has challenges with various tradeoffs:
- High memory utilization for fast data accesses versus low memory utilization with slow data access
- High write amplification for efficient space management versus low write amplification while wasting space
- Large data containers that lower memory utilization but cause high read amplification and waste of flash space versus fine-grained object mapping, which is difficult to maintain
The above was easier when handling hard drives with about 100 IOPS. However, SSDs with 500K IOPS each are a huge challenge to manage effectively.
Existing software solutions cannot keep up. The fast growth of networking bandwidth, with 100Gbps mainstream, enables hungry applications to consume vast amounts of data, thus contributing to this problem.
On the other hand, CPU performance is stagnating, and memory costs are still very high.
The Storage Solution for SSDs: Hardware to the Rescue
Dedicated hardware engines running data-intensive workloads are the best long-term solution to the problems caused by skyrocketing I/O requirements, data size, and slowing compute performance growth.
By offloading key-value storage and its associated inefficiencies to an optimal architecture on a dedicated hardware device, the Pliops Extreme Data Processor (XDP) reduces data management to near-optimal levels and improves performance many times over.
XDP also minimizes CPU utilization to a small percentage of what typical software solutions demand.
What About Computational Storage?
Most computational storage companies today focus on providing computing power to storage. This approach often puts CPU cores or FPGAs close to the storage.
Essentially, these are mostly platform plays. They enable end customers such as top cloud providers to develop their technology to handle their storage needs. However, Pliops’ XDP provides an end-to-end computational storage solution.
For example, our first offering is for block storage. It appears as a standard block device such as an SSD from a software perspective. But, the underlying technology is our KV processor.
Because we focus on providing solutions and not requiring the customer to develop anything custom, XDP can benefit nearly any application that stores data on SSDs.
Companies of any size can take advantage of Pliops technology with no changes required to their existing applications or system architecture. And because Pliops works with any SSD, you can continue to buy SSDs from the vendors you use today.
The Pliops Extreme Data Processor (XDP) – The Technology Behind the Solution
The Pliops XDP is a hardware-enabled key-value engine in a PCIe add-in card. It optimizes a broad range of workloads. XDP also delivers a highly optimized, reliable, scalable storage system that can provide 10X faster performance and 100x improved response time with less than half the storage.
By accelerating compute-intensive functions and eliminating bottlenecks, XDP is key to unlocking the value of increasingly denser, faster SSDs.
Also, enabling more efficient processing puts an end to wasted storage. It also allows you to take full advantage of your flash storage investments.