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
Ask HN: Why are there no open source NVMe-native key value stores in 2023?
41–50 of 74 posts
Re: Ask HN: Why are there no open source NVMe-native key value stores in 2023?
#42Why 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.
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?
#43Earlier 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…
Re: Ask HN: Why are there no open source NVMe-native key value stores in 2023?
#44Note 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...
Re: Ask HN: Why are there no open source NVMe-native key value stores in 2023?
#45Re: Ask HN: Why are there no open source NVMe-native key value stores in 2023?
#46Naive question: are there really expected gains to address natively an NVMe disk wrt using a regular key-value database on a filesystem ?
Re: Ask HN: Why are there no open source NVMe-native key value stores in 2023?
#47Re: Ask HN: Why are there no open source NVMe-native key value stores in 2023?
#48Note 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?
#49Earlier 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