1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.omid.transaction;
19
20 import org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListenableFuture;
21 import org.apache.phoenix.thirdparty.com.google.common.util.concurrent.ListeningExecutorService;
22 import org.apache.omid.tso.client.CellId;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25
26 import java.util.concurrent.Callable;
27
28 public class HBaseAsyncPostCommitter implements PostCommitActions {
29
30 private static final Logger LOG = LoggerFactory.getLogger(HBaseAsyncPostCommitter.class);
31
32 private PostCommitActions syncPostCommitter;
33
34 private ListeningExecutorService postCommitExecutor;
35
36 public HBaseAsyncPostCommitter(PostCommitActions postCommitter, ListeningExecutorService postCommitExecutor) {
37 this.syncPostCommitter = postCommitter;
38 this.postCommitExecutor = postCommitExecutor;
39 }
40
41 @Override
42 public ListenableFuture<Void> updateShadowCells(final AbstractTransaction<? extends CellId> transaction) {
43
44 return postCommitExecutor.submit(new Callable<Void>() {
45 @Override
46 public Void call() throws Exception {
47 syncPostCommitter.updateShadowCells(transaction);
48 return null;
49 }
50
51 });
52
53 }
54
55 @Override
56 public ListenableFuture<Void> removeCommitTableEntry(final AbstractTransaction<? extends CellId> transaction) {
57
58 return postCommitExecutor.submit(new Callable<Void>() {
59 @Override
60 public Void call() throws Exception {
61 syncPostCommitter.removeCommitTableEntry(transaction);
62 return null;
63 }
64 });
65 }
66
67 }