)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"ff03f4de3458830c99ecfa033b75c885f31769ae","unresolved":false,"context_lines":[{"line_number":11,"context_line":"the node only changes at specific points (manyline image"},{"line_number":12,"context_line":"creation/destruction) this leads to significant DB overhead on a large"},{"line_number":13,"context_line":"system. This BP changes the update mechanism to only update the DB when"},{"line_number":14,"context_line":"a node state changes, specifically at node startup, instance creation"},{"line_number":15,"context_line":"and instance destruction."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I19c174488b61977358a4d617cc4b590e317e665a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"baada198_4ae35533","line":14,"updated":"2014-07-08 17:00:54.000000000","message":"nit: ...or whenever metrics change, ...or anything that might be thrown up by the hypervisor. \n\nWhy don\u0027t you put a full stop after \"...only update the DB when a node state changes\" and leave it at that.","commit_id":"7957924c2099fe59dd25e339ea98907d8d5a2947"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"f70b67aff733fa590d1b55c892ca153bc2e48211","unresolved":false,"context_lines":[{"line_number":14,"context_line":"a node state changes by keeping an old copy of the state info and"},{"line_number":15,"context_line":"only updating the DB if the new state info is different."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Docimpact - check to see if there\u0027s a documentation impact to this change."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I19c174488b61977358a4d617cc4b590e317e665a"},{"line_number":20,"context_line":"Implements: blueprint on-demand-compute-update"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"baada198_1cd09cc8","line":17,"updated":"2014-07-16 21:12:31.000000000","message":"Does this need to be DocImpact exactly to trigger a docs bug?","commit_id":"f44b4faacd2a21fa27751a32e7a908022ab089ad"},{"author":{"_account_id":1981,"name":"Don Dugger","email":"n0ano@n0ano.com","username":"n0ano"},"change_message_id":"ecd3630ad1f10a9b634bfd55ca2d70a43d2c02f3","unresolved":false,"context_lines":[{"line_number":14,"context_line":"a node state changes by keeping an old copy of the state info and"},{"line_number":15,"context_line":"only updating the DB if the new state info is different."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Docimpact - check to see if there\u0027s a documentation impact to this change."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I19c174488b61977358a4d617cc4b590e317e665a"},{"line_number":20,"context_line":"Implements: blueprint on-demand-compute-update"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"baada198_92abb374","line":17,"in_reply_to":"baada198_1cd09cc8","updated":"2014-07-16 22:07:31.000000000","message":"I check other commit messages and there are many with Docimpact as the start of a comment line containing more info, this line should be OK and trigger the docs bug.","commit_id":"f44b4faacd2a21fa27751a32e7a908022ab089ad"}],"nova/compute/resource_tracker.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"c42ee758ce7dd97d3b658794d0b29ec5a7588f6c","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        monitor_handler \u003d monitors.ResourceMonitorHandler()"},{"line_number":79,"context_line":"        self.monitors \u003d monitor_handler.choose_monitors(self)"},{"line_number":80,"context_line":"        self.notifier \u003d rpc.get_notifier()"},{"line_number":81,"context_line":"        self.old_resources \u003d {}"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @utils.synchronized(COMPUTE_RESOURCE_SEMAPHORE)"},{"line_number":84,"context_line":"    def instance_claim(self, context, instance_ref, limits\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_86ad8b86","line":81,"updated":"2014-06-20 20:46:12.000000000","message":"Since this is an in-memory copy of the resources, would it eventually consume a large amount of memory if the node does not restart for a long period?  How would you handle that condition?  Is there a way to clear the \u0027cache\u0027 every once in a while or on demand?","commit_id":"7957924c2099fe59dd25e339ea98907d8d5a2947"},{"author":{"_account_id":1981,"name":"Don Dugger","email":"n0ano@n0ano.com","username":"n0ano"},"change_message_id":"6493d4183012a9f6b14c73477e4a291d91cc36b1","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        monitor_handler \u003d monitors.ResourceMonitorHandler()"},{"line_number":79,"context_line":"        self.monitors \u003d monitor_handler.choose_monitors(self)"},{"line_number":80,"context_line":"        self.notifier \u003d rpc.get_notifier()"},{"line_number":81,"context_line":"        self.old_resources \u003d {}"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    @utils.synchronized(COMPUTE_RESOURCE_SEMAPHORE)"},{"line_number":84,"context_line":"    def instance_claim(self, context, instance_ref, limits\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_1a48e85a","line":81,"in_reply_to":"1ae5cdf2_86ad8b86","updated":"2014-06-20 23:58:47.000000000","message":"This should not be a problem, `old_resources\u0027 is just a copy of the resource info for this specific node, it\u0027s doesn\u0027t grow with time since it\u0027s just a single entry.  The resource info is relatively small (amount of memory, amount of disk space, cpu capabilities, hypervisor capabilities, etc.), doesn\u0027t change in size and is only a few hundred bytes.","commit_id":"7957924c2099fe59dd25e339ea98907d8d5a2947"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"ff03f4de3458830c99ecfa033b75c885f31769ae","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    def _resource_change(self, resources):"},{"line_number":350,"context_line":"        \"\"\"Check to see if any resouces have changed.\"\"\""},{"line_number":351,"context_line":"        if cmp(resources, self.old_resources) !\u003d 0:"},{"line_number":352,"context_line":"            self.old_resources \u003d resources"},{"line_number":353,"context_line":"            return True"},{"line_number":354,"context_line":"        return False"},{"line_number":355,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_ca24c5b1","line":352,"updated":"2014-07-08 17:00:54.000000000","message":"nit: I wonder if resetting self.old_resources should be in the _update() method instead of here. That way it will be done whenever an update to the database happens. The way it is here, it only gets set in the periodic task. Instance creations and deletions update the database without changing old_resources, so old_resources does not reflect the last DB update.\n\nI put this as a nit because I can see that it probably wont make much difference to what is written to the database - might save one periodic update. Not sure if there are any corner cases that are more significant.","commit_id":"7957924c2099fe59dd25e339ea98907d8d5a2947"}]}
