You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by la...@apache.org on 2015/04/29 22:04:26 UTC
hbase git commit: HBASE-13592 RegionServer sometimes gets stuck
during shutdown in case of cache flush failures. (Vikas Vishwakarma)
Repository: hbase
Updated Branches:
refs/heads/0.98 4b1c64ec7 -> f6b418544
HBASE-13592 RegionServer sometimes gets stuck during shutdown in case of cache flush failures. (Vikas Vishwakarma)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/f6b41854
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/f6b41854
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/f6b41854
Branch: refs/heads/0.98
Commit: f6b418544e1174e960a188d6ac3eb0c0c2678af3
Parents: 4b1c64e
Author: Lars Hofhansl <la...@apache.org>
Authored: Wed Apr 29 13:01:20 2015 -0700
Committer: Lars Hofhansl <la...@apache.org>
Committed: Wed Apr 29 13:01:20 2015 -0700
----------------------------------------------------------------------
.../hadoop/hbase/regionserver/HRegion.java | 52 ++++++++++----------
1 file changed, 26 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/f6b41854/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
index d5e2e86..8837096 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
@@ -1778,34 +1778,34 @@ public class HRegion implements HeapSize { // , Writable{
} finally {
this.updatesLock.writeLock().unlock();
}
- String s = "Finished memstore snapshotting " + this +
- ", syncing WAL and waiting on mvcc, flushsize=" + totalFlushableSize;
- status.setStatus(s);
- if (LOG.isTraceEnabled()) LOG.trace(s);
-
- // sync unflushed WAL changes when deferred log sync is enabled
- // see HBASE-8208 for details
- if (wal != null && !shouldSyncLog()) {
- wal.sync();
- }
-
- // wait for all in-progress transactions to commit to HLog before
- // we can start the flush. This prevents
- // uncommitted transactions from being written into HFiles.
- // We have to block before we start the flush, otherwise keys that
- // were removed via a rollbackMemstore could be written to Hfiles.
- mvcc.waitForRead(w);
-
- s = "Flushing stores of " + this;
- status.setStatus(s);
- if (LOG.isTraceEnabled()) LOG.trace(s);
-
- // Any failure from here on out will be catastrophic requiring server
- // restart so hlog content can be replayed and put back into the memstore.
- // Otherwise, the snapshot content while backed up in the hlog, it will not
- // be part of the current running servers state.
boolean compactionRequested = false;
try {
+ String s = "Finished memstore snapshotting " + this +
+ ", syncing WAL and waiting on mvcc, flushsize=" + totalFlushableSize;
+ status.setStatus(s);
+ if (LOG.isTraceEnabled()) LOG.trace(s);
+
+ // sync unflushed WAL changes when deferred log sync is enabled
+ // see HBASE-8208 for details
+ if (wal != null && !shouldSyncLog()) {
+ wal.sync();
+ }
+
+ // wait for all in-progress transactions to commit to HLog before
+ // we can start the flush. This prevents
+ // uncommitted transactions from being written into HFiles.
+ // We have to block before we start the flush, otherwise keys that
+ // were removed via a rollbackMemstore could be written to Hfiles.
+ mvcc.waitForRead(w);
+
+ s = "Flushing stores of " + this;
+ status.setStatus(s);
+ if (LOG.isTraceEnabled()) LOG.trace(s);
+
+ // Any failure from here on out will be catastrophic requiring server
+ // restart so hlog content can be replayed and put back into the memstore.
+ // Otherwise, the snapshot content while backed up in the hlog, it will not
+ // be part of the current running servers state.
// A. Flush memstore to all the HStores.
// Keep running vector of all store files that includes both old and the
// just-made new flush store file. The new flushed file is still in the