-
Notifications
You must be signed in to change notification settings - Fork 105
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
Tracking Issues for removing operators #474
Comments
Additional notes, on people who would like to use extensive Rust Green threaded application, we believe that the way to go is to use native threadpool such as tokio, rayon, ... We think that this would mean a more direct and intuitive approach to multi threading. |
How about we create a branch called |
So the thing is that we don't have to remove operators directly, we can probably keep them as is in the codebase with some warning before retiring them in couple of versions as well as making the necessary changes at the node level for hot reloading I tend to not be a fan of having big releases as it is always a bit stressful and hard to deal with fixes. I think this is more of the current gitflow paradigm, but then open for discussions. |
Good point! Let's try to keep things backwards-compatible for now then. |
Agreed. We should keep things backward compatible when introducing new programing patterns. There are some good reasons when we introduce concepts of operators for complex use cases, such as stateless operator, stateful operators, fault tolerance/redundancy, etc. |
We plan to (soft-)remove operators and simplify the dataflow YAML file by removing the additional nesting caused by the `custom` field. This commit prepares for that. See #474 for context.
I created a PR at #478 to implement the new dataflow parsing logic without the extra nesting behind the |
Just curious because (again) I'm new to this space. Are the latency / throughput requirements explicit? Something like "Must be faster than |
Hey @Michael-J-Ward, it's not 😅 but in general, I tend to think that being able to have low latency means that you're able to be lean, not have too much slack. Kind of lean management applied to software production. In the case of GPU IPC, it's something couple of people shown interest and it would definitely push the industry forward so let's do it 🔥 |
Looking deeper into the code, I understand the desire to simplify things by removing operators.
@heyong4725 - Could you elaborate? If there are important use-cases that can only be implemented by If they can be removed, then would a path forward look like:
|
Minimal conversion from previous operator api to node api. Ref dora-rs#474
@Michael-J-Ward Originally we have dora operators designed in such that we could potentially offload complex use cases from developers to dora framework thru dora daemon/runtime. However I agree that we can demote the operator which depends on dora framework/daemon and promote node API, keep it simple. We may revisit the operator design in future. |
We plan to (soft-)remove operators and simplify the dataflow YAML file by removing the additional nesting caused by the `custom` field. This commit prepares for that. See #474 for context.
We plan to (soft-)remove operators and simplify the dataflow YAML file by removing the additional nesting caused by the `custom` field. This commit prepares for that. See #474 for context.
We plan to (soft-)remove operators and simplify the dataflow YAML file by removing the additional nesting caused by the `custom` field. This commit prepares for that. See #474 for context.
Context
Dora-rs Operators was built to make Intra Process Communication and makes it possible to run multiple operators within a same process. This could reduce process usage and use green threads instead of OS threads.
Challenges
The problem is that the implementation and abstraction coming with Operators was big and the more we advance in dora:
And we don't see people caring for Intra Process Communication or use deadline time-management functionality.
So we think about depreciating Operators, and favors nodes which is the current
custom nodes
.We'll provide guide to migrate and we'll release a minor version for it.
We will migrate unique functionality within the operators to nodes such as hot-reloading.
API
Python API will look as follows:
with the graph:
The rest will be free for the user to defines in its liking.
For C/C++/Rust, the API will be the current
custom nodes
API and will remove the support for operators.What's next
This should makes using dora a lot more simple.
And reduce the burden for maintainer. We will then focus more on making IPC as efficient as possible in the likes of making GPU IPC available.
Follow Up TODO:
The text was updated successfully, but these errors were encountered: