-
Notifications
You must be signed in to change notification settings - Fork 184
Description
Do you see any downside to it ?
I think I agree with you, specifically:
SourceComponentshould be converted toVARCHARinstead ofBLOBJEncodeshould be used instead ofDEncodefor makingArgumentsserialisable- The
Argumentscan then also be converted toVARCHARinstead ofBLOBMy only question would be how we deal with the actual upgrade/migration and I suspect it's invasive enough that it is something for v7r3.
Originally posted by @chrisburr in #5111 (comment)
Converting
BLOBtoVARCHARforSourceComponentshould be a no brainer from the DB point of view, since it is all string. ForArguments, up to now in DIRAC it has only been text serialized withDEncodeso I guess that works too.We should indeed get ride of the
RMSEncoderand favourJEncodefor the network serialization of the overall RMS objects, but theArgumentfield should stay in the DB withDEncode, since it will be tricky to migrate that. The problem mainly is that the encoding/decoding is not done in theOperationclass, but scattered in the client code, which is a bit stupid. So if we want to change that (but do we ?), a first step is probably to factorize the encoding/decoding ofArgumentsinto theOperationclass.
(we had a general discussion about that here #4986)Of course, the problem will always be the compatibility of old clients. Though for that we could finally make use of the
clientVersionfield sent in thedipsconnection arguments...I somehow have the feeling that whatever modification we want to do with BLOB (in any DB), we are better of doing it BEFORE running actual python3 code
Originally posted by @chaen in #5111 (comment)