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/.
As of now, two data structures are available for indexing key,value entries:
- llrb in memory left-leaning red-black tree
- bubt immutable, durable bottoms up btree.
- bogn multi-leveled, lsm based, ACID compliant storage.
There are some sub-packages that are common to all storage algorithms:
- flock read-write mutex locks across process.
- lib collections of helper functions.
- lsm implements log-structured-merge.
- malloc custom memory alloctor, can be used instead of golang's memory allocator or OS allocator.
- 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, hence expected to follow the global guidelines for writing go programs.
- If the changeset is more than few lines, please generate a report card.
- As of now, branch
master
is the development branch.