• Zeger-Jan van de Weg's avatar
    Use memoization for commits on diffs · d379a41a
    Zeger-Jan van de Weg authored
    The Gitaly CommitService is being hammered by n + 1 calls, mostly when
    finding commits. This leads to this gRPC being turned of on production:
    https://gitlab.com/gitlab-org/gitaly/issues/514#note_48991378
    
    Hunting down where it came from, most of them were due to
    MergeRequest#show. To prove this, I set a script to request the
    MergeRequest#show page 50 times. The GDK was being scraped by
    Prometheus, where we have metrics on controller#action and their Gitaly
    calls performed. On both occations I've restarted the full GDK so all
    caches had to be rebuild.
    
    Current master, 806a68a8, needed 435 requests
    After this commit, 154 requests
    d379a41a
strong_memoize.rb 1006 Bytes