Return-Path: X-Original-To: apmail-hbase-commits-archive@www.apache.org Delivered-To: apmail-hbase-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1DF0711CD3 for ; Tue, 15 Jul 2014 21:47:36 +0000 (UTC) Received: (qmail 59919 invoked by uid 500); 15 Jul 2014 21:47:35 -0000 Delivered-To: apmail-hbase-commits-archive@hbase.apache.org Received: (qmail 59722 invoked by uid 500); 15 Jul 2014 21:47:35 -0000 Mailing-List: contact commits-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list commits@hbase.apache.org Received: (qmail 59519 invoked by uid 99); 15 Jul 2014 21:47:35 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Jul 2014 21:47:35 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 73AA698A8E2; Tue, 15 Jul 2014 21:47:35 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: enis@apache.org To: commits@hbase.apache.org Date: Tue, 15 Jul 2014 21:47:37 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [3/3] git commit: HBASE-11511 Write flush events to WAL HBASE-11511 Write flush events to WAL Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/bbe29eb9 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/bbe29eb9 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/bbe29eb9 Branch: refs/heads/master Commit: bbe29eb93cc819fbf0287aa2cb343649b72783bf Parents: fe50c6d Author: Enis Soztutar Authored: Tue Jul 15 14:47:19 2014 -0700 Committer: Enis Soztutar Committed: Tue Jul 15 14:47:19 2014 -0700 ---------------------------------------------------------------------- .../hadoop/hbase/protobuf/ProtobufUtil.java | 26 + .../hbase/protobuf/generated/WALProtos.java | 2456 +++++++++++++++++- hbase-protocol/src/main/protobuf/WAL.proto | 27 +- .../hadoop/hbase/regionserver/HRegion.java | 66 +- .../hadoop/hbase/regionserver/HStore.java | 12 +- .../hbase/regionserver/StoreFlushContext.java | 8 + .../hadoop/hbase/regionserver/wal/HLogUtil.java | 16 + .../hadoop/hbase/regionserver/wal/WALEdit.java | 23 +- .../hadoop/hbase/regionserver/TestHRegion.java | 228 ++ 9 files changed, 2775 insertions(+), 87 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/bbe29eb9/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java index a70b639..f7531ee 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java @@ -87,6 +87,7 @@ import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.SplitRegionRequest import org.apache.hadoop.hbase.protobuf.generated.AuthenticationProtos; import org.apache.hadoop.hbase.protobuf.generated.CellProtos; import org.apache.hadoop.hbase.protobuf.generated.ClientProtos; +import org.apache.hadoop.hbase.protobuf.generated.WALProtos; import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.BulkLoadHFileRequest; import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.BulkLoadHFileResponse; import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ClientService; @@ -117,6 +118,8 @@ import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MasterService; import org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos.RegionServerReportRequest; import org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest; import org.apache.hadoop.hbase.protobuf.generated.WALProtos.CompactionDescriptor; +import org.apache.hadoop.hbase.protobuf.generated.WALProtos.FlushDescriptor; +import org.apache.hadoop.hbase.protobuf.generated.WALProtos.FlushDescriptor.FlushAction; import org.apache.hadoop.hbase.security.access.Permission; import org.apache.hadoop.hbase.security.access.TablePermission; import org.apache.hadoop.hbase.security.access.UserPermission; @@ -2499,6 +2502,29 @@ public final class ProtobufUtil { return builder.build(); } + public static FlushDescriptor toFlushDescriptor(FlushAction action, HRegionInfo hri, + long flushSeqId, Map> committedFiles) { + FlushDescriptor.Builder desc = FlushDescriptor.newBuilder() + .setAction(action) + .setEncodedRegionName(ByteStringer.wrap(hri.getEncodedNameAsBytes())) + .setFlushSequenceNumber(flushSeqId) + .setTableName(ByteStringer.wrap(hri.getTable().getName())); + + for (Map.Entry> entry : committedFiles.entrySet()) { + WALProtos.FlushDescriptor.StoreFlushDescriptor.Builder builder = + WALProtos.FlushDescriptor.StoreFlushDescriptor.newBuilder() + .setFamilyName(ByteStringer.wrap(entry.getKey())) + .setStoreHomeDir(Bytes.toString(entry.getKey())); //relative to region + if (entry.getValue() != null) { + for (Path path : entry.getValue()) { + builder.addFlushOutput(path.getName()); + } + } + desc.addStoreFlushes(builder); + } + return desc.build(); + } + /** * Return short version of Message toString'd, shorter than TextFormat#shortDebugString. * Tries to NOT print out data both because it can be big but also so we do not have data in our