[ 
https://issues.apache.org/jira/browse/PHOENIX-971?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14326815#comment-14326815
 ] 

James Taylor commented on PHOENIX-971:
--------------------------------------

Another idea: we don't really want/need our RPCs to even spin up another 
thread, as we've already got the thread for the work out of our one thread 
pool. What if we changed the code above to just run the RPC in the current 
thread to prevent additional context switches:
{code}
    return HBaseFactoryProvider.getHTableFactory().getTable(tableName, 
connection     
                    getDirectExecutorService())
{code}
where we instantiate a Guava direct executor service in BaseQueryServicesImpl 
like this:
{code}
public abstract class BaseQueryServicesImpl implements QueryServices {
    private final ThreadPoolExecutor executor;
    private final MemoryManager memoryManager;
    private final ReadOnlyProps props;
    private final QueryOptimizer queryOptimizer;
    private final ExecutorService directExecutor =  
MoreExecutors.newDirectExecutorService();

    public ExecutorService getDirectExecutor() {
        return directExecutor;
    }
}
{code}

    


> Query server
> ------------
>
>                 Key: PHOENIX-971
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-971
>             Project: Phoenix
>          Issue Type: New Feature
>            Reporter: Andrew Purtell
>            Assignee: Nick Dimiduk
>             Fix For: 5.0.0
>
>
> Host the JDBC driver in a query server process that can be deployed as a 
> middle tier between lighter weight clients and Phoenix+HBase. This would 
> serve a similar optional role in Phoenix deployments as the 
> [HiveServer2|https://cwiki.apache.org/confluence/display/Hive/Setting+Up+HiveServer2]
>  does in Hive deploys.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to