tag:github.com,2008:https://github.com/ingenthr/java-memcached-client/releasesTags from java-memcached-client2011-06-08T10:56:30Ztag:github.com,2008:Repository/521482/2.72011-06-08T10:56:30ZRelease of 2.7<p>Release of 2.7</p>
<p>Changes since the 2.6 series:</p>
<p>The 2.7 series gains significant new capabilities when using
<br />binary protocol with Membase or forthcoming updates to
<br />memcached.</p>
<p>Starting with the 2.7 release, it is now possible to
<br />instantiate a MemcachedClient from the REST interface
<br />supported by Membase. What this means is that if you have
<br />one or more buckets in Membase, you can create
<br />MemcachedClient objects to work with the buckets. Furthermore,
<br />if the cluster topology changes (i.e. a node is added or
<br />removed), the client will automatically adjust to the new
<br />topology.</p>
<p>This updated client also has support for other new Membase
<br />operations, some of which will likely be in memcached
<br />as well in a future release:
<br /> touch - extend the expiration for a given item
<br /> get and touch (a.k.a. gat) - get and touch an item
<br /> getl - get and lock an item, with a lock expiration time</p>
<p>See <a href="http://www.couchbase.org/documentation">http://www.couchbase.org/documentation</a> for further
<br />details.</p>
<p>Many other minor changes were introduced in support of
<br />this work, like handling temporary failures. Notably,
<br />this affects testing in that you now need a Membase
<br />server running locally with a specific username
<br />and password. This is a limitation planned for removal
<br />in future releases.</p>
<p>Some of these changes affected interfaces, which is why
<br />the version number has been raised to 2.7 even though
<br />2.6 was just recently released.</p>
<p>To support this new functionality, there are a few new
<br />runtime dependencies:
<br />netty 3.1.5 GA
<br />jettison 1.1
<br />Apache commons-codec 1.4</p>
<p>These are only required if you are using the new REST
<br />interface and topology changes from Membase.</p>
<p>The majority of contributions to this release were
<br />funded by Couchbase, Inc. Thanks to the contributors:</p>
<p>Alexander Sokolovsky (9):
<br /> Integrated jvbucket
<br /> Added vbucket configuration parser from JSON.
<br /> Added bucket monitor with response handler.
<br /> Add a configuration provider for bucket updates.
<br /> Added VbucketNodeLocator, keyed operation handling.
<br /> Allow MemcachedClient and connections to be reconfigurable.
<br /> Bugfixing of NOT_MY_VBUCKET handling
<br /> Bugfixing not_my_vbucket occurs on optimized set
<br /> Unit test and javadoc additions.</p>
<p>Matt Ingenthron (15):
<br /> Buildfile changes to support Maven 2 artifact upload.
<br /> If it is membase, do not test some things.
<br /> Set the status when receiving ERR_NOT_MY_VBUCKET.
<br /> Add both hostnames and IPs to the nodes map.
<br /> Assert the node must exist when finding primary.
<br /> Added check for moxi when testing.
<br /> Refactor: not a collection of vbuckets, more of a configuration.
<br /> Add a ConfigType via an enum.
<br /> Allow config to handle cache as well.
<br /> Change client ctor to detect vbucket usage from server.
<br /> Extracted HTTP auth header to common place.
<br /> Remove standard Authenticator and replace with simple auth header.
<br /> Added logging for manipulation of nodesMap in VBucketLocator.
<br /> Change ConfigType enum for clarity.
<br /> Change a Bucket instance variable to final.</p>
<p>Mike Wiederhold (5):
<br /> Added TEMP_FAIL handling to set operations
<br /> Added touch operation
<br /> Added getl operation
<br /> Added Get And Touch Command
<br /> Fixed .classpath file to include all dependencies</p>
<p>Bugs fixed/closed:
<br /><a href="http://code.google.com/p/spymemcached/issues/detail?id=153">http://code.google.com/p/spymemcached/issues/detail?id=153</a>
<br /><a href="http://code.google.com/p/spymemcached/issues/detail?id=172">http://code.google.com/p/spymemcached/issues/detail?id=172</a>
<br /><a href="http://code.google.com/p/spymemcached/issues/detail?id=165">http://code.google.com/p/spymemcached/issues/detail?id=165</a></p>
<p>With others which can be listed here:
<br /><a href="http://code.google.com/p/spymemcached/issues/list">http://code.google.com/p/spymemcached/issues/list</a></p>ingenthrtag:github.com,2008:Repository/521482/2.6rc12011-02-15T18:10:09Z2.6rc1: Prerelease of 2.6<p>Prerelease of 2.6</p>
<p>Changes since the 2.5 series:</p>
<p>The major change, and the reason for the version bump, is that timeout
<br />handling has been improved. Previously, timed out operations may have
<br />actually been written to the network even after they'd timed out. The
<br />change required some small API changes (generally forward compatible
<br />so minor version bump only) and adds a new operation state of timedout.</p>
<p>Other changes include performance enhancements, transcoder enahncements
<br />and improvements in the continuious timeout counter to be per
<br />connection rather than for the entire MemcachedClient.</p>
<p>Contributors:
<br /> 10 Matt Ingenthron
<br /> 9 Blair Zajac
<br /> 3 Boris Partensky
<br /> 3 Dustin Sallings
<br /> 1 Andrey Kartashov
<br /> 1 ddlatham</p>ingenthrtag:github.com,2008:Repository/521482/2.5rc32010-03-31T20:39:14Z2.5rc3: Prerelease of 2.5<p>Prerelease of 2.5</p>
<p>Changes since the 2.4 series:</p>
<p>The main new feature of the 2.5 release is support for SASL auth
<br />to go along with the same feature in the memcached 1.4.3 and later
<br />servers.</p>
<p>There is also a new feature which can be used in conjunction with the
<br />failure cancel mode to close all connections to memcached servers if
<br />there are timeouts against a server. This helps to recover from
<br />situations where a memcached server in the list may hard fail.</p>
<p>The reason for rc3, and the significant changes over rc2, is that
<br />a number of issues were found where operations could be sent without
<br />allowing SASL to complete.</p>
<p>Contributors:</p>
<p> 2 Ahn Seong Hwa
<br /> 3 Blair Zajac
<br /> 25 Dustin Sallings
<br /> 2 Kevin Lafferty
<br /> 1 Kristian Eide
<br /> 11 Matt Ingenthron</p>ingenthrtag:github.com,2008:Repository/521482/authAtMemcachedNode2010-03-30T22:37:55ZauthAtMemcachedNode: WIP: A complete auth fix, but planned for rebasing.<p>WIP: A complete auth fix, but planned for rebasing.</p>
<p>This commit enhances the MemcachedNode interface, creating nodes
<br />which know if they're supposed to auth or not. Then there is special
<br />handling with the inputQueue and addOperation based on authentication.</p>ingenthrtag:github.com,2008:Repository/521482/2.5-ns2010-03-15T14:02:36Z2.5-ns: Prerelease of spymemcached 2.5 with NorthScale fixes.<p>Prerelease of spymemcached 2.5 with NorthScale fixes.</p>
<p>These will be added to spymemcached soon for review.</p>ingenthrtag:github.com,2008:Repository/521482/2.5rc22010-03-12T22:51:46Z2.5rc2: Prerelease of 2.5<p>Prerelease of 2.5</p>
<p>Changes since the 2.4 series:</p>
<p>The main new feature of the 2.5 release is support for SASL auth
<br />to go along with the same feature in the memcached 1.4.3 and later
<br />servers.</p>
<p>There is also a new feature which can be used in conjunction with the
<br />failure cancel mode to close all connections to memcached servers if
<br />there are timeouts against a server. This helps to recover from
<br />situations where a memcached server in the list may hard fail.</p>
<p>Contributors:</p>
<p> 7 Dustin Sallings
<br /> 5 Matt Ingenthron
<br /> 2 Ahn Seong Hwa
<br /> 1 Blair Zajac
<br /> 1 Kristian Eide</p>ingenthrtag:github.com,2008:Repository/521482/2.5rc12009-11-13T17:59:01Z2.5rc1: Prerelease of 2.5<p>Prerelease of 2.5</p>
<p>Changes since the 2.4 series:</p>
<p>The primary new thing here is SASL support. While the implementation
<br />isn't exactly what I want, I think the API is good enough to be
<br />considered stable.</p>
<p>Contributors:</p>
<p> 12 Dustin Sallings
<br /> 2 Blair Zajac</p>dustintag:github.com,2008:Repository/521482/2.4.22009-10-27T18:23:39ZRelease 2.4.2<p>Release 2.4.2</p>
<p>Changes since 2.4.1:</p>
<p>Dustin Sallings (4):
<br /> StorageListener should be public.
<br /> Removed a debugging stdout thing.
<br /> Handle operations that are writing and reading at the same time.
<br /> Allow MemcachedClient and AsciiOperationFactory extensibility.</p>
<p>Kevin Lafferty (2):
<br /> MemcachedConnection constructor should catch SocketException
<br /> Support byte arrays in WhalinV1Transcoder.</p>
<p>Matt Ingenthron (1):
<br /> Some javadoc cleanup in MemcachedClient examples.</p>
<p>Bugs fixed:</p>
<p> <a href="http://code.google.com/p/spymemcached/issues/detail?id=98">http://code.google.com/p/spymemcached/issues/detail?id=98</a>
<br /> <a href="http://code.google.com/p/spymemcached/issues/detail?id=68">http://code.google.com/p/spymemcached/issues/detail?id=68</a>
<br /> <a href="http://code.google.com/p/spymemcached/issues/detail?id=83">http://code.google.com/p/spymemcached/issues/detail?id=83</a>
<br /> <a href="http://code.google.com/p/spymemcached/issues/detail?id=74">http://code.google.com/p/spymemcached/issues/detail?id=74</a>
<br /> <a href="http://code.google.com/p/spymemcached/issues/detail?id=95">http://code.google.com/p/spymemcached/issues/detail?id=95</a>
<br /> <a href="http://code.google.com/p/spymemcached/issues/detail?id=97">http://code.google.com/p/spymemcached/issues/detail?id=97</a>
<br /> <a href="http://code.google.com/p/spymemcached/issues/detail?id=94">http://code.google.com/p/spymemcached/issues/detail?id=94</a></p>dustintag:github.com,2008:Repository/521482/2.4.12009-10-14T18:38:20ZRelease 2.4.1<p>Release 2.4.1</p>
<p>Changes since 2.4:</p>
<p>* Build system now targets java 1.5.
<br /> Java 1.5 is EOL'd at the end of this month, but I don't do anything
<br /> special that would make it *not* work there.</p>dustintag:github.com,2008:Repository/521482/2.42009-10-13T20:59:40ZVersion 2.4<p>Version 2.4</p>
<p>Changes since the 2.3 series.</p>
<p>Bug Fixes:</p>
<p>* Memcached node tracking.
<br /> When a timeout occurs on an operation, the exception indicates the
<br /> server node that was the intendend recipient of the operation.
<br />* Fixed reconnect loss on multiple simultaneous connection failures.
<br /> This is a rare occurrence, but the wrong thing would happen if two
<br /> simultaneous reconnects were requeued for any reason.
<br />* Fixed a race condition that occurred when tearing down a connection.
<br /> There was a case where shutting down a connection would cause an NPE
<br /> to get logged due to the a race between a selector check and the
<br /> selector being shut down. Unlikely to affect a running app, but
<br /> it was still wrong.
<br />* Handle initial connect failures.
<br /> There were rare cases where an async connect would error instantly
<br /> on the first attempt, but that connect wouldn't be retried.
<br />* Sequence number wrapping bug.
<br /> If you sent more than 2 billion or so requests to a node, the client
<br /> would find itself in an infinite loop trying to cmoe up with a new
<br /> opaque value.
<br />* Suboptimal back-off algorithm.
<br /> The previous back-off algorithm wouldn't create a reasonable
<br /> reconnect curve. The new one is more gradual and has a configurable
<br /> maximum ceiling.</p>
<p>Features:</p>
<p>* ConnectionFactoryBuilder
<br /> Rather than having to build a custom subclass of
<br /> DefaultConnectionFactory to override behaviors, you can now use a
<br /> ConnectionFactoryBuilder to easily assemble a ConnectionFactory as
<br /> you want it.
<br />* Mutation-only CAS mutator
<br /> Previously, the CASMutator required an initial object to use if the
<br /> object you were attempting to mutate wasn't found. Now you can
<br /> specify this as NULL and CASMutator will *only* mutate an existing
<br /> object, but never create a new one.
<br />* CacheLoader
<br /> CacheLoader provides a couple of convenient mechanisms for
<br /> efficiently loading bulk data. I've seen many benchmarks trying to
<br /> see how fast data can go into memcached through the client (as
<br /> opposed to normal usage), but they do things to make it
<br /> unnecessarily slow. This should satisfy both benchmarking
<br /> requirements and legitimate bulk loading requirements.
<br />* KetamaNodeLocator is more configurable.
<br /> The node data ketama uses for building a hash is configurable now in
<br /> an effort to make consistent hashing work between java and C#.</p>
<p>Performance Enhancements:</p>
<p>* Disable Nagle Algorithm by Default
<br /> The usage of the Nagle algorithm (tcpNoDelay) is now configurable
<br /> and is configured off by default (Nagle algorithm off = tcpNoDelay
<br /> on). This should be more optimal for most configurations.
<br />* Multi-set Escalation in the Binary Protocol
<br /> With no changes to the API, multiple sequential sets will be
<br /> escalated into a multi-set operation similar to multi-get. In a
<br /> bulk load test, this is generally around 2x faster.
<br />* Asynchronous Transcoding Service
<br /> A transcoder can request a transcoder service (effectively a
<br /> threadpool) to asynchronously decode cache response objects both
<br /> outside of the API and outside of the caller thread.</p>
<p>Contributors:</p>
<p> 40 Dustin Sallings
<br /> 1 Joseph Hart
<br /> 1 Lewis Zimmerman
<br /> 1 Wang Nan
<br /> 1 ciaranj</p>dustin