)]}'
{
  "commit": "6673becb41c774b1063e4b18c1821ced049fee2e",
  "tree": "3131da40a6ae819efed8cb63fbb7a44a51782f1a",
  "parents": [
    "db37fc805c157112266572ee55efa407afeddff7"
  ],
  "author": {
    "name": "Martin Fick",
    "email": "mfick@codeaurora.org",
    "time": "Tue May 12 14:48:35 2020 -0600"
  },
  "committer": {
    "name": "Martin Fick",
    "email": "mfick@codeaurora.org",
    "time": "Tue Oct 27 12:34:19 2020 -0600"
  },
  "message": "No longer use an extra thread to schedule pending events\n\nMove processing of pending events to the defaultQueue in a non invasive\nway so that this processing should not interfere with other important\ntasks in the queue for longer than it takes to process a single entry.\nThis is achieved by using a new ChainedScheduler class which breaks the\nworkload up into small pieces with their own task each, and only places\na new task in the queue each time a task begins execution. This creates\na natural load based throttling which can execute fast when there is no\nload in the executor, but mostly gets out of the way when load is high.\n\nThis move also avoids delaying plugin startup until all the pending\nevents are read from disk. This allows new replication events being\ncreated on the server to be scheduled before all pending events have\nbeen scheduled which results in a slight priority boost for new events\nover pending events.\n\nChange-Id: Icddf88b85dec9078bb4a7923b9211614989978ff\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ff3fdf376ab7fe94bb2b192c098afedd973bb84d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/ChainedScheduler.java"
    },
    {
      "type": "modify",
      "old_id": "90d159d9dcbff853d7f7f7560e1f63e1315d5048",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java",
      "new_id": "e277cb0d6f0c40f9472f2e9e8945c6cff31f506e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1ad8c4da6db1687e5b9541d5cae469638453f230",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/ChainedSchedulerTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dbd538e5164eee9996e2ee6ebbb251334182f3f8",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/ForwardingProxy.java"
    }
  ]
}
