Changes since the 2.6 series:
The 2.7 series gains significant new capabilities when using
binary protocol with Membase or forthcoming updates to
memcached.
Starting with the 2.7 release, it is now possible to
instantiate a MemcachedClient from the REST interface
supported by Membase. What this means is that if you have
one or more buckets in Membase, you can create
MemcachedClient objects to work with the buckets. Furthermore,
if the cluster topology changes (i.e. a node is added or
removed), the client will automatically adjust to the new
topology.
This updated client also has support for other new Membase
operations, some of which will likely be in memcached
as well in a future release:
touch - extend the expiration for a given item
get and touch (a.k.a. gat) - get and touch an item
getl - get and lock an item, with a lock expiration time
See http://www.couchbase.org/documentation for further
details.
Many other minor changes were introduced in support of
this work, like handling temporary failures. Notably,
this affects testing in that you now need a Membase
server running locally with a specific username
and password. This is a limitation planned for removal
in future releases.
Some of these changes affected interfaces, which is why
the version number has been raised to 2.7 even though
2.6 was just recently released.
To support this new functionality, there are a few new
runtime dependencies:
netty 3.1.5 GA
jettison 1.1
Apache commons-codec 1.4
These are only required if you are using the new REST
interface and topology changes from Membase.
The majority of contributions to this release were
funded by Couchbase, Inc. Thanks to the contributors:
Alexander Sokolovsky (9):
Integrated jvbucket
Added vbucket configuration parser from JSON.
Added bucket monitor with response handler.
Add a configuration provider for bucket updates.
Added VbucketNodeLocator, keyed operation handling.
Allow MemcachedClient and connections to be reconfigurable.
Bugfixing of NOT_MY_VBUCKET handling
Bugfixing not_my_vbucket occurs on optimized set
Unit test and javadoc additions.
Matt Ingenthron (15):
Buildfile changes to support Maven 2 artifact upload.
If it is membase, do not test some things.
Set the status when receiving ERR_NOT_MY_VBUCKET.
Add both hostnames and IPs to the nodes map.
Assert the node must exist when finding primary.
Added check for moxi when testing.
Refactor: not a collection of vbuckets, more of a configuration.
Add a ConfigType via an enum.
Allow config to handle cache as well.
Change client ctor to detect vbucket usage from server.
Extracted HTTP auth header to common place.
Remove standard Authenticator and replace with simple auth header.
Added logging for manipulation of nodesMap in VBucketLocator.
Change ConfigType enum for clarity.
Change a Bucket instance variable to final.
Mike Wiederhold (5):
Added TEMP_FAIL handling to set operations
Added touch operation
Added getl operation
Added Get And Touch Command
Fixed .classpath file to include all dependencies
Bugs fixed/closed:
http://code.google.com/p/spymemcached/issues/detail?id=153
http://code.google.com/p/spymemcached/issues/detail?id=172
http://code.google.com/p/spymemcached/issues/detail?id=165
With others which can be listed here:
http://code.google.com/p/spymemcached/issues/list