[19/50] [abbrv] hbase git commit: HBASE-16554 Rebuild WAL tracker if trailer is corrupted.
HBASE-16554 Rebuild WAL tracker if trailer is corrupted. Change-Id: Iecc3347de3de9fc57f57ab5f498aad404d02ec52 Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/b2eac0da Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/b2eac0da Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/b2eac0da Branch: refs/heads/hbase-14439 Commit: b2eac0da33c4161aa8188213171afb03b72048a4 Parents: c5b8aab Author: Apekshit SharmaAuthored: Sat Sep 17 17:38:40 2016 -0700 Committer: Apekshit Sharma Committed: Mon Sep 19 12:23:48 2016 -0700 -- .../procedure2/store/ProcedureStoreTracker.java | 15 +++- .../procedure2/store/wal/ProcedureWALFile.java | 2 + .../store/wal/ProcedureWALFormat.java | 14 +++- .../store/wal/ProcedureWALFormatReader.java | 59 +++--- .../procedure2/store/wal/WALProcedureStore.java | 50 ++-- .../store/wal/TestWALProcedureStore.java| 82 6 files changed, 178 insertions(+), 44 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/b2eac0da/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java -- diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java index 78d6a44..a60ba3f 100644 --- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java +++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java @@ -93,6 +93,7 @@ public class ProcedureStoreTracker { private long[] updated; /** * Keeps track of procedure ids which belong to this bitmap's range and have been deleted. + * This represents global state since it's not reset on WAL rolls. */ private long[] deleted; /** @@ -449,8 +450,7 @@ public class ProcedureStoreTracker { } } - public void resetToProto(ProcedureProtos.ProcedureStoreTracker trackerProtoBuf) - throws IOException { + public void resetToProto(final ProcedureProtos.ProcedureStoreTracker trackerProtoBuf) { reset(); for (ProcedureProtos.ProcedureStoreTracker.TrackerNode protoNode: trackerProtoBuf.getNodeList()) { final BitSetNode node = new BitSetNode(protoNode); @@ -536,6 +536,7 @@ public class ProcedureStoreTracker { BitSetNode node = getOrCreateNode(procId); assert node.contains(procId) : "expected procId=" + procId + " in the node=" + node; node.updateState(procId, isDeleted); +trackProcIds(procId); } public void reset() { @@ -545,6 +546,11 @@ public class ProcedureStoreTracker { resetUpdates(); } + public boolean isUpdated(long procId) { +final Map.Entry entry = map.floorEntry(procId); +return entry != null && entry.getValue().contains(procId) && entry.getValue().isUpdated(procId); + } + /** * If {@link #partial} is false, returns state from the bitmap. If no state is found for * {@code procId}, returns YES. @@ -583,6 +589,10 @@ public class ProcedureStoreTracker { } } + public boolean isPartial() { +return partial; + } + public void setPartialFlag(boolean isPartial) { if (this.partial && !isPartial) { for (Map.Entry entry : map.entrySet()) { @@ -720,6 +730,7 @@ public class ProcedureStoreTracker { entry.getValue().dump(); } } + /** * Iterates over * {@link BitSetNode}s in this.map and subtracts with corresponding ones from {@code other} http://git-wip-us.apache.org/repos/asf/hbase/blob/b2eac0da/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java -- diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java index 99e7a7e..b9726a8 100644 --- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java +++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java @@ -62,6 +62,7 @@ public class ProcedureWALFile implements Comparable { this.logFile = logStatus.getPath(); this.logSize = logStatus.getLen(); this.timestamp = logStatus.getModificationTime(); +tracker.setPartialFlag(true); } public ProcedureWALFile(FileSystem fs, Path logFile, ProcedureWALHeader header, @@ -72,6 +73,7 @@ public class ProcedureWALFile implements
[50/50] [abbrv] hbase git commit: HBASE-16554 Rebuild WAL tracker if trailer is corrupted.
HBASE-16554 Rebuild WAL tracker if trailer is corrupted. Change-Id: Iecc3347de3de9fc57f57ab5f498aad404d02ec52 Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/b2eac0da Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/b2eac0da Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/b2eac0da Branch: refs/heads/hbase-12439 Commit: b2eac0da33c4161aa8188213171afb03b72048a4 Parents: c5b8aab Author: Apekshit SharmaAuthored: Sat Sep 17 17:38:40 2016 -0700 Committer: Apekshit Sharma Committed: Mon Sep 19 12:23:48 2016 -0700 -- .../procedure2/store/ProcedureStoreTracker.java | 15 +++- .../procedure2/store/wal/ProcedureWALFile.java | 2 + .../store/wal/ProcedureWALFormat.java | 14 +++- .../store/wal/ProcedureWALFormatReader.java | 59 +++--- .../procedure2/store/wal/WALProcedureStore.java | 50 ++-- .../store/wal/TestWALProcedureStore.java| 82 6 files changed, 178 insertions(+), 44 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/b2eac0da/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java -- diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java index 78d6a44..a60ba3f 100644 --- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java +++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java @@ -93,6 +93,7 @@ public class ProcedureStoreTracker { private long[] updated; /** * Keeps track of procedure ids which belong to this bitmap's range and have been deleted. + * This represents global state since it's not reset on WAL rolls. */ private long[] deleted; /** @@ -449,8 +450,7 @@ public class ProcedureStoreTracker { } } - public void resetToProto(ProcedureProtos.ProcedureStoreTracker trackerProtoBuf) - throws IOException { + public void resetToProto(final ProcedureProtos.ProcedureStoreTracker trackerProtoBuf) { reset(); for (ProcedureProtos.ProcedureStoreTracker.TrackerNode protoNode: trackerProtoBuf.getNodeList()) { final BitSetNode node = new BitSetNode(protoNode); @@ -536,6 +536,7 @@ public class ProcedureStoreTracker { BitSetNode node = getOrCreateNode(procId); assert node.contains(procId) : "expected procId=" + procId + " in the node=" + node; node.updateState(procId, isDeleted); +trackProcIds(procId); } public void reset() { @@ -545,6 +546,11 @@ public class ProcedureStoreTracker { resetUpdates(); } + public boolean isUpdated(long procId) { +final Map.Entry entry = map.floorEntry(procId); +return entry != null && entry.getValue().contains(procId) && entry.getValue().isUpdated(procId); + } + /** * If {@link #partial} is false, returns state from the bitmap. If no state is found for * {@code procId}, returns YES. @@ -583,6 +589,10 @@ public class ProcedureStoreTracker { } } + public boolean isPartial() { +return partial; + } + public void setPartialFlag(boolean isPartial) { if (this.partial && !isPartial) { for (Map.Entry entry : map.entrySet()) { @@ -720,6 +730,7 @@ public class ProcedureStoreTracker { entry.getValue().dump(); } } + /** * Iterates over * {@link BitSetNode}s in this.map and subtracts with corresponding ones from {@code other} http://git-wip-us.apache.org/repos/asf/hbase/blob/b2eac0da/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java -- diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java index 99e7a7e..b9726a8 100644 --- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java +++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java @@ -62,6 +62,7 @@ public class ProcedureWALFile implements Comparable { this.logFile = logStatus.getPath(); this.logSize = logStatus.getLen(); this.timestamp = logStatus.getModificationTime(); +tracker.setPartialFlag(true); } public ProcedureWALFile(FileSystem fs, Path logFile, ProcedureWALHeader header, @@ -72,6 +73,7 @@ public class ProcedureWALFile implements
hbase git commit: HBASE-16554 Rebuild WAL tracker if trailer is corrupted.
Repository: hbase Updated Branches: refs/heads/master c5b8aabab -> b2eac0da3 HBASE-16554 Rebuild WAL tracker if trailer is corrupted. Change-Id: Iecc3347de3de9fc57f57ab5f498aad404d02ec52 Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/b2eac0da Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/b2eac0da Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/b2eac0da Branch: refs/heads/master Commit: b2eac0da33c4161aa8188213171afb03b72048a4 Parents: c5b8aab Author: Apekshit SharmaAuthored: Sat Sep 17 17:38:40 2016 -0700 Committer: Apekshit Sharma Committed: Mon Sep 19 12:23:48 2016 -0700 -- .../procedure2/store/ProcedureStoreTracker.java | 15 +++- .../procedure2/store/wal/ProcedureWALFile.java | 2 + .../store/wal/ProcedureWALFormat.java | 14 +++- .../store/wal/ProcedureWALFormatReader.java | 59 +++--- .../procedure2/store/wal/WALProcedureStore.java | 50 ++-- .../store/wal/TestWALProcedureStore.java| 82 6 files changed, 178 insertions(+), 44 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hbase/blob/b2eac0da/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java -- diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java index 78d6a44..a60ba3f 100644 --- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java +++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/ProcedureStoreTracker.java @@ -93,6 +93,7 @@ public class ProcedureStoreTracker { private long[] updated; /** * Keeps track of procedure ids which belong to this bitmap's range and have been deleted. + * This represents global state since it's not reset on WAL rolls. */ private long[] deleted; /** @@ -449,8 +450,7 @@ public class ProcedureStoreTracker { } } - public void resetToProto(ProcedureProtos.ProcedureStoreTracker trackerProtoBuf) - throws IOException { + public void resetToProto(final ProcedureProtos.ProcedureStoreTracker trackerProtoBuf) { reset(); for (ProcedureProtos.ProcedureStoreTracker.TrackerNode protoNode: trackerProtoBuf.getNodeList()) { final BitSetNode node = new BitSetNode(protoNode); @@ -536,6 +536,7 @@ public class ProcedureStoreTracker { BitSetNode node = getOrCreateNode(procId); assert node.contains(procId) : "expected procId=" + procId + " in the node=" + node; node.updateState(procId, isDeleted); +trackProcIds(procId); } public void reset() { @@ -545,6 +546,11 @@ public class ProcedureStoreTracker { resetUpdates(); } + public boolean isUpdated(long procId) { +final Map.Entry entry = map.floorEntry(procId); +return entry != null && entry.getValue().contains(procId) && entry.getValue().isUpdated(procId); + } + /** * If {@link #partial} is false, returns state from the bitmap. If no state is found for * {@code procId}, returns YES. @@ -583,6 +589,10 @@ public class ProcedureStoreTracker { } } + public boolean isPartial() { +return partial; + } + public void setPartialFlag(boolean isPartial) { if (this.partial && !isPartial) { for (Map.Entry entry : map.entrySet()) { @@ -720,6 +730,7 @@ public class ProcedureStoreTracker { entry.getValue().dump(); } } + /** * Iterates over * {@link BitSetNode}s in this.map and subtracts with corresponding ones from {@code other} http://git-wip-us.apache.org/repos/asf/hbase/blob/b2eac0da/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java -- diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java index 99e7a7e..b9726a8 100644 --- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java +++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALFile.java @@ -62,6 +62,7 @@ public class ProcedureWALFile implements Comparable { this.logFile = logStatus.getPath(); this.logSize = logStatus.getLen(); this.timestamp = logStatus.getModificationTime(); +tracker.setPartialFlag(true); } public ProcedureWALFile(FileSystem fs, Path logFile,