{"push_id":2347616451,"size":2,"distinct_size":2,"ref":"refs/heads/upstream/master","head":"422775d81b9d625ea3e48184ef1db3eb6a663fae","before":"ce3a03e34f4f17a0c220582adfbba97420a30421","commits":[{"sha":"41db1d0629172ca645817a38041ce9db22c5a8cc","author":{"name":"Dave Borowitz","email":"500d0e81487f8d69b15282cb27a6e4212bea252e@google.com"},"message":"ExternalIdCache: Store unmodifiable, not Immutable, collections\n\nIn a large server with tens of thousands of external IDs, the\nExternalIdCacheImpl instance retains tens of MiB of heap. The\nAutoValue_External_Id(_Key) instances only account for a few MiB, so I'm\nguessing that a significant amount of overhead goes to pointers within\nthe maps stored in this cache. In particular, ImmutableSetMultimap is\nlike LinkedHashMap in that it stores a separate list of pointers just to\nmaintain key iteration order. Iteration order is not needed at all for\nthese maps, so we can avoid this overhead by using a SetMultimap backed\nby plain HashSets. We can wrap in a single unmodifiableSetMultimap only\nwhen needed, so this is safe at runtime. The main downside is losing the\nimmutable types in the public method signatures.\n\nChange-Id: I367b6d7a8da2f9bdcf1ba830eca2387536bc5bda","distinct":true,"url":"https://api.github.com/repos/openstack-infra/gerrit/commits/41db1d0629172ca645817a38041ce9db22c5a8cc"},{"sha":"422775d81b9d625ea3e48184ef1db3eb6a663fae","author":{"name":"Dave Borowitz","email":"500d0e81487f8d69b15282cb27a6e4212bea252e@google.com"},"message":"Merge \"ExternalIdCache: Store unmodifiable, not Immutable, collections\"","distinct":true,"url":"https://api.github.com/repos/openstack-infra/gerrit/commits/422775d81b9d625ea3e48184ef1db3eb6a663fae"}]}
{"actor":{"display_login":"openstack-gerrit"}}