Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eeSGH-0002MU-6R for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jan 2018 21:07:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eeSGG-0000Ff-9k for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jan 2018 21:07:12 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1eeSGF-0000FU-Vc for pgsql-hackers@lists.postgresql.org; Wed, 24 Jan 2018 21:07:12 +0000 Received: from out3-smtp.messagingengine.com ([66.111.4.27]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1eeSGD-0005qF-KM for pgsql-hackers@postgresql.org; Wed, 24 Jan 2018 21:07:10 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id A008322448; Wed, 24 Jan 2018 16:07:08 -0500 (EST) Received: from frontend2 ([10.202.2.161]) by compute5.internal (MEProxy); Wed, 24 Jan 2018 16:07:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=GYmiCgkKhfFfgyjQ/r7kbjlqN59Pb w8IZmoJFRYjzS8=; b=B0Ns8z7ZCWfR/ASSUo++j5BIrH0VQ9neV9mhUpejfD6r8 qvRYDcqxh/nWlL4ALGczXc43YaZmjoBhWDBHISto4HjG1ypxEMQzxjNMgX0mknFX yvka/fq8ktnz0vIVQXlu5Cu/HDiocHvBDW9Mfo2LpZKJqieWYDup0+rSw4IJJzQa yEbwrUKduUljiLW8lxzexBZYPvgnoMOFlixT5Pmk180VwcKvH08ehlqS9+WupAW+ OdHenvYA4JdbZ6IvBu2HXI6DPuWE1WMv8VjPxVYpLsNzy0Zp2zexXMi8oVCDeLPJ 9atKl7a08LFNhYFLJZBtfmu97KJPQcM/lerEO/Atg== X-ME-Sender: Received: from intern.anarazel.de (unknown [136.24.76.189]) by mail.messagingengine.com (Postfix) with ESMTPA id 55C16244C7; Wed, 24 Jan 2018 16:07:08 -0500 (EST) Date: Wed, 24 Jan 2018 13:07:07 -0800 From: Andres Freund To: Tom Lane Cc: Alvaro Herrera , Robert Haas , Thomas Munro , "pgsql-hackers@postgresql.org" Subject: Re: pgsql: Add parallel-aware hash joins. Message-ID: <20180124210707.k3sju7bv4xxeoyik@alap3.anarazel.de> References: <20180124182018.jx2h4wp6twqo7xix@alap3.anarazel.de> <20180124201826.g6vhuewpnycpt3ta@alvherre.pgsql> <20180124204359.ognamsfdqbrfbazd@alap3.anarazel.de> <19265.1516827496@sss.pgh.pa.us> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <19265.1516827496@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk Hi, On 2018-01-24 15:58:16 -0500, Tom Lane wrote: > Yeah. We already have topo sort code in pg_dump, maybe we could push that > into someplace like src/common or src/fe_utils? Although pg_dump hasn't > got any need for edge weights, so maybe sharing code isn't worth it. I suspect it may be more work to share than worth it, but either way, it shouldn't be too hard. Hm, isn't dbObjectTypePriority kinda an edge weight? Seems like we properly could implement it as that. > We could flush the existing schedule files and use a simple format like > testname: list of earlier tests it depends on > (I guess there would be more properties than just the dependencies, > but still not hard to parse.) Yea, I think there'd need to be a few more. There's some tests that use multiple connections, and I suspect it'll be useful to have "implicit" ordering dependencies for a few test, like a "barrier". Otherwise e.g. the tablespace test will be annoying to order. > > If we keep the timings from an earlier > > run somwhere, we can use the timing of runs as edge weights, making the > > schedule better. > > I think we could just use constant values hand-coded in the schedule file. > It might occasionally be worth updating them, but realistically it's not > going to matter that they be very accurate. Probably weights like 1, 2, > and 3 would be plenty ;-) The reason I like the idea of using prior tests as scheduling input is that the slowness actually depends a lot on the type of machine its run on, and more importantly on things like valgrind, CCA, fsync=on/off, jit=on/off (far most expensive tests is e.g. the recursion test in errors.sql :)). Greetings, Andres Freund