发电机动态数据管理系统一致性插件
dynamo-consistenc的Python项目详细描述
发电机一致性是发电机动态数据管理系统的一致性插件。 即使dynamo控制并跟踪计算站点之间的文件传输历史, 需要单独检查以确保在用户或系统错误期间不会丢失或累积文件。 例如,停电后无法再访问文件的站点, 可能导致整个数据管理系统出现其他问题。 由于缺少文件,从站点请求到另一站点的传输将失败。 对于假定存在本地文件的生产作业,站点选择不正确。 最后一个磁盘副本也可能丢失,从而导致用户请求数据的延迟。 当被认为要删除的文件仍在磁盘上时,会导致另一种类型的不一致。 这会导致未被访问的文件浪费磁盘空间,除非是偶然的。 dynamo一致性通过定期列出每个远程站点和 将列出的内容与dynamo的库存数据库进行比较。
该软件包还包括许多可以独立导入的模块 创建自定义一致性检查运行。 可以通过执行以下操作对站点进行简单的一致性检查 安装dynamo实例时:
from dynamo_consistency import config, datatypes, remotelister, inventorylister config.LOCATION = '/path/to/config.json' site = 'T2_US_MIT' # For example inventory_listing = inventorylister.listing(site) remote_listing = remotelister.listing(site) datatypes.compare(inventory_listing, remote_listing, 'results')
在这个例子中, 清单中而不是站点中的文件lfn列表将位于results_missing.txt。 站点上而不在清单中的文件lfn列表将位于results_orphan.txt。 可以重新实现listing函数以执行所需的检查。
安装
dynamo一致性要求XRootDpython模块单独安装。 此外,它还使用dynamo动态数据管理包来获取库存清单 并报告一致性检查的结果。 在安装期间,以发电机一致性安装任何其他所需的软件包。
最简单的安装方法是通过pip:
pip install dynamo-consistency
源代码在GitHub上维护。 存储库的setup.py支持其他典型的setuptools方法。