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