Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Container Streaming/Retriever #3173

Open
wants to merge 12 commits into
base: main
Choose a base branch
from

Conversation

nvidianz
Copy link
Collaborator

@nvidianz nvidianz commented Jan 23, 2025

Description

  1. ContainerStreamer to stream containers.
  2. ContainerRetriever to retrieve containers from a remote site.
  3. Added examples for file and container streaming.
  4. Merged the class loading functions in class_utils and FOBS.
  5. Fixed a F3 bug that wipes out original exception.

Types of changes

  • Non-breaking change (fix or new feature that would not break existing functionality).
  • Breaking change (fix or new feature that would cause existing functionality to change).
  • New tests added to cover the changes.
  • Quick tests passed locally by running ./runtest.sh.
  • In-line docstrings updated.
  • Documentation updated.

@nvidianz
Copy link
Collaborator Author

/build

Copy link
Collaborator

@yanchengnv yanchengnv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good in general. See my comments for enhancement.

self.count += 1
self.last = self.count >= self.size
except StopIteration:
self.logger.error(f"Producer called too many times {self.count}/{self.size}")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This condition can only happen when the container is empty or programming error.
You should just return (None, 0) to ensure aborting, instead of returning a Shareable.

@ZiyueXu77
Copy link
Collaborator

A general comment: shall we do a comparison of memory footprint standard v.s. dict streaming v.s. file streaming? I will do some experiment on how to track the memory usage, I think using JobAPI should work

@ZiyueXu77
Copy link
Collaborator

I did some experiments but it seems the basic transmission without dict streaming has similar memory footprint as compared with streaming, not sure if it is expected (@nvidianz I created a PR on your branch, let me know if you find any mistakes in my code)

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

Successfully merging this pull request may close these issues.

3 participants