FASTER
tikv
Our great sponsors
FASTER | tikv | |
---|---|---|
8 | 21 | |
6,199 | 14,512 | |
3.7% | 1.9% | |
7.2 | 9.7 | |
12 days ago | 5 days ago | |
C# | Rust | |
MIT License | Apache License 2.0 |
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.
FASTER
-
A MySQL compatible database engine written in pure Go
You would be surprised by performance of modern .NET :)
Writing no-alloc is oftentimes done by reducing complexity and not doing "stupid" tricks that actually work against JIT and CoreLib features.
For databases specifically, .NET is actually positioned very well with its low-level features (intrisics incl. SIMD, FFI, struct generics though not entirely low-level) and high-throughput GC.
Interesting example of this applied in practice is Garnet[0]/FASTER[1]. Keep in mind that its codebase still consist of un-idiomatic C# and you can do way better by further simplification, but it already does the job well enough.
[0] https://github.com/microsoft/garnet
[1] https://github.com/microsoft/FASTER
- FLaNK Stack 26 February 2024
- Fast persistent recoverable log and key-value store
- GitHub - microsoft/FASTER: Fast persistent recoverable log and key-value store + cache, in C# and C++.
-
FoundationDB: A Distributed Unbundled Transactional Key Value Store
A vaguely similar project that might be of interest is: https://github.com/microsoft/FASTER
It's also an "unbundled" low-level component that one could use as the foundation for a database engine or whatever. According to Microsoft, FASTER is not just "fast", but significantly faster than even some basic in-memory data structures that ship in the .NET standard library!
The downside is that it doesn't (yet) support some more advanced features like multi-server distributed mode.
However, that relative simplicity may be preferred in some scenarios...
-
Event Sourcing
Last time i looked into it there weren't that many i could find. There is https://github.com/tikv/tikv which uses rocksdb with raft. and there is faster https://github.com/microsoft/FASTER/ .
-
Experiences with Concurrent Hash Map Libraries
you could use fasterkv https://github.com/microsoft/FASTER
-
Faster A fast concurrent persistent key-value store and log, in C# and C++
FTA, https://github.com/Microsoft/FASTER/wiki/Performance-of-FAST...
tikv
-
just wanted to ask is there an in memory database that uses s3 or gcp cloud storage as permanent storage
I know that very similar functionality to this is in TiDB Serverless ( https://tidbcloud.com ). TiDB is a distributed relational database. It uses TiKV ( which is a key/value engine ) as the storage engine. You could use SQL to access your K/V records. There is ongoing work in TiKV to support S3 directly as the storage backend ( https://github.com/tikv/tikv/issues/6506 ) .
- Implementing a distributed key-value store on top of implementing Raft in Go
- Production grade databases in Rust
- Can anyone recommend tikv nosql database
- Go devs that learned Rust, what are your thoughts on it?
-
Apache Pegasus – A a distributed key-value storage system
TiKV is basically a layer on top of rocksdb https://github.com/tikv/tikv/blob/956610725039835557e7516828...
- TiKV is a highly scalable, low latency, and easy to use key-value database
-
Surrealdb – FOSS document-graph database, for the realtime web in Rust
> Many,many smart people…
If you look inside the code you can see the stated features are a result of underlying engine (TiKV [0] also in c and rust from pingcap). Surrealdb is standing on shoulders of giants at present, they are TiKV, FoundationDB and rocksdb. The feature set they mentioned mostly coming from TiKV at present.
[0] https://tikv.org/
-
Cloud database for tomorrow's applications (written in Rust)
Hi Diggsey, great question. We are currently focussed on functionality and stability, and then will draw our attention to performance. Coming this week we have a RocksDB storage implementation. We've only just launched our initial beta version, and we know there is a lot of improvement and work to be done (some of these performance issues we know about already and are on our Github issues list).
With regards to the consistency/isolation model, SurrealDB sits on top of a number of key-value stores. By using the distributed highly-available TiKV storage backend, https://tikv.org, (and we have a FoundationDB integration in the works), the database is designed to be highly-scalable and highly-available. The same guarantees (albeit just single-node, so no high-availability or scalability) will be available with the RocksDB implementation coming this week. By sitting on top of these key-value stores, SurrealDB ensures that all transactions are ACID compliant. We don't want to go for speed (for instance by writing to /dev/null) over anything, but want SurrealDB to be a reliable and performant backend for any application. Obviously we have a way to go to catch up with PostgreSQL (launched in 1996), but we will strive to get there!
-
CeresDB: A high-performance, distributed, schema-less and time-series database
If you are looking for a production ready distributed store written in Rust. Check out TiKV(https://github.com/tikv/tikv), which was also mentioned in the acknowledge section of the project's README.
There's also a full-featured distributed RDBMS called TiDB built on top of TiKV.
What are some alternatives?
libcuckoo - A high-performance, concurrent hash table
redis-rs - Redis library for rust
parallel-hashmap - A family of header-only, very fast and memory-friendly hashmap and btree containers.
rust-etcd - An etcd client library for Rust.
foundationdb - FoundationDB - the open source, distributed, transactional key-value store
rust-rocksdb - rust wrapper for rocksdb
plumber - A swiss army knife CLI tool for interacting with Kafka, RabbitMQ and other messaging systems.
cassandra-rs - Cassandra (CQL) driver for Rust, using the DataStax C/C++ driver under the covers.
Folly - An open-source C++ library developed and used at Facebook.
rust-postgres - Native PostgreSQL driver for the Rust programming language
message-db - Microservice native message and event store for Postgres
diesel - A safe, extensible ORM and Query Builder for Rust