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.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
32
33
34
35 @InterfaceAudience.Private
36 public abstract class WriterBase implements HLog.Writer {
37
38 protected CompressionContext compressionContext;
39 protected Configuration conf;
40
41 @Override
42 public void init(FileSystem fs, Path path, Configuration conf, boolean overwritable) throws IOException {
43 this.conf = conf;
44 }
45
46 public boolean initializeCompressionContext(Configuration conf, Path path) throws IOException {
47 boolean doCompress = conf.getBoolean(HConstants.ENABLE_WAL_COMPRESSION, false);
48 if (doCompress) {
49 try {
50 this.compressionContext = new CompressionContext(LRUDictionary.class,
51 FSUtils.isRecoveredEdits(path), conf.getBoolean(
52 CompressionContext.ENABLE_WAL_TAGS_COMPRESSION, true));
53 } catch (Exception e) {
54 throw new IOException("Failed to initiate CompressionContext", e);
55 }
56 }
57 return doCompress;
58 }
59
60 }