Permalink
Commits on Jul 13, 2011
  1. Added MembaseClient Object

    The MembaseClient object should be used when making connections
    to Membase clusters. This commit also includes a new
    MembaseConnectionFactory and adds adds the coresponding builder
    code to ConnectionFactoryBuilder. Test support is also added
    for connections specific to Membase clusters
    
    Change-Id: I7209adf74c871a9ad6d7cf3e46a9c2c377b588ec
    Reviewed-on: http://review.couchbase.org/7969
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jul 10, 2011
Commits on Jul 11, 2011
  1. 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 <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Mike Wiederhold committed with mikewied Jul 11, 2011
  2. 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 <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 30, 2011
  3. 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 <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jul 8, 2011
  4. 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 <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jul 8, 2011
  5. 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 <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jul 8, 2011
Commits on Jul 10, 2011
  1. Removed unused variables in testcases.

    Change-Id: Id9f7154bc40df5e9a6b05a4d52422bd893952d2f
    Reviewed-on: http://review.couchbase.org/7672
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 30, 2011
Commits on Jul 9, 2011
  1. 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 <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Mike Wiederhold committed with ingenthr Jun 8, 2011
  2. 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 <mike@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    ingenthr committed with mikewied Jul 9, 2011
Commits on Jul 5, 2011
  1. 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 <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 30, 2011
  2. 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 <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 30, 2011
  3. 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 <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 30, 2011
  4. Added source folder for manuel tests to Eclipse config file

    Change-Id: If8cf813fae0e04a138f0eccd908373ccf4331ccb
    Reviewed-on: http://review.couchbase.org/7576
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 25, 2011
Commits on Jun 29, 2011
  1. Compiler pointed out ignored exception. :(

    Change-Id: I8247911a9e766cfdee615c2c97e9d75a11ee4f52
    Reviewed-on: http://review.couchbase.org/7643
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    committed with mikewied Jun 29, 2011
  2. Fixed some shadowing parameter warnings.

    Change-Id: I187088c114ec00ee2d561a47ae4381e3646aada8
    Reviewed-on: http://review.couchbase.org/7642
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    committed with mikewied Jun 29, 2011
  3. 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 <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    committed with mikewied Jun 29, 2011
  4. Added generic to SingleElementFiniteIterator in MemcachedClient.

    Change-Id: Ic3036e6c7929221768bae4069cfcae23b7bedf7f
    Reviewed-on: http://review.couchbase.org/7105
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 21, 2011
  5. 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 <dustin@spy.net>
    Tested-by: Dustin Sallings <dustin@spy.net>
    Mike Wiederhold committed with Jun 28, 2011
Commits on Jun 27, 2011
  1. Adding the repository needed to download netty.

    Change-Id: I89e021d74048c7364ed209838eb5533c8a40ae86
    Reviewed-on: http://review.couchbase.org/7587
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    nelz9999 committed with ingenthr Jun 24, 2011
Commits on Jun 25, 2011
  1. Removed unused imports in VBucketCacheNodeLocatorTest

    Change-Id: Id44167d6f669e656a7b0333289e782c835b32c93
    Reviewed-on: http://review.couchbase.org/7108
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Mike Wiederhold committed with ingenthr Jun 21, 2011
  2. 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 <matt@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Mike Wiederhold committed with ingenthr Jun 25, 2011
  3. Added serial ID's to exceptions.

    Change-Id: I8f8696e694eb10c6d327c67197bbccacabb35959
    Reviewed-on: http://review.couchbase.org/7107
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Tested-by: Matt Ingenthron <matt@couchbase.com>
    Mike Wiederhold committed with ingenthr Jun 21, 2011
Commits on Jun 23, 2011
  1. Removed unused import from ConfigurationProviderHTTP

    Change-Id: I2f7eb419790f3d44d0471efcdac818f17171ebe2
    Reviewed-on: http://review.couchbase.org/7104
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Mike Wiederhold committed with ingenthr Jun 21, 2011
Commits on Jun 21, 2011
  1. 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 <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 15, 2011
  2. 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 <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 16, 2011
  3. 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 <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 16, 2011
Commits on Jun 20, 2011
  1. 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 <matt@couchbase.com>
    Reviewed-by: Dustin Sallings <dustin@spy.net>
    Reviewed-by: Michael Wiederhold <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 16, 2011
Commits on Jun 18, 2011
  1. 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 <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 15, 2011
Commits on Jun 17, 2011
  1. 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 <mike@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 15, 2011
Commits on Jun 16, 2011
  1. 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 <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 16, 2011
  2. Removed unused import from GetAndTouchOperationImpl

    Change-Id: I96dd2bae2153021ee6f140910ca7f472514245f6
    Reviewed-on: http://review.couchbase.org/7007
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Mike Wiederhold committed with ingenthr Jun 15, 2011
Commits on Jun 15, 2011
  1. 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 <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 13, 2011
  2. 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 <mike@couchbase.com>
    Tested-by: Michael Wiederhold <mike@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 12, 2011
Commits on Jun 13, 2011
  1. 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 <mike@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Mike Wiederhold committed with ingenthr Jun 13, 2011
Commits on Jun 12, 2011
  1. 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 <mike@couchbase.com>
    Reviewed-by: Matt Ingenthron <matt@couchbase.com>
    Mike Wiederhold committed with mikewied Jun 9, 2011