tag:github.com,2008:https://github.com/ingenthr/java-memcached-client/releases Tags from java-memcached-client 2011-06-08T10:56:30Z tag:github.com,2008:Repository/521482/2.7 2011-06-08T10:56:30Z Release 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> ingenthr tag:github.com,2008:Repository/521482/2.6rc1 2011-02-15T18:10:09Z 2.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> ingenthr tag:github.com,2008:Repository/521482/2.5rc3 2010-03-31T20:39:14Z 2.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> ingenthr tag:github.com,2008:Repository/521482/authAtMemcachedNode 2010-03-30T22:37:55Z authAtMemcachedNode: 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> ingenthr tag:github.com,2008:Repository/521482/2.5-ns 2010-03-15T14:02:36Z 2.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> ingenthr tag:github.com,2008:Repository/521482/2.5rc2 2010-03-12T22:51:46Z 2.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> ingenthr tag:github.com,2008:Repository/521482/2.5rc1 2009-11-13T17:59:01Z 2.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> dustin tag:github.com,2008:Repository/521482/2.4.2 2009-10-27T18:23:39Z Release 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> dustin tag:github.com,2008:Repository/521482/2.4.1 2009-10-14T18:38:20Z Release 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> dustin tag:github.com,2008:Repository/521482/2.4 2009-10-13T20:59:40Z Version 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