Transactions for Apache HBase™

Build: #48 was successful Changes by Nitin Motgi and Remco Beckers <remco.beckers@gmail.com>

Code commits

tephra/develop

  • Nitin Motgi

    Nitin Motgi 2889c3c9d06e757d8f4de40726bd8117ce72b390

    Merge pull request #65 from StackVista/PooledClientProviderDeadlock
    Fix deadlock in PooledClientProvider

  • Remco Beckers <remco.beckers@gmail.com>

    Remco Beckers <remco.beckers@gmail.com> 7df805b729245581a9edabf711104a577f8ae8a9

    Fix deadlock in PooledClientProvider
    When more threads then the size of the client pool try to get a client in parallel this either results in a deadlock (just try to run the provided test without the fixes in the PooledClientProvider) or the ElasticPool's internal queue overflows when one client too much is returned to the pool (with only the fix in the AbstractClientProvider).

    Cause was that the pool was initialized twice. Once from within the pools getClientPool() method and once when creating the first client in the newClient() method.

    • tephra-core/src/main/java/co/cask/tephra/distributed/AbstractClientProvider.java (version 7df805b729245581a9edabf711104a577f8ae8a9)
    • tephra-core/src/main/java/co/cask/tephra/distributed/ElasticPool.java (version 7df805b729245581a9edabf711104a577f8ae8a9)
    • tephra-core/src/main/java/co/cask/tephra/distributed/PooledClientProvider.java (version 7df805b729245581a9edabf711104a577f8ae8a9)
    • tephra-core/src/test/java/co/cask/tephra/distributed/PooledClientProviderTest.java (version 7df805b729245581a9edabf711104a577f8ae8a9)