Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cVR8j-0004ro-E1 for pgsql-hackers@arkaria.postgresql.org; Sun, 22 Jan 2017 23:01:37 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1cVR8i-0007BS-9z for pgsql-hackers@arkaria.postgresql.org; Sun, 22 Jan 2017 23:01:36 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1cVR7H-0005YP-RW for pgsql-hackers@postgresql.org; Sun, 22 Jan 2017 23:00:08 +0000 Received: from mail-co1nam03on0047.outbound.protection.outlook.com ([104.47.40.47] helo=NAM03-CO1-obe.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1cVR78-0000dT-9W for pgsql-hackers@postgresql.org; Sun, 22 Jan 2017 23:00:06 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=BlueTreble.onmicrosoft.com; s=selector1-bluetreble-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=UqFY2fK1MnY8MkkiY0ek46hZJEQGsbTkruUhdz2bkio=; b=A866F1KXSJPrmvUEN5LOrDcWiF7XFnWecOuohL+iiDiyQyTpZ4aVlITY1k+WIy+dGL0N4Bn1ebV2OrhzrejMo/oBRzJpAks9Mr6lHQWiL5eNowX63Ox0doHTDzAbm5CsZgAUklFU4sm9qIv1WTnvaqXRdfEv8Z/Qz1EAFGBSzew= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jim.Nasby@bluetreble.com; Received: from android-fefced0453d5c383.attlocal.net (108.74.145.254) by MWHPR11MB1646.namprd11.prod.outlook.com (10.172.55.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.860.13; Sun, 22 Jan 2017 22:59:52 +0000 Subject: Re: Protect syscache from bloating with negative cache entries To: Tom Lane References: <23492.1482264621@sss.pgh.pa.us> <20161221.102109.51106943.horiguchi.kyotaro@lab.ntt.co.jp> <20161226.173147.73783918.horiguchi.kyotaro@lab.ntt.co.jp> <19334.1485053684@sss.pgh.pa.us> <276bcca0-9bfd-e60f-243d-baf081b41946@BlueTreble.com> CC: Kyotaro HORIGUCHI , , , From: Jim Nasby Message-ID: <683113d7-c7a7-1a0f-da7c-b197b08a6440@BlueTreble.com> Date: Sun, 22 Jan 2017 16:51:53 -0600 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: <276bcca0-9bfd-e60f-243d-baf081b41946@BlueTreble.com> Content-Type: multipart/mixed; boundary="------------592939E38622641A17C2DB2E" X-Originating-IP: [108.74.145.254] X-ClientProxiedBy: BY1PR19CA0029.namprd19.prod.outlook.com (10.162.139.167) To MWHPR11MB1646.namprd11.prod.outlook.com (10.172.55.11) X-MS-Office365-Filtering-Correlation-Id: 7dc86a05-bb83-4b1d-4b8e-08d4431a611d X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:MWHPR11MB1646; X-Microsoft-Exchange-Diagnostics: 1;MWHPR11MB1646;3:qG6DaOU1GIm0XD1VkuEMqubTHMw8jVQrXJB62kxUS2zPk4CiIJ9AZCOZmW2+gOHDUHGhmiASwT2S67+CH1toYOe3nJBirLlcQtPZQx6tzBB5JkdIyn9S7/StqOP+ltvGHenrsyrJpSuFYRcFHym+cTl649BU7792O0dvKJ7EuTVEciHLheb589NTaPdEGQ4YJjXC88lcsvPZiwv2YJ92SXJhD9Hl0xCalHdTQRrdgCjzrf9rR1etibCFQAuns5bP2jShUc9CH0XPajTskB4zRw==;25:hep3KjjeckV6ePoePaW1U97PWoHIrAx7v+2mNNxugxYbebtvk8n96fV0ZN7beFsg5ldfPb24k648+V2L+ogC4u46/3iXXwJgPMjK6NCWk/ou0vY/EHNDP820ieYJZS1GGqquVy7Zyk9qe3NSZ/NTJyip6WOcWn8ANPrIhWTZdtkwfvVtBtFdTIhBC6k0E5AcjkIsYG5Q31IXt65LMH7VUuMzqGj1lizw2zTUkzW5g0MKa+2bQcQ0fiBqRsRtTJmx5Vgrhh+NZGS5qPXo07ocobZSDWamtUwFiM+oFdtb3JPzAZS7FmdZ/DD6Es8zAV0PwRjNdy5oCjxtLl9nP+AZC3qLGO+1kVLOB7KMvTcSkKZ6UyOsc2Xm+gEwIbG++v/aGy6zYGVtN/nXUVoAPIBlB2+Uql2R6ZLcuY75+iuGnej3A9iOPPB1kCBWstsFtZyL9AY0YI3dWN1cPOznn7ohaFU4U3v4cMC6owGeUnJnjYOstw1j+lqctGfalibcLD/Z X-Microsoft-Exchange-Diagnostics: 1;MWHPR11MB1646;31:njr1f1n2r63E5YuXezYiMM7H/7w7vd2SZ0xXStGXflra/o0ezWz4iCg/btajYJqqujRRUKz+Bezm1ji0CkkQZkgRslsDE+y04FDSowtBQZgmbGbBkytx+WZGuiVlQk45P0S9EKNWr/usJfi6CEZNQAhxhEB+E2cZaNyKVXm1m6CNvZGQNI4WY7gNKXSxTIheqTzYvGdiELHXGjs5OwVX3ftHhWUuzENlTkhUA705QsMqRtAL3iUUsv5umWwQfEfuRmsfBFfmRcArrqnd/c4p9hY1eiGvrMaqPlWxJVANA3v96798AEz8g71OiclbJ33iSoJwR6fNHg2QqAJLdcm6jQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(102415395)(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123560025)(20161123562025)(20161123555025)(20161123564025)(2016111802025)(6072148)(6043046);SRVR:MWHPR11MB1646;BCL:0;PCL:0;RULEID:;SRVR:MWHPR11MB1646; X-Microsoft-Exchange-Diagnostics: 1;MWHPR11MB1646;4:wbdjAewIflx4Pa4eR9SrlUqnoES8aNMTcRTvbfITTMrMKbYc3C/9dEi6dPKZqrWrEBz9Cj2ZVQR9rpBj6QOz46aba8P1s7o5kUs6KeJXfOfQJ4KjtNG+wW3n2605EzGCIT4Wr0cCTuLJ4uXYpFKRWqxgrAl2L4bViqawsmAp8Z2EJI9wJpTLnhCNJcREdRLClpi/9H8MkEkj3h0nqSbfrRus5F88ia0ReJMsIBYbx3BcLoZswJDDB1tm28XzBEvaMsQckxxbWYy85lgnC2YrRUueWz750/zJAkPZxhdKoJ79IeqrMJ0DCQg1lhlQRGuEbzFXf2tYxZ4kk3OiocJtzEKKIQbC7c3rSdfc4uk3e8Ka0CvULbFA6TDeqqJUWfvfbSn5HIcRzaKBeUSX49BX+9z58mG4eRk07witYdASwQmSk+RxVWVljJWYzcSBp1tq2Nc7o3iS7CMSH1FkqQQeVid4xmwIXLPu/000DcyR1YgSe38Kb5mHTZMmK+54CIbQaLDjuTOiwF3zyZ/A4wCpMHFYpnku1lFG8NYM9b3X0/EUlTRkRWZGYKyBy/w1ulgPr74qdYL5y9ZJ6kv8JGzOWrIY/nz1aeFWN3ydFeveB7AcNAOgmJyehVUzUXPBGjqcdfUjqUo2wfFZTp6+iYuoIw== X-Forefront-PRVS: 01952C6E96 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(39830400002)(39410400002)(24454002)(189002)(377454003)(199003)(43234003)(54906002)(8676002)(31686004)(36756003)(53936002)(4001350100001)(65826007)(97736004)(4610100001)(101416001)(69596002)(512944002)(31696002)(5660300001)(81156014)(66066001)(65956001)(65806001)(6916009)(54356999)(68736007)(50986999)(81166006)(76176999)(86362001)(16601075003)(189998001)(6306002)(7736002)(305945005)(2950100002)(512874002)(33646002)(110136003)(2476003)(6512007)(5890100001)(568964002)(6486002)(92566002)(93886004)(105586002)(106356001)(3846002)(4326007)(6116002)(53416004)(83506001)(270700001)(38730400001)(229853002)(39060400001)(84326002)(2906002)(25786008)(64126003)(42186005)(6506006)(85282002);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR11MB1646;H:android-fefced0453d5c383.attlocal.net;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; Received-SPF: None (protection.outlook.com: bluetreble.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;MWHPR11MB1646;23:JeBIS28hzAeLl4xK9/9mjZwFmvMtBncwYcGr+YbBe?= =?us-ascii?Q?Z6m4T44bK/aVKQbEXYY0CppHyPq7TKXQP2/eg9HK1GzQuGg8RuZu1RTdd0SF?= =?us-ascii?Q?FqKBAFVGS6H6bPTWmwcn3L6pycMayE9wacgMRf+BzpuysnbQye2q9PNiGNbO?= =?us-ascii?Q?ud4I0vwJqOpu+LtMT+2C87xCfE7IqOc3hFMvHMx2WQIJ1jnZzefM+DGsIuOt?= =?us-ascii?Q?WGlCZmZVCtlvrUDPRIlfQU3EpEJdlq6G4J2cCmKCIqvaSPHdu7158rY7+ygi?= =?us-ascii?Q?U/wVrEt6uGkrioXa9U1TsimmS6mnwI5y7HNDZEPaTYvXFrh+/ubTsogEcXzO?= =?us-ascii?Q?6FGRZEFLySbTzlXnJhmi/+Hs2YgJim8DWM5D4gMUHc4GR2zCrbwCynUvcFcg?= =?us-ascii?Q?k7YkJ1Hf0WBKl91iKd+55m0PkegUmL4OO1zn0nbIEpB3vJMVTpdLKhPINF0Y?= =?us-ascii?Q?4bxBm3IJUE2S5SOGVZ803+30uOWE+pmxF74dBQRA5F3p6Hp2rnGaGQhNjrgD?= =?us-ascii?Q?5MwF6J74r7IyxDbub94hmtHKizlt59tB0ivwu/Xmsz7sZJ8pDiKJLVr9oicH?= =?us-ascii?Q?NQCcBuTc78OStCurF/BY9fuQfE9TWaHf/hgp5x95QUynwzKyvzRhC3iR5TaX?= =?us-ascii?Q?4JAam/GoEFrZs39R+CImdiHIyqBkV55WgV4HSn0Yy5tMvxra7MHyFJxioaUi?= =?us-ascii?Q?GckpF0YFXR+U11xpwAQVJlLPKcVKwJi9jbflFSTRszEbU2Eu5a/1uUgQIuWN?= =?us-ascii?Q?arAXh+ygVJDsyVdqufamaiVOqRWGfKXRxMqkDOAkuBgR7OR7Xnm8GU9qkHcT?= =?us-ascii?Q?ruO3ODgVuSqJJFUOHT4Di7MsAsu7OHsYoWFpBsnJHlmsVfbdxzeWrEkUtFkO?= =?us-ascii?Q?LnhsTx3QR/FE0aEpRfw164+CtgEojbF8xEFH3QKRTuVmjJAC0W5ASMVVHi+x?= =?us-ascii?Q?QyshXLKH5ezNucIodrAYv/ALWeKStpXwxOFZwOuNZPDFPjdYMmXspwgMBfV1?= =?us-ascii?Q?kNcFeBKwMpT0eU8NauKlT8cUBUaJ+MOs123HaUPnWjtud1yV8FYxZKw4K7fs?= =?us-ascii?Q?rloOqixqIiJHbkxJRGxsNPqp9DLc19EHQycGK/d5eoDHWc7Xhtf7xEkREaBJ?= =?us-ascii?Q?6g6eCZ1GjmLOy6iFKM/dnSpHjbs0x/GTW0PlN6uQZpuW1ona7/yMJvMz0BtF?= =?us-ascii?Q?U3hWjvL+c5/S/dn7czezQTTfa6/CL9IlRAX780sq6o7kgt9IrWmPlTTg0cVc?= =?us-ascii?Q?CqqOHbgy5o9p3XMACkceyCHoopALnlpE6+9jyte8D19E0osJZR4/a5bIUU/E?= =?us-ascii?Q?pFPXN6jWeTBoKHWoTqrUkNomkLHJTrKPjKAm4b1MkeYKG9VAgd1kbZzH24QI?= =?us-ascii?Q?nU+Gmf3iahAVik5j7UIzUE4fnnyeZCrnUDg6jDJkNz1QPpQGvSSFbug62a2a?= =?us-ascii?Q?M4N382RGXQf5rR2T37e7gP90IdEGnMzXdQfz6pbDDlFoBe75xfI+sEnhpq+B?= =?us-ascii?Q?6Rls5wpel/OU/93WZOI23jotNCrq2OYzOZ6vzAGTRTFJyFGsD8q6yQu9AIUv?= =?us-ascii?Q?9uuj3v5y/CEDW8cWLUet3q56uWGC9WyWit+ZOKybhGw7n8Qw/GJnHwQ9VYar?= =?us-ascii?Q?dbZiaQQy6EpJ29sL5d2/PKrGU9ZoXl9A+Cj+i0ox9NiB8jDpsvfDBo64mjIk?= =?us-ascii?Q?Tbz6Gols31DY2EgcfGzoI9PsA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR11MB1646;6:NS4o42qZce4jX5TpHOM9rnS5Q7yPk9VExPiTfh8009WEqso1Oq8ch2uHb/IzV9TJ0yb/QuWNNwyQ2slgomWgyHx4qgD0WCqXuYz2Wztnm/F5BwGlQ2QFpJmUyBeZJi/oX6LVE41p+E6E9F73D+r6WaHt3F8OKjwRGtz8TG8tKwvQ4KPI8UAQ4Bv0oDqv/wj0wFsl/kEj7B5bDmbV+0hMeiAlIEpNaDPxI/5mm4bXyPnVzCEtFIhWtBYAMKm6Re4Tmo7PkRXXQmhTdCku1NEg035oOfDDakArNy1GTFcnlpm+0V/6P+FWsd9+qsGP/sYhSmk0Kby7Cmg/B6P+kI5BXBbP1mGi5AdsSVXL/cy1OWTNIOTf9FmUH75LhOGhK+JslHMEg3ff+r/Xp28DmbqO4spmG1T2nZvcT31LFd3gW7yof1oLFje6Qer+62ImyvxM;5:4VYPDSAd8hmYyIndf8fk9962/kTal+convQ3R+kTL2sNtO8Q7J266sBwPITw0LTThMX5vlHhDVfI0xWoYmEIZm52Qvv4v1EfEqpY0YXd+JblEuLWxF5C9bsBLbouwc+xiAcVub7hWj5a3I1/2H5QWA==;24:/i3/v8vRtuFfCuCp9sv8g30G5VeGXOUVjCtwASk2lhtKSvxyP2o/T+WrMsPcKp9UzNcQXNVPZaqHLAMI2QSGToCsPFUBBvUy8nykYdoyS3I= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR11MB1646;7:hRn1ejR2F2s/LDksmgxs9ekfC5bLRHulW5QCywmFNHSZruOkTuIYGL9cqDFH51ClXrE7m3gC7CY+gFXb0y3t2e+jIUArPeMCMDxoLC2DHnJ/a6gYGpuQNE7t8RCap0Qe6P292+ctaBgMtzcrTSsyacyXRb9Dmo6HmXjT1/bHmkhpyhFU31YToXrYpSI1iK2833mWyesC2uxgGOFRHVZa9C9sT2qcF8lm/3qnlIvnDQCZ4CC0da7XdyLQqTZb5UZL8yQKOhQt1kGR7qWfQVR47VTNetxSH/+i5FqeblRqBYNzeDzhGS1CvU7a7+K1e3nFQ0foeHjmK+p9WSwNS88TVE/Q8ga0udm9OK5IEzJu9UZaXhJn9j5ivP2EAX+UJ0IaivUNJ3lwLz8kwKuVXreCdfBYkZ+RTzWU4sWa8mHeHjbABpGAeKXSUIITDjvm7BVinzHNE0j3ArJlC4s6NyKLhA== X-OriginatorOrg: bluetreble.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jan 2017 22:59:52.0213 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1646 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 --------------592939E38622641A17C2DB2E Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit On 1/22/17 4:41 PM, Jim Nasby wrote: > On 1/21/17 8:54 PM, Tom Lane wrote: >> Jim Nasby writes: >>> The other (possibly naive) question I have is how useful negative >>> entries really are? Will Postgres regularly incur negative lookups, or >>> will these only happen due to user activity? >> It varies depending on the particular syscache, but in at least some >> of them, negative cache entries are critical for performance. >> See for example RelnameGetRelid(), which basically does a RELNAMENSP >> cache lookup for each schema down the search path until it finds a >> match. > > Ahh, I hadn't considered that. So one idea would be to only track > negative entries on caches where we know they're actually useful. That > might make the performance hit of some of the other ideas more > tolerable. Presumably you're much less likely to pollute the namespace > cache than some of the others. Ok, after reading the code I see I only partly understood what you were saying. In any case, it might still be useful to do some testing with CATCACHE_STATS defined to see if there's caches that don't accumulate a lot of negative entries. Attached is a patch that tries to document some of this. -- 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) --------------592939E38622641A17C2DB2E Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="negative.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="negative.patch" diff --git a/src/include/utils/catcache.h b/src/include/utils/catcache.h index 253c7b53ed..d718d82d80 100644 --- a/src/include/utils/catcache.h +++ b/src/include/utils/catcache.h @@ -101,7 +101,12 @@ typedef struct catctup * * A negative cache entry is an assertion that there is no tuple matching * a particular key. This is just as useful as a normal entry so far as - * avoiding catalog searches is concerned. Management of positive and + * avoiding catalog searches is concerned. In particular, caching negative + * entries is critical for performance of some caches. For example, current + * code will produce a negative RELNAMENSP entry for every un-qualified + * table looking with the default search_path that puts the pg_catalog + * schema first. This effect can be obverved by defining CATCACHE_STATS and + * observing the log at backend exit. Management of positive and * negative entries is identical. */ int refcount; /* number of active references */ --------------592939E38622641A17C2DB2E Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --------------592939E38622641A17C2DB2E--