高能物理实验数据跨域访问缓存系统 报 告 人 : 徐 琪 , 王聪 单 位 : 中国科学院高能物理研究所 报告日期 : 2017年7月4日
纲 要 背景与意义 系统架构设计 相关测试 系统展望
背景与意义 高能物理数据处理过程: 事例:一次粒子对撞或者一次粒子间的相互作用 粒子物理研究的基本对象 探测器记录事例,产生原始数据 以二进制格式记录的探测器信号 由计算机产生模拟实验的蒙特卡罗模拟数据,数字化 事例重建 读出Raw/MC Raw数据,处理后产生相关物理信息, 如动量、对撞顶点等。 数据分析 由上千个属性组成的DST Event文件,提供物理学家进 行分析,并最后产生物理结果。
背景与意义 BEPCII/BESIII 大亚湾反应堆 JUNO江门中微子实验 羊八井宇宙线实验 LHAASO高海拔宇宙线观测站 每年产生~100TB原始数据 目前数据量超过3.5PB 未来5年数据量超过5PB 大亚湾反应堆 目前数据量超过400TB JUNO江门中微子实验 每年产生2PB数据 羊八井宇宙线实验 每年产生200TB数据 LHAASO高海拔宇宙线观测站 硬X射线调制望远镜 高能所是WLCG的Tier-2站点,参与ATLAS和CMS实验
背景与意义 传统的文件级管理面临的挑战: 全数据扫描,筛选时间长 基于文件的缓存效率低 基于文件的传输Overhead高 万亿级事例数据库 传统方式:基于文件的数据管理 事例文件 基于文件的事例过滤和筛选 基于文件的事例读取与分析 基于单域的事例文件管理 本项目:基于文件和NoSQL数据索引的融合数据管理 基于数据库的事例过滤和筛选 基于事例的并行处理 跨域的事例数据管理 事例特征抽取 事例索引、检索、缓存 万亿级事例数据库
背景与意义 Dst文件跳读行为严重! Dst文件大小为478.75MB,read读取文件大小为22MB,读取文件比例为4.6%。
背景与意义 跨地域数据整合-高效的数据传输: 大型高能物理实验往往由国际合作单位共同贡献资源形成分布式计算系统,比如WLCG、BES Grid等。传统的 计算方式是事先将数据传输到目标站点,然后再将计算任务调度过去运行。 随着网络带宽的提升,全网调度计算任务,数据远程访问成为未来的发展趋势。一般局域网的时延在1ms以 下,而中国到欧洲的广域网时延能达到200ms左右,在这种情况直接使用文件系统I/O访问基本无法工作,急需 要求研究高带宽的远程I/O访问技术。 图 : 相同带宽条件下,随着延迟增加,I/O性能快速下降
背景与意义 系统设计意义: 实现高能物理海量数据的高效管理、快速处理以及远程访问。 将远程跨站点的数据整合成统一视图,提供“近本地化”访问性能。
系统架构设计 框架结构: 事例特征抽取 事例索引数据库 事例传输 事例缓存 事例访问接口 High Energy Physics Offline Software System(BOSS,SNiPER) High Energy Physics Data Storage System(Lustre,GPFS,EOS…) Event-oriented Scientific Data Management System Data Flow Control Flow Event-oriented Caching System Event Index Database Event-oriented Data Transfer System Event Tag Extractor
系统架构设计 定义并实现了跨域、跨站点事例数据访问接口。 实现远程数据透明访问。 支持跨域的数据查询、目录列表。 目前已实现文件级别的跨域访问。
事例特征抽取与存储 数据入库流程: 事例特征抽取模块:扫描实验数据存储系统,从中抽取出物理学家过滤事例的特征量,并保存到事例索引数据库中。 FileDB (hbase/RDMS) EventDB (hbase) 分布式文件系统 事例文件 RAW, ESD/DST, AOD, Site A AOD … Site B 数据入库流程: 事例特征抽取模块:扫描实验数据存储系统,从中抽取出物理学家过滤事例的特征量,并保存到事例索引数据库中。 本平台需要在数据准备阶段(即事例元数据由DST文件导入HBase数据库时)进行一系列的计算和数据重组工作,数据入库流程如图所示。 EventDB: 事例基本信息:RunID, EventID,FileID,VersionID … 物理意义:TAG 由实验组定义TAG组成 数据库建立多维索引,引入TAGSET FileDB: 记录文件逻辑名(UUID)与物理名(Site:PATH)的对应关系 文件基本信息:FileID,SITE,PATH 扫描已有DST等文件或重建完成后产生。
EventDB 事例特征索引示例图: Hbase主键采用按字典序排序的索引结构,通常缓存在内存中,有很好的查询效率。 Hbase的Rowkey:事例的属性名及其具体值编码。支持二分查找。 进行查询条件归并。满足同一条件的所有事例信息可以在一次查询中返回
EventDB 1、事例获取速度超过25W/s; 2、等值条件下性能最高提升近7倍的性能。
TransferD 基于tornado的通用数据传输.Tornado是FriendFeed使用的可扩展的非阻塞式web 服务器及其相关工具的开源版本,是属于facebook的一个开源项目。Tornado 和现在的主流 Web 服务器框架有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其非阻塞的方式和对 epoll 的运用,Tornado 每秒可以处理数以千计的连接。 平台使用nginx提供负载均衡、反向代理服务,在后端服务器上可以部署多个Tornado实例。通过Supervisor控制Tornado app,然后再通过nginx对Tornado的输出进行反向代理。
TransferD 针对该平台,对tornado的架构进行改良,框架为: 1.最底层的EVENT层处理IO事件; 2.TCP层实现了TCP服务器,负责数据传输; 3.HTTP/HTTPS层基于HTTP协议实现了HTTP服务器和客户端; 4.最上层为WEB框架,包含了处理器、模板、数据库连接、认证、本地化等等WEB框架需要具备的功能。
TransferD 核心实现: Tornado RequestHandler,Application,Asynchronous Http client 核心功能: Threading 分流,分块发送请求,进行二进制文件的传输 客户端请求: transread("202.122.37.90:28001","/home/wangcong/leaf/upload/night.mkv","/root/leaf/night.mkv","0","0",0,800*1024*1024); 服务器端响应: 权限的判断,请求的响应,数据发送 数据下载:
TransferD 核心实现: Tornado RequestHandler,tornadostreamform,Asynchronous Http client 核心功能: Threading 分流,分块发送请求 客户端请求: transupload("202.122.37.90:28001","/root/leaf/night.mkv","/home/wangcong/leaf/upload/night.mkv"); 服务器端响应: 权限的判断,请求的响应,数据写入,返回服务器端元数据 数据上传:
CacheD File Plugin接口:为XROOTD提供文件操作调用接口,如下表所示,实现用户访问透明化。 Daemon守护程序:以Service的形式实时监控客户端传输的控制流信息,进行相应的消息响应操作。 MetaD接口:与元数据数据库(Ramcloud)进行通信,读写本地缓存服务器元数据信息,接口如下表所示。 文件视图管理模块:以lseek的模式生成相应的空洞文件目录结构,提供可视化的文件视图。 数据实体哈希分布管理模块:通过哈希算法将数据块写入相应磁盘的(fallocate预分配)物理空间,物理文件与相应的文件视图一一对应,使本地(分站点)文件操作更简洁化。
CacheD
CacheD CacheD中设计了syslog模块,其中包括syslog_run和syslog_usr,其中syslog_run记录CacheD系统在运行中的各种运行状态信息作为系统运行维护的日志文件。syslog_usr记录用户id访问文件filename等访问信息,系统通过一定量的深度学习算法实现用户行为分析,进行目标数据的预取,减少用户下次访问时的远程传输时间开销,很大程度的提高用户访问数据的性能。
用户访问接口 采用高能物理计算常用消息传输框架XrootD,通用性强 实现用户访问无差异化,不改变用户操作习惯,访问透明化
相关测试 测试环境: 服务器端: 202.122.37.90:28001 (ihep) 客户端: 210.75.234.23(chengdu) 8*Intel(R) Xeon(R) CPU E5-2407 v2 @ 2.40GHz 2*QEMU Virtual CPU version 2.4.1 Nginx 反向代理,负责负载均衡(28003,28004) 向202.122.37.90:28001发送请求 Supervisor进行工作进程监控,管理,重启等
相关测试 eos transfer 网络环境:iperf测网络带宽80MB/s 读取800MB的文件 读取性能: 4MB/s 70MB/s 写入性能 15MB/s 60MB/s Md5文件校验:
系统展望 优化数据库检索性能 实现用户及消息的安全验证 实现事例数据的自动校验及重传 优化缓存模块多线程消息处理队列 通过深度学习算法,提供数据预读判断模块 优化系统传输及消息处理性能
谢 谢!