Samsung announced it had developed the industry’s first prototype “Key Value” (KV) SSD that is compliant with the corresponding new open standard. KV SSDs move today’s storage workload of CPUs into the SSD, leading to much-improved software and hardware efficiency. This paves the way for a new generation of high-performance and scalable storage architectures.
For some background, data is stored in SSDs in fixed-sized blocks (the smallest erasable amount of data in an SSD), each with its own ID. But most real-world data is unstructured, like music, photo and zip files. So SSDs normally convert object data (which can widely vary in size) into data fragments with the size of these blocks. When some data is changed, the whole block is erased and reprogrammed.
To cater to real-world usage models, most real-world data center software (e.g. LevelDB, Amazon DynamoDB) uses key value storage where a variable-sized key refers to a variable-sized collection of data. In programming this is called a key-value tuple. In other words, a key is submitted followed by either putting or receiving the data associated with the key.
However, key value software places quite some burden on the host processor as it uses valuable CPU resources. The industry’s concern was that as the speed of SSDs continued to increase, system-level performance would be saturated as it got bottlenecked by CPU overhead due to the burden of managing blocks and operations. So the idea behind a Key Value SSD, then, is to support key value storage (KVS) natively: each key enables direct addressing of a data location. This eliminates processes such as logical and physical block addressing. Instead of a block device driver, a KV SSD has a KV device driver and it is accessed through a KV library. Through this software and hardware co-design, resources can be moved from the host CPU to the SSD.
While Samsung already made a proprietary KV SSD prototype two years ago (and submitted its proposal for a standard), in April this year the Storage Networking Industry Association (SNIA) released the new open standard Key Value Storage API v1 that serves to provide a vendor-independent Key Value Storage (KVS) programming interface. Samsung on Wednesday announced that it has developed the first SSD prototype that is compliant with the open standard, but did not provide further specifications.
Michael Oros, SNIA Executive Director, sees Key Value SSDs becoming widely used: “The SNIA KV API specification, which provides an industry-wide interface between an application and a Key Value SSD, paves the way for widespread industry adoption of a standardized KV API protocol.”
Samsung claims numerous benefits associated with KV storage technology. Moving storage operations to the SSD itself – in a standardized manner – frees the host CPU from computational work such as block operations and storage-level garbage collection (which is needed with software-based KVS), resulting in greater system-level performance and higher software efficiency. The reduced CPU overhead also provides substantially improved scalability in the number of interlinked SSDs. Write amplification is also said to be much reduced. (Write amplification is a phenomenon whereby more data is written than intended, due to the much larger size of blocks that can be erased compared to the smaller pages that can be written.) Lastly, each SSD experiences less wear, prolonging its lifetime.
In a 2017 presentation, Samsung showed that its KV prototype handled 8x more queries per second (QPS) in a random put benchmark and reduced traffic to device by over 90%. Furthermore, as the number of SSDs increased to 18, the amount of queries per second increased practically linearly, resulting in 15x higher QPS than a standard block SSD. Similar results were achieved with a sequential benchmark and with a scale-out test to multiple clients. In terms of CPU utilization, the regular SSD achieved up to 400k QPS at 80% utilization, compared to the KV implementation that yielded 2.1M QPS at 30% utilization.
Samsung said it is working with several companies to build an ecosystem for the technology. Its KV SSD prototype is also “sufficiently advanced” that it is making it available to companies for application development. Samsung did not say when it expects to commercialize this new technology. AnandTech notes that this won't happen until a key-value extension for NVMe is finalized.