{"push_id":1216080983,"size":3,"distinct_size":3,"ref":"refs/heads/optimize_aggregation_reviewed","head":"0d36bf2510e3992aaf8184aad518ac2a08940101","before":"4ccccfd4e464d9fe206230949e3da8817101efe8","commits":[{"sha":"d5ce6adba3f1be1eb0039a2de4b457caaa475202","author":{"name":"Daniel Miranda","email":"8cf9462140be48345df161bcbbaed61c4b6e7a4e@gmail.com"},"message":"Optimize TreeMetricResult#descendant_values\n\nThe previous implementation was incredibly sub-optimal. It can be easily\nreplaced with a join on the parent_id.","distinct":true,"url":"https://api.github.com/repos/mezuro/kalibro_processor/commits/d5ce6adba3f1be1eb0039a2de4b457caaa475202"},{"sha":"2c3b44bd323f2dcbec8345b371a7faa171936117","author":{"name":"Daniel Miranda","email":"8cf9462140be48345df161bcbbaed61c4b6e7a4e@gmail.com"},"message":"Rewrite aggregation processing to be more efficient\n\nPreviously aggregation worked by traversing the modules tree in\npre-order. But to ensure that children are aggregated before their\nparents, we can relax that order a bit to just processes all the results\non the same level before all of those on a level above it (the topmost\nlevel consisting of the root).\n\nThis allows fetching much more results at once and significantly reduce\nt he number of trips to the database - from a number proportional to the\nnumber of nodes, to exactly and no more than the maximum depth of the\ntree.\n\nIt also makes it much easier to accumulate the created tree metric\nresults to be created all at once. That also saves a huge number of\ntrips to the database.\n\nUsing the aggregation performance tests, in my development machine the\naverage time - combined with the indexing changes that were previously\nmade - went from around 200s to <20s.\n\nRegarding tests: a complete refactor was necessary, and made possible by\nthe module results tree factory. The tests ended up much cleaner and\narguably better, as they can verify the actual values being aggregated\nwhile mocking only the necessary data accesses.","distinct":true,"url":"https://api.github.com/repos/mezuro/kalibro_processor/commits/2c3b44bd323f2dcbec8345b371a7faa171936117"},{"sha":"0d36bf2510e3992aaf8184aad518ac2a08940101","author":{"name":"Daniel Miranda","email":"8cf9462140be48345df161bcbbaed61c4b6e7a4e@gmail.com"},"message":"Remove unused MetricResultAggregator class\n\nIt is no longer used since the new aggregation processing collects the\ntree metric results itself, making the auxiliary logic to find out\nwhether a node already has a result for a metric unnecessary.","distinct":true,"url":"https://api.github.com/repos/mezuro/kalibro_processor/commits/0d36bf2510e3992aaf8184aad518ac2a08940101"}]}
{"actor":{"display_login":"rafamanzo"}}