Categorygithub.com/Mohitgupta07/go-hit
module
1.1.0-cassandra-enabled
Repository: https://github.com/mohitgupta07/go-hit.git
Documentation: pkg.go.dev

# README

Go-Hit

This is a KV-store tool implemented in Go.

Simple objective: To make a tool which is super scalable, fast, can handle tons of data for scalability.

To start the server:

go run cmd/go-hit-server/main.go

Simple objective of this is to create the best of all worlds like solution that can support multiple backend storage. Also, it should be concurrent in nature.

Why do we need this?

  • Easy to digest, fast to read and fault tolerant to restart.
  • Can support 100k writes a second and data reload (on restart) should be atleast as fast as 100k read per sec. Note that we are just talking about a simple benchmark of write a {"key":"value"} no matter how we store in rdbms, nosql, file storage, etc.

Benchmark Report:

Benchmark NameOperationsTime per OperationMemory Allocs per OperationNotes
Postgres
BenchmarkSaveToDisk8886138285 ns/op462 B/op
BenchmarkLoad96312622185 ns/op2046178 B/op
Postgres with IO concurrency = 10
BenchmarkSaveToDisk2955137869 ns/op493 B/op
BenchmarkLoad14507427697 ns/op3173033 B/op
SFW with IO concurrency = 10
BenchmarkSaveToDisk16446104123 ns/op782 B/op
BenchmarkLoad17049426406 ns/op3909961 B/op
Cassandra with IO concurrency = 500
BenchmarkSaveToDisk1037449803 ns/op2899 B/op
BenchmarkLoad6382193735 ns/op132143 B/op

# Packages

No description provided by the author