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 9AB5711946 for ; Tue, 2 Sep 2014 18:16:22 +0000 (UTC) Received: (qmail 44461 invoked by uid 500); 2 Sep 2014 18:16:22 -0000 Delivered-To: apmail-accumulo-notifications-archive@accumulo.apache.org Received: (qmail 44424 invoked by uid 500); 2 Sep 2014 18:16:22 -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 44374 invoked by uid 99); 2 Sep 2014 18:16:22 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 02 Sep 2014 18:16:22 +0000 Date: Tue, 2 Sep 2014 18:16:21 +0000 (UTC) From: "Josh Elser (JIRA)" To: notifications@accumulo.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (ACCUMULO-3079) improve system iterator performance by collapsing call stack 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-3079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14118457#comment-14118457 ] Josh Elser commented on ACCUMULO-3079: -------------------------------------- I just stumbled on trying to figure out exactly what the SynchronizedIterator does (to document it) and noticed that you also made changes here to try to alleviate the extra iterator in the stack. I'm wondering if it makes sense to keep that synchronized filter in the stack during normal cases anyways? Most times, I don't think Iterators really lend themselves well to doing multi-threaded operations anyways. I see in ACCUMULO-533 when you added the SynchronizedIterator, you didn't see any performance impact. I'm wondering if it would make sense to add an option to the client API that allows configuration of the SynchronizedIterator (or the filter as your patch changes it to be). Thoughts? > improve system iterator performance by collapsing call stack > ------------------------------------------------------------ > > Key: ACCUMULO-3079 > URL: https://issues.apache.org/jira/browse/ACCUMULO-3079 > Project: Accumulo > Issue Type: Improvement > Reporter: Adam Fuchs > Assignee: Adam Fuchs > Fix For: 1.6.1, 1.7.0 > > Attachments: iterator_performance_20140822_1.patch, iterator_performance_test_harness.tar.gz > > > System iterators are at the core of the tightest loops in Accumulo, handling every key/value pair that traverses through a scan or a compaction. In many cases, iterators are the current performance bottleneck for Accumulo. Every bit that we can improve performance in the iterators translates into better performance for Accumulo. > There are several strategies that can be applied to the current code base to improve performance, including: > # Inlining calls that are hard for the JVM to inline at runtime > # Moving checks for null outside of tight loops when they are invariants within the loop > # Eliminating "no-op" iterators at iterator tree construction time > # Making frequently used and assigned-once objects final (like iterator sources) -- This message was sent by Atlassian JIRA (v6.3.4#6332)