Instruction limit for single message execution - Is IC ready to scale?

Hi Everyone, I’m doing some benchmarks before build my Application in IC. I have recorded 300 thousand user structure in the stable memory (using rust) and tryed to retrieve a single user and ended up with this error ( both on IC network and locally). The current apps today do not scale or am I doing something wrong? Someone have benchmarks to share?

I can try optimizing my code, but it is a little frustrating.

Thank you!

We have about 1million posts/comments and we sort/retrieve them pretty often, so Im going to assume its something on your side.

Could you share how you are retrieving the user and how you are storing the user?

It’s a known limitation, deterministic time slicing should fix it soonish.

1 Like

Good to know! How you are doing it? Do you Store it on stable memory? If so, how do you query the data?

For this POC i’m looping over a vector of every user, not the best solution, for sure.

1 Like

I think they way they do IdStore in this example is a great way of having Indexes that make it easy to look up related objects. This can be compared to a foreign keys in a RDS.

1 Like

DTS will hide the error but won’t fix the underlying root cause behind poor scaling, i.e. the wrong choice of data structures.

2 Likes

I agree, tons of optimizations can be done early on that doesn’t require DTS. For DSCVR, the root cause to most single message execution issues has been due to poor data structures.

2 Likes