1. 05 Oct, 2016 1 commit
    • Yorick Peterse's avatar
      Refactor TrendingProjectsFinder to support caching · 154253ca
      Yorick Peterse authored
      == Public Projects
      
      This finder class now _only_ returns public projects. Previously this
      finder would also return private and internal projects. Including these
      projects makes caching data much harder and less efficient. Meanwhile
      including this data isn't very useful as very few users would be
      interested in seeing projects they have access to as trending. That is,
      the feature is more useful when you want to see what _other_ popular
      projects there are.
      
      == Caching
      
      The data returned by TrendingProjectsFinder is now cached for a day
      based on the number of months the data should be restricted to. The
      cache is not flushed explicitly, instead it's rebuilt whenever it
      expires.
      
      == Timings
      
      To measure the impact I changed the finder code to use the last 24
      months instead of the last month. I then executed and measured 10
      requests to the explore page. On the current "master" branch (commit
      88fa5916) this would take an average of
      2.43 seconds. Using the changes of this commit this was reduced to
      around 1.7 seconds.
      
      Fixes gitlab-org/gitlab-ce#22164
      154253ca
  2. 04 Oct, 2016 30 commits
  3. 03 Oct, 2016 9 commits