Skip to main content
QUICK REVIEW

[论文解读] The StoreGate: a Data Model for the Atlas Software Architecture

P. Calafiura, C. Leggett|ArXiv.org|Jun 14, 2003
Advanced Data Storage Technologies参考文献 3被引用 11
一句话总结

StoreGate 数据模型为 ATLAS 实验的 Gaudi 软件架构提供了一个灵活、高效且可扩展的内存内数据管理系统,支持基于类型和算法的对象检索,具备透明持久化和缓存故障处理功能。它支持通用用户类型,通过自动标识符生成避免用户定义键,并使用基于策略的 C++ 模板实现编译时可配置性和高性能。

ABSTRACT

The Atlas collaboration at CERN has adopted the Gaudi software architecture which belongs to the blackboard family: data objects produced by knowledge sources (e.g. reconstruction modules) are posted to a common in-memory data base from where other modules can access them and produce new data objects. The StoreGate has been designed, based on the Atlas requirements and the experience of other HENP systems such as Babar, CDF, CLEO, D0 and LHCB, to identify in a simple and efficient fashion (collections of) data objects based on their type and/or the modules which posted them to the Transient Data Store (the blackboard). The developer also has the freedom to use her preferred key class to uniquely identify a data object according to any other criterion. Besides this core functionality, the StoreGate provides the developers with a powerful interface to handle in a coherent fashion persistable references, object lifetimes, memory management and access control policy for the data objects in the Store. It also provides a Handle/Proxy mechanism to define and hide the cache fault mechanism: upon request, a missing Data Object can be transparently created and added to the Transient Store presumably retrieving it from a persistent data-base, or even reconstructing it on demand.

研究动机与目标

  • 设计一种可扩展且高效的 ATLAS 软件架构数据模型,支持在黑板式系统中动态注册和检索数据对象。
  • 通过将数据生产者与消费者解耦,利用集中式临时数据存储,最小化重建算法之间的耦合。
  • 提供一种灵活、可扩展且高性能的机制,通过类型、算法来源和用户定义键来识别和管理数据对象。
  • 通过 Handle/Proxy 机制实现透明持久化和缓存故障处理,按需检索或重建缺失的数据对象。
  • 通过使用 Boost 概念和基于策略的设计模式进行编译时检查,确保类型安全和内存安全。

提出的方法

  • 设计一种类似字典的数据存储(StoreGate),在临时内存存储中管理数据对象,其所有权和生命周期由系统控制。
  • 采用两级标识符系统:首先按数据对象类型(例如,TrackCollection),然后按生成它的算法实例,实现对同类型多个集合的区分。
  • 为每个数据对象引入模板化的 DataBucket 包装器,通过类型特性系统嵌入唯一 ClassID,即使对于非 DataObject 派生类型也是如此。
  • 使用 Boost 的概念检查机制,在编译时验证用户定义的键类型是否满足所需属性(例如,排序性、持久化性),确保类型安全。
  • 利用基于策略的设计,为如 ElementLink 等组件在编译时组合存储和索引策略,生成高度优化的、类型特定的链接类。
  • 使用基于文本的 ClassID 数据库在编译时分配和验证唯一标识符,并在运行时检测冲突。

实验结果

研究问题

  • RQ1如何在支持多种数据类型和访问模式的高能物理软件堆栈中,高效支持动态、松耦合的数据访问?
  • RQ2哪些机制能够实现在不修改客户端代码的前提下,实现透明持久化和按需对象重建?
  • RQ3如何在不需用户定义类型继承共同基类的前提下,支持通用用户定义类型(例如,STL 容器)?
  • RQ4哪些设计模式能够在保证类型安全和高性能的同时,实现可扩展性和运行时灵活性?
  • RQ5如何在支持复杂、特定应用的访问模式的同时,最小化开发人员在键管理方面的负担?

主要发现

  • StoreGate 有效实现了算法代码与数据访问的解耦,减少了接口爆炸,提升了 ATLAS Gaudi 框架中软件的可维护性。
  • 基于类型和算法来源的标识机制,实现了即使存在多个同类型集合时,也能高效且无歧义地检索数据对象。
  • 通过集成 Boost 的概念检查机制,确保用户定义的键类型在编译时即有效,防止运行时错误,提升代码正确性。
  • 基于策略的设计使得系统能够在编译时生成高度优化的、类型特定的链接和代理类,实现高性能且运行时开销极小。
  • 该系统已在多个版本中保持稳定并投入生产使用,历经两次重大重构,显著提升了鲁棒性和性能,满足了 ATLAS 触发系统严苛的需求。
  • 该设计已与 LCG 社区共享,表明其适用范围不仅限于 ATLAS,也验证了其架构合理性与可重用性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。