Live data from Hacker News

Ask HN: Why are there no open source NVMe-native key value stores in 2023?

news.ycombinator.com

41–50 of 74 posts

Re: Ask HN: Why are there no open source NVMe-native key value stores in 2023?

#41

Why do you mean by non-embedded? You might also be interested in xNVMe and the RocksDB/Ceph KV drivers: https://github.com/OpenMPDK/xNVMe https://github.com/OpenMPDK/KVSSD https://github.com/OpenMPDK/KVRocks

Super helpful, thanks. What I mean is something akin to a single-node daemon with network capabilities. Something as basic as a memcached or redis type of interface to start.

Re: Ask HN: Why are there no open source NVMe-native key value stores in 2023?

#42
post #41

Why do you mean by non-embedded? You might also be interested in xNVMe and the RocksDB/Ceph KV drivers: https://github.com/OpenMPDK/xNVMe https://github.com/OpenMPDK/KVSSD https://github.com/OpenMPDK/KVRocks

Super helpful, thanks. What I mean is something akin to a single-node daemon with network capabilities. Something as basic as a memcached or redis type of interface to start.

I think there's actually a standard defined for networked KV API over NVMe, written by the SNIA (as others have mentioned)

Though I'm not super knowledgeable about it. I think Redfish/Swordfish are maybe meant for this sort of thing:

https://www.snia.org/forums/smi/swordfish

There's a video on NVMe and NVMe-oF management for instance:

https://www.youtube.com/watch?v=56VoD_1iGIs&list=PLH_ag5Km-Y...

Re: Ask HN: Why are there no open source NVMe-native key value stores in 2023?

#43
post #19

Earlier quoted context omitted.

Is that discussion/implementation of nvme available somewhere in public? https://github.com/rails/solid_cache didn't include anything about NVME that I could find.

I think the original question came up after the recent Rails keynote where they mention that, with NVMe speeds, disk is cheaper and almost as fast as memory, so Redis is not as vital. https://youtu.be/iqXjGiQ_D-A?t=2836 So Solid Cache and Solid Queue just use the database (MySQL), which uses NVMe. So now, in addition to: "You don't need a queue, just use Postgres/MySQL", we have "You don't need a cache, just use Post…

Right, that is cool, but unrelated to the OP of using NVME directly and bypassing the filesystem. Or does MySQL have a storage driver that talks directly on the NVME level? (I haven't used MySQL in more than a decade, mostly PostgerSQL now)

Re: Ask HN: Why are there no open source NVMe-native key value stores in 2023?

#44

Note that some cloud VM types expose entire NVMe drives as-is directly the guest operating system without hypervisors or other abstractions in the way. The Azure Lv3/Lsv3/Lav3/Lasv3 series all provide this capability, for example. Ref: https://learn.microsoft.com/en-us/azure/virtual-machines/las...

Is there not any danger of tenants rewriting the firmware on these drives, and surprising (or compromising) future tenants? AIUI this is the central reason why even "baremetal" cloud instances still have a minimal hypervisor between the tenant and the hardware.

Re: Ask HN: Why are there no open source NVMe-native key value stores in 2023?

#46
post #4

Naive question: are there really expected gains to address natively an NVMe disk wrt using a regular key-value database on a filesystem ?

Significant gains if you want a distributed key-value database because you can take advantage of NVMEoF.

Re: Ask HN: Why are there no open source NVMe-native key value stores in 2023?

#48
post #44

Note that some cloud VM types expose entire NVMe drives as-is directly the guest operating system without hypervisors or other abstractions in the way. The Azure Lv3/Lsv3/Lav3/Lasv3 series all provide this capability, for example. Ref: https://learn.microsoft.com/en-us/azure/virtual-machines/las...

Is there not any danger of tenants rewriting the firmware on these drives, and surprising (or compromising) future tenants? AIUI this is the central reason why even "baremetal" cloud instances still have a minimal hypervisor between the tenant and the hardware.

I’m not sure what makes you think an “minimal hypervisor” exists — Oracle Cloud Infrastructure doesn’t have a hypervisor of any sort between you and its .metal instance types. Don’t think Amazon EC2 does either.

Re: Ask HN: Why are there no open source NVMe-native key value stores in 2023?

#49
post #25

Earlier quoted context omitted.

I believe that NVMe uses multiple I/O queues compared to serialized access with SATA and I think you’d be able to side unnecessary abstractions like file systems and block-based access with an NVMe-specific datastore. I’m also curious if different and more performant data structures can leveraged; if so, there may be downstream improvements for garbage collection, retrieval, and request parallelism.

SATA also has multiple I/O queues. It’s called “NCQ” The exact semantics vary per protocol but it’s a feature of most protocols at least in the currently used revisions: https://en.wikipedia.org/wiki/Native_Command_Queuing

That's one queue per drive. NVMe allows multiple queues per drive, commonly used to assign one queue per CPU core.
Post reply on HN