/docs/gem.memcache-client-1.8.5/files/History_rdoc.html
HTML | 532 lines | 424 code | 108 blank | 0 comment | 0 complexity | c8fa581a8d91ec8aa4a61acaa7260087 MD5 | raw file
- <?xml version="1.0" encoding="utf-8"?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <title>History.rdoc</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <link rel="stylesheet" href="../css/reset.css" type="text/css" media="screen" />
- <link rel="stylesheet" href="../css/main.css" type="text/css" media="screen" />
- <script src="../js/jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script>
- <script src="../js/jquery-effect.js" type="text/javascript" charset="utf-8"></script>
- <script src="../js/main.js" type="text/javascript" charset="utf-8"></script>
- </head>
- <body>
- <div class="banner">
- <h1>
- History.rdoc
- </h1>
- <ul class="files">
- <li>History.rdoc</li>
- <li>Last modified: Sun Oct 02 01:01:13 +0200 2011</li>
- </ul>
- </div>
- <div id="bodyContent">
- <div id="content">
-
- <div class="description">
- <h1>1.8.5 (2010-07-05)</h1>
- <pre>
- * Fix bad release
- </pre>
- <h1>1.8.4 (2010-07-02)</h1>
- <pre>
- * Fix unfibered usage of memcache-client in EM
- * Remove nag message (tenderlove)
- </pre>
- <h1>1.8.3 (2010-04-26)</h1>
- <pre>
- * Don't allow blank keys. (Bill Horsman)
- </pre>
- <h1>1.8.2 (2010-04-03)</h1>
- <pre>
- * Fix concurrency issues with eventmachine support.
- </pre>
- <h1>1.8.1 (2010-03-20)</h1>
- <pre>
- * Only require SystemTimer if the Ruby VM looks like MRI.
- * Remove VERSION.yml usage as we should avoid using files outside of lib at runtime. (josh)
- </pre>
- <h1>1.8.0 (2010-03-05)</h1>
- <pre>
- * Add support for EventMachine-based connections.
- * Add support for raw values in get_multi
- * Add memcached_top binary for gathering server statistics
- </pre>
- <h1>1.7.8 (2010-02-03)</h1>
- <ul>
- <li>Fix issue where autofix_keys logic did not account for namespace length.
- (menno)
- </li>
- <li>Fix issue when using memcache-client without rubygems. (anvar)
- </li>
- <li>Fix issue when using the cas method with raw=true (Takahiro Kikumoto)
- </li>
- </ul>
- <h1>1.7.7 (2009-11-24)</h1>
- <ul>
- <li>Fix invalid delete request in memcached 1.4.x. The expiry parameter to <a
- href="../classes/MemCache.html#M000037">MemCache#delete</a> is now ignored
- as memcached 1.4.x has dropped support for this feature.
- </li>
- </ul>
- <h1>1.7.6 (2009-11-03)</h1>
- <ul>
- <li>Reworked socket timeout code due to several customer complaints about
- timeouts not working 100% of the time since 1.7.3.
- </li>
- <li>Add option to configure the namespace separator string, for interop with
- Perl which does not use a separator character:
- <pre>
- MemCache.new(servers, :namespace_separator => '')
- </pre>
- </li>
- <li>Move to jeweler and gemcutter for RubyGem support.
- </li>
- </ul>
- <h1>1.7.5 (2009-09-09)</h1>
- <ul>
- <li>Fix ruby warnings (josh)
- </li>
- <li>Make megabyte value size limit optional since Tokyo Tyrant can accept
- values larger than 1MB. Use :check_size => false to disable the size check.
- (jsl)
- </li>
- <li>Ruby 1.9 support for recent I/O changes.
- </li>
- <li>Fix duplicate value marshalling on server error. (rajiv)
- </li>
- <li>Added option :autofix_keys (disabled by default) to replace long keys with
- md5 hashes (sd)
- </li>
- </ul>
- <h1>1.7.4 (2009-06-09)</h1>
- <ul>
- <li>Fix issue with raising timeout errors.
- </li>
- </ul>
- <h1>1.7.3 (2009-06-06)</h1>
- <ul>
- <li>Remove SystemTimer support, refactor I/O to use nonblocking operations.
- Speeds up performance approx 100%. Timeouts basically have no overhead now!
- (tenderlove)
- </li>
- <li>Update load logic to support SystemTimer running in Ruby Enterprise
- Edition. Thanks to splattael on github for the comment.
- </li>
- </ul>
- <h1>1.7.2 (2009-04-12)</h1>
- <ul>
- <li>Rollback socket timeout optimization. It does not work on all operating
- systems and was a support headache.
- </li>
- </ul>
- <h1>1.7.1 (2009-03-28)</h1>
- <ul>
- <li>Performance optimizations:
- <ul>
- <li>Rely on higher performance operating system socket timeouts for low-level
- socket read/writes where possible, instead of the (slower) SystemTimer or
- (slowest, unreliable) Timeout libraries.
- </li>
- <li>the native binary search is back! The recent performance tuning made the
- binary search a bottleneck again so it had to return. It uses RubyInline to
- compile the native extension and silently falls back to pure Ruby if
- anything fails. Make sure you run: `gem install RubyInline` if you want
- ultimate performance.
- </li>
- <li>the changes make memcache-client 100% faster than 1.7.0 in my performance
- test on Ruby 1.8.6: 15 sec -> 8 sec.
- </li>
- </ul>
- </li>
- <li>Fix several logging issues.
- </li>
- </ul>
- <h1>1.7.0 (2009-03-08)</h1>
- <ul>
- <li>Go through the memcached protocol document and implement any commands not
- already implemented:
- <ul>
- <li>cas
- </li>
- <li>append
- </li>
- <li>prepend
- </li>
- <li>replace
- </li>
- </ul>
- <p>
- Append and prepend only work with raw data since it makes no sense to
- concatenate two Marshalled values together. The cas functionality should be
- considered a prototype. Since I don’t have an application which uses
- <tt>cas</tt>, I’m not sure what semantic sugar the API should
- provide. Should it retry if the value was changed? Should it massage the
- returned string into true/false? Feedback would be appreciated.
- </p>
- </li>
- <li>Add fetch method which provides a method very similar to
- ActiveSupport::Cache::Store#fetch, basically a wrapper around get and add.
- (djanowski)
- </li>
- <li>Implement the flush_all delay parameter, to allow a large memcached farm to
- be flushed gradually.
- </li>
- <li>Implement the noreply flag, which tells memcached not to reply in
- operations which don’t need a reply, i.e. set/add/delete/flush_all.
- </li>
- <li>The only known functionality not implemented anymore is the <flags>
- parameter to the storage commands. This would require modification of the
- API method signatures. If someone can come up with a clean way to implement
- it, I would be happy to consider including it.
- </li>
- </ul>
- <h1>1.6.5 (2009-02-27)</h1>
- <ul>
- <li>Change memcache-client to multithreaded by default. The mutex does not add
- significant overhead and it is far too easy, now that Sinatra, Rails and
- Merb are all thread-safe, to use memcache-client in a thread-unsafe manner.
- Remove some unnecessary mutexing and add a test to verify heavily
- multithreaded usage does not act unexpectedly.
- </li>
- <li>Add optional support for the SystemTimer gem when running on Ruby 1.8.x.
- This gem is highly recommended - it ensures timeouts actually work and
- halves the overhead of using timeouts. Using this gem, Ruby 1.8.x is
- actually faster in my performance tests than Ruby 1.9.x. Just “gem
- install SystemTimer” and it should be picked up automatically.
- </li>
- </ul>
- <h1>1.6.4 (2009-02-19)</h1>
- <ul>
- <li>Remove native code altogether. The speedup was only 10% on Ruby 1.8.6 and
- did not work on Ruby 1.9.1.
- </li>
- <li>Removed memcache_util.rb from the distribution. If you are using it, please
- copy the code into your own project. The file will live in the github
- repository for a few more months for this purposes. <a
- href="http://github.com/mperham/memcache-client/raw/7a276089aa3c914e47e3960f9740ac7377204970/lib/memcache_util.rb">github.com/mperham/memcache-client/raw/7a276089aa3c914e47e3960f9740ac7377204970/lib/memcache_util.rb</a>
- </li>
- <li>Roll continuum.rb into memcache.rb. The project is again a single Ruby
- file, with no dependencies.
- </li>
- </ul>
- <h1>1.6.3 (2009-02-14)</h1>
- <ul>
- <li>Remove gem native extension in preference to RubyInline. This allows the
- gem to install
- </li>
- </ul>
- <p>
- and work on JRuby and Ruby 1.8.5 when the native code fails to compile.
- </p>
- <h1>1.6.2 (2009-02-04)</h1>
- <ul>
- <li>Validate that values are less than one megabyte in size.
- </li>
- <li>Refactor error handling in get_multi to handle server failures and return
- what values we could successfully retrieve.
- </li>
- <li>Add optional logging parameter for debugging and tracing.
- </li>
- <li>First official release since 1.5.0. Thanks to Eric Hodel for turning over
- the project to me! New project home page: <a
- href="http://github.com/mperham/memcache-client">github.com/mperham/memcache-client</a>
- </li>
- </ul>
- <h1>1.6.1 (2009-01-28)</h1>
- <ul>
- <li>Add option to disable socket timeout support. Socket timeout has a
- significant performance penalty (approx 3x slower than without in Ruby
- 1.8.6). You can turn off the timeouts if you need absolute performance, but
- by default timeouts are enabled. The performance penalty is much lower in
- Ruby 1.8.7, 1.9 and JRuby. (mperham)
- </li>
- <li>Add option to disable server failover. Failover can lead to
- “split-brain” caches that return stale data. (mperham)
- </li>
- <li>Implement continuum binary search in native code for performance reasons.
- Pure ruby is available for platforms like JRuby or Rubinius which
- can’t use C extensions. (mperham)
- </li>
- <li>Fix add with raw=true (iamaleksey)
- </li>
- </ul>
- <h1>1.6.0</h1>
- <ul>
- <li>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.
- <p>
- Take a scenario where we add a fourth server. With a naive 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. (mperham)
- </p>
- </li>
- <li>Implement socket timeouts, should fix rare cases of very bad things
- happening in production at 37signals and FiveRuns. (jseirles)
- </li>
- </ul>
- <h1>1.5.0.5</h1>
- <ul>
- <li>Remove native C CRC32_ITU_T extension in favor of Zlib’s crc32
- method. memcache-client is now pure Ruby again and will work with JRuby and
- Rubinius.
- </li>
- </ul>
- <h1>1.5.0.4</h1>
- <ul>
- <li>Get test suite working again (packagethief)
- </li>
- <li>Ruby 1.9 compatiblity fixes (packagethief, mperham)
- </li>
- <li>Consistently return server responses and check for errors (packagethief)
- </li>
- <li>Properly calculate CRC in Ruby 1.9 strings (mperham)
- </li>
- <li>Drop rspec in favor of test/unit, for 1.9 compat (mperham)
- </li>
- </ul>
- <h1>1.5.0.3 (FiveRuns fork)</h1>
- <ul>
- <li>Integrated ITU-T CRC32 operation in native C extension for speed. Thanks to
- Justin Balthrop!
- </li>
- </ul>
- <h1>1.5.0.2 (FiveRuns fork)</h1>
- <ul>
- <li>Add support for seamless failover between servers. If one server connection
- dies,
- </li>
- </ul>
- <p>
- the client will retry the operation on another server before giving up.
- </p>
- <ul>
- <li>Merge Will Bryant’s socket retry patch.
- </li>
- </ul>
- <p>
- <a
- href="http://willbryant.net/software/2007/12/21/ruby-memcache-client-reconnect-and-retry">willbryant.net/software/2007/12/21/ruby-memcache-client-reconnect-and-retry</a>
- </p>
- <h1>1.5.0.1 (FiveRuns fork)</h1>
- <ul>
- <li>Fix set not handling client disconnects.
- </li>
- </ul>
- <p>
- <a
- href="http://dev.twitter.com/2008/02/solving-case-of-missing-updates.html">dev.twitter.com/2008/02/solving-case-of-missing-updates.html</a>
- </p>
- <h1>1.5.0</h1>
- <ul>
- <li>Add <a href="../classes/MemCache.html#M000038">MemCache#flush_all</a>
- command. Patch 13019 and bug 10503. Patches submitted by Sebastian Delmont
- and Rick Olson.
- </li>
- <li>Type-cast data returned by <a
- href="../classes/MemCache.html#M000040">MemCache#stats</a>. Patch 10505
- submitted by Sebastian Delmont.
- </li>
- </ul>
- <h1>1.4.0</h1>
- <ul>
- <li>Fix bug 10371, set does not check response for server errors. Submitted by
- Ben VandenBos.
- </li>
- <li>Fix bug 12450, set TCP_NODELAY socket option. Patch by Chris McGrath.
- </li>
- <li>Fix bug 10704, missing add method. Patch by Jamie Macey.
- </li>
- <li>Fix bug 10371, handle socket EOF in cache_get. Submitted by Ben VandenBos.
- </li>
- </ul>
- <h1>1.3.0</h1>
- <ul>
- <li>Apply patch 6507, add stats command. Submitted by Tyler Kovacs.
- </li>
- <li>Apply patch 6509, parallel implementation of get_multi. Submitted by Tyler
- Kovacs.
- </li>
- <li>Validate keys. Disallow spaces in keys or keys that are too long.
- </li>
- <li>Perform more validation of server responses. <a
- href="../classes/MemCache.html">MemCache</a> now reports errors if the
- socket was not in an expected state. (Please file bugs if you find some.)
- </li>
- <li>Add incr and decr.
- </li>
- <li>Add raw argument to set and get to retrieve incr and decr values.
- </li>
- <li>Also put on MemCacheError when using Cache::get with block.
- </li>
- <li>memcache.rb no longer sets $TESTING to a true value if it was previously
- defined. Bug 8213 by Matijs van Zuijlen.
- </li>
- </ul>
- <h1>1.2.1</h1>
- <ul>
- <li>Fix bug 7048, <a
- href="../classes/MemCache.html#M000025">MemCache#servers=</a> referenced
- changed local variable. Submitted by Justin Dossey.
- </li>
- <li>Fix bug 7049, MemCache#initialize resets @buckets. Submitted by Justin
- Dossey.
- </li>
- <li>Fix bug 6232, Make Cache::Get work with a block only when nil is returned.
- Submitted by Jon Evans.
- </li>
- <li>Moved to the seattlerb project.
- </li>
- </ul>
- <h1>1.2.0</h1>
- <p>
- NOTE: This version will store keys in different places than previous
- versions! Be prepared for some thrashing while memcached sorts itself out!
- </p>
- <ul>
- <li>Fixed multithreaded operations, bug 5994 and 5989. Thanks to Blaine Cook,
- Erik Hetzner, Elliot Smith, Dave Myron (and possibly others I have
- forgotten).
- </li>
- <li>Made memcached interoperable with other memcached libraries, bug
- <ol>
- <li>Thanks to anonymous.
- </li>
- </ol>
- </li>
- <li>Added get_multi to match Perl/etc APIs
- </li>
- </ul>
- <h1>1.1.0</h1>
- <ul>
- <li>Added some tests
- </li>
- <li>Sped up non-multithreaded and multithreaded operation
- </li>
- <li>More Ruby-memcache compatibility
- </li>
- <li>More RDoc
- </li>
- <li>Switched to Hoe
- </li>
- </ul>
- <h1>1.0.0</h1>
- <p>
- Birthday!
- </p>
- </div>
-
-
-
-
-
-
-
-
-
-
-
-
- </div>
- </div>
- </body>
- </html>