Categorygithub.com/CyrusJavan/dovii
module
0.0.0-20210102004452-7b2b90544d82
Repository: https://github.com/cyrusjavan/dovii.git
Documentation: pkg.go.dev

# README

dovii

Namesake parachromis dovii

A key-value data store used for learning more about the internals of a database. The goal is to incrementally improve the robustness and speed of the database, ideally reaching a point of an eventually consistent data store like Cassandra or Redis.

How to run

  • Need to have a local Docker daemon running and docker-compose installed
  • Run with 3 dovii instances docker-compose up --scale dovii=3

API

GET

  • curl --header "Host: dovii.local" http://localhost/<KEY>

SET

  • curl --header "Host: dovii.local" -X POST http://localhost/<KEY>/<VALUE>

Changelog

  • String keys and values stored in memory
  • String keys and values stored in json on disk
  • Bitcask support
  • Deploy multiple instances with docker-compose, load balanced behind traefik
    • At this point the system does not return correct values for GETs, this is expected, now we do RAFT to get values consistent across cluster
  • Use hashicorp/raft to guarantee consistency across nodes

# Packages

No description provided by the author