Return-Path: X-Original-To: apmail-accumulo-notifications-archive@minotaur.apache.org Delivered-To: apmail-accumulo-notifications-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 6F50C17433 for ; Thu, 2 Apr 2015 02:16:54 +0000 (UTC) Received: (qmail 22183 invoked by uid 500); 2 Apr 2015 02:16:54 -0000 Delivered-To: apmail-accumulo-notifications-archive@accumulo.apache.org Received: (qmail 22148 invoked by uid 500); 2 Apr 2015 02:16:54 -0000 Mailing-List: contact notifications-help@accumulo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jira@apache.org Delivered-To: mailing list notifications@accumulo.apache.org Received: (qmail 22137 invoked by uid 99); 2 Apr 2015 02:16:54 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Apr 2015 02:16:54 +0000 Date: Thu, 2 Apr 2015 02:16:54 +0000 (UTC) From: "ASF GitHub Bot (JIRA)" To: notifications@accumulo.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (ACCUMULO-3602) BatchScanner optimization for AccumuloInputFormat MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/ACCUMULO-3602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14391988#comment-14391988 ] ASF GitHub Bot commented on ACCUMULO-3602: ------------------------------------------ Github user joshelser commented on a diff in the pull request: https://github.com/apache/accumulo/pull/25#discussion_r27628588 --- Diff: core/src/main/java/org/apache/accumulo/core/client/mapred/AbstractInputFormat.java --- @@ -458,53 +512,27 @@ public void initialize(InputSplit inSplit, JobConf job) throws IOException { columns = tableConfig.getFetchedColumns(); } - try { - log.debug("Creating connector with user: " + principal); - log.debug("Creating scanner for table: " + table); - log.debug("Authorizations are: " + authorizations); - if (isOffline) { - scanner = new OfflineScanner(instance, new Credentials(principal, token), split.getTableId(), authorizations); - } else if (instance instanceof MockInstance) { - scanner = instance.getConnector(principal, token).createScanner(split.getTableName(), authorizations); - } else { - ClientConfiguration clientConf = getClientConfiguration(job); - ClientContext context = new ClientContext(instance, new Credentials(principal, token), clientConf); - scanner = new ScannerImpl(context, split.getTableId(), authorizations); - } - if (isIsolated) { - log.info("Creating isolated scanner"); - scanner = new IsolatedScanner(scanner); - } - if (usesLocalIterators) { - log.info("Using local iterators"); - scanner = new ClientSideIteratorScanner(scanner); - } - setupIterators(job, scanner, split.getTableName(), split); - } catch (Exception e) { - throw new IOException(e); - } - // setup a scanner within the bounds of this split - for (Pair c : columns) { + for (Pair c : columns) { --- End diff -- Extra unnecessary space. > BatchScanner optimization for AccumuloInputFormat > ------------------------------------------------- > > Key: ACCUMULO-3602 > URL: https://issues.apache.org/jira/browse/ACCUMULO-3602 > Project: Accumulo > Issue Type: Improvement > Components: client > Affects Versions: 1.6.1, 1.6.2 > Reporter: Eugene Cheipesh > Assignee: Eugene Cheipesh > Labels: performance > Fix For: 1.7.0 > > > Currently {{AccumuloInputFormat}} produces a split for reach {{Range}} specified in the configuration. Some table indexing schemes, for instance z-order geospacial index, produce large number of small ranges resulting in large number of splits. This is specifically a concern when using {{AccumuloInputFormat}} as a source for Spark RDD where each Split is mapped to an RDD partition. > Large number of small RDD partitions leads to poor parallism on read and high overhead on processing. A desirable alternative is to group ranges by tablet into a single split and use {{BatchScanner}} to produce the records. Grouping by tablets is useful because it represents Accumulos attempt to distributed stored records and can be influance by the user through table splits. > The grouping functionality already exists in the internal {{TabletLocator}} class. > Current proposal is to modify {{AbstractInputFormat}} such that it generates either {{RangeInputSplit}} or {{MultiRangeInputSplit}} based on a new setting in {{InputConfigurator}}. {{AccumuloInputFormat}} would then be able to inspect the type of the split and instantiate an appropriate reader. > The functinality of {{TabletLocator}} should be exposed as a public API in 1.7 as it is useful for optimizations. -- This message was sent by Atlassian JIRA (v6.3.4#6332)