Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Study arbitrary-length canister method execution #1779

Open
lastmjs opened this issue May 15, 2024 · 0 comments
Open

Study arbitrary-length canister method execution #1779

lastmjs opened this issue May 15, 2024 · 0 comments
Assignees
Milestone

Comments

@lastmjs
Copy link
Member

lastmjs commented May 15, 2024

So it turns out that an update method for example can be arbitrarily long as long as it has await points. As in, each await point resets the instruction limit for that method.

So if we can figure out how to generally insert await points, we might be able to overcome the instruction limit.

Biggest problem I am seeing is that you could have global state issues, but if you are sure you won't have those problems you could potentially do this.

Perhaps we allow an easy way to mark a method as being arbitrarily long. For example, if we have a SQLite index that would go across the instruction limit, perhaps we could implement a global SQLite lock at the app level, turn on the arbitrary-length functionality, and then turn off the global lock. This would at least allow us to move past the absolute hard limit on instruction length.

@lastmjs lastmjs added this to the Q2 2024 milestone May 15, 2024
@lastmjs lastmjs self-assigned this May 15, 2024
@lastmjs lastmjs changed the title Study arbitrary canister method execution Study arbitrary-length canister method execution May 15, 2024
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

No branches or pull requests

1 participant