Return-Path: X-Original-To: apmail-hbase-dev-archive@www.apache.org Delivered-To: apmail-hbase-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 35D9018147 for ; Thu, 28 May 2015 01:28:01 +0000 (UTC) Received: (qmail 54071 invoked by uid 500); 28 May 2015 01:28:00 -0000 Delivered-To: apmail-hbase-dev-archive@hbase.apache.org Received: (qmail 53977 invoked by uid 500); 28 May 2015 01:28:00 -0000 Mailing-List: contact dev-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 dev@hbase.apache.org Received: (qmail 53966 invoked by uid 99); 28 May 2015 01:28:00 -0000 Received: from Unknown (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 28 May 2015 01:28:00 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id E6F551A36C2 for ; Thu, 28 May 2015 01:27:59 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 3 X-Spam-Level: *** X-Spam-Status: No, score=3 tagged_above=-999 required=6.31 tests=[HTML_MESSAGE=3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-eu-west.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id 1EmePnbb1q-I for ; Thu, 28 May 2015 01:27:51 +0000 (UTC) Received: from mail-lb0-f169.google.com (mail-lb0-f169.google.com [209.85.217.169]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with ESMTPS id A1C3B24980 for ; Thu, 28 May 2015 01:27:50 +0000 (UTC) Received: by lbbuc2 with SMTP id uc2so18640022lbb.2 for ; Wed, 27 May 2015 18:27:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-type; bh=81KXTm7ikg5oRLWCa3CL5zL+D7+oiqkLxb43DrgIP18=; b=ZftjkYRRPKfCKV3bmKwvhDJwlKBk46VlpaE7GE7c+y/7LgJqPCJxaaQWZM1Zo3+zxx xSI+ycSaS9CNmQMoQRKDTtHG99zinlnpbYIqrrtfMC1pgH2ZWdUYpZ1sAIDn6wfuH+Zn pMxpXkuAQBJPxuP5TX+vhepXle+/X1Y0pORw7LIKQprQddBqVCtjQrrFKQCemnPYtKLn EY8SZZt/oYMj/7DF5dMja4t/e/z0Z/YA/LgZMytDW219em/RVG+CUHmzyzVxfaD9lsqa REEDzp2KKTgVJ6PcPHAuvyTbsP7N+Gu06fcGauxJ5Oxas6Wwv3A1bCK2KvgbgEBNRzbb UIrg== X-Gm-Message-State: ALoCoQnK1ys3cXNwvBV8gJcfuhDs/Wmj5p02JEu2jMuMoQD65m3wZC73X38IYleTj+Kot7GzEP3f X-Received: by 10.112.210.137 with SMTP id mu9mr192394lbc.95.1432776464328; Wed, 27 May 2015 18:27:44 -0700 (PDT) MIME-Version: 1.0 Received: by 10.25.84.78 with HTTP; Wed, 27 May 2015 18:27:23 -0700 (PDT) In-Reply-To: References: From: Jonathan Hsieh Date: Wed, 27 May 2015 18:27:23 -0700 Message-ID: Subject: Re: [DISCUSSION] Merge of the hbase-11339 mob branch into master. To: "dev@hbase.apache.org" Content-Type: multipart/alternative; boundary=001a11c3d7dc33022005171a4410 --001a11c3d7dc33022005171a4410 Content-Type: text/plain; charset=UTF-8 On Sat, May 23, 2015 at 9:40 AM, Andrew Purtell wrote: > Regarding performance testing: Whatever has been done on the MOB branch > will be interesting data points, and, potentially encouraging, but porting > to branch-1 will produce a new code base. Earlier results on other code > will not be applicable. We have to start over. Like I said elsewhere, I'm > happy to help with (re)characterizing the perf impact and improvements > produced by the changes. > > Thank you for offer for help -- we'd appreciated it! Although most of my it tests and perf tests results were done against against trunk (from sept '14 and then later feb '15 -- we've been doing them roughly every two weeks now) Jingcheng's most recent performance testing and fault injection testing results were actually done against a version merged/rebased on to hbase 1.0.0[1]. Though not on the most recent branch-1, would this be close enough and sufficient or would you still want to redoing them? If we want to redo them when we have a 1.x backport is ready to propose, we'll include the augmented ltt[2] that will make it easy to exercise the mob feature's performance. [1] https://github.com/cloudera/hbase/commits/cdh5-1.0.0_5.4.0?page=2 (this is cdh5.4.0's hbase 1.0.0-based hbase) [2] https://issues.apache.org/jira/browse/HBASE-13277 What coverage do we have for verifying the integrity of MOB references? > Will the sweep tool detect, alert on, and optionally repair dangling > references? (I could answer this for myself by looking at MOB branch, but > hopefully someone here has an answer at the ready.) I assume we calculate > and store checksums for MOB data itself so we know if values are corrupt. > Does the sweep tool detect MOB value corruption? Can it be repaired? Do we > have a good ops story for why HBCK is no longer sufficient on its own, > there's a separate tool with a whole new set of options - and a requirement > for a MR runtime! - for checking MOB data? That last one is a rhetorical > question (smile), the ops story is... unsatisfying. It's like we've taken a > self sufficient HBase and bolted in parts of Hive, so now we need MR. > > Our internal compaction detects and alerts at warn level if there is a missing link [3], and then returns a empty value [4] Mobs are stored in hfiles so we have the same checksumming all other hfiles have. In the other response, I answered about hbck and how something like Hfile.main() could be a more appropriate checking tool to address this situation. I'm afraid then much of our complete operational story is "unsatisfying" even without mob because it still requires MR -- e.g. copytable, export, import, walplayer, or verifyreplicaion mr jobs. While I'll agree that having an external system is undesirable and unacceptable for what are mandatory internal operations like compactions, I think requiring mr for a verifiymob mr job would as acceptable as the verfiyreplication job. [3] https://github.com/apache/hbase/blob/hbase-11339/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HMobStore.java#L400 [4] https://github.com/apache/hbase/blob/hbase-11339/hbase-server/src/main/java/org/apache/hadoop/hbase/mob/DefaultMobCompactor.java#L224 > > On Fri, May 22, 2015 at 1:45 PM, Jonathan Hsieh wrote: > > > In another thread andrew purtell brought up some concerns about the mob > > feature: > > > > On Fri, May 22, 2015 at 12:40 PM, Andrew Purtell > > wrote: > > > > > Another point of clarification, sorry, I hit the send button too early > it > > > seems: I don't believe MOB is fully integrated yet, for example the > > > feature > > > is an extension to store that lacks support for encryption (this would > > > technically be a feature regression); and HBCK. I have not been > following > > > MOB too closely so could be mistaken. These issues do not preclude a > > merge > > > of MOB into trunk, but do preclude a merge back of MOB from trunk to > > > branch-1. I would veto the latter until such shortcomings in the > > > implementation that could be described as regressions are addressed. I > > > would also like to see a performance analysis of a range of workloads > > > before and after in as much detail as can be mustered, and would be > happy > > > to volunteer to help out with that. > > > > > > > Here's info on the points brought up: > > > > Encryption support shortcoming is being addrsessed here: > > https://issues.apache.org/jira/browse/HBASE-13693 (closed) > > https://issues.apache.org/jira/browse/HBASE-13720 (in review) > > > > Hbck has been actually run against the integration test rigs while the > > feature has been enabled but currently has no explicit unit test or > simple > > to run integration test. It currently doesn't report anything special > > about the mob storage area. We can add unit tests that cover hbck when > the > > mob path is exercised. > > > > Another suggestion was a tool to check that mob references had > > corresponding mob data. We currently include a mr-based sweeper job that > > could be used to perform this verification. We can add this tool and > > testing for the tool. > > > > I've done some performance testing and Jingcheng and his colleagues have > > done significant amounts of performance testing. We currently have a blog > > post in progress that will share the results of this performance testing. > > > > Jon. > > > > > > > > > > > > On Wed, May 20, 2015 at 7:38 PM, Ted Yu wrote: > > > > > This is a useful feature, Jon. > > > > > > I went over the mega-patch and left some comments on review board. > > > > > > I noticed that hbck was not included in the patch. Neither did I find a > > > sub-task of HBASE-11339 that covers hbck. > > > > > > Do you or Jingcheng plan to add MOB-aware capability for hbck ? > > > > > > Cheers > > > > > > On Wed, May 20, 2015 at 9:21 AM, Jonathan Hsieh > > wrote: > > > > > > > Hi folks, > > > > > > > > The Medium Object (MOB) Storage feature (HBASE-11339[1]) is modified > > I/O > > > > and compaction path that allows individual moderately sized values > > > > (10k-10MB) to be stored so that write amplification is reduced when > > > > compared to the normal I/O path. At a high level, it provides > > alternate > > > > flush and compaction mechanisms that segregates large cells into a > > > separate > > > > area where they are not subject to potentially frequent compaction > and > > > > splits that can be encountered in the normal I/O path. A more > detailed > > > > design doc can be found on the hbase-11339 jira. > > > > > > > > Jingcheng Du has been working on the mob feature for a while and > Anoop, > > > Ram > > > > and I have been shepherding him through the design revisions and > > > > implementation of the feature in the hbase-11339 branch.[2] > > > > > > > > The branch we are proposing to merge into master is compatible with > > > HBase's > > > > core functionality including snapshots, replication, shell support, > > > behaves > > > > well with table alters, bulk loads and does not require external MR > > > > processes. It has been documented, and subject to many integration > test > > > > runs (ITBLL, ITAcidGuarantees, ITIngest) including fault injection. > > > > Performance testing of the feature shows what can be a 2x-3x > throughput > > > > improvement for workloads that contain mobs. These results can be > seen > > on > > > > the hbase 2.0 panel discussion slides from hbasecon (once published). > > > > > > > > Recently there have been some hfile encryption related shortcomings > > that > > > we > > > > could address in branch or in master. > > > > > > > > Earlier iterations of the feature has been tested in production by > > users > > > > that Jingcheng has been responsible for. A version has also been > > > deployed > > > > at users I have been responsible for. Some of the folks from Huawei > > > > (ashutosh) have also been submitting the recent encryption bug > reports > > > > against the hbase-11339 branch so there is some evidence of usage by > > > them. > > > > > > > > The four of us (Jingcheng, Ram, Anoop and I) are satisfied with the > > > > feature and feel it is a good time to call a merge vote. Ive posted > a > > > > megapatch version for folks who want to peruse the code. [3] > > > > > > > > What do you all think? > > > > > > > > Thanks, > > > > Jingcheng, Jon, Ram, and Anoop. > > > > > > > > [1] https://issues.apache.org/jira/browse/HBASE-11339 > > > > [2] https://github.com/apache/hbase/tree/hbase-11339 > > > > [3] https://reviews.apache.org/r/34475/ > > > > -- > > > > // Jonathan Hsieh (shay) > > > > // HBase Tech Lead, Software Engineer, Cloudera > > > > // jon@cloudera.com // @jmhsieh > > > > > > > > > > > > > > > -- > > // Jonathan Hsieh (shay) > > // HBase Tech Lead, Software Engineer, Cloudera > > // jon@cloudera.com // @jmhsieh > > > > > > -- > Best regards, > > - Andy > > Problems worthy of attack prove their worth by hitting back. - Piet Hein > (via Tom White) > -- // Jonathan Hsieh (shay) // HBase Tech Lead, Software Engineer, Cloudera // jon@cloudera.com // @jmhsieh --001a11c3d7dc33022005171a4410--