Thread

  1. Metadata and record block access stats for indexes

    Mircea Cadariu <cadariu.mircea@gmail.com> — 2025-02-28T19:58:32Z

    Hi,
    
    For the purpose of writing a blog post I was checking the index stats 
    recorded for a workload, but found them rather confusing. Following 
    along the code with the debugger it eventually made sense, and I could 
    eventually understand what's counted.  Looking around a bit, I 
    discovered an older discussion [1] in the mailing lists and learned that 
    the issue is known.  The proposal in that thread is to start counting 
    separate metadata and record stats depending on what type of index block 
    is retrieved.
    
    I realized those would have helped me better understand the collected 
    index stats, so I started working on a patch to add these in the system 
    views. Attached is a WIP patch file with partial coverage of the B-Tree 
    index code. The implementation follows the existing stats collection 
    approach and the naming convention proposed in [1].  Let me know if what 
    I'm doing is feasible and if there's any concerns I could address. Next 
    steps would be to replace all places where I currently pass in NULL with 
    proper counting, as well as update tests and docs.
    
    Looking forward to your feedback! Thanks!
    
    Cheers,
    Mircea
    
    [1]: 
    https://www.postgresql.org/message-id/flat/CAH2-WzmdZqxCS1widYzjDAM%2BZ-Jz%3DejJoaWXDVw9Qy1UsK0tLA%40mail.gmail.com