<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -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.
+
 = 1.5.0.5
 
 * Remove native C CRC32_ITU_T extension in favor of Zlib's crc32 method.</diff>
      <filename>History.txt</filename>
    </modified>
    <modified>
      <diff>@@ -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.</diff>
      <filename>README.txt</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>7e0744387b4136a4915cd914e79aec2497d505dc</id>
    </parent>
  </parents>
  <author>
    <name>Mike Perham</name>
    <email>mperham@gmail.com</email>
  </author>
  <url>http://github.com/fiveruns/memcache-client/commit/fad65897338b4fda5bd49b65132f83a846583415</url>
  <id>fad65897338b4fda5bd49b65132f83a846583415</id>
  <committed-date>2009-01-13T22:38:58-08:00</committed-date>
  <authored-date>2009-01-13T22:38:58-08:00</authored-date>
  <message>Update docs</message>
  <tree>47a3868f38df03263706566a3e67fe7d51fd2c67</tree>
  <committer>
    <name>Mike Perham</name>
    <email>mperham@gmail.com</email>
  </committer>
</commit>
