Suggested measures to reduce latency and improve ICP scalability

According to a conversation in another thread the increase in latency is 1.8 seconds since the recent lowering of the notarization delays:

(I was surprised too.)

I just want to clarify for our readers the following cases where the latency will stay the same (will not change): Canister methods that don’t make any inter-canister calls, and canister methods that already make inter-canister calls to canisters on different subnets. Both of these will not change. The one specific case that will increase latency is canister-methods that are currently making inter-canister calls to other canisters on the same subnet, the latency of this case will increase by 1.8 seconds.

If most canister developers don’t want that, then that’s ok, as long as the different factors are being considered one way or the other.

For random canister shuffling I was using it as a sample of a possible thing that the protocol can do. The main point is that the protocol (and not canister-developers) being in charge of where canisters live and how the canisters get spread out across subnets, is what puts the protocol in the best position that I know of, to be able to spread any kind of load (ddos or well-intended) throughout the subnets.

If there are other things we will be able to do later on to round-out the load balancing while still letting canister-developers choose their specific subnets, that could be the best option for sure.

I think it is great that compute-allocation exists now to be able to at least have an option. It’s something like $130 per month per canister for a compute allocation of 4. Works for a few canisters.

Collectively yea good point, but on the public-subnets it’s not so easy for a single dapp to take advantage of that.


My purpose here is sharing my thoughts on a plan for scalability which contains the mechanics to handle any kind of scalability load (ddos or well-intended), and making it simpler for canister-controllers to scale their dapps.

1 Like