主要工作
相关文章
1)思想:与tracker主流程一样,采用主线程监听得到fd,dispatch子线程(默认4个工作线程)进行处理;
2)创建的线程数:会创建与tracker server数量相等的report thread,用于向tracker server发送相关信息,会创建4个工作线程用于处理任务,会创建一个调度线程,用于执行一些定期任务,如:log_sync_func,fdfs_binlog_sync_func等,还会创建一些IO读写线程,用于读写目录,默认一个目录有一个读线程和一个写线程,线程函数都为dio_thread_entrance函数;
3)主要处理过程:主线程往管道写入得到的连接的相关信息(其实是写入一个fast_task_info地址),工作线程会调用storage_recv_notify_read函数得到该地址,然后依据不同的状态进行不同的处理,具体见storage_recv_notify_read函数;
相关数据结构
1 | struct nio_thread_data |
相关代码
1 | // fdfs_storaged.c->main函数 |
1 | // 主线程函数 |
本文作者:
L
本文链接: http://damotiansheng.github.io/uncategorized/2016-12-04/fastdfs之storage主流程.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: http://damotiansheng.github.io/uncategorized/2016-12-04/fastdfs之storage主流程.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!