Compute: Maintain row arena while fulfilling peek
Maintain a single row arena allocation while collecting the data for a peek. We clear the arena after every value to ensure bounded size.
This does not preserve the contents of the arena, so most of the comment in the code still applies. Preserving contents would be an option, but would require an interface change to the arena.
Checklist
- [ ] This PR has adequate test coverage / QA involvement has been duly considered. (trigger-ci for additional test/nightly runs)
- [ ] This PR has an associated up-to-date design doc, is a design doc (template), or is sufficiently small to not require a design.
- [ ] If this PR evolves an existing
$T ⇔ Proto$Tmapping (possibly in a backwards-incompatible way), then it is tagged with aT-protolabel. - [ ] If this PR will require changes to cloud orchestration or tests, there is a companion cloud PR to account for those changes that is tagged with the release-blocker label (example).
- [ ] If this PR includes major user-facing behavior changes, I have pinged the relevant PM to schedule a changelog post.
do we have performance tests that would show the disparity before and after this change set is applied?
do we have performance tests that would show the disparity before and after this change set is applied?
Nope! I 100% think we should have tests that show how a change like this changes performance, but at the moment it's hard to observe. Thinking out loudly, it'd need to be a select that applies an MFP with a function that needs to allocate.