I/O Forwarding
- managing stdin/stdout/stderr from agents
- Create a special stream to handle I/O.
- Stdin can be delivered to a specific agent, or multicast to some agents.
- Allow customizations/annotations of the filters
- Having the capability to have a line based stream or a byte based one.
- Handle I/O for a combined agent/user application on a case-by-case basis
- I/O from the application is the agents responsibility
Notes from Dec 3-5 meeting:
- I/O forwarding is a service provided by STCI
- Components
- Service agents
- Service junctions
- Service stream
- Service Agent
- Runs on the compute node and "reads" stdio and stderr from the process or agents
- Forwards these along the Service Stream
- Service Junctions receive I/O from Service Agents and forward them down the stream, applying any filters specified
- Adding new (user) agents
- When new (user) agents are added
- A new Service Agent is created for each new (user) agent
- A new Service Stream is created to forward I/O
- because the new Service Agent can't be added to an existing Service Stream
- This will results in the FE having many I/O streams
- These streams can be periodically merged into a single stream to keep the number of streams manageable
- E.g., after 100 I/O streams have been created in this way
- Merging streams may require flushing the old streams before switching to using the new (merged) stream, so the merging operations should not be done frequently
- When new (user) agents are added