)]}'
{
  "commit": "05cadeb5915e490bcf7cae2f314cb8bd5388b7b6",
  "tree": "43024600814cc59a06275527bd82205e3809b450",
  "parents": [
    "abecc8e1951af2c1b334e05a439fd40450d8b4c3"
  ],
  "author": {
    "name": "Saša Živkov",
    "email": "sasa.zivkov@sap.com",
    "time": "Fri Sep 08 12:48:49 2023 +0200"
  },
  "committer": {
    "name": "Saša Živkov",
    "email": "sasa.zivkov@sap.com",
    "time": "Fri Sep 08 13:19:59 2023 +0200"
  },
  "message": "Use a shared heartbeat thread pool, don\u0027t create one for each lock\n\nBefore this change, each instance of the Lock class created a thread\npool of size one to run the heartbeat task. This didn\u0027t scale well as\nthe number of threads needed to maintain the heartbeat of N locks was N.\nThere are Git operations which lock a large number of refs and this\nwould have resulted in the large number of threads maintaining\nheartbeat for each lock.\n\nNow we use a dedicated thread pool of hardcoded size 10. We may make\nthis size configurable in the future if we see a need for that.\n\nChange-Id: Ia657a7a7ab80c5124bba40981e79c281e7381f53\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "733ce8a426d51a0482561bd32253ba55583c1e00",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/HeartbeatExecutor.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c1ff59249987873c57cc230861b0e433f484a93d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/HeartbeatExecutorProvider.java"
    },
    {
      "type": "modify",
      "old_id": "72fef8dcc1dde6c2c37e385ff6838e02c0710938",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Lock.java",
      "new_id": "20a921b01ab08837c5fbe2794c415b269a30832a",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Lock.java"
    },
    {
      "type": "modify",
      "old_id": "7216d5cec6cd5c7fde86281deca0d44ca1bf318d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Module.java",
      "new_id": "bffb1121352667760bb91b970bcc423883ec2094",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/spannerrefdb/Module.java"
    },
    {
      "type": "modify",
      "old_id": "4288641edfef173953104fdd3bbbdf48b40a2ba5",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/EmulatedSpannerRefDb.java",
      "new_id": "70adc77f3f4fc42ae21b5fdfc0c5d92ab0bfa994",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/EmulatedSpannerRefDb.java"
    }
  ]
}
