1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.accumulo.core.cli;
18
19 import java.util.concurrent.TimeUnit;
20
21 import org.apache.accumulo.core.cli.ClientOpts.MemoryConverter;
22 import org.apache.accumulo.core.cli.ClientOpts.TimeConverter;
23 import org.apache.accumulo.core.client.BatchWriterConfig;
24
25 import com.beust.jcommander.Parameter;
26
27 public class BatchWriterOpts {
28 private static final BatchWriterConfig BWDEFAULTS = new BatchWriterConfig();
29
30 @Parameter(names="--batchThreads", description="Number of threads to use when writing large batches")
31 public Integer batchThreads = BWDEFAULTS.getMaxWriteThreads();
32
33 @Parameter(names="--batchLatency", converter=TimeConverter.class, description="The maximum time to wait before flushing data to servers when writing")
34 public Long batchLatency = BWDEFAULTS.getMaxLatency(TimeUnit.MILLISECONDS);
35
36 @Parameter(names="--batchMemory", converter=MemoryConverter.class, description="memory used to batch data when writing")
37 public Long batchMemory = BWDEFAULTS.getMaxMemory();
38
39 @Parameter(names="--batchTimeout", converter=TimeConverter.class, description="timeout used to fail a batch write")
40 public Long batchTimeout = BWDEFAULTS.getTimeout(TimeUnit.MILLISECONDS);
41
42 public BatchWriterConfig getBatchWriterConfig() {
43 BatchWriterConfig config = new BatchWriterConfig();
44 config.setMaxLatency(this.batchLatency, TimeUnit.MILLISECONDS);
45 config.setMaxMemory(this.batchMemory);
46 config.setTimeout(this.batchTimeout, TimeUnit.MILLISECONDS);
47 return config;
48 }
49
50 }