Skip to content

Commit 206b198

Browse files
daschlMichael Nitschinger
authored andcommitted
SPY-166: Only readd a WRITE_QUEUED operation, not clone it in addition.
Motivation ---------- When a WRITE_QUEUED operation is redistributed, it needs to be readded but not cloned (since its still in a sendable state). Modification ------------ Return after adding the operation again. Result ------ The operation is readded and not cloned afterwards too. Change-Id: I79fec436aa538a8a4074e82f69b3ed186c5126b7 Reviewed-on: http://review.couchbase.org/36258 Reviewed-by: Matt Ingenthron <matt@couchbase.com> Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>
1 parent df81f17 commit 206b198

File tree

1 file changed

+22
-21
lines changed

1 file changed

+22
-21
lines changed

src/main/java/net/spy/memcached/MemcachedConnection.java

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,27 @@
2323

2424
package net.spy.memcached;
2525

26+
import net.spy.memcached.compat.SpyThread;
27+
import net.spy.memcached.compat.log.Logger;
28+
import net.spy.memcached.compat.log.LoggerFactory;
29+
import net.spy.memcached.internal.OperationFuture;
30+
import net.spy.memcached.metrics.MetricCollector;
31+
import net.spy.memcached.metrics.MetricType;
32+
import net.spy.memcached.ops.GetOperation;
33+
import net.spy.memcached.ops.KeyedOperation;
34+
import net.spy.memcached.ops.NoopOperation;
35+
import net.spy.memcached.ops.Operation;
36+
import net.spy.memcached.ops.OperationCallback;
37+
import net.spy.memcached.ops.OperationException;
38+
import net.spy.memcached.ops.OperationState;
39+
import net.spy.memcached.ops.OperationStatus;
40+
import net.spy.memcached.ops.TapOperation;
41+
import net.spy.memcached.ops.VBucketAware;
42+
import net.spy.memcached.protocol.binary.BinaryOperationFactory;
43+
import net.spy.memcached.protocol.binary.MultiGetOperationImpl;
44+
import net.spy.memcached.protocol.binary.TapAckOperationImpl;
45+
import net.spy.memcached.util.StringUtils;
46+
2647
import java.io.IOException;
2748
import java.net.ConnectException;
2849
import java.net.InetSocketAddress;
@@ -53,27 +74,6 @@
5374
import java.util.concurrent.ExecutorService;
5475
import java.util.concurrent.TimeUnit;
5576

56-
import net.spy.memcached.compat.SpyThread;
57-
import net.spy.memcached.compat.log.Logger;
58-
import net.spy.memcached.compat.log.LoggerFactory;
59-
import net.spy.memcached.internal.OperationFuture;
60-
import net.spy.memcached.metrics.MetricCollector;
61-
import net.spy.memcached.metrics.MetricType;
62-
import net.spy.memcached.ops.GetOperation;
63-
import net.spy.memcached.ops.KeyedOperation;
64-
import net.spy.memcached.ops.NoopOperation;
65-
import net.spy.memcached.ops.Operation;
66-
import net.spy.memcached.ops.OperationCallback;
67-
import net.spy.memcached.ops.OperationException;
68-
import net.spy.memcached.ops.OperationState;
69-
import net.spy.memcached.ops.OperationStatus;
70-
import net.spy.memcached.ops.TapOperation;
71-
import net.spy.memcached.ops.VBucketAware;
72-
import net.spy.memcached.protocol.binary.BinaryOperationFactory;
73-
import net.spy.memcached.protocol.binary.MultiGetOperationImpl;
74-
import net.spy.memcached.protocol.binary.TapAckOperationImpl;
75-
import net.spy.memcached.util.StringUtils;
76-
7777
/**
7878
* Main class for handling connections to a memcached cluster.
7979
*/
@@ -1009,6 +1009,7 @@ public void redistributeOperation(Operation op) {
10091009
// it we just straight re-add it without cloning.
10101010
if (op.getState() == OperationState.WRITE_QUEUED) {
10111011
addOperation(op.getHandlingNode(), op);
1012+
return;
10121013
}
10131014

10141015
if (op instanceof MultiGetOperationImpl) {

0 commit comments

Comments
 (0)