Long Term R&D: Canister Migration (proposal)

We are working on subnet splitting as a first step. This will allow us to split overloaded subnets by creating a new subnet to take on half (or part of) the canisters of the original subnet.

The state splitting logic and verification have been merged to master over the past few weeks. We are now working on the orchestration / runbook and expect to have a working process within a month or two.

Most of the logic implemented for subnet splitting should be reusable for more general canister migration (where the canisters are not migrated off to a brand new subnet, but to an existing one). But I’m guessing that the next step in this direction after basic subnet splitting is implemented will be to speed up the process. The implemented process requires manual work, e.g. downloading and uploading states; doing a state sync from a single replica, etc. It’s all deterministic and verifiable, but will likely be quite slow if it involves splitting a subnet with a 500 GB state.

5 Likes