-
Notifications
You must be signed in to change notification settings - Fork 108
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
Replace websockets with zmq #9173
base: main
Are you sure you want to change the base?
Conversation
feac786
to
5acae39
Compare
@@ -55,84 +51,83 @@ def __init__( | |||
cert: Optional[Union[str, bytes]] = None, | |||
max_retries: Optional[int] = None, | |||
timeout_multiplier: Optional[int] = None, | |||
dealer_name: str | None = None, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Too keep it the same style as the other parameters
dealer_name: str | None = None, | |
dealer_name: Optional[str] = None, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wanted to be "modern", but will make it the same then :)
else: | ||
event = event_from_json(raw_msg) | ||
if type(event) is EEUserCancel: | ||
logger.debug("Client asked to cancel.") | ||
self._signal_cancel() | ||
elif type(event) is EEUserDone: | ||
logger.debug("Client signalled done.") | ||
self.stop() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we have to ACK messages from the monitor/client, or is it self acknowledging when it sees the EE stopping?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've decided not to do acknowledgements between the client and evaluator, since it is dispatchers that are problematic. But time will tell...
e553dbc
to
016b43d
Compare
- dispatcher now send messages in chunks - dispatcher always for acknolwedgment from the evaluator - removing websockets, no more wait_for_evaluator - Settup encryption with curve - each dealer (client, dispatcher) will get a unique name
Issue
POC: testing feasibility of zmq.
Refactor tests
Approach
Implementing router-dealer pattern with custom acknowledgments with zmq
Server / router (ensemble evaluator) gets messages and keeps track of connected clients wherein in additional it sends
ack
message to dispachers to confirm that the message has been received .Dealer(s) = clients and dispatchers are sending messages to the router via:
which essentially batching multiple messages into one.
dispatcher now send messages in chunks
dispatcher always waits for acknowledgement from the evaluator
removing websockets, no more wait_for_evaluator
Setup encryption with curve
each dealer (client, dispatcher) will get a unique name
PR title captures the intent of the changes, and is fitting for release notes.
Added appropriate release note label
Commit history is consistent and clean, in line with the contribution guidelines.
Make sure unit tests pass locally after every commit (
git rebase -i main --exec 'pytest tests/ert/unit_tests -n logical -m "not integration_test"'
)When applicable