Return-Path: X-Original-To: apmail-accumulo-dev-archive@www.apache.org Delivered-To: apmail-accumulo-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 5639210688 for ; Wed, 23 Jul 2014 13:56:13 +0000 (UTC) Received: (qmail 39587 invoked by uid 500); 23 Jul 2014 13:56:13 -0000 Delivered-To: apmail-accumulo-dev-archive@accumulo.apache.org Received: (qmail 39542 invoked by uid 500); 23 Jul 2014 13:56:13 -0000 Mailing-List: contact dev-help@accumulo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@accumulo.apache.org Delivered-To: mailing list dev@accumulo.apache.org Received: (qmail 39530 invoked by uid 99); 23 Jul 2014 13:56:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 23 Jul 2014 13:56:12 +0000 X-ASF-Spam-Status: No, hits=2.2 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [209.85.220.182] (HELO mail-vc0-f182.google.com) (209.85.220.182) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 23 Jul 2014 13:56:07 +0000 Received: by mail-vc0-f182.google.com with SMTP id hy4so2206890vcb.13 for ; Wed, 23 Jul 2014 06:55:46 -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:date :message-id:subject:from:to:content-type; bh=oIT8YquRrYmqB+WDZgCjBIEOxlhCEmDusRqPp8W4I8g=; b=ColPehcZDnd3YQ8/vmFNNrV3CkD60uzR9oX5mKMkuMXomWUgbyQAcg5iCVzI7On3dn Gq8zky2Lfnfz2lXXl3W9MhB0xgo8uF+4Vayn3fr/VwxnWd7yeahdtMXgCt+rzZDbuP+1 In2pP3ifamzumXFmAl46hSRsBLiiSfo+WAdW2JhE1tyUvR//VNBc+aqv3f0tIHVguYxy 4f+CCqhd6pNylY+zYQHrn/UrFsvsGgGQbXE56R1/F5Hr4TeZ5CH+zd+U+3LJyUe4U/JI tzfiKrug9l9ezhyAxu2OKdje+ynCKUzR602Jnr3ZsJhXwXf9KPFmWiN6dGdTupjD/LB9 ur1w== X-Gm-Message-State: ALoCoQm/vwXyRDduPnzne1jXkKeY+HmBsvQ+42qDU6QNy8TzgV1mIm2ig42pLAgxcUC34jjyjB1h MIME-Version: 1.0 X-Received: by 10.220.94.135 with SMTP id z7mr2450730vcm.46.1406123746795; Wed, 23 Jul 2014 06:55:46 -0700 (PDT) Received: by 10.220.48.72 with HTTP; Wed, 23 Jul 2014 06:55:46 -0700 (PDT) In-Reply-To: <53CF11C1.7060607@gmail.com> References: <53CF11C1.7060607@gmail.com> Date: Wed, 23 Jul 2014 09:55:46 -0400 Message-ID: Subject: Re: [DISCUSS] Removing relative paths from metadata From: Keith Turner To: Accumulo Dev List Content-Type: multipart/alternative; boundary=001a11c1e488703b1f04fedcb2b5 X-Virus-Checked: Checked by ClamAV on apache.org --001a11c1e488703b1f04fedcb2b5 Content-Type: text/plain; charset=UTF-8 On Tue, Jul 22, 2014 at 9:37 PM, Josh Elser wrote: > On 7/22/14, 12:51 PM, Keith Turner wrote: > >> Had some discussion w/ Dave Marion about the need to drop relatavie paths >> from internal metadata. From a user standpoint the requirement to >> possibly >> configure instance.dfs.uri and instance.dfs.dir if they might have >> relative >> paths is confusing over the long term. Also it places more of a >> maintenance burden on us if we need to ensure all bug fixes and new >> features work properly w/ relative paths. >> > > Assuming that we squash relative paths by 1.7.0, we shouldn't have any > additional burden on new feature work because there should be no new > features in 1.6. Bug fixes are still potentially more complex. > > I think everyone would agree that 1.6.0 should've nuked relative paths > (I'm sorry if I squash anyone's opinions, but that was the impression I got > before 1.6.0 came out). I think trying to eradicate them in 1.6 would just > add even more confusion to an already sufficiently confusing situation. If > a sufficiently simple approach came be thought of for a 1.6.x, I would be > open to hear it. > > > What are our options and what should the timeline be? We could require >> the >> user to do something to remove all relative paths before before starting >> 1.7.0 for example. >> >> Some of the things we discussed >> >> * Provide a utility to rewrite all relative paths >> * Rework the volume replacement code to work w/ relative paths >> >> A stand alone utility is tricky. Don't want to modify tablet metadata if >> the table is loaded. Thats why the volume replacement code has the >> tablets >> themselves do the replacement. >> > > I think I like the idea of writing a standalone utility as, while the > "safe" conditions to run such a utility are harder, getting the rewrite > correct is much easier. Didn't Sean already write some sort of check for an > "is Accumulo off" environment? I think to make this utility safe, accumulo would need the ability to take the metadata table offline inorder to update the root table. The root table would need to be taken offline inorder to safely update zookeeper. I don't think the tables can be taken offline. Also need to ensure nothing brings them online while the operation is running. > > > I like the idea of reworking the volume replacement code, but I do not >> like >> the idea of it happening automatically (like the first time 1.6.2 is >> started). Could possibly have a boolean config >> instance.volume.replaceRelative. When this is set, as tablets are loaded >> and when the GC starts relative paths would be replaced using current >> instance.dfs.* config or hdfs config. >> >> Still uncertain about the best solution. Looking for the course of least >> user confusion and least maintenance. I think >> instance.volume.replaceRelative is a bit confusing from a user >> perspective. >> >> What other options are there to solve this problem? Any issue w/ the >> premise? >> >> --001a11c1e488703b1f04fedcb2b5--