Merge request diffs serialization is a major slowdown

Created by: CedricGatay

I recently had a problem with resque jobs eatings CPU like hell and seems stuck. I digged into the code and found out that the serialization of st_diffs in merge_requests.rb seems to be the major slowdown. In my different attempts, it appears that when I have a lot of diff objects it runs infinitely (361 in the current case).

I can fix try to fix this but I would like some advice on it:

  • is it really necessary to save st_diffs in the database ?
  • if it is, can we try backing it up using JSON instead of the serialize method of ActiveRecord ?

Thanks for the reply