1
2
3
4 package org.apache.hadoop.hbase.tmpl.regionserver;
5
6
7 import java.util.*;
8
9 import org.apache.hadoop.conf.Configuration;
10
11 import org.apache.hadoop.hbase.io.hfile.BlockCacheUtil.CachedBlocksByFile;
12
13 import org.apache.hadoop.hbase.io.hfile.BlockCacheUtil;
14
15 import org.apache.hadoop.hbase.io.hfile.CachedBlock;
16
17 import org.apache.hadoop.hbase.io.hfile.CacheConfig;
18
19 import org.apache.hadoop.hbase.io.hfile.BlockCache;
20
21 import org.apache.hadoop.hbase.io.hfile.bucket.BucketCacheStats;
22
23 import org.apache.hadoop.hbase.io.hfile.bucket.BucketCache;
24
25 import org.apache.hadoop.hbase.io.hfile.bucket.BucketAllocator;
26
27 import org.apache.hadoop.hbase.io.hfile.bucket.BucketAllocator.Bucket;
28
29 import org.apache.hadoop.util.StringUtils;
30
31 public class BlockCacheViewTmplImpl
32 extends org.jamon.AbstractTemplateImpl
33 implements org.apache.hadoop.hbase.tmpl.regionserver.BlockCacheViewTmpl.Intf
34
35 {
36 private final CacheConfig cacheConfig;
37 private final Configuration conf;
38 private final String bcn;
39 private final String bcv;
40 protected static org.apache.hadoop.hbase.tmpl.regionserver.BlockCacheViewTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.regionserver.BlockCacheViewTmpl.ImplData p_implData)
41 {
42 return p_implData;
43 }
44 public BlockCacheViewTmplImpl(org.jamon.TemplateManager p_templateManager, org.apache.hadoop.hbase.tmpl.regionserver.BlockCacheViewTmpl.ImplData p_implData)
45 {
46 super(p_templateManager, __jamon_setOptionalArguments(p_implData));
47 cacheConfig = p_implData.getCacheConfig();
48 conf = p_implData.getConf();
49 bcn = p_implData.getBcn();
50 bcv = p_implData.getBcv();
51 }
52
53 @Override public void renderNoFlush(final java.io.Writer jamonWriter)
54 throws java.io.IOException
55 {
56
57
58 BlockCache bc = cacheConfig == null ? null : cacheConfig.getBlockCache();
59 BlockCache [] bcs = bc == null ? null : bc.getBlockCaches();
60 if (bcn.equals("L1")) {
61 bc = bcs == null || bcs.length == 0? bc: bcs[0];
62 } else {
63 if (bcs.length < 2) {
64 System.out.println("There is no L2 block cache");
65 return;
66 }
67 bc = bcs[1];
68 }
69 if (bc == null) {
70 System.out.println("There is no block cache");
71 return;
72 }
73 CachedBlocksByFile cbsbf = BlockCacheUtil.getLoadedCachedBlocksByFile(conf, bc);
74
75
76 if (bcv.equals("file") )
77 {
78
79 {
80
81 __jamon_innerUnit__bc_by_file(jamonWriter, cbsbf);
82 }
83 }
84
85 else
86 {
87
88 jamonWriter.write("[ ");
89
90 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(BlockCacheUtil.toJSON(bc)), jamonWriter);
91
92 jamonWriter.write(", ");
93
94 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(BlockCacheUtil.toJSON(cbsbf)), jamonWriter);
95
96 jamonWriter.write(" ]");
97 }
98
99 jamonWriter.write("\n");
100
101
102 cbsbf = null;
103
104 }
105
106
107
108 private void __jamon_innerUnit__bc_by_file(final java.io.Writer jamonWriter, final CachedBlocksByFile cbsbf)
109 throws java.io.IOException
110 {
111
112 jamonWriter.write("[");
113
114 for (Map.Entry<String, NavigableSet<CachedBlock>> e: cbsbf.getCachedBlockStatsByFile().entrySet() )
115 {
116
117 org.jamon.escaping.Escaping.HTML.write(org.jamon.emit.StandardEmitter.valueOf(BlockCacheUtil.toJSON(e.getKey(), e.getValue())), jamonWriter);
118 }
119
120 jamonWriter.write("]\n");
121 }
122
123
124 }