)]}'
{
  "commit": "660fcd4caca607625728f7d2066478f7ce0c1468",
  "tree": "e9a9056cf9625d411d43c98874aac6bc34aaf908",
  "parents": [
    "cf0aea56d2efad79bcb84df37edc32c01bf8afb7"
  ],
  "author": {
    "name": "Matthias Sohn",
    "email": "matthias.sohn@sap.com",
    "time": "Sun Mar 31 00:41:53 2024 +0100"
  },
  "committer": {
    "name": "Matthias Sohn",
    "email": "matthias.sohn@sap.com",
    "time": "Mon Sep 16 13:18:50 2024 +0200"
  },
  "message": "Destination: use striped lock to reduce lock contention\n\nDestination used a single lock to serialize pushes to the same\ndestination. When many repositories are replicated via one\ndestination this may cause lock contention and unnecessarily\nthrottle replication throughput.\n\nHence use a striped lock with up to 16 stripes to reduce lock\ncontention but still serialize replication per repository.\nDon\u0027t use more stripes than the number of projects to be\nreplicated if the projects are configured explicitly.\n\nAvoid copying the pending and in-flight maps of PushOnes to be\nexecuted for reading them. Instead directly access the maps held\nby a destination and use thread-safe ConcurrentHashMaps for both.\n\nChange-Id: I0ad2f51249ffba429fc61b422056fa85d88b1de4\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3bb1d2d38541e683b14276e42bdb4bc2773e54b0",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java",
      "new_id": "fc9d91dd8467f81cc2624790f0f964ece70c6a08",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java"
    },
    {
      "type": "modify",
      "old_id": "dc3b05ee124d88a86a5dd233e8fb45418d644e61",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/DestinationsCollection.java",
      "new_id": "471a408b517df4502c1941c1cb43db110b585a9e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/DestinationsCollection.java"
    },
    {
      "type": "modify",
      "old_id": "8f4e0a10864f5f553d094d9ec3ee234132dbfd83",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/ListCommand.java",
      "new_id": "213d0de5fc25164c3b4ea2b6a8ecf9dde61698dc",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/ListCommand.java"
    },
    {
      "type": "modify",
      "old_id": "e800cffbb82b76fb4bc6c932f1ed8cd54c5b1546",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationStorageIT.java",
      "new_id": "94646c3d60ddc4ab5975eb7e1fb3cafc8dc4ca77",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationStorageIT.java"
    }
  ]
}
