Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
commit 7cb63b805c78a8b73f1cbd80ec2a785f41b6ccaf
Author: Matt Ingenthron
Date: Fri Sep 30 15:29:00 2011 -0700
Continue to other URIs if one in the list is down. SPY-60.
Change-Id: Ic68ba9db5b5f645d3affc6964f7b2b90d309e519
Reviewed-on: http://review.couchbase.org/10026
Reviewed-by: Michael Wiederhold
Tested-by: Matt Ingenthron
commit 2393d4f84f256d27df99981c451ea28eb38aec6d
Author: Matt Ingenthron
Date: Mon Oct 10 21:04:04 2011 -0700
Revert "SPY-37 & SPY-38: Fixed redistribution performance issue"
This reverts commit 48e7e62b75c93925647a6acd6bcfe06b1b89f492.
Change-Id: I9f6bc488406fc9c5ce537454b773d9baf21e379d
Reviewed-on: http://review.couchbase.org/10059
Tested-by: Michael Wiederhold
Reviewed-by: Michael Wiederhold
commit 3f6281abf8d36e27fecdfe0cecab65fdf933765f
Author: Matt Ingenthron
Date: Sun Oct 9 00:21:29 2011 -0700
No need for old debugging string in test.
Change-Id: I31ad1af2e6d0a33fa8534fa09e3f30175b931408
Reviewed-on: http://review.couchbase.org/10027
Tested-by: Michael Wiederhold
Reviewed-by: Michael Wiederhold
commit 4b8e1debbfb91287b02fe3a904dfd1f56f75edf4
Author: Martin Grotzke
Date: Thu Sep 29 12:00:35 2011 +0200
Add compatibility with netty 3.2.0+.
Netty 3.2.0+ (NETTY-281) changed HttpMessage.setHeader(String, String) to
setHeader(String, Object), which causes NoSuchMethodErrors when spymemcached is
used with such a newer netty version. To prevent spymemcached users from other
library incompatibilities the netty dependency is not upgraded, but the
appropriate setHeader method is selected and invoked at runtime. This was
discussed on the mailing list:
http://groups.google.com/group/spymemcached/browse_thread/thread/4b9f0638bbcc96fb
Change-Id: I1d2e7c4a3e6db6648d175364950eab6076a45e5f
Reviewed-on: http://review.couchbase.org/9852
Reviewed-by: Michael Wiederhold
Reviewed-by: Matt Ingenthron
Tested-by: Matt Ingenthron
commit 591a84097f930d77df35cb9b98ecce0faccd29e1
Author: Mike Wiederhold
Date: Thu Sep 22 11:13:41 2011 -0700
Refactored tap message classes.
These needed to be more readable and were horribly coded (by me). I
started seeing issues with conversion from bytes on the wire to
variables in spy so I changed how this was done.
Change-Id: I583c43216643b111b6256f39ca475582b37267c6
Reviewed-on: http://review.couchbase.org/9712
Tested-by: Matt Ingenthron
Reviewed-by: Matt Ingenthron
commit 48e7e62b75c93925647a6acd6bcfe06b1b89f492
Author: Mike Wiederhold
Date: Sun Sep 11 20:19:04 2011 -0700
SPY-37 & SPY-38: Fixed redistribution performance issue
This issue was caused by a O(n^3) algorithm used when redistributing
operations among nodes. It turns out that one of the loops was not
necessary because the clone operation is guaranteed to return a
list of single key operations. Multi-key operations are never
returned as part of this list.
The fix involves removing the one of these loops. which frequently
queued duplicate operations for transmission. Since the
operations are all single key, the list returned by the call
getKeys() is guaranteed to have only one operation.
Change-Id: Id8cf17132bff06dba78935cbb8b81d83f58b4bc2
Reviewed-on: http://review.couchbase.org/9514
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit a2a5216979785a025b05cfbaa9623a100df1ffad
Author: Mike Wiederhold
Date: Mon Sep 26 14:20:35 2011 -0700
Made vbmap in MultiKey operation synchronized
There was a concurrency issue here that has to do with accessing a
two threads accessing the same set. One thread is iterating over
the set and the other is modifying the set. This modification
causes iteration to undefined and therefore java throws an error.
Change-Id: I17ea7a0146443ed1ef4578fb04cab431a3e723d7
Reviewed-on: http://review.couchbase.org/9769
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit 4dfaceaf8be010a1f7da26fb3b581667ad6a1f27
Author: Mike Wiederhold
Date: Wed Sep 21 19:08:24 2011 -0700
Don't reconnect when a tap connection finishes.
Change-Id: I7c70697bdd8f67f451c514193ae2d6fa2856dfc7
Reviewed-on: http://review.couchbase.org/9711
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit 878c31fa0518fef331fa4aa2115db99831dea9ed
Author: Mike Wiederhold
Date: Wed Sep 21 18:56:11 2011 -0700
Flush the PrintWriter in TapMessagePrinter
This doesn't print anything until you flush.
Change-Id: Icc98b26ecb1da4c9f3dbf96f9e827801f3b807b1
Reviewed-on: http://review.couchbase.org/9710
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit a00fc238b166f41f91fd04b71d92def2325e0a68
Author: Mike Wiederhold
Date: Tue Sep 20 12:07:31 2011 -0700
Removed extra variables in tapCustom header
We abandoned my rudamentry key/value filter change a while ago but
the tapCustom signature was never updated.
Change-Id: I76cea19b3b74cceee3316f39d0565b9959547867
Reviewed-on: http://review.couchbase.org/9674
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit 11c89e4906a5841abc2e172a561c2a1e15fb7b4e
Author: Mike Wiederhold
Date: Wed Sep 21 19:12:51 2011 -0700
Removed a print line statement from TestConfig
Change-Id: I9f060ab36a407eb91dd3a8b784cd7c854e2d706d
Reviewed-on: http://review.couchbase.org/9713
Tested-by: Michael Wiederhold
Reviewed-by: Michael Wiederhold
commit 1445b53e1ca37b401334c97e012ecc7fcfdf8e67
Author: Mike Wiederhold
Date: Thu Sep 8 15:14:26 2011 -0700
Made cmd variable a byte for binary operations
This variable should have never been an int since it is defined in
the protocol as a byte. The reason for the change is that when we
have opcode that is greater have 127 the value of a byte and an int
are different (Ex. int = 128 byte = -127). This was causing an
assertion to fail, in this case for the getl command (0x94).
Change-Id: Ia6b32a4af94ed2e8dc973237132f3fd291655634
Reviewed-on: http://review.couchbase.org/9476
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 5c2c773a361f34034a569a6f5bd2c53a5f252527
Author: sanada0670
Date: Tue Sep 6 16:06:16 2011 -0700
SPY-51: Bug in OperationImpl's decodeLong(2)
We were incrrectly decoding long values here. For example,
0 0 0 1 0 0 0 0
was being decoded as 1, but should have been 4294967296.
Change-Id: I1a5eed9d8f96d9d9dd83d251794b68840f595621
Reviewed-on: http://review.couchbase.org/9428
Tested-by: Michael Wiederhold
Reviewed-by: Matt Ingenthron
Reviewed-by: Dustin Sallings
commit bb1dc926948b439e528c846e5e902346ec7f3acd
Author: Mike Wiederhold
Date: Mon Sep 12 11:56:47 2011 -0700
Send an ack for all tap opaque messages
Previously we ignored tap opaque and no-op messages. This caused
us to hang tap streams in some cases. One example is when doing a
tap dump. The server would send an opaque message and wait for an
ack after transmitting all of the data. Since we ignored the opaque
message the server would wait for an ack that would never be sent.
This would cause the connection to hang.
Change-Id: If8fc5e7f8b6aeb41ed68c2acb03fba5b7e503836
Reviewed-on: http://review.couchbase.org/9526
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 37f14f5f677bb947176f979699b54182831f9066
Author: Mike Wiederhold
Date: Sun Sep 11 19:50:29 2011 -0700
SPY-54: getBulk() shouldn't log a warning when a key is not found
A key not being found is not incorrect behavior for memcached so
having a warning here is incorrect.
Change-Id: I9fc07dd898205612b384f8c4e9820cb186f8e550
Reviewed-on: http://review.couchbase.org/9513
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit 33f2f3e33602b637410e69c785973c5cf3344811
Author: Mike Wiederhold
Date: Thu Sep 8 11:40:18 2011 -0700
SPY-47: Client object should have toString().
The toString() method in MemcachedClient now prints out it's
configuration eg. the information of the ConnectionFactory it
is using.
Change-Id: Ic8f3741bdcdc97d5bb46b2c4a68caec998903fde
Reviewed-on: http://review.couchbase.org/9473
Tested-by: Michael Wiederhold
Reviewed-by: Michael Wiederhold
commit 6d9c441e3ba3d80a4f020b05a087f190ec2eee34
Author: Mike Wiederhold
Date: Thu Sep 8 11:30:01 2011 -0700
Added toString() functions to ConnectionFactory classes.
This will allow us to see how users have configured their client
and will greatly help in debugging issues from customers.
Change-Id: I840259953d1d5192f1038e734103b63281e68ed0
Reviewed-on: http://review.couchbase.org/9472
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit d7df97e76f22c8eee4210b9f83c14220e0e7e4d3
Author: Mike Wiederhold
Date: Thu Sep 8 14:21:33 2011 -0700
SPY-39: Added toString() to operation heirarchy
Change-Id: Ie3ea5b8d04b683303fe8e5f4d5b7b22d7d5bd18b
Reviewed-on: http://review.couchbase.org/9475
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 69f353fd7bcd7979443418363529cad98d23ed49
Author: Mike Wiederhold
Date: Tue Sep 6 17:22:48 2011 -0700
Change getBytes() to getData() in CASOperation
The getBytes function was incorrectly named in the CASOperation
class for two reasons. First the function actually gets the
data field from a message so getData() is a better name. Second,
in the StoreOperation class and other classes the name of the
function is getData() so this improves consistency. This issue
was notice when I was looking at the StoreOperation and saw that
this class had two different functions that did exactly the same
thing.
Change-Id: I4d0c95f309a6f1bb1ccde52ffdf6e9ab1958bebe
Reviewed-on: http://review.couchbase.org/9474
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit 193a684209041b2e2f0cae97d0955e0c6c8703fb
Author: Mike Wiederhold
Date: Wed Sep 7 13:50:14 2011 -0700
Removed unused variables in GetOperationImpl
Change-Id: I3c52dfd21b7b02ea4e9d5f97fd7ed9b034ca0237
Reviewed-on: http://review.couchbase.org/9455
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 5ca2ed1565e2b1ec504389ad1fef7185a807990a
Author: Mike Wiederhold
Date: Wed Sep 7 13:47:36 2011 -0700
SPY-49: BaseSerializingTranscoder does not close resources.
Change-Id: Ifa6b356a9faaad39f12f2cf28d34fbc837faa7b7
Reviewed-on: http://review.couchbase.org/9454
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 6a383c540ce0371166671f6a0e2e2ce03d3de0bb
Author: Mike Wiederhold
Date: Tue Sep 6 17:04:22 2011 -0700
Remove assertions that assert a completed op isn't timed out
Matt was trying to assure we weren't erroneously marking something
timedout that had been completed. The timeout can come from either
the IO thread or the latch from the asynch call. Now that we have
synchronized methods this shouldn't happen.
Change-Id: I4b7e02f839074f80909d4f0fb44b707b76a1a5d5
Reviewed-on: http://review.couchbase.org/9436
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit a77c9fd23bbd529d7b2bc8dd05df9a84602cf7da
Author: Mike Wiederhold
Date: Tue Sep 6 18:48:26 2011 -0700
Add support for commons-codec 1.3, 1.4, and 1.5
Some versions of commons-codec append a \r\n onto the end
of Base64 encoded strings. This fix checks the encoding for
a trailing \r\n and if it finds one, removes if from the
string.
Change-Id: I9b23a19608bfa91cba64e0d579fb49f20612b286
Reviewed-on: http://review.couchbase.org/9443
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 02d2f3e05f7100b09c99f58c85cf3d41ee80bbb3
Author: Daniel Martin
Date: Mon Aug 22 09:32:55 2011 -0400
Use direct buffers in TCPMemcachedNodeImpl
Since the buffers in a TCPMemcachedNodeImpl are allocated rarely (only
on client creation or reconfigure), and are passed to Channel.read()
and Channel.write() repeatedly, it's best to use direct buffers to
avoid http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6214569
Change-Id: I4fafa41e9072aa514e2da97a977c6ac6adc759d5
Reviewed-on: http://review.couchbase.org/9435
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit a9035c9e8243aec93d9516c88f33f6e62d4020c7
Author: Daniel Martin
Date: Fri Aug 19 14:57:23 2011 -0400
Fix concurrent access to operations objects, especially near timeouts
We discovered that having one thread call get() on futures with a
timeout much shorter than the timeout built into the client could
(after a while) reliably kill off the IO thread with a
NullPointerException. After restarting with assertions enabled, we
found many other ways to make the IO thread die relating mostly to
operations that were canceled or timed out in one thread while they
were being used in another thread.
The solution to this is to make "timing out" an operation something
similar to "cancel" - that is, not a state of the operation's state
machine, but just a flag. Then, since this flag (as with the cancelled
flag) can be read and set from multiple threads, synchronize the
methods that do that.
Ideally, transitionState and getState would never be called outside
the IO thread; however, since at least getState is currently, both
getState and transitionState should then also be synchronized.
With these changes, we don't end up killing off the IO thread anymore.
Change-Id: Ice7bac2ba1e2dbcd2004f5d7920944eef6bbbcb8
Reviewed-on: http://review.couchbase.org/9431
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 60a1e05ce35c4920c07fcafd8876ab4f563719b4
Author: Mike Wiederhold
Date: Wed Aug 24 15:11:51 2011 -0700
Improved performance of write queue processing during timeouts
There were two major issues here. First if there are a lot of
timeouts in a row then we processing the write queue we removed
them only one at a time. We now are able to process the entire
write queue each time the handleIO function is called. The
second issue was that it is possible to send timed out requests
to the server. This would happen if there was one not timed out
request followed by some timed out requests. Since in the while
loop we don't check to see if an operation is timed out (or
cancelled) we would send it anyways. This commit addresses both
of these issues by adding a getNextWritable() op which only
operations that should be written. If the write queue is empty
it returns null.
Change-Id: I427e5a47cf2e8ad89e3f59c895f3ef8e0ad36550
Reviewed-on: http://review.couchbase.org/9429
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit c02c042bcc7d4f25545faf82d7a56e6e627091a9
Author: Mike Wiederhold
Date: Wed Aug 24 15:08:13 2011 -0700
SPY-125: Significant performance issue large number of sets
We now add an operation to the read queue when we transistion it
into a WRITING state. This guarentees that the operation is added
to the read queue once. As a result we no longer have to check to
see if the operation has already been added to the read queue
Change-Id: I0b21d3e1ac7ff7792afabc57c1a8a26c6b757c12
Reviewed-on: http://review.couchbase.org/9425
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit e69df0cb876c2501a0fd77a288370252b4de788d
Author: Mike Wiederhold
Date: Wed Aug 24 14:47:03 2011 -0700
Operations can't timeout when writing to the write buffer.
We implemented a mechanism for operations to be able to timeout
while waiting to be written to a socket, but failed to take into
account the fact that an item can timeout while in the middle
of writing to that buffer.
This commit adds a new OperationState called WRITE_QUEUED that
specifies that the operation is waiting to be written to the
write buffer. When an operation begins writing to the write
buffer it goes into the WRITING state. When an operation is in
the WRITING state it cannot time out
Change-Id: Ib4ed9e1764c31e9270f79206b11574d98638e989
Reviewed-on: http://review.couchbase.org/9424
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 051d39ec387f7b4e1aab1a28184c9cc8490db424
Author: Matt Ingenthron
Date: Tue Aug 16 09:56:28 2011 -0700
Update commons-codec to 1.5 in .classpath for Eclipse.
Change-Id: I5342fcbdd31a0ed93b58a3e6ee8be9f6f9f75259
Reviewed-on: http://review.couchbase.org/8995
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 8fa4dbeb684fd016c2b5c7a94b88fbfcef4f7153
Author: Matt Ingenthron
Date: Sun Aug 14 11:05:27 2011 -0700
Log warnings when retrying due to not my vbucket.
The existing behavior with not my vbucket errors prior to this
change would warn when it receives an error to the log, but it
would not followup that warning with any indication of what it
did with the operation. This can cause confusion end users
are logging what's happening, so give the logging some symmetry
by logging any retries due to not-my-vbucket.
Change-Id: I14a1a93db924728b087161cdbb98a5e34f9c3f73
Reviewed-on: http://review.couchbase.org/8984
Tested-by: Matt Ingenthron
Reviewed-by: Michael Wiederhold
commit 31511c8a7466335d86803f5632090c4c0588b2be
Author: Paul Burnstein
Date: Fri Aug 5 15:09:26 2011 -0700
Spymemcached Issue 134: Performance fix
Change-Id: I07a57fb676f91f14b74db1499f4cdc17fcd960ab
Reviewed-on: http://review.couchbase.org/8680
Reviewed-by: Matt Ingenthron
Tested-by: Matt Ingenthron
Reviewed-by: Michael Wiederhold
commit 5583fd0969152b9447eb3f127f3be57e63ae1f98
Author: Vitaly Rudenya
Date: Mon Jul 18 23:14:33 2011 +0300
All NodeLocator's can be reconfigured.
Change-Id: I51b3b72eb46c781eb3766435f43e57ded683514b
Reviewed-on: http://review.couchbase.org/8115
Reviewed-by: Vitaly Rudenya
Reviewed-by: Matt Ingenthron
Tested-by: Matt Ingenthron
commit 90801e0fa4d5ddb565cfa0e7ac77051802b7c360
Author: Matt Ingenthron
Date: Wed Jul 20 22:40:20 2011 -0700
VBucketNodeLocator should not implement getSequence()
Change-Id: Ia0a5c54abca51933995dc307bb5318ebf7dddbce
Reviewed-on: http://review.couchbase.org/8196
Reviewed-by: Michael Wiederhold
Tested-by: Matt Ingenthron
Reviewed-by: Matt Ingenthron
commit c9539e0307deb096ac125cef23c0d1fcf89a88d2
Author: Matt Ingenthron
Date: Tue Jul 12 22:33:27 2011 -0700
Ensure nodesMap updates are safe when topology changes.
This change much more closely (perhaps too defensively)
couples the Config and the list of nodes. It also ensures
that the Map is less prone to
concurrency problems and fixes a concurrency problem which
allowed nodes to be removed when receiving a not-my-vbucket
response.
This indicates we need to make some changes to how the entire
object model and config list are handled, but just to quickly
fix a race found, tie together the config and node list when
locating the right node.
Testing for this is rather manual at the moment.
Change-Id: Ida002fd1d510d20c432e77e01eefbc530d3b34b1
Reviewed-on: http://review.couchbase.org/8195
Tested-by: Matt Ingenthron
Reviewed-by: Michael Wiederhold
Reviewed-by: Matt Ingenthron
commit 96d1d2e38a2a915fae7095af3b6a33639a6830c8
Author: Matt Ingenthron
Date: Mon Jul 18 15:43:02 2011 -0700
Encode with commons codec more correctly.
Apache Commons Codec had introduced a change in 1.4 that had it
inadvertantly adding extra CRLF to encode responses. We had worked
around this issue when writing the initial HTTP authorization
code, but it turns out commons codec has reverted to the behavior
in 1.3 with the release of 1.5.
For more info, see https://issues.apache.org/jira/browse/CODEC-89
This change updates commons codec, adds a test to verify correct
behavior, and addresses potential error handling issues with the
character set.
Change-Id: I655adc5090249180c3e75fbd35036b15252d093f
Reviewed-on: http://review.couchbase.org/8125
Reviewed-by: Matt Ingenthron
Tested-by: Matt Ingenthron
commit a276efab24dcd0d84b2411e0fabceb0f4dddc485
Author: Matt Ingenthron
Date: Tue Jul 12 20:02:06 2011 -0700
Also check for RETRY during clone.
Change-Id: I23953356c77e72e0fa3ce0a1745dee7eb8faba3f
Reviewed-on: http://review.couchbase.org/8194
Reviewed-by: Michael Wiederhold
Reviewed-by: Matt Ingenthron
Tested-by: Matt Ingenthron
commit 28e713c304a3b1799324705ad1bd7f1656e1d2b6
Author: Mike Wiederhold
Date: Mon Jul 18 12:59:47 2011 -0700
Tap streams now pause every 10,000 messages.
In the previous code I was sending acks back to the server
immediately and this kind of behavior could cause a heap overflow
for users who start tap streams but don't process the messages. Now
the ack messages are queued with the responses and only sent back
to the server after all mutations sent before the ack was recieved
are processed.
Change-Id: I0c7c84c2ae5c9cc68d4e9c6f925f9ac6885fae6b
Reviewed-on: http://review.couchbase.org/8114
Reviewed-by: Chiyoung Seo
Tested-by: Michael Wiederhold
Reviewed-by: Matt Ingenthron
commit eae60d3b4292c399c3fa93cc37aab26a335679ef
Author: Mike Wiederhold
Date: Mon Jul 11 18:03:08 2011 -0700
Added ability to do tap dump
Change-Id: I8d761b5cd1e0d5a44c1db5cbd62c74167ff51a64
Reviewed-on: http://review.couchbase.org/7898
Reviewed-by: Matt Ingenthron
Tested-by: Matt Ingenthron
commit b26ab482efe8f9bc2f77d01fd500a4c174a3e924
Author: Mike Wiederhold
Date: Mon Jul 18 15:22:53 2011 -0700
Added README.markdown.
Change-Id: I4cd6a9924b9faf0361fbd496dc68a95a01bf6597
Reviewed-on: http://review.couchbase.org/8121
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 3d6b55461e6bfd1b92698e6c0a59f361b220589a
Author: Mike Wiederhold
Date: Sat Jul 16 15:41:24 2011 -0700
Fixed issue with flags not being added properly to tap messages
Change-Id: I17156e804155809cab54569c0906c64afeea99c9
Reviewed-on: http://review.couchbase.org/8074
Tested-by: Michael Wiederhold
Reviewed-by: Matt Ingenthron
commit 828307ba4b35df8f3f35456b3f84da28639ba454
Author: Mike Wiederhold
Date: Thu Jul 14 17:16:33 2011 -0700
Added the ability to specify the ip address of the testing server
We now have the ability to specify the ip address of the server we
want to test against on the command line. If none is specified then
the tests will run against localhost. The command line parameters to
specify the testing server are 'SPYMC_TEST_SERVER_V4' and
'SPYMC_TEST_SERVER_V6. An example usecase is below.
buildr test SPYMC_TEST_SERVER_V4="10.2.1.58" SPYMC_TEST_SERVER_V6=
"some_ipv6_addr"
Change-Id: If32bc87f381276bee3f9531090ed9c129369ca4e
Reviewed-on: http://review.couchbase.org/7650
Tested-by: Michael Wiederhold
Reviewed-by: Matt Ingenthron
Tested-by: Matt Ingenthron
commit 5c8848e3a630a0699f32e926a304a29db055bee2
Author: Mike Wiederhold
Date: Thu Jul 14 16:32:04 2011 -0700
Made EINTERNAL and ERR2BIG errors throw an exception
This fix will revert a change that broke user code. These errors
will now cause the connection to Membase to be reset.
Change-Id: I6fb7d41cc612ef1620ed678f7139ca002dfa2625
Reviewed-on: http://review.couchbase.org/8006
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit 35b78c784222055fc0d13414a737e0bb189908f0
Author: Mike Wiederhold
Date: Tue Jul 12 21:30:15 2011 -0700
Made TapTest only run against Membase.
I'm aware that tap works for memcached, but since most people
are still on a tapless version I don't want to run the tests
against memcached yet.
Change-Id: Ia5d1d943a59d91ec59419643e9c0af10ae5166ba
Reviewed-on: http://review.couchbase.org/7936
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 2dbba2ce9a06dfb6b4fb70b9414f8eee887eb572
Author: Mike Wiederhold
Date: Mon Jul 11 15:55:53 2011 -0700
TapOperation's shouldn't be KeyedOperations.
Change-Id: I4e884755321e68da099be6a9a1a1d22305931e26
Reviewed-on: http://review.couchbase.org/7890
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit 3e633250ad2da39c82b9451f0bdcfd47935a397d
Author: Mike Wiederhold
Date: Thu Jul 14 14:56:51 2011 -0700
Excluded Non-memcached tests when testing memcached
Change-Id: Iae2bb6381a8a7dd8732cd878a5d9016dc512a627
Reviewed-on: http://review.couchbase.org/8004
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit 5f01535c0c09e4d7cf5586bad19f533a37cd30ed
Author: Mike Wiederhold
Date: Mon Jul 11 12:45:32 2011 -0700
Issue 96: ClassPathException fix
The issue here was that we were combinding multiple types of
get operations in the same class, but each operation would
have a different Callback type. When we would go to optimize
get operations it would optimize get, getl, gat, and gets
operations and since they have different callback types we
would throw an exception.
Each operation now has its own class.
Change-Id: I4ca0da4f9638f7fe3a69bbe55dfb3edf30ae13cc
Reviewed-on: http://review.couchbase.org/7877
Reviewed-by: Matt Ingenthron
Tested-by: Matt Ingenthron
commit e50ec2dba706b82cf1a5d0775c08f331c933b447
Author: Mike Wiederhold
Date: Thu Jun 30 14:41:41 2011 -0700
Added a command line parameter for specifying server type
The user naow has the ability to specify the server type that
they are testing against by adding the parameter 'SPYMC_SERVER_TYPE'
to the command line. The default type is memcached and there are
three valid types, memcached, membase, and couchbase. An example
of how to use the parameter is below
buildr test SPYMC_SERVER_TYPE="membase"
Change-Id: I8d4750053cf52734c703bfe80d8c2d42ca353bb0
Reviewed-on: http://review.couchbase.org/7651
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit 754466cc60d2087d0a1b11a4be26d433d88733ba
Author: Mike Wiederhold
Date: Thu Jul 7 18:19:27 2011 -0700
Fixed a bug where multi-gets didn't work with vb aware constructor
This fix adds vbucket information to multiget operations
Change-Id: Iee8bea445fe45ef3d822e0f2d0fb9cb8eb20f536
Reviewed-on: http://review.couchbase.org/7803
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 8acd712c474f82efea1c175cd68829250d68a984
Author: Mike Wiederhold
Date: Thu Jul 7 18:15:42 2011 -0700
Made an addOperation function private in MemcachedConnection
addOperation(MemcachedNode, Operation)
This function isn't used outside of MemcachedConnection and it is
the only one that doesn't put vbucket information into operations.
It is a helper function of the addOperation(String, Operation) call
so it doesn't need to add vbucket data but calling it from outside
the MemcachedClient scope could cause issues
Change-Id: I68fd4bb331fecf89655904396e825b0f42d7a17c
Reviewed-on: http://review.couchbase.org/7802
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 4f534006eec7fd782e85d1a02ce05f181d13907d
Author: Mike Wiederhold
Date: Thu Jul 7 17:21:33 2011 -0700
Refactored Operations to improve correctness of vbucket aware ops
Previously we had operations that implemented classes that they
should not have been implemented. For example, there were ASCII
operations that implementing the VBucketAware interface. Since
ASCII operations must go through moxi and don't contain vbucket
numbers there is no reason for them to implement this interface.
This commit also contains the addition of SingleKeyOperationImpl
and MultiKeyOperationImpl which subclass OperationImpl and are
superclasses to binary operations that contain one or more keys
correspondingly. This abstraction allows these type of operations
to deal with vBucket awareness and the amount of keys the operation
contains in different ways.
Change-Id: Ic7d002ec8e77e2fccc31987fcb1cba1ca14715da
Reviewed-on: http://review.couchbase.org/7801
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit d03a74e3284c271e9933ef46c339e59ec873163d
Author: Mike Wiederhold
Date: Thu Jun 30 15:00:36 2011 -0700
Removed unused variables in testcases.
Change-Id: Id9f7154bc40df5e9a6b05a4d52422bd893952d2f
Reviewed-on: http://review.couchbase.org/7672
Tested-by: Matt Ingenthron
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit ab10e07cecd714d893e8d9d4532233d1835c200a
Author: Mike Wiederhold
Date: Wed Jun 8 01:31:32 2011 -0700
Added tap client
The tap client currently supports doing tap backfill as well as
being able to specify custom tap streams. Unit tests are included
to test backfill functionality.
Change-Id: I214d39b2c16ea68867f42a3c75aac565d36e8c21
Reviewed-on: http://review.couchbase.org/6873
Tested-by: Matt Ingenthron
Reviewed-by: Matt Ingenthron
commit 17caef5f7c9a4346a1d580ea01b68fd946a6a2cc
Author: Matt Ingenthron
Date: Sat Jul 9 13:08:46 2011 -0700
Adding a warmup state for nodes.
At some point, the REST interface added warmup as a possible state
for a node alongside healthy and unhealthy. This will allow the
config to understand that state.
Change-Id: Iaa56af63d4ac1182235bf8727296198d1b687688
Reviewed-on: http://review.couchbase.org/7846
Tested-by: Michael Wiederhold
Reviewed-by: Michael Wiederhold
commit 97d2a1bfa13d1819a69ad7d9f255659263ec115a
Author: Mike Wiederhold
Date: Wed Jun 29 18:33:29 2011 -0700
Made operation timeout longer for QueueOverflowTest
In order to support being able to test spymemcached against servers
residing on the network we need to increase the timeout of this test
Change-Id: I8760f888138667f42027222ac569bda9bff50c40
Reviewed-on: http://review.couchbase.org/7649
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit a57948c838101966c559863c02958e3a9bbe1b39
Author: Mike Wiederhold
Date: Wed Jun 29 18:23:08 2011 -0700
Changed the value size of items used in LongClientTest
The 32k value used previously worked fine when we were only testing
clients against localhost, but in the future we want to be able to
test spymemcached against servers on the network. This high value
along with the large number of multi-gets done in this test causes
failures due to not being able to read and write data fast enough.
As a result timeouts were caused.
The value has been lowered to something more reasonable for now, but
in the future we should devise a test that will be able to test spy's
ability to handle multi-gets with large values over a network.
Change-Id: I94c7d61bfb6dd76abf4afccd0796dca99fd4bd0a
Reviewed-on: http://review.couchbase.org/7647
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit 3053471051d7b3835e62f0fcfb92cde378dd3d59
Author: Mike Wiederhold
Date: Wed Jun 29 18:15:10 2011 -0700
Made SyncGetTest failures less sporadic
Moved the code that sets the items for this test so that it could
use a MemcachedClient that had a regular timeout. This allows us to
avoid a possible failure resulting from using the connection that
has a short timeout. Now only the get (which is surposed to fail)
uses this short timeout connection
Change-Id: Ic085218bcd6fa53348f70eae13e219a9882b6442
Reviewed-on: http://review.couchbase.org/7646
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit 5e55ce25dfde930de253b7488011c26a1d0cb119
Author: Mike Wiederhold
Date: Fri Jun 24 17:51:22 2011 -0700
Added source folder for manuel tests to Eclipse config file
Change-Id: If8cf813fae0e04a138f0eccd908373ccf4331ccb
Reviewed-on: http://review.couchbase.org/7576
Reviewed-by: Matt Ingenthron
Tested-by: Michael Wiederhold
commit d36f6dff833f40bf4668a2e0da19b1495c22b8f8
Author: Dustin Sallings
Date: Wed Jun 29 13:20:31 2011 -0700
Compiler pointed out ignored exception. :(
Change-Id: I8247911a9e766cfdee615c2c97e9d75a11ee4f52
Reviewed-on: http://review.couchbase.org/7643
Tested-by: Michael Wiederhold
Reviewed-by: Michael Wiederhold
commit 3e17c4e35874519c203cad559078fbd7e647fc0c
Author: Dustin Sallings
Date: Wed Jun 29 13:11:01 2011 -0700
Fixed some shadowing parameter warnings.
Change-Id: I187088c114ec00ee2d561a47ae4381e3646aada8
Reviewed-on: http://review.couchbase.org/7642
Tested-by: Michael Wiederhold
Reviewed-by: Michael Wiederhold
commit 5ef4754e974eca1b500edc884a6b42875b2f161d
Author: Dustin Sallings
Date: Wed Jun 29 13:07:23 2011 -0700
Fix dumb thing compiler warning was pointing out
We don't need to assert identity property of strings. :)
Change-Id: Ie418e1e7ba59a21240b1c59f5b3bc25ce0a21539
Reviewed-on: http://review.couchbase.org/7641
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 80f11e1b0b748d03756b126ddae1fae8b9584c62
Author: Mike Wiederhold
Date: Tue Jun 21 13:59:06 2011 -0700
Added generic to SingleElementFiniteIterator in MemcachedClient.
Change-Id: Ic3036e6c7929221768bae4069cfcae23b7bedf7f
Reviewed-on: http://review.couchbase.org/7105
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 0a2fa7c69d598006c932d5f9717ef27a68da0f04
Author: Mike Wiederhold
Date: Tue Jun 28 15:27:21 2011 -0700
Added constructor to MemcachedClient that takes a ConnectionFactory
Previously users of the vBucket Aware MemcachedClient of smart client
were unable to specify specific values for how connections are
createded. This commit allows uses to pass a ConnectionFactory into
a vBucket Aware constructor in the MemcachedClient object.
Change-Id: I01653385c1d125ad868e9e018db311597b6ce725
Reviewed-on: http://review.couchbase.org/7626
Reviewed-by: Dustin Sallings
Tested-by: Dustin Sallings
commit 98cae1034540bb4ff2cd99d2a06f82842b5fc639
Author: Nelz Carpentier
Date: Fri Jun 24 12:58:05 2011 -0700
Adding the repository needed to download netty.
Change-Id: I89e021d74048c7364ed209838eb5533c8a40ae86
Reviewed-on: http://review.couchbase.org/7587
Tested-by: Matt Ingenthron
Reviewed-by: Matt Ingenthron
commit ab3ff72da98c6bb0875ab80c8390af4e1e07edd1
Author: Mike Wiederhold
Date: Tue Jun 21 14:36:54 2011 -0700
Removed unused imports in VBucketCacheNodeLocatorTest
Change-Id: Id44167d6f669e656a7b0333289e782c835b32c93
Reviewed-on: http://review.couchbase.org/7108
Tested-by: Michael Wiederhold
Tested-by: Matt Ingenthron
Reviewed-by: Matt Ingenthron
commit 9819e419045b5c165deb2115f0f63e0c85c20060
Author: Mike Wiederhold
Date: Fri Jun 24 17:16:40 2011 -0700
Fixed issue regarding connecting to a non-existent bucket
Connecting to a Membase server correctly, but specifying a
bucket that doesn't exist causes the BufferedReader in the
readToString function to be null. This causes a NPE when we
attempt to close the reader.
Change-Id: I7f82596156c697b57b061bf066686aded16b772a
Reviewed-on: http://review.couchbase.org/7575
Tested-by: Matt Ingenthron
Reviewed-by: Matt Ingenthron
commit 24e0091b45400895bff6113fabb3ef8f1437837d
Author: Mike Wiederhold
Date: Tue Jun 21 14:33:26 2011 -0700
Added serial ID's to exceptions.
Change-Id: I8f8696e694eb10c6d327c67197bbccacabb35959
Reviewed-on: http://review.couchbase.org/7107
Reviewed-by: Matt Ingenthron
Tested-by: Matt Ingenthron
commit 9c0c8af3d28f2d0a3017e154f3a436f28284b83b
Author: Mike Wiederhold
Date: Tue Jun 21 13:55:08 2011 -0700
Removed unused import from ConfigurationProviderHTTP
Change-Id: I2f7eb419790f3d44d0471efcdac818f17171ebe2
Reviewed-on: http://review.couchbase.org/7104
Tested-by: Michael Wiederhold
Reviewed-by: Matt Ingenthron
commit 6ce52d246f322d6b312c28df4dc38d0f986b921c
Author: Mike Wiederhold
Date: Wed Jun 15 15:44:02 2011 -0700
Added all memcached error codes to spymemcached.
Previously we only checked a subset of the error codes that
memcached can send back to a client. This created an issue because
if a user recieves an error code that it doesn't expect it resets
the connection. This commit adds all error codes.
Change-Id: I9317eccd688b6fa1e7113847cd7c7ef160a6624f
Reviewed-on: http://review.couchbase.org/7006
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit d6008b775ef07231cea208bc8a8742210d817d6f
Author: Mike Wiederhold
Date: Thu Jun 16 16:31:44 2011 -0700
Add visibility into operations (key)
This commit adds the ability for the user to be able access
the key that the operation asked for if one is present. This allows
users to be able to easily resend an operaiton on a given key since
they will no longer have to keep key-operation data structures
around in the case of failures.
Change-Id: I2db360abbc0e4577526ac057a4945eb55d0dbd10
Reviewed-on: http://review.couchbase.org/7045
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 0fa50b7ec172424f1e4d34ccd5698533748e0a3a
Author: Mike Wiederhold
Date: Thu Jun 16 16:19:28 2011 -0700
Add visibility into operations (status).
This commit allows the functionality for users to issue requests
and then check to see whether or not they succeeded. They can also
now access the error message that the server sends back to them
so they can see why the server rejected their request. Operation
status's also take into account operation timeouts and exceptions
so if an operation times out the operation says so. Also if an
exception is thrown while processing the operation the operation
status reports the message from that exception.
Change-Id: I62af7450cf6cd1c9d1bf171e5063b3d8a1c919ce
Reviewed-on: http://review.couchbase.org/7044
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 020e85b804ed8c5b2f35c8a759f473681a1db5ef
Author: Mike Wiederhold
Date: Thu Jun 16 13:10:05 2011 -0700
ASCII get operations now return a false operation status on failure
get in ASCII always returns END at the end of the result from
memcached. In the current implementation of spy seeing END caused
spy to return operation success. We now check to see if a value
is returned before END and if one if not we return a failure
for OperationStatus of NOT_FOUND.
Change-Id: Ia84df9398e258ae1edba7a11dee55a4c265414d9
Reviewed-on: http://review.couchbase.org/7040
Reviewed-by: Matt Ingenthron
Reviewed-by: Dustin Sallings
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit bc892d226629addabb179acd59d08363a46671aa
Author: Mike Wiederhold
Date: Wed Jun 15 16:46:02 2011 -0700
Fixed broken get and touch test
I was testing these throuh eclipse before and I didn't have
assertions turned on so I falsely verifed the last commit that I
checked in
Change-Id: I01ca86771041b13e63f5073193eb3c49ed2947c9
Reviewed-on: http://review.couchbase.org/7009
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 48941d37a2b0a719f09c0734f22138360c356f1c
Author: Mike Wiederhold
Date: Tue Jun 14 17:01:34 2011 -0700
Add touch, get and touch, and get and lock to MemcachedClientIF
These operations were not added to the MemcachedClientIF interface
in the original commit
Change-Id: I72a670d61a7fa776facf11e2630332facdf4277a
Reviewed-on: http://review.couchbase.org/6982
Tested-by: Michael Wiederhold
Reviewed-by: Matt Ingenthron
commit e93aef248894e3f6229220eaa41da89f9aff1890
Author: Mike Wiederhold
Date: Wed Jun 15 17:20:53 2011 -0700
Added unit tests for touch
Added a unit test for touch. Due to dependency issues the unit
tests for the touch operation could not be checked in with the
code for the operation.
Change-Id: Icbffd0be4419fe57a3d4cd8fef879be810a79c30
Reviewed-on: http://review.couchbase.org/6906
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 07e6f7f397868cec3f5f61e3e969a353a7c6bf39
Author: Mike Wiederhold
Date: Wed Jun 15 15:50:23 2011 -0700
Removed unused import from GetAndTouchOperationImpl
Change-Id: I96dd2bae2153021ee6f140910ca7f472514245f6
Reviewed-on: http://review.couchbase.org/7007
Tested-by: Michael Wiederhold
Reviewed-by: Matt Ingenthron
commit 2e732371db9cdd6129cc6fece54f382560089adc
Author: Mike Wiederhold
Date: Sun Jun 12 18:39:11 2011 -0700
Getl no longer users flags field for request messages
Bug MB-3960 in Membase server has been fixed. As a result the flags
field is no longer used in getl messages since it makes it more
consistent with other get operations.
Change-Id: I1bcbe5d0dfb253256242818f05f6ab72440c20c6
Reviewed-on: http://review.couchbase.org/6952
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 3615441643ace89224dca8250ac1815dd58508ac
Author: Mike Wiederhold
Date: Sun Jun 12 16:53:23 2011 -0700
Getl no longer removes the key from binary message.
Due to MB-3689 in Membase server we were required to provide a hack
in spymemcached that striped the key out of the body field of a
binary response message
Change-Id: Ida71e6557f45c73287f12ba44040553024b7a4a1
Reviewed-on: http://review.couchbase.org/6949
Reviewed-by: Michael Wiederhold
Tested-by: Michael Wiederhold
commit 090da9593ced54cda0624467cdd01e31872d68be
Author: Mike Wiederhold
Date: Sun Jun 12 17:17:37 2011 -0700
Changed all binary command opcode values to hexadecimal.
We intermixed hexidecimal and base 10 values throughout the code
for any given binary operation. This commit changes all the base
10 values to hexadecimal. This way the opcode definitions match
up better with the code in the memcached project.
Change-Id: Ida6d144411c5c9257358a92fb2eaadc2527a94f7
Reviewed-on: http://review.couchbase.org/6950
Tested-by: Michael Wiederhold
Reviewed-by: Matt Ingenthron
commit 0e5c16c3e79d21beefda0cef6601022866943845
Author: Mike Wiederhold
Date: Thu Jun 9 14:00:57 2011 -0700
Make sure a selector isn't canceled before reading it
If a selector is canceled then isReadable will throw an exception.
To avoid this exception and do the right thing make sure that the
selector is valid before checking if it is readable.
Change-Id: If3f9542e371eaeddf2bdea05b14b6d7263803e6a
Reviewed-on: http://review.couchbase.org/6920
Tested-by: Michael Wiederhold
Reviewed-by: Matt Ingenthron