-
Notifications
You must be signed in to change notification settings - Fork 8
Description
Currently we cap the number of operations we will accept in a transaction at FOUR operations. While that's plenty for many use cases, I would like to increase or remove the cap.
The current reason for the cap is that I keep a reference array of (op-IDs and pointers to individual operation data caches), and reserving that array in global memory consumes valuable resources, especially since the majority of Tx's do not need a large number of Ops. The array is sized according to the operations cap, so keeping the cap small is important.
To remove the cap we could put these operation references at the END of the OpData buffer, and grow the array downwards, stack-style, into the OpData buffer. We could then say the number of supported operations in a transaction is "memory limited" defined by when the growing reference array intersects the growing OpData cache.
This will require some supporting infrastructure, of course, since the logic of retrieving a particular OpData reference and of determining the remaining space in the OpData buffer obviously becomes more intricate.