paper3—Algorithm1-Engine-Trigger-on-FCD—temp
来源:互联网 发布:windows日志在哪里 编辑:程序博客网 时间:2024/05/17 00:52
//source code: /run/media/root/E6B2798BB279614B/.../PAPER/paper-3/twin-engine-trigger-code/server-client-pthread-c
----------------------------------------------------------------------------------
Description: when FCD start, this algorithm will run as a deamon
normterm: normal termination;
normterm=0, SMD is not normal termination;
normterm=1, SMD is normal termination;
smdtime: time of receiving heartbeat from SMD last;
selftime: the most current time of FCD being active;
initconn: Initial connection from SMD to FCD;
initconn=1, initial value is 1;
downtime: suppose server restart time is 30s;
select selftime from fcd_state_table where id=1;
downtime=currenttime - selftime;
update fcd_state_table set selftime=currenttime where id=1;
PROCEDURE: MAIN
socket();
bind();
listen();
while true do
accept(); //waiting for connect from SMD
pthread_create(THREAD);
done
END PROCEDURE
PROCEDURE: THREAD
receive guestname from SMD;
select normterm from user_table where username=guestname;
select processid from process_table where username=guestname and state=active and exectime≈current;
while true do //communication between FCD & SMD
select smdtime from user_table where username=guestname;
period=-1; //used to determine whether SMD access FCD continuously
if receive heartbeat from SMD then
period=currenttime - smdtime;
end if
update user_table set smdtime=currenttime where username=guestname;
if 0< period< 8 or initconn then //normal visits
send heartbeat to SMD;
send information for current process to SMD;
initconn=0;
end if
if receive finish from SMD then //normal termination
update user_table set normterm=1 where username=guestname;
exit; //guest finished his tasks
end if
//server restart, process is not normal end
//after disconnect, SMD reconnect FCD
if downtime > 30 and !normterm or receive reconnect from SMD then
FCD receive current process information from SMD;
update correlative tables where processid=processid;
end if
sleep 1s;
done
END PROCEDURE
----------------------------------------------------------------------------------
Description: when FCD start, this algorithm will run as a deamon
normterm: normal termination;
normterm=0, SMD is not normal termination;
normterm=1, SMD is normal termination;
smdtime: time of receiving heartbeat from SMD last;
selftime: the most current time of FCD being active;
initconn: Initial connection from SMD to FCD;
initconn=1, initial value is 1;
downtime: suppose server restart time is 30s;
select selftime from fcd_state_table where id=1;
downtime=currenttime - selftime;
update fcd_state_table set selftime=currenttime where id=1;
PROCEDURE: MAIN
socket();
bind();
listen();
while true do
accept(); //waiting for connect from SMD
pthread_create(THREAD);
done
END PROCEDURE
PROCEDURE: THREAD
receive guestname from SMD;
select normterm from user_table where username=guestname;
select processid from process_table where username=guestname and state=active and exectime≈current;
while true do //communication between FCD & SMD
select smdtime from user_table where username=guestname;
period=-1; //used to determine whether SMD access FCD continuously
if receive heartbeat from SMD then
period=currenttime - smdtime;
end if
update user_table set smdtime=currenttime where username=guestname;
if 0< period< 8 or initconn then //normal visits
send heartbeat to SMD;
send information for current process to SMD;
initconn=0;
end if
if receive finish from SMD then //normal termination
update user_table set normterm=1 where username=guestname;
exit; //guest finished his tasks
end if
//server restart, process is not normal end
//after disconnect, SMD reconnect FCD
if downtime > 30 and !normterm or receive reconnect from SMD then
FCD receive current process information from SMD;
update correlative tables where processid=processid;
end if
sleep 1s;
done
END PROCEDURE
0 0
- paper3—Algorithm1-Engine-Trigger-on-FCD—temp
- paper3—Algorithm1-Engine-Trigger-on-FCD—temp
- paper3—Algorithm2-Engine-Trigger-on-SMD—temp
- paper3—Algorithm2-Engine-Trigger-on-SMD—temp
- Algorithm1——一组数据求出max1和max2
- ORACLE TRIGGER ON DDL
- jquery off on trigger
- Oracle —— before row trigger OR after row trigger
- paper4—Multi-MPE_Trigger_Algorithm—temp
- DML statment cannot operate on trigger.new or trigger.old
- Using WITH Clause to mimic App Engine Temp Tables
- I/O上的等待事件 —— direct path read temp、direct path write temp
- jquery——trigger的联动
- jquery——trigger change的联动
- leetcode algorithm1 twoSum
- oracle trigger for table on commit
- oracle trigger for table on commit
- Django on Google App Engine
- C++构造函数和析构函数
- django 个人博客系统开发 - 图片上传
- nyoj 130 相同的雪花
- 基于FPGA的画面分割器
- C#学习笔记之string
- paper3—Algorithm1-Engine-Trigger-on-FCD—temp
- 如何成为一个C++高级程序员
- 算法性能评价
- Qt基础学习(6)------多页面切换之QTabWidget
- C++基础实例-类(6)
- InnoDB删除数据后磁盘空间如何释放
- Android 触摸事件机制(二) Activity中触摸事件详解
- android实现cordova 配置安装及项目创建导入eclipse添加对话框插件
- CentOS 7下Adobe Flash Player的安装、更新和卸载