1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.hadoop.hbase.hbql.statement;
22
23 import org.apache.hadoop.hbase.hbql.client.ExecutionResults;
24 import org.apache.hadoop.hbase.hbql.client.HBqlException;
25 import org.apache.hadoop.hbase.hbql.client.QueryExecutorPoolManager;
26 import org.apache.hadoop.hbase.hbql.executor.QueryExecutorPoolDefinition;
27 import org.apache.hadoop.hbase.hbql.impl.HConnectionImpl;
28
29 public class CreateQueryExecutorPoolStatement extends GenericStatement implements ConnectionStatement {
30
31 private final QueryExecutorPoolDefinition args;
32
33 public CreateQueryExecutorPoolStatement(final StatementPredicate predicate,
34 final QueryExecutorPoolDefinition args) {
35 super(predicate);
36 this.args = args;
37 }
38
39 private QueryExecutorPoolDefinition getArgs() {
40 return this.args;
41 }
42
43 protected ExecutionResults execute(final HConnectionImpl conn) throws HBqlException {
44
45 this.getArgs().validateExecutorPoolPropertyList();
46
47 QueryExecutorPoolManager.newQueryExecutorPool(this.getArgs().getPoolName(),
48 this.getArgs().getMaxExecutorPoolSize(),
49 this.getArgs().getMinThreadCount(),
50 this.getArgs().getMaxThreadCount(),
51 this.getArgs().getKeepAliveSecs(),
52 this.getArgs().getThreadsReadResults(),
53 this.getArgs().getCompletionQueueSize());
54
55 return new ExecutionResults("Query executor pool " + this.getArgs().getPoolName() + " created.");
56 }
57
58
59 public static String usage() {
60 return "CREATE QUERY EXECUTOR POOL pool_name (MAX_EXECUTOR_POOL_SIZE: int_expr, MIN_THREAD_COUNT: int_expr, MAX_THREAD_COUNT: int_expr, THREADS_READ_RESULTS: bool_expr, COMPLETION_QUEUE_SIZE: int_expr) [IF bool_expr]";
61 }
62 }