You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently Soroban loadgen allows us to configure the number of entries to write and the total amount of kilobytes to write. However, when computing the inputs to the loadgen contract, we round up the size of every entry written to 1 KB. So e.g. if we request to write 10 entries with the write bytes limit of 3KB, then the contract will try writing 10 KB worth of data and fail due to exceeding the transaction write limit. We should increase granularity of the contract inputs, for example:
Make contract accept the size of each entry written in bytes
Compute the per-entry size on the loadgen side:
Make sure to account for the 'baseline' entry size (~50B) when computing the size to pass to the contract. It's fine for entry to have 0-byte payload
Increase the transaction write bytes if necessary to be at least baseline_entry_size * num_entries_written.
Estimate the instructions using the final write bytes values (rounding up to 1 KB)
It also would be nice to control the read entries separately from the write entries. It should be sufficient to simply allow us to configure the number of read bytes/read entries separately and add the extra entries to the footprint (on top of the RW entries).
The text was updated successfully, but these errors were encountered:
Hey @dmkozh, I've got a couple clarifying questions:
Where does the existing loadgen contract perform reads? I see writes to persistent storage here, but no corresponding reads. Is there an implicit read somewhere?
Can you expand a bit on the per-entry "baseline" data? What is this data? Metadata about the entry? How can I tell how big it is?
Currently Soroban loadgen allows us to configure the number of entries to write and the total amount of kilobytes to write. However, when computing the inputs to the loadgen contract, we round up the size of every entry written to 1 KB. So e.g. if we request to write 10 entries with the write bytes limit of 3KB, then the contract will try writing 10 KB worth of data and fail due to exceeding the transaction write limit. We should increase granularity of the contract inputs, for example:
baseline_entry_size * num_entries_written
.It also would be nice to control the read entries separately from the write entries. It should be sufficient to simply allow us to configure the number of read bytes/read entries separately and add the extra entries to the footprint (on top of the RW entries).
The text was updated successfully, but these errors were encountered: