Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Commits on Jun 7, 2013
  1. @tsuna

    Properly clean up when connection fails before being opened.

    tsuna authored
    This can happen when we attempt to connect to a RegionServer, and we
    buffer some RPCs to send once connected, but we never successfully
    connect, because of a connection timeout.
    
    Bug reported by Viral Bajaria.
Commits on May 30, 2013
  1. @tsuna

    Update suasync to 1.3.2.

    tsuna authored
Commits on May 23, 2013
  1. @tsuna

    Update NEWS / THANKS.

    tsuna authored
  2. @tsuna

    Properly honor timestamps in DeleteRequest.

    Xun Liu authored tsuna committed
    This fixes #58.
    
    Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
Commits on May 3, 2013
  1. @tsuna

    Allow RPCs to fail-fast.

    tsuna authored
    Add a new pair of public APIs to HBaseRpc to allow specifying
    whether an RPC should fail as soon as it encounters a problem.
    This is useful for applications with low-latency requirements
    where retries are unnecessary anyway.
    
    Once HBase has the ability to track a timeout per RPC this will
    be less useful, but in the interim it's a very useful and small
    addition.
  2. @tsuna
Commits on Apr 29, 2013
  1. @tsuna
  2. @tsuna

    Enhance filters a bit and add integration tests.

    tsuna authored
    Summary:
      - Make filter classes final.
      - Add Javadoc.
      - Add helper functions to be able to pass String objects in argument.
      - Add toString() methods.
  3. @tsuna

    Add more scanner filters.

    Viral Bajaria authored tsuna committed
    Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
  4. @tsuna
  5. @tsuna

    Convert the regexp key filtering mechanism to the ScanFilter.

    tsuna authored
    Add an integration test to ensure this didn't break in the process.
  6. @tsuna
  7. @tsuna

    Add Viral to AUTHORS for his work on ScanFilter.

    tsuna authored
    Add also my current employer.
  8. @tsuna

    Initial commit for ScanFilter.

    Viral Bajaria authored tsuna committed
    This closes #51.
    
    Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
Commits on Feb 17, 2013
  1. @octo47 @tsuna

    Add support for multiple families/qualifiers in scanners.

    octo47 authored tsuna committed
    Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
Commits on Feb 15, 2013
  1. @tsuna

    Start v1.5.0.

    tsuna authored
  2. @tsuna

    Update all dependencies.

    tsuna authored
    Remove jcl-over-slf4j, since ZooKeeper doesn't actually use it,
    it uses log4j.
  3. @tsuna

    Fix my email address and links.

    tsuna authored
  4. @tsuna

    Prepare for the v1.4.1 release.

    tsuna authored
Commits on Feb 13, 2013
  1. @tsuna

    Fix the code used to serialized WritableByteArrayComparable.

    tsuna authored
    The code was wrong but worked by chance because the second
    code was set to 0 (NOT_ENCODED), and HBase actually uses the
    second code to know what type the object really is.
    
    So this is more of a "cosmetic issue on the wire", but better
    fix it anyway.
    
    Problem reported by Viral Bajaria.
Commits on Feb 3, 2013
  1. @tsuna

    Fix probe "loss" on NonRecoverableException

    Ishan Chhabra authored tsuna committed
    If a .META. or -ROOT- lookup for a probe request leads to a
    NonRecoverableException (eg. when the region server serving either
    is down, leading to an underlying RegionServerStoppedException), the
    probe's callback (RetryRPC) is not executed. Now, if an upstream
    request comes in and sets the meta cache to a stale entry, all further
    requests will go to the wrong the regionserver and NSRE. The cache entry
    for the region is never deleted as that is the responsibility of the probe,
    which is now "lost"! The bug manifests itself at the client in various
    ways, like the client hanging up on regionserver restarts or continuos
    PleaseThrottleExceptions even after the Region is back online. This
    patch fixes the issue by triggering the callback when there is a
    NonRecoverableException for a request.
    
    Signed-off-by: Benoit Sigoure <tsunanet@gmail.com>
Commits on Nov 19, 2012
  1. @tsuna
Commits on Nov 11, 2012
  1. @tsuna

    Disable tests with Maven.

    tsuna authored
    TestIntegration requires command line arguments, and Maven apparently
    doesn't have the ability to pass command line arguments to one given
    test, if I'm not mistaken, it can only pass system properties, and
    only to all tests.
  2. @tsuna
  3. @tsuna
  4. @tsuna

    Release 1.4.0.

    tsuna authored
  5. @tsuna

    Update an atomic increment integration test to be more reliable.

    tsuna authored
    Because these atomic increments can't be buffered, they go out
    immediately, and client.flush() may not flush anything (because
    the RPCs are have already been sent).  This is working as intended
    but it makes the test flaky.  So make sure we really only verify
    the final count after the two increments have completed.
  6. @tsuna
  7. @tsuna

    Don't double-close channels.

    tsuna authored
    This may cause an extraneous java.nio.channels.ClosedChannelException
    during exception handling, with associated stack trace noise.
  8. @tsuna

    Make flush() work while the client is still starting up.

    tsuna authored
    The problem was twofold:
      - flush() was ignoring the fact that some RPCs could be waiting
        for a -ROOT- lookup.  If flush() is called early enough, all
        RPCs are in this situation.
      - flush() was ignoring the fact that some RegionClient in the
        processing of connecting and handshaking with the RegionServer
        could have some writes in its pending_rpcs list.
    This closes #2.
Commits on Nov 4, 2012
  1. @tsuna

    Fix an old TODO: mark RPCs that modify data in HBase.

    tsuna authored
    Use an internal interface (not part of the public API)
    to mark RPC classes that mutate data in HBase.
  2. @tsuna

    Update NEWS.

    tsuna authored
  3. @tsuna
  4. @tsuna

    Fix and enhance increment coalescing.

    tsuna authored
    This closes #41, whereby a too large number of increments that pile up
    for a given counter could cause a Deferred chain to blow up.  We now
    guarantee that this will not happen by keeping track of how many times
    each counter gets incremented, and pro-actively flushing those that
    reach the limit on the length of the Deferred chain.  This has a nice
    side effect that the *really* busy counters will get flushed more often.
    This tracking is done without any extra locking or synchronization and
    only costs an extra 32 bits of memory per coalesced counter.
    
    This enhances increment coalescing to support negative increment values
    as well as values greater than Short.MAX_VALUE (65535).  There is still
    a limit on how big the values can be, but the limit is much higher now
    (2^48 - 1) and values greater than that are still gracefully handled.
    
    The code is also more robust now in face of overflows / underflows, as
    the previous implementation had one potential race condition, which
    although it would have been incredibly rare, was still possible anyway.
    We now explicitly check for overflows / underflows before we CAS the
    value, so that when an overflow / underflow condition is detected we
    abort the update gracefully and let the caller know so they can flush
    the counter and create a new one to start coalescing again.
    
    This change also adds extra integration tests for various corner cases.
  5. @tsuna
Something went wrong with that request. Please try again.