From some internal discussions at Salesforce we concluded that we need better control over the resources (mostly threads) consumed by HTable when used in a AppServer with many client threads.
Since HTable is not thread safe, the only options are cache them (in a custom thread local or using HTablePool) or to create them on-demand.
I propose a simple change: Add a new constructor to HTable that takes an optional ExecutorService and HConnection instance. That would make HTable a pretty lightweight object and we would manage the ES and HC separately.
I'll upload a patch a soon to get some feedback.
|Allow HBaseAdmin to use an existing connection||Closed|
|Better HTable resource consumption in CoprocessorHost||Resolved||Unassigned|
|Fix Version/s||0.94.0 [ 12316419 ]|
|Affects Version/s||0.92.0 [ 12314223 ]|
|Fix Version/s||0.92.0 [ 12314223 ]|
|Status||Patch Available [ 10002 ]||Open [ 1 ]|
|Status||Patch Available [ 10002 ]||Resolved [ 5 ]|
|Hadoop Flags||Reviewed [ 10343 ]|
|Resolution||Fixed [ 1 ]|
|Status||Resolved [ 5 ]||Closed [ 6 ]|
|Attachment||HBASE-6580_v1.patch [ 12554093 ]|