ceph async网络模块listen时序图
2017-03-29 21:49:14 0 举报
为你推荐
查看更多
在Ceph的异步网络模块中,listen时序图描述了客户端与服务器之间的通信过程。首先,客户端向服务器发送连接请求,服务器接收到请求后进行监听。接着,服务器将请求放入等待队列中,并开始处理其他客户端的请求。当服务器处理完当前请求后,它会从等待队列中取出下一个请求并进行处理。这个过程会一直持续下去,直到所有客户端的请求都得到处理。最后,客户端与服务器之间的通信结束。整个过程是异步的,这意味着服务器可以同时处理多个客户端的请求,提高了系统的性能和吞吐量。
作者其他创作
大纲/内容
AsyncMessenger
2. 创建和启动NetworkStack(get、start)
3. 创建worker及其线程
6. 初始化processor(如果是posix模型,仅仅会创建1个processor,并且这个processor包含的是第0个worker)
8. 初始化AsyncMessenger完毕
4. worker初始化完成
7. 初始化processor完毕
9. bind
10. bind and listen
Worker
processor相当于Simple网络模型下的Acceptor,负责accept server端listen的fd的链接。配置文件会配置多个worker,对于posix协议的后端,(内核的实现)线程间会共享同一个监听表(listen table),ceph会只选择用一个epoll来管理listen fd(无惊群),但是其他的worker会负载均衡地管理conn fd。所有的net IO都会在worker的线程做。
16. start(扔到worker中)
13. bind and listen完毕
11. listen
Processor
14. bind完毕
5. NetworkStack初始化完成
18. ready完成
12. listen完毕
其中包含的DispatchQueue的启动等忽略了
OSD
NetworkStack
15. ready
LOOP
1. 创建messenger(Messenger::create)
17. start完成
收藏
0 条评论
回复 删除
下一页