Default ODB dump format being JSON breaks tools of existing experiments

Issue #172 resolved
Ben Smith created an issue

Commits b325158 and ccaeeef introduced a new key /Logger/Channels/0/Settings/ODB dump format which specifies what format the begin/end-of-run ODB dumps are in. However the default is set to "json" rather than "xml". On SuperCDMS (and presumably many other experiments) we have analysis tools that rely on the dump being in XML format. The midas team even provided the XmlOdb class to help with this!

SuperCDMS has many test facilities that use midas. Yes, it's possible for us to tell everyone that they should change this key when they upgrade, but it would be so much better if the default was the same as it was before. There are cases where I agree that breaking backwards-compatibility is a necessary evil; I don't think this is one of them.

You're welcome to close this bug if you think the benefits of JSON-by-default outweigh the pain caused to existing experiments.

Comments (3)

  1. dd1

    Confirmed. For ALPHA-g the difference between XML and JSON is 10 second vs 1 second wait for mlogger to start a run. The XML encoder is quite slower compared to the JSON encoder.

    Ideally a change like this would be prominently mentioned in the release notes, if we had such a thing.

    I wrote the XmlOdb code in ROOTANA years ago, but still not get around to write the same code for JsonOdb, (it is on my TO-DO list). Actually lack of JsonOdb is the main reason why I did not switch ODB dumps to JSON "years ago" (and people have been asking for that).

    Now with ALPHA-g run start taking forvever because of the slowness of the XML encoder, I took the low road as a fix.

    (One theoretically can speed up the XML encoder, but because the XML data format is much more verbose - the XML file size is almost double of the JSON file size - XML will always be slower than JSON.

    K.O.

  2. Log in to comment