yottaStore
Aerospike
yottaStore | Aerospike | |
---|---|---|
9 | 16 | |
79 | 972 | |
- | 1.6% | |
1.8 | 8.7 | |
about 1 year ago | 7 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:
Aerospike
- System Design: Databases and DBMS
- Ask HN: Why are there no open source NVMe-native key value stores in 2023?
-
Aerospike Driver for LINQPad
Aerospike for LINQPad 7 is a data context dynamic driver for interactively querying and updating an Aerospike database using “LINQPad”. The driver is free. For more information go to this blog post. You can directly download the driver from the LINQPad NuGet manager.
-
Using In-Memory Databases in Data Science
Aerospike is a real-time cloud structured platform with good performance capabilities. This IMDB platform allows enterprises to perform their operations in real time through the hybrid memory and parallelism model.
- System Design: Caching, Content Delivery Networks (CDN) & Proxies.
-
Block and Filesystem side-by-side with K8s and Aerospike
Block storage stores a sequence of bytes in a fixed size block (page) on a storage device. Each block has a unique hash that references the address location of the specified block. Unlike a filesystem, block storage doesn't have the associated metadata such as format-type, owner, date, etc. Also, block storage doesn’t use the conventional storage paths to access data like a filesystem file. This reduction in overhead contributes to improved overall access speeds when using raw block devices. The ability to store bytes in blocks allows applications the flexibility to decide how these blocks are accessed and managed, making block storage an ideal choice for low latency databases such as Aerospike. From a developer's perspective, a block device is simply a large array of bytes, usually with some minimum granularity for reads and writes. In Aerospike this granularity is configured and referred to as the write-block-size. The Aerospike Kubernetes Operator uses the storage infrastructure software inside of Kubernetes and the need for data platforms to use raw block storage becomes ever more important.
-
Aerospike & IoT using MQTT
This example shows how the Aerospike database can be easily and scalably used to store industrial time series data made available by the MQTT ecosystem. Aerospike plus its Community Time Series Client streamlines the storage and retrieval of the data, supporting the ability to both write and read millions of data points per second if required.
-
Building Large-Scale Real-Time JSON Applications
Real-time large-scale JSON applications need reliably fast access to data, high ingest rates, powerful queries, rich document functionality, scalability with no practical limit, always-on operation, and integration with streaming and analytical platforms. They need all this at low cost. The Aerospike Real-time Data Platform provides all this functionality, making it a good choice for building such applications. The Collection Data Types (CDTs) in Aerospike provide powerful support for modeling, organizing, and querying a large JSON document store. Visit the tutorials and code sandbox on the Developer Hub to explore the capabilities of the platform, and play with the Document API and query capabilities for JSON.
- System Design: NoSQL databases
- System Design: Caching
What are some alternatives?
solid_cache - A database-backed ActiveSupport::Cache::Store
dragonfly - A modern replacement for Redis and Memcached
async-rdma - Easy to use RDMA API in Rust async
Redis - Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, Streams, HyperLogLogs, Bitmaps.
cdb - A native golang implementation of cdb (http://cr.yp.to/cdb.html)
yugabyte-db - YugabyteDB - the cloud native distributed SQL database for mission-critical applications.
KVRocks - RocksDB compatible key value store and MyRocks compatible storage engine designed for KV SSD
ClickHouse - ClickHouse® is a free analytics DBMS for big data
ssd-nvme-database - Columnar database on SSD NVMe
neon - Neon: Serverless Postgres. We separated storage and compute to offer autoscaling, branching, and bottomless storage.
uNVMe - KV and LBA SSD userspace NVMe driver
ydb - YDB is an open source Distributed SQL Database that combines high availability and scalability with strong consistency and ACID transactions