)]}'
{
  "commit": "15013d0540235086f1716b6d83dd73c6678b1428",
  "tree": "330e934e8635f07806b6fa3562c6133c0d715fc2",
  "parents": [
    "08d89a2ea1a2a566197f5db004881c4e222bb3ac"
  ],
  "author": {
    "name": "mattisonchao",
    "email": "mattisonchao@gmail.com",
    "time": "Thu Mar 05 00:47:06 2026 +0800"
  },
  "committer": {
    "name": "mattisonchao",
    "email": "mattisonchao@gmail.com",
    "time": "Tue Mar 24 14:51:49 2026 +0800"
  },
  "message": "[improve][broker] Offload web response from metadata thread for list tenants/namespaces/clusters\n\nThe list tenants, list namespaces, and list clusters REST endpoints\ncurrently execute asyncResponse.resume() on the metadata store thread.\nThis can block the metadata thread pool, leading to deadlocks or\nperformance degradation.\n\nOffload the response handling (sorting, filtering, collecting) and\nasyncResponse.resume() to the web service executor thread pool by\nusing thenAcceptAsync/thenApplyAsync with the web executor.\n\n- TenantsBase.getTenants(): thenAccept -\u003e thenAcceptAsync\n- ClustersBase.getClusters(): thenApply+thenAccept -\u003e thenAcceptAsync\n- Namespaces.getTenantNamespaces(): thenAccept -\u003e thenAcceptAsync\n- WebService: expose webServiceExecutor via @Getter\n\nCo-Authored-By: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e91eedae1b9a97786a459de2787151f5fc614676",
      "old_mode": 33188,
      "old_path": "pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/ClustersBase.java",
      "new_id": "ea1e6e1eabc5d0c5a00ecaf43274831640e72292",
      "new_mode": 33188,
      "new_path": "pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/ClustersBase.java"
    },
    {
      "type": "modify",
      "old_id": "f6f4298a5bfd72e538d90391ca695b2c26e274db",
      "old_mode": 33188,
      "old_path": "pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java",
      "new_id": "9bc1941a7a452232707384a401f9b3e16b29d283",
      "new_mode": 33188,
      "new_path": "pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java"
    },
    {
      "type": "modify",
      "old_id": "b770c078a2876465af951eb13eb50345bfa4d889",
      "old_mode": 33188,
      "old_path": "pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/Namespaces.java",
      "new_id": "d668ca7f4669dfdfc40da3aa3cafee2cabe5a3e2",
      "new_mode": 33188,
      "new_path": "pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/Namespaces.java"
    },
    {
      "type": "modify",
      "old_id": "3fe51df90f72e594214b5a7dd87bc9e8414c0186",
      "old_mode": 33188,
      "old_path": "pulsar-broker/src/main/java/org/apache/pulsar/broker/web/PulsarWebResource.java",
      "new_id": "6c05eb6af60d7b4de9c5247ab2d50a1ed4b74f7e",
      "new_mode": 33188,
      "new_path": "pulsar-broker/src/main/java/org/apache/pulsar/broker/web/PulsarWebResource.java"
    },
    {
      "type": "modify",
      "old_id": "21c99f8196fec3ffab25bf71441ad1d3f82a3c5f",
      "old_mode": 33188,
      "old_path": "pulsar-broker/src/main/java/org/apache/pulsar/broker/web/WebService.java",
      "new_id": "3e1250e634ebf1e3e4a0bf715222ecd506a0a7a7",
      "new_mode": 33188,
      "new_path": "pulsar-broker/src/main/java/org/apache/pulsar/broker/web/WebService.java"
    }
  ]
}
