Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
===================================== ketama.go libketama-style consistent hashing in Go Author: Nolan Caudill (firstname.lastname@example.org) Date: 2011-06-04 ===================================== This is a small library to do libketama-style consistent hashing. A common pattern in a caching cluster (eg, memcache) is to take the hash of the key modded by the number of cache servers to determine which node to cache to. This provides a distribution as even as your hashing algorithm but whenever a server is added or removed, all your keys have to rehash. With consistent hashing, in the event of the removal of a cache node, all keys that were hashing to one node to (in theory) evenly distribute to the other cache nodes. The addition of a cache node works in a similar manner in that all nodes will evenly give up a portion of their cache keys to the new node. This is a first pass at this and things seems to work at first glance but consider this alpha. =========== USAGE =========== ketama_test.go provides a working example of how to use this library.