Skip to content

Study arbitrary-length canister method execution #1779

Open
@lastmjs

Description

@lastmjs

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions