While debugging the issue reported in ATLPHYSVAL-861 I realized one problem w/ the way we configure DAOD ROOT settings. Currently, we default to a memory-based AutoFlush setting of 20 MB for all DAODs except for PHYS and PHYSLITE, for which we use event-based values. However, SharedWriter w/ parallel compression doesn't play nicely w/ memory-based AutoFlush. When the user wants to produce any format other than PHYS or PHYSLITE, the output caches are kept in memory and never flushed to disk until the end of the job. So, the memory profile for a derivation job producing PHYSVAL looks like this:
In this MR I update the logic in a way that if the user asks for SharedWriter w/ parallel compression, we default to 500 events instead of 20 MB for AutoFlush. Moreover, I noticed that the PHYSVAL samples are huge, almost as big as AODs, if not larger! For that format we now default to 100 events. After these changes here is the memory profile for the same job above:
Of course these numbers are eyeballed. @gemmeren, please let me know what you think (especially if you'd prefer another way to deal w/ this). Many thanks.