serialization of complex types
John has given me access to a branch of his that has serialization for complex types working with UPCXX_REFLECTED. He has indicated this is a "hidden" feature and could change. It also appears to not be present everywhere.
This is a critical feature for making RPCs easy to use, and I'd like to request that a decision be made about what this is going to look like so we don't have to expect code breakage in future. It would also be good if this was guaranteed to be in every future release.
Comments (6)
-
-
reporter A general solution is indeed the ultimate goal. However, even a mechanism that enables serialization in the simpler case you indicate would be a lot better than what is currently in the official release. I think that, if possible, we should have a means of providing whatever we can in the interim, and plan to have backwards compatibility so that when full serialization support is finally implemented, previous codes can still work.
-
-
- changed milestone to 2020.3.0 release
Non-trivial Serialization support is slated to appear in the Mar 2020 release.
-
-
assigned issue to
- marked as blocker
Serialization has been promised as a feature of the upcoming 2020.3.0 release.
-
assigned issue to
-
- changed status to resolved
resolved with pull request #171 for release in 2020.3.0
- Log in to comment
I agree that serialization for user-defined types is an important feature that we need to specify and implement. We should plan to discuss this topic and where it fits in our roadmap during a meeting soon.
I suspect the unspecified UPCXX_REFLECTED() macro is sufficient for simple types whose fields are all DefinitelySerializable types (including STL containers), but may not be sufficiently general to enable "deep serialization" of more complex user-defined types (eg containing a field that is a C++ pointer to a separate or embedded subobject). We should plan out our fully general solution and avoid proliferating incomplete solutions that may turn out to be obsolescent moving forward.