Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 5B699200B83 for ; Sat, 17 Sep 2016 20:25:33 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 59EAB160ACD; Sat, 17 Sep 2016 18:25:33 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 9FB85160AB5 for ; Sat, 17 Sep 2016 20:25:32 +0200 (CEST) Received: (qmail 58638 invoked by uid 500); 17 Sep 2016 18:25:31 -0000 Mailing-List: contact reviews-help@impala.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list reviews@impala.incubator.apache.org Received: (qmail 58627 invoked by uid 99); 17 Sep 2016 18:25:31 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 17 Sep 2016 18:25:31 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 1036DC19C9 for ; Sat, 17 Sep 2016 18:25:31 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.362 X-Spam-Level: X-Spam-Status: No, score=0.362 tagged_above=-999 required=6.31 tests=[RDNS_DYNAMIC=0.363, SPF_PASS=-0.001] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id s0dhWUVwWirN for ; Sat, 17 Sep 2016 18:25:28 +0000 (UTC) Received: from ip-10-146-233-104.ec2.internal (ec2-75-101-130-251.compute-1.amazonaws.com [75.101.130.251]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 9AE6F5FAEA for ; Sat, 17 Sep 2016 18:25:28 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by ip-10-146-233-104.ec2.internal (8.14.4/8.14.4) with ESMTP id u8HIPRqT012629; Sat, 17 Sep 2016 18:25:27 GMT Message-Id: <201609171825.u8HIPRqT012629@ip-10-146-233-104.ec2.internal> Date: Sat, 17 Sep 2016 18:25:27 +0000 From: "Michael Ho (Code Review)" To: impala-cr@cloudera.com, reviews@impala.incubator.apache.org CC: Chen Huang , Mostafa Mokhtar , Alex Behm , Tim Armstrong , Dan Hecht Reply-To: kwho@cloudera.com X-Gerrit-MessageType: newpatchset Subject: =?UTF-8?Q?=5BImpala-ASF-CR=5D_IMPALA-4026=3A_Implement_double-buffering_for_BlockingQueue=0A?= X-Gerrit-Change-Id: Ib9f4cf351455efefb0f3bb791cf9bc82d1421d54 X-Gerrit-ChangeURL: X-Gerrit-Commit: 562a6c33ac2f512cd09588fdb931e5cf513b885a In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Content-Disposition: inline User-Agent: Gerrit/2.12.2 archived-at: Sat, 17 Sep 2016 18:25:33 -0000 Michael Ho has uploaded a new patch set (#4). Change subject: IMPALA-4026: Implement double-buffering for BlockingQueue ...................................................................... IMPALA-4026: Implement double-buffering for BlockingQueue With recent changes to improve the parquet scanner's efficency, row batches are produced more quickly, leading to higher contention in the blocking queue shared between scanner threads and the scan node. The contention happens between different producers (i.e. the scanner threads) and also to a lesser extent, between the scanner threads and the scan node. This change addresses the contention between the scanner threads and the scan node by splitting the queue into a 'read_list_' and a 'write_list_'. The consumers will consume from 'read_list_' until it's exhausted while the producers will enqueue into 'write_list_' until it's full. When 'read_list_' is exhausted, the consumer will atomically swap the 'read_list_' with 'write_list_'. This reduces the contention/overhead: 'read_list_' and 'write_list_' are protected by two different locks so consumer only contends for the write lock when 'read_list_' is empty. Change-Id: Ib9f4cf351455efefb0f3bb791cf9bc82d1421d54 --- M be/src/common/compiler-util.h M be/src/exec/hdfs-scan-node.cc M be/src/exec/hdfs-scan-node.h M be/src/util/blocking-queue.h A be/src/util/condition-variable.h 5 files changed, 184 insertions(+), 61 deletions(-) git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/50/4350/4 -- To view, visit http://gerrit.cloudera.org:8080/4350 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib9f4cf351455efefb0f3bb791cf9bc82d1421d54 Gerrit-PatchSet: 4 Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-Owner: Michael Ho Gerrit-Reviewer: Alex Behm Gerrit-Reviewer: Chen Huang Gerrit-Reviewer: Dan Hecht Gerrit-Reviewer: Michael Ho Gerrit-Reviewer: Mostafa Mokhtar Gerrit-Reviewer: Tim Armstrong