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.wal;
20
21 import java.io.IOException;
22
23 import org.apache.hadoop.hbase.classification.InterfaceAudience;
24 import org.apache.hadoop.conf.Configuration;
25 import org.apache.hadoop.fs.FileSystem;
26 import org.apache.hadoop.fs.Path;
27 import org.apache.hadoop.hbase.HConstants;
28 import org.apache.hadoop.hbase.io.util.LRUDictionary;
29 import org.apache.hadoop.hbase.util.FSUtils;
30
31 import org.apache.hadoop.hbase.wal.DefaultWALProvider;
32
33
34
35
36
37 @InterfaceAudience.Private
38 public abstract class WriterBase implements DefaultWALProvider.Writer {
39
40 protected CompressionContext compressionContext;
41 protected Configuration conf;
42
43 @Override
44 public void init(FileSystem fs, Path path, Configuration conf, boolean overwritable) throws IOException {
45 this.conf = conf;
46 }
47
48 public boolean initializeCompressionContext(Configuration conf, Path path) throws IOException {
49 boolean doCompress = conf.getBoolean(HConstants.ENABLE_WAL_COMPRESSION, false);
50 if (doCompress) {
51 try {
52 this.compressionContext = new CompressionContext(LRUDictionary.class,
53 FSUtils.isRecoveredEdits(path), conf.getBoolean(
54 CompressionContext.ENABLE_WAL_TAGS_COMPRESSION, true));
55 } catch (Exception e) {
56 throw new IOException("Failed to initiate CompressionContext", e);
57 }
58 }
59 return doCompress;
60 }
61
62 }