hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "cuijianwei (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-8387) Fix the concurrent put error of PoolMap
Date Sat, 20 Apr 2013 10:03:15 GMT
cuijianwei created HBASE-8387:

             Summary: Fix the concurrent put error of PoolMap
                 Key: HBASE-8387
                 URL: https://issues.apache.org/jira/browse/HBASE-8387
             Project: HBase
          Issue Type: Bug
          Components: Client
    Affects Versions: 0.98.0
            Reporter: cuijianwei

As 'HBASE-6651' described, there may be risks when invoking
 'HTable.closeTablePool' and 'HTable.getTable' concurrently because PoolMap is not thread
safe. The updates have not been committed to trunk. Among these concurrent risks, I think
it may be more serious to invoke 'HTable.getTable' concurrently, which describes as "For example
PoolMap.put() calles ConcurrentMap.get() and calles ConcurrentMap.put(). If other threads
add a new instance to the concurent map in the middle of the calls, the new instance might
be dropped." in 'HBASE-6651'. Applications tend to invoke 'HTable.getTable' concurrently in
multi-thread environments, if 'autoFlush' of HTable is set to false and HTable is dropped
because the concurrently invoking HTable.getTable, the written data buffered in dropped HTable
can't be sent to region servers. I think this problem is more serious, can we fix this before
'HBASE-6651' committing to trunk? I update the 'put' method of PooledMap to avoid this risk
and generate a patch from trunk.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

View raw message