You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ji...@apache.org on 2009/01/24 00:08:18 UTC
svn commit: r737240 - in /hadoop/hbase/branches/0.19: CHANGES.txt
src/java/org/apache/hadoop/hbase/regionserver/HLog.java
src/java/org/apache/hadoop/hbase/regionserver/HRegion.java
src/test/org/apache/hadoop/hbase/regionserver/TestHLog.java
Author: jimk
Date: Fri Jan 23 23:08:17 2009
New Revision: 737240
URL: http://svn.apache.org/viewvc?rev=737240&view=rev
Log:
HBASE-1148 Always flush HLog on root or meta region updates
Modified:
hadoop/hbase/branches/0.19/CHANGES.txt
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/HLog.java
hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java
hadoop/hbase/branches/0.19/src/test/org/apache/hadoop/hbase/regionserver/TestHLog.java
Modified: hadoop/hbase/branches/0.19/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/CHANGES.txt?rev=737240&r1=737239&r2=737240&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19/CHANGES.txt (original)
+++ hadoop/hbase/branches/0.19/CHANGES.txt Fri Jan 23 23:08:17 2009
@@ -2,6 +2,7 @@
Release 0.19.1 - Unreleased
BUG FIXES
HBASE-1121 Cluster confused about where -ROOT- is
+ HBASE-1148 Always flush HLog on root or meta region updates
Release 0.19.0
INCOMPATIBLE CHANGES
Modified: hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/HLog.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/HLog.java?rev=737240&r1=737239&r2=737240&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/HLog.java (original)
+++ hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/HLog.java Fri Jan 23 23:08:17 2009
@@ -456,13 +456,12 @@
*
* @param regionName
* @param tableName
- * @param row
- * @param columns
- * @param timestamp
+ * @param edits
+ * @param sync
* @throws IOException
*/
void append(byte [] regionName, byte [] tableName,
- TreeMap<HStoreKey, byte[]> edits)
+ TreeMap<HStoreKey, byte[]> edits, boolean sync)
throws IOException {
if (closed) {
throw new IOException("Cannot append; log is closed");
@@ -483,7 +482,7 @@
new HLogKey(regionName, tableName, key.getRow(), seqNum[counter++]);
HLogEdit logEdit =
new HLogEdit(key.getColumn(), es.getValue(), key.getTimestamp());
- doWrite(logKey, logEdit);
+ doWrite(logKey, logEdit, sync);
this.numEntries++;
}
@@ -521,10 +520,11 @@
}
}
- private void doWrite(HLogKey logKey, HLogEdit logEdit) throws IOException {
+ private void doWrite(HLogKey logKey, HLogEdit logEdit, boolean sync)
+ throws IOException {
try {
this.writer.append(logKey, logEdit);
- if (++unflushedEntries >= flushlogentries) {
+ if (sync || ++unflushedEntries >= flushlogentries) {
sync();
}
} catch (IOException e) {
@@ -570,7 +570,8 @@
}
HLogKey logKey = new HLogKey(regionName, tableName, row, seqNum);
- doWrite(logKey, logEdit);
+ boolean sync = regionInfo.isMetaRegion() || regionInfo.isRootRegion();
+ doWrite(logKey, logEdit, sync);
this.numEntries++;
updateLock.notifyAll();
}
Modified: hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java?rev=737240&r1=737239&r2=737240&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java (original)
+++ hadoop/hbase/branches/0.19/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java Fri Jan 23 23:08:17 2009
@@ -1707,7 +1707,8 @@
try {
if (writeToWAL) {
this.log.append(regionInfo.getRegionName(),
- regionInfo.getTableDesc().getName(), updatesByColumn);
+ regionInfo.getTableDesc().getName(), updatesByColumn,
+ (regionInfo.isMetaRegion() || regionInfo.isRootRegion()));
}
long size = 0;
for (Map.Entry<HStoreKey, byte[]> e: updatesByColumn.entrySet()) {
Modified: hadoop/hbase/branches/0.19/src/test/org/apache/hadoop/hbase/regionserver/TestHLog.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.19/src/test/org/apache/hadoop/hbase/regionserver/TestHLog.java?rev=737240&r1=737239&r2=737240&view=diff
==============================================================================
--- hadoop/hbase/branches/0.19/src/test/org/apache/hadoop/hbase/regionserver/TestHLog.java (original)
+++ hadoop/hbase/branches/0.19/src/test/org/apache/hadoop/hbase/regionserver/TestHLog.java Fri Jan 23 23:08:17 2009
@@ -77,7 +77,7 @@
byte [] column = Bytes.toBytes(Integer.toString(j));
edit.put(new HStoreKey(rowName, column, System.currentTimeMillis()),
column);
- log.append(Bytes.toBytes(Integer.toString(i)), tableName, edit);
+ log.append(Bytes.toBytes(Integer.toString(i)), tableName, edit, false);
}
}
log.rollWriter();
@@ -110,7 +110,7 @@
cols.put(new HStoreKey(row, Bytes.toBytes(Integer.toString(i)), timestamp),
new byte[] { (byte)(i + '0') });
}
- log.append(regionName, tableName, cols);
+ log.append(regionName, tableName, cols, false);
long logSeqId = log.startCacheFlush();
log.completeCacheFlush(regionName, tableName, logSeqId);
log.close();