You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Liu Shaohui (JIRA)" <ji...@apache.org> on 2014/05/28 15:55:01 UTC

[jira] [Created] (HBASE-11263) Share the open/close store file thread pool for all store in a region

Liu Shaohui created HBASE-11263:
-----------------------------------

             Summary: Share the open/close store file thread pool for all store in a region
                 Key: HBASE-11263
                 URL: https://issues.apache.org/jira/browse/HBASE-11263
             Project: HBase
          Issue Type: Improvement
          Components: regionserver
            Reporter: Liu Shaohui
            Priority: Minor


Currently, the open/close store file thread pool is divided equally to all stores of a region. 
{code}
  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(
      final String threadNamePrefix) {
    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());
    int maxThreads = Math.max(1,
        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,
            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)
            / numStores);
    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);
  }
{code}
This is not very optimal in following scenarios:
# The data of some column families are very large and there are many hfiles in those stores, and others may be very small and in-memory column families. 
# Usually we preserve some column families for later needs. The thread pool for these column families are wasted。

The simple way is to share a big thread pool for all stores to open/close hfiles.  

Suggestions are welcomed. 
Thanks. 




--
This message was sent by Atlassian JIRA
(v6.2#6252)