Skip to content

API for Table Rebalance Status#10345

Closed
suddendust wants to merge 5 commits intoapache:masterfrom
suddendust:feat/10313
Closed

API for Table Rebalance Status#10345
suddendust wants to merge 5 commits intoapache:masterfrom
suddendust:feat/10313

Conversation

@suddendust
Copy link
Contributor

@suddendust suddendust commented Feb 27, 2023

Registers an observer with TableRebalancer. For each RebalanceStatus, it is passed to the onNext method of the observer which then updates ZK with the metadata. This path is then read in the API.

Response to user on triggering rebalancing from the console:

{
  "status": "IN_PROGRESS",
  "description": "..",
  "instanceAssignment": {
    "OFFLINE": {
      "instancePartitionsName": "airlineStats_OFFLINE",
      "partitionToInstancesMap": {
        "0_0": [
          "Server_192.168.0.199_7050"
        ]
      }
    }
  },
  "segmentAssignment": {
    "airlineStats_OFFLINE_16071_16071_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16072_16072_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16073_16073_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16074_16074_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16075_16075_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16076_16076_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16077_16077_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16078_16078_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16079_16079_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16080_16080_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16081_16081_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16082_16082_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16083_16083_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16084_16084_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16085_16085_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16086_16086_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16087_16087_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16088_16088_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16089_16089_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16090_16090_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16091_16091_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16092_16092_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16093_16093_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16094_16094_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16095_16095_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16096_16096_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16097_16097_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16098_16098_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16099_16099_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16100_16100_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16101_16101_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    }
  },
  "rebalanceId": "c0f1c854-2b7b-44b9-8112-3824877d001d",
  "startTimestamp": 1677527936046
}

Users can then use the rebalanceId to poll the status. The API response is show below:

{
  "status": "DONE",
  "description": "..",
  "instanceAssignment": {
    "OFFLINE": {
      "instancePartitionsName": "airlineStats_OFFLINE",
      "partitionToInstancesMap": {
        "0_0": [
          "Server_192.168.0.199_7050"
        ]
      }
    }
  },
  "segmentAssignment": {
    "airlineStats_OFFLINE_16071_16071_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16072_16072_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16073_16073_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16074_16074_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16075_16075_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16076_16076_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16077_16077_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16078_16078_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16079_16079_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16080_16080_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16081_16081_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16082_16082_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16083_16083_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16084_16084_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16085_16085_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16086_16086_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16087_16087_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16088_16088_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16089_16089_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16090_16090_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16091_16091_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16092_16092_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16093_16093_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16094_16094_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16095_16095_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16096_16096_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16097_16097_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16098_16098_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16099_16099_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16100_16100_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    },
    "airlineStats_OFFLINE_16101_16101_0": {
      "Server_192.168.0.199_7050": "ONLINE"
    }
  },
  "rebalanceId": "c0f1c854-2b7b-44b9-8112-3824877d001d",
  "startTimestamp": 1677527936046,
  "finishTimestamp": 1677527936821
}

Todo: Status of SegmentRelocator and for the rebalance admin command.

@suddendust
Copy link
Contributor Author

This a WIP

@Jackie-Jiang
Copy link
Contributor

Decided to move forward with #10359

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants