• Andres Freund's avatar
    Improve scalability of md.c for large relations. · 45e191e3
    Andres Freund authored
    So far md.c used a linked list of segments. That proved to be a problem
    when processing large relations, because every smgr.c/md.c level access
    to a page incurred walking through a linked list of all preceding
    segments. Thus making accessing pages O(#segments).
    
    Replace the linked list of segments hanging off SMgrRelationData with an
    array of opened segments. That allows O(1) access to individual
    segments, if they've previously been opened.
    
    Discussion: <20140331101001.GE13135@alap3.anarazel.de>
    Reviewed-By: Peter Geoghegan, Tom Lane (in an older version)
    45e191e3
md.c 59.6 KB