Evolution of the ROOT Tree I/O
arXiv:2003.07669 · doi:10.1051/epjconf/202024502030
Abstract
The ROOT TTree data format encodes hundreds of petabytes of High Energy and Nuclear Physics events. Its columnar layout drives rapid analyses, as only those parts ("branches") that are really used in a given analysis need to be read from storage. Its unique feature is the seamless C++ integration, which allows users to directly store their event classes without explicitly defining data schemas. In this contribution, we present the status and plans of the future ROOT 7 event I/O. Along with the ROOT 7 interface modernization, we aim for robust, where possible compile-time safe C++ interfaces to read and write event data. On the performance side, we show first benchmarks using ROOT's new experimental I/O subsystem that combines the best of TTrees with recent advances in columnar data formats. A core ingredient is a strong separation of the high-level logical data layout (C++ classes) from the low-level physical data layout (storage backed nested vectors of simple types). We show how the new, optimized physical data layout speeds up serialization and deserialization and facilitates parallel, vectorized and bulk operations. This lets ROOT I/O run optimally on the upcoming ultra-fast NVRAM storage devices, as well as file-less storage systems such as object stores.
arXiv comment9 pages, 8 figures, 1 table, submitted to 24th Computing in High Energy and Nuclear Physics (CHEP'19)
Cited by in corpus (6)
- Potential of the Julia programming language for high energy physics computing
- RNTuple performance: Status and Outlook
- Exploring Object Stores for High-Energy Physics Data Storage
- Parallel Writing of Nested Data in Columnar Formats
- Software Challenges For HL-LHC Data Analysis
- AwkwardForth: accelerating Uproot with an internal DSL