Skip to content
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

对于anyflow,如果QPS有1W,需要创建1W个graph实例? #20

Open
lqq-feel opened this issue May 18, 2024 · 1 comment
Open

Comments

@lqq-feel
Copy link

lqq-feel commented May 18, 2024

执行相同的graph,应该只需创建一个图实例即可,只是跑的数据不同而已。图与数据应该解耦合,这样就没必要用池化技术了。

@oathdruid
Copy link
Collaborator

问题分两个方面
1、例如图的绑定函数,静态option,以及图的连接关系等其实独立静态化会有好处,也有个计划是做相关的解耦(graph/vertex/data都拆分实例和metadata),还在抽时间研发当中
2、不过最终还是有动态执行的部分(比如每个实例的数据白板,dag当前的激活运行情况,数据channel的本体等)还是会需要每个并发数对应一份;这里有点类似于线程/协程栈的概念,例如一个服务有1W qps,可能需要500并发数支持,那么其实最终就需要有500个活跃栈(还需要注意qps和并发数并不是一个概念)来保存这『同时在运行中的』状态信息;而这500个栈其实是需要进行池化和轮转使用的

如果是说1的话,确实纯静态信息做分离是很有必要的;

不过如果是讨论2这个问题中,这写并发请求内部的数据管理是否应该统一托管在框架,那么这就是一个设计思路的问题;anyflow的思路是同时管理执行流和数据流,或者通过数据流来管理执行流;所以如果是这个问题,那么『耦合』是设计思路的一部分;

关于2这个问题之前内部的一份设计思路文档脱敏之后也转出来了,可以参考https://baidu.github.io/babylon/docs/anyflow/design.pdf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants