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.AsyncExecutorManager;
24 import org.apache.hadoop.hbase.hbql.client.ExecutionResults;
25 import org.apache.hadoop.hbase.hbql.client.HBqlException;
26 import org.apache.hadoop.hbase.hbql.executor.AsyncExecutorDefinition;
27 import org.apache.hadoop.hbase.hbql.impl.HConnectionImpl;
28
29 public class CreateAsyncExecutorStatement extends GenericStatement implements ConnectionStatement {
30
31 private final AsyncExecutorDefinition args;
32
33 public CreateAsyncExecutorStatement(final StatementPredicate predicate,
34 final AsyncExecutorDefinition args) {
35 super(predicate);
36 this.args = args;
37 }
38
39 private AsyncExecutorDefinition getArgs() {
40 return this.args;
41 }
42
43 protected ExecutionResults execute(final HConnectionImpl conn) throws HBqlException {
44
45 this.getArgs().validatePropertyList();
46
47 AsyncExecutorManager.newAsyncExecutor(this.getArgs().getName(),
48 this.getArgs().getMinThreadCount(),
49 this.getArgs().getMaxThreadCount(),
50 this.getArgs().getKeepAliveSecs());
51
52 return new ExecutionResults("Async executor " + this.getArgs().getName() + " created.");
53 }
54
55
56 public static String usage() {
57 return "CREATE ASYNC EXECUTOR name (MIN_THREAD_COUNT: int_expr, MAX_THREAD_COUNT: int_expr, THREADS_READ_RESULTS: bool_expr, COMPLETION_QUEUE_SIZE: int_expr) [IF bool_expr]";
58 }
59 }