[
https://issues.apache.org/jira/browse/HBASE-4471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Kyle Purtell closed HBASE-4471.
--------------------------------------
> HTable.close() should shut down executor pool
> ---------------------------------------------
>
> Key: HBASE-4471
> URL: https://issues.apache.org/jira/browse/HBASE-4471
> Project: HBase
> Issue Type: Bug
> Components: Client
> Affects Versions: 0.90.3
> Reporter: Josh Rosenblum
> Priority: Major
>
> Right now, it looks like HTable.close() is primarily concerned with flushing
> commits. I understand the intended semantics of close to be that clients
> should not attempt to call any other methods on that HTable instance after
> close is called. If that's true, then close() might leave around some
> relatively heavy resources after close() is called that can serve no further
> purpose. In particular, the executor this.pool may have a number of threads
> outstanding for some period of time (a minute with the default keepAliveTime
> of 60). With the default number of threads == the number of regionservers and
> with each thread having a 1mb stack by default on 64-bit jvms, this can be a
> considerable amount of memory left around (in addition to any other resources
> consumed by each thread). Is there any reason for close() not to also call
> this.pool.shutdown() after it calls flushCommits()?
--
This message was sent by Atlassian Jira
(v8.20.7#820007)