Skip to content

AthenaServices + AthenaPoolExampleAlgorithms: Prepare ThinningCache for setting lossy float compression information

This MR builds on !35326 (merged). It extends Scott's recent updates on thinning (to accommodate per-stream variable selection in AthenaMT) to use the same infrastructure for setting/getting the lossy float compression information.

The main idea here is to store the lossy float compression information (which is essentially a map that holds a set of AuxIDs that should be compressed for each compression level) into the ThinningCache as opposed to the EDM objects themselves. When fully implemented, AthenaOutputStream is going to store the SG::CompressionInfo into the event store. ThinningCacheTool inserts this into a ThinningCache and one can query the cache via ThinningInfo. The latter is actually passed onto SG::copyAuxStoreThinned where the thinning/selection/compression is applied.

This MR puts everything into place for filling the ThinningCache for the lossy float compression information. However, it's not yet used (i.e. the last bit above), which will be implemented in an upcoming MR. Also, once we switch to this new method, we won't need the IAuxStoreCompression that is implemented in AuxContainerBase anymore. So, that bit will also be cleaned up.

This MR is self-consistent and it's already fairly hefty. So, in order to ease the review, I'm submitting this now and will complete the development in a future MR, which will also include the clean-up (but I might also break that bit down too).

cc: @gemmeren @mnowak @ssnyder

Merge request reports