yottaStore
xNVMe
yottaStore | xNVMe | |
---|---|---|
9 | 3 | |
79 | 213 | |
- | 3.8% | |
1.8 | 9.3 | |
about 1 year ago | 5 days ago | |
C | ||
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
yottaStore
- Ask HN: Why are there no open source NVMe-native key value stores in 2023?
-
How to deal with overflowing counters?
I'm building a database, and I'm working on the storage format. For each record I have a logical clock which increases by 1 every time there's a write operation on the record, and I would like to be able to compare the clocks of two writes to understand which happened first.
-
Need help porting a wait free trie from C to Rust (and other silly questions)
If you're curious to know more, the tree is used for rendezvous based routing, as used by my datastore. I'm doing machine learning on a 200 TB dataset, using around 200 machines.
-
Looking for fast, space-efficient key-lookup
I copied this approach from several papers, with some improvements, for my datastore.
-
How to handle hundreds of routes?
I have a server with hundreds of routes, representing all the possible operations I can do on a datastore. How can I organize my code better?
-
Async-rdma v0.4.0: A Rust lib for writing high-throughput, low-latency networking apps simply
Yes I'm building a database where storage and compute are decoupled. I use io_uring to do pseudo-RDMA, and I'm looking to add ePBF to make it even more effective.
-
Avoid hash flooding without a secret key?
I'm currently building an implementation of the dynamo paper, yottastore. Imagine it as a huge, distributed, hash map.
-
How to deal with a very big hash table?
I'm building an implementation of the dynamo paper, yottastore. Given a key, I need to find which NVMe block stores the data. To do that I hash the key to find the shard where I have an in memory array in which at position [hash] I can find a struct with:
-
Golang is better than Rust for next generation in-memory database
I have to be honest, I'm very skeptical about your results and your code. I'm building a database, yottastore, both in javascript, golang and rust so I think I can share my opinion:
xNVMe
- Ask HN: Why are there no open source NVMe-native key value stores in 2023?
-
Anyone using io_uring?
Basically io_uring grew a lot, the latest API offers incredible tools but there are very few examples in any language (xnvme and fio), and in particular I'm struggling to understand how to do it in Rust: where should unsafe code stop? should I simply expose the io_uring api as unsafe, or should I do more work in C and present the ring when ready to rust?
-
libnvme VS xNVMe - a user suggested alternative
2 projects | 4 Mar 2022
The foundation of xNVMe is libxnvme, a user space library for working with NVMe devices. It provides a C API for memory management, that is, for allocating physical / DMA transferable memory when needed. An NVMe command interface allowing you to submit and complete NVMe commands in a synchronous as well as an asynchronous manner. Similar to libnvme, however, with a focus on I/O performance and portability. Thus, xNVMe and the libxnvme library works not just on Linux, but also on FreeBSD, Windows, and MacOS.
What are some alternatives?
solid_cache - A database-backed ActiveSupport::Cache::Store
libnvme - C Library for NVM Express on Linux
async-rdma - Easy to use RDMA API in Rust async
VkFFT - Vulkan/CUDA/HIP/OpenCL/Level Zero/Metal Fast Fourier Transform library
cdb - A native golang implementation of cdb (http://cr.yp.to/cdb.html)
FEMU - FEMU: Accurate, Scalable and Extensible NVMe SSD Emulator (FAST'18). Please checkout https://github.com/vtess/FEMU for latest developments.
KVRocks - RocksDB compatible key value store and MyRocks compatible storage engine designed for KV SSD
openSeaChest - Cross platform utilities useful for performing various operations on SATA, SAS, NVMe, and USB storage devices.
ssd-nvme-database - Columnar database on SSD NVMe
fio - Flexible I/O Tester
uNVMe - KV and LBA SSD userspace NVMe driver
KVSSD - KV SSD host software including APIs and drivers