Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

MonetDB网络通信分析 PDF 下载


分享到:
时间:2021-11-14 08:30来源:http://www.java1234.com 作者:转载  侵权举报
MonetDB网络通信分析 PDF 下载
失效链接处理
MonetDB网络通信分析  PDF 下载



 
本站整理下载:
提取码:9nty 
 
 
相关截图:
 
主要内容:

第一,数据库初始化与守护进程
MonetDB初始化采用  monetdbd create ~/my-dbfarm 
Monetdbd程序,在源代码中是由Merovingian.c编译。在源代码中,可以看到create仍然是一个command。在《Monetdb的启动过程分析》分析中,已经清楚这是通过socket给服务发送一个执行的命令。而实际执行,是调用了control.c发送命令。现在就是要分析数据库初始化时,是如何先构建了socket监听,然后获得发送的命令,并且执行这个命令。
 
 
 
守护进程仍然是merovingian.c产生的,在main函数的505行开始,程序创建了进程。
 
 
这里,运用了pipe2函数创建管道。通过fork函数创建子进程,并且通过子进程打开文件描述符,并且把管道的写入给文件描述符。
父进程关闭管道的写入文件描述符,打开管道的读文件描述符。并且读取管道内容。
 
后面的程序,就是判断命令参数,进行执行命令准备。在704行,开始初始化socket连接。以及初始化日志、数据库名称等。
 
 
 
 
 
在后面,初始化线程信息,然后通过pthread_mutex_init初始化互斥锁,防止多个线程执行内存变量不安全。接着,在890行开始创建线程。
 
 
 
后面一共有4处创建线程,分别是logListener、controlRunner、discoveryRunner、doTerminateProcess。
 
其中,controlRunner是在controlrunner.c实现的函数。
 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐