1. vacuum、writer、checkpointer等进程如何发送统计信息给stats collector
前面已经图文并茂的讲解过,stats collector进程通过UDP方式与其他进程进行通信,在初始化资源时,通过socket()系统函数得到一个全局套接字fd。后续其他进程有统计消息时,通过该句柄,可发送消息给到stats collector。
现在有下面几个几个问题需要进行确认:
1.1 发送的消息报文格式是怎样的?
只有统一格式,stats collector才能成功解析出报文中的有用信息
1.2 不同后台进程发送的统计信息,stats collector进程是如何区分各消息来着哪个进程?
下面这些进程都会向stats collector进程发送统计消息,stats collector必须能够正常接收且解析出来各自匹配对应的消息,才能完成正确统计的功能。
1.3 stats collector如何确保接收消息的完整性?
在知道了消息报文内容格式,消息报文类型之后,stats collector进程还需要判断此消息报文内容是否完整,是否有丢失。 虽然UDP通信无法提供像TCP这样有保证的通信,但是若一个进程收到的所有统计信息内容都缺失、不完整,那这样的统计功能显然毫无意义可言。<