)]}'
{
  "commit": "0db4c81889d8231e4b89832378815e0e7a5f2291",
  "tree": "cea688df8fa14faa65fa4dedfb1d249226d6f426",
  "parents": [
    "3b3f4a668b05fb6d938b4d3f8cfa196454d7e7fa"
  ],
  "author": {
    "name": "khenaidoo",
    "email": "knursimu@ciena.com",
    "time": "Wed May 27 15:27:30 2020 -0400"
  },
  "committer": {
    "name": "khenaidoo",
    "email": "knursimu@ciena.com",
    "time": "Fri May 29 22:37:01 2020 -0400"
  },
  "message": "[VOL-2995] Improve Core performance\n\nThis commit consists of the following changes with the aim to\nimprove the Core performance:\n\n1) Use a hybrid approach of pre-route calculation and route\ncalculation on-demand.  For example, attempts to pre-calculate\nroutes will be done whenever a nni/uni port is discovered.  The\nattempt may fail if there are not enough ports to generate a\nroute.  When a flow is received and the route is not available\nthen only the route relevant to that flow will be created on\ndemand.\n\n2) Changes some of the route calculation flow such that the\nprocess does not need to go and grab the latest version of the\ndevice which could lead to higher latency, expecially if that\ndevice is busy with other processing.\n\n3) Change the logic when reporting added ports to ONOS such that\nroutes are calculated (at least an attempt made) before sending\na port create notification to ONOS.\n\n4) Move peer port creation into its own go routine thereby\nremoving the lock on a child device much earlier.\n\n5) Wait until a request for port capability is received before\nremoving the lock on a device.   A better approach is required\nwhere the adapter will need to report the port capability along\nwith the port creation event.  However, this require another\nJira as changes will be required in the API.\n\n6) Remove some unnecessary proto.clones.  Those are the obvious\nones.  Removal of other proto.clones will be done in a separate\ncommit.\n\n7) Fix a core panic when concurrent requests are made to the\nroute map\n\nChange-Id: I2bafc99dbf10d7026572a44af0b88a31b5eb1887\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fa1f6575cd66367a96c79f99d4bf07db033efbb0",
      "old_mode": 33261,
      "old_path": "rw_core/core/api/grpc_nbi_handler_test.go",
      "new_id": "0c373ea01a19065e47cc6a5d39cbafe4ca2858e5",
      "new_mode": 33261,
      "new_path": "rw_core/core/api/grpc_nbi_handler_test.go"
    },
    {
      "type": "modify",
      "old_id": "901b27f4b5dd95a6a031a24f4e777795d62b5c94",
      "old_mode": 33261,
      "old_path": "rw_core/core/device/agent.go",
      "new_id": "c8f03e7eeeaee89406fd40991b9440fe53164652",
      "new_mode": 33261,
      "new_path": "rw_core/core/device/agent.go"
    },
    {
      "type": "modify",
      "old_id": "15eb6779fe37e7efc20e546944c4b2b2229e7bc0",
      "old_mode": 33188,
      "old_path": "rw_core/core/device/logical_agent.go",
      "new_id": "7723b74531ab9d540fa21eb6a032765465c2af67",
      "new_mode": 33188,
      "new_path": "rw_core/core/device/logical_agent.go"
    },
    {
      "type": "modify",
      "old_id": "5d35251e211725c94840786d8100aa46f1983d16",
      "old_mode": 33188,
      "old_path": "rw_core/core/device/logical_agent_flow.go",
      "new_id": "0e811e761571488bbd6be45fa8eab42e2834afae",
      "new_mode": 33188,
      "new_path": "rw_core/core/device/logical_agent_flow.go"
    },
    {
      "type": "modify",
      "old_id": "a0d6c4a10c3c1b26f0dd1ec622e4f7bda32b24bb",
      "old_mode": 33188,
      "old_path": "rw_core/core/device/logical_agent_group.go",
      "new_id": "73caa071115e5b5ecd8bbf7282a4e2f54465239f",
      "new_mode": 33188,
      "new_path": "rw_core/core/device/logical_agent_group.go"
    },
    {
      "type": "modify",
      "old_id": "7845ad579262489f77501e1a9424a7695c1fc0f5",
      "old_mode": 33188,
      "old_path": "rw_core/core/device/logical_agent_port.go",
      "new_id": "7229e05b89f7acd88789a65c28ecf31fbdba7ae4",
      "new_mode": 33188,
      "new_path": "rw_core/core/device/logical_agent_port.go"
    },
    {
      "type": "modify",
      "old_id": "673616073ec63c316b1d2cdfb44ce0f81bac3c52",
      "old_mode": 33188,
      "old_path": "rw_core/core/device/logical_agent_route.go",
      "new_id": "fa96caf0c6e8fbffa9482f4479f3baa9b2e30f7b",
      "new_mode": 33188,
      "new_path": "rw_core/core/device/logical_agent_route.go"
    },
    {
      "type": "modify",
      "old_id": "0c4448bb0f13f5c1214b0de79010778370584eeb",
      "old_mode": 33261,
      "old_path": "rw_core/core/device/manager.go",
      "new_id": "cf1301f69f8be8aa41809159855439cc54875d1c",
      "new_mode": 33261,
      "new_path": "rw_core/core/device/manager.go"
    },
    {
      "type": "modify",
      "old_id": "3c29a0181f9b99fe61d526dea09685ca1f9edf26",
      "old_mode": 33188,
      "old_path": "rw_core/mocks/adapter.go",
      "new_id": "7bad0c22fec7119309b66d565f0e99b7e8c8e68e",
      "new_mode": 33188,
      "new_path": "rw_core/mocks/adapter.go"
    },
    {
      "type": "modify",
      "old_id": "292ef8357db7a8f496cf2dc0da5a3a1bbac0db83",
      "old_mode": 33188,
      "old_path": "rw_core/route/device_route.go",
      "new_id": "71002c799986dc3cccbeedceebf9984317cf45c0",
      "new_mode": 33188,
      "new_path": "rw_core/route/device_route.go"
    },
    {
      "type": "modify",
      "old_id": "1f90ecde960b4f5cc4a1b2921357e02f8cd3e9e2",
      "old_mode": 33188,
      "old_path": "rw_core/route/device_route_test.go",
      "new_id": "fbbc802d883b7afa7a85d563ecfc75838f601581",
      "new_mode": 33188,
      "new_path": "rw_core/route/device_route_test.go"
    }
  ]
}
