Browse files

Update docs

  • Loading branch information...
1 parent 7e07443 commit fad65897338b4fda5bd49b65132f83a846583415 @mperham mperham committed Jan 14, 2009
Showing with 11 additions and 6 deletions.
  1. +11 −0 History.txt
  2. +0 −6 README.txt
11 History.txt
@@ -1,3 +1,14 @@
+= Unreleased
+* Implement a consistent hashing algorithm, as described in libketama.
+ This dramatically reduces the cost of adding or removing servers dynamically
+ as keys are much more likely to map to the same server.
+ Take a scenario where we add a fourth server. With a dumb modulo algorithm, about
+ 25% of the keys will map to the same server. In other words, 75% of your memcached
+ content suddenly becomes invalid. With a consistent algorithm, 75% of the keys
+ will map to the same server as before - only 25% will be invalidated.
* Remove native C CRC32_ITU_T extension in favor of Zlib's crc32 method.
6 README.txt
@@ -46,9 +46,3 @@ memcache-client also comes with a wrapper called Cache in memcache_util.rb for
use with Rails. To use it be sure to assign your memcache connection to
CACHE. Cache returns nil on all memcache errors so you don't have to rescue
the errors yourself. It has #get, #put and #delete module functions.
-=== Improving Performance ===
-Performing the CRC-32 ITU-T step to determine which server to use for a given key
-is VERY slow in Ruby. RubyGems should compile a native library for performing this
-operation when the gem is installed.

0 comments on commit fad6589

Please sign in to comment.