pogreb
moss
pogreb | moss | |
---|---|---|
4 | 2 | |
1,228 | 941 | |
- | 0.0% | |
5.3 | 0.0 | |
4 months ago | about 2 years ago | |
Go | Go | |
Apache License 2.0 | 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.
pogreb
- Sparkey is a simple constant key/value storage library
-
Open Source Databases in Go
pogreb - Embedded key-value store for read-heavy workloads.
-
Recommendation for Key/Value storage
I will agree with built in maps, badger, and bbolt as previously mentioned. Some unique cases require that you do many read. Take a look at the design of https://github.com/akrylysov/pogreb.
moss
-
Open Source Databases in Go
moss - Moss is a simple LSM key-value storage engine written in 100% Go.
-
But how, exactly, databases use mmap?
I decided to dig through a database source code to answer that question. There are plenty of databases that use mmap. Some of them decided to not use anymore. Some examples: SQLite has an option of accessing disk content directly using memory-mapped I/O[1], it seems LevelDB used to use but it changed it[2], Lucene has an option with MMapDirectory[3], LMDB uses mmap[4], a simple key/value in-memory database from Counchbase called moss uses mmap for durability of in-memory data[5] and MongoDB removed mmap storage engine for WiredTiger[6].
What are some alternatives?
nutsdb - A simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set.
badger - Fast key-value DB in Go.
bolt
Bitcask - 🔑 A high performance Key/Value store written in Go with a predictable read/write performance and high throughput. Uses a Bitcask on-disk layout (LSM+WAL) similar to Riak.
tidb - TiDB is an open-source, cloud-native, distributed, MySQL-Compatible database for elastic scale and real-time analytics. Try AI-powered Chat2Query free at : https://tidbcloud.com/free-trial
dgraph - The high-performance database for modern applications
prometheus - The Prometheus monitoring system and time series database.
pebble - RocksDB/LevelDB inspired key-value database in Go
InfluxDB - Scalable datastore for metrics, events, and real-time analytics
go-cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
fastcache - Fast thread-safe inmemory cache for big number of entries in Go. Minimizes GC overhead