https://github.com/bnclabs/gostore
Storage algorithms.
https://github.com/bnclabs/gostore
balanced-tree btree golang llrb lsm malloc multithreading mvcc
Last synced: 21 days ago
JSON representation
Storage algorithms.
- Host: GitHub
- URL: https://github.com/bnclabs/gostore
- Owner: bnclabs
- License: mit
- Created: 2015-11-02T11:46:44.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2021-02-10T11:14:51.000Z (almost 5 years ago)
- Last Synced: 2024-06-20T11:13:31.270Z (over 1 year ago)
- Topics: balanced-tree, btree, golang, llrb, lsm, malloc, multithreading, mvcc
- Language: Go
- Homepage:
- Size: 18.1 MB
- Stars: 35
- Watchers: 6
- Forks: 4
- Open Issues: 49
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
Storage algorithms in golang
============================
[](https://godoc.org/github.com/bnclabs/gostore)
[](https://goreportcard.com/report/github.com/bnclabs/gostore)
Package storage implement a collection of storage algorithm and necessary
tools and libraries. Applications wishing to use this package please checkout
interfaces defined under [api/](api/README.md).
As of now, two data structures are available for indexing key,value entries:
* [**llrb**](llrb/README.md) in memory left-leaning red-black tree
* [**bubt**](bubt/README.md) immutable, durable bottoms up btree.
* [**bogn**](bogn/README.md) multi-leveled, lsm based, ACID compliant storage.
There are some sub-packages that are common to all storage algorithms:
* [**flock**](flock/README.md) read-write mutex locks across process.
* [**lib**](lib/README.md) collections of helper functions.
* [**lsm**](lsm/README.md) implements log-structured-merge.
* [**malloc**](malloc/README.md) custom memory alloctor, can be used instead
of golang's memory allocator or OS allocator.
How to contribute
-----------------
[](http://issuestats.com/github/bnclabs/gostore)
[](http://issuestats.com/github/bnclabs/gostore)
* Pick an issue, or create an new issue. Provide adequate documentation for
the issue.
* Assign the issue or get it assigned.
* Work on the code, once finished, raise a pull request.
* Gostore is written in [golang](https://golang.org/), hence expected to follow the
global guidelines for writing go programs.
* If the changeset is more than few lines, please generate a
[report card][report-link].
* As of now, branch ``master`` is the development branch.
[report-link]: https://goreportcard.com/report/github.com/bnclabs/gostore.