net.spy.memcached.changelog.txt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spymemcached Show documentation
Show all versions of spymemcached Show documentation
A simple, asynchronous, single-threaded Memcached client written in java.
The newest version!
commit 740a9c63e887623c678049b7f1003e2f5372dcb8
Author: Dustin Sallings
Date: Wed May 11 12:05:04 2011 -0700
Removed a bit of dead test code.
Change-Id: I295d7b6b301217866f1074c526cdeba6d60420ab
Reviewed-on: http://review.membase.org/6152
Tested-by: Matt Ingenthron
Reviewed-by: Matt Ingenthron
commit f993fe99d04337dbca5b337d79258a39baaa447d
Author: Dustin Sallings
Date: Wed May 11 12:02:31 2011 -0700
Compilation fix after spring de-generification.
Change-Id: Ic3cddeedb76ce096569a34e3d8024be06bd4bd62
Reviewed-on: http://review.membase.org/6151
Tested-by: Matt Ingenthron
Reviewed-by: Matt Ingenthron
commit 79743d192463d202008c7ab8d460a8f35631b438
Author: Luke Lappin
Date: Mon May 9 09:51:29 2011 -0700
Do not use generics with Spring Factory Bean, be 2.5 compatible.
To be backward compatible with Spring 2.5, the Factory Bean should
avoid the use of generics.
Change-Id: I2244a24a051b1b90e4142fa01785ae7e095ed87f
Reviewed-on: http://review.membase.org/6091
Reviewed-by: Michael Wiederhold
Reviewed-by: Nelz
Reviewed-by: Luke Lappin
Reviewed-by: Eran Harel
Reviewed-by: Trond Norbye
Reviewed-by: Dustin Sallings
Tested-by: Matt Ingenthron
commit 377eaa537de4a8d3527bd579216bd541ec0a4a13
Author: Matt Ingenthron
Date: Tue Apr 19 00:43:47 2011 -0700
Increase the maximum size allowed. Issue 106.
Though memcached still has a 1MiB size by default (overridable
with a flag), other engines may have their own maximum. Membase
for instance has a 20MiB maximum.
Note that the size enforced by the transcoder can be overridden
through it's ctor. The reason for making this change is to
create a new, larger default.
At least for the remainder of the 2.6 series, rather than do
deep surgery on this issue, just bump up the maximum.
Change-Id: I3e7bb000b12a63b4a299cb8b79a3151fbfc91615
Reviewed-on: http://review.membase.org/6074
Reviewed-by: Michael Wiederhold
Reviewed-by: Trond Norbye
Tested-by: Matt Ingenthron
commit 00daa10f012a7fd1656f41a5678629fa5978b1f5
Author: Matt Ingenthron
Date: Wed Mar 23 14:59:06 2011 -0700
Search more with the KetamaIterator.
The existing KetamaIterator implementation, with a small number
of nodes, may actually hit the same down node multiple times in
a row leading to failing to find a node when it should find
another one.
The original libketama[1] hashes each server to 160 numeric
values. These are spread out in a 64-bit value. The key is
then hashed to a numeric value within that 64-bit value and
walked forward until it finds a server.
Previously, this library's ketama implementation would only look
in the consistent hash for a number of iterations limited by the
number of servers. With two servers (similar to flipping a
coin, you'd get heads twice in a row sometimes) you would have
a 1 in 4 chance of picking the same dead server twice.
The new implementation will iterate based on the number of
servers, but attempts to keep the probability of hitting the
same dead server to less than 1% for a two node configuration.
This will guarantee less than 1% possibility with two or more
servers.
Because we iterate by simply appending the number of tries on
the front of the key, we'll be quite random about where in
the continuium we hit. Each selection is rather random, but
for a set of results already calculated, half of which are
alive and half of which are dead, we can say that in seven
iterations, there is only a 1/128 [1/(2^7)] chance that we
would not select once at least one alive server. The
probability for any given test still 1/2, but we can describe
the probability of the iterations. The key info on this came
from the "gambler's fallacy"[2].
1. https://github.com/RJ/ketama/blob/master/libketama/ketama.c
2. http://en.wikipedia.org/wiki/Gambler's_fallacy
Other references:
http://answers.google.com/answers/threadview/id/568615.html
http://en.wikipedia.org/wiki/Combinations
Change-Id: I6fa52c0b02516b68ca8da26e4fd85bb1730b82b2
Reviewed-on: http://review.membase.org/5207
Reviewed-by: Aliaksey Kandratsenka
Tested-by: Matt Ingenthron
commit c157be5e151c16299da5f60dda3d6cc241ed956c
Author: Matt Ingenthron
Date: Thu Mar 31 17:50:59 2011 -0700
Separate the KetamaIterator for future dynamic configuration.
Some future implementations may want to have dynamic changes to
the nodes list, so the KetamaIterator has been refactored to its
own class so it can be replaced while a client is instantiated.
Change-Id: I0c8102bf737226c054662b043661ec97907a283b
Reviewed-on: http://review.membase.org/5206
Reviewed-by: Aliaksey Kandratsenka
Tested-by: Matt Ingenthron
commit 53d61388290f51324960c02e5c71e5ae8431189b
Author: Matt Ingenthron
Date: Mon Mar 21 15:44:04 2011 -0700
Fixed cancellation issue.
It was found that an operation which had been canceled would
block the rest of the queue from being processed. This needs
to be removed from the queue so the other data may flow.
Change-Id: Ibac73fa9816855976b80fd7248b63f36eb2c1b44
Reviewed-on: http://review.membase.org/5205
Reviewed-by: Trond Norbye
Tested-by: Matt Ingenthron
commit ef4a071726131b1c51869b8b24893ca6d0ac6944
Author: Matt Ingenthron
Date: Mon Feb 21 01:09:47 2011 -0800
Fixed minor comment formatting.
Change-Id: Ie7256580316f08f7bff676525cead3dd872878e1
Reviewed-on: http://review.membase.org/5204
Reviewed-by: Blair Zajac
Reviewed-by: Trond Norbye
Tested-by: Matt Ingenthron
commit 0e1499643c745947570ed1d28fb96ec0fd8ba3ee
Author: Matt Ingenthron
Date: Sun Feb 20 23:41:26 2011 -0800
Added ability to see if op unsent but timedout.
Change-Id: If32de603bdb597db993a22b47ffbe3367e566488
Reviewed-on: http://review.membase.org/5203
Reviewed-by: Trond Norbye
Tested-by: Matt Ingenthron
commit 61edff29593be4ce03bbe34289bebfd0115fb07e
Author: Matt Ingenthron
Date: Sun Feb 20 23:39:44 2011 -0800
Fixed small log typo.
Change-Id: Ie1b2deffd89e778f5ac0ec4762e73fe5b852f66a
Reviewed-on: http://review.membase.org/5202
Reviewed-by: Blair Zajac
Reviewed-by: Trond Norbye
Tested-by: Matt Ingenthron
commit a764cf925823706f36a46e6f8f05c20d2b7cae2f
Author: Matt Ingenthron
Date: Sun Feb 20 23:39:05 2011 -0800
Warn when redistribute cannot find another node.
Change-Id: I7f4eece7d52638c92b305b0f2af35c458e57b0d3
Reviewed-on: http://review.membase.org/5201
Reviewed-by: Blair Zajac
Reviewed-by: Trond Norbye
Tested-by: Matt Ingenthron
commit bc70869f41228afdc244c162cc29a68c31c45fcf
Author: Eran Harel
Date: Wed Feb 23 15:02:17 2011 +0200
Spring FactoryBean support.
Added a Spring FactoryBean for simplifying
MemcachedClient creation in a Spring applications.
This is a patch for
http://code.google.com/p/spymemcached/issues/detail?id=164
Change-Id: Ib4051608631d976487ab8114083f6d32d35258a7
Reviewed-on: http://review.membase.org/4752
Reviewed-by: Matt Ingenthron
Tested-by: Matt Ingenthron
commit b8ae76dd1d13078e4cad07beb0dccee186377327
Author: Matt Ingenthron
Date: Wed Feb 16 19:05:04 2011 -0800
Changed transcoder logging to more appropriate defaults.
Change-Id: Ia097e245b5be75926165c4e482a86c92a80b5fa0
Reviewed-on: http://review.membase.org/4612
Reviewed-by: Blair Zajac
Reviewed-by: Michael Wiederhold
Reviewed-by: Dustin Sallings
Reviewed-by: Trond Norbye
Reviewed-by: Matt Ingenthron
Tested-by: Matt Ingenthron
commit c7bc636705347039e4557f113c354cbcaf1c0ee0
Author: Matt Ingenthron
Date: Tue Jan 11 14:11:55 2011 -0800
Catch RuntimeException instead.
Timeouts from the get() without a time value specified will return
simply a RuntimeException, while those from calling the get() with
a time value can receive a TimeoutException.
This also removes some debugging traces that were left in
unfortunate places which could also cause test failures.
Change-Id: Ie64aa5bedcbe36b4717c17750a63a08a7de1f12e
Reviewed-on: http://review.membase.org/4248
Tested-by: Matt Ingenthron
Reviewed-by: Michael Wiederhold
Reviewed-by: Dustin Sallings
commit 52ad7e589aa859549e977ff513ca89fc375c695a
Author: Dustin Sallings
Date: Mon Jan 10 11:08:12 2011 -0800
Avoid potential NPE as reported by eclipse.
Change-Id: I2bedcea366bca83597cc9863da9c63a9966eeee9
Reviewed-on: http://review.membase.org/4232
Tested-by: Matt Ingenthron
Reviewed-by: Matt Ingenthron
commit 9f1b6301200aca9ea889c969930d999df74a0bad
Author: Dustin Sallings
Date: Mon Jan 10 11:07:57 2011 -0800
Some import cleanups.
Change-Id: I54bdc264566684208e5273ce51d56f38d14be852
Reviewed-on: http://review.membase.org/4231
Tested-by: Matt Ingenthron
Reviewed-by: Matt Ingenthron
commit 7416862c645e9429fc5e27402c8f264bc585e352
Author: Matt Ingenthron
Date: Thu Dec 30 16:27:31 2010 -0800
Fixes to testSyncGetTimeouts.
Previous to enforcing the timeouts at an operation level, this test
would pass. In fact, Dustin said the test had never failed before.
However, it turns out that the really short default timeouts would
be too short and not waiting a bit after encountering a timeout would
still see timeouts.
Change-Id: If1fbe77aa02f7cacabca91915927bf7b5e086284
Reviewed-on: http://review.membase.org/4211
Reviewed-by: Michael Wiederhold
Tested-by: Dustin Sallings
Reviewed-by: Dustin Sallings
commit a4c25dcea0ca28640218441ab4fdc2cb9ffe71eb
Author: Matt Ingenthron
Date: Sun Jan 2 16:51:14 2011 -0800
Add a TIMEDOUT state to ops and make callbacks correct.
There would be some situations where the latch would not expire
due to the callback not having been called. Callbacks were
typically called on state transition for the operation, so I
thought it appropriate to add a TIMEDOUT state.
Change-Id: Ia02b5bf6a91cf987dae3fc9faf02a41751653773
Reviewed-on: http://review.membase.org/4212
Reviewed-by: Michael Wiederhold
Reviewed-by: Dustin Sallings
Tested-by: Dustin Sallings
commit ff6b1d5a083727221c93982d42829795ffff212a
Author: Matt Ingenthron
Date: Mon Dec 6 12:22:50 2010 -0800
Recognize operation may be null at times. e.g.: flush
Both the timeout changes from myself and some of the continuious timeout
changes from Boris assumed there would always be an operation. In
some cases, like flush, that is not necessarily the case.
Looking at the existing code, there were lots of guards against null
access already, so I just continued that tradition.
The tradition may need to be broken though in the future.
Change-Id: Ic1344ef2df2ab0ba4c03b4e401a4f98436a39772
Reviewed-on: http://review.membase.org/4206
Reviewed-by: Trond Norbye
Reviewed-by: Michael Wiederhold
Reviewed-by: Dustin Sallings
Tested-by: Dustin Sallings
commit b26b6002421156df14044c0ae637d7aaaa4b96ed
Author: Matt Ingenthron
Date: Wed Dec 15 13:56:11 2010 -0800
Fix for stats sizes test.
Change-Id: I4d9a13f55ec0c15ebb07c924584aa33492a57a12
Reviewed-on: http://review.membase.org/4209
Reviewed-by: Michael Wiederhold
Reviewed-by: Dustin Sallings
Tested-by: Dustin Sallings
commit 3a426512dbc7681800597e79392b221092555dc6
Author: Matt Ingenthron
Date: Thu Dec 30 14:17:58 2010 -0800
Test fixes after adding new timeout logic.
Several tests were expecting things to happen within 1ms,
which is too short. The new timeout functionality made these
tests fail, where before they'd pass.
Change-Id: I81473b25cfd4aa73c8c4473c1f337338162a0222
Reviewed-on: http://review.membase.org/4210
Reviewed-by: Trond Norbye
Reviewed-by: Dustin Sallings
Reviewed-by: Michael Wiederhold
Tested-by: Dustin Sallings
commit e17758f9a6f7fc15ceaf595e77e1a3396ce9fff2
Author: Matt Ingenthron
Date: Tue Dec 7 18:20:04 2010 -0800
Test for timeout from operation epoch.
Change-Id: I81530461187509026cc18e995b3ceddcc3c76afb
Reviewed-on: http://review.membase.org/4208
Reviewed-by: Trond Norbye
Reviewed-by: Michael Wiederhold
Tested-by: Dustin Sallings
Reviewed-by: Dustin Sallings
commit 0e1ebdb844b11f141e389ef584288a39219512a8
Author: Matt Ingenthron
Date: Tue Dec 7 09:50:21 2010 -0800
Increased default timeout to 2500ms.
The increase of the timeout to this seemingly high value is due to
a few findings.
First, by default, garbage collection times may easily go over 1sec.
Testing with simple toy tests shows this quite clearly, even on
systems with lots of CPUs and a decent amount of memory. Of course,
much of this can be controlled with GC tuning on the JVM. With the
hotspot JVM, look to this whitepaper:
http://java.sun.com/j2se/reference/whitepapers/memorymanagement_whitepaper.pdf
Testing showed the following to be particularly useful:
-XX:+UseConcMarkSweepGC -XX:MaxGCPauseMillis=850
There is a CPU time tradeoff for this.
Even with these, testing showed some 1 second timeouts when GCs near a
half a second. To use this software though, we shouldn't expect people
to have to tune the GC, so raising the default seems like the
right thing to do.
Second, many systems use spymemcached on virtualized or cloud environments.
The processes running there do not have any guarantee of execution
time. It'd be really unlikely for a thread to be starved for more than
a second, but it is possible and shouldn't make things stop. Raising this
a bit will help.
Third, and perhaps most importantly, most people run applications on
networks that do not offer any guarantee around response time. If
the network is oversubscribed or even minor blips occur on the network
can cause TCP retransmissions. While many TCP implementations ignore
it, RFC 2988 specifies rounding up to 1sec when calculating
TCP retransmit timeouts. Blips will occur, and rather than force
this seemingly synchronous get to timeout, it may be better to
just wait a bit longer by default.
Change-Id: Ie53ca774458466d9a2e6f70e65ea6663699a9f6f
Reviewed-on: http://review.membase.org/4207
Reviewed-by: Trond Norbye
Reviewed-by: Dustin Sallings
Reviewed-by: Michael Wiederhold
Tested-by: Dustin Sallings
commit 4cf9d05e5342459acbce826fd93ba9cfd71f0050
Author: Matt Ingenthron
Date: Mon Nov 15 21:26:54 2010 -0800
Do not write timedout operations to the MemcachedNode.
This commit and related ones add support to an operation to
have new methods and a state of TIMEDOUT. The intent is to
keep track of when an operation is created and if it either
times out due to a latch timeout expiration or it is found
to be already too old when thinking about sending the op
to the network, just consider it timed out then and there.
Note, object creation time is actually possibly quite a bit
after when the request is made, depending on how that request
is made. Any number of things could have happened in
between with GC, JIT, scheduling, etc.
Also note that in order to avoid needing to rely on the latch
which is in a different thread, this allows us to keep track
of the creation time of the operation and check for whether or
not it has timed out via the isTimedOut() method on the
operation.
Doing this correctly and with as little API change as possible
required getting the default operation timeout down to the
MemcachedNode level. That information was not previously known
to the Operation or the node, but simply relied on a latch.
Change-Id: I60228433bfa121ed031dd81fc05a9d65cae5bf20
Reviewed-on: http://review.membase.org/4204
Reviewed-by: Dustin Sallings
Tested-by: Dustin Sallings
commit 8688eaa23cb09bc8cb16a4d3ff02f21a4bb4ee4c
Author: Blair Zajac
Date: Thu Nov 11 19:22:20 2010 -0800
Tiny performance improvement.
It's OK to have the method return an interface, but use the concrete
class name in the method so it doesn't need to invoke the methods
through the interface.
Change-Id: Ibd3638e574f9bd0c0928af5bada53de72a59e9f1
Reviewed-on: http://review.membase.org/3641
Reviewed-by: Dustin Sallings
Reviewed-by: Matt Ingenthron
Tested-by: Matt Ingenthron
commit 385665d5575de49aa1aa4b10ba8ed0c2b804df27
Author: Blair Zajac
Date: Thu Nov 11 19:33:36 2010 -0800
Minor performance improvement for bulk gets.
If the size of an ArrayList is known before construction, then pass
the size to the constructor. This will either save a tiny bit of
memory or save reallocation's, depending upon the number of elements
that will be inserted into the ArrayList.
Change-Id: If1db3a8578e2d8603e0c6dbbe781ed7258908eee
Reviewed-on: http://review.membase.org/3640
Reviewed-by: Dustin Sallings
Reviewed-by: Matt Ingenthron
Tested-by: Matt Ingenthron
commit 3b3b3c856c6578aa7f1b887032c2a3fe0ff8f182
Author: Boris Partensky
Date: Thu Jul 1 14:02:11 2010 -0400
support timeout based disconnects for bulk ops
Refactored some repeating logic into helper methods,
track continuous timeouts from bulk operations,
log at warning.
Change-Id: Ic0e3d14c8d7ff7001c3440683fa4274b119e4d31
Reviewed-on: http://review.northscale.com/999
Reviewed-by: Matt Ingenthron
Tested-by: Matt Ingenthron
commit f0311f7d4ae79378eb81890277a115ec84ea4ce7
Author: Blair Zajac
Date: Mon Jun 28 12:49:37 2010 -0700
Allow per-key transcoders to be used with asyncGetBulk().
This change allows the transcoder to save state for each key. An
example is shown in the unit test that encodes into the byte array
sent to the memcached server the key along with the value. Upon
decoding a value from memcached, the actual and expected keys are
compared.
Change-Id: Ie4697bc3f9923e7c2ba981ca334b0df9d1ab7315
Reviewed-on: http://review.northscale.com/936
Tested-by: Dustin Sallings
Reviewed-by: Dustin Sallings
commit ce3bba1bfe6fe79ae3ea03094a89ccc1f3a02f6b
Author: Blair Zajac
Date: Sat Jun 12 11:59:26 2010 -0700
Add an iterator that returns a single element forever.
This iterator will be used to add a version of asyncGetBulk() that
allows per-key transcoders to be used. To efficiently allow the
normal use of multiple keys with a single transcoder, instead of
creating an array or list of identical transcoders, other
asyncGetBulk() methods will create a SingleElementInfiniteIterator
instead.
Change-Id: Ica58e45f3e0e49a72c7a7a8743bf9180ea9cb7ed
Reviewed-on: http://review.northscale.com/935
Reviewed-by: Dustin Sallings
Tested-by: Dustin Sallings
commit ca7bfc2428ead005c502cdfcf97911b83e7adab3
Author: ddlatham
Date: Fri Apr 2 11:17:03 2010 -0700
Support daemon mode for TranscodeService threads.
Change-Id: I28b58a9e1832abedfd8e4177bb38e5cdac158bcb
Reviewed-on: http://review.northscale.com/920
Reviewed-by: Dustin Sallings
Tested-by: Dustin Sallings
commit 4efb06fd277e4261bc10597a856d57c9d5c1d374
Author: Dustin Sallings
Date: Mon Jun 21 21:42:36 2010 -0700
Some minor fixes to make eclipse happy with the code again.
- Removed @Override annotations where there are no overrides.
- Renamed a couple of variables that were shadowing fields.
Change-Id: I7e0f74da72214cbe4c72cd693ee11461138f172b
Reviewed-on: http://review.northscale.com/919
Reviewed-by: Dustin Sallings
Tested-by: Dustin Sallings
commit f8111142520726952a49f7c7f9c223680c224acf
Author: Boris Partensky
Date: Thu Jun 17 14:05:26 2010 -0400
plug potential file descriptor leak
There is a problem in open/connect sequence that may produce
file descriptor leaks in some abnormal conditions:
First, SocketChannel.open() is called,
then ch.connect(a.getSocketAddress())
is called and it may throw an IOException under certain conditions.
Then we catch exception and re-queue the node.
This will produce a leak since the channel was not closed.
The problem surfaced because of some faulty changes that I made
and which I fixed. But it's nevertheless a problem.
Sun bug reference. http://bugs.sun.com/view_bug.do?bug_id=6548464
They fixed it in a helper method that opens/connects in a single call.
But in our case the client needs to take care of it.
One more small unrelated change is to
catch an unchecked exception and log an error:
it is a serious case because the node
will be essentially lost and never re-queued.
Change-Id: I54930eb03f5c07fc6966f8d4d5db42548c63f6bd
Reviewed-on: http://review.northscale.com:8080/630
Reviewed-by: Dustin Sallings
Tested-by: Dustin Sallings
commit 03bd66b3ba917e92690221a23b318975dd496a04
Author: Boris Partensky
Date: Tue Jun 15 14:18:10 2010 -0400
return partial data from timed out getBulk
Augmented Future object returned from asynGetBulk
with an option to return partial data in case timeout is reached.
Change-Id: I3bac849cee69fd6b57b20139832193b97975f6f6
Reviewed-on: http://review.northscale.com:8080/563
Reviewed-by: Dustin Sallings
Tested-by: Dustin Sallings
commit c2102e2a348ec61424e538c58daed38d947ef2eb
Author: Blair Zajac
Date: Tue Jun 15 10:42:39 2010 -0700
Fix compilation with JDK 1.5.
Don't use methods and enum's that only exist in JDK 1.6.
The changes successfully compile and the unit tests pass with JDK 1.6,
but with 1.5 I consistently get a unit test failure here:
[junit] Testcase: testSimpleLoading took 0.265 sec
[junit] Caused an ERROR
[junit] java.lang.RuntimeException: blah
[junit] java.util.concurrent.ExecutionException: java.lang.RuntimeException: blah
[junit] at net.spy.memcached.internal.ImmediateFuture.(ImmediateFuture.java:25)
[junit] at net.spy.memcached.util.CacheLoaderTest.testSimpleLoading(CacheLoaderTest.java:48)
[junit] at org.jmock.core.VerifyingTestCase.runBare(VerifyingTestCase.java:39)
[junit] Caused by: java.lang.RuntimeException: blah
[junit]
[junit] TEST net.spy.memcached.util.CacheLoaderTest FAILED
[junit] Tests FAILED
The following tests failed:
net.spy.memcached.util.CacheLoaderTest
Change-Id: I34921695bec8bea5f4b8b0bace13951a41b3230a
Reviewed-on: http://review.northscale.com:8080/561
Reviewed-by: Dustin Sallings
Tested-by: Dustin Sallings
commit 1f0daa087c4857f80abc6732a9e51ac9b204357f
Author: Blair Zajac
Date: Fri Jun 11 17:13:29 2010 -0700
Delete a duplicate unit test.
Change-Id: Ibdbbf79455c2e497ae7e121bd88a4f260e24fa54
Reviewed-on: http://review.northscale.com:8080/416
Reviewed-by: Dustin Sallings
Tested-by: Dustin Sallings
commit d82f698b98c1a3c5df9eaec3cc0c26f567861857
Author: Blair Zajac
Date: Thu Jun 3 16:56:44 2010 -0700
Use a faster method to get a MD5 MessageDigest instance.
Instead of getting a fresh instance with MessageDigest.getInstance(),
clone an existing MessageDigest that has not been updated with any
bytes.
Change-Id: If72e112e93014631767ed68d758728f372e9a7d8
Reviewed-on: http://review.northscale.com:8080/292
Reviewed-by: Dustin Sallings
Tested-by: Dustin Sallings
commit 7ceca517bac2a1295da1b7fa8626695c2216fbb5
Author: Blair Zajac
Date: Thu Jun 3 13:10:30 2010 -0700
No need to call MessageDigest#reset() on a brand new MessageDigest.
Change-Id: I214f4fe0edb07c821f139b61526a2547d9772324
Reviewed-on: http://review.northscale.com:8080/290
Reviewed-by: Dustin Sallings
Tested-by: Dustin Sallings
commit 76f00f65ff3bc884fc0557bfdf8f64a2843113e7
Author: Blair Zajac
Date: Wed Jun 2 11:55:50 2010 -0700
Use a private static final byte array for "\r\n" instead of always
converting the string into a byte array.
Change-Id: I68fc5e9dea99a25e708808f14c8d0a58bd314336
Reviewed-on: http://review.northscale.com:8080/269
Reviewed-by: Dustin Sallings
Reviewed-by: Eric Lambert
Tested-by: Eric Lambert
commit fb8b07a9f3d6bc08efdaabd40750e069f4011a51
Author: Andrey Kartashov
Date: Thu May 6 11:14:15 2010 -0400
Move continuous timeout counter to individual connections.
Change-Id: I0d275a824017865714af23abbb0eb61418d5d116
Reviewed-on: http://review.northscale.com:8080/25
Reviewed-by: Eric Lambert
Reviewed-by: Dustin Sallings
Tested-by: SeongHwa Ahn
commit 72a9c6896897ea34cc69eace3f4bb85eaeeeefb1
Author: Matt Ingenthron
Date: Thu Apr 15 21:39:50 2010 -0700
Changed ports in tests for non-listening to something higher.
Change-Id: I49a3f3238e80c0e9c445df6ac2f32f634300811f
Reviewed-on: https://review.northscale.com:8443/1298
Reviewed-by: Trond Norbye
Reviewed-by: Eric Lambert
Reviewed-by: Dustin Sallings
Tested-by: Matt Ingenthron
commit 3483b2aa1db7fcf16ba03d49fe9e02948a797fc0
Author: Matt Ingenthron
Date: Mon Apr 12 09:04:33 2010 -0700
Actually use the args to SASLConnectReconnect; shutdown nicely.
Change-Id: I7517a355707ed9440974d5b5b947fb13a8ba7142
commit 764b5b55d4b5d4c8a28575fe036fed05cf83e1b0
Author: Matt Ingenthron
Date: Tue Apr 6 16:19:16 2010 -0700
Log operation failures as potential auth failures.
Change-Id: I8e3f5d7cafda8b6007c96799cb8c09b7c780abc1
commit 4ac7a1e730f67cd4b4302d5ad50d8ab37251e016
Author: Matt Ingenthron
Date: Mon Mar 15 02:56:35 2010 -0700
Handle auth failures more gracefully; maximum failures.
This change will ensure that autentication failures do not
hang the thread adding an operation. The default behavior
is to try to authenticate forever and whine to the log if
authentication continues to fail.
Optionally, a developer may define
net.spy.memcached.auth.AuthThreshold with an integer value
to set a maximum number of authentication attempts before
shutting down.
Authentication threads are now spawned and managed by an
AuthTreadMonitor class, ensuring that for any given
connection there can only be one outstanding AuthThread.
Change-Id: I0af4ab41d27239e7b555dca7d993e6228b7df5b8
commit 07bd9bd6cf1816470eb9d67c43f69bf21dfd7e96
Author: Matt Ingenthron
Date: Thu Apr 1 15:36:37 2010 -0700
Minor fixes to SASL reconnect test.
Change-Id: Ib7a560c209dd9ac3d8ce0ea36d429228bd92e647
commit da151b80e27eb9ffc5a3954287fe48f654937f6e
Author: Greg Kim
Date: Wed Apr 7 11:04:21 2010 -0700
Implementing read-only methods in MemcachedNodeROImpl - issue86
Change-Id: I3437c4a69d9673d3fc7a2d0611012389b28e3d2f
Reviewed-on: https://review.northscale.com:8443/1287
Reviewed-by: Dustin Sallings
Tested-by: Dustin Sallings
commit efb3e588b4aed12ea61234fe4249f6b5806a615c
Author: Matt Ingenthron
Date: Wed Mar 31 12:48:50 2010 -0700
Enhanced ConnectionFactoryBuilder test for auth.
commit 8afa770465c9a1124d2a8e06ae72502d22b7e13f
Author: Matt Ingenthron
Date: Wed Mar 31 12:44:59 2010 -0700
Manual test to ensure correct connection handling with SASL.
commit 114eb500d2362adec73c9537971eff5520513bd2
Author: Matt Ingenthron
Date: Wed Mar 31 09:11:36 2010 -0700
Changed AuthTest description to match reality.
commit 449316f08b178c49bb6b54701ffa74b386b8448c
Author: Matt Ingenthron
Date: Thu Mar 25 18:09:10 2010 -0700
Enhance MemcachedNode to know whether auth should happen.
When SASL authentication is requested of a MemcachedClient it should
always ensure that auth takes place before anything else on the queue
is processed.
After some experimentation, it seems The best way to handle this is to
extend the MemcachedNode interface to add some methods. This in turn
allows for the changes to be implemented in the TCPMemcachedNodeImpl
class.
There is special handling with the inputQueue and addOperation if
a reconnect occurs during authentication.
It's a bit harder at the BinaryMemcachedNodeImpl, though arguably
makes more sense there. Since these are all pretty well hidden as an
implementation detail, it's okay for it to be here.
Who knows, maybe someday ascii will have SASL. Probably not though.
commit a8320eb61695d73f325cf580e5738f87f30f50c4
Author: Matt Ingenthron
Date: Thu Mar 25 17:06:20 2010 -0700
Clarify what is planned after a disconnect.
commit 5061cf0d66c51f3f90b6adc13433c68eeb518d1f
Author: Matt Ingenthron
Date: Thu Mar 11 09:54:16 2010 -0800
Clarify Future, issue 63.
commit dc42cff18e78220861c6590bba9e9e050e231bb4
Author: Matt Ingenthron
Date: Thu Mar 11 08:56:11 2010 -0800
Docs for path to FailureModes on DefaultConnectionFactory. Issue 115.
commit 8f96c59a1dc89fc0aa7bfe680f2cb7627235915e
Author: Matt Ingenthron
Date: Thu Mar 11 08:25:55 2010 -0800
Various Javadoc completeness.
commit 4d7f3d369e214cd73fad132116bf7ce1b47dc16d
Author: Matt Ingenthron
Date: Thu Mar 11 08:03:44 2010 -0800
Document unexpected incr/decr behavior. Issue 48.
commit bc4428cc258276efdf6b792b062b7733526f1624
Author: Matt Ingenthron
Date: Tue Feb 16 22:01:56 2010 -0800
Invert the ConnectionFactoryBuilderTest to go with new logic.
The contribution by Blair Zajac inverts the ConnectionFactoryBuilder
defaults to match that of the DefaultConnectionFactory. This updates
the tests to check for the new default, and test the new change.
commit 64d2d915a6d0d325dd5b832902547354be328921
Author: Ahn Seong Hwa
Date: Sat Feb 6 02:28:10 2010 -0800
fix for useless check statement that is for continuous timeout exception counter
commit c7502960018b2cd331af9e66c3c80b77deb69433
Author: Ahn Seong Hwa
Date: Fri Feb 5 06:59:46 2010 -0800
New TCP connection timeout feature; if server fails completely, d/c.
With this change, the MemcachedClient has a method of using the
connection observer to determine a connected server is consistently
timing out, indicating it has hard-failed. This will destroy that
connection so things may rehash or reconnect, depending on the hash
behavior.
commit 90fdba5ac701a781e11c5374ecc17b1d3042bdb5
Author: Dustin Sallings
Date: Tue Mar 2 01:37:49 2010 -0800
A larger libketama extract for compatibility testing.
commit cba26c186143f8adcbc7f8fbcb8d2dd2fbf9df91
Author: Dustin Sallings
Date: Tue Mar 2 01:36:09 2010 -0800
If the String value of the socket address starts with a /, remove it.
This is just the default stringification, clients can use whatever
they want, but by default, this seems to provide consistent results
with libketama.
commit af26afcfcbd1f1c187935c2a63708016a1e999ae
Author: Blair Zajac
Date: Mon Feb 15 20:54:40 2010 -0800
Fix consistency issue in ConnectionFactoryBuilder.isDaemon()
DefaultConnectionFactory#isDaemon() is false while
ConnectionFactoryBuilder builds a ConectionFactory that by default
returns true for #isDaemon(), so to make them consistent, modify
ConnectionFactoryBuilder to have #isDaemon() be false.
commit 245667ac0961a157e8d6e39c6903663442cb4ee8
Author: Dustin Sallings
Date: Tue Jan 26 22:51:58 2010 -0800
Auth fix for mechanisms that have an initial response.
commit 897e1194efa30eeaa5e4d50a40bb2686337573a7
Author: Dustin Sallings
Date: Sat Jan 9 13:27:06 2010 -0800
Do blocking inserts from the cache loader test.
commit 28c831ce6f21aec0337318b43f8aa18a3da020f9
Author: Dustin Sallings
Date: Sat Jan 9 13:20:15 2010 -0800
Get rid of special constructors for op enqueue timeouts.
commit c02de90265e5f107db5eeabd3ac57fc7d37a8ad2
Author: Dustin Sallings
Date: Sat Jan 9 13:15:48 2010 -0800
Ensure the factory builder can be used to specify enqueue block size.
commit 2688a79d59ed835dd19fd7bee79a35af99ba6928
Author: Dustin Sallings
Date: Sat Jan 9 13:07:10 2010 -0800
Replaced Long nanos with long millis for op queue block offer timeout.
commit 229605f0751b1ae7dad799697192c97478ad6704
Author: Kristian Eide
Date: Sat Jan 9 12:36:56 2010 -0800
Allow user-specified wait time for availability of queue space.
This means that instead of raising a queue overflow exception on
insert, the client can optionally block waiting for space to become
available instead (with a timeout that will result in the same
exception).
commit b306283bf8fd2139a0365c39b125e539dbc4a21c
Author: Dustin Sallings
Date: Tue Nov 10 22:44:50 2009 -0800
Log the bug that causes reconnection on first connect.
commit 4549dce24f0e345b5af1065a1ec44e2bb25a78e5
Author: Dustin Sallings
Date: Tue Nov 3 23:05:25 2009 -0800
Better auth API, handles connection drops.
commit 9c409fc1dddaf73fce314207e3732c41c7767eed
Author: Dustin Sallings
Date: Sun Oct 18 01:24:10 2009 -0700
Use the socket address as the realm.
commit de78a6ed8fb551c9bef25e5e8ab555f5e4b95eea
Author: Dustin Sallings
Date: Sun Oct 18 01:03:44 2009 -0700
Don't throw away an exception.
commit b812d3d82bd0b418eac4a5d0a3552384a60fb964
Author: Dustin Sallings
Date: Sun Oct 18 01:03:34 2009 -0700
Reformatted callback handler.
commit 34933a29eb1b37cc56ceece66247524da2daa620
Author: Dustin Sallings
Date: Sat Oct 10 11:56:18 2009 -0700
Added support for listing SASL mechanisms.
commit 8423612aa55868e9840ae1b0d977ddd58975c63b
Author: Dustin Sallings
Date: Sat Oct 10 11:48:16 2009 -0700
Refactored SASL auth for greater reuse.
commit 0384e37455c8a6852e0f5b9445920774a2133ec9
Author: Dustin Sallings
Date: Sat Oct 10 11:39:17 2009 -0700
Working multi-step auth.
commit 0ff519f0d438b5403c71e3fdaaaff077ab246508
Author: Dustin Sallings
Date: Sat Oct 10 11:23:50 2009 -0700
Refactored broadcast to allow for node selection.
commit b9f90a5cc28eaa14d40afc607b09e99b3432bc04
Author: Dustin Sallings
Date: Sat Oct 10 10:51:51 2009 -0700
Authentication should allow specification of a mechanism.
commit 23152a22a473edf09fd2c869c0c8274e90396058
Author: Dustin Sallings
Date: Wed Oct 7 22:42:57 2009 -0700
A slightly better model for SASL auth.
I still need to actually attempt a multi-step auth attempt.
commit cf7f34f112a2401fe160fabcc7c059a3207a8726
Author: Dustin Sallings
Date: Tue Oct 6 23:58:24 2009 -0700
Beginnings of SASL support.
I've manually verified this is happy with a test server both in the
auth pass and auth fail cases. It needs a lot of work before it's
good, though.
commit 7831c780826f137607737a922d22a5ebf9b23b92
Author: Blair Zajac
Date: Fri Nov 6 08:55:41 2009 -0800
Fix AddrUtilTest#testIPv6Host() hostname assertion.
This broke on operating systems where the IPv6 localhost is not listed
in /etc/hosts as "localhost" but as "ip6-localhost" for Ubuntu or
"localhost6.localdomain6" for Centos 5 and Foresight Linux.
commit 720189210dbde12c7bfb8cb2fd5dc16e12a88756
Author: Blair Zajac
Date: Fri Nov 6 08:33:18 2009 -0800
Be more generous in the strings that AddrUtil#getAddresses() will parse.
The code will now allow multiple whitespace and commas to separate
"host:port" tokens.
commit 0437b0ec87280f608f63167f3a87218325309803
Author: Dustin Sallings
Date: Tue Oct 27 10:54:50 2009 -0700
Allow MemcachedClient and AsciiOperationFactory extensibility.
While I don't encourage people to just randomly start changing stuff,
I also shouldn't assume I'm smarter than my users. :)
commit e2286e754cdb2eccf5247da659ed65c9f5f66c76
Author: Matt Ingenthron
Date: Tue Oct 27 10:39:51 2009 -0700
Some javadoc cleanup in MemcachedClient examples.
I don't think it'd be a change between Java 1.5 and Java 6, but in any
event I found the advanced example didn't compile without the changes
incorporated in the diff in the comments here. Since binary protocol
is a feature, I thought this was a good place to show it off too.
commit 32762f8b7908d91de10fb74d905398818b1552e7
Author: Dustin Sallings
Date: Tue Oct 27 09:46:05 2009 -0700
Handle operations that are writing and reading at the same time.
Especially in bulk cases, the server can be transmitting data from an
operation and receiving results from it simultaneously. It's no
longer sufficient to consider an operation to be either reading or
writing, but it's likely that it will need to read at the very moment
it begins writing.
commit 088874107925dec5413db50c6d4503cf11b64cd3
Author: Kevin Lafferty
Date: Fri Oct 23 00:00:27 2009 -0700
Support byte arrays in WhalinV1Transcoder.
commit 9e61290d93b98ccd705aea3958cb8d80f762d0c9
Author: Kevin Lafferty
Date: Thu Oct 22 09:33:40 2009 -0700
MemcachedConnection constructor should catch SocketException
Running version 2.0.1 on OS X 10.5.7 with JDK 1.5, I observed the
following exception when to a host that had been accidentally taken
out of service:
java.net.SocketException: Host is down
at sun.nio.ch.Net.connect(Native Method)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:464)
at net.spy.memcached.MemcachedConnection.(MemcachedConnection.java:80)
at net.spy.memcached.DefaultConnectionFactory.createConnection(DefaultConnectionFactory.java:84)
at net.spy.memcached.MemcachedClient.(MemcachedClient.java:146)
It looks like the 2.4.1 client resolves this by catching
ConnectException and queuing a reconnect, in this code:
// Initially I had attempted to skirt this by queueing every
// connect, but it considerably slowed down start time.
try {
if(ch.connect(sa)) {
getLogger().info("Connected to %s immediately", qa);
connected(qa);
} else {
getLogger().info("Added %s to connect queue", qa);
ops=SelectionKey.OP_CONNECT;
}
qa.setSk(ch.register(selector, ops, qa));
assert ch.isConnected()
|| qa.getSk().interestOps() == SelectionKey.OP_CONNECT
: "Not connected, and not wanting to connect";
} catch(ConnectException e) {
queueReconnect(qa);
}
connections.add(qa);
Given the stack trace I observed, the catch of ConnectException should
cast a slightly larger net and catch SocketException.
(issue94)
commit c84ddd7d60697d66eadab5d8b79a3d2e772e6d8c
Author: Dustin Sallings
Date: Thu Oct 22 09:20:10 2009 -0700
Removed a debugging stdout thing.
commit 3e274e81df0b7e2f3d28a70999487088c1cf6de2
Author: Dustin Sallings
Date: Wed Oct 21 17:41:52 2009 -0700
StorageListener should be public.
commit 88aad1bf7f4abc716d5c0981321c5f8c177f3054
Author: Dustin Sallings
Date: Wed Oct 14 11:38:00 2009 -0700
Increase timeout in overflow test.
commit a31795d68ea59a32e037384e35cf06ff2f683b14
Author: Dustin Sallings
Date: Tue Oct 13 20:36:39 2009 -0700
Compile targetting 1.5.
commit 19883d03be8026e0fafffa09761a83421a424fda
Author: Dustin Sallings
Date: Tue Oct 13 13:44:19 2009 -0700
Configurable max reconnect delay.
commit 8d9387d3333eaaa39a0e3ade98462a39c8dff906
Author: Dustin Sallings
Date: Tue Oct 13 13:37:52 2009 -0700
Better reconnect back-off formula.
commit 4e4b9ff3afba4282fa21d719fe9095be3fc97cc7
Author: Lewis Zimmerman
Date: Tue Oct 13 13:31:02 2009 -0700
Fixed bug in sequence number wrapping (bug90).
If the cas op on seqNumber fails, rv never gets updated and will loop
until seqNumber wraps at least one more time. proposed fix increments
seqNumber whether or not the cas succeeds: if another thread was able
to swap to 0 before we were, we're still good to go.
commit d0210bdd217fa826941da060adb6455c4197c9a0
Author: Dustin Sallings
Date: Fri Sep 25 18:55:28 2009 -0700
Some doc and style cleanup.
commit 2a1dedf5a20c9bfae4a638883f631bd857bef232
Author: Dustin Sallings
Date: Fri Sep 25 18:47:12 2009 -0700
Moved ketama stuff to util.
commit 547cdc5cd9d5a9917c4315c2817d40f6c8e53811
Author: ciaranj
Date: Fri Sep 25 11:48:31 2009 +0100
Modified the KetamaNodeLocator code to accept configuration object
commit 0cc760551ffcc10b5b59a50bb43e151420ee75c4
Author: Dustin Sallings
Date: Thu Sep 24 11:17:23 2009 -0700
Cleaned up all javadoc warnings.
commit 357a5b882589186a5529eff42a73c2830561a17b
Author: Dustin Sallings
Date: Thu Sep 24 11:05:53 2009 -0700
Javadoc can't deal with ç for whatever reason.
commit ac97f92816dfbc9c5d15f84aefbb0d84bf41ead8
Author: Dustin Sallings
Date: Thu Sep 24 11:02:00 2009 -0700
Fix javadoc @see links.
commit a5ebc4c7188fdb7299c1870682060859bc8c0704
Author: Dustin Sallings
Date: Thu Sep 24 10:54:22 2009 -0700
Added a package.html for compat.log
commit a0d3b0aff8a7508a656bfbe8e119f9a395a2df1e
Author: Dustin Sallings
Date: Thu Sep 24 10:50:40 2009 -0700
Cleaning up docs a bit.
commit de9867ef5bd8778d0f3839918ffc581d7ab63964
Author: Dustin Sallings
Date: Thu Sep 24 09:53:29 2009 -0700
Update the toplevel package.html
commit b6e0183cb9663f352457d8a1e243ce311c401fd4
Author: Dustin Sallings
Date: Wed Sep 23 15:34:59 2009 -0700
Updated site task.
commit 906c54e2b2957042634e5c14015c503c3452c16f
Author: Dustin Sallings
Date: Wed Sep 23 15:29:11 2009 -0700
Use emma as the coverage tool.
commit c171f5bd5baecf68e28146b2a34d7e60a9c7dca7
Author: Dustin Sallings
Date: Wed Sep 23 12:30:37 2009 -0700
Fix workaround for manifest since the buildr fix broke the workaround
commit 5486bd9d5778959ba024c1ee421942a5739a3b14
Author: Dustin Sallings
Date: Wed Sep 23 10:09:52 2009 -0700
Auto-compute latest released versions from each series.
commit 3def22f973872220636ba68952155f6475791d95
Author: Dustin Sallings
Date: Wed Sep 23 09:34:38 2009 -0700
Put a ceiling on set optimizations.
commit 41f16e4634c31d30b3760e6f589de64f44edf66f
Author: Dustin Sallings
Date: Tue Sep 22 23:48:54 2009 -0700
Convenient way to select a node location type.
commit 04c12dff94ce388d3635b44370c4b0b4908f6471
Author: Dustin Sallings
Date: Tue Sep 22 23:02:27 2009 -0700
Added javadoc for all the ConnectionFactoryBuilder methods.
commit 03d59809802eba6eb97f57e2ecb51fe126b5a53d
Author: Dustin Sallings
Date: Tue Sep 22 22:51:38 2009 -0700
Add a convenient protocol setter.
commit 334b5a99d315a06000e52b206368ccf0598fbe6f
Author: Dustin Sallings
Date: Tue Sep 22 17:45:58 2009 -0700
Add Nagle algorithm configuration to ConnectionFactoryBuilder.
commit 1492f098dbc33460f13efcd03df9c0919874d1e3
Author: Dustin Sallings
Date: Tue Sep 22 16:45:17 2009 -0700
Use a queue factory to create queue instances for the builder.
commit 0e0c0994db143476171737242ad7ac33950a3262
Author: Dustin Sallings
Date: Mon Mar 2 15:18:44 2009 -0800
ConnectionFactoryBuilder
commit 7596f401a2c515a013656a26f5c8915403dc7f79
Author: Dustin Sallings
Date: Sat Sep 19 23:53:59 2009 -0700
Optimize binary protocol sets.
This optimization works in a similar fashion to the GET optimization,
but is binary protocol specific. Effectively, all mutation operations
are folded into quiet ops and the responses are dispatched as implied
positives when the operations are known to have finished.
commit 4888bb959710df83778bca98230bd7b07d3a13bc
Author: Dustin Sallings
Date: Sat Sep 19 15:14:52 2009 -0700
A simple loader benchmark of sorts.
commit a849a3f5788e613eb1c9d09a3c6bbeabfc9c2470
Author: Dustin Sallings
Date: Sat Sep 19 14:45:58 2009 -0700
Refactored CacheLoader to have a push mechanism.
commit 641678fd587870da084d3b892f26d84b3b933019
Author: Dustin Sallings
Date: Sat Sep 19 01:43:32 2009 -0700
Added a bulk loader API.
commit 507432ecf667916767980b22fb2fc902d806f119
Author: Dustin Sallings
Date: Fri Sep 18 19:57:10 2009 -0700
Refactor optimization control.
No longer a dangerous mutable field in the connection. The
ConnectionFactory defines it and it's used throughout the life of the
connection.
commit ac87ce24b2849af5fe4c4b6688b7d7aefaa37c88
Author: Dustin Sallings
Date: Fri Sep 18 00:58:09 2009 -0700
Trace handling node in broadcasts, too.
commit c065aa5c01bd42e18c3729ec0fbb3b46edf28247
Author: Dustin Sallings
Date: Fri Sep 18 00:43:53 2009 -0700
Handle a couple of null cases in op tracing.
commit 0894556d36c6b204ce93d2b7504aee81abfda6f5
Author: Dustin Sallings
Date: Thu Sep 17 23:43:25 2009 -0700
Provide some breadcrumbs about which nodes were in contact during timeouts.
The root cause of an OperationTimeoutException should have something
that looks like this:
Caused by: net.spy.memcached.internal.CheckedOperationTimeoutException:
Timed out waiting for operation - failing node: /127.0.0.1:11213
The actual failing operation is available from the
CheckedOperationTimeoutException in case someone wants to do something
particularly special with it.
commit 6edff67173cb80486a7e5ef29a5f6311b7e9b105
Author: Dustin Sallings
Date: Thu Sep 17 22:39:10 2009 -0700
Refactored futures into toplevel classes.
commit f850e9d64ec9b5150cf14bf880733c0ef4d8d68b
Author: Dustin Sallings
Date: Sat Sep 5 23:52:34 2009 -0700
Test for TranscodeService.
commit c4fd35d3d64d95a279d6150a2c99aa4c5e4919fd
Author: Dustin Sallings
Date: Sat Sep 5 23:28:26 2009 -0700
TranscodeService should not be a singleton.
commit baf3a9f154e329e8ccd5932e43c0010b6ba569be
Author: Joseph Hart
Date: Sat Sep 5 22:27:18 2009 -0700
Asynchronous transcoder service.
commit 339f6c474ea9613c5181991617b236967c5efed8
Author: Wang Nan
Date: Sat Sep 5 22:09:42 2009 -0700
Conditionally allow enabling/disabling the Nagle algorithm.
Off by default.
commit bef4c72adb262b138edfef93994d6dae7d468ac9
Author: Dustin Sallings
Date: Thu Sep 3 10:40:05 2009 -0700
buildr cobertura update
commit bcffdf9c972685b6179151e0e42bfdbe7622c3f2
Author: Dustin Sallings
Date: Thu Sep 3 10:39:53 2009 -0700
New build_info for jruby-based buildr.
commit 5ca04897525922d1f200b44f57e5edfdc4b324ed
Author: Dustin Sallings
Date: Thu Aug 13 00:21:54 2009 -0700
Handle failures on initial connection.
If a ConnectException is thrown while performing the initial
connection, just queue it and let it reconnect naturally.
Note that initially tried running *all* connections through the queue,
but it made startup considerably slower
commit 69974715592fe6fe6f761e28216ec0a943ab5783
Author: Dustin Sallings
Date: Thu Aug 13 00:12:15 2009 -0700
Testing a really long CAS identifier.
(issue 80)
commit b634d0ae546a299bb570d8877434261ba32f76a7
Author: Dustin Sallings
Date: Sat Jun 20 18:41:54 2009 -0700
Allow CAS Mutator to work in a mutation-only mode.
When initial is null, do not initialize the value.
commit 4999cc49c3c37aa4d3eac9b4cb2134dc45df7862
Author: Dustin Sallings
Date: Sat Jun 20 18:20:00 2009 -0700
Use a client interface for CASMutator.
commit c3d30fa8f5efabe669e46a5cd2cefc6a0dd94071
Author: Dustin Sallings
Date: Sat Jun 20 18:02:19 2009 -0700
Fix teardown race condition in TCPMemcachedNodeImpl.
commit 0cd55a340a3625c431d433313d35bbf837a9998e
Author: Dustin Sallings