Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1ggupp-0008CE-41 for pgsql-hackers@arkaria.postgresql.org; Tue, 08 Jan 2019 17:06:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1ggupn-0007ad-ST for pgsql-hackers@arkaria.postgresql.org; Tue, 08 Jan 2019 17:06:35 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1ggupn-0007aV-DO for pgsql-hackers@lists.postgresql.org; Tue, 08 Jan 2019 17:06:35 +0000 Received: from mail-yw1-xc41.google.com ([2607:f8b0:4864:20::c41]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1ggupj-00077p-NI for pgsql-hackers@postgresql.org; Tue, 08 Jan 2019 17:06:34 +0000 Received: by mail-yw1-xc41.google.com with SMTP id n21so1808459ywd.10 for ; Tue, 08 Jan 2019 09:06:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=2ndquadrant-com.20150623.gappssmtp.com; s=20150623; h=from:subject:to:cc:references:openpgp:autocrypt:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=seTD3KSIdqG3FSJaKceyqQ4ayREz71q2rJCi5wBqaDY=; b=korfkz9vK+qlEpc/wKtgdHAfUVmWJLGLVyjXj2bXBeVjpX43ZWyM/IGVW746w5+2PT HZ8MVFfCK8AegyD29I05OX1nyWhB8eMMNpcxzCbn09dlKmUQzVLZqqaeAnR+QnfBiDCh mYUz36WvXz4HgqU9gEcoY+J9Og4uvM+h0T46o258ThQoMvlFVbwhLYmEP1s88NFa2jrb U+uLnJQR+iAoNX6Knd2Ru1ktPXHQGftrsn5yhDmWPEqRq4YTpX5Sc5NnltrLjlbho5fN Q25v8ObxM8jABha1aQQ+/NcEXVCj/acOAZGEzGSQ6Smjyu2Ldh8eRQ94IDIlzpB1z7ig IH9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:cc:references:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-transfer-encoding:content-language; bh=seTD3KSIdqG3FSJaKceyqQ4ayREz71q2rJCi5wBqaDY=; b=dMog4rd9vzlqZzCI0YpLp2xsMGXcV5mtUIO/WzvzTp50uTfLxbCkaWGpHk1Vnvgvoh kVyBBHwgnqoTn0PPzRe1uSVay/KIusA5vy1yWfN+53jkYelJDgUQtk8gkTn2kqN1fb2n wmZIfrZGBrDCyWqyqcCEg1PF+zhqxD1X8rxSDCREdJAEStoaYf47J78vqdfyP26OJ3hU +AOvZSUQyCvIN215sCUjVkmcAm4PFifRNKixtF7a7EILsNJbPYeT6aRyYyo+ZH8d0g/a 9wEF9NDd8td3+YL8FbiF7fL+gDrTDD2GXgSmSHHqPo+tEP6mzTxNGXk1iNT7acx4dQtK BIYQ== X-Gm-Message-State: AJcUuke5/P7ufEXEbU+I1H54Pw+17XI4OrdZYv0OluQEIZuKVg9vLlsc 2oYT5gmy/q8+HA/vKTf96FtlAjh//EPeg8kZbVHHEl1a0WJnFvRs/G1v0q+drQ1NAvsR4w8Cd4w 2cEiAauR3GydU9fNt3zbcaFL97qFYrmqJgFuzBvEPtFCKid35qiCW9hxvo9F+koHSMzAK4hKKU1 i68bS6+4l31odJ X-Google-Smtp-Source: ALg8bN4RtKwhzuFki6vP9PGapoBji/40yXVGZKpwKXN2YMSWZMsMsqjGc5btXIYv8LPAmcFrQzofDA== X-Received: by 2002:a0d:c484:: with SMTP id g126mr2417730ywd.151.1546967190458; Tue, 08 Jan 2019 09:06:30 -0800 (PST) Received: from [192.168.10.146] ([98.122.175.38]) by smtp.gmail.com with ESMTPSA id l74sm28093205ywl.99.2019.01.08.09.06.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Jan 2019 09:06:29 -0800 (PST) From: Andrew Dunstan X-Google-Original-From: Andrew Dunstan Subject: Re: reducing the footprint of ScanKeyword (was Re: Large writable variables) To: Andres Freund , Tom Lane Cc: Joerg Sonnenberger , David Rowley , John Naylor , PostgreSQL-development References: <20190103163340.GA15803@britannica.bec.de> <20190106145317.GA17679@britannica.bec.de> <23854.1546802945@sss.pgh.pa.us> <20190106201157.GA546@britannica.bec.de> <28027.1546812539@sss.pgh.pa.us> <11173.1546895464@sss.pgh.pa.us> <20190107221204.lwm7yd5yyd7cwqjt@alap3.anarazel.de> <10068.1546907871@sss.pgh.pa.us> <20190108005258.npwbwg6x5wp3t55s@alap3.anarazel.de> Openpgp: preference=signencrypt Autocrypt: addr=andrew.dunstan@2ndQuadrant.com; prefer-encrypt=mutual; keydata= xsBNBE7KWFkBCAClridxur2AIc7eW2AR7izbfp3EnNefie2HbLF0izW5Ik5UjX2HBXBx4syI gY6b0ugohXrr274+baoAlvSbq6cAoQuEVrk5IZFzt20b1Xkx65FwGSEj526yiKLocqkJceSq Xr9xcA5SGY+FZv441chh5SU92v4q6z+6LPpoHOh97ptAVXZYNTtU0LevyvD5lja0TzbvJm6C eFXitJfnm1pLEr0DGJCR/iUOl/N62Kh4855zZC7NHIjQHPOvV5Stz/l5ilDhvGVk+xkXFPys SjZoUr1rXhYLpiyi5sR0X9FHXT0KnGuz1F5ERO7ZTLSSQ6fJwPj6gOk9K+vvoKvoeql5ABEB AAHNL0FuZHJldyBEdW5zdGFuIDxhbmRyZXcuZHVuc3RhbkAybmRRdWFkcmFudC5jb20+wsCY BBMBAgBCAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAUJDyV6hBYhBOQ+WEYd/Hy/RGkV pZn6f8tZ/DuBBQJcH/EVAhkBAAoJEJn6f8tZ/DuB7BEH/iDWZEbVft2m2MT6SPjARzTupt/l xLLZ/Cl6n2US2hov5+fBbnR5xvECk/YCOfG9ICvKNlpFjceqNLRKStd8cmndnI+kDw91uNM2 hpL4aJMeW65XCHvqXlOLSwv5chBpXz9NG7FMaJ+q+59sWEWjcTNmjXgkEHn53y+1pc7nSLDe cr5ZI1aB3nGXRm1SoDY5PYZkUKMykW+YBZwgcs/Q5tRaE+siN7DKbz8E628+PerwAkmHPVXN MdJFD6gs4S0gDFA8IxcyIwZU2v4By+brzcJ9Se3FK5BYxBDHtaYZxgSrJAvOUOrLIZPQTQfL TtnVs3C3JTfrxCH1ceHtnA6dRuTOwE0ETspYWQEIANGc4zQULOxhbqO2dyD51YhqCNRmm9oK Waqf+wmW4tpDe/VVcxAnNizd4LWCHfzpb5cHAtGkOPePMfzWVf6nvdF7d3eglbtf59+zG7O7 llV0xSSoFiieQBsrGvqDInXYX/4mRRXMtyhM353/tixC9RWLs1oofyYmCPPXXY7h9R7en3B8 BoVrRFcdzlIY/NFNhFGW/9dkEiGjgna2Rk6e15kln4ZvFBWUg23p93w/pqXcxY6+k/8TEk+C 4R+M6w7o2PLGOjdZ+kPiUcw5H85zf/yZJwQXzisXaNduwWB6Vads9YC9dj6kPR1c4VGRqAaY L++LAEOqrlvm2TvqQqZRtnEAEQEAAcLAZQQYAQIADwIbDAUCXA6fpAUJDyV6xAAKCRCZ+n/L Wfw7geU4B/9vFFsVmWxerDWgNjyiK80zIPmlw/iwdUlU6FIu0JWLMg4093kvxBs7RMZV9hBq n3ekBvD4IvFsVLJrw9qzSI2FH3UeYy5WXpEs01Ppia60NOlvRDqXbryzuvfe+iYo6bVP3Ikr TPTNYL/BePUTD2DPvSI82SbGTyzuA7SJv6NRqqQDMIy1fU6KyQFLmQJp/QJyhKWzm9jWh8ee w8jVaoMY0Kbq5N7RqisEx1Lu/Iw646UphdYzQNymf+kbiU5Kf4I6DhzV8w9sie1Bo1juNj3I c5/fFJsmxljbnaDbXPcnFsur1Oo9mIHFakgWgOBMuxoWfjONiLjjLh/9+ZIqSSLX Message-ID: <9d044a37-5e07-7ca1-683d-eb872fa4472d@2ndQuadrant.com> Date: Tue, 8 Jan 2019 12:06:27 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0 MIME-Version: 1.0 In-Reply-To: <20190108005258.npwbwg6x5wp3t55s@alap3.anarazel.de> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Language: en-MW List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk On 1/7/19 7:52 PM, Andres Freund wrote: > Hi, > > On 2019-01-07 19:37:51 -0500, Tom Lane wrote: >> Andres Freund writes: >>> Hm, shouldn't we extract the perfect hash generation into a perl module >>> or such? It seems that there's plenty other possible uses for it. >> Such as? > Builtin functions for one, which we'd swatted down last time round due > to gperfs defficiencies. But I think there's plenty more potential, > e.g. it'd make sense from a performance POV to use a perfect hash > function for locks on builtin objects (the hashtable for lookups therein > shows up prominently in a fair number of profiles, and they are a large > percentage of the acquistions). I'm certain there's plenty more, I've > not though too much about it. > Yeah, this is pretty neat, >> But in any case, that sounds like a task for someone with >> more sense of Perl style than I have. > John, any chance you could help out with that... :) > If he doesn't I will. cheers andrew -- Andrew Dunstan https://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services