/god

A Go database

Primary LanguageGoOtherNOASSERTION

god

god is a scalable, performant, persistent, in-memory data structure system. It allows massively distributed applications to update and fetch common data in a structured and sorted format.

Its main inspirations are Redis and Chord/DHash. Like Redis it focuses on performance, ease of use, and a small, simple yet powerful feature set, while from the Chord/DHash projects it inherits scalability, redundancy, and transparent failover behaviour.

Try it out

Install Go, git, Mercurial and gcc, go get github.com/zond/god/god_server, run god_server, browse to http://localhost:9192/.

Embed it in your Go application

import "github.com/zond/god/dhash"
s := dhash.NewNodeDir(fmt.Sprintf("%v:%v", listenIp, listenPort), fmt.Sprintf("%v:%v", broadcastIp, broadcastPort), dataDir)
s.MustStart()
s.MustJoin(fmt.Sprintf("%v:%v", joinIp, joinPort))

Documents

HTML documentation: http://zond.github.com/god/

godoc documentation: http://godoc.org/github.com/zond/god

TODO

  • Docs
  • Add illustrations to the usage manual
  • Benchmark
  • Consecutively start 1-20 instances on equally powerful machines and benchmark against each size
  • Need 20 machines of equal and constant performance. Is anyone willing to lend me this for few days of benchmarking?
  • Add benchmark results to docs