Skip to content

Conversation

VirenS13117
Copy link

Enables multiple operations to iterate over the same data blocks without removal, preventing costly disk reloads. When setResettable(true) is called, dequeueTask() reads without removing blocks,
allowing resetIterator() to restart from beginning. Maintains full backward compatibility with existing FIFO behavior when resettable mode is disabled.

Implements resettable mode for TaskQueue allowing multiple consumers
to iterate over the same blocks without removal, reducing reloads:

- Add _resettable and _readPosition fields
- Add setResettable() method to enable/disable resettable mode
- Add resetIterator() method to restart iteration from beginning
- Modify dequeueTask() to read without removing in resettable mode
- Update toString() to show resettable state and position

Benefits:
- Prevents repeated disk reloads for multiple operations
- Keeps blocks in memory for reuse until explicit cleanup
- Backward compatible (default behavior unchanged)
- Reduces memory eviction issues for shared data

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@j143
Copy link
Member

j143 commented Sep 24, 2025

Hi @VirenS13117 -- this ticket SYSTEMDS-3912 is part of my master's project, I'm running experiments to guide this design and the changes may not be straightforward. (AI claude can't run the real experiments! 🤞 yet to guide our design)

Let's find a feature you would like to work on.

please mail us on dev@systemds.apache.org email list by subscribing to email list: https://systemds.apache.org/community

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

2 participants