1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.regionserver.handler;
20
21 import java.io.IOException;
22 import java.util.concurrent.CountDownLatch;
23
24 import org.apache.commons.logging.Log;
25 import org.apache.commons.logging.LogFactory;
26 import org.apache.hadoop.hbase.classification.InterfaceAudience;
27 import org.apache.hadoop.hbase.KeyValue;
28 import org.apache.hadoop.hbase.executor.EventHandler;
29 import org.apache.hadoop.hbase.executor.EventType;
30 import org.apache.hadoop.hbase.regionserver.KeyValueScanner;
31 import org.apache.hadoop.hbase.regionserver.MultiVersionConsistencyControl;
32
33
34
35
36 @InterfaceAudience.Private
37 public class ParallelSeekHandler extends EventHandler {
38 private static final Log LOG = LogFactory.getLog(ParallelSeekHandler.class);
39 private KeyValueScanner scanner;
40 private KeyValue keyValue;
41 private long readPoint;
42 private CountDownLatch latch;
43 private Throwable err = null;
44
45 public ParallelSeekHandler(KeyValueScanner scanner,KeyValue keyValue,
46 long readPoint, CountDownLatch latch) {
47 super(null, EventType.RS_PARALLEL_SEEK);
48 this.scanner = scanner;
49 this.keyValue = keyValue;
50 this.readPoint = readPoint;
51 this.latch = latch;
52 }
53
54 @Override
55 public void process() {
56 try {
57 scanner.seek(keyValue);
58 } catch (IOException e) {
59 LOG.error("", e);
60 setErr(e);
61 } finally {
62 latch.countDown();
63 }
64 }
65
66 public Throwable getErr() {
67 return err;
68 }
69
70 public void setErr(Throwable err) {
71 this.err = err;
72 }
73 }