项目标识: LC-屏幕校正, SR-StarRiver路灯控制, SE-SkyEye无线监控
20141103
- LC: 补项目申请单
- 升级 Redmine 2.5.2 => 2.6.0
- 导出PDF对中文的支持更完善
- 升级 GitLab 7.2.1 => 7.4.3
- SR: 建压力测试数据库与曾磊测试带5000盏灯的性能
- SR: 建AES通信测试数据库,测试与唐德的加密通信
- SR: 调试AES密钥下发
- 需唐德修复控制器逻辑
20141104
- SR: 考虑新数据库表设计
- SR:
202.11.4.69
上搭建服务器和模拟控制器进行压力测试 - SR: 记录5000盏灯负荷下,StarRiver、StarRiver Server的资源占用情况
20141105
- SR: 寻找VC6下使用64位整形以及字符串转换为64位整形的方法
- 曾磊的客户端当前是32位的,数据库里任务ID是64位整形,仅用32位不足以满足长期高负荷运行需求。问题主要出在VC6编译器不支持当前C++标准的64位类型和标准库。
- 以压力测试5000盏灯,后台加前台定时查询都开启的负荷,15:06运行到08:56一共15219425个任务。仅用32位ID的话,211天就会达到
numeric_limits<uint32_t>::max()
,而用足64位ID则可以使用2.49e9年才达到numeric_limits<uint64_t>::max()
。 - 两种解决方案
- 客户端直接不读ID,使用MD5来取任务
- 客户端用微软的自定义类型
__int64
,自写函数从字符串转换
- SR: server链接的boost.asio库从1.55.0升级到1.57.0。
- 更新移除了一些Windows平台下对 deprecated socket api 的使用
- SR: 压力测试分析
20141106
- SR: 浏览唐德发来的CSA新协议
- SR: 调整任务处理流程以兼容通信程序作为服务端的模式
20141107
- 参观工博会
- SR: 检查压力测试的数据库log,寻找是否有slow query
- 历史记录求平均的trigger耗时长,平均162.44s
- 删历史记录的trigger耗时长,平均17.19s
- 优化这两个query:慢的原因都是因为对timestamp类型的字段做了函数变换,于是用不了索引。写了优化的sql之后,能利用索引了,快了几个数量级……
20141110
- SR: 优化一个慢查询
- 从详细状态历史汇总到每小时的历史,以前的设计每天做一次,log中的慢查询平均313.91s。
- 现优化为每小时汇总上一个小时的历史,log中的慢查询平均25.77s。
- 浙江龙丽丽龙隧道灯需求讨论
- SR: 调整MySQL event执行策略,减少lock时间。
20141111
- SR:
TaskDone
历史记录多达72GB时,删除旧任务的事件耗时过长,几乎无法完成。- 经过如下步骤,此后的
OPTIMIZE TABLE tbl_name
能回收磁盘空间了- 备份全部数据库
- 设置
innodb_file_per_table
- 清空全部数据库
- 恢复备份
- 调整清理历史的事件,改为每日零点清除全部旧历史
- 效果:
- 磁盘空间占用从80G降回5G
- 每张表存放在独立的文件中
- 经过如下步骤,此后的
- SR: 调整StarRiver的测试压力。频率从3s/10s降至60s/300s。
- 后台自动查询的频率保持10s/30s。
- MySQL load从3.5降至0.4
20141112
- 解决
202.11.4.63
无法访问外网的问题 - SR: 修正一个
TaskTodo
未能成功清空的bug。 202.11.4.63
上的MySQL升级至官方的5.6.21版- 部分配置不向下兼容,做了调整
- SR: 数据库新的表结构设计讨论(曾磊、刘海斌)
20141113
- 帮顾华强解决虚拟机启动不了的问题。替换了一个系统文件,不兼容导致。
- SR: 按照昨天讨论结果修改数据库表结构
- SR: 区分工作模式,client / server
- SR: 开始写
TcpServer
class - 帮范一武debug C++代码
20141114
- SR: 后台自动查询仅在客户端模式下进行
- 服务器模式下的自动查询范围不一样,待实现
- 原来使用的台式机win7系统故障了,开任何一个命令行程序都提示0x0000142错误
- 武工直接换了一台新机器,下午装好VS和依赖的库文件,可以继续开发了
- SR: 服务器模式下,构造一个
tcp_server
监听数据库SystemConfig
表中指定的端口号- 构造一个
ControllerConnectionShTcp
对象,用其中的 data socket 与连入的控制器通信 - 处理类型为
0x0008
的注册指令。- 问题:确认帧发给控制器之后,控制器依旧连续不间断发来登陆帧,这个问题要联系唐德解决。
- 构造一个
- SR: 全部头文件和库路径改成相对路径
- boost用junction建一个soft link在
lib/boost_binary
路径下
- boost用junction建一个soft link在
20141115
- 新机器上恢复超级狗部署环境(秘钥、库文件)
- SR: 服务端模式添加连接池管理,以兼容原有的任务处理流程(未完成)
20141117
- SR: 修复新协议数据帧构造函数的bug
- SR: 扩展原有的回复帧函数,支持自定义响应码
- SR: 修改连接池实现,兼容服务端和客户端两种连接模式
- SR: 服务端接受连接以及新帧结构通信测试通过
20141118
- SR: 服务端模式下实现以下功能
- 控制器不在线处理
- 掉线处理(控制器idle后再次重连已经处理,控制器掉线待测)
- SuperDog 在 Windows 8.1 环境下的使用
- 随开发狗的光盘上软件版本1.1,在 Windows 7 上使用正常,Windows 8.1 上安装驱动失败。
- 邮件询问SafeNet的support,无回复。
- 网上(非SafeNet官网,官网没提供下载)找到了2.2版的软件,安装及使用目前看都正常。
20141119
- SR: 服务端模式下实现以下功能
- 控制器掉线处理
- 定时状态查询
- 专利数据库/专利布局培训
20141120
- SR: 服务端模式功能测试
- SR: 准备调试环境,下周二现场调试。
- SR: 在唐德的笔记本上部署新协议的数据库和服务端,用于测试3G模块通信。
20141121
- SR: 与唐德调试3G控制器的通信
20141124
- SR: 改进读取逻辑,处理3G模块发来的垃圾字节。
- GitLab 升级 7.4.3 => 7.5.1 原先不完整的界面修正了。
- SR: 笔记本上完整搭建 StarRiver Server debug环境,明天与其他厂商联调。
20141125
- SR: 与其他厂商联调。
- 寻找自动化安装MySQL的方法
- 有讨论这个问题的帖子,需要抽时间尝试一下方法是否可行
- SR: 修正3G通信时,受偏移影响错误解析帧格式的bug
20141126
- SR: 更新数据库设计及文档。
- SR: 调整读写逻辑,适应3G通信的延迟、丢包。
- SR: 测试长时间3G通信稳定性。
- SR: 增加一些log记录用于debug。
20141127
- SR: 昨晚又抓到一个
std::bac_alloc
异常,先设法重现它。 - SR: Windows 8.1 64位中文版 环境测试服务端和客户端程序。确认可用。
- SR: 网页版讨论(刘海斌、曾磊)
- User表需添加字段
- 地图处理方式
- 后台更新策略
- SR: 数据库设计及文档更新。
20141128
- SR: 完善服务端模式错误处理。