数据发布模块采集存储模块move.pptVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据发布模块采集存储模块move

预期:为EAST的持续放电设计一套基于mdsplus的实时数据采集系统 (系统要求:实时,高采样率,稳定) 初步方案 TM 数据采集组 实时数据采集系统设计与实现 TM 汇 报 人 : 黄文君 导 师 : 王华忠 2012-11-16 后续计划 系统实现 系统设计 需求分析 目录 需求分析 数据存储形式在聚变领域更国际化,易访问 Mdsplus:存储数据多样化;多语言访问;存储效率高 Decompress算法 原始dat文件 Lzo文件 Compress算法 数据存储访问更实时,高效 系统设计 客户端 EastScope WebScope 数据发布服务器 跨网段:所网,采集网 ①Request NAS数据存储 Request 历史炮号 Request 当前炮号 数据存储服务器 数据发布模块 采集存储模块 MOVE 2000多道信号 采集控制台 TCP/IP传输 采集存储模块 -分时间片机制+双缓冲 基本原理: 将整个长的时间片分成一段段的时间片,以时间片为单位,这样就能实时看到某个时间片的数据,无需等到一炮实验结束后,才能看到数据 。。。。 0~5s 5~10s 995~1000s Empty(0~5s)(15~20S) Occupied(5s-10s)(20s-25s) 生产者 消费者 存储模式修改 -双缓冲模式性能分析 双缓冲模式: 分析1:当采用双缓冲时,如果消费者速度慢,Occupied数据没拿走,生产者又写数据进去了,那数据丢失了。如果多缓冲,那生产者,消费者每次检查缓冲数据过多,代价更大 分析2:两者都需要时刻主动循环检查缓冲区状况,这样浪费计算机资源,盲目性比较大 分析1 : (具体分析)以每台服务器承担两台采集机而言: 每个通道大小:250K*5s*2B=2.5MB 服务器承载数据量大小为2.5MB*100(通道数/台)*2台=500MB 以千兆网络端口(传输速度125MB/S),端口接收时间5s(但网络拥塞处理机制) 但是存储速度,每个通道大概0.04s~0.08s(100MB/s),但是当并发程度大时,会出现速度的不确定性(会出现5s内无法将所有通道数据存储起来)。双缓冲模式没有缓冲存储机制,如果当前缓冲没有存储完毕,数据会被覆盖。 生产者 消费者 存储模式修改 -生产者/消费者模式分析 Flag_p = 0 P(prod_sem)//prod_sem— 产生数据-buf(Flag_p++) V(cons_sem)//cons_sem++ 信号量: prod_sem=m cons_sem=0 Flag_c= 0 P(cons_sem)//prod_sem— buf(Flag_c++)-存储起来 V(prod_sem)//cons_sem++ 我不是 龟速! 核心代码: 封装了三个信号量操作 存储模式修改 -生产者/消费者代码 存储线程 采集线程 存储函数修改 新函数特点: 优点: 存储数据的同时,存储了时间。无需像以前需提前存储时间轴 通过DIM_OF命令就能拿到时间,就能拿到缩略数据 代码足够简单,增大了服务端代码的移植性 缺点: 速度稍微慢了些(0.5MB,0.026948变到了0.04s),但是由于存储 模式的修改,影响不大。只是稍微增大了延时时间。 存在的必要性:类似于google Map(先显示信号整体趋势[2000个点],再细看) 解决方案:用空间换时间。 单独存储缩略数据,供用户第一次访问;这样所有用户第一次访问数据(A001)时, 都不需要自己抽取数据,而只需要访问缩略数据(A001_s)即可 和以前不同点:尽量保持写数据进程的通用性,也为了提高写数据进程的速度。 将写缩略数据进程剥离出来,写数据进程每隔20s通过消息队列通知写缩略进程。 缩略进程就负责抽取数据;然后写数据进程继续工作,不影响写数据进程速度。 缩略数据修改 SetTimeContext(起,终,(终-起)/2000) DIM_OF MdsValue(时间) MdsValue(数据) Build_signal(数据,时间) 缩略数据代码细节 存储模式修改 -细节修改 1:多进程调用比多线程调用,并发存储速度要快。所以将原来的多线程程序改成现在的多进程 2:利用mdsplus的分布式特性,将east树的脉冲树的写入,转换成对多颗子树(east_ts1,east_ts2..)的单独写入,减少并发性 3:时间片拼接机制 由于理论上每片60MB时Mdsplus读

您可能关注的文档

文档评论(0)

zhaoxiaoj + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档