Re: doc: explain pgstatindex fragmentation
Frédéric Yhuel <frederic.yhuel@dalibo.com>
From: Frédéric Yhuel <frederic.yhuel@dalibo.com>
To: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Benoit Lobréau <benoit.lobreau@dalibo.com>
Date: 2025-01-23T09:00:27Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
doc: explain pgstatindex fragmentation
- 960135114629 19 (unreleased) landed
On 1/22/25 12:34, Bertrand Drouvot wrote: > Hi, > > On Tue, Nov 05, 2024 at 06:36:47PM +0100, Frédéric Yhuel wrote: >> Hi, I thought it would be nice to give the user a better idea of what >> avg_leaf_density and leaf_fragmentation mean. >> >> Patch attached. What do you think? > > Yeah, I think that can not hurt to give more details, thanks for the proposal! > Hi Bertrand, thanks for your review! > A few comments: > > === 1 > > + <literal>avg_leaf_density</literal> can be seen as the inverse of bloat, > > I'm not sure it's good to describe something as the inverse of "something > else". See my proposal below. > Yeah... bloat is a more familiar concept, so I wanted to link these two metrics... but "inverse" is confusing... or maybe something like that: A small <literal>avg_leaf_density</literal> means that the index is bloated. > === 2 > > I’m not sure we need to add the extra details in a paragraph below the fields > description. What about changing the fields description? > > Something concise enough like? > > avg_leaf_density: shows how full leaf pages currently are (100 if full) That should do :-) > leaf_fragmentation: shows how much physical and logical ordering of leaf pages > differ (zero if they don't) > It looks good to me. I've noticed that maximum leaf_fragmentation can have a huge impact on a range index-only scan, when reading all blocs from disks, even on my laptop machine with SSD, but I don't know if this is the right place to document this? I used the following psql scripts to test the effect of leaf_fragmentation (the first one calls the second one): https://github.com/dalibo/misc/blob/main/fyhuel/leaf_fragmentation.sql https://github.com/dalibo/misc/blob/main/fyhuel/evict_from_both_caches.sql > Also the comments made in [1], [2] and [3] are not linked to this main thread, > adding them for reference here (but better to keep the conversation going > by replying to this email). > > [1]: https://www.postgresql.org/message-id/4c5dee3a-8381-4e0f-b882-d1bd950e8972%40dalibo.com > [2]: https://www.postgresql.org/message-id/c70fcc72-eed6-475b-81c8-508422299351%40dalibo.com > [3]: https://www.postgresql.org/message-id/e8a6db36-073e-4ca3-b38c-b42d7094cba8%40dalibo.com > Indeed, I think Benoît mistakenly thought that thread aggregation was based on thread titles alone. He appended the second conversation to the commitfest entry.