)]}'
{"nova/openstack/common/rpc/dispatcher.py":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"201cec720e04750cfb75a3bf0e3ad156936decad","unresolved":false,"context_lines":[{"line_number":122,"context_line":"            version \u003d \u00271.0\u0027"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        had_compatible \u003d False"},{"line_number":125,"context_line":"        for proxyobj in self.callbacks:"},{"line_number":126,"context_line":"            # Check for namespace compatibility"},{"line_number":127,"context_line":"            try:"},{"line_number":128,"context_line":"                cb_namespace \u003d proxyobj.RPC_API_NAMESPACE"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F8mg%3D","line":125,"updated":"2013-04-10 16:25:49.000000000","message":"Could squeeze a little performance by pre-computing a namespace \u003d\u003e callbacks mapping at construction time.\n\nSomething like:\n\nfor callback in callbacks:\n  namespace \u003d _namespace(callback)\n  cbmap.setdefault(namespace).append(callback)\n\nThen processing is faster here in the event of many small services. (or many versions):\n\ncallbacks \u003d self.cbmap.get(namespace)\nfor callback in callbacks:\n   ... do usual version compatibility and method checks\n\n(Could be even faster by sorting the list of versioned callbacks within a namespace)","commit_id":"c3947a0296db2338fb3b6a9623abba8de46fcfda"}]}
