Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vrXBS-009Kwm-1z for pgsql-hackers@arkaria.postgresql.org; Sun, 15 Feb 2026 08:08:50 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vrXBR-000sTg-16 for pgsql-hackers@arkaria.postgresql.org; Sun, 15 Feb 2026 08:08:49 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vrXBQ-000sTY-2y for pgsql-hackers@lists.postgresql.org; Sun, 15 Feb 2026 08:08:49 +0000 Received: from mail-ej1-x629.google.com ([2a00:1450:4864:20::629]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vrXBO-00000000i4a-08yr for pgsql-hackers@lists.postgresql.org; Sun, 15 Feb 2026 08:08:47 +0000 Received: by mail-ej1-x629.google.com with SMTP id a640c23a62f3a-b8f92f3db6fso352670366b.0 for ; Sun, 15 Feb 2026 00:08:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1771142925; cv=none; d=google.com; s=arc-20240605; b=eunDtffhzukwqfVHYzMLRJU8bgn6ekLaOeu9N3HGdlt7xlSnARrOTSXq1Bh2gefcqy PxTcIkLjSnt7aeD7qtig8Gmb8kXo48QtfTcSWbwRvsVc5qyicYA/Bm+L1VZM0kTQ3aJG arAuGJpNm1MiNx+tjnrgobPkxHQ3qmx/CDx4PxWehbES1Qm0Vea50nFbc8aD72YEJ/mQ vbbjui7H8mMRvIUZzqGRASEvFZGdlmRhMIez7cGvsLDeRUWU3Zx8JPs7AHuZinJ4DYGf OzSpt9aTMVMuPBPM60ktf75OG37FFkFSjoGVJ0AbdxfZNjZaGEIkkDwtd1xeijA9dlUv Kn2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=JNmwvk4FNcadsaaLisEc/uL/sSuqlsr8EkDRsy/GEkE=; fh=OuZExDbC1uGxe3s0gSnIZybQvUSPDeWeYuixxwEKpSY=; b=KNd2KlyQPc8d9AToPaNEchlNZr6hVQ+f9hFJ2qG4Tt/JUzJzJS2V4hIbXV3myX0wpd KPOdLCHrejZzYthyBQwmGRP0rdcRvgbwJDYvvyMkgsQw+XNei8mRiQC1c+vY0XjjKSnj 1HMZwtABDIe3QeYAqsVd/ysX6kFhl2OKJNOFhKiV28XzCR5hlBjvjPh6GETr9Mbigwip ABIPuCkqZHy5UiZ2hDGw24OWeOYIswfgqhAqKv5mriHjHJpKF9ieiYKC0+JfiEho/UfX 38TJlt7LkXCpzF211TPoZU41ANhxvM1QpuhTTfN6S0pu/3wB4p2O2OmqSxF73F+Bhsnp DJcg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771142925; x=1771747725; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=JNmwvk4FNcadsaaLisEc/uL/sSuqlsr8EkDRsy/GEkE=; b=UgtpMYqLY4pRXZ0hQlvEDrMKFv2K5Ys15zTWMhvw8DzVUEASVo8dCEdhPwAlwKuL5w sIGdx2nuehapPvOZBjv2U8vCCDmqswhruUHAUG4a7GSA0vjSOQDEYEcMKIfIHZhaKlFL PEPwtRfoEG8PowhR0eBOf0ElicAHDQJMsP0+qTwz2l/jgwY8L5WCfpgI3tFLc3aSoVu/ pubJ4TXqH5lFqCxsRGFAk1LPGyfeB766W+3jqhfsIS6HOD7oTM/ruBmzGwIIQq7h02cg JEGzI9pwYpAqjWMXKz0AyYsdMkCtzhH1raowmf8uQKTNbQoqWm3GhKxEufS34zdzvamQ T/8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771142925; x=1771747725; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=JNmwvk4FNcadsaaLisEc/uL/sSuqlsr8EkDRsy/GEkE=; b=YVupcRXb9uTANaDNw0kUFzAjILfRfY7J5PCtH8K/HfNL1P/QoRfn/BJK8n5V6/AiMn GpesNuCXJpaTljdndN2I1NjkDW5pT/Z3WSkHt05AgNPS/3cH/ODNVFi6zY/45ItKYpda oPYJgIzcEAzAnEV7HOHjlfK7gnwRbqtJQyLy4YdIOc/7VwIgan8s9V8S+yKbwBzgnEyD Sz6q3NoitGVXlksbgn9QzkRG13U4aYKgos/ZG9r81o6fBH3/x72dAK5y0Yoh/yMx+6gZ 1Amkzgn3prDGaxCyLPNt6az+wlieBxfCkb35pI5Yn0qsLHtLP5VcL4jictUyGTwhPIt/ xAkg== X-Forwarded-Encrypted: i=1; AJvYcCX9oUz4mmVgAjSuaCc9VE9oQI4dTUEX4953OGjhnvfUNt8o3Q45F+iQKcFBc3EQc9sTHKwkTYM97+vaOcJw@lists.postgresql.org X-Gm-Message-State: AOJu0Ywv+uIt2O9yNd4byT5BuPYj02DLMSit1FlGVg5D3QtewwuZIO5o isBkf5Noe1jSlidOLI/b3Y7eHM1GH6SOkXI5z7lHIGLdjrEJH0O45QOe6IYO7eu5WBn2YfhJGAW QHm2BVIDxLP/55u7+yThJS3i9UhZVSFw= X-Gm-Gg: AZuq6aJDwjf9Iwlpzfp1biykA5VmPu/rbWUo3mnJ38yhm3AoUztEERkmVGkDp5WI+aW MgTqfZJ1urCygmk+rjQZFZcpb/iQWPGncazUmC3kvxDYGsKQUWQCHoi0BSzhaB6ms+QlOS0wLvy mGZwI008TwjeaPthM5okswwi/z7pYw0lBJyIFjFlp14YBMmtkJtp/ftLJsruIVyajkR2+IBtMjY GMy0VBGZBrFU/sUGYy5NnVE6xsZswrBn1b2+pakgeSa8qFDu+0nzj+L97/C/pqZ/Qbtq4wp2XJN 9fTU8v/BFqgc/OYDyUoSkJD5n4NpQ0jcV4tBHDFr3zerVM6T4Rrf6/o75eWK X-Received: by 2002:a17:907:9482:b0:b87:7a69:226e with SMTP id a640c23a62f3a-b8fb416744emr445102066b.10.1771142925197; Sun, 15 Feb 2026 00:08:45 -0800 (PST) MIME-Version: 1.0 References: <6d59c277-c440-4d1f-a46e-157958c06a5f@vondra.me> <9411f220-007d-4f1e-9c8f-ca8eb09e6788@vondra.me> In-Reply-To: <9411f220-007d-4f1e-9c8f-ca8eb09e6788@vondra.me> From: Alexandre Felipe Date: Sun, 15 Feb 2026 08:08:34 +0000 X-Gm-Features: AaiRm50gqzLgiQq5uL4e_A8Y9cuEYeL2gmM71Ki0h78AvyLlwicxKoqi0rA7EIk Message-ID: Subject: Re: index prefetching To: Tomas Vondra Cc: Peter Geoghegan , Andres Freund , Thomas Munro , Nazir Bilal Yavuz , Robert Haas , Melanie Plageman , PostgreSQL Hackers , Georgios , Konstantin Knizhnik , Dilip Kumar Content-Type: multipart/alternative; boundary="000000000000e726b6064ad858d1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e726b6064ad858d1 Content-Type: text/plain; charset="UTF-8" Another quick response, I am impressed I'm quite confused by the scripts you shared, it seems incomplete. The > run_regression.py is meant to call purge_cache.sh (which is missing), > and the run_benchmark tries to call all sorts of missing .sql scripts. > That was a confusion I did, I uploaded run_benchmark that was just a nonsensical AI generated script in my work area and I didn't upload purge_cache.sh. Notice that you can still run the python script with evict mode off,pg. The missing script is attached in my previous message. > A table that is just 24MB and fits into buffers is a bit useless. It > means that even with random pattern (which is generally about the best > for prefetching), only about ~1/30 of pages will require I/O. Each page > has ~32 items, but only the first item from each page will incur an I/O. > OK, I will start it with different parameters, for development I needed something that was not too slow, to be able to catch the bugs. On what kind of hardware? How much variance is in the results? > Is a Mac mini M1. Please check the .PNG it shows the confidence intervals of the difference of execution time with the parameter ON and OFF, with different settings. -- Alexandre --000000000000e726b6064ad858d1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Another quick response, I am impressed

I'm quite confused by the scripts you shared, it seems incomplete. The<= br> run_regression.py is meant to call purge_cache.sh (which is missing),
and the run_benchmark tries to call all sorts of missing .sql scripts.
<= /blockquote>

That was a confusion I did, I uploaded run_= benchmark that was just a nonsensical AI generated script in my work area a= nd I didn't upload purge_cache.sh. Notice that you can still run the py= thon script with evict mode off,pg. The missing script is attached in my pr= evious message.=C2=A0
=C2=A0
A table that is just 24MB and fits into buffers is a bit useless. It
means that even with random pattern (which is generally about the best
for prefetching), only about ~1/30 of pages will require I/O. Each page
has ~32 items, but only the first item from each page will incur an I/O.=C2= =A0

OK, I will start it with different = parameters, for development I needed something that was not too slow, to be= able to catch=C2=A0the bugs.

On what kind of hardware? How much variance is in the results?
Is a Mac mini M1. Please check the .PNG it shows the confidence in= tervals of the difference of execution time with the parameter ON and OFF, = with different settings.

--
Alexandre
--000000000000e726b6064ad858d1--