-
Notifications
You must be signed in to change notification settings - Fork 3
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
Feat/topo map enhancements #77
Conversation
Currently, schema validator panics because sync func is called within async context. Temporary W/A to at least overcome issue at least temporarily, up untill refactoring enforced. Also add RUST_BACKTRACE=1 to the run_cgw to enable tracing by default (if launched through helper script). Signed-off-by: Oleksandr Mazur <[email protected]>
topo_map.process_state_message(&device_type, evt).await; | ||
topo_map.debug_dump_map().await; | ||
|
||
// TODO: remove this Arc clone: |
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.
Is this comment still relevant or should be removed?
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.
Not really. it states that #306 should be removed, and some other way of accessing NB API should be made further on;
Currently, a copy of Arc is being passed around and copied, and we potentially have to come up with a new approach;
.process_device_topology_event(&device_type, evt) | ||
.await; | ||
topo_map.debug_dump_map().await; | ||
// TODO: remove this Arc clone: |
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.
Same as above
Current approach aims to fight for best performance we can get from topo map by utilizing the following key concepts: - Event notification (notify NB about topo change) is handled by async task; - Events received from devices are pushed into queue for processing; These events then processed asynchronously, without blocking the underlying connections, to prevent websocket connections from staggerring completely, and also to serialize the processing of connections in a semi-synchronous manner (events pushed asynchronously, but the processing of them boils down to one-by-one FIFO-mannered processing synchronously) Also added extended support for RT events: RT events now also generate join/leave/migrate events to the NB services, so they can act accordingly. Current implementation also adds barebone support essentials for graph-like presentation of topology, but doesn't implement the graph generation itself (e.g. data is being collected / stored in a way, in which future impl could just simply use it and focus on the graph-generation algorith itself, rather then implementing code that gathers data / tweaks parsers etc; Graph gen was postponed due to lower priority). Signed-off-by: Oleksandr Mazur <[email protected]> Co-developed-by: Sviatoslav Boichuk <[email protected]> Signed-off-by: Sviatoslav Boichuk <[email protected]>
c28a462
to
3bc34fc
Compare
No description provided.