Repository: hbase-site Updated Branches: refs/heads/asf-site 2f2341055 -> 83fd16f2f
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/83fd16f2/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.html ---------------------------------------------------------------------- diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.html index 21a4102..6fd805b 100644 --- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.html +++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.html @@ -1118,134 +1118,136 @@ <span class="sourceLineNo">1110</span> private HRegion r;<a name="line.1110"></a> <span class="sourceLineNo">1111</span><a name="line.1111"></a> <span class="sourceLineNo">1112</span> @Override<a name="line.1112"></a> -<span class="sourceLineNo">1113</span> public void requestFlush(HRegion region, boolean force, FlushLifeCycleTracker tracker) {<a name="line.1113"></a> +<span class="sourceLineNo">1113</span> public boolean requestFlush(HRegion region, boolean force, FlushLifeCycleTracker tracker) {<a name="line.1113"></a> <span class="sourceLineNo">1114</span> try {<a name="line.1114"></a> <span class="sourceLineNo">1115</span> r.flush(force);<a name="line.1115"></a> -<span class="sourceLineNo">1116</span> } catch (IOException e) {<a name="line.1116"></a> -<span class="sourceLineNo">1117</span> throw new RuntimeException("Exception flushing", e);<a name="line.1117"></a> -<span class="sourceLineNo">1118</span> }<a name="line.1118"></a> -<span class="sourceLineNo">1119</span> }<a name="line.1119"></a> -<span class="sourceLineNo">1120</span><a name="line.1120"></a> -<span class="sourceLineNo">1121</span> @Override<a name="line.1121"></a> -<span class="sourceLineNo">1122</span> public void requestDelayedFlush(HRegion region, long when, boolean forceFlushAllStores) {<a name="line.1122"></a> -<span class="sourceLineNo">1123</span> }<a name="line.1123"></a> -<span class="sourceLineNo">1124</span><a name="line.1124"></a> -<span class="sourceLineNo">1125</span> @Override<a name="line.1125"></a> -<span class="sourceLineNo">1126</span> public void registerFlushRequestListener(FlushRequestListener listener) {<a name="line.1126"></a> -<span class="sourceLineNo">1127</span><a name="line.1127"></a> -<span class="sourceLineNo">1128</span> }<a name="line.1128"></a> +<span class="sourceLineNo">1116</span> return true;<a name="line.1116"></a> +<span class="sourceLineNo">1117</span> } catch (IOException e) {<a name="line.1117"></a> +<span class="sourceLineNo">1118</span> throw new RuntimeException("Exception flushing", e);<a name="line.1118"></a> +<span class="sourceLineNo">1119</span> }<a name="line.1119"></a> +<span class="sourceLineNo">1120</span> }<a name="line.1120"></a> +<span class="sourceLineNo">1121</span><a name="line.1121"></a> +<span class="sourceLineNo">1122</span> @Override<a name="line.1122"></a> +<span class="sourceLineNo">1123</span> public boolean requestDelayedFlush(HRegion region, long when, boolean forceFlushAllStores) {<a name="line.1123"></a> +<span class="sourceLineNo">1124</span> return true;<a name="line.1124"></a> +<span class="sourceLineNo">1125</span> }<a name="line.1125"></a> +<span class="sourceLineNo">1126</span><a name="line.1126"></a> +<span class="sourceLineNo">1127</span> @Override<a name="line.1127"></a> +<span class="sourceLineNo">1128</span> public void registerFlushRequestListener(FlushRequestListener listener) {<a name="line.1128"></a> <span class="sourceLineNo">1129</span><a name="line.1129"></a> -<span class="sourceLineNo">1130</span> @Override<a name="line.1130"></a> -<span class="sourceLineNo">1131</span> public boolean unregisterFlushRequestListener(FlushRequestListener listener) {<a name="line.1131"></a> -<span class="sourceLineNo">1132</span> return false;<a name="line.1132"></a> -<span class="sourceLineNo">1133</span> }<a name="line.1133"></a> -<span class="sourceLineNo">1134</span><a name="line.1134"></a> -<span class="sourceLineNo">1135</span> @Override<a name="line.1135"></a> -<span class="sourceLineNo">1136</span> public void setGlobalMemStoreLimit(long globalMemStoreSize) {<a name="line.1136"></a> -<span class="sourceLineNo">1137</span><a name="line.1137"></a> -<span class="sourceLineNo">1138</span> }<a name="line.1138"></a> -<span class="sourceLineNo">1139</span> }<a name="line.1139"></a> -<span class="sourceLineNo">1140</span><a name="line.1140"></a> -<span class="sourceLineNo">1141</span> private WALKeyImpl createWALKey(final TableName tableName, final HRegionInfo hri,<a name="line.1141"></a> -<span class="sourceLineNo">1142</span> final MultiVersionConcurrencyControl mvcc, NavigableMap<byte[], Integer> scopes) {<a name="line.1142"></a> -<span class="sourceLineNo">1143</span> return new WALKeyImpl(hri.getEncodedNameAsBytes(), tableName, 999, mvcc, scopes);<a name="line.1143"></a> -<span class="sourceLineNo">1144</span> }<a name="line.1144"></a> -<span class="sourceLineNo">1145</span><a name="line.1145"></a> -<span class="sourceLineNo">1146</span> private WALEdit createWALEdit(final byte[] rowName, final byte[] family, EnvironmentEdge ee,<a name="line.1146"></a> -<span class="sourceLineNo">1147</span> int index) {<a name="line.1147"></a> -<span class="sourceLineNo">1148</span> byte[] qualifierBytes = Bytes.toBytes(Integer.toString(index));<a name="line.1148"></a> -<span class="sourceLineNo">1149</span> byte[] columnBytes = Bytes.toBytes(Bytes.toString(family) + ":" + Integer.toString(index));<a name="line.1149"></a> -<span class="sourceLineNo">1150</span> WALEdit edit = new WALEdit();<a name="line.1150"></a> -<span class="sourceLineNo">1151</span> edit.add(new KeyValue(rowName, family, qualifierBytes, ee.currentTime(), columnBytes));<a name="line.1151"></a> -<span class="sourceLineNo">1152</span> return edit;<a name="line.1152"></a> -<span class="sourceLineNo">1153</span> }<a name="line.1153"></a> -<span class="sourceLineNo">1154</span><a name="line.1154"></a> -<span class="sourceLineNo">1155</span> private FSWALEntry createFSWALEntry(HTableDescriptor htd, HRegionInfo hri, long sequence,<a name="line.1155"></a> -<span class="sourceLineNo">1156</span> byte[] rowName, byte[] family, EnvironmentEdge ee, MultiVersionConcurrencyControl mvcc,<a name="line.1156"></a> -<span class="sourceLineNo">1157</span> int index, NavigableMap<byte[], Integer> scopes) throws IOException {<a name="line.1157"></a> -<span class="sourceLineNo">1158</span> FSWALEntry entry =<a name="line.1158"></a> -<span class="sourceLineNo">1159</span> new FSWALEntry(sequence, createWALKey(htd.getTableName(), hri, mvcc, scopes), createWALEdit(<a name="line.1159"></a> -<span class="sourceLineNo">1160</span> rowName, family, ee, index), hri, true);<a name="line.1160"></a> -<span class="sourceLineNo">1161</span> entry.stampRegionSequenceId(mvcc.begin());<a name="line.1161"></a> -<span class="sourceLineNo">1162</span> return entry;<a name="line.1162"></a> -<span class="sourceLineNo">1163</span> }<a name="line.1163"></a> -<span class="sourceLineNo">1164</span><a name="line.1164"></a> -<span class="sourceLineNo">1165</span> private void addWALEdits(final TableName tableName, final HRegionInfo hri, final byte[] rowName,<a name="line.1165"></a> -<span class="sourceLineNo">1166</span> final byte[] family, final int count, EnvironmentEdge ee, final WAL wal,<a name="line.1166"></a> -<span class="sourceLineNo">1167</span> final HTableDescriptor htd, final MultiVersionConcurrencyControl mvcc,<a name="line.1167"></a> -<span class="sourceLineNo">1168</span> NavigableMap<byte[], Integer> scopes) throws IOException {<a name="line.1168"></a> -<span class="sourceLineNo">1169</span> for (int j = 0; j < count; j++) {<a name="line.1169"></a> -<span class="sourceLineNo">1170</span> wal.append(hri, createWALKey(tableName, hri, mvcc, scopes),<a name="line.1170"></a> -<span class="sourceLineNo">1171</span> createWALEdit(rowName, family, ee, j), true);<a name="line.1171"></a> -<span class="sourceLineNo">1172</span> }<a name="line.1172"></a> -<span class="sourceLineNo">1173</span> wal.sync();<a name="line.1173"></a> -<span class="sourceLineNo">1174</span> }<a name="line.1174"></a> -<span class="sourceLineNo">1175</span><a name="line.1175"></a> -<span class="sourceLineNo">1176</span> static List<Put> addRegionEdits(final byte[] rowName, final byte[] family, final int count,<a name="line.1176"></a> -<span class="sourceLineNo">1177</span> EnvironmentEdge ee, final Region r, final String qualifierPrefix) throws IOException {<a name="line.1177"></a> -<span class="sourceLineNo">1178</span> List<Put> puts = new ArrayList<>();<a name="line.1178"></a> -<span class="sourceLineNo">1179</span> for (int j = 0; j < count; j++) {<a name="line.1179"></a> -<span class="sourceLineNo">1180</span> byte[] qualifier = Bytes.toBytes(qualifierPrefix + Integer.toString(j));<a name="line.1180"></a> -<span class="sourceLineNo">1181</span> Put p = new Put(rowName);<a name="line.1181"></a> -<span class="sourceLineNo">1182</span> p.addColumn(family, qualifier, ee.currentTime(), rowName);<a name="line.1182"></a> -<span class="sourceLineNo">1183</span> r.put(p);<a name="line.1183"></a> -<span class="sourceLineNo">1184</span> puts.add(p);<a name="line.1184"></a> -<span class="sourceLineNo">1185</span> }<a name="line.1185"></a> -<span class="sourceLineNo">1186</span> return puts;<a name="line.1186"></a> -<span class="sourceLineNo">1187</span> }<a name="line.1187"></a> -<span class="sourceLineNo">1188</span><a name="line.1188"></a> -<span class="sourceLineNo">1189</span> /*<a name="line.1189"></a> -<span class="sourceLineNo">1190</span> * Creates an HRI around an HTD that has <code>tableName</code> and three<a name="line.1190"></a> -<span class="sourceLineNo">1191</span> * column families named 'a','b', and 'c'.<a name="line.1191"></a> -<span class="sourceLineNo">1192</span> * @param tableName Name of table to use when we create HTableDescriptor.<a name="line.1192"></a> -<span class="sourceLineNo">1193</span> */<a name="line.1193"></a> -<span class="sourceLineNo">1194</span> private HRegionInfo createBasic3FamilyHRegionInfo(final TableName tableName) {<a name="line.1194"></a> -<span class="sourceLineNo">1195</span> return new HRegionInfo(tableName, null, null, false);<a name="line.1195"></a> -<span class="sourceLineNo">1196</span> }<a name="line.1196"></a> -<span class="sourceLineNo">1197</span><a name="line.1197"></a> -<span class="sourceLineNo">1198</span> /*<a name="line.1198"></a> -<span class="sourceLineNo">1199</span> * Run the split. Verify only single split file made.<a name="line.1199"></a> -<span class="sourceLineNo">1200</span> * @param c<a name="line.1200"></a> -<span class="sourceLineNo">1201</span> * @return The single split file made<a name="line.1201"></a> -<span class="sourceLineNo">1202</span> * @throws IOException<a name="line.1202"></a> -<span class="sourceLineNo">1203</span> */<a name="line.1203"></a> -<span class="sourceLineNo">1204</span> private Path runWALSplit(final Configuration c) throws IOException {<a name="line.1204"></a> -<span class="sourceLineNo">1205</span> List<Path> splits = WALSplitter.split(<a name="line.1205"></a> -<span class="sourceLineNo">1206</span> hbaseRootDir, logDir, oldLogDir, FileSystem.get(c), c, wals);<a name="line.1206"></a> -<span class="sourceLineNo">1207</span> // Split should generate only 1 file since there's only 1 region<a name="line.1207"></a> -<span class="sourceLineNo">1208</span> assertEquals("splits=" + splits, 1, splits.size());<a name="line.1208"></a> -<span class="sourceLineNo">1209</span> // Make sure the file exists<a name="line.1209"></a> -<span class="sourceLineNo">1210</span> assertTrue(fs.exists(splits.get(0)));<a name="line.1210"></a> -<span class="sourceLineNo">1211</span> LOG.info("Split file=" + splits.get(0));<a name="line.1211"></a> -<span class="sourceLineNo">1212</span> return splits.get(0);<a name="line.1212"></a> -<span class="sourceLineNo">1213</span> }<a name="line.1213"></a> -<span class="sourceLineNo">1214</span><a name="line.1214"></a> -<span class="sourceLineNo">1215</span> private HTableDescriptor createBasic3FamilyHTD(final TableName tableName) {<a name="line.1215"></a> -<span class="sourceLineNo">1216</span> HTableDescriptor htd = new HTableDescriptor(tableName);<a name="line.1216"></a> -<span class="sourceLineNo">1217</span> HColumnDescriptor a = new HColumnDescriptor(Bytes.toBytes("a"));<a name="line.1217"></a> -<span class="sourceLineNo">1218</span> htd.addFamily(a);<a name="line.1218"></a> -<span class="sourceLineNo">1219</span> HColumnDescriptor b = new HColumnDescriptor(Bytes.toBytes("b"));<a name="line.1219"></a> -<span class="sourceLineNo">1220</span> htd.addFamily(b);<a name="line.1220"></a> -<span class="sourceLineNo">1221</span> HColumnDescriptor c = new HColumnDescriptor(Bytes.toBytes("c"));<a name="line.1221"></a> -<span class="sourceLineNo">1222</span> htd.addFamily(c);<a name="line.1222"></a> -<span class="sourceLineNo">1223</span> return htd;<a name="line.1223"></a> -<span class="sourceLineNo">1224</span> }<a name="line.1224"></a> -<span class="sourceLineNo">1225</span><a name="line.1225"></a> -<span class="sourceLineNo">1226</span> private void writerWALFile(Path file, List<FSWALEntry> entries) throws IOException,<a name="line.1226"></a> -<span class="sourceLineNo">1227</span> StreamLacksCapabilityException {<a name="line.1227"></a> -<span class="sourceLineNo">1228</span> fs.mkdirs(file.getParent());<a name="line.1228"></a> -<span class="sourceLineNo">1229</span> ProtobufLogWriter writer = new ProtobufLogWriter();<a name="line.1229"></a> -<span class="sourceLineNo">1230</span> writer.init(fs, file, conf, true, WALUtil.getWALBlockSize(conf, fs, file));<a name="line.1230"></a> -<span class="sourceLineNo">1231</span> for (FSWALEntry entry : entries) {<a name="line.1231"></a> -<span class="sourceLineNo">1232</span> writer.append(entry);<a name="line.1232"></a> -<span class="sourceLineNo">1233</span> }<a name="line.1233"></a> -<span class="sourceLineNo">1234</span> writer.sync(false);<a name="line.1234"></a> -<span class="sourceLineNo">1235</span> writer.close();<a name="line.1235"></a> -<span class="sourceLineNo">1236</span> }<a name="line.1236"></a> -<span class="sourceLineNo">1237</span><a name="line.1237"></a> -<span class="sourceLineNo">1238</span> protected abstract WAL createWAL(Configuration c, Path hbaseRootDir, String logName)<a name="line.1238"></a> -<span class="sourceLineNo">1239</span> throws IOException;<a name="line.1239"></a> -<span class="sourceLineNo">1240</span>}<a name="line.1240"></a> +<span class="sourceLineNo">1130</span> }<a name="line.1130"></a> +<span class="sourceLineNo">1131</span><a name="line.1131"></a> +<span class="sourceLineNo">1132</span> @Override<a name="line.1132"></a> +<span class="sourceLineNo">1133</span> public boolean unregisterFlushRequestListener(FlushRequestListener listener) {<a name="line.1133"></a> +<span class="sourceLineNo">1134</span> return false;<a name="line.1134"></a> +<span class="sourceLineNo">1135</span> }<a name="line.1135"></a> +<span class="sourceLineNo">1136</span><a name="line.1136"></a> +<span class="sourceLineNo">1137</span> @Override<a name="line.1137"></a> +<span class="sourceLineNo">1138</span> public void setGlobalMemStoreLimit(long globalMemStoreSize) {<a name="line.1138"></a> +<span class="sourceLineNo">1139</span><a name="line.1139"></a> +<span class="sourceLineNo">1140</span> }<a name="line.1140"></a> +<span class="sourceLineNo">1141</span> }<a name="line.1141"></a> +<span class="sourceLineNo">1142</span><a name="line.1142"></a> +<span class="sourceLineNo">1143</span> private WALKeyImpl createWALKey(final TableName tableName, final HRegionInfo hri,<a name="line.1143"></a> +<span class="sourceLineNo">1144</span> final MultiVersionConcurrencyControl mvcc, NavigableMap<byte[], Integer> scopes) {<a name="line.1144"></a> +<span class="sourceLineNo">1145</span> return new WALKeyImpl(hri.getEncodedNameAsBytes(), tableName, 999, mvcc, scopes);<a name="line.1145"></a> +<span class="sourceLineNo">1146</span> }<a name="line.1146"></a> +<span class="sourceLineNo">1147</span><a name="line.1147"></a> +<span class="sourceLineNo">1148</span> private WALEdit createWALEdit(final byte[] rowName, final byte[] family, EnvironmentEdge ee,<a name="line.1148"></a> +<span class="sourceLineNo">1149</span> int index) {<a name="line.1149"></a> +<span class="sourceLineNo">1150</span> byte[] qualifierBytes = Bytes.toBytes(Integer.toString(index));<a name="line.1150"></a> +<span class="sourceLineNo">1151</span> byte[] columnBytes = Bytes.toBytes(Bytes.toString(family) + ":" + Integer.toString(index));<a name="line.1151"></a> +<span class="sourceLineNo">1152</span> WALEdit edit = new WALEdit();<a name="line.1152"></a> +<span class="sourceLineNo">1153</span> edit.add(new KeyValue(rowName, family, qualifierBytes, ee.currentTime(), columnBytes));<a name="line.1153"></a> +<span class="sourceLineNo">1154</span> return edit;<a name="line.1154"></a> +<span class="sourceLineNo">1155</span> }<a name="line.1155"></a> +<span class="sourceLineNo">1156</span><a name="line.1156"></a> +<span class="sourceLineNo">1157</span> private FSWALEntry createFSWALEntry(HTableDescriptor htd, HRegionInfo hri, long sequence,<a name="line.1157"></a> +<span class="sourceLineNo">1158</span> byte[] rowName, byte[] family, EnvironmentEdge ee, MultiVersionConcurrencyControl mvcc,<a name="line.1158"></a> +<span class="sourceLineNo">1159</span> int index, NavigableMap<byte[], Integer> scopes) throws IOException {<a name="line.1159"></a> +<span class="sourceLineNo">1160</span> FSWALEntry entry =<a name="line.1160"></a> +<span class="sourceLineNo">1161</span> new FSWALEntry(sequence, createWALKey(htd.getTableName(), hri, mvcc, scopes), createWALEdit(<a name="line.1161"></a> +<span class="sourceLineNo">1162</span> rowName, family, ee, index), hri, true);<a name="line.1162"></a> +<span class="sourceLineNo">1163</span> entry.stampRegionSequenceId(mvcc.begin());<a name="line.1163"></a> +<span class="sourceLineNo">1164</span> return entry;<a name="line.1164"></a> +<span class="sourceLineNo">1165</span> }<a name="line.1165"></a> +<span class="sourceLineNo">1166</span><a name="line.1166"></a> +<span class="sourceLineNo">1167</span> private void addWALEdits(final TableName tableName, final HRegionInfo hri, final byte[] rowName,<a name="line.1167"></a> +<span class="sourceLineNo">1168</span> final byte[] family, final int count, EnvironmentEdge ee, final WAL wal,<a name="line.1168"></a> +<span class="sourceLineNo">1169</span> final HTableDescriptor htd, final MultiVersionConcurrencyControl mvcc,<a name="line.1169"></a> +<span class="sourceLineNo">1170</span> NavigableMap<byte[], Integer> scopes) throws IOException {<a name="line.1170"></a> +<span class="sourceLineNo">1171</span> for (int j = 0; j < count; j++) {<a name="line.1171"></a> +<span class="sourceLineNo">1172</span> wal.append(hri, createWALKey(tableName, hri, mvcc, scopes),<a name="line.1172"></a> +<span class="sourceLineNo">1173</span> createWALEdit(rowName, family, ee, j), true);<a name="line.1173"></a> +<span class="sourceLineNo">1174</span> }<a name="line.1174"></a> +<span class="sourceLineNo">1175</span> wal.sync();<a name="line.1175"></a> +<span class="sourceLineNo">1176</span> }<a name="line.1176"></a> +<span class="sourceLineNo">1177</span><a name="line.1177"></a> +<span class="sourceLineNo">1178</span> static List<Put> addRegionEdits(final byte[] rowName, final byte[] family, final int count,<a name="line.1178"></a> +<span class="sourceLineNo">1179</span> EnvironmentEdge ee, final Region r, final String qualifierPrefix) throws IOException {<a name="line.1179"></a> +<span class="sourceLineNo">1180</span> List<Put> puts = new ArrayList<>();<a name="line.1180"></a> +<span class="sourceLineNo">1181</span> for (int j = 0; j < count; j++) {<a name="line.1181"></a> +<span class="sourceLineNo">1182</span> byte[] qualifier = Bytes.toBytes(qualifierPrefix + Integer.toString(j));<a name="line.1182"></a> +<span class="sourceLineNo">1183</span> Put p = new Put(rowName);<a name="line.1183"></a> +<span class="sourceLineNo">1184</span> p.addColumn(family, qualifier, ee.currentTime(), rowName);<a name="line.1184"></a> +<span class="sourceLineNo">1185</span> r.put(p);<a name="line.1185"></a> +<span class="sourceLineNo">1186</span> puts.add(p);<a name="line.1186"></a> +<span class="sourceLineNo">1187</span> }<a name="line.1187"></a> +<span class="sourceLineNo">1188</span> return puts;<a name="line.1188"></a> +<span class="sourceLineNo">1189</span> }<a name="line.1189"></a> +<span class="sourceLineNo">1190</span><a name="line.1190"></a> +<span class="sourceLineNo">1191</span> /*<a name="line.1191"></a> +<span class="sourceLineNo">1192</span> * Creates an HRI around an HTD that has <code>tableName</code> and three<a name="line.1192"></a> +<span class="sourceLineNo">1193</span> * column families named 'a','b', and 'c'.<a name="line.1193"></a> +<span class="sourceLineNo">1194</span> * @param tableName Name of table to use when we create HTableDescriptor.<a name="line.1194"></a> +<span class="sourceLineNo">1195</span> */<a name="line.1195"></a> +<span class="sourceLineNo">1196</span> private HRegionInfo createBasic3FamilyHRegionInfo(final TableName tableName) {<a name="line.1196"></a> +<span class="sourceLineNo">1197</span> return new HRegionInfo(tableName, null, null, false);<a name="line.1197"></a> +<span class="sourceLineNo">1198</span> }<a name="line.1198"></a> +<span class="sourceLineNo">1199</span><a name="line.1199"></a> +<span class="sourceLineNo">1200</span> /*<a name="line.1200"></a> +<span class="sourceLineNo">1201</span> * Run the split. Verify only single split file made.<a name="line.1201"></a> +<span class="sourceLineNo">1202</span> * @param c<a name="line.1202"></a> +<span class="sourceLineNo">1203</span> * @return The single split file made<a name="line.1203"></a> +<span class="sourceLineNo">1204</span> * @throws IOException<a name="line.1204"></a> +<span class="sourceLineNo">1205</span> */<a name="line.1205"></a> +<span class="sourceLineNo">1206</span> private Path runWALSplit(final Configuration c) throws IOException {<a name="line.1206"></a> +<span class="sourceLineNo">1207</span> List<Path> splits = WALSplitter.split(<a name="line.1207"></a> +<span class="sourceLineNo">1208</span> hbaseRootDir, logDir, oldLogDir, FileSystem.get(c), c, wals);<a name="line.1208"></a> +<span class="sourceLineNo">1209</span> // Split should generate only 1 file since there's only 1 region<a name="line.1209"></a> +<span class="sourceLineNo">1210</span> assertEquals("splits=" + splits, 1, splits.size());<a name="line.1210"></a> +<span class="sourceLineNo">1211</span> // Make sure the file exists<a name="line.1211"></a> +<span class="sourceLineNo">1212</span> assertTrue(fs.exists(splits.get(0)));<a name="line.1212"></a> +<span class="sourceLineNo">1213</span> LOG.info("Split file=" + splits.get(0));<a name="line.1213"></a> +<span class="sourceLineNo">1214</span> return splits.get(0);<a name="line.1214"></a> +<span class="sourceLineNo">1215</span> }<a name="line.1215"></a> +<span class="sourceLineNo">1216</span><a name="line.1216"></a> +<span class="sourceLineNo">1217</span> private HTableDescriptor createBasic3FamilyHTD(final TableName tableName) {<a name="line.1217"></a> +<span class="sourceLineNo">1218</span> HTableDescriptor htd = new HTableDescriptor(tableName);<a name="line.1218"></a> +<span class="sourceLineNo">1219</span> HColumnDescriptor a = new HColumnDescriptor(Bytes.toBytes("a"));<a name="line.1219"></a> +<span class="sourceLineNo">1220</span> htd.addFamily(a);<a name="line.1220"></a> +<span class="sourceLineNo">1221</span> HColumnDescriptor b = new HColumnDescriptor(Bytes.toBytes("b"));<a name="line.1221"></a> +<span class="sourceLineNo">1222</span> htd.addFamily(b);<a name="line.1222"></a> +<span class="sourceLineNo">1223</span> HColumnDescriptor c = new HColumnDescriptor(Bytes.toBytes("c"));<a name="line.1223"></a> +<span class="sourceLineNo">1224</span> htd.addFamily(c);<a name="line.1224"></a> +<span class="sourceLineNo">1225</span> return htd;<a name="line.1225"></a> +<span class="sourceLineNo">1226</span> }<a name="line.1226"></a> +<span class="sourceLineNo">1227</span><a name="line.1227"></a> +<span class="sourceLineNo">1228</span> private void writerWALFile(Path file, List<FSWALEntry> entries) throws IOException,<a name="line.1228"></a> +<span class="sourceLineNo">1229</span> StreamLacksCapabilityException {<a name="line.1229"></a> +<span class="sourceLineNo">1230</span> fs.mkdirs(file.getParent());<a name="line.1230"></a> +<span class="sourceLineNo">1231</span> ProtobufLogWriter writer = new ProtobufLogWriter();<a name="line.1231"></a> +<span class="sourceLineNo">1232</span> writer.init(fs, file, conf, true, WALUtil.getWALBlockSize(conf, fs, file));<a name="line.1232"></a> +<span class="sourceLineNo">1233</span> for (FSWALEntry entry : entries) {<a name="line.1233"></a> +<span class="sourceLineNo">1234</span> writer.append(entry);<a name="line.1234"></a> +<span class="sourceLineNo">1235</span> }<a name="line.1235"></a> +<span class="sourceLineNo">1236</span> writer.sync(false);<a name="line.1236"></a> +<span class="sourceLineNo">1237</span> writer.close();<a name="line.1237"></a> +<span class="sourceLineNo">1238</span> }<a name="line.1238"></a> +<span class="sourceLineNo">1239</span><a name="line.1239"></a> +<span class="sourceLineNo">1240</span> protected abstract WAL createWAL(Configuration c, Path hbaseRootDir, String logName)<a name="line.1240"></a> +<span class="sourceLineNo">1241</span> throws IOException;<a name="line.1241"></a> +<span class="sourceLineNo">1242</span>}<a name="line.1242"></a>