go-memdb
btree
go-memdb | btree | |
---|---|---|
3 | 5 | |
3,071 | 3,775 | |
0.8% | 0.8% | |
3.6 | 0.0 | |
2 months ago | 5 months ago | |
Go | Go | |
Mozilla Public License 2.0 | 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.
go-memdb
-
I created an in-memory SQL database called MemSQL as a learning project
For another in-memory database example, you could also check out https://github.com/hashicorp/go-memdb, but it's based on a radix tree implementation.
-
Why use a real K/V database over a MapStore?
I just think its a glorified map. Yeah, for example go-memdb list some of its advantages in their https://github.com/hashicorp/go-memdb/blob/master/README.md README. But it is not clear whether you gain any performance gain over a map except for avoiding the locking as explained.
-
An Unlikely Database Migration
>So we invested what probably amounts to two or three weeks of engineering time into designing in-memory indexes that are transactionally consistent
I'll be interested to see that part if it does get open sourced. I've used https://github.com/hashicorp/go-memdb which sounds similar.
btree
-
Shaving 40% Off Google’s B-Tree Implementation with Go Generics
This may be confusing to those familiar with Google's libraries. The baseline is the Go BTree, which I personally never heard of until just now, not the C++ absl::btree_set. The benchmarks aren't directly comparable, but the C++ version also comes with good microbenchmark coverage.
https://github.com/google/btree
https://github.com/abseil/abseil-cpp/blob/master/absl/contai...
-
I created an in-memory SQL database called MemSQL as a learning project
You might be interested in https://github.com/google/btree and having a default tree based around a PK. A simpler tree like an AVL or Red-Black Tree would let you do efficient range lookups for the PK as well.
- Any major projects using generics?
-
AVL balanced generic binary trees in Go
Go has generics now, and the API surface of the most popular btree implementations llrb and google don't quite match what I like from an iteration and sorting perspective. AVL has a pretty straightforward balancing model, and it turns out to be pretty performant for what I wind up doing a lot of the time.
- What are some secrets for solving tree problems during code interviews
What are some alternatives?
dbbench - 🏋️ dbbench is a simple database benchmarking tool which supports several databases and own scripts
graph - A library for creating generic graph data structures and modifying, analyzing, and visualizing them.
badger - Fast key-value DB in Go.
concurrent-map - a thread-safe concurrent map for go
buntdb - BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support
hooks - Simple, type-safe hook system to enable easier modularization of your Go code.
bolt
verify - Extensible, type-safe, fluent assertion Go library.
go-cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
surf - CLI Text Search across your infrastructure platforms, Universal Ctrl+F for infra
cockroach - CockroachDB - the open source, cloud-native distributed SQL database.
go-events - :mega: Pure nodejs EventEmmiter for the Go Programming Language.