Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b0Ej3-0004Cz-Tr for pgsql-hackers@arkaria.postgresql.org; Tue, 10 May 2016 20:57:54 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1b0Ej3-0003BY-Be for pgsql-hackers@arkaria.postgresql.org; Tue, 10 May 2016 20:57:53 +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 1b0Eiv-00033n-1b for pgsql-hackers@postgresql.org; Tue, 10 May 2016 20:57:45 +0000 Received: from mail-bl2on0090.outbound.protection.outlook.com ([65.55.169.90] helo=na01-bl2-obe.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1b0Eir-0002AJ-S7 for pgsql-hackers@postgresql.org; Tue, 10 May 2016 20:57:43 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=BlueTreble.onmicrosoft.com; s=selector1-bluetreble-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=D6htV/h9L/ANX/a5faevboZCL1RFzGWV2wIDqNlR49Y=; b=QlfKWqOHO6VilHrYa4G2HsTcJEQJzIqBWoa05cXmZXtDMk567xA3uXtIZ2LZSutio+Yh2CNYnpfREERg48QZ19OPxZidPjA2A8IafqXFMeiVVVd1Vnrz51rRV4pcjDp8V3QdX1IMiF0Zs1G5xIgD1Cps0WAPwGDCjFrzErBJ04M= Authentication-Results: postgresql.org; dkim=none (message not signed) header.d=none;postgresql.org; dmarc=none action=none header.from=BlueTreble.com; Received: from decina.local (70.113.16.71) by SN1PR11MB0686.namprd11.prod.outlook.com (10.163.207.144) with Microsoft SMTP Server (TLS) id 15.1.492.11; Tue, 10 May 2016 20:57:38 +0000 Subject: Re: asynchronous and vectorized execution To: Kouhei Kaigai , David Rowley References: <9A28C8860F777E439AA12E8AEA7694F8011EE07C@BPXM15GP.gisp.nec.co.jp> <9A28C8860F777E439AA12E8AEA7694F8011F0224@BPXM15GP.gisp.nec.co.jp> CC: Robert Haas , "pgsql-hackers@postgresql.org" From: Jim Nasby Message-ID: Date: Tue, 10 May 2016 15:57:32 -0500 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: <9A28C8860F777E439AA12E8AEA7694F8011F0224@BPXM15GP.gisp.nec.co.jp> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [70.113.16.71] X-ClientProxiedBy: SN1PR17CA0033.namprd17.prod.outlook.com (10.169.33.171) To SN1PR11MB0686.namprd11.prod.outlook.com (10.163.207.144) X-MS-Office365-Filtering-Correlation-Id: 2a83c98b-3c06-4638-f9cf-08d37915b863 X-Microsoft-Exchange-Diagnostics: 1;SN1PR11MB0686;2:hNvhArfc58tvTxHDvZtgYbQ+9ONWNAAUi8nWYirVSS7+elkRpf0gkA2JpA9m099yijryVR4A9XSIhBJJX5Vsw9sSHoNfw/0LaU/1ejmpFckt6Ecc4D956p/CGL+DhJiGOQOfprdYW1lBmoowpGCizpa1LWweLVfr56ZBWjlEGNpFXVBYUT/PTncm2ucK28C/;3:ZZowNE4WfK9PNeVQZFlCDnOQRvuHecSfwS9LNs0aj0ixkqtCYzvWDrGlc4TE5UI0+dL8Zd0Wf93PIm23aYXUZ0+hSEWmfzJUCn8fRru9M2Nz/Ftfl+CQfdzQm9G/HS7W X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR11MB0686; X-Microsoft-Exchange-Diagnostics: 1;SN1PR11MB0686;25:ygz5v4PHsWL/nwrimjPdXWIe/rciUybxkw8wpyTCXiUGImL3PftGl6J6ljZcrUhfD3BV9L1ayoMpVHBTmrlDn13xaCw3KdUtT02LzYyqBPEB8mcT6MzALbUObo5NQgziggWMczwRhJkpwnxQ86CObB/e7DaOtQ+ann0B1a1pxCHJfZoTvjM5Y7gHSIY2JsmM7KpvmJMM6MzsOV29MQg4xhsAV1uyy/6ZC3IqGw2k6CFUezFAJ5WTVhxR0ihy8YvIfXtt4PzUFGajpsQmvMT7r7omPOGV0R/5XzZond8q8RK8dTkzXCR1rAAyn70aCPdyBZUHbeTRIYHDRgpYl9N6jOF4ZF0pKVAcVSoplCW7/z3vEFbCjdqVMkb72U78jGMOMHORWnAE0QpwL4ROFMvO5UgSuZwSibZLpmQoj9BQeESc/Y57c5ozuaIFUNOTtWVCtm7h4/NiSLRYnQCpVfLITOuJqbBILxGbdcc/Lin20t6TA/4YZwI9Jrg22dAtVfH9re6rf4+fRXeI5noqmwU2EzYF6R/KsbUNvd41+xBV+Yi4YHvXpRU5jChg4yUV9IFpZtTyt15Gq7/vPUTPsOtHTvdE78GJGW53zUXd8XTf7hOAQ5eK22L7tjuWCVpVTh5SRD4WXuG9Sz1aBcRzXK0oo+dHRnRff3DDOhFsJcI7ZKZonA3NH1/R20CGNnCoKo9f15doJp4ponon3e4fQ3WYHQQRNhfu9vuovpnYptRMKJtbMjTgnqECEmUGW2tD2lVFSUGdGNkbz+fSrdYoQQQg81fmHKIYc7NpuW9P7IxQKePJOqSQ2JjjVLY+16eSMXCWXamctSJLmVQzGTJsfgK0xJoXPigOUxtXGRKUOYQ96E8= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041072)(6043046);SRVR:SN1PR11MB0686;BCL:0;PCL:0;RULEID:;SRVR:SN1PR11MB0686; X-Microsoft-Exchange-Diagnostics: 1;SN1PR11MB0686;4:TKaVri5Fs4jJclxYfH4qbwvDlyYhe48Fhau7hLQTfwcTEKXXNvxBuCOJhP2VTR6qjUkw0MZPi20IxZ2tuWXbo3Hmkf0OaG5yUgfK4DQw9nHOzZghlwszg4JsJIo8bd16l/QKiRTdP+tDEDElQdbSTHodTgdOZCH63wTprIEVVHAPdVGN2teCW32hi28J6HN0bTvt9zMsXboY+0/GdrHvUzJyPIvbESFgz5mX7IH1q2mkAPruabdkgIuFLIA0Y6nwfDJSBY3KIA4fcfEwwzbNUbFHJi0CMNLL82pJ8vHKB4HisGxx1dN+kEI+e5Ka3PXCp21Jmcc80CcR89DYbeG6fUpqxzBdizK3BLzUgJUy87KsmT5PpT+QlS+9uWWdQJL6LcvwahZfWO+ybd1xWE4fvVvIRN036CjDFNp+vaD7EQM= X-Forefront-PRVS: 0938781D02 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(24454002)(377454003)(76176999)(16601075003)(54356999)(50986999)(86362001)(92566002)(33646002)(31686004)(5004730100002)(2950100001)(93886004)(586003)(3846002)(4326007)(6116002)(81166006)(4001350100001)(189998001)(77096005)(15975445007)(5001770100001)(31696002)(42186005)(2906002)(83506001)(66066001)(19580395003)(65956001)(19580405001)(47776003)(36756003)(5008740100001)(230700001)(50466002)(23676002)(65826006)(85282002);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR11MB0686;H:decina.local;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtTTjFQUjExTUIwNjg2OzIzOjllKzMxdks1QnJNMTVnMkR2OWpjQ1A1VG8r?= =?utf-8?B?cmJFSitKTWwxNjAvN1M0Y0lkM3lVNTNiMnpDeWRMZTFObVNuVitFWXlCaXhv?= =?utf-8?B?NklpOW9DeXBlSmtNMEpRbXBCbTVHVytIL3AwV0QzaDJOK3F5cGU2eGJRaHdJ?= =?utf-8?B?bXlXYjRNSWNaVXZPYXFpZ1N0eFBRUTZPUnBOOTYzbmxFd3FtSGdIdDYxQmc4?= =?utf-8?B?NXBnM1BIT3htalRrOW1jQVUycjJKZi84M3hvdlh1UGJtSmRtTzZFb3MreWF6?= =?utf-8?B?UG9DZ1NETi82dVhtWmhTYWZHQjBiSk1uVDI2TjBUWGtjUDlJNEh4R291UWhJ?= =?utf-8?B?N1lBMFlubWFkT1VCVzc3UGN1eE9oZ1Q5TldQMWUvOU1sdnlTL0lJZ09DQm5B?= =?utf-8?B?OVJqVVpQNnNWWENIeTExL0V6dldEZ2xsNUtibmd5dnREenNHbkJMSXZ4R2Vl?= =?utf-8?B?am9GMURrbFk5d3R1SU45RGdmZ2JDQ29mcTF5YXk3djc4VUFkOW51UlpzOXhK?= =?utf-8?B?RmJDaGVNNTBKT2Q0VFRNUXZQZjNXY3B5Qmt0cjg1KzZsQ1JIUHVvcVc3dUtH?= =?utf-8?B?bGQwbFhHSktGbzVYTmNDZk1Lb3VETjUzNXR2M2JEM1JhZWUrcmVSNHN1ZC9M?= =?utf-8?B?Y0VQbGUxTHR2R29QZ0c4SFM4RUZ5ZENaMkFtV2tla1QzVllEUVZiVlhmZVQy?= =?utf-8?B?enZDS2RCbHpjcXRoNk9OeHNVdVY2bU5ONE9lMEpGUE43SkdRM2lZYy9qTVlJ?= =?utf-8?B?SkZ2WTUzaDl1ZUNEK0lxeFo2eDBBbm1MNTdtYXRLUW1XaVozWVVHNThoMzR2?= =?utf-8?B?NGFWd3BoblN1NWdHYnFzMEpIWktwc3ltUndQYlhXUngyVndaYkJlM3loRkVZ?= =?utf-8?B?U2hockFDOVlwajAzQVFya1pBZ3BGdXdZNHpaUDZGdENKV3llNHRMc05WN2ZN?= =?utf-8?B?UVErTmxVSTZvZDdKUVNialdNb1NZVVNlUVlSZ1hWYU10WTVtZDdJbnBJUVdJ?= =?utf-8?B?ZGZmKzYraTZIYVFxTjB5SW1VamJoQ1FCV1NiT2RpY20wNG9MQXdGREdNRTRl?= =?utf-8?B?WWdMMFpnUksvZzhUTVE0UkVpVXJrdzVlMDZFd2dxdHoranlJc2h4ajhGdk1F?= =?utf-8?B?UnB4OHJIcjZNem9ON0JIOFJ4a1IvRXgwVXNuZVY0NzFLeFk2U3ZlT3YrVGxl?= =?utf-8?B?MHhhdlNmNlI4cERoUEpuUUNxYkdMYVpudklDNkZwRTd4Z09oQ21FNXYxdURw?= =?utf-8?B?clJjVDZsYThJNzBib0ErdSszSEU3aUJZZVJhbGFEaW95c25Ka201TnJ3NVI4?= =?utf-8?B?b3BySG13eitUaDQvL2g3QmVJU3V2bDQ1bmpEd3VxNTZ3Ky9IRnVrRnVadCsw?= =?utf-8?B?ZnJsQU84R3dQMDdzbkRTUlNYR3dWMkNhT1Q0NlNVYzVOK01pZXJuYTBNMlUy?= =?utf-8?B?eDU1RlJmQWIydWpWSjRHOExKMGNJZUVMLzBZeDhaLzVQeVBwc0svUjdjRU9R?= =?utf-8?Q?cZyXBN0jP4Y2tMOZZ4RZkJQDk=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR11MB0686;5:A7LoJO0XE6opm/PBosUlg7O2wQOg30PvcAdsV6y8FGrHi8gGrrwv8zAHoMHTcRBXPpvSOR2Xd/4NiInbopwGiindc6qrQTeCmEpkC/DNaN9ZVQZ/Zg+vxVPpKs7uNLSoML99MDL/dH45lFwYwtWf/A==;24:vNqJxGTtuVWEIFB/imgh/u5nZsD6S5ZK7zC/8+Zg9UDGfBSS04eq3h0bthpjeihQw+OtQBcu3Vt7pqNjtCnXb4UVRZHGIvQTBoaxGsXucgI=;7:+80T3z+RiHo8Yltdyjo8iwFRr3rMsERIABJjaePgGF5uvAtxpvtn69v1ak/YixhMzpg4GA9sTAfPZEZbhDTeanpRxm6kk+EX8LnVNGZAZS8yGpQCG3z1XlLRR6v6iK+XxNTO3u0J810NAmC9UiGDJGiT+V3rj7+Ilgnh7CieyB+0zwo9Sa/GG2ona3sn2lSS SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: bluetreble.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 May 2016 20:57:38.1393 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR11MB0686 X-Pg-Spam-Score: -1.9 (-) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org On 5/10/16 12:47 AM, Kouhei Kaigai wrote: >> > On 10 May 2016 at 13:38, Kouhei Kaigai wrote: >>> > > My concern about ExecProcNode is, it is constructed with a large switch >>> > > ... case statement. It involves tons of comparison operation at run-time. >>> > > If we replace this switch ... case by function pointer, probably, it make >>> > > performance improvement. Especially, OLAP workloads that process large >>> > > amount of rows. >> > >> > I imagined that any decent compiler would have built the code to use >> > jump tables for this. I have to say that I've never checked to make >> > sure though. >> > > Ah, indeed, you are right. Please forget above part. Even so, I would think that the simplification in the executor would be worth it. If you need to add a new node there's dozens of places where you might have to mess with these giant case statements. In python (for example), types (equivalent to nodes in this case) have data structures that define function pointers for a core set of operations (such as doing garbage collection, or generating a string representation). That means that to add a new type at the C level you only need to define a C structure that has the expected members, and an initializer function that will properly set everything up when you create a new instance. There's no messing around with the rest of the guts of python. *Even more important, everything you need to know about the type is contained in one place, not spread throughout the code.* -- Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX Experts in Analytics, Data Architecture and PostgreSQL Data in Trouble? Get it in Treble! http://BlueTreble.com 855-TREBLE2 (855-873-2532) mobile: 512-569-9461 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers