• Heikki Linnakangas's avatar
    Make catalog cache hash tables resizeable. · 20cb18db
    Heikki Linnakangas authored
    If the hash table backing a catalog cache becomes too full (fillfactor > 2),
    enlarge it. A new buckets array, double the size of the old, is allocated,
    and all entries in the old hash are moved to the right bucket in the new
    hash.
    
    This has two benefits. First, cache lookups don't get so expensive when
    there are lots of entries in a cache, like if you access hundreds of
    thousands of tables. Second, we can make the (initial) sizes of the caches
    much smaller, which saves memory.
    
    This patch dials down the initial sizes of the catcaches. The new sizes are
    chosen so that a backend that only runs a few basic queries still won't need
    to enlarge any of them.
    20cb18db
catcache.c 49.8 KB