- 博客(3)
- 收藏
- 关注
原创 Linux网络编程模型和Ceph Async 模型探讨
IO多路复用所谓的I/O多路复用,就是可以监控多个socket上的IO请求。允许多个socket在可读或可写准备好时,应用能被通知到,这样应用就可以一次非阻塞的处理多个socket相关的IO请求。 IO多路复用的有三种实现方式:SelectI/O复用模型早期用select实现。int select (int n, fd_set *readfds...
2018-04-16 19:09:57 787
原创 ceph Async 网络通信源代码分析(二)
在上文中,主要介绍了相关的类,本文介绍相关流程。连接相关的流程介绍Server端监听和接受连接的过程这段代码来自 src/test/msgr/perf_msgr_server.cc,主要用于建立Server端的msgr: void start() { entity_addr_t addr; addr.parse(bindaddr.c_str()); ...
2018-04-15 01:04:49 834
原创 Ceph Async 网络通信源代码分析(一)
在Ceph的网络通信模块里,早期一直使用 Simple 这个网络通信模块。由于其实现简单,最早被ceph采用并用于生产环境。其最大的缺陷是:针对每个Connection创建两个线程,一个用于接收消息,一个用于发送消息。在大规模的集群环境下,随着连接数的增多会产生大量的用于通信的线程,极大的影响性能。ceph在L版本中把Async网络通信模型做为默认的通信方式。Async实现了IO的多路复用,使...
2018-04-15 00:54:23 1460
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人