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 8A0C510A9C for ; Tue, 10 Dec 2013 05:10:24 +0000 (UTC) Received: (qmail 15749 invoked by uid 500); 10 Dec 2013 05:10:21 -0000 Delivered-To: apmail-hbase-dev-archive@hbase.apache.org Received: (qmail 15055 invoked by uid 500); 10 Dec 2013 05:10:12 -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 14989 invoked by uid 99); 10 Dec 2013 05:10:08 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 Dec 2013 05:10:08 +0000 Date: Tue, 10 Dec 2013 05:10:08 +0000 (UTC) From: "Lars Hofhansl (JIRA)" To: dev@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Created] (HBASE-10117) Avoid synchronization in HRegionScannerImpl.isFilterDone MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 Lars Hofhansl created HBASE-10117: ------------------------------------- Summary: Avoid synchronization in HRegionScannerImpl.isFilterDone Key: HBASE-10117 URL: https://issues.apache.org/jira/browse/HBASE-10117 Project: HBase Issue Type: Bug Components: Performance Reporter: Lars Hofhansl Fix For: 0.94.15, 0.96.2, 0.98.1 A while ago I introduced HRegoinScannerImpl.nextRaw() to allow coprocessors and scanners with caching > 1 to avoid repeated synchronization during the scanning (which puts up memory fences, which in turns slows things down on multi core machines). Looking at the code again I see that isFilterDone() is called from nextRaw() and isFilterDone() is synchronized. isFilterDone() is only called from two places. The other place is rare in RegionServer.next() when we're bypassing at the request of a coprocessor. We can add synchronization there. -- This message was sent by Atlassian JIRA (v6.1.4#6159)