NoSQL用于EPICS控制系统数据归档

粒子加速器是非常复杂和昂贵的装置,EPICS为加速器分布式控制系统提供基础设施,用它来构建由数十甚至数百台计算机组成的复杂控制系统,数据存储是一个非常重要的问题,不仅作为控制系统本身的一部分,而且也是加速器及其实验线的正确运行和使用。Channel Archiver一直被认为是主流 ,它适用于Oracle和MySQL。近年来,出现了NoSQL替代品,如MDSPlus(Consorzio RFX),SciDB(BNL)或Hypertable(IFNF)。

首先我们介绍BEPC-II将MongoDB用于数据归档。NoSQL可以提升数据存储的可靠性、可用性以及可能的未来高级数据分析。

捕获实时加速器数据对于其状态监测和事后分析非常重要。这些信号提供电源、RF设备、真空、束流诊断、定时系统等的状态信息,应该准确可靠地监控和存档。EPICS提供了一套开源软件工具、库和应用程序,被广泛用于为科学仪器创建分布式软实时控制系统。其中一个EPICS工具Channel Archiver已经在现有的加速器控制数据存档系统中广泛使用,但它存在功能、可扩展性、数据迁移等问题。为了解决这个问题,提出了使用MongoDB的新型存档系统,MongoDB是一个面向文档的NoSQL数据库。

对粒子加速器的几种主流归档工具进行一些研究。 Channel Archiver记录来自多个通道的数据,每个通道以不同的速率生成样本。数据存储在二进制索引和数据文件中。 Channel Archiver的设计目标是I/O速度,并且检索工具易于使用。

利用成熟的关系数据库(RDB)技术,如MySQL,Oracle和PostgreSQL,基于RDB开发和采用了许多新的归档工具。与基于原始索引文件的Channel Archiver相比,这些工具显着提高了数据访问和检索性能。然而,关系数据库在可用性,性能和灵活性方面还不足以增加数据量,这在当今面对大数据和各种数据结构时成为一个很大的限制。

NoSQL数据库是在大规模数据存储和处理以及高性能的挑战下开发的,特别是在大规模和高并发应用程序中。MongoDB是一个高性能且可扩展的面向文档的数据库,它以BSON格式存储数据,这是一种结构类似于JSON的动态模式文档。凭借强大的查询语言和对海量数据的高速访问,MongoDB被用作我们系统的底层存储数据库。

BEPC-II也开发了基于Qt的跨平台GUI(图形用户界面)。用户可以在Linux或Windows系统上轻松访问数据库。它由C ++驱动,绘图元素基于Qcustomplot库。

其次我们介绍一款名为HyperArchiver的工具,该工具最初由IFNF(意大利)开发,最终由ESS Bilbao(西班牙)定制。它基于名为Hypertable的NoSQL数据库,专注于大数据集管理,具有最大的可扩展性,可靠性和性能。除了在ESS上进行的更新和进一步定制之外,HyperArchiver还提供了一组GUI,以便与任何通用控制系统轻松使用和集成。用于Hypertable数据检索和HyperArchiver控制的LabVIEW VI和两个跨平台PyQt GUI已经在ESS Bilbao开发并成功测试。

HyperArchiver实际上是对RDB Archiver的修改,它将数据存储到NoSQL数据库Hypertable中,而不是RDB MySQL或Oracle。 Hypertable旨在管理大型商用硬件集群上的数据存储和处理,为机器和组件故障提供弹性。在ESS,它已被证明是MySQL的可靠和可扩展的替代品。此外,其他加速器设施已经表现出他们对HyperArchiver的兴趣,作为Diamond(英国)等传统RDB Archiver的替代品。简而言之,HyperArchiver是标准RDB Archiver的演变版,经过修改后可与Hypertable一起作为主要的底层数据库。 NoSQL数据库的当前趋势在粒子加速器领域似乎很自然。如今,这种设施会产生大量数据,必须立即处理并正确记录。特别开发了NoSQL数据库来管理不一定遵循固定模式的大量数据。此外,它们采用分布式架构,允许可扩展性和对硬件故障的容忍度,这两个问题在任何研究机构中都非常重要。

这项工作的目的是强调EPICS控制系统数据存档领域演变的可行性。这是通过HyperArchiver的示例实现的,HyperArchiver是使用Hypertable而不是MySQL或Oracle的经典EPICS RDB Archiver的定制。然而,大量的NoSQL数据库专注于像Hypertable这样的大型数据集,它们基于不同的数据库或甚至不同的存储方法创建了大量类似的可能性。已经提到了最重要的一些,但没有进一步的参考,因为它们尚未在ESS-B上进行过测试。因此,即使HyperArchiver已被证明是一个优秀可靠的归档客户端,未来遵循的逻辑路径将是测试和比较其他可用方法,以确定每个方法的优缺点,试图弄清楚哪一个更适合每个场景。值得一提的是,这项工作已经在BNL开始实施,他们还创建了一个通用的测试平台来评估各种归档器的开发。

发表回复