-
Notifications
You must be signed in to change notification settings - Fork 12
Replace RabbitMQ (concrete design notes) #42
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
base: master
Are you sure you want to change the base?
Conversation
|
I am aware of chrisjsewell/aiida-process-coordinator#4, the comments by @giovannipizzi and @sphuber are addressed sporadically in the design notes.
This is mentioned by @sphuber. I think if the priority of tasks and different type of runners are implemented the problem can be addressed gracefully. Followings are mentioned by @giovannipizzi:
In the prototype, before I mock the task pool for se/de the task, I created fake async/sync sleep task in the worker and the throughput I tested can be > 100,000 tasks without any noticeable delay (the bottleneck is then my terminal can not consume the print of so many logs).
In my plan, after the distinguish of runners type and tasks type I think an single async runner is enough to handle > 10,000 tasks per second, which is way more large then the current use case of AiiDA (not for the future if AiiDA is plan to compete with workflow engines for bio-information and ML use cases). Then the slots concept is applied to block function runner only. |
7cffb12 to
770bbf1
Compare
b40433d to
cbfdee8
Compare
cbfdee8 to
d047948
Compare
633eff3 to
665712a
Compare
665712a to
e28e5ce
Compare
draftREADME.mdThe #30 give the explanation and motivation on removing RabbitMQ. I extent on it as a concrete implementation AEP.
The prototype is put in https://github.com/unkcpz/tatzelwurm, I put it in private at the moment and shared only to aiida-core team members. Let me know if you want to take a look.
Go built aep page if need to read as whole post.