)]}'
{"nova/cells/opts.py":[{"author":{"_account_id":11642,"name":"Jesse J. Cook","email":"jesse.cook@rackspace.com","username":"crashenx"},"change_message_id":"1a50c29c47509949fdc2ef046efd3cc1a2214975","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                default\u003d600,"},{"line_number":59,"context_line":"                help\u003d\u0027Seconds between bandwidth updates for cells.\u0027),"},{"line_number":60,"context_line":"    cfg.IntOpt(\u0027scheduler_count\u0027,"},{"line_number":61,"context_line":"                default\u003d1,"},{"line_number":62,"context_line":"                help\u003d\u0027Number of cells schedulers (this knowledge helps \u0027"},{"line_number":63,"context_line":"                     \u0027prevent sending builds to cells that do not have \u0027"},{"line_number":64,"context_line":"                     \u0027sufficient capacity)\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_c69348f9","line":61,"updated":"2015-07-07 17:11:34.000000000","message":"Andrew Laski had a question about how this handled the case where there were more schedulers than slots. A simple example can be added to show this handles that case.","commit_id":"14095321ad1fce82b6d13cbaf2a68f952acac80b"}],"nova/cells/scheduler.py":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"281916d343a46a8bf700c5525a7698090ee4655e","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        instance_type \u003d filter_properties[\u0027instance_type\u0027]"},{"line_number":266,"context_line":"        memory_needed \u003d str(instance_type[\u0027memory_mb\u0027])"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"        # TODO(johngarbutt) do we need cell-db-sync lock?"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"        # NOTE(johngarbutt) this would work better if"},{"line_number":271,"context_line":"        # state_manager state was shared between processes"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_08e00495","line":268,"updated":"2015-07-02 15:43:18.000000000","message":"Rather than locking the information in the CellState populated by the child to avoid a race with the child update, could you create a new attribute on the state object to indicate recently scheduled instances?\n\nWhat I mean is, save a list of recently scheduled flavors to a cell along with a timestamp.  Then use that \"recent list\" to negatively weigh the cell with a new weigher.\n\nSomething like:\n\ncell.recent.add(flavor, now())\n\nAnd in the weigher:\n\nunits_by_mb -\u003d \"number of this flavor recently scheduled in cell.recent\"","commit_id":"79967c490034938e12f985745b795a3a7acde874"}],"nova/cells/weights/ram_by_instance_type.py":[{"author":{"_account_id":11642,"name":"Jesse J. Cook","email":"jesse.cook@rackspace.com","username":"crashenx"},"change_message_id":"1a50c29c47509949fdc2ef046efd3cc1a2214975","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        count \u003d 0"},{"line_number":57,"context_line":"        for mb in units_by_mb.keys():"},{"line_number":58,"context_line":"            if int(mb) % memory_needed !\u003d 0:"},{"line_number":59,"context_line":"                continue"},{"line_number":60,"context_line":"            slots_consumed \u003d int(mb) / memory_needed"},{"line_number":61,"context_line":"            for i, time in enumerate(recents.get(mb, [])):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_665d9c78","line":58,"updated":"2015-07-07 17:11:34.000000000","message":"Andrew Laski pointed out that this could also handle the case where the larger slot is not a multiple of the smaller slot by using equality.","commit_id":"14095321ad1fce82b6d13cbaf2a68f952acac80b"}]}
