The xHAL serilization is too slow
Summary
When trying to return a significant amount of data via a non-optimized (for rpcsvc
) type, the serialization is extremely slow, i.e. taking minutes for 1 MB of data. This prevents taking an S-bit rate scan at p5 with 12 chambers, 24 VFAT per chamber, over the full DAC range.
Steps to reproduce
- Launch an S-bit rate scan over the full DAC range with 12 chambers and 24 VFATs per chamber.
- Wait 5 minutes until the scan crashes due to the RPC method reply timing out.
What is the expected correct behavior?
Any serialization should be done in a reasonable amount of time and not crash the RPC connection.
Environment
- Version used: 60bec733
- Operation System: CC7.6 on
gem-daq01.cms
andCTP7-GENERIC-20180529T153916-0500-4935611
oneagle16
(at p5)
Possible fixes
In xHAL, the serialization of the function parameters and return values should be done with an efficient library. My researches orient me towards cereal, a well-documented, fast, modern, header-only, C++11 (we do not have more recent on the CTP7), and BSD license serialization library.
This must be considered as an intermediate step to the removal of the legacy rpcsvc
code.