Our new pmemkv project is an open-source key-value store that is optimized for read-heavy workloads on persistent memory. Compared with key-value stores based on the LSM algorithm, pmemkv offers higher read performance and lower write amplification. But our intent is not to deter use of LSM, only to expand the choices developers and architects have for aligning workloads to backing stores.
Internally pmemkv uses a B+ tree where inner nodes are kept in DRAM and leaf nodes are exclusively stored in persistent memory. Mixing types of memory allows pmemkv to offer both per-operation consistency and good performance. The diagram below shows a simple example of what pmemkv looks like internally.
Like NVML itself, pmemkv is open-source software (under BSD license) and community contributions are welcomed!